diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 5fd81dc09..59808a89f 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -custom: "https://www.qbittorrent.org/donate.php" +custom: "https://www.qbittorrent.org/donate" diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c77cc888e..1302695fb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -7,19 +7,17 @@ body: #### ADVISORY "We do not support any versions older than the current release series" - "We do not support any 3rd party/forked versions e.g. `portableapps`/`Enhanced Edition`etc." + "We do not support any 3rd party/forked versions e.g. `portableapps`/`Enhanced Edition` etc." "Please post all details in **English**." #### Prerequisites before submitting an issue! - Read the issue reporting section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good bug report with the required information. - Verify that the issue is not fixed and is reproducible in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).** - - (Optional, but recommended) Verify that the issue is not fixed and is reproducible in the latest CI (currently only on **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds. - - Check the **[frequent/common issues list](https://github.com/qbittorrent/qBittorrent/projects/2)** and perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues)** to avoid posting a duplicate. + - (Optional, but recommended) Verify that the issue is not fixed and is reproducible in the latest CI (**[macOS](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_macos.yaml?query=branch%3Amaster+event%3Apush)** / **[Ubuntu](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_ubuntu.yaml?query=branch%3Amaster+event%3Apush)** / **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds. + - Perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues?q=is%3Aissue+is%3Aopen+-label%3A%22Feature+request%22)** to avoid posting a duplicate. - Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/qbittorrent/qBittorrent/discussions)**, **[forum](https://qbforums.shiki.hu/)**, or **[subreddit](https://www.reddit.com/r/qBittorrent/)**. - Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either. - - If relevant to issue/when asked, the qBittorrent preferences file, qBittorrent.log & watched_folders.json (if using "Watched Folders" feature) must be provided. - See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)** - type: textarea attributes: @@ -28,10 +26,10 @@ body: Qt and libtorrent-rasterbar versions are required when: 1. You are using linux. 2. You are not using an official build downloaded from our website. Example of preferred formatting: - qBittorrent: 4.3.7 x64 - Operating system: Windows 10 Pro 21H1/2009 x64 - Qt: 5.15.2 - libtorrent-rasterbar: 1.2.14 + qBittorrent: 4.6.6 x64 + Operating system: Windows 10 Pro x64 (22H2) 10.0.19045 + Qt: 6.4.3 + libtorrent-rasterbar: 1.2.19 placeholder: | qBittorrent: Operating system: @@ -73,4 +71,4 @@ body: See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)** #### Note: It's the user's responsibility to redact any sensitive information validations: - required: false + required: true diff --git a/.github/workflows/ci_file_health.yaml b/.github/workflows/ci_file_health.yaml index 76b358263..48bc52f59 100644 --- a/.github/workflows/ci_file_health.yaml +++ b/.github/workflows/ci_file_health.yaml @@ -12,11 +12,15 @@ jobs: ci: name: Check runs-on: ubuntu-latest + permissions: + security-events: write steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - - name: Install tools + - name: Setup python uses: actions/setup-python@v5 with: python-version: "*" @@ -32,7 +36,7 @@ jobs: curl \ -L \ -o "${{ runner.temp }}/pandoc.tar.gz" \ - "https://github.com/jgm/pandoc/releases/download/3.1.7/pandoc-3.1.7-linux-amd64.tar.gz" + "https://github.com/jgm/pandoc/releases/download/3.6/pandoc-3.6-linux-amd64.tar.gz" tar -xf "${{ runner.temp }}/pandoc.tar.gz" -C "${{ github.workspace }}/.." mv "${{ github.workspace }}/.."/pandoc-* "${{ env.pandoc_path }}" # run pandoc @@ -42,3 +46,26 @@ jobs: done # check diff, ignore "Automatically generated by ..." part git diff -I '\.\\".*' --exit-code + + - name: Check GitHub Actions workflow + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + pip install zizmor + IGNORE_RULEID='(.ruleId != "template-injection") + and (.ruleId != "unpinned-uses")' + IGNORE_ID='(.id != "template-injection") + and (.id != "unpinned-uses")' + zizmor \ + --format sarif \ + --pedantic \ + ./ \ + | jq "(.runs[].results |= map(select($IGNORE_RULEID))) + | (.runs[].tool.driver.rules |= map(select($IGNORE_ID)))" \ + > "${{ runner.temp }}/zizmor_results.sarif" + + - name: Upload zizmor results + uses: github/codeql-action/upload-sarif@v3 + with: + category: zizmor + sarif_file: "${{ runner.temp }}/zizmor_results.sarif" diff --git a/.github/workflows/ci_macos.yaml b/.github/workflows/ci_macos.yaml index 6180a44ea..0d8b1b634 100644 --- a/.github/workflows/ci_macos.yaml +++ b/.github/workflows/ci_macos.yaml @@ -2,8 +2,7 @@ name: CI - macOS on: [pull_request, push] -permissions: - actions: write +permissions: {} concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -13,22 +12,25 @@ jobs: ci: name: Build runs-on: macos-latest + permissions: + actions: write strategy: fail-fast: false matrix: - libt_version: ["2.0.10", "1.2.19"] + libt_version: ["2.0.11", "1.2.20"] qbt_gui: ["GUI=ON", "GUI=OFF"] - qt_version: ["6.7.0"] + qt_version: ["6.9.0"] env: boost_path: "${{ github.workspace }}/../boost" - openssl_root: "$(brew --prefix openssl@3)" libtorrent_path: "${{ github.workspace }}/../libtorrent" steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Install dependencies uses: Wandalen/wretry.action@v3 @@ -50,15 +52,15 @@ jobs: store_cache: ${{ github.ref == 'refs/heads/master' }} update_packager_index: false ccache_options: | - max_size=2G + max_size=1G - name: Install boost env: BOOST_MAJOR_VERSION: "1" - BOOST_MINOR_VERSION: "85" + BOOST_MINOR_VERSION: "86" BOOST_PATCH_VERSION: "0" run: | - boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" + boost_url="https://archives.boost.io/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" set +e curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" @@ -68,9 +70,12 @@ jobs: tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" fi mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" + cd "${{ env.boost_path }}" + ./bootstrap.sh + ./b2 stage --stagedir=./ --with-headers - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} archives: qtbase qtdeclarative qtsvg qttools @@ -91,25 +96,23 @@ jobs: -G "Ninja" \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_CXX_STANDARD=20 \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DBOOST_ROOT="${{ env.boost_path }}" \ - -Ddeprecated-functions=OFF \ - -DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ + -Ddeprecated-functions=OFF cmake --build build sudo cmake --install build - name: Build qBittorrent run: | - CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \ + CXXFLAGS="$CXXFLAGS -DQT_FORCE_ASSERTS -Werror -Wno-error=deprecated-declarations" \ LDFLAGS="$LDFLAGS -gz" \ cmake \ -B build \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DBOOST_ROOT="${{ env.boost_path }}" \ - -DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \ + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ -DTESTING=ON \ -DVERBOSE_CONFIGURE=ON \ -D${{ matrix.qbt_gui }} diff --git a/.github/workflows/ci_python.yaml b/.github/workflows/ci_python.yaml index f08b382b4..871614dad 100644 --- a/.github/workflows/ci_python.yaml +++ b/.github/workflows/ci_python.yaml @@ -16,6 +16,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Setup python (auxiliary scripts) uses: actions/setup-python@v5 @@ -34,7 +36,7 @@ jobs: - name: Lint code (auxiliary scripts) run: | pyflakes $PY_FILES - bandit --skip B314,B405 $PY_FILES + bandit --skip B101,B314,B405 $PY_FILES - name: Format code (auxiliary scripts) run: | @@ -50,10 +52,10 @@ jobs: - name: Setup python (search engine) uses: actions/setup-python@v5 with: - python-version: '3.7' + python-version: '3.9' - name: Install tools (search engine) - run: pip install bandit pycodestyle pyflakes + run: pip install bandit mypy pycodestyle pyflakes pyright - name: Gather files (search engine) run: | @@ -61,6 +63,16 @@ jobs: echo $PY_FILES echo "PY_FILES=$PY_FILES" >> "$GITHUB_ENV" + - name: Check typings (search engine) + run: | + MYPYPATH="src/searchengine/nova3" \ + mypy \ + --follow-imports skip \ + --strict \ + $PY_FILES + pyright \ + $PY_FILES + - name: Lint code (search engine) run: | pyflakes $PY_FILES diff --git a/.github/workflows/ci_ubuntu.yaml b/.github/workflows/ci_ubuntu.yaml index bcae07196..704ab0630 100644 --- a/.github/workflows/ci_ubuntu.yaml +++ b/.github/workflows/ci_ubuntu.yaml @@ -2,9 +2,7 @@ name: CI - Ubuntu on: [pull_request, push] -permissions: - actions: write - security-events: write +permissions: {} concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -14,22 +12,27 @@ jobs: ci: name: Build runs-on: ubuntu-latest + permissions: + actions: write + security-events: write strategy: fail-fast: false matrix: - libt_version: ["2.0.10", "1.2.19"] + libt_version: ["2.0.11", "1.2.20"] qbt_gui: ["GUI=ON", "GUI=OFF"] qt_version: ["6.5.2"] env: boost_path: "${{ github.workspace }}/../boost" - harden_flags: "-D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS" + harden_flags: "-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS" libtorrent_path: "${{ github.workspace }}/../libtorrent" steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Install dependencies run: | @@ -44,15 +47,15 @@ jobs: store_cache: ${{ github.ref == 'refs/heads/master' }} update_packager_index: false ccache_options: | - max_size=2G + max_size=1G - name: Install boost env: BOOST_MAJOR_VERSION: "1" - BOOST_MINOR_VERSION: "76" + BOOST_MINOR_VERSION: "77" BOOST_PATCH_VERSION: "0" run: | - boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" + boost_url="https://archives.boost.io/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" set +e curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" @@ -62,9 +65,12 @@ jobs: tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" fi mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" + cd "${{ env.boost_path }}" + ./bootstrap.sh + ./b2 stage --stagedir=./ --with-headers - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} archives: icu qtbase qtdeclarative qtsvg qttools @@ -85,8 +91,9 @@ jobs: -G "Ninja" \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_CXX_STANDARD=20 \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DBOOST_ROOT="${{ env.boost_path }}" \ + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ -Ddeprecated-functions=OFF cmake --build build sudo cmake --install build @@ -101,14 +108,14 @@ jobs: - name: Build qBittorrent run: | - CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }} -Werror" \ + CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }} -DQT_FORCE_ASSERTS -Werror" \ LDFLAGS="$LDFLAGS -gz" \ cmake \ -B build \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ - -DBOOST_ROOT="${{ env.boost_path }}" \ + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DTESTING=ON \ -DVERBOSE_CONFIGURE=ON \ @@ -134,7 +141,6 @@ jobs: - name: Install AppImage run: | - sudo apt install libfuse2 curl \ -L \ -Z \ diff --git a/.github/workflows/ci_webui.yaml b/.github/workflows/ci_webui.yaml index fd6f7134d..a46e003ca 100644 --- a/.github/workflows/ci_webui.yaml +++ b/.github/workflows/ci_webui.yaml @@ -2,8 +2,7 @@ name: CI - WebUI on: [pull_request, push] -permissions: - security-events: write +permissions: {} concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -13,6 +12,8 @@ jobs: ci: name: Check runs-on: ubuntu-latest + permissions: + security-events: write defaults: run: @@ -21,6 +22,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Setup nodejs uses: actions/setup-node@v4 @@ -28,7 +31,15 @@ jobs: node-version: 'lts/*' - name: Install tools - run: npm install + run: | + npm install + npm ls + echo "::group::npm ls --all" + npm ls --all + echo "::endgroup::" + + - name: Run tests + run: npm test - name: Lint code run: npm run lint diff --git a/.github/workflows/ci_windows.yaml b/.github/workflows/ci_windows.yaml index d6050d2fa..040844d0d 100644 --- a/.github/workflows/ci_windows.yaml +++ b/.github/workflows/ci_windows.yaml @@ -2,8 +2,7 @@ name: CI - Windows on: [pull_request, push] -permissions: - actions: write +permissions: {} concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -13,11 +12,13 @@ jobs: ci: name: Build runs-on: windows-latest + permissions: + actions: write strategy: fail-fast: false matrix: - libt_version: ["2.0.10", "1.2.19"] + libt_version: ["2.0.11", "1.2.20"] env: boost_path: "${{ github.workspace }}/../boost" @@ -27,6 +28,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Setup devcmd uses: ilammy/msvc-dev-cmd@v1 @@ -64,6 +67,7 @@ jobs: "set(VCPKG_BUILD_TYPE release)") # clear buildtrees after each package installation to reduce disk space requirements $packages = ` + "boost-build:x64-windows-static-md-release", "openssl:x64-windows-static-md-release", "zlib:x64-windows-static-md-release" ${{ env.vcpkg_path }}/vcpkg.exe upgrade ` @@ -78,10 +82,10 @@ jobs: - name: Install boost env: BOOST_MAJOR_VERSION: "1" - BOOST_MINOR_VERSION: "85" + BOOST_MINOR_VERSION: "86" BOOST_PATCH_VERSION: "0" run: | - $boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" + $boost_url="https://archives.boost.io/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" $boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.." @@ -91,11 +95,19 @@ jobs: tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.." } move "${{ github.workspace }}/../boost_*" "${{ env.boost_path }}" + cd "${{ env.boost_path }}" + #.\bootstrap.bat + ${{ env.vcpkg_path }}/installed/x64-windows-static-md-release/tools/boost-build/b2.exe ` + stage ` + toolset=msvc ` + --stagedir=.\ ` + --with-headers - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: - version: "6.7.0" + version: "6.9.0" + arch: win64_msvc2022_64 archives: qtbase qtsvg qttools cache: true @@ -114,10 +126,11 @@ jobs: -B build ` -G "Ninja" ` -DCMAKE_BUILD_TYPE=RelWithDebInfo ` + -DCMAKE_CXX_STANDARD=20 ` -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ` -DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}/install" ` -DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" ` - -DBOOST_ROOT="${{ env.boost_path }}" ` + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" ` -DBUILD_SHARED_LIBS=OFF ` -Ddeprecated-functions=OFF ` -Dstatic_runtime=OFF ` @@ -127,14 +140,14 @@ jobs: - name: Build qBittorrent run: | - $env:CXXFLAGS+=" /WX" + $env:CXXFLAGS+="/DQT_FORCE_ASSERTS /WX" cmake ` -B build ` -G "Ninja" ` -DCMAKE_BUILD_TYPE=RelWithDebInfo ` -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ` -DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" ` - -DBOOST_ROOT="${{ env.boost_path }}" ` + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" ` -DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/install/lib/cmake/LibtorrentRasterbar" ` -DMSVC_RUNTIME_DYNAMIC=ON ` -DTESTING=ON ` @@ -153,26 +166,26 @@ jobs: copy build/qbittorrent.pdb upload/qBittorrent copy dist/windows/qt.conf upload/qBittorrent # runtimes - copy "${{ env.Qt6_DIR }}/bin/Qt6Core.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Gui.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Network.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Sql.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Svg.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Widgets.dll" upload/qBittorrent - copy "${{ env.Qt6_DIR }}/bin/Qt6Xml.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Core.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Gui.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Network.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Sql.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Svg.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Widgets.dll" upload/qBittorrent + copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Xml.dll" upload/qBittorrent mkdir upload/qBittorrent/plugins/iconengines - copy "${{ env.Qt6_DIR }}/plugins/iconengines/qsvgicon.dll" upload/qBittorrent/plugins/iconengines + copy "${{ env.Qt_ROOT_DIR }}/plugins/iconengines/qsvgicon.dll" upload/qBittorrent/plugins/iconengines mkdir upload/qBittorrent/plugins/imageformats - copy "${{ env.Qt6_DIR }}/plugins/imageformats/qico.dll" upload/qBittorrent/plugins/imageformats - copy "${{ env.Qt6_DIR }}/plugins/imageformats/qsvg.dll" upload/qBittorrent/plugins/imageformats + copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qico.dll" upload/qBittorrent/plugins/imageformats + copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qsvg.dll" upload/qBittorrent/plugins/imageformats mkdir upload/qBittorrent/plugins/platforms - copy "${{ env.Qt6_DIR }}/plugins/platforms/qwindows.dll" upload/qBittorrent/plugins/platforms + copy "${{ env.Qt_ROOT_DIR }}/plugins/platforms/qwindows.dll" upload/qBittorrent/plugins/platforms mkdir upload/qBittorrent/plugins/sqldrivers - copy "${{ env.Qt6_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/qBittorrent/plugins/sqldrivers + copy "${{ env.Qt_ROOT_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/qBittorrent/plugins/sqldrivers mkdir upload/qBittorrent/plugins/styles - copy "${{ env.Qt6_DIR }}/plugins/styles/qmodernwindowsstyle.dll" upload/qBittorrent/plugins/styles + copy "${{ env.Qt_ROOT_DIR }}/plugins/styles/qmodernwindowsstyle.dll" upload/qBittorrent/plugins/styles mkdir upload/qBittorrent/plugins/tls - copy "${{ env.Qt6_DIR }}/plugins/tls/qschannelbackend.dll" upload/qBittorrent/plugins/tls + copy "${{ env.Qt_ROOT_DIR }}/plugins/tls/qschannelbackend.dll" upload/qBittorrent/plugins/tls # cmake additionals mkdir upload/cmake copy build/compile_commands.json upload/cmake diff --git a/.github/workflows/coverity-scan.yaml b/.github/workflows/coverity-scan.yaml index cf3c3dc3b..ce970c773 100644 --- a/.github/workflows/coverity-scan.yaml +++ b/.github/workflows/coverity-scan.yaml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - libt_version: ["2.0.10"] + libt_version: ["2.0.11"] qbt_gui: ["GUI=ON"] qt_version: ["6.5.2"] @@ -26,6 +26,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + persist-credentials: false - name: Install dependencies run: | @@ -37,10 +39,10 @@ jobs: - name: Install boost env: BOOST_MAJOR_VERSION: "1" - BOOST_MINOR_VERSION: "85" + BOOST_MINOR_VERSION: "86" BOOST_PATCH_VERSION: "0" run: | - boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" + boost_url="https://archives.boost.io/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz" set +e curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url" @@ -50,9 +52,12 @@ jobs: tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?" fi mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}" + cd "${{ env.boost_path }}" + ./bootstrap.sh + ./b2 stage --stagedir=./ --with-headers - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} archives: icu qtbase qtdeclarative qtsvg qttools @@ -71,7 +76,8 @@ jobs: -B build \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DBOOST_ROOT="${{ env.boost_path }}" \ + -DCMAKE_CXX_STANDARD=20 \ + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ -Ddeprecated-functions=OFF cmake --build build sudo cmake --install build @@ -95,7 +101,7 @@ jobs: -B build \ -G "Ninja" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DBOOST_ROOT="${{ env.boost_path }}" \ + -DBOOST_ROOT="${{ env.boost_path }}/lib/cmake" \ -DVERBOSE_CONFIGURE=ON \ -D${{ matrix.qbt_gui }} PATH="${{ env.coverity_path }}/bin:$PATH" \ diff --git a/.github/workflows/helper/pre-commit/.typos.toml b/.github/workflows/helper/pre-commit/.typos.toml index 0f33373ad..90d6e1746 100644 --- a/.github/workflows/helper/pre-commit/.typos.toml +++ b/.github/workflows/helper/pre-commit/.typos.toml @@ -16,3 +16,5 @@ ths = "ths" [default.extend-words] BA = "BA" helo = "helo" +Pn = "Pn" +UIU = "UIU" diff --git a/.github/workflows/helper/pre-commit/check_grid_items_order.py b/.github/workflows/helper/pre-commit/check_grid_items_order.py new file mode 100755 index 000000000..0ab3d6715 --- /dev/null +++ b/.github/workflows/helper/pre-commit/check_grid_items_order.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 + +# A pre-commit hook for checking items order in grid layouts +# Copyright (C) 2024 Mike Tzou (Chocobo1) +# +# 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. + +from collections.abc import Callable, Sequence +from typing import Optional +import argparse +import re +import xml.etree.ElementTree as ElementTree +import sys + + +def traversePostOrder(root: ElementTree.Element, visitFunc: Callable[[ElementTree.Element], None]) -> None: + stack = [(root, False)] + + while len(stack) > 0: + (element, visit) = stack.pop() + if visit: + visitFunc(element) + else: + stack.append((element, True)) + stack.extend((child, False) for child in reversed(element)) + + +def modifyElement(element: ElementTree.Element) -> None: + def getSortKey(e: ElementTree.Element) -> tuple[int, int]: + if e.tag == 'item': + return (int(e.attrib['row']), int(e.attrib['column'])) + return (-1, -1) # don't care + + if element.tag == 'layout' and element.attrib['class'] == 'QGridLayout' and len(element) > 0: + element[:] = sorted(element, key=getSortKey) + + # workaround_2a: ElementTree will unescape `"` and we need to escape it back + if element.tag == 'string' and element.text is not None: + element.text = element.text.replace('"', '"') + + +def main(argv: Optional[Sequence[str]] = None) -> int: + parser = argparse.ArgumentParser() + parser.add_argument('filenames', nargs='*', help='Filenames to check') + args = parser.parse_args(argv) + + for filename in args.filenames: + with open(filename, 'r+') as f: + orig = f.read() + root = ElementTree.fromstring(orig) + traversePostOrder(root, modifyElement) + ElementTree.indent(root, ' ') + + # workaround_1: cannot use `xml_declaration=True` since it uses single quotes instead of Qt preferred double quotes + ret = f'\n{ElementTree.tostring(root, 'unicode')}\n' + + # workaround_2b: ElementTree will turn `"` into `&quot;`, so revert it back + ret = ret.replace('&quot;', '"') + + # workaround_3: Qt prefers no whitespaces in self-closing tags + ret = re.sub('<(.+) +/>', r'<\1/>', ret) + + if ret != orig: + print(f'Tip: run this script to apply the fix: `python {__file__} {filename}`', file=sys.stderr) + + f.seek(0) + f.write(ret) + f.truncate() + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/.github/workflows/helper/pre-commit/check_translation_tag.py b/.github/workflows/helper/pre-commit/check_translation_tag.py index f3d4457e2..4be80df49 100755 --- a/.github/workflows/helper/pre-commit/check_translation_tag.py +++ b/.github/workflows/helper/pre-commit/check_translation_tag.py @@ -26,9 +26,11 @@ # but you are not obligated to do so. If you do not wish to do so, delete this # exception statement from your version. -from typing import Optional, Sequence +from collections.abc import Sequence +from typing import Optional import argparse import re +import sys def main(argv: Optional[Sequence[str]] = None) -> int: @@ -67,4 +69,4 @@ def main(argv: Optional[Sequence[str]] = None) -> int: if __name__ == '__main__': - exit(main()) + sys.exit(main()) diff --git a/.github/workflows/stale_bot.yaml b/.github/workflows/stale_bot.yaml index 6cd727855..705f6a5c9 100644 --- a/.github/workflows/stale_bot.yaml +++ b/.github/workflows/stale_bot.yaml @@ -4,12 +4,13 @@ on: schedule: - cron: '0 0 * * *' -permissions: - pull-requests: write +permissions: {} jobs: stale: runs-on: ubuntu-latest + permissions: + pull-requests: write steps: - name: Mark and close stale PRs uses: actions/stale@v9 diff --git a/.gitignore b/.gitignore index c928583ee..17b925842 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,3 @@ src/icons/skin/build-icons/icons/*.png # CMake build directory build/ - -# Web UI tools -node_modules -package-lock.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 816654ef8..4ab414b05 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,12 @@ repos: - repo: local hooks: + - id: check-grid-order + name: Check items order in grid layouts + entry: .github/workflows/helper/pre-commit/check_grid_items_order.py + language: script + files: \.ui$ + - id: check-translation-tag name: Check newline characters in tag entry: .github/workflows/helper/pre-commit/check_translation_tag.py @@ -13,7 +19,7 @@ repos: - ts - repo: https://github.com/pre-commit/pre-commit-hooks.git - rev: v4.5.0 + rev: v5.0.0 hooks: - id: check-json name: Check JSON files @@ -63,32 +69,26 @@ repos: - ts - repo: https://github.com/codespell-project/codespell.git - rev: v2.2.6 + rev: v2.4.0 hooks: - id: codespell name: Check spelling (codespell) - args: ["--ignore-words-list", "additionals,curren,fo,ist,ket,searchin,superseeding,te,ths"] + args: ["--ignore-words-list", "additionals,categor,curren,fo,indexIn,ist,ket,notin,searchin,sectionin,superseeding,te,ths"] exclude: | (?x)^( .*\.desktop | .*\.qrc | - build-aux/.* | Changelog | dist/windows/installer-translations/.* | - m4/.* | src/base/3rdparty/.* | src/searchengine/nova3/socks.py | - src/webui/www/private/lang/.* | - src/webui/www/private/scripts/lib/.* | - src/webui/www/public/lang/.* | - src/webui/www/public/scripts/lib/.* | - src/webui/www/transifex/.* + src/webui/www/private/scripts/lib/.* )$ exclude_types: - ts - repo: https://github.com/crate-ci/typos.git - rev: v1.16.18 + rev: v1.29.4 hooks: - id: typos name: Check spelling (typos) @@ -99,18 +99,11 @@ repos: .*\.desktop | .*\.qrc | \.pre-commit-config\.yaml | - build-aux/.* | Changelog | - configure.* | dist/windows/installer-translations/.* | - m4/.* | src/base/3rdparty/.* | src/searchengine/nova3/socks.py | - src/webui/www/private/lang/.* | - src/webui/www/private/scripts/lib/.* | - src/webui/www/public/lang/.* | - src/webui/www/public/scripts/lib/.* | - src/webui/www/transifex/.* + src/webui/www/private/scripts/lib/.* )$ exclude_types: - svg diff --git a/.tx/config b/.tx/config index 593cf8675..95d5b1afa 100644 --- a/.tx/config +++ b/.tx/config @@ -17,14 +17,6 @@ type = QT minimum_perc = 23 lang_map = pt: pt_PT, zh: zh_CN -[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui_json] -file_filter = src/webui/www/transifex/.json -source_file = src/webui/www/transifex/en.json -source_lang = en -type = KEYVALUEJSON -minimum_perc = 23 -lang_map = pt: pt_PT, zh: zh_CN - [o:sledgehammer999:p:qbittorrent:r:qbittorrentdesktop_master] source_file = dist/unix/org.qbittorrent.qBittorrent.desktop source_lang = en diff --git a/COPYING.GPLv2 b/COPYING.GPLv2 index d159169d1..9efa6fbc9 100644 --- a/COPYING.GPLv2 +++ b/COPYING.GPLv2 @@ -2,7 +2,7 @@ Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -304,8 +304,7 @@ the "copyright" line and a pointer to where the full notice is found. 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. + with this program; if not, see . Also add information on how to contact you by electronic and paper mail. @@ -329,8 +328,8 @@ necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. - , 1 April 1989 - Ty Coon, President of Vice + , 1 April 1989 + Moe Ghoul, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may diff --git a/Changelog b/Changelog index 8d702641d..453c4bcdc 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,26 @@ -Unreleased - sledgehammer999 - v5.0.0 +Unreleased - sledgehammer999 - v5.1.0 + +Mon Oct 28th 2024 - sledgehammer999 - v5.0.1 + - FEATURE: Add "Simple pread/pwrite" disk IO type (Hanabishi) + - BUGFIX: Don't ignore SSL errors (sledgehammer999) + - BUGFIX: Don't try to apply Mark-of-the-Web to nonexistent files (glassez) + - BUGFIX: Disable "Move to trash" option by default (glassez) + - BUGFIX: Disable the ability to create torrents with a piece size of 256MiB (stalkerok) + - BUGFIX: Allow to choose Qt style (glassez) + - BUGFIX: Always notify user about duplicate torrent (glassez) + - BUGFIX: Correctly handle "torrent finished after move" event (glassez) + - BUGFIX: Correctly apply filename filter when `!qB` extension is enabled (glassez) + - BUGFIX: Improve color scheme change detection (glassez) + - BUGFIX: Fix button state for SSL certificate check (Chocobo1) + - WEBUI: Fix CSS that results in hidden torrent list in some browsers (skomerko) + - WEBUI: Use proper text color to highlight items in all filter lists (skomerko) + - WEBUI: Fix 'rename files' dialog cannot be opened more than once (Chocobo1) + - WEBUI: Fix UI of Advanced Settings to show all settings (glassez) + - WEBUI: Free resources allocated by web session once it is destructed (dyseg) + - SEARCH: Import correct libraries (Chocobo1) + - OTHER: Sync flag icons with upstream (xavier2k6) + +Sun Sep 29th 2024 - sledgehammer999 - v5.0.0 - FEATURE: Support creating .torrent with larger piece size (Chocobo1) - FEATURE: Improve tracker entries handling (glassez) - FEATURE: Add separate filter item for tracker errors (glassez) @@ -12,14 +34,30 @@ Unreleased - sledgehammer999 - v5.0.0 - FEATURE: Enable Ctrl+F hotkey for more inputs (thalieht) - FEATURE: Add seeding limits to RSS and Watched folders options UI (glassez) - FEATURE: Subcategories implicitly follow the parent category options (glassez) - - FEATURE: Add support for SSL torrents (Chocobo1, Radu Carpa) - FEATURE: Add option to name each qbittorrent instance (Chocobo1) - FEATURE: Add button for sending test email (Thomas Piccirello) - FEATURE: Allow torrents to override default share limit action (glassez) + - FEATURE: Use Start/Stop instead of Resume/Pause (thalieht) + - FEATURE: Add the Popularity metric (Aliaksei Urbanski) + - FEATURE: Focus on Download button if torrent link retrieved from the clipboard (glassez) + - FEATURE: Add ability to pause/resume entire BitTorrent session (glassez) + - FEATURE: Add an option to set BitTorrent session shutdown timeout (glassez) + - FEATURE: Apply "Excluded file names" to folder names as well (glassez) + - FEATURE: Allow to use regular expression to filter torrent content (glassez) + - FEATURE: Allow to move content files to Trash instead of deleting them (glassez) + - FEATURE: Add ability to display torrent "privateness" in UI (ManiMatter) + - FEATURE: Add a flag in `Peers` tab denoting a connection using NAT hole punching (stalkerok) - BUGFIX: Display error message when unrecoverable error occurred (glassez) - BUGFIX: Update size of selected files when selection is changed (glassez) - BUGFIX: Normalize tags by trimming leading/trailing whitespace (glassez) - BUGFIX: Correctly handle share limits in torrent options dialog (glassez) + - BUGFIX: Adjust tracker tier when adding additional trackers (Chocobo1) + - BUGFIX: Fix inconsistent naming between `Done/Progress` column (luzpaz) + - BUGFIX: Sanitize peer client names (Hanabishi) + - BUGFIX: Apply share limits immediately when torrent downloading is finished (glassez) + - BUGFIX: Show download progress for folders with zero byte size as 100 instead of 0 (vikas_c) + - BUGFIX: Fix highlighted piece color (Prince Gupta) + - BUGFIX: Apply "merge trackers" logic regardless of way the torrent is added (glassez) - WEBUI: Improve WebUI responsiveness (Chocobo1) - WEBUI: Do not exit the app when WebUI has failed to start (Hanabishi) - WEBUI: Add `Moving` filter to side panel (xavier2k6) @@ -28,14 +66,37 @@ Unreleased - sledgehammer999 - v5.0.0 - WEBUI: Leave the fields empty when value is invalid (Chocobo1) - WEBUI: Use natural sorting (Chocobo1) - WEBUI: Improve WebUI login behavior (JayRet) + - WEBUI: Conditionally show filters sidebar (Thomas Piccirello) + - WEBUI: Add support for running concurrent searches (Thomas Piccirello) + - WEBUI: Improve accuracy of trackers list (Thomas Piccirello) + - WEBUI: Fix error when category doesn't exist (Thomas Piccirello) + - WEBUI: Improve table scrolling and selection on mobile (Thomas Piccirello) + - WEBUI: Restore search tabs on load (Thomas Piccirello) + - WEBUI: Restore previously used tab on load (Thomas Piccirello) + - WEBUI: Increase default height of `Share ratio limit` dialog (thalieht) + - WEBUI: Use enabled search plugins by default (Thomas Piccirello) + - WEBUI: Add columns `Incomplete Save Path`, `Info Hash v1`, `Info Hash v2` (thalieht) + - WEBUI: Always create generic filter items (skomerko) + - WEBUI: Provide `Use Category paths in Manual Mode` option (skomerko) + - WEBUI: Provide `Merge trackers to existing torrent` option (skomerko) - WEBAPI: Fix wrong timestamp values (Chocobo1) - WEBAPI: Send binary data with filename and mime type specified (glassez) - WEBAPI: Expose API for the torrent creator (glassez, Radu Carpa) + - WEBAPI: Add support for SSL torrents (Chocobo1, Radu Carpa) + - WEBAPI: Provide endpoint for listing directory content (Paweł Kotiuk) + - WEBAPI: Provide "private" flag via "torrents/info" endpoint (ManiMatter) + - WEBAPI: Add a way to download .torrent file using search plugin (glassez) + - WEBAPI: Add "private" filter for "torrents/info" endpoint (ManiMatter) + - WEBAPI: Add root_path to "torrents/info" result (David Newhall) - RSS: Show RSS feed title in HTML browser (Jay) - RSS: Allow to set delay between requests to the same host (jNullj) - SEARCH: Allow users to specify Python executable path (Chocobo1) + - SEARCH: Lazy load search plugins (milahu) + - SEARCH: Add date column to the built-in search engine (ducalex) + - SEARCH: Allow to rearrange search tabs (glassez) - WINDOWS: Use Fusion style on Windows 10+. It has better compatibility with dark mode (glassez) - WINDOWS: Allow to set qBittorrent as default program (glassez) + - WINDOWS: Don't access "Favorites" folder unexpectedly (glassez) - LINUX: Add support for systemd power management (Chocobo1) - LINUX: Add support for localized man pages (Victor Chernyakin) - LINUX: Specify a locale if none is set (Chocobo1) @@ -45,6 +106,42 @@ Unreleased - sledgehammer999 - v5.0.0 - OTHER: Minimum supported versions: Qt: 6.5, Boost: 1.76, OpenSSL: 3.0.2 - OTHER: Switch to C++20 +Mon Sep 16th 2024 - sledgehammer999 - v4.6.7 + - BUGFIX: The updater will launch the link to the build variant you're currently using (sledgehammer999) + - BUGFIX: Focus on Download button if torrent link retrieved from the clipboard (glassez) + - WEBUI: RSS: The list of feeds wouldn't load for Apply Rule (glassez) + +Sun Aug 18th 2024 - sledgehammer999 - v4.6.6 + - BUGFIX: Fix handling of tags containing '&' character (glassez) + - BUGFIX: Show scroll bar in Torrent Tags dialog (glassez) + - BUGFIX: Apply bulk changes to correct content widget items (glassez) + - BUGFIX: Hide zero status filters when torrents are removed (glassez) + - BUGFIX: Fix `Incomplete Save Path` cannot be changed for torrents without metadata (glassez) + - WEBUI: Correctly apply changed "save path" of RSS rules (glassez) + - WEBUI: Clear tracker list on full update (skomerko) + - OTHER: Update User-Agent string for internal downloader and search engines (cayenne17) + +Sun May 26th 2024 - sledgehammer999 - v4.6.5 + - BUGFIX: Prevent app from being closed when disabling system tray icon (glassez) + - BUGFIX: Fix Enter key behavior in Add new torrent dialog (glassez) + - BUGFIX: Prevent invalid status filter index from being used (glassez) + - BUGFIX: Add extra offset for dialog frame (glassez) + - BUGFIX: Don't overwrite stored layout of main window with incorrect one (glassez) + - BUGFIX: Don't forget to resume "missing files" torrent when rechecking (glassez) + - WEBUI: Restore ability to use server-side translation by custom WebUI (glassez) + - WEBUI: Fix wrong peer number (Chocobo1) + - LINUX: Improve AppStream metadata (Chocobo1) + +Sun Mar 24th 2024 - sledgehammer999 - v4.6.4 + - BUGFIX: Correctly adjust "Add New torrent" dialog position in all the cases (glassez) + - BUGFIX: Change "metadata received" stop condition behavior (glassez) + - BUGFIX: Add a small delay before processing the key input of search boxes (Chocobo1) + - BUGFIX: Ensure the profile path is pointing to a directory (Chocobo1) + - RSS: Use better icons for RSS articles (glassez) + - WINDOWS: NSIS: Update French, Hungarian translations (MarcDrieu, foxi69) + - LINUX: Fix sorting when ICU isn't used (Chocobo1) + - LINUX: Fix invisible tray icon on Plasma 6 (tehcneko) + Mon Jan 15th 2024 - sledgehammer999 - v4.6.3 - BUGFIX: Correctly update number of filtered items (glassez) - BUGFIX: Don't forget to store Stop condition value (glassez) diff --git a/INSTALL b/INSTALL index 86ed7c5f3..ec3ff78ea 100644 --- a/INSTALL +++ b/INSTALL @@ -18,7 +18,7 @@ qBittorrent - A BitTorrent client in C++ / Qt - CMake >= 3.16 * Compile-time only - - Python >= 3.7.0 + - Python >= 3.9.0 * Optional, run-time only * Used by the bundled search engine diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..6c931a30c --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,18 @@ +# Security Policy + +qBittorrent takes the security of our software seriously, including all source code repositories managed through our GitHub organisation. +If you believe you have found a security vulnerability in qBittorrent, please report it to us as described below. + +## Reporting Security Issues + +Please do not report security vulnerabilities through public GitHub issues. Instead, please use GitHubs private vulnerability reporting functionality associated to this repository. Additionally, you may email us with all security-related inquiries and notifications at `security@qbittorrent.org`. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: +1. Type of issue +2. Step-by-step instructions to reproduce the issue +3. Proof-of-concept or exploit code (if possible) +4. Potential impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. Any and all CVEs will be requested and issued through GitHubs private vulnerability reporting functionality, which will be published alongside the disclosure. + +This security policy only applies to the most recent stable branch of qBittorrent. Flaws in old versions that are not present in the current stable branch will not be fixed. diff --git a/WebAPI_Changelog.md b/WebAPI_Changelog.md new file mode 100644 index 000000000..d05d66524 --- /dev/null +++ b/WebAPI_Changelog.md @@ -0,0 +1,5 @@ +# 2.11.6 +* https://github.com/qbittorrent/qBittorrent/pull/22460 + * `app/setPreferences` allows only one of `max_ratio_enabled`, `max_ratio` to be present + * `app/setPreferences` allows only one of `max_seeding_time_enabled`, `max_seeding_time` to be present + * `app/setPreferences` allows only one of `max_inactive_seeding_time_enabled`, `max_inactive_seeding_time` to be present diff --git a/dist/mac/Info.plist b/dist/mac/Info.plist index 50f6ccbd4..bebe2f1fb 100644 --- a/dist/mac/Info.plist +++ b/dist/mac/Info.plist @@ -55,7 +55,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.0.0 + 5.2.0 CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier @@ -67,7 +67,7 @@ NSAppleScriptEnabled YES NSHumanReadableCopyright - Copyright © 2006-2024 The qBittorrent project + Copyright © 2006-2025 The qBittorrent project UTExportedTypeDeclarations diff --git a/dist/unix/org.qbittorrent.qBittorrent.desktop b/dist/unix/org.qbittorrent.qBittorrent.desktop index cb9e814cb..1b71eb024 100644 --- a/dist/unix/org.qbittorrent.qBittorrent.desktop +++ b/dist/unix/org.qbittorrent.qBittorrent.desktop @@ -14,216 +14,220 @@ Keywords=bittorrent;torrent;magnet;download;p2p; SingleMainWindow=true # Translations -Comment[af]=Aflaai en deel lêers oor BitTorrent GenericName[af]=BitTorrent kliënt +Comment[af]=Aflaai en deel lêers oor BitTorrent Name[af]=qBittorrent -Comment[ar]=نزّل وشارك الملفات عبر كيوبت‎تورنت GenericName[ar]=عميل بت‎تورنت +Comment[ar]=نزّل وشارك الملفات عبر كيوبت‎تورنت Name[ar]=qBittorrent -Comment[be]=Спампоўванне і раздача файлаў праз пратакол BitTorrent GenericName[be]=Кліент BitTorrent +Comment[be]=Спампоўванне і раздача файлаў праз пратакол BitTorrent Name[be]=qBittorrent -Comment[bg]=Сваляне и споделяне на файлове чрез BitTorrent GenericName[bg]=BitTorrent клиент +Comment[bg]=Сваляне и споделяне на файлове чрез BitTorrent Name[bg]=qBittorrent -Comment[bn]=বিটটরেন্টে ফাইল ডাউনলোড এবং শেয়ার করুন GenericName[bn]=বিটটরেন্ট ক্লায়েন্ট +Comment[bn]=বিটটরেন্টে ফাইল ডাউনলোড এবং শেয়ার করুন Name[bn]=qBittorrent -Comment[zh]=通过 BitTorrent 下载和分享文件 GenericName[zh]=BitTorrent 客户端 +Comment[zh]=通过 BitTorrent 下载和分享文件 Name[zh]=qBittorrent -Comment[bs]=Preuzmi i dijeli datoteke preko BitTorrent-a GenericName[bs]=BitTorrent klijent +Comment[bs]=Preuzmi i dijeli datoteke preko BitTorrent-a Name[bs]=qBittorrent -Comment[ca]=Baixeu i compartiu fitxers amb el BitTorrent GenericName[ca]=Client de BitTorrent +Comment[ca]=Baixeu i compartiu fitxers amb el BitTorrent Name[ca]=qBittorrent -Comment[cs]=Stahování a sdílení souborů přes síť BitTorrent GenericName[cs]=BitTorrent klient +Comment[cs]=Stahování a sdílení souborů přes síť BitTorrent Name[cs]=qBittorrent -Comment[da]=Download og del filer over BitTorrent GenericName[da]=BitTorrent-klient +Comment[da]=Download og del filer over BitTorrent Name[da]=qBittorrent -Comment[de]=Über BitTorrent Dateien herunterladen und teilen GenericName[de]=BitTorrent Client +Comment[de]=Über BitTorrent Dateien herunterladen und teilen Name[de]=qBittorrent -Comment[el]=Κάντε λήψη και μοιραστείτε αρχεία μέσω BitTorrent GenericName[el]=BitTorrent client +Comment[el]=Κάντε λήψη και μοιραστείτε αρχεία μέσω BitTorrent Name[el]=qBittorrent -Comment[en_GB]=Download and share files over BitTorrent GenericName[en_GB]=BitTorrent client +Comment[en_GB]=Download and share files over BitTorrent Name[en_GB]=qBittorrent -Comment[es]=Descargue y comparta archivos por BitTorrent GenericName[es]=Cliente BitTorrent +Comment[es]=Descargue y comparta archivos por BitTorrent Name[es]=qBittorrent -Comment[et]=Lae alla ja jaga faile üle BitTorrenti GenericName[et]=BitTorrent klient +Comment[et]=Lae alla ja jaga faile üle BitTorrenti Name[et]=qBittorrent -Comment[eu]=Jeitsi eta elkarbanatu agiriak BitTorrent bidez GenericName[eu]=BitTorrent bezeroa +Comment[eu]=Jeitsi eta elkarbanatu agiriak BitTorrent bidez Name[eu]=qBittorrent -Comment[fa]=دانلود و به اشتراک گذاری فایل های بوسیله بیت تورنت GenericName[fa]=بیت تورنت نسخه کلاینت +Comment[fa]=دانلود و به اشتراک گذاری فایل های بوسیله بیت تورنت Name[fa]=qBittorrent -Comment[fi]=Lataa ja jaa tiedostoja BitTorrentia käyttäen GenericName[fi]=BitTorrent-asiakasohjelma +Comment[fi]=Lataa ja jaa tiedostoja BitTorrentia käyttäen Name[fi]=qBittorrent -Comment[fr]=Télécharger et partager des fichiers sur BitTorrent GenericName[fr]=Client BitTorrent +Comment[fr]=Télécharger et partager des fichiers sur BitTorrent Name[fr]=qBittorrent -Comment[gl]=Descargar e compartir ficheiros co protocolo BitTorrent GenericName[gl]=Cliente BitTorrent +Comment[gl]=Descargar e compartir ficheiros co protocolo BitTorrent Name[gl]=qBittorrent -Comment[gu]=બિટ્ટોરેંટ પર ફાઈલો ડાઉનલોડ અને શેર કરો GenericName[gu]=બિટ્ટોરેંટ ક્લાયન્ટ +Comment[gu]=બિટ્ટોરેંટ પર ફાઈલો ડાઉનલોડ અને શેર કરો Name[gu]=qBittorrent -Comment[he]=הורד ושתף קבצים על גבי ביטורנט GenericName[he]=לקוח ביטורנט +Comment[he]=הורד ושתף קבצים על גבי ביטורנט Name[he]=qBittorrent -Comment[hr]=Preuzmite i dijelite datoteke putem BitTorrenta GenericName[hr]=BitTorrent klijent +Comment[hr]=Preuzmite i dijelite datoteke putem BitTorrenta Name[hr]=qBittorrent -Comment[hu]=Fájlok letöltése és megosztása a BitTorrent hálózaton keresztül GenericName[hu]=BitTorrent kliens +Comment[hu]=Fájlok letöltése és megosztása a BitTorrent hálózaton keresztül Name[hu]=qBittorrent -Comment[hy]=Նիշքերի փոխանցում BitTorrent-ի միջոցով GenericName[hy]=BitTorrent սպասառու +Comment[hy]=Նիշքերի փոխանցում BitTorrent-ի միջոցով Name[hy]=qBittorrent -Comment[id]=Unduh dan berbagi berkas melalui BitTorrent GenericName[id]=Klien BitTorrent +Comment[id]=Unduh dan berbagi berkas melalui BitTorrent Name[id]=qBittorrent -Comment[is]=Sækja og deila skrám yfir BitTorrent GenericName[is]=BitTorrent biðlarar +Comment[is]=Sækja og deila skrám yfir BitTorrent Name[is]=qBittorrent -Comment[it]=Scarica e condividi file tramite BitTorrent GenericName[it]=Client BitTorrent +Comment[it]=Scarica e condividi file tramite BitTorrent Name[it]=qBittorrent -Comment[ja]=BitTorrentでファイルのダウンロードと共有 GenericName[ja]=BitTorrentクライアント +Comment[ja]=BitTorrentでファイルのダウンロードと共有 Name[ja]=qBittorrent -Comment[ka]=გადმოტვირთეთ და გააზიარეთ ფაილები BitTorrent-ის საშუალებით GenericName[ka]=BitTorrent კლიენტი +Comment[ka]=გადმოტვირთეთ და გააზიარეთ ფაილები BitTorrent-ის საშუალებით Name[ka]=qBittorrent -Comment[ko]=BitTorrent를 통한 파일 내려받기 및 공유 GenericName[ko]=BitTorrent 클라이언트 +Comment[ko]=BitTorrent를 통해 파일 다운로드 및 공유 Name[ko]=qBittorrent -Comment[lt]=Atsisiųskite bei dalinkitės failais BitTorrent tinkle GenericName[lt]=BitTorrent klientas +Comment[lt]=Atsisiųskite bei dalinkitės failais BitTorrent tinkle Name[lt]=qBittorrent -Comment[mk]=Превземајте и споделувајте фајлови преку BitTorrent GenericName[mk]=BitTorrent клиент +Comment[mk]=Превземајте и споделувајте фајлови преку BitTorrent Name[mk]=qBittorrent -Comment[my]=တောရန့်ဖြင့်ဖိုင်များဒေါင်းလုဒ်ဆွဲရန်နှင့်မျှဝေရန် GenericName[my]=တောရန့်စီမံခန့်ခွဲသည့်အရာ +Comment[my]=တောရန့်ဖြင့်ဖိုင်များဒေါင်းလုဒ်ဆွဲရန်နှင့်မျှဝေရန် Name[my]=qBittorrent -Comment[nb]=Last ned og del filer over BitTorrent GenericName[nb]=BitTorrent-klient +Comment[nb]=Last ned og del filer over BitTorrent Name[nb]=qBittorrent -Comment[nl]=Bestanden downloaden en delen via BitTorrent GenericName[nl]=BitTorrent-client +Comment[nl]=Bestanden downloaden en delen via BitTorrent Name[nl]=qBittorrent -Comment[pl]=Pobieraj i dziel się plikami przez BitTorrent GenericName[pl]=Klient BitTorrent +Comment[pl]=Pobieraj i dziel się plikami przez BitTorrent Name[pl]=qBittorrent -Comment[pt]=Transferir e partilhar ficheiros por BitTorrent GenericName[pt]=Cliente BitTorrent +Comment[pt]=Transferir e partilhar ficheiros por BitTorrent Name[pt]=qBittorrent -Comment[pt_BR]=Baixe e compartilhe arquivos pelo BitTorrent GenericName[pt_BR]=Cliente BitTorrent +Comment[pt_BR]=Baixe e compartilhe arquivos pelo BitTorrent Name[pt_BR]=qBittorrent -Comment[ro]=Descărcați și partajați fișiere prin BitTorrent GenericName[ro]=Client BitTorrent +Comment[ro]=Descărcați și partajați fișiere prin BitTorrent Name[ro]=qBittorrent -Comment[ru]=Обмен файлами по сети БитТоррент GenericName[ru]=Клиент сети БитТоррент +Comment[ru]=Обмен файлами по сети БитТоррент Name[ru]=qBittorrent -Comment[sk]=Sťahovanie a zdieľanie súborov prostredníctvom siete BitTorrent GenericName[sk]=Klient siete BitTorrent +Comment[sk]=Sťahovanie a zdieľanie súborov prostredníctvom siete BitTorrent Name[sk]=qBittorrent -Comment[sl]=Prenesite in delite datoteke preko BitTorrenta GenericName[sl]=BitTorrent odjemalec +Comment[sl]=Prenesite in delite datoteke preko BitTorrenta Name[sl]=qBittorrent +GenericName[sq]=Klienti BitTorrent +Comment[sq]=Shkarko dhe shpërndaj skedarë në BitTorrent Name[sq]=qBittorrent -Comment[sr]=Преузимајте и делите фајлове преко BitTorrent протокола -GenericName[sr]=BitTorrent-клијент +GenericName[sr]=BitTorrent клијент +Comment[sr]=Преузимајте и делите фајлове преко BitTorrent-а Name[sr]=qBittorrent -Comment[sr@latin]=Preuzimanje i deljenje fajlova preko BitTorrent-a GenericName[sr@latin]=BitTorrent klijent +Comment[sr@latin]=Preuzimanje i deljenje fajlova preko BitTorrent-a Name[sr@latin]=qBittorrent -Comment[sv]=Hämta och dela filer över BitTorrent GenericName[sv]=BitTorrent-klient +Comment[sv]=Hämta och dela filer över BitTorrent Name[sv]=qBittorrent -Comment[ta]=BitTorrent வழியாக கோப்புகளை பதிவிறக்க மற்றும் பகிர GenericName[ta]=BitTorrent வாடிக்கையாளர் +Comment[ta]=BitTorrent வழியாக கோப்புகளை பதிவிறக்க மற்றும் பகிர Name[ta]=qBittorrent -Comment[te]=క్యు బిట్ టొరెంట్ తో ఫైల్స్ దిగుమతి చేసుకోండి , పంచుకోండి GenericName[te]=క్యు బిట్ టొరెంట్ క్లయింట్ +Comment[te]=క్యు బిట్ టొరెంట్ తో ఫైల్స్ దిగుమతి చేసుకోండి , పంచుకోండి Name[te]=qBittorrent -Comment[th]=ดาวน์โหลดและแชร์ไฟล์ผ่าน BitTorrent -GenericName[th]=โปรแกรมบิททอเร้นท์ +GenericName[th]=ไคลเอนต์บิททอร์เรนต์ +Comment[th]=ดาวน์โหลดและแชร์ไฟล์ผ่านบิตทอร์เรนต์ Name[th]=qBittorrent -Comment[tr]=Dosyaları BitTorrent üzerinden indirin ve paylaşın GenericName[tr]=BitTorrent istemcisi +Comment[tr]=Dosyaları BitTorrent üzerinden indirin ve paylaşın Name[tr]=qBittorrent -Comment[ur]=BitTorrent پر فائلوں کو ڈاؤن لوڈ کریں اور اشتراک کریں GenericName[ur]=قیو بٹ ٹورنٹ کلائنٹ +Comment[ur]=BitTorrent پر فائلوں کو ڈاؤن لوڈ کریں اور اشتراک کریں Name[ur]=qBittorrent -Comment[uk]=Завантажуйте та поширюйте файли через BitTorrent GenericName[uk]=BitTorrent-клієнт +Comment[uk]=Завантажуйте та поширюйте файли через BitTorrent Name[uk]=qBittorrent -Comment[vi]=Tải xuống và chia sẻ tệp qua BitTorrent GenericName[vi]=Máy khách BitTorrent +Comment[vi]=Tải xuống và chia sẻ tệp qua BitTorrent Name[vi]=qBittorrent -Comment[zh_HK]=經由BitTorrent下載並分享檔案 GenericName[zh_HK]=BitTorrent用戶端 +Comment[zh_HK]=經由BitTorrent下載並分享檔案 Name[zh_HK]=qBittorrent -Comment[zh_TW]=經由 BitTorrent 下載並分享檔案 GenericName[zh_TW]=BitTorrent 用戶端 +Comment[zh_TW]=使用 BitTorrent 下載並分享檔案 Name[zh_TW]=qBittorrent -Comment[eo]=Elŝutu kaj kunhavigu dosierojn per BitTorrent GenericName[eo]=BitTorrent-kliento +Comment[eo]=Elŝutu kaj kunhavigu dosierojn per BitTorrent Name[eo]=qBittorrent -Comment[kk]=BitTorrent арқылы файл жүктеу және бөлісу GenericName[kk]=BitTorrent клиенті +Comment[kk]=BitTorrent арқылы файл жүктеу және бөлісу Name[kk]=qBittorrent -Comment[en_AU]=Download and share files over BitTorrent GenericName[en_AU]=BitTorrent client +Comment[en_AU]=Download and share files over BitTorrent Name[en_AU]=qBittorrent Name[rm]=qBittorrent Name[jv]=qBittorrent -Comment[oc]=Telecargar e partejar de fichièrs amb BitTorrent GenericName[oc]=Client BitTorrent +Comment[oc]=Telecargar e partejar de fichièrs amb BitTorrent Name[oc]=qBittorrent Name[ug]=qBittorrent Name[yi]=qBittorrent -Comment[nqo]=ߞߐߕߐ߯ߘߐ ߟߎ߬ ߟߊߖߌ߰ ߞߊ߬ ߓߊ߲߫ ߞߵߊ߬ߟߎ߬ ߘߐߕߟߊ߫ ߓߌߙߏߙߍ߲ߕ ߞߊ߲߬ GenericName[nqo]=ߓߌߙߏߙߍ߲ߕ ߕߣߐ߬ߓߐ߬ߟߊ +Comment[nqo]=ߞߐߕߐ߯ߘߐ ߟߎ߬ ߟߊߖߌ߰ ߞߊ߬ ߓߊ߲߫ ߞߵߊ߬ߟߎ߬ ߘߐߕߟߊ߫ ߓߌߙߏߙߍ߲ߕ ߞߊ߲߬ Name[nqo]=qBittorrent -Comment[uz@Latn]=BitTorrent orqali fayllarni yuklab olish va baham ko‘rish GenericName[uz@Latn]=BitTorrent mijozi +Comment[uz@Latn]=BitTorrent orqali fayllarni yuklab olish va baham ko‘rish Name[uz@Latn]=qBittorrent -Comment[ltg]=Atsasyuteit i daleit failus ar BitTorrent GenericName[ltg]=BitTorrent klients +Comment[ltg]=Atsasyuteit i daleit failus ar BitTorrent Name[ltg]=qBittorrent -Comment[hi_IN]=BitTorrent द्वारा फाइल डाउनलोड व सहभाजन GenericName[hi_IN]=Bittorrent साधन +Comment[hi_IN]=BitTorrent द्वारा फाइल डाउनलोड व सहभाजन Name[hi_IN]=qBittorrent -Comment[az@latin]=Faylları BitTorrent vasitəsilə endirin və paylaşın GenericName[az@latin]=BitTorrent client +Comment[az@latin]=Faylları BitTorrent vasitəsilə endirin və paylaşın Name[az@latin]=qBittorrent -Comment[lv_LV]=Lejupielādēt un koplietot failus ar BitTorrent GenericName[lv_LV]=BitTorrent klients +Comment[lv_LV]=Lejupielādēt un koplietot failus ar BitTorrent Name[lv_LV]=qBittorrent -Comment[ms_MY]=Muat turun dan kongsi fail melalui BitTorrent GenericName[ms_MY]=Klien BitTorrent +Comment[ms_MY]=Muat turun dan kongsi fail melalui BitTorrent Name[ms_MY]=qBittorrent -Comment[mn_MN]=BitTorrent-оор файлуудаа тат, түгээ GenericName[mn_MN]=BitTorrent татагч +Comment[mn_MN]=BitTorrent-оор файлуудаа тат, түгээ Name[mn_MN]=qBittorrent -Comment[ne_NP]=फाइलहरू डाउनलोड गर्नुहोस् र BitTorrent मा साझा गर्नुहोस् GenericName[ne_NP]=BitTorrent क्लाइन्ट +Comment[ne_NP]=फाइलहरू डाउनलोड गर्नुहोस् र BitTorrent मा साझा गर्नुहोस् Name[ne_NP]=qBittorrent -Comment[pt_PT]=Transferir e partilhar ficheiros por BitTorrent GenericName[pt_PT]=Cliente BitTorrent +Comment[pt_PT]=Transferir e partilhar ficheiros por BitTorrent Name[pt_PT]=qBittorrent +GenericName[si_LK]=BitTorrent සේවාදායකයා +Comment[si_LK]=BitTorrent හරහා ගොනු බාගත කර බෙදාගන්න. Name[si_LK]=qBittorrent diff --git a/dist/unix/org.qbittorrent.qBittorrent.metainfo.xml b/dist/unix/org.qbittorrent.qBittorrent.metainfo.xml index 6a840a610..4aacf15ce 100644 --- a/dist/unix/org.qbittorrent.qBittorrent.metainfo.xml +++ b/dist/unix/org.qbittorrent.qBittorrent.metainfo.xml @@ -62,6 +62,6 @@ https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md - + diff --git a/dist/windows/config.nsh b/dist/windows/config.nsh index 658262782..0123e028f 100644 --- a/dist/windows/config.nsh +++ b/dist/windows/config.nsh @@ -14,7 +14,7 @@ ; 4.5.1.3 -> good ; 4.5.1.3.2 -> bad ; 4.5.0beta -> bad -!define /ifndef QBT_VERSION "5.0.0" +!define /ifndef QBT_VERSION "5.2.0" ; Option that controls the installer's window name ; If set, its value will be used like this: @@ -86,7 +86,7 @@ OutFile "qbittorrent_${QBT_INSTALLER_FILENAME}_setup.exe" ;Installer Version Information VIAddVersionKey "ProductName" "qBittorrent" VIAddVersionKey "CompanyName" "The qBittorrent project" -VIAddVersionKey "LegalCopyright" "Copyright ©2006-2024 The qBittorrent project" +VIAddVersionKey "LegalCopyright" "Copyright ©2006-2025 The qBittorrent project" VIAddVersionKey "FileDescription" "qBittorrent - A Bittorrent Client" VIAddVersionKey "FileVersion" "${QBT_VERSION}" diff --git a/dist/windows/installer-translations/italian.nsh b/dist/windows/installer-translations/italian.nsh index a63024b01..2668dc5ca 100644 --- a/dist/windows/installer-translations/italian.nsh +++ b/dist/windows/installer-translations/italian.nsh @@ -29,7 +29,7 @@ LangString launch_qbt ${LANG_ITALIAN} "Esegui qBittorrent." ;LangString inst_requires_64bit ${LANG_ENGLISH} "This installer works only in 64-bit Windows versions." LangString inst_requires_64bit ${LANG_ITALIAN} "Questo installer funziona solo con versioni di Windows a 64bit." ;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 (1809) / Windows Server 2019." -LangString inst_requires_win10 ${LANG_ITALIAN} "This installer requires at least Windows 10 (1809) / Windows Server 2019." +LangString inst_requires_win10 ${LANG_ITALIAN} "Questo installer richiede almeno Windows 10 (1809) / Windows Server 2019." ;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent" LangString inst_uninstall_link_description ${LANG_ITALIAN} "Disinstalla qBittorrent" diff --git a/dist/windows/installer-translations/luxembourgish.nsh b/dist/windows/installer-translations/luxembourgish.nsh index b866e3c93..4a30e954a 100644 --- a/dist/windows/installer-translations/luxembourgish.nsh +++ b/dist/windows/installer-translations/luxembourgish.nsh @@ -15,7 +15,7 @@ LangString inst_magnet ${LANG_LUXEMBOURGISH} "Magnet-Linken mat qBittorrent opma ;LangString inst_firewall ${LANG_ENGLISH} "Add Windows Firewall rule" LangString inst_firewall ${LANG_LUXEMBOURGISH} "Reegel an der Windows Firewall dobäisetzen" ;LangString inst_pathlimit ${LANG_ENGLISH} "Disable Windows path length limit (260 character MAX_PATH limitation, requires Windows 10 1607 or later)" -LangString inst_pathlimit ${LANG_LUXEMBOURGISH} "D'Windows path lenght (Padlängtbeschränkung) desaktivéieren (260 Zeechen MAX_PATH Beschränkung, erfuerdert min. Windows 10 1607)" +LangString inst_pathlimit ${LANG_LUXEMBOURGISH} "D'Windows path length (Padlängtbeschränkung) desaktivéieren (260 Zeechen MAX_PATH Beschränkung, erfuerdert min. Windows 10 1607)" ;LangString inst_firewallinfo ${LANG_ENGLISH} "Adding Windows Firewall rule" LangString inst_firewallinfo ${LANG_LUXEMBOURGISH} "Reegel an der Windows Firewall dobäisetzen" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." diff --git a/dist/windows/installer-translations/portuguese.nsh b/dist/windows/installer-translations/portuguese.nsh index b067b00da..c149119f4 100644 --- a/dist/windows/installer-translations/portuguese.nsh +++ b/dist/windows/installer-translations/portuguese.nsh @@ -7,7 +7,7 @@ LangString inst_desktop ${LANG_PORTUGUESE} "Criar atalho no ambiente de trabalho ;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut" LangString inst_startmenu ${LANG_PORTUGUESE} "Criar atalho no menu Iniciar" ;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up" -LangString inst_startup ${LANG_PORTUGUESE} "Iniciar o qBittorrent na inicialização do Windows" +LangString inst_startup ${LANG_PORTUGUESE} "Iniciar o qBittorrent no arranque do Windows" ;LangString inst_torrent ${LANG_ENGLISH} "Open .torrent files with qBittorrent" LangString inst_torrent ${LANG_PORTUGUESE} "Abrir ficheiros .torrent com o qBittorrent" ;LangString inst_magnet ${LANG_ENGLISH} "Open magnet links with qBittorrent" @@ -29,7 +29,7 @@ LangString launch_qbt ${LANG_PORTUGUESE} "Iniciar qBittorrent." ;LangString inst_requires_64bit ${LANG_ENGLISH} "This installer works only in 64-bit Windows versions." LangString inst_requires_64bit ${LANG_PORTUGUESE} "Este instalador funciona apenas em versões Windows de 64 bits." ;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 (1809) / Windows Server 2019." -LangString inst_requires_win10 ${LANG_PORTUGUESE} "This installer requires at least Windows 10 (1809) / Windows Server 2019." +LangString inst_requires_win10 ${LANG_PORTUGUESE} "Este instalador requer, pelo menos, o Windows 10 (1809) / Windows Server 2019." ;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent" LangString inst_uninstall_link_description ${LANG_PORTUGUESE} "Desinstalar qBittorrent" diff --git a/dist/windows/installer-translations/simpchinese.nsh b/dist/windows/installer-translations/simpchinese.nsh index 42744b0d0..f0256e046 100644 --- a/dist/windows/installer-translations/simpchinese.nsh +++ b/dist/windows/installer-translations/simpchinese.nsh @@ -23,13 +23,13 @@ LangString inst_warning ${LANG_SIMPCHINESE} "qBittorrent 正在运行。 安装 ;LangString inst_uninstall_question ${LANG_ENGLISH} "Current version will be uninstalled. User settings and torrents will remain intact." LangString inst_uninstall_question ${LANG_SIMPCHINESE} "当前版本会被卸载。 用户设置和种子会被完整保留。" ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." -LangString inst_unist ${LANG_SIMPCHINESE} "卸载以前的版本。" +LangString inst_unist ${LANG_SIMPCHINESE} "正在卸载以前的版本。" ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." LangString launch_qbt ${LANG_SIMPCHINESE} "启动 qBittorrent。" ;LangString inst_requires_64bit ${LANG_ENGLISH} "This installer works only in 64-bit Windows versions." LangString inst_requires_64bit ${LANG_SIMPCHINESE} "此安装程序仅支持 64 位 Windows 系统。" ;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 (1809) / Windows Server 2019." -LangString inst_requires_win10 ${LANG_SIMPCHINESE} "This installer requires at least Windows 10 (1809) / Windows Server 2019." +LangString inst_requires_win10 ${LANG_SIMPCHINESE} "此安装程序仅支持 Windows 10 (1809) / Windows Server 2019 或更新的系统。" ;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent" LangString inst_uninstall_link_description ${LANG_SIMPCHINESE} "卸载 qBittorrent" diff --git a/dist/windows/installer-translations/swedish.nsh b/dist/windows/installer-translations/swedish.nsh index 77db60683..51912d112 100644 --- a/dist/windows/installer-translations/swedish.nsh +++ b/dist/windows/installer-translations/swedish.nsh @@ -7,21 +7,21 @@ LangString inst_desktop ${LANG_SWEDISH} "Skapa skrivbordsgenväg" ;LangString inst_startmenu ${LANG_ENGLISH} "Create Start Menu Shortcut" LangString inst_startmenu ${LANG_SWEDISH} "Skapa startmenygenväg" ;LangString inst_startup ${LANG_ENGLISH} "Start qBittorrent on Windows start up" -LangString inst_startup ${LANG_SWEDISH} "Starta qBittorrent vid Windows start" +LangString inst_startup ${LANG_SWEDISH} "Starta qBittorrent vid Windows-uppstart" ;LangString inst_torrent ${LANG_ENGLISH} "Open .torrent files with qBittorrent" LangString inst_torrent ${LANG_SWEDISH} "Öppna .torrent-filer med qBittorrent" ;LangString inst_magnet ${LANG_ENGLISH} "Open magnet links with qBittorrent" LangString inst_magnet ${LANG_SWEDISH} "Öppna magnetlänkar med qBittorrent" ;LangString inst_firewall ${LANG_ENGLISH} "Add Windows Firewall rule" -LangString inst_firewall ${LANG_SWEDISH} "Lägg till Windows-brandväggregel" +LangString inst_firewall ${LANG_SWEDISH} "Lägg till Windows-brandväggsregel" ;LangString inst_pathlimit ${LANG_ENGLISH} "Disable Windows path length limit (260 character MAX_PATH limitation, requires Windows 10 1607 or later)" LangString inst_pathlimit ${LANG_SWEDISH} "Inaktivera gränsen för Windows-sökvägslängd (260 tecken MAX_PATH-begränsning, kräver Windows 10 1607 eller senare)" ;LangString inst_firewallinfo ${LANG_ENGLISH} "Adding Windows Firewall rule" -LangString inst_firewallinfo ${LANG_SWEDISH} "Lägger till Windows-brandväggregel" +LangString inst_firewallinfo ${LANG_SWEDISH} "Lägger till Windows-brandväggsregel" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." -LangString inst_warning ${LANG_SWEDISH} "qBittorrent körs. Vänligen stäng programmet innan du installerar." +LangString inst_warning ${LANG_SWEDISH} "qBittorrent körs. Stäng programmet innan du installerar." ;LangString inst_uninstall_question ${LANG_ENGLISH} "Current version will be uninstalled. User settings and torrents will remain intact." -LangString inst_uninstall_question ${LANG_SWEDISH} "Nuvarande version avinstalleras. Användarinställningar och torrenter kommer att förbli intakta." +LangString inst_uninstall_question ${LANG_SWEDISH} "Aktuell version avinstalleras. Användarinställningar och torrenter kommer att förbli intakta." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SWEDISH} "Avinstallerar tidigare version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." @@ -53,7 +53,7 @@ LangString remove_firewallinfo ${LANG_SWEDISH} "Tar bort Windows-brandväggsrege ;LangString remove_cache ${LANG_ENGLISH} "Remove torrents and cached data" LangString remove_cache ${LANG_SWEDISH} "Ta bort torrenter och cachade data" ;LangString uninst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before uninstalling." -LangString uninst_warning ${LANG_SWEDISH} "qBittorrent körs. Vänligen stäng programmet innan du avinstallerar." +LangString uninst_warning ${LANG_SWEDISH} "qBittorrent körs. Stäng programmet innan du avinstallerar." ;LangString uninst_tor_warn ${LANG_ENGLISH} "Not removing .torrent association. It is associated with:" LangString uninst_tor_warn ${LANG_SWEDISH} "Tar inte bort .torrent-association. Den är associerad med:" ;LangString uninst_mag_warn ${LANG_ENGLISH} "Not removing magnet association. It is associated with:" diff --git a/dist/windows/installer-translations/tradchinese.nsh b/dist/windows/installer-translations/tradchinese.nsh index cfacc6d92..49bcff874 100644 --- a/dist/windows/installer-translations/tradchinese.nsh +++ b/dist/windows/installer-translations/tradchinese.nsh @@ -29,7 +29,7 @@ LangString launch_qbt ${LANG_TRADCHINESE} "啟動 qBittorrent" ;LangString inst_requires_64bit ${LANG_ENGLISH} "This installer works only in 64-bit Windows versions." LangString inst_requires_64bit ${LANG_TRADCHINESE} "此安裝程式僅支援 64 位元版本的 Windows。" ;LangString inst_requires_win10 ${LANG_ENGLISH} "This installer requires at least Windows 10 (1809) / Windows Server 2019." -LangString inst_requires_win10 ${LANG_TRADCHINESE} "This installer requires at least Windows 10 (1809) / Windows Server 2019." +LangString inst_requires_win10 ${LANG_TRADCHINESE} "此安裝程式僅支援 Windows 10 (1809) / Windows Server 2019 以上的系統。" ;LangString inst_uninstall_link_description ${LANG_ENGLISH} "Uninstall qBittorrent" LangString inst_uninstall_link_description ${LANG_TRADCHINESE} "移除 qBittorrent" diff --git a/doc/en/qbittorrent-nox.1 b/doc/en/qbittorrent-nox.1 index 7d1ee0dd1..140ad389c 100644 --- a/doc/en/qbittorrent-nox.1 +++ b/doc/en/qbittorrent-nox.1 @@ -1,41 +1,44 @@ -.\" Automatically generated by Pandoc 3.1.7 +.\" Automatically generated by Pandoc 3.4 .\" -.TH "QBITTORRENT-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt" "" +.TH "QBITTORRENT\-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt" .SH NAME -qBittorrent-nox - a command line Bittorrent client written in C++ / Qt +qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt .SH SYNOPSIS -\f[B]qbittorrent-nox\f[R] -\f[CR][--d|--daemon] [--webui-port=x] [TORRENT_FILE | URL]...\f[R] +\f[B]qbittorrent\-nox\f[R] +\f[CR][\-\-d|\-\-daemon] [\-\-webui\-port=x] [TORRENT_FILE | URL]...\f[R] .PP -\f[B]qbittorrent-nox\f[R] \f[CR]--help\f[R] +\f[B]qbittorrent\-nox\f[R] \f[CR]\-\-help\f[R] .PP -\f[B]qbittorrent-nox\f[R] \f[CR]--version\f[R] +\f[B]qbittorrent\-nox\f[R] \f[CR]\-\-version\f[R] .SH DESCRIPTION -\f[B]qBittorrent-nox\f[R] is an advanced command-line Bittorrent client -written in C++ / Qt using the \f[B]libtorrent-rasterbar\f[R] library by -Arvid Norberg. -qBittorrent-nox aims to be a good alternative to other command line +\f[B]qBittorrent\-nox\f[R] is an advanced command\-line Bittorrent +client written in C++ / Qt using the \f[B]libtorrent\-rasterbar\f[R] +library by Arvid Norberg. +qBittorrent\-nox aims to be a good alternative to other command line bittorrent clients and provides features similar to popular graphical clients. .PP -qBittorrent-nox is fast, stable, light and it supports unicode. -It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze +qBittorrent\-nox is fast, stable, light and it supports unicode. +It also comes with UPnP port forwarding / NAT\-PMP, encryption (Vuze compatible), FAST extension (mainline) and PeX support (utorrent compatible). .PP -qBittorrent-nox is meant to be controlled via its feature-rich Web UI +qBittorrent\-nox is meant to be controlled via its feature\-rich Web UI which is accessible as a default on http://localhost:8080. The Web UI access is secured and the default account user name is \[lq]admin\[rq] with \[lq]adminadmin\[rq] as a password. .SH OPTIONS -\f[B]\f[CB]--help\f[B]\f[R] Prints the command line options. +\f[B]\f[CB]\-\-help\f[B]\f[R] Prints the command line options. .PP -\f[B]\f[CB]--version\f[B]\f[R] Prints qbittorrent program version +\f[B]\f[CB]\-\-version\f[B]\f[R] Prints qbittorrent program version number. .PP -\f[B]\f[CB]--webui-port=x\f[B]\f[R] Changes Web UI port to x (default: -8080). +\f[B]\f[CB]\-\-webui\-port=x\f[B]\f[R] Changes Web UI port to x +(default: 8080). .SH BUGS If you find a bug, please report it at https://bugs.qbittorrent.org .SH AUTHORS -Christophe Dumez . +Christophe Dumez \c +.MT chris@qbittorrent.org +.ME \c +\&. diff --git a/doc/en/qbittorrent.1 b/doc/en/qbittorrent.1 index 4efca9e0d..c8737d286 100644 --- a/doc/en/qbittorrent.1 +++ b/doc/en/qbittorrent.1 @@ -1,35 +1,38 @@ -.\" Automatically generated by Pandoc 3.1.7 +.\" Automatically generated by Pandoc 3.4 .\" -.TH "QBITTORRENT" "1" "January 16th 2010" "Bittorrent client written in C++ / Qt" "" +.TH "QBITTORRENT" "1" "January 16th 2010" "Bittorrent client written in C++ / Qt" .SH NAME -qBittorrent - a Bittorrent client written in C++ / Qt +qBittorrent \- a Bittorrent client written in C++ / Qt .SH SYNOPSIS \f[B]qbittorrent\f[R] -\f[CR][--no-splash] [--webui-port=x] [TORRENT_FILE | URL]...\f[R] +\f[CR][\-\-no\-splash] [\-\-webui\-port=x] [TORRENT_FILE | URL]...\f[R] .PP -\f[B]qbittorrent\f[R] \f[CR]--help\f[R] +\f[B]qbittorrent\f[R] \f[CR]\-\-help\f[R] .PP -\f[B]qbittorrent\f[R] \f[CR]--version\f[R] +\f[B]qbittorrent\f[R] \f[CR]\-\-version\f[R] .SH DESCRIPTION \f[B]qBittorrent\f[R] is an advanced Bittorrent client written in C++ / -Qt, using the \f[B]libtorrent-rasterbar\f[R] library by Arvid Norberg. +Qt, using the \f[B]libtorrent\-rasterbar\f[R] library by Arvid Norberg. qBittorrent is similar to uTorrent. qBittorrent is fast, stable, light, it supports unicode and it provides a good integrated search engine. -It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze +It also comes with UPnP port forwarding / NAT\-PMP, encryption (Vuze compatible), FAST extension (mainline) and PeX support (utorrent compatible). .SH OPTIONS -\f[B]\f[CB]--help\f[B]\f[R] Prints the command line options. +\f[B]\f[CB]\-\-help\f[B]\f[R] Prints the command line options. .PP -\f[B]\f[CB]--version\f[B]\f[R] Prints qbittorrent program version +\f[B]\f[CB]\-\-version\f[B]\f[R] Prints qbittorrent program version number. .PP -\f[B]\f[CB]--no-splash\f[B]\f[R] Disables splash screen on startup. +\f[B]\f[CB]\-\-no\-splash\f[B]\f[R] Disables splash screen on startup. .PP -\f[B]\f[CB]--webui-port=x\f[B]\f[R] Changes Web UI port to x (default: -8080). +\f[B]\f[CB]\-\-webui\-port=x\f[B]\f[R] Changes Web UI port to x +(default: 8080). .SH BUGS If you find a bug, please report it at https://bugs.qbittorrent.org .SH AUTHORS -Christophe Dumez . +Christophe Dumez \c +.MT chris@qbittorrent.org +.ME \c +\&. diff --git a/doc/ru/qbittorrent-nox.1 b/doc/ru/qbittorrent-nox.1 index ba8713bae..315753991 100644 --- a/doc/ru/qbittorrent-nox.1 +++ b/doc/ru/qbittorrent-nox.1 @@ -1,7 +1,10 @@ -.\" Automatically generated by Pandoc 3.1.7 +.\" Automatically generated by Pandoc 3.4 .\" -.TH "QBITTORRENT-NOX" "1" "16 января 2010" "Клиент сети БитТоррент для командной строки" "" +.TH "QBITTORRENT\-NOX" "1" "16 января 2010" "Клиент сети БитТоррент для командной строки" .SH НАЗВАНИЕ -qBittorrent-nox \[em] клиент сети БитТоррент для командной строки. +qBittorrent\-nox \[em] клиент сети БитТоррент для командной строки. .SH АВТОРЫ -Christophe Dumez . +Christophe Dumez \c +.MT chris@qbittorrent.org +.ME \c +\&. diff --git a/doc/ru/qbittorrent.1 b/doc/ru/qbittorrent.1 index 2fc395ddd..7820ac398 100644 --- a/doc/ru/qbittorrent.1 +++ b/doc/ru/qbittorrent.1 @@ -1,7 +1,10 @@ -.\" Automatically generated by Pandoc 3.1.7 +.\" Automatically generated by Pandoc 3.4 .\" -.TH "QBITTORRENT" "1" "16 января 2010" "Клиент сети БитТоррент" "" +.TH "QBITTORRENT" "1" "16 января 2010" "Клиент сети БитТоррент" .SH НАЗВАНИЕ qBittorrent \[em] клиент сети БитТоррент. .SH АВТОРЫ -Christophe Dumez . +Christophe Dumez \c +.MT chris@qbittorrent.org +.ME \c +\&. diff --git a/src/app/application.cpp b/src/app/application.cpp index 1d10731ed..90e785e1a 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2024 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -124,6 +124,28 @@ namespace const int PIXMAP_CACHE_SIZE = 64 * 1024 * 1024; // 64MiB #endif + const QString PARAM_ADDSTOPPED = u"@addStopped"_s; + const QString PARAM_CATEGORY = u"@category"_s; + const QString PARAM_FIRSTLASTPIECEPRIORITY = u"@firstLastPiecePriority"_s; + const QString PARAM_SAVEPATH = u"@savePath"_s; + const QString PARAM_SEQUENTIAL = u"@sequential"_s; + const QString PARAM_SKIPCHECKING = u"@skipChecking"_s; + const QString PARAM_SKIPDIALOG = u"@skipDialog"_s; + + QString bindParamValue(const QStringView paramName, const QStringView paramValue) + { + return paramName + u'=' + paramValue; + } + + std::pair parseParam(const QStringView param) + { + const qsizetype sepIndex = param.indexOf(u'='); + if (sepIndex >= 0) + return {param.first(sepIndex), param.sliced(sepIndex + 1)}; + + return {param, {}}; + } + QString serializeParams(const QBtCommandLineParameters ¶ms) { QStringList result; @@ -138,85 +160,86 @@ namespace const BitTorrent::AddTorrentParams &addTorrentParams = params.addTorrentParams; if (!addTorrentParams.savePath.isEmpty()) - result.append(u"@savePath=" + addTorrentParams.savePath.data()); + result.append(bindParamValue(PARAM_SAVEPATH, addTorrentParams.savePath.data())); if (addTorrentParams.addStopped.has_value()) - result.append(*addTorrentParams.addStopped ? u"@addStopped=1"_s : u"@addStopped=0"_s); + result.append(bindParamValue(PARAM_ADDSTOPPED, (*addTorrentParams.addStopped ? u"1" : u"0"))); if (addTorrentParams.skipChecking) - result.append(u"@skipChecking"_s); + result.append(PARAM_SKIPCHECKING); if (!addTorrentParams.category.isEmpty()) - result.append(u"@category=" + addTorrentParams.category); + result.append(bindParamValue(PARAM_CATEGORY, addTorrentParams.category)); if (addTorrentParams.sequential) - result.append(u"@sequential"_s); + result.append(PARAM_SEQUENTIAL); if (addTorrentParams.firstLastPiecePriority) - result.append(u"@firstLastPiecePriority"_s); + result.append(PARAM_FIRSTLASTPIECEPRIORITY); if (params.skipDialog.has_value()) - result.append(*params.skipDialog ? u"@skipDialog=1"_s : u"@skipDialog=0"_s); + result.append(bindParamValue(PARAM_SKIPDIALOG, (*params.skipDialog ? u"1" : u"0"))); result += params.torrentSources; return result.join(PARAMS_SEPARATOR); } - QBtCommandLineParameters parseParams(const QString &str) + QBtCommandLineParameters parseParams(const QStringView str) { QBtCommandLineParameters parsedParams; BitTorrent::AddTorrentParams &addTorrentParams = parsedParams.addTorrentParams; - for (QString param : asConst(str.split(PARAMS_SEPARATOR, Qt::SkipEmptyParts))) + for (QStringView param : asConst(str.split(PARAMS_SEPARATOR, Qt::SkipEmptyParts))) { param = param.trimmed(); + const auto [paramName, paramValue] = parseParam(param); // Process strings indicating options specified by the user. - if (param.startsWith(u"@savePath=")) + if (paramName == PARAM_SAVEPATH) { - addTorrentParams.savePath = Path(param.mid(10)); + addTorrentParams.savePath = Path(paramValue.toString()); continue; } - if (param.startsWith(u"@addStopped=")) + if (paramName == PARAM_ADDSTOPPED) { - addTorrentParams.addStopped = (QStringView(param).mid(11).toInt() != 0); + addTorrentParams.addStopped = (paramValue.toInt() != 0); continue; } - if (param == u"@skipChecking") + if (paramName == PARAM_SKIPCHECKING) { addTorrentParams.skipChecking = true; continue; } - if (param.startsWith(u"@category=")) + if (paramName == PARAM_CATEGORY) { - addTorrentParams.category = param.mid(10); + addTorrentParams.category = paramValue.toString(); continue; } - if (param == u"@sequential") + if (paramName == PARAM_SEQUENTIAL) { addTorrentParams.sequential = true; continue; } - if (param == u"@firstLastPiecePriority") + if (paramName == PARAM_FIRSTLASTPIECEPRIORITY) { addTorrentParams.firstLastPiecePriority = true; continue; } - if (param.startsWith(u"@skipDialog=")) + if (paramName == PARAM_SKIPDIALOG) { - parsedParams.skipDialog = (QStringView(param).mid(12).toInt() != 0); + parsedParams.skipDialog = (paramValue.toInt() != 0); continue; } - parsedParams.torrentSources.append(param); + parsedParams.torrentSources.append(param.toString()); } return parsedParams; @@ -579,7 +602,7 @@ void Application::runExternalProgram(const QString &programTemplate, const BitTo const QString logMsg = tr("Running external program. Torrent: \"%1\". Command: `%2`"); const QString logMsgError = tr("Failed to run external program. Torrent: \"%1\". Command: `%2`"); - // The processing sequenece is different for Windows and other OS, this is intentional + // The processing sequence is different for Windows and other OS, this is intentional #if defined(Q_OS_WIN) const QString program = replaceVariables(programTemplate); const std::wstring programWStr = program.toStdWString(); @@ -636,7 +659,13 @@ void Application::runExternalProgram(const QString &programTemplate, const BitTo { // strip redundant quotes if (arg.startsWith(u'"') && arg.endsWith(u'"')) - arg = arg.mid(1, (arg.size() - 2)); + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + arg.slice(1, (arg.size() - 2)); +#else + arg.removeLast().removeFirst(); +#endif + } arg = replaceVariables(arg); } @@ -645,6 +674,9 @@ void Application::runExternalProgram(const QString &programTemplate, const BitTo QProcess proc; proc.setProgram(command); proc.setArguments(args); +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + proc.setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif if (proc.startDetached()) { @@ -897,10 +929,10 @@ int Application::exec() m_desktopIntegration->showNotification(tr("Torrent added"), tr("'%1' was added.", "e.g: xxx.avi was added.").arg(torrent->name())); }); connect(m_addTorrentManager, &AddTorrentManager::addTorrentFailed, this - , [this](const QString &source, const QString &reason) + , [this](const QString &source, const BitTorrent::AddTorrentError &reason) { m_desktopIntegration->showNotification(tr("Add torrent failed") - , tr("Couldn't add torrent '%1', reason: %2.").arg(source, reason)); + , tr("Couldn't add torrent '%1', reason: %2.").arg(source, reason.message)); }); disconnect(m_desktopIntegration, &DesktopIntegration::activationRequested, this, &Application::createStartupProgressDialog); diff --git a/src/app/cmdoptions.cpp b/src/app/cmdoptions.cpp index 12492359d..b65e13fd7 100644 --- a/src/app/cmdoptions.cpp +++ b/src/app/cmdoptions.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #if defined(Q_OS_WIN) && !defined(DISABLE_GUI) #include @@ -60,7 +61,7 @@ namespace class Option { protected: - explicit constexpr Option(const char *name, char shortcut = 0) + explicit constexpr Option(const QStringView name, const QChar shortcut = QChar::Null) : m_name {name} , m_shortcut {shortcut} { @@ -68,23 +69,23 @@ namespace QString fullParameter() const { - return u"--" + QString::fromLatin1(m_name); + return u"--" + m_name.toString(); } QString shortcutParameter() const { - return u"-" + QChar::fromLatin1(m_shortcut); + return u"-" + m_shortcut; } bool hasShortcut() const { - return m_shortcut != 0; + return !m_shortcut.isNull(); } QString envVarName() const { return u"QBT_" - + QString::fromLatin1(m_name).toUpper().replace(u'-', u'_'); + + m_name.toString().toUpper().replace(u'-', u'_'); } public: @@ -99,15 +100,15 @@ namespace } private: - const char *m_name = nullptr; - const char m_shortcut; + const QStringView m_name; + const QChar m_shortcut; }; // Boolean option. class BoolOption : protected Option { public: - explicit constexpr BoolOption(const char *name, char shortcut = 0) + explicit constexpr BoolOption(const QStringView name, const QChar shortcut = QChar::Null) : Option {name, shortcut} { } @@ -139,8 +140,8 @@ namespace struct StringOption : protected Option { public: - explicit constexpr StringOption(const char *name) - : Option {name, 0} + explicit constexpr StringOption(const QStringView name) + : Option {name, QChar::Null} { } @@ -181,7 +182,7 @@ namespace class IntOption : protected StringOption { public: - explicit constexpr IntOption(const char *name) + explicit constexpr IntOption(const QStringView name) : StringOption {name} { } @@ -229,8 +230,8 @@ namespace class TriStateBoolOption : protected Option { public: - constexpr TriStateBoolOption(const char *name, bool defaultValue) - : Option {name, 0} + constexpr TriStateBoolOption(const QStringView name, const bool defaultValue) + : Option {name, QChar::Null} , m_defaultValue(defaultValue) { } @@ -299,31 +300,32 @@ namespace return arg.section(u'=', 0, 0) == option.fullParameter(); } - bool m_defaultValue; + private: + bool m_defaultValue = false; }; - constexpr const BoolOption SHOW_HELP_OPTION {"help", 'h'}; + constexpr const BoolOption SHOW_HELP_OPTION {u"help", u'h'}; #if !defined(Q_OS_WIN) || defined(DISABLE_GUI) - constexpr const BoolOption SHOW_VERSION_OPTION {"version", 'v'}; + constexpr const BoolOption SHOW_VERSION_OPTION {u"version", u'v'}; #endif - constexpr const BoolOption CONFIRM_LEGAL_NOTICE {"confirm-legal-notice"}; + constexpr const BoolOption CONFIRM_LEGAL_NOTICE {u"confirm-legal-notice"}; #if defined(DISABLE_GUI) && !defined(Q_OS_WIN) - constexpr const BoolOption DAEMON_OPTION {"daemon", 'd'}; + constexpr const BoolOption DAEMON_OPTION {u"daemon", u'd'}; #else - constexpr const BoolOption NO_SPLASH_OPTION {"no-splash"}; + constexpr const BoolOption NO_SPLASH_OPTION {u"no-splash"}; #endif - constexpr const IntOption WEBUI_PORT_OPTION {"webui-port"}; - constexpr const IntOption TORRENTING_PORT_OPTION {"torrenting-port"}; - constexpr const StringOption PROFILE_OPTION {"profile"}; - constexpr const StringOption CONFIGURATION_OPTION {"configuration"}; - constexpr const BoolOption RELATIVE_FASTRESUME {"relative-fastresume"}; - constexpr const StringOption SAVE_PATH_OPTION {"save-path"}; - constexpr const TriStateBoolOption STOPPED_OPTION {"add-stopped", true}; - constexpr const BoolOption SKIP_HASH_CHECK_OPTION {"skip-hash-check"}; - constexpr const StringOption CATEGORY_OPTION {"category"}; - constexpr const BoolOption SEQUENTIAL_OPTION {"sequential"}; - constexpr const BoolOption FIRST_AND_LAST_OPTION {"first-and-last"}; - constexpr const TriStateBoolOption SKIP_DIALOG_OPTION {"skip-dialog", true}; + constexpr const IntOption WEBUI_PORT_OPTION {u"webui-port"}; + constexpr const IntOption TORRENTING_PORT_OPTION {u"torrenting-port"}; + constexpr const StringOption PROFILE_OPTION {u"profile"}; + constexpr const StringOption CONFIGURATION_OPTION {u"configuration"}; + constexpr const BoolOption RELATIVE_FASTRESUME {u"relative-fastresume"}; + constexpr const StringOption SAVE_PATH_OPTION {u"save-path"}; + constexpr const TriStateBoolOption STOPPED_OPTION {u"add-stopped", true}; + constexpr const BoolOption SKIP_HASH_CHECK_OPTION {u"skip-hash-check"}; + constexpr const StringOption CATEGORY_OPTION {u"category"}; + constexpr const BoolOption SEQUENTIAL_OPTION {u"sequential"}; + constexpr const BoolOption FIRST_AND_LAST_OPTION {u"first-and-last"}; + constexpr const TriStateBoolOption SKIP_DIALOG_OPTION {u"skip-dialog", true}; } QBtCommandLineParameters::QBtCommandLineParameters(const QProcessEnvironment &env) @@ -463,13 +465,13 @@ QBtCommandLineParameters parseCommandLine(const QStringList &args) return result; } -QString wrapText(const QString &text, int initialIndentation = USAGE_TEXT_COLUMN, int wrapAtColumn = WRAP_AT_COLUMN) +QString wrapText(const QString &text, const int initialIndentation = USAGE_TEXT_COLUMN, const int wrapAtColumn = WRAP_AT_COLUMN) { - QStringList words = text.split(u' '); + const QStringList words = text.split(u' '); QStringList lines = {words.first()}; int currentLineMaxLength = wrapAtColumn - initialIndentation; - for (const QString &word : asConst(words.mid(1))) + for (const QString &word : asConst(words.sliced(1))) { if (lines.last().length() + word.length() + 1 < currentLineMaxLength) { diff --git a/src/app/filelogger.cpp b/src/app/filelogger.cpp index e0cafbb7e..5436c1392 100644 --- a/src/app/filelogger.cpp +++ b/src/app/filelogger.cpp @@ -32,8 +32,8 @@ #include #include +#include #include -#include #include "base/global.h" #include "base/logger.h" diff --git a/src/app/main.cpp b/src/app/main.cpp index 53455f99b..d80629f44 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2014-2023 Vladimir Golovnev + * Copyright (C) 2014-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -58,10 +58,6 @@ #include #include -#ifdef Q_OS_WIN -#include -#endif - #ifdef QBT_STATIC_QT #include Q_IMPORT_PLUGIN(QICOPlugin) @@ -189,11 +185,6 @@ int main(int argc, char *argv[]) // We must save it here because QApplication constructor may change it const bool isOneArg = (argc == 2); -#if !defined(DISABLE_GUI) && defined(Q_OS_WIN) - if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10) - QApplication::setStyle(u"Fusion"_s); -#endif - // `app` must be declared out of try block to allow display message box in case of exception std::unique_ptr app; try diff --git a/src/app/qtlocalpeer/qtlocalpeer.cpp b/src/app/qtlocalpeer/qtlocalpeer.cpp index 2ad65f31a..cc97eb464 100644 --- a/src/app/qtlocalpeer/qtlocalpeer.cpp +++ b/src/app/qtlocalpeer/qtlocalpeer.cpp @@ -74,6 +74,7 @@ #include #endif +#include #include #include #include @@ -90,7 +91,7 @@ namespace QtLP_Private #endif } -const char ACK[] = "ack"; +const QByteArray ACK = QByteArrayLiteral("ack"); QtLocalPeer::QtLocalPeer(const QString &path, QObject *parent) : QObject(parent) @@ -169,7 +170,7 @@ bool QtLocalPeer::sendMessage(const QString &message, const int timeout) { res &= socket.waitForReadyRead(timeout); // wait for ack if (res) - res &= (socket.read(qstrlen(ACK)) == ACK); + res &= (socket.read(ACK.size()) == ACK); } return res; } @@ -220,7 +221,7 @@ void QtLocalPeer::receiveConnection() return; } QString message(QString::fromUtf8(uMsg)); - socket->write(ACK, qstrlen(ACK)); + socket->write(ACK); socket->waitForBytesWritten(1000); socket->waitForDisconnected(1000); // make sure client reads ack delete socket; diff --git a/src/app/qtlocalpeer/qtlockedfile.h b/src/app/qtlocalpeer/qtlockedfile.h index 63d78aaec..3ea32c61a 100644 --- a/src/app/qtlocalpeer/qtlockedfile.h +++ b/src/app/qtlocalpeer/qtlockedfile.h @@ -71,8 +71,8 @@ #include #ifdef Q_OS_WIN +#include #include -#include #endif namespace QtLP_Private @@ -105,7 +105,7 @@ namespace QtLP_Private Qt::HANDLE m_writeMutex = nullptr; Qt::HANDLE m_readMutex = nullptr; - QVector m_readMutexes; + QList m_readMutexes; QString m_mutexName; #endif diff --git a/src/base/3rdparty/expected.hpp b/src/base/3rdparty/expected.hpp index a1ddc6f0e..305f3abad 100644 --- a/src/base/3rdparty/expected.hpp +++ b/src/base/3rdparty/expected.hpp @@ -13,8 +13,8 @@ #define NONSTD_EXPECTED_LITE_HPP #define expected_lite_MAJOR 0 -#define expected_lite_MINOR 6 -#define expected_lite_PATCH 3 +#define expected_lite_MINOR 8 +#define expected_lite_PATCH 0 #define expected_lite_VERSION expected_STRINGIFY(expected_lite_MAJOR) "." expected_STRINGIFY(expected_lite_MINOR) "." expected_STRINGIFY(expected_lite_PATCH) @@ -66,6 +66,21 @@ # define nsel_P0323R 7 #endif +// Monadic operations proposal revisions: +// +// P2505R0: 0 (2021-12-12) +// P2505R1: 1 (2022-02-10) +// P2505R2: 2 (2022-04-15) +// P2505R3: 3 (2022-06-05) +// P2505R4: 4 (2022-06-15) +// P2505R5: 5 (2022-09-20) * +// +// expected-lite uses 5 + +#ifndef nsel_P2505R +# define nsel_P2505R 5 +#endif + // Control presence of C++ exception handling (try and auto discover): #ifndef nsel_CONFIG_NO_EXCEPTIONS @@ -216,8 +231,24 @@ inline in_place_t in_place_index( detail::in_place_index_tag = detail::in_pla namespace nonstd { using std::expected; -// ... -} + using std::unexpected; + using std::bad_expected_access; + using std::unexpect_t; + using std::unexpect; + + //[[deprecated("replace unexpected_type with unexpected")]] + + template< typename E > + using unexpected_type = unexpected; + + // Unconditionally provide make_unexpected(): + + template< typename E> + constexpr auto make_unexpected( E && value ) -> unexpected< typename std::decay::type > + { + return unexpected< typename std::decay::type >( std::forward(value) ); + } +} // namespace nonstd #else // nsel_USES_STD_EXPECTED @@ -316,16 +347,6 @@ namespace nonstd { #define nsel_REQUIRES_A(...) \ , typename std::enable_if< (__VA_ARGS__), void*>::type = nullptr -// Presence of language and library features: - -#ifdef _HAS_CPP0X -# define nsel_HAS_CPP0X _HAS_CPP0X -#else -# define nsel_HAS_CPP0X 0 -#endif - -//#define nsel_CPP11_140 (nsel_CPP11_OR_GREATER || nsel_COMPILER_MSVC_VER >= 1900) - // Clang, GNUC, MSVC warning suppression macros: #ifdef __clang__ @@ -335,20 +356,23 @@ namespace nonstd { #endif // __clang__ #if nsel_COMPILER_MSVC_VERSION >= 140 -# pragma warning( push ) -# define nsel_DISABLE_MSVC_WARNINGS(codes) __pragma( warning(disable: codes) ) +# define nsel_DISABLE_MSVC_WARNINGS(codes) __pragma( warning(push) ) __pragma( warning(disable: codes) ) #else # define nsel_DISABLE_MSVC_WARNINGS(codes) #endif #ifdef __clang__ -# define nsel_RESTORE_WARNINGS() _Pragma("clang diagnostic pop") +# define nsel_RESTORE_WARNINGS() _Pragma("clang diagnostic pop") +# define nsel_RESTORE_MSVC_WARNINGS() #elif defined __GNUC__ -# define nsel_RESTORE_WARNINGS() _Pragma("GCC diagnostic pop") +# define nsel_RESTORE_WARNINGS() _Pragma("GCC diagnostic pop") +# define nsel_RESTORE_MSVC_WARNINGS() #elif nsel_COMPILER_MSVC_VERSION >= 140 -# define nsel_RESTORE_WARNINGS() __pragma( warning( pop ) ) +# define nsel_RESTORE_WARNINGS() __pragma( warning( pop ) ) +# define nsel_RESTORE_MSVC_WARNINGS() nsel_RESTORE_WARNINGS() #else # define nsel_RESTORE_WARNINGS() +# define nsel_RESTORE_MSVC_WARNINGS() #endif // Suppress the following MSVC (GSL) warnings: @@ -356,6 +380,30 @@ namespace nonstd { nsel_DISABLE_MSVC_WARNINGS( 26409 ) +// Presence of language and library features: + +#ifdef _HAS_CPP0X +# define nsel_HAS_CPP0X _HAS_CPP0X +#else +# define nsel_HAS_CPP0X 0 +#endif + +// Presence of language and library features: + +#define nsel_CPP17_000 (nsel_CPP17_OR_GREATER) + +// Presence of C++17 language features: + +#define nsel_HAVE_DEPRECATED nsel_CPP17_000 + +// C++ feature usage: + +#if nsel_HAVE_DEPRECATED +# define nsel_deprecated(msg) [[deprecated(msg)]] +#else +# define nsel_deprecated(msg) /*[[deprecated]]*/ +#endif + // // expected: // @@ -452,8 +500,162 @@ class expected; namespace detail { +#if nsel_P2505R >= 3 +template< typename T > +struct is_expected : std::false_type {}; + +template< typename T, typename E > +struct is_expected< expected< T, E > > : std::true_type {}; +#endif // nsel_P2505R >= 3 + /// discriminated union to hold value or 'error'. +template< typename T, typename E > +class storage_t_noncopy_nonmove_impl +{ + template< typename, typename > friend class nonstd::expected_lite::expected; + +public: + using value_type = T; + using error_type = E; + + // no-op construction + storage_t_noncopy_nonmove_impl() {} + ~storage_t_noncopy_nonmove_impl() {} + + explicit storage_t_noncopy_nonmove_impl( bool has_value ) + : m_has_value( has_value ) + {} + + void construct_value() + { + new( &m_value ) value_type(); + } + + // void construct_value( value_type const & e ) + // { + // new( &m_value ) value_type( e ); + // } + + // void construct_value( value_type && e ) + // { + // new( &m_value ) value_type( std::move( e ) ); + // } + + template< class... Args > + void emplace_value( Args&&... args ) + { + new( &m_value ) value_type( std::forward(args)...); + } + + template< class U, class... Args > + void emplace_value( std::initializer_list il, Args&&... args ) + { + new( &m_value ) value_type( il, std::forward(args)... ); + } + + void destruct_value() + { + m_value.~value_type(); + } + + // void construct_error( error_type const & e ) + // { + // // new( &m_error ) error_type( e ); + // } + + // void construct_error( error_type && e ) + // { + // // new( &m_error ) error_type( std::move( e ) ); + // } + + template< class... Args > + void emplace_error( Args&&... args ) + { + new( &m_error ) error_type( std::forward(args)...); + } + + template< class U, class... Args > + void emplace_error( std::initializer_list il, Args&&... args ) + { + new( &m_error ) error_type( il, std::forward(args)... ); + } + + void destruct_error() + { + m_error.~error_type(); + } + + constexpr value_type const & value() const & + { + return m_value; + } + + value_type & value() & + { + return m_value; + } + + constexpr value_type const && value() const && + { + return std::move( m_value ); + } + + nsel_constexpr14 value_type && value() && + { + return std::move( m_value ); + } + + value_type const * value_ptr() const + { + return &m_value; + } + + value_type * value_ptr() + { + return &m_value; + } + + error_type const & error() const & + { + return m_error; + } + + error_type & error() & + { + return m_error; + } + + constexpr error_type const && error() const && + { + return std::move( m_error ); + } + + nsel_constexpr14 error_type && error() && + { + return std::move( m_error ); + } + + bool has_value() const + { + return m_has_value; + } + + void set_has_value( bool v ) + { + m_has_value = v; + } + +private: + union + { + value_type m_value; + error_type m_error; + }; + + bool m_has_value = false; +}; + template< typename T, typename E > class storage_t_impl { @@ -471,6 +673,11 @@ public: : m_has_value( has_value ) {} + void construct_value() + { + new( &m_value ) value_type(); + } + void construct_value( value_type const & e ) { new( &m_value ) value_type( e ); @@ -684,16 +891,23 @@ private: template< typename T, typename E, bool isConstructable, bool isMoveable > class storage_t { +public: +}; + +template< typename T, typename E > +class storage_t : public storage_t_noncopy_nonmove_impl +{ public: storage_t() = default; ~storage_t() = default; explicit storage_t( bool has_value ) - : storage_t_impl( has_value ) + : storage_t_noncopy_nonmove_impl( has_value ) {} storage_t( storage_t const & other ) = delete; storage_t( storage_t && other ) = delete; + }; template< typename T, typename E > @@ -832,6 +1046,146 @@ public: } }; +#if nsel_P2505R >= 3 +// C++11 invoke implementation +template< typename > +struct is_reference_wrapper : std::false_type {}; +template< typename T > +struct is_reference_wrapper< std::reference_wrapper< T > > : std::true_type {}; + +template< typename FnT, typename ClassT, typename ObjectT, typename... Args + nsel_REQUIRES_T( + std::is_function::value + && ( std::is_same< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + || std::is_base_of< ClassT, typename std20::remove_cvref< ObjectT >::type >::value ) + ) +> +nsel_constexpr auto invoke_member_function_impl( FnT ClassT::* memfnptr, ObjectT && obj, Args && ... args ) + noexcept( noexcept( (std::forward< ObjectT >( obj ).*memfnptr)( std::forward< Args >( args )... ) ) ) + -> decltype( (std::forward< ObjectT >( obj ).*memfnptr)( std::forward< Args >( args )...) ) +{ + return (std::forward< ObjectT >( obj ).*memfnptr)( std::forward< Args >( args )... ); +} + +template< typename FnT, typename ClassT, typename ObjectT, typename... Args + nsel_REQUIRES_T( + std::is_function::value + && is_reference_wrapper< typename std20::remove_cvref< ObjectT >::type >::value + ) +> +nsel_constexpr auto invoke_member_function_impl( FnT ClassT::* memfnptr, ObjectT && obj, Args && ... args ) + noexcept( noexcept( (obj.get().*memfnptr)( std::forward< Args >( args ) ... ) ) ) + -> decltype( (obj.get().*memfnptr)( std::forward< Args >( args ) ... ) ) +{ + return (obj.get().*memfnptr)( std::forward< Args >( args ) ... ); +} + +template< typename FnT, typename ClassT, typename ObjectT, typename... Args + nsel_REQUIRES_T( + std::is_function::value + && !std::is_same< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + && !std::is_base_of< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + && !is_reference_wrapper< typename std20::remove_cvref< ObjectT >::type >::value + ) +> +nsel_constexpr auto invoke_member_function_impl( FnT ClassT::* memfnptr, ObjectT && obj, Args && ... args ) + noexcept( noexcept( ((*std::forward< ObjectT >( obj )).*memfnptr)( std::forward< Args >( args ) ... ) ) ) + -> decltype( ((*std::forward< ObjectT >( obj )).*memfnptr)( std::forward< Args >( args ) ... ) ) +{ + return ((*std::forward(obj)).*memfnptr)( std::forward< Args >( args ) ... ); +} + +template< typename MemberT, typename ClassT, typename ObjectT + nsel_REQUIRES_T( + std::is_same< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + || std::is_base_of< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + ) +> +nsel_constexpr auto invoke_member_object_impl( MemberT ClassT::* memobjptr, ObjectT && obj ) + noexcept( noexcept( std::forward< ObjectT >( obj ).*memobjptr ) ) + -> decltype( std::forward< ObjectT >( obj ).*memobjptr ) +{ + return std::forward< ObjectT >( obj ).*memobjptr; +} + +template< typename MemberT, typename ClassT, typename ObjectT + nsel_REQUIRES_T( + is_reference_wrapper< typename std20::remove_cvref< ObjectT >::type >::value + ) +> +nsel_constexpr auto invoke_member_object_impl( MemberT ClassT::* memobjptr, ObjectT && obj ) + noexcept( noexcept( obj.get().*memobjptr ) ) + -> decltype( obj.get().*memobjptr ) +{ + return obj.get().*memobjptr; +} + +template< typename MemberT, typename ClassT, typename ObjectT + nsel_REQUIRES_T( + !std::is_same< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + && !std::is_base_of< ClassT, typename std20::remove_cvref< ObjectT >::type >::value + && !is_reference_wrapper< typename std20::remove_cvref< ObjectT >::type >::value + ) +> +nsel_constexpr auto invoke_member_object_impl( MemberT ClassT::* memobjptr, ObjectT && obj ) + noexcept( noexcept( (*std::forward< ObjectT >( obj )).*memobjptr ) ) + -> decltype( (*std::forward< ObjectT >( obj )).*memobjptr ) +{ + return (*std::forward< ObjectT >( obj )).*memobjptr; +} + +template< typename F, typename... Args + nsel_REQUIRES_T( + std::is_member_function_pointer< typename std20::remove_cvref< F >::type >::value + ) +> +nsel_constexpr auto invoke( F && f, Args && ... args ) + noexcept( noexcept( invoke_member_function_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ) ) ) + -> decltype( invoke_member_function_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ) ) +{ + return invoke_member_function_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ); +} + +template< typename F, typename... Args + nsel_REQUIRES_T( + std::is_member_object_pointer< typename std20::remove_cvref< F >::type >::value + ) +> +nsel_constexpr auto invoke( F && f, Args && ... args ) + noexcept( noexcept( invoke_member_object_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ) ) ) + -> decltype( invoke_member_object_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ) ) +{ + return invoke_member_object_impl( std::forward< F >( f ), std::forward< Args >( args ) ... ); +} + +template< typename F, typename... Args + nsel_REQUIRES_T( + !std::is_member_function_pointer< typename std20::remove_cvref< F >::type >::value + && !std::is_member_object_pointer< typename std20::remove_cvref< F >::type >::value + ) +> +nsel_constexpr auto invoke( F && f, Args && ... args ) + noexcept( noexcept( std::forward< F >( f )( std::forward< Args >( args ) ... ) ) ) + -> decltype( std::forward< F >( f )( std::forward< Args >( args ) ... ) ) +{ + return std::forward< F >( f )( std::forward< Args >( args ) ... ); +} + +template< typename F, typename ... Args > +using invoke_result_nocvref_t = typename std20::remove_cvref< decltype( invoke( std::declval< F >(), std::declval< Args >()... ) ) >::type; + +#if nsel_P2505R >= 5 +template< typename F, typename ... Args > +using transform_invoke_result_t = typename std::remove_cv< decltype( invoke( std::declval< F >(), std::declval< Args >()... ) ) >::type; +#else +template< typename F, typename ... Args > +using transform_invoke_result_t = invoke_result_nocvref_t +#endif // nsel_P2505R >= 5 + +template< typename T > +struct valid_expected_value_type : std::integral_constant< bool, std::is_destructible< T >::value && !std::is_reference< T >::value && !std::is_array< T >::value > {}; + +#endif // nsel_P2505R >= 3 } // namespace detail /// x.x.5 Unexpected object type; unexpected_type; C++17 and later can also use aliased type unexpected. @@ -898,7 +1252,7 @@ public: ) > constexpr explicit unexpected_type( unexpected_type const & error ) - : m_error( E{ error.value() } ) + : m_error( E{ error.error() } ) {} template< typename E2 @@ -916,7 +1270,7 @@ public: ) > constexpr /*non-explicit*/ unexpected_type( unexpected_type const & error ) - : m_error( error.value() ) + : m_error( error.error() ) {} template< typename E2 @@ -934,7 +1288,7 @@ public: ) > constexpr explicit unexpected_type( unexpected_type && error ) - : m_error( E{ std::move( error.value() ) } ) + : m_error( E{ std::move( error.error() ) } ) {} template< typename E2 @@ -952,7 +1306,7 @@ public: ) > constexpr /*non-explicit*/ unexpected_type( unexpected_type && error ) - : m_error( std::move( error.value() ) ) + : m_error( std::move( error.error() ) ) {} // x.x.5.2.2 Assignment @@ -963,24 +1317,54 @@ public: template< typename E2 = E > nsel_constexpr14 unexpected_type & operator=( unexpected_type const & other ) { - unexpected_type{ other.value() }.swap( *this ); + unexpected_type{ other.error() }.swap( *this ); return *this; } template< typename E2 = E > nsel_constexpr14 unexpected_type & operator=( unexpected_type && other ) { - unexpected_type{ std::move( other.value() ) }.swap( *this ); + unexpected_type{ std::move( other.error() ) }.swap( *this ); return *this; } // x.x.5.2.3 Observers + nsel_constexpr14 E & error() & noexcept + { + return m_error; + } + + constexpr E const & error() const & noexcept + { + return m_error; + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + + nsel_constexpr14 E && error() && noexcept + { + return std::move( m_error ); + } + + constexpr E const && error() const && noexcept + { + return std::move( m_error ); + } + +#endif + + // x.x.5.2.3 Observers - deprecated + + nsel_deprecated("replace value() with error()") + nsel_constexpr14 E & value() & noexcept { return m_error; } + nsel_deprecated("replace value() with error()") + constexpr E const & value() const & noexcept { return m_error; @@ -988,11 +1372,15 @@ public: #if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + nsel_deprecated("replace value() with error()") + nsel_constexpr14 E && value() && noexcept { return std::move( m_error ); } + nsel_deprecated("replace value() with error()") + constexpr E const && value() const && noexcept { return std::move( m_error ); @@ -1081,7 +1469,7 @@ private: template< typename E1, typename E2 > constexpr bool operator==( unexpected_type const & x, unexpected_type const & y ) { - return x.value() == y.value(); + return x.error() == y.error(); } template< typename E1, typename E2 > @@ -1095,7 +1483,7 @@ constexpr bool operator!=( unexpected_type const & x, unexpected_type co template< typename E > constexpr bool operator<( unexpected_type const & x, unexpected_type const & y ) { - return x.value() < y.value(); + return x.error() < y.error(); } template< typename E > @@ -1340,6 +1728,24 @@ struct error_traits< std::error_code > #endif // nsel_CONFIG_NO_EXCEPTIONS +#if nsel_P2505R >= 3 +namespace detail { + +// from https://en.cppreference.com/w/cpp/utility/expected/unexpected: +// "the type of the unexpected value. The type must not be an array type, a non-object type, a specialization of std::unexpected, or a cv-qualified type." +template< typename T > +struct valid_unexpected_type : std::integral_constant< bool, + std::is_same< T, typename std20::remove_cvref< T >::type >::value + && std::is_object< T >::value + && !std::is_array< T >::value +> {}; + +template< typename T > +struct valid_unexpected_type< unexpected_type< T > > : std::false_type {}; + +} // namespace detail +#endif // nsel_P2505R >= 3 + } // namespace expected_lite // provide nonstd::unexpected_type: @@ -1380,7 +1786,7 @@ public: nsel_constexpr14 expected() : contained( true ) { - contained.construct_value( value_type() ); + contained.construct_value(); } nsel_constexpr14 expected( expected const & ) = default; @@ -1534,7 +1940,7 @@ public: nsel_constexpr14 explicit expected( nonstd::unexpected_type const & error ) : contained( false ) { - contained.construct_error( E{ error.value() } ); + contained.construct_error( E{ error.error() } ); } template< typename G = E @@ -1546,7 +1952,7 @@ public: nsel_constexpr14 /*non-explicit*/ expected( nonstd::unexpected_type const & error ) : contained( false ) { - contained.construct_error( error.value() ); + contained.construct_error( error.error() ); } template< typename G = E @@ -1558,7 +1964,7 @@ public: nsel_constexpr14 explicit expected( nonstd::unexpected_type && error ) : contained( false ) { - contained.construct_error( E{ std::move( error.value() ) } ); + contained.construct_error( E{ std::move( error.error() ) } ); } template< typename G = E @@ -1570,7 +1976,7 @@ public: nsel_constexpr14 /*non-explicit*/ expected( nonstd::unexpected_type && error ) : contained( false ) { - contained.construct_error( std::move( error.value() ) ); + contained.construct_error( std::move( error.error() ) ); } // in-place construction, value @@ -1675,7 +2081,7 @@ public: > expected & operator=( nonstd::unexpected_type const & error ) { - expected( unexpect, error.value() ).swap( *this ); + expected( unexpect, error.error() ).swap( *this ); return *this; } @@ -1688,7 +2094,7 @@ public: > expected & operator=( nonstd::unexpected_type && error ) { - expected( unexpect, std::move( error.value() ) ).swap( *this ); + expected( unexpect, std::move( error.error() ) ).swap( *this ); return *this; } @@ -1791,6 +2197,8 @@ public: return contained.has_value(); } + nsel_DISABLE_MSVC_WARNINGS( 4702 ) // warning C4702: unreachable code, see issue 65. + constexpr value_type const & value() const & { return has_value() @@ -1804,6 +2212,7 @@ public: ? ( contained.value() ) : ( error_traits::rethrow( contained.error() ), contained.value() ); } + nsel_RESTORE_MSVC_WARNINGS() #if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 @@ -1885,6 +2294,316 @@ public: : static_cast( std::forward( v ) ); } +#if nsel_P2505R >= 4 + template< typename G = E + nsel_REQUIRES_T( + std::is_copy_constructible< E >::value + && std::is_convertible< G, E >::value + ) + > + nsel_constexpr error_type error_or( G && e ) const & + { + return has_value() + ? static_cast< E >( std::forward< G >( e ) ) + : contained.error(); + } + + template< typename G = E + nsel_REQUIRES_T( + std::is_move_constructible< E >::value + && std::is_convertible< G, E >::value + ) + > + nsel_constexpr14 error_type error_or( G && e ) && + { + return has_value() + ? static_cast< E >( std::forward< G >( e ) ) + : std::move( contained.error() ); + } +#endif // nsel_P2505R >= 4 + +#if nsel_P2505R >= 3 + // Monadic operations (P2505) + template< typename F + nsel_REQUIRES_T( + detail::is_expected < detail::invoke_result_nocvref_t< F, value_type & > > ::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, value_type & >::error_type, error_type >::value + && std::is_constructible< error_type, error_type & >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, value_type & > and_then( F && f ) & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, value_type & >( detail::invoke( std::forward< F >( f ), value() ) ) + : detail::invoke_result_nocvref_t< F, value_type & >( unexpect, error() ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, const value_type & >::error_type, error_type >::value + && std::is_constructible< error_type, const error_type & >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const value_type & > and_then( F && f ) const & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const value_type & >( detail::invoke( std::forward< F >( f ), value() ) ) + : detail::invoke_result_nocvref_t< F, const value_type & >( unexpect, error() ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, value_type && >::error_type, error_type >::value + && std::is_constructible< error_type, error_type && >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, value_type && > and_then( F && f ) && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, value_type && >( detail::invoke( std::forward< F >( f ), std::move( value() ) ) ) + : detail::invoke_result_nocvref_t< F, value_type && >( unexpect, std::move( error() ) ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, const value_type & >::error_type, error_type >::value + && std::is_constructible< error_type, const error_type && >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const value_type && > and_then( F && f ) const && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const value_type && >( detail::invoke( std::forward< F >( f ), std::move( value() ) ) ) + : detail::invoke_result_nocvref_t< F, const value_type && >( unexpect, std::move( error() ) ); + } +#endif + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, error_type & >::value_type, value_type >::value + && std::is_constructible< value_type, value_type & >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, error_type & > or_else( F && f ) & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, error_type & >( value() ) + : detail::invoke_result_nocvref_t< F, error_type & >( detail::invoke( std::forward< F >( f ), error() ) ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, const error_type & >::value_type, value_type >::value + && std::is_constructible< value_type, const value_type & >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const error_type & > or_else( F && f ) const & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const error_type & >( value() ) + : detail::invoke_result_nocvref_t< F, const error_type & >( detail::invoke( std::forward< F >( f ), error() ) ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, error_type && >::value_type, value_type >::value + && std::is_constructible< value_type, value_type && >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, error_type && > or_else( F && f ) && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, error_type && >( std::move( value() ) ) + : detail::invoke_result_nocvref_t< F, error_type && >( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F, const error_type && >::value_type, value_type >::value + && std::is_constructible< value_type, const value_type && >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const error_type && > or_else( F && f ) const && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const error_type && >( std::move( value() ) ) + : detail::invoke_result_nocvref_t< F, const error_type && >( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } +#endif + + template::value + && !std::is_void< detail::transform_invoke_result_t< F, value_type & > >::value + && detail::valid_expected_value_type< detail::transform_invoke_result_t< F, value_type & > >::value + ) + > + nsel_constexpr14 expected< detail::transform_invoke_result_t< F, value_type & >, error_type > transform( F && f ) & + { + return has_value() + ? expected< detail::transform_invoke_result_t< F, value_type & >, error_type >( detail::invoke( std::forward< F >( f ), **this ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F, value_type & > >::value + ) + > + nsel_constexpr14 expected< void, error_type > transform( F && f ) & + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ), **this ), expected< void, error_type >() ) + : make_unexpected( error() ); + } + + template::value + && !std::is_void< detail::transform_invoke_result_t< F, const value_type & > >::value + && detail::valid_expected_value_type< detail::transform_invoke_result_t< F, const value_type & > >::value + ) + > + nsel_constexpr expected< detail::transform_invoke_result_t< F, const value_type & >, error_type > transform( F && f ) const & + { + return has_value() + ? expected< detail::transform_invoke_result_t< F, const value_type & >, error_type >( detail::invoke( std::forward< F >( f ), **this ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F, const value_type & > >::value + ) + > + nsel_constexpr expected< void, error_type > transform( F && f ) const & + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ), **this ), expected< void, error_type >() ) + : make_unexpected( error() ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template::value + && !std::is_void< detail::transform_invoke_result_t< F, value_type && > >::value + && detail::valid_expected_value_type< detail::transform_invoke_result_t< F, value_type && > >::value + ) + > + nsel_constexpr14 expected< detail::transform_invoke_result_t< F, value_type && >, error_type > transform( F && f ) && + { + return has_value() + ? expected< detail::transform_invoke_result_t< F, value_type && >, error_type >( detail::invoke( std::forward< F >( f ), std::move( **this ) ) ) + : make_unexpected( std::move( error() ) ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F, value_type && > >::value + ) + > + nsel_constexpr14 expected< void, error_type > transform( F && f ) && + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ), **this ), expected< void, error_type >() ) + : make_unexpected( std::move( error() ) ); + } + + template::value + && !std::is_void< detail::transform_invoke_result_t< F, const value_type && > >::value + && detail::valid_expected_value_type< detail::transform_invoke_result_t< F, const value_type && > >::value + ) + > + nsel_constexpr expected< detail::transform_invoke_result_t< F, const value_type && >, error_type > transform( F && f ) const && + { + return has_value() + ? expected< detail::transform_invoke_result_t< F, const value_type && >, error_type >( detail::invoke( std::forward< F >( f ), std::move( **this ) ) ) + : make_unexpected( std::move( error() ) ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F, const value_type && > >::value + ) + > + nsel_constexpr expected< void, error_type > transform( F && f ) const && + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ), **this ), expected< void, error_type >() ) + : make_unexpected( std::move( error() ) ); + } +#endif + + template >::value + && std::is_constructible< value_type, value_type & >::value + ) + > + nsel_constexpr14 expected< value_type, detail::transform_invoke_result_t< F, error_type & > > transform_error( F && f ) & + { + return has_value() + ? expected< value_type, detail::transform_invoke_result_t< F, error_type & > >( in_place, **this ) + : make_unexpected( detail::invoke( std::forward< F >( f ), error() ) ); + } + + template >::value + && std::is_constructible< value_type, const value_type & >::value + ) + > + nsel_constexpr expected< value_type, detail::transform_invoke_result_t< F, const error_type & > > transform_error( F && f ) const & + { + return has_value() + ? expected< value_type, detail::transform_invoke_result_t< F, const error_type & > >( in_place, **this ) + : make_unexpected( detail::invoke( std::forward< F >( f ), error() ) ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + && std::is_constructible< value_type, value_type && >::value + ) + > + nsel_constexpr14 expected< value_type, detail::transform_invoke_result_t< F, error_type && > > transform_error( F && f ) && + { + return has_value() + ? expected< value_type, detail::transform_invoke_result_t< F, error_type && > >( in_place, std::move( **this ) ) + : make_unexpected( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } + + template >::value + && std::is_constructible< value_type, const value_type && >::value + ) + > + nsel_constexpr expected< value_type, detail::transform_invoke_result_t< F, const error_type && > > transform_error( F && f ) const && + { + return has_value() + ? expected< value_type, detail::transform_invoke_result_t< F, const error_type && > >( in_place, std::move( **this ) ) + : make_unexpected( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } +#endif +#endif // nsel_P2505R >= 3 // unwrap() // template @@ -1961,7 +2680,7 @@ public: nsel_constexpr14 explicit expected( nonstd::unexpected_type const & error ) : contained( false ) { - contained.construct_error( E{ error.value() } ); + contained.construct_error( E{ error.error() } ); } template< typename G = E @@ -1972,7 +2691,7 @@ public: nsel_constexpr14 /*non-explicit*/ expected( nonstd::unexpected_type const & error ) : contained( false ) { - contained.construct_error( error.value() ); + contained.construct_error( error.error() ); } template< typename G = E @@ -1983,7 +2702,7 @@ public: nsel_constexpr14 explicit expected( nonstd::unexpected_type && error ) : contained( false ) { - contained.construct_error( E{ std::move( error.value() ) } ); + contained.construct_error( E{ std::move( error.error() ) } ); } template< typename G = E @@ -1994,7 +2713,7 @@ public: nsel_constexpr14 /*non-explicit*/ expected( nonstd::unexpected_type && error ) : contained( false ) { - contained.construct_error( std::move( error.value() ) ); + contained.construct_error( std::move( error.error() ) ); } template< typename... Args @@ -2131,6 +2850,305 @@ public: return ! has_value() && std::is_base_of< Ex, ContainedEx>::value; } +#if nsel_P2505R >= 4 + template< typename G = E + nsel_REQUIRES_T( + std::is_copy_constructible< E >::value + && std::is_convertible< G, E >::value + ) + > + nsel_constexpr error_type error_or( G && e ) const & + { + return has_value() + ? static_cast< E >( std::forward< G >( e ) ) + : contained.error(); + } + + template< typename G = E + nsel_REQUIRES_T( + std::is_move_constructible< E >::value + && std::is_convertible< G, E >::value + ) + > + nsel_constexpr14 error_type error_or( G && e ) && + { + return has_value() + ? static_cast< E >( std::forward< G >( e ) ) + : std::move( contained.error() ); + } +#endif // nsel_P2505R >= 4 + +#if nsel_P2505R >= 3 + // Monadic operations (P2505) + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F >::error_type, error_type >::value + && std::is_constructible< error_type, error_type & >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F > and_then( F && f ) & + { + return has_value() + ? detail::invoke_result_nocvref_t< F >( detail::invoke( std::forward< F >( f ) ) ) + : detail::invoke_result_nocvref_t< F >( unexpect, error() ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F >::error_type, error_type >::value + && std::is_constructible< error_type, const error_type & >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F > and_then( F && f ) const & + { + return has_value() + ? detail::invoke_result_nocvref_t< F >( detail::invoke( std::forward< F >( f ) ) ) + : detail::invoke_result_nocvref_t< F >( unexpect, error() ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F >::error_type, error_type >::value + && std::is_constructible< error_type, error_type && >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F > and_then( F && f ) && + { + return has_value() + ? detail::invoke_result_nocvref_t< F >( detail::invoke( std::forward< F >( f ) ) ) + : detail::invoke_result_nocvref_t< F >( unexpect, std::move( error() ) ); + } + + template >::value + && std::is_same< typename detail::invoke_result_nocvref_t< F >::error_type, error_type >::value + && std::is_constructible< error_type, const error_type && >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F > and_then( F && f ) const && + { + return has_value() + ? detail::invoke_result_nocvref_t< F >( detail::invoke( std::forward< F >( f ) ) ) + : detail::invoke_result_nocvref_t< F >( unexpect, std::move( error() ) ); + } +#endif + + template >::value + && std::is_void< typename detail::invoke_result_nocvref_t< F, error_type & >::value_type >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, error_type & > or_else( F && f ) & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, error_type & >() + : detail::invoke_result_nocvref_t< F, error_type & >( detail::invoke( std::forward< F >( f ), error() ) ); + } + + template >::value + && std::is_void< typename detail::invoke_result_nocvref_t< F, const error_type & >::value_type >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const error_type & > or_else( F && f ) const & + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const error_type & >() + : detail::invoke_result_nocvref_t< F, const error_type & >( detail::invoke( std::forward< F >( f ), error() ) ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + && std::is_void< typename detail::invoke_result_nocvref_t< F, error_type && >::value_type >::value + ) + > + nsel_constexpr14 detail::invoke_result_nocvref_t< F, error_type && > or_else( F && f ) && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, error_type && >() + : detail::invoke_result_nocvref_t< F, error_type && >( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } + + template >::value + && std::is_void< typename detail::invoke_result_nocvref_t< F, const error_type && >::value_type >::value + ) + > + nsel_constexpr detail::invoke_result_nocvref_t< F, const error_type && > or_else( F && f ) const && + { + return has_value() + ? detail::invoke_result_nocvref_t< F, const error_type && >() + : detail::invoke_result_nocvref_t< F, const error_type && >( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } +#endif + + template::value + && !std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr14 expected< detail::transform_invoke_result_t< F >, error_type > transform( F && f ) & + { + return has_value() + ? expected< detail::transform_invoke_result_t< F >, error_type >( detail::invoke( std::forward< F >( f ) ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr14 expected< void, error_type > transform( F && f ) & + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ) ), expected< void, error_type >() ) + : make_unexpected( error() ); + } + + template::value + && !std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr expected< detail::transform_invoke_result_t< F >, error_type > transform( F && f ) const & + { + return has_value() + ? expected< detail::transform_invoke_result_t< F >, error_type >( detail::invoke( std::forward< F >( f ) ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr expected< void, error_type > transform( F && f ) const & + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ) ), expected< void, error_type >() ) + : make_unexpected( error() ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template::value + && !std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr14 expected< detail::transform_invoke_result_t< F >, error_type > transform( F && f ) && + { + return has_value() + ? expected< detail::transform_invoke_result_t< F >, error_type >( detail::invoke( std::forward< F >( f ) ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr14 expected< void, error_type > transform( F && f ) && + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ) ), expected< void, error_type >() ) + : make_unexpected( error() ); + } + + template::value + && !std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr expected< detail::transform_invoke_result_t< F >, error_type > transform( F && f ) const && + { + return has_value() + ? expected< detail::transform_invoke_result_t< F >, error_type >( detail::invoke( std::forward< F >( f ) ) ) + : make_unexpected( error() ); + } + + template::value + && std::is_void< detail::transform_invoke_result_t< F > >::value + ) + > + nsel_constexpr expected< void, error_type > transform( F && f ) const && + { + return has_value() + ? ( detail::invoke( std::forward< F >( f ) ), expected< void, error_type >() ) + : make_unexpected( error() ); + } +#endif + + template >::value + ) + > + nsel_constexpr14 expected< void, detail::transform_invoke_result_t< F, error_type & > > transform_error( F && f ) & + { + return has_value() + ? expected< void, detail::transform_invoke_result_t< F, error_type & > >() + : make_unexpected( detail::invoke( std::forward< F >( f ), error() ) ); + } + + template >::value + ) + > + nsel_constexpr expected< void, detail::transform_invoke_result_t< F, const error_type & > > transform_error( F && f ) const & + { + return has_value() + ? expected< void, detail::transform_invoke_result_t< F, const error_type & > >() + : make_unexpected( detail::invoke( std::forward< F >( f ), error() ) ); + } + +#if !nsel_COMPILER_GNUC_VERSION || nsel_COMPILER_GNUC_VERSION >= 490 + template >::value + ) + > + nsel_constexpr14 expected< void, detail::transform_invoke_result_t< F, error_type && > > transform_error( F && f ) && + { + return has_value() + ? expected< void, detail::transform_invoke_result_t< F, error_type && > >() + : make_unexpected( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } + + template >::value + ) + > + nsel_constexpr expected< void, detail::transform_invoke_result_t< F, const error_type && > > transform_error( F && f ) const && + { + return has_value() + ? expected< void, detail::transform_invoke_result_t< F, const error_type && > >() + : make_unexpected( detail::invoke( std::forward< F >( f ), std::move( error() ) ) ); + } +#endif +#endif // nsel_P2505R >= 3 + // template constexpr 'see below' unwrap() const&; // // template 'see below' unwrap() &&; diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt index d764871d7..fa4123251 100644 --- a/src/base/CMakeLists.txt +++ b/src/base/CMakeLists.txt @@ -6,7 +6,9 @@ add_library(qbt_base STATIC applicationcomponent.h asyncfilestorage.h bittorrent/abstractfilestorage.h + bittorrent/addtorrenterror.h bittorrent/addtorrentparams.h + bittorrent/announcetimepoint.h bittorrent/bandwidthscheduler.h bittorrent/bencoderesumedatastorage.h bittorrent/cachestatus.h @@ -38,6 +40,8 @@ add_library(qbt_base STATIC bittorrent/torrent.h bittorrent/torrentcontenthandler.h bittorrent/torrentcontentlayout.h + bittorrent/torrentcontentremoveoption.h + bittorrent/torrentcontentremover.h bittorrent/torrentcreationmanager.h bittorrent/torrentcreationtask.h bittorrent/torrentcreator.h @@ -51,6 +55,7 @@ add_library(qbt_base STATIC concepts/stringable.h digest32.h exceptions.h + freediskspacechecker.h global.h http/connection.h http/httperror.h @@ -145,6 +150,7 @@ add_library(qbt_base STATIC bittorrent/sslparameters.cpp bittorrent/torrent.cpp bittorrent/torrentcontenthandler.cpp + bittorrent/torrentcontentremover.cpp bittorrent/torrentcreationmanager.cpp bittorrent/torrentcreationtask.cpp bittorrent/torrentcreator.cpp @@ -155,6 +161,7 @@ add_library(qbt_base STATIC bittorrent/trackerentry.cpp bittorrent/trackerentrystatus.cpp exceptions.cpp + freediskspacechecker.cpp http/connection.cpp http/httperror.cpp http/requestparser.cpp diff --git a/src/base/addtorrentmanager.cpp b/src/base/addtorrentmanager.cpp index a094dbd85..bce47d6ab 100644 --- a/src/base/addtorrentmanager.cpp +++ b/src/base/addtorrentmanager.cpp @@ -29,6 +29,7 @@ #include "addtorrentmanager.h" +#include "base/bittorrent/addtorrenterror.h" #include "base/bittorrent/infohash.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrentdescriptor.h" @@ -140,7 +141,7 @@ void AddTorrentManager::onSessionTorrentAdded(BitTorrent::Torrent *torrent) } } -void AddTorrentManager::onSessionAddTorrentFailed(const BitTorrent::InfoHash &infoHash, const QString &reason) +void AddTorrentManager::onSessionAddTorrentFailed(const BitTorrent::InfoHash &infoHash, const BitTorrent::AddTorrentError &reason) { if (const QString source = m_sourcesByInfoHash.take(infoHash); !source.isEmpty()) { @@ -154,14 +155,40 @@ void AddTorrentManager::onSessionAddTorrentFailed(const BitTorrent::InfoHash &in void AddTorrentManager::handleAddTorrentFailed(const QString &source, const QString &reason) { LogMsg(tr("Failed to add torrent. Source: \"%1\". Reason: \"%2\"").arg(source, reason), Log::WARNING); - emit addTorrentFailed(source, reason); + emit addTorrentFailed(source, {BitTorrent::AddTorrentError::Other, reason}); } -void AddTorrentManager::handleDuplicateTorrent(const QString &source, BitTorrent::Torrent *torrent, const QString &message) +void AddTorrentManager::handleDuplicateTorrent(const QString &source + , const BitTorrent::TorrentDescriptor &torrentDescr, BitTorrent::Torrent *existingTorrent) { - LogMsg(tr("Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3") - .arg(source, torrent->name(), message)); - emit addTorrentFailed(source, message); + const bool hasMetadata = torrentDescr.info().has_value(); + if (hasMetadata) + { + // Trying to set metadata to existing torrent in case if it has none + existingTorrent->setMetadata(*torrentDescr.info()); + } + + const bool isPrivate = existingTorrent->isPrivate() || (hasMetadata && torrentDescr.info()->isPrivate()); + QString message; + if (!btSession()->isMergeTrackersEnabled()) + { + message = tr("Merging of trackers is disabled"); + } + else if (isPrivate) + { + message = tr("Trackers cannot be merged because it is a private torrent"); + } + else + { + // merge trackers and web seeds + existingTorrent->addTrackers(torrentDescr.trackers()); + existingTorrent->addUrlSeeds(torrentDescr.urlSeeds()); + message = tr("Trackers are merged from new source"); + } + + LogMsg(tr("Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: \"%2\". Torrent infohash: %3. Result: %4") + .arg(source, existingTorrent->name(), existingTorrent->infoHash().toString(), message)); + emit addTorrentFailed(source, {BitTorrent::AddTorrentError::DuplicateTorrent, message}); } void AddTorrentManager::setTorrentFileGuard(const QString &source, std::shared_ptr torrentFileGuard) @@ -169,11 +196,9 @@ void AddTorrentManager::setTorrentFileGuard(const QString &source, std::shared_p m_guardedTorrentFiles.emplace(source, std::move(torrentFileGuard)); } -void AddTorrentManager::releaseTorrentFileGuard(const QString &source) +std::shared_ptr AddTorrentManager::releaseTorrentFileGuard(const QString &source) { - auto torrentFileGuard = m_guardedTorrentFiles.take(source); - if (torrentFileGuard) - torrentFileGuard->setAutoRemove(false); + return m_guardedTorrentFiles.take(source); } bool AddTorrentManager::processTorrent(const QString &source, const BitTorrent::TorrentDescriptor &torrentDescr @@ -184,32 +209,7 @@ bool AddTorrentManager::processTorrent(const QString &source, const BitTorrent:: if (BitTorrent::Torrent *torrent = btSession()->findTorrent(infoHash)) { // a duplicate torrent is being added - - const bool hasMetadata = torrentDescr.info().has_value(); - if (hasMetadata) - { - // Trying to set metadata to existing torrent in case if it has none - torrent->setMetadata(*torrentDescr.info()); - } - - if (!btSession()->isMergeTrackersEnabled()) - { - handleDuplicateTorrent(source, torrent, tr("Merging of trackers is disabled")); - return false; - } - - const bool isPrivate = torrent->isPrivate() || (hasMetadata && torrentDescr.info()->isPrivate()); - if (isPrivate) - { - handleDuplicateTorrent(source, torrent, tr("Trackers cannot be merged because it is a private torrent")); - return false; - } - - // merge trackers and web seeds - torrent->addTrackers(torrentDescr.trackers()); - torrent->addUrlSeeds(torrentDescr.urlSeeds()); - - handleDuplicateTorrent(source, torrent, tr("Trackers are merged from new source")); + handleDuplicateTorrent(source, torrentDescr, torrent); return false; } diff --git a/src/base/addtorrentmanager.h b/src/base/addtorrentmanager.h index ef31ae4da..c0044be65 100644 --- a/src/base/addtorrentmanager.h +++ b/src/base/addtorrentmanager.h @@ -44,6 +44,7 @@ namespace BitTorrent class Session; class Torrent; class TorrentDescriptor; + struct AddTorrentError; } namespace Net @@ -66,20 +67,20 @@ public: signals: void torrentAdded(const QString &source, BitTorrent::Torrent *torrent); - void addTorrentFailed(const QString &source, const QString &reason); + void addTorrentFailed(const QString &source, const BitTorrent::AddTorrentError &reason); protected: bool addTorrentToSession(const QString &source, const BitTorrent::TorrentDescriptor &torrentDescr , const BitTorrent::AddTorrentParams &addTorrentParams); void handleAddTorrentFailed(const QString &source, const QString &reason); - void handleDuplicateTorrent(const QString &source, BitTorrent::Torrent *torrent, const QString &message); + void handleDuplicateTorrent(const QString &source, const BitTorrent::TorrentDescriptor &torrentDescr, BitTorrent::Torrent *existingTorrent); void setTorrentFileGuard(const QString &source, std::shared_ptr torrentFileGuard); - void releaseTorrentFileGuard(const QString &source); + std::shared_ptr releaseTorrentFileGuard(const QString &source); private: void onDownloadFinished(const Net::DownloadResult &result); void onSessionTorrentAdded(BitTorrent::Torrent *torrent); - void onSessionAddTorrentFailed(const BitTorrent::InfoHash &infoHash, const QString &reason); + void onSessionAddTorrentFailed(const BitTorrent::InfoHash &infoHash, const BitTorrent::AddTorrentError &reason); bool processTorrent(const QString &source, const BitTorrent::TorrentDescriptor &torrentDescr , const BitTorrent::AddTorrentParams &addTorrentParams); diff --git a/src/base/bittorrent/abstractfilestorage.cpp b/src/base/bittorrent/abstractfilestorage.cpp index c55ef8e52..ccd501c5b 100644 --- a/src/base/bittorrent/abstractfilestorage.cpp +++ b/src/base/bittorrent/abstractfilestorage.cpp @@ -30,7 +30,7 @@ #include #include -#include +#include #include "base/exceptions.h" #include "base/path.h" @@ -71,7 +71,7 @@ void BitTorrent::AbstractFileStorage::renameFolder(const Path &oldFolderPath, co if (newFolderPath.isAbsolute()) throw RuntimeError(tr("Absolute path isn't allowed: '%1'.").arg(newFolderPath.toString())); - QVector renamingFileIndexes; + QList renamingFileIndexes; renamingFileIndexes.reserve(filesCount()); for (int i = 0; i < filesCount(); ++i) diff --git a/src/base/bittorrent/addtorrenterror.h b/src/base/bittorrent/addtorrenterror.h new file mode 100644 index 000000000..a0afb4705 --- /dev/null +++ b/src/base/bittorrent/addtorrenterror.h @@ -0,0 +1,49 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 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. + */ + +#pragma once + +#include +#include + +namespace BitTorrent +{ + struct AddTorrentError + { + enum Kind + { + DuplicateTorrent, + Other + }; + + Kind kind = Other; + QString message; + }; +} + +Q_DECLARE_METATYPE(BitTorrent::AddTorrentError) diff --git a/src/base/bittorrent/addtorrentparams.h b/src/base/bittorrent/addtorrentparams.h index b1b5fcb2b..a2de0b725 100644 --- a/src/base/bittorrent/addtorrentparams.h +++ b/src/base/bittorrent/addtorrentparams.h @@ -30,9 +30,9 @@ #include +#include #include #include -#include #include "base/path.h" #include "base/tagset.h" @@ -62,7 +62,7 @@ namespace BitTorrent std::optional addStopped; std::optional stopCondition; PathList filePaths; // used if TorrentInfo is set - QVector filePriorities; // used if TorrentInfo is set + QList filePriorities; // used if TorrentInfo is set bool skipChecking = false; std::optional contentLayout; std::optional useAutoTMM; diff --git a/src/base/bittorrent/announcetimepoint.h b/src/base/bittorrent/announcetimepoint.h new file mode 100644 index 000000000..1dd65eea7 --- /dev/null +++ b/src/base/bittorrent/announcetimepoint.h @@ -0,0 +1,36 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +namespace BitTorrent +{ + using AnnounceTimePoint = std::chrono::high_resolution_clock::time_point; +} diff --git a/src/base/bittorrent/bandwidthscheduler.cpp b/src/base/bittorrent/bandwidthscheduler.cpp index bb8d1d0a8..5463cc36e 100644 --- a/src/base/bittorrent/bandwidthscheduler.cpp +++ b/src/base/bittorrent/bandwidthscheduler.cpp @@ -102,7 +102,7 @@ bool BandwidthScheduler::isTimeForAlternative() const alternative = !alternative; break; default: - Q_ASSERT(false); + Q_UNREACHABLE(); break; } } diff --git a/src/base/bittorrent/bencoderesumedatastorage.cpp b/src/base/bittorrent/bencoderesumedatastorage.cpp index 4107c5aa9..1e1083051 100644 --- a/src/base/bittorrent/bencoderesumedatastorage.cpp +++ b/src/base/bittorrent/bencoderesumedatastorage.cpp @@ -40,7 +40,6 @@ #include #include -#include "base/algorithm.h" #include "base/exceptions.h" #include "base/global.h" #include "base/logger.h" @@ -65,7 +64,7 @@ namespace BitTorrent void store(const TorrentID &id, const LoadTorrentParams &resumeData) const; void remove(const TorrentID &id) const; - void storeQueue(const QVector &queue) const; + void storeQueue(const QList &queue) const; private: const Path m_resumeDataDir; @@ -132,10 +131,11 @@ BitTorrent::BencodeResumeDataStorage::BencodeResumeDataStorage(const Path &path, m_asyncWorker->moveToThread(m_ioThread.get()); connect(m_ioThread.get(), &QThread::finished, m_asyncWorker, &QObject::deleteLater); + m_ioThread->setObjectName("BencodeResumeDataStorage m_ioThread"); m_ioThread->start(); } -QVector BitTorrent::BencodeResumeDataStorage::registeredTorrents() const +QList BitTorrent::BencodeResumeDataStorage::registeredTorrents() const { return m_registeredTorrents; } @@ -290,10 +290,11 @@ BitTorrent::LoadResumeDataResult BitTorrent::BencodeResumeDataStorage::loadTorre lt::add_torrent_params &p = torrentParams.ltAddTorrentParams; p = lt::read_resume_data(resumeDataRoot, ec); + if (ec) + return nonstd::make_unexpected(tr("Cannot parse resume data: %1").arg(QString::fromStdString(ec.message()))); if (!metadata.isEmpty()) { - const auto *pref = Preferences::instance(); const lt::bdecode_node torentInfoRoot = lt::bdecode(metadata, ec , nullptr, pref->getBdecodeDepthLimit(), pref->getBdecodeTokenLimit()); if (ec) @@ -321,6 +322,8 @@ BitTorrent::LoadResumeDataResult BitTorrent::BencodeResumeDataStorage::loadTorre p.save_path = Profile::instance()->fromPortablePath( Path(fromLTString(p.save_path))).toString().toStdString(); + if (p.save_path.empty()) + return nonstd::make_unexpected(tr("Corrupted resume data: %1").arg(tr("save_path is invalid"))); torrentParams.stopped = (p.flags & lt::torrent_flags::paused) && !(p.flags & lt::torrent_flags::auto_managed); torrentParams.operatingMode = (p.flags & lt::torrent_flags::paused) || (p.flags & lt::torrent_flags::auto_managed) @@ -355,7 +358,7 @@ void BitTorrent::BencodeResumeDataStorage::remove(const TorrentID &id) const }); } -void BitTorrent::BencodeResumeDataStorage::storeQueue(const QVector &queue) const +void BitTorrent::BencodeResumeDataStorage::storeQueue(const QList &queue) const { QMetaObject::invokeMethod(m_asyncWorker, [this, queue]() { @@ -461,7 +464,7 @@ void BitTorrent::BencodeResumeDataStorage::Worker::remove(const TorrentID &id) c Utils::Fs::removeFile(m_resumeDataDir / torrentFilename); } -void BitTorrent::BencodeResumeDataStorage::Worker::storeQueue(const QVector &queue) const +void BitTorrent::BencodeResumeDataStorage::Worker::storeQueue(const QList &queue) const { QByteArray data; data.reserve(((BitTorrent::TorrentID::length() * 2) + 1) * queue.size()); diff --git a/src/base/bittorrent/bencoderesumedatastorage.h b/src/base/bittorrent/bencoderesumedatastorage.h index 9e7820e99..38c10d865 100644 --- a/src/base/bittorrent/bencoderesumedatastorage.h +++ b/src/base/bittorrent/bencoderesumedatastorage.h @@ -29,7 +29,7 @@ #pragma once #include -#include +#include #include "base/pathfwd.h" #include "base/utils/thread.h" @@ -37,7 +37,6 @@ #include "resumedatastorage.h" class QByteArray; -class QThread; namespace BitTorrent { @@ -49,18 +48,18 @@ namespace BitTorrent public: explicit BencodeResumeDataStorage(const Path &path, QObject *parent = nullptr); - QVector registeredTorrents() const override; + QList registeredTorrents() const override; LoadResumeDataResult load(const TorrentID &id) const override; void store(const TorrentID &id, const LoadTorrentParams &resumeData) const override; void remove(const TorrentID &id) const override; - void storeQueue(const QVector &queue) const override; + void storeQueue(const QList &queue) const override; private: void doLoadAll() const override; void loadQueue(const Path &queueFilename); LoadResumeDataResult loadTorrentResumeData(const QByteArray &data, const QByteArray &metadata) const; - QVector m_registeredTorrents; + QList m_registeredTorrents; Utils::Thread::UniquePtr m_ioThread; class Worker; diff --git a/src/base/bittorrent/customstorage.cpp b/src/base/bittorrent/customstorage.cpp index c4957ef07..9134b1507 100644 --- a/src/base/bittorrent/customstorage.cpp +++ b/src/base/bittorrent/customstorage.cpp @@ -240,11 +240,11 @@ void CustomDiskIOThread::handleCompleteFiles(lt::storage_index_t storage, const lt::storage_interface *customStorageConstructor(const lt::storage_params ¶ms, lt::file_pool &pool) { - return new CustomStorage {params, pool}; + return new CustomStorage(params, pool); } CustomStorage::CustomStorage(const lt::storage_params ¶ms, lt::file_pool &filePool) - : lt::default_storage {params, filePool} + : lt::default_storage(params, filePool) , m_savePath {params.path} { } diff --git a/src/base/bittorrent/dbresumedatastorage.cpp b/src/base/bittorrent/dbresumedatastorage.cpp index bb0efbdaf..f9cc18769 100644 --- a/src/base/bittorrent/dbresumedatastorage.cpp +++ b/src/base/bittorrent/dbresumedatastorage.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2021-2023 Vladimir Golovnev + * Copyright (C) 2021-2025 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -48,7 +49,6 @@ #include #include #include -#include #include #include "base/exceptions.h" @@ -67,7 +67,7 @@ namespace { const QString DB_CONNECTION_NAME = u"ResumeDataStorage"_s; - const int DB_VERSION = 7; + const int DB_VERSION = 8; const QString DB_TABLE_META = u"meta"_s; const QString DB_TABLE_TORRENTS = u"torrents"_s; @@ -107,11 +107,11 @@ namespace class StoreQueueJob final : public Job { public: - explicit StoreQueueJob(const QVector &queue); + explicit StoreQueueJob(const QList &queue); void perform(QSqlDatabase db) override; private: - const QVector m_queue; + const QList m_queue; }; struct Column @@ -120,36 +120,35 @@ namespace QString placeholder; }; - Column makeColumn(const char *columnName) + Column makeColumn(const QString &columnName) { - const QString name = QString::fromLatin1(columnName); - return {.name = name, .placeholder = (u':' + name)}; + return {.name = columnName, .placeholder = (u':' + columnName)}; } - const Column DB_COLUMN_ID = makeColumn("id"); - const Column DB_COLUMN_TORRENT_ID = makeColumn("torrent_id"); - const Column DB_COLUMN_QUEUE_POSITION = makeColumn("queue_position"); - const Column DB_COLUMN_NAME = makeColumn("name"); - const Column DB_COLUMN_CATEGORY = makeColumn("category"); - const Column DB_COLUMN_TAGS = makeColumn("tags"); - const Column DB_COLUMN_TARGET_SAVE_PATH = makeColumn("target_save_path"); - const Column DB_COLUMN_DOWNLOAD_PATH = makeColumn("download_path"); - const Column DB_COLUMN_CONTENT_LAYOUT = makeColumn("content_layout"); - const Column DB_COLUMN_RATIO_LIMIT = makeColumn("ratio_limit"); - const Column DB_COLUMN_SEEDING_TIME_LIMIT = makeColumn("seeding_time_limit"); - const Column DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT = makeColumn("inactive_seeding_time_limit"); - const Column DB_COLUMN_SHARE_LIMIT_ACTION = makeColumn("share_limit_action"); - const Column DB_COLUMN_HAS_OUTER_PIECES_PRIORITY = makeColumn("has_outer_pieces_priority"); - const Column DB_COLUMN_HAS_SEED_STATUS = makeColumn("has_seed_status"); - const Column DB_COLUMN_OPERATING_MODE = makeColumn("operating_mode"); - const Column DB_COLUMN_STOPPED = makeColumn("stopped"); - const Column DB_COLUMN_STOP_CONDITION = makeColumn("stop_condition"); - const Column DB_COLUMN_SSL_CERTIFICATE = makeColumn("ssl_certificate"); - const Column DB_COLUMN_SSL_PRIVATE_KEY = makeColumn("ssl_private_key"); - const Column DB_COLUMN_SSL_DH_PARAMS = makeColumn("ssl_dh_params"); - const Column DB_COLUMN_RESUMEDATA = makeColumn("libtorrent_resume_data"); - const Column DB_COLUMN_METADATA = makeColumn("metadata"); - const Column DB_COLUMN_VALUE = makeColumn("value"); + const Column DB_COLUMN_ID = makeColumn(u"id"_s); + const Column DB_COLUMN_TORRENT_ID = makeColumn(u"torrent_id"_s); + const Column DB_COLUMN_QUEUE_POSITION = makeColumn(u"queue_position"_s); + const Column DB_COLUMN_NAME = makeColumn(u"name"_s); + const Column DB_COLUMN_CATEGORY = makeColumn(u"category"_s); + const Column DB_COLUMN_TAGS = makeColumn(u"tags"_s); + const Column DB_COLUMN_TARGET_SAVE_PATH = makeColumn(u"target_save_path"_s); + const Column DB_COLUMN_DOWNLOAD_PATH = makeColumn(u"download_path"_s); + const Column DB_COLUMN_CONTENT_LAYOUT = makeColumn(u"content_layout"_s); + const Column DB_COLUMN_RATIO_LIMIT = makeColumn(u"ratio_limit"_s); + const Column DB_COLUMN_SEEDING_TIME_LIMIT = makeColumn(u"seeding_time_limit"_s); + const Column DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT = makeColumn(u"inactive_seeding_time_limit"_s); + const Column DB_COLUMN_SHARE_LIMIT_ACTION = makeColumn(u"share_limit_action"_s); + const Column DB_COLUMN_HAS_OUTER_PIECES_PRIORITY = makeColumn(u"has_outer_pieces_priority"_s); + const Column DB_COLUMN_HAS_SEED_STATUS = makeColumn(u"has_seed_status"_s); + const Column DB_COLUMN_OPERATING_MODE = makeColumn(u"operating_mode"_s); + const Column DB_COLUMN_STOPPED = makeColumn(u"stopped"_s); + const Column DB_COLUMN_STOP_CONDITION = makeColumn(u"stop_condition"_s); + const Column DB_COLUMN_SSL_CERTIFICATE = makeColumn(u"ssl_certificate"_s); + const Column DB_COLUMN_SSL_PRIVATE_KEY = makeColumn(u"ssl_private_key"_s); + const Column DB_COLUMN_SSL_DH_PARAMS = makeColumn(u"ssl_dh_params"_s); + const Column DB_COLUMN_RESUMEDATA = makeColumn(u"libtorrent_resume_data"_s); + const Column DB_COLUMN_METADATA = makeColumn(u"metadata"_s); + const Column DB_COLUMN_VALUE = makeColumn(u"value"_s); template QString fromLTString(const LTStr &str) @@ -168,7 +167,7 @@ namespace return u"CREATE TABLE %1 (%2)"_s.arg(quoted(tableName), items.join(u',')); } - std::pair joinColumns(const QVector &columns) + std::pair joinColumns(const QList &columns) { int namesSize = columns.size(); int valuesSize = columns.size(); @@ -193,104 +192,30 @@ namespace return std::make_pair(names, values); } - QString makeInsertStatement(const QString &tableName, const QVector &columns) + QString makeInsertStatement(const QString &tableName, const QList &columns) { const auto [names, values] = joinColumns(columns); return u"INSERT INTO %1 (%2) VALUES (%3)"_s .arg(quoted(tableName), names, values); } - QString makeUpdateStatement(const QString &tableName, const QVector &columns) + QString makeUpdateStatement(const QString &tableName, const QList &columns) { const auto [names, values] = joinColumns(columns); return u"UPDATE %1 SET (%2) = (%3)"_s .arg(quoted(tableName), names, values); } - QString makeOnConflictUpdateStatement(const Column &constraint, const QVector &columns) + QString makeOnConflictUpdateStatement(const Column &constraint, const QList &columns) { const auto [names, values] = joinColumns(columns); return u" ON CONFLICT (%1) DO UPDATE SET (%2) = (%3)"_s .arg(quoted(constraint.name), names, values); } - QString makeColumnDefinition(const Column &column, const char *definition) + QString makeColumnDefinition(const Column &column, const QString &definition) { - return u"%1 %2"_s.arg(quoted(column.name), QString::fromLatin1(definition)); - } - - LoadTorrentParams parseQueryResultRow(const QSqlQuery &query) - { - LoadTorrentParams resumeData; - resumeData.name = query.value(DB_COLUMN_NAME.name).toString(); - resumeData.category = query.value(DB_COLUMN_CATEGORY.name).toString(); - const QString tagsData = query.value(DB_COLUMN_TAGS.name).toString(); - if (!tagsData.isEmpty()) - { - const QStringList tagList = tagsData.split(u','); - resumeData.tags.insert(tagList.cbegin(), tagList.cend()); - } - resumeData.hasFinishedStatus = query.value(DB_COLUMN_HAS_SEED_STATUS.name).toBool(); - resumeData.firstLastPiecePriority = query.value(DB_COLUMN_HAS_OUTER_PIECES_PRIORITY.name).toBool(); - resumeData.ratioLimit = query.value(DB_COLUMN_RATIO_LIMIT.name).toInt() / 1000.0; - resumeData.seedingTimeLimit = query.value(DB_COLUMN_SEEDING_TIME_LIMIT.name).toInt(); - resumeData.inactiveSeedingTimeLimit = query.value(DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT.name).toInt(); - resumeData.shareLimitAction = Utils::String::toEnum( - query.value(DB_COLUMN_SHARE_LIMIT_ACTION.name).toString(), ShareLimitAction::Default); - resumeData.contentLayout = Utils::String::toEnum( - query.value(DB_COLUMN_CONTENT_LAYOUT.name).toString(), TorrentContentLayout::Original); - resumeData.operatingMode = Utils::String::toEnum( - query.value(DB_COLUMN_OPERATING_MODE.name).toString(), TorrentOperatingMode::AutoManaged); - resumeData.stopped = query.value(DB_COLUMN_STOPPED.name).toBool(); - resumeData.stopCondition = Utils::String::toEnum( - query.value(DB_COLUMN_STOP_CONDITION.name).toString(), Torrent::StopCondition::None); - resumeData.sslParameters = - { - .certificate = QSslCertificate(query.value(DB_COLUMN_SSL_CERTIFICATE.name).toByteArray()), - .privateKey = Utils::SSLKey::load(query.value(DB_COLUMN_SSL_PRIVATE_KEY.name).toByteArray()), - .dhParams = query.value(DB_COLUMN_SSL_DH_PARAMS.name).toByteArray() - }; - - resumeData.savePath = Profile::instance()->fromPortablePath( - Path(query.value(DB_COLUMN_TARGET_SAVE_PATH.name).toString())); - resumeData.useAutoTMM = resumeData.savePath.isEmpty(); - if (!resumeData.useAutoTMM) - { - resumeData.downloadPath = Profile::instance()->fromPortablePath( - Path(query.value(DB_COLUMN_DOWNLOAD_PATH.name).toString())); - } - - const QByteArray bencodedResumeData = query.value(DB_COLUMN_RESUMEDATA.name).toByteArray(); - const auto *pref = Preferences::instance(); - const int bdecodeDepthLimit = pref->getBdecodeDepthLimit(); - const int bdecodeTokenLimit = pref->getBdecodeTokenLimit(); - - lt::error_code ec; - const lt::bdecode_node resumeDataRoot = lt::bdecode(bencodedResumeData, ec - , nullptr, bdecodeDepthLimit, bdecodeTokenLimit); - - lt::add_torrent_params &p = resumeData.ltAddTorrentParams; - - p = lt::read_resume_data(resumeDataRoot, ec); - - if (const QByteArray bencodedMetadata = query.value(DB_COLUMN_METADATA.name).toByteArray() - ; !bencodedMetadata.isEmpty()) - { - const lt::bdecode_node torentInfoRoot = lt::bdecode(bencodedMetadata, ec - , nullptr, bdecodeDepthLimit, bdecodeTokenLimit); - p.ti = std::make_shared(torentInfoRoot, ec); - } - - p.save_path = Profile::instance()->fromPortablePath(Path(fromLTString(p.save_path))) - .toString().toStdString(); - - if (p.flags & lt::torrent_flags::stop_when_ready) - { - p.flags &= ~lt::torrent_flags::stop_when_ready; - resumeData.stopCondition = Torrent::StopCondition::FilesChecked; - } - - return resumeData; + return u"%1 %2"_s.arg(quoted(column.name), definition); } } @@ -308,7 +233,7 @@ namespace BitTorrent void store(const TorrentID &id, const LoadTorrentParams &resumeData); void remove(const TorrentID &id); - void storeQueue(const QVector &queue); + void storeQueue(const QList &queue); private: void addJob(std::unique_ptr job); @@ -325,7 +250,6 @@ namespace BitTorrent BitTorrent::DBResumeDataStorage::DBResumeDataStorage(const Path &dbPath, QObject *parent) : ResumeDataStorage(dbPath, parent) - , m_ioThread {new QThread} { const bool needCreateDB = !dbPath.exists(); @@ -356,7 +280,7 @@ BitTorrent::DBResumeDataStorage::~DBResumeDataStorage() QSqlDatabase::removeDatabase(DB_CONNECTION_NAME); } -QVector BitTorrent::DBResumeDataStorage::registeredTorrents() const +QList BitTorrent::DBResumeDataStorage::registeredTorrents() const { const auto selectTorrentIDStatement = u"SELECT %1 FROM %2 ORDER BY %3;"_s .arg(quoted(DB_COLUMN_TORRENT_ID.name), quoted(DB_TABLE_TORRENTS), quoted(DB_COLUMN_QUEUE_POSITION.name)); @@ -367,7 +291,7 @@ QVector BitTorrent::DBResumeDataStorage::registeredTorren if (!query.exec(selectTorrentIDStatement)) throw RuntimeError(query.lastError().text()); - QVector registeredTorrents; + QList registeredTorrents; registeredTorrents.reserve(query.size()); while (query.next()) registeredTorrents.append(BitTorrent::TorrentID::fromString(query.value(0).toString())); @@ -413,7 +337,7 @@ void BitTorrent::DBResumeDataStorage::remove(const BitTorrent::TorrentID &id) co m_asyncWorker->remove(id); } -void BitTorrent::DBResumeDataStorage::storeQueue(const QVector &queue) const +void BitTorrent::DBResumeDataStorage::storeQueue(const QList &queue) const { m_asyncWorker->storeQueue(queue); } @@ -438,7 +362,7 @@ void BitTorrent::DBResumeDataStorage::doLoadAll() const if (!query.exec(selectTorrentIDStatement)) throw RuntimeError(query.lastError().text()); - QVector registeredTorrents; + QList registeredTorrents; registeredTorrents.reserve(query.size()); while (query.next()) registeredTorrents.append(TorrentID::fromString(query.value(0).toString())); @@ -512,9 +436,9 @@ void BitTorrent::DBResumeDataStorage::createDB() const try { const QStringList tableMetaItems = { - makeColumnDefinition(DB_COLUMN_ID, "INTEGER PRIMARY KEY"), - makeColumnDefinition(DB_COLUMN_NAME, "TEXT NOT NULL UNIQUE"), - makeColumnDefinition(DB_COLUMN_VALUE, "BLOB") + makeColumnDefinition(DB_COLUMN_ID, u"INTEGER PRIMARY KEY"_s), + makeColumnDefinition(DB_COLUMN_NAME, u"TEXT NOT NULL UNIQUE"_s), + makeColumnDefinition(DB_COLUMN_VALUE, u"BLOB"_s) }; const QString createTableMetaQuery = makeCreateTableStatement(DB_TABLE_META, tableMetaItems); if (!query.exec(createTableMetaQuery)) @@ -531,29 +455,29 @@ void BitTorrent::DBResumeDataStorage::createDB() const throw RuntimeError(query.lastError().text()); const QStringList tableTorrentsItems = { - makeColumnDefinition(DB_COLUMN_ID, "INTEGER PRIMARY KEY"), - makeColumnDefinition(DB_COLUMN_TORRENT_ID, "BLOB NOT NULL UNIQUE"), - makeColumnDefinition(DB_COLUMN_QUEUE_POSITION, "INTEGER NOT NULL DEFAULT -1"), - makeColumnDefinition(DB_COLUMN_NAME, "TEXT"), - makeColumnDefinition(DB_COLUMN_CATEGORY, "TEXT"), - makeColumnDefinition(DB_COLUMN_TAGS, "TEXT"), - makeColumnDefinition(DB_COLUMN_TARGET_SAVE_PATH, "TEXT"), - makeColumnDefinition(DB_COLUMN_DOWNLOAD_PATH, "TEXT"), - makeColumnDefinition(DB_COLUMN_CONTENT_LAYOUT, "TEXT NOT NULL"), - makeColumnDefinition(DB_COLUMN_RATIO_LIMIT, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_SEEDING_TIME_LIMIT, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_SHARE_LIMIT_ACTION, "TEXT NOT NULL DEFAULT `Default`"), - makeColumnDefinition(DB_COLUMN_HAS_OUTER_PIECES_PRIORITY, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_HAS_SEED_STATUS, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_OPERATING_MODE, "TEXT NOT NULL"), - makeColumnDefinition(DB_COLUMN_STOPPED, "INTEGER NOT NULL"), - makeColumnDefinition(DB_COLUMN_STOP_CONDITION, "TEXT NOT NULL DEFAULT `None`"), - makeColumnDefinition(DB_COLUMN_SSL_CERTIFICATE, "TEXT"), - makeColumnDefinition(DB_COLUMN_SSL_PRIVATE_KEY, "TEXT"), - makeColumnDefinition(DB_COLUMN_SSL_DH_PARAMS, "TEXT"), - makeColumnDefinition(DB_COLUMN_RESUMEDATA, "BLOB NOT NULL"), - makeColumnDefinition(DB_COLUMN_METADATA, "BLOB") + makeColumnDefinition(DB_COLUMN_ID, u"INTEGER PRIMARY KEY"_s), + makeColumnDefinition(DB_COLUMN_TORRENT_ID, u"BLOB NOT NULL UNIQUE"_s), + makeColumnDefinition(DB_COLUMN_QUEUE_POSITION, u"INTEGER NOT NULL DEFAULT -1"_s), + makeColumnDefinition(DB_COLUMN_NAME, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_CATEGORY, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_TAGS, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_TARGET_SAVE_PATH, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_DOWNLOAD_PATH, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_CONTENT_LAYOUT, u"TEXT NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_RATIO_LIMIT, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_SEEDING_TIME_LIMIT, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_SHARE_LIMIT_ACTION, u"TEXT NOT NULL DEFAULT `Default`"_s), + makeColumnDefinition(DB_COLUMN_HAS_OUTER_PIECES_PRIORITY, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_HAS_SEED_STATUS, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_OPERATING_MODE, u"TEXT NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_STOPPED, u"INTEGER NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_STOP_CONDITION, u"TEXT NOT NULL DEFAULT `None`"_s), + makeColumnDefinition(DB_COLUMN_SSL_CERTIFICATE, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_SSL_PRIVATE_KEY, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_SSL_DH_PARAMS, u"TEXT"_s), + makeColumnDefinition(DB_COLUMN_RESUMEDATA, u"BLOB NOT NULL"_s), + makeColumnDefinition(DB_COLUMN_METADATA, u"BLOB"_s) }; const QString createTableTorrentsQuery = makeCreateTableStatement(DB_TABLE_TORRENTS, tableTorrentsItems); if (!query.exec(createTableTorrentsQuery)) @@ -591,7 +515,7 @@ void BitTorrent::DBResumeDataStorage::updateDB(const int fromVersion) const try { - const auto addColumn = [&query](const QString &table, const Column &column, const char *definition) + const auto addColumn = [&query](const QString &table, const Column &column, const QString &definition) { const auto testQuery = u"SELECT COUNT(%1) FROM %2;"_s.arg(quoted(column.name), quoted(table)); if (query.exec(testQuery)) @@ -603,10 +527,10 @@ void BitTorrent::DBResumeDataStorage::updateDB(const int fromVersion) const }; if (fromVersion <= 1) - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_DOWNLOAD_PATH, "TEXT"); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_DOWNLOAD_PATH, u"TEXT"_s); if (fromVersion <= 2) - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_STOP_CONDITION, "TEXT NOT NULL DEFAULT `None`"); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_STOP_CONDITION, u"TEXT NOT NULL DEFAULT `None`"_s); if (fromVersion <= 3) { @@ -618,17 +542,41 @@ void BitTorrent::DBResumeDataStorage::updateDB(const int fromVersion) const } if (fromVersion <= 4) - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT, "INTEGER NOT NULL DEFAULT -2"); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT, u"INTEGER NOT NULL DEFAULT -2"_s); if (fromVersion <= 5) { - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_CERTIFICATE, "TEXT"); - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_PRIVATE_KEY, "TEXT"); - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_DH_PARAMS, "TEXT"); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_CERTIFICATE, u"TEXT"_s); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_PRIVATE_KEY, u"TEXT"_s); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SSL_DH_PARAMS, u"TEXT"_s); } if (fromVersion <= 6) - addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SHARE_LIMIT_ACTION, "TEXTNOT NULL DEFAULT `Default`"); + addColumn(DB_TABLE_TORRENTS, DB_COLUMN_SHARE_LIMIT_ACTION, u"TEXT NOT NULL DEFAULT `Default`"_s); + + if (fromVersion == 7) + { + const QString TEMP_COLUMN_NAME = DB_COLUMN_SHARE_LIMIT_ACTION.name + u"_temp"; + + auto queryStr = u"ALTER TABLE %1 ADD %2 %3"_s + .arg(quoted(DB_TABLE_TORRENTS), TEMP_COLUMN_NAME, u"TEXT NOT NULL DEFAULT `Default`"); + if (!query.exec(queryStr)) + throw RuntimeError(query.lastError().text()); + + queryStr = u"UPDATE %1 SET %2 = %3"_s + .arg(quoted(DB_TABLE_TORRENTS), quoted(TEMP_COLUMN_NAME), quoted(DB_COLUMN_SHARE_LIMIT_ACTION.name)); + if (!query.exec(queryStr)) + throw RuntimeError(query.lastError().text()); + + queryStr = u"ALTER TABLE %1 DROP %2"_s.arg(quoted(DB_TABLE_TORRENTS), quoted(DB_COLUMN_SHARE_LIMIT_ACTION.name)); + if (!query.exec(queryStr)) + throw RuntimeError(query.lastError().text()); + + queryStr = u"ALTER TABLE %1 RENAME %2 TO %3"_s + .arg(quoted(DB_TABLE_TORRENTS), quoted(TEMP_COLUMN_NAME), quoted(DB_COLUMN_SHARE_LIMIT_ACTION.name)); + if (!query.exec(queryStr)) + throw RuntimeError(query.lastError().text()); + } const QString updateMetaVersionQuery = makeUpdateStatement(DB_TABLE_META, {DB_COLUMN_NAME, DB_COLUMN_VALUE}); if (!query.prepare(updateMetaVersionQuery)) @@ -666,6 +614,90 @@ void BitTorrent::DBResumeDataStorage::enableWALMode() const throw RuntimeError(tr("WAL mode is probably unsupported due to filesystem limitations.")); } +LoadResumeDataResult DBResumeDataStorage::parseQueryResultRow(const QSqlQuery &query) const +{ + LoadTorrentParams resumeData; + resumeData.name = query.value(DB_COLUMN_NAME.name).toString(); + resumeData.category = query.value(DB_COLUMN_CATEGORY.name).toString(); + const QString tagsData = query.value(DB_COLUMN_TAGS.name).toString(); + if (!tagsData.isEmpty()) + { + const QStringList tagList = tagsData.split(u','); + resumeData.tags.insert(tagList.cbegin(), tagList.cend()); + } + resumeData.hasFinishedStatus = query.value(DB_COLUMN_HAS_SEED_STATUS.name).toBool(); + resumeData.firstLastPiecePriority = query.value(DB_COLUMN_HAS_OUTER_PIECES_PRIORITY.name).toBool(); + resumeData.ratioLimit = query.value(DB_COLUMN_RATIO_LIMIT.name).toInt() / 1000.0; + resumeData.seedingTimeLimit = query.value(DB_COLUMN_SEEDING_TIME_LIMIT.name).toInt(); + resumeData.inactiveSeedingTimeLimit = query.value(DB_COLUMN_INACTIVE_SEEDING_TIME_LIMIT.name).toInt(); + resumeData.shareLimitAction = Utils::String::toEnum( + query.value(DB_COLUMN_SHARE_LIMIT_ACTION.name).toString(), ShareLimitAction::Default); + resumeData.contentLayout = Utils::String::toEnum( + query.value(DB_COLUMN_CONTENT_LAYOUT.name).toString(), TorrentContentLayout::Original); + resumeData.operatingMode = Utils::String::toEnum( + query.value(DB_COLUMN_OPERATING_MODE.name).toString(), TorrentOperatingMode::AutoManaged); + resumeData.stopped = query.value(DB_COLUMN_STOPPED.name).toBool(); + resumeData.stopCondition = Utils::String::toEnum( + query.value(DB_COLUMN_STOP_CONDITION.name).toString(), Torrent::StopCondition::None); + resumeData.sslParameters = + { + .certificate = QSslCertificate(query.value(DB_COLUMN_SSL_CERTIFICATE.name).toByteArray()), + .privateKey = Utils::SSLKey::load(query.value(DB_COLUMN_SSL_PRIVATE_KEY.name).toByteArray()), + .dhParams = query.value(DB_COLUMN_SSL_DH_PARAMS.name).toByteArray() + }; + + resumeData.savePath = Profile::instance()->fromPortablePath( + Path(query.value(DB_COLUMN_TARGET_SAVE_PATH.name).toString())); + resumeData.useAutoTMM = resumeData.savePath.isEmpty(); + if (!resumeData.useAutoTMM) + { + resumeData.downloadPath = Profile::instance()->fromPortablePath( + Path(query.value(DB_COLUMN_DOWNLOAD_PATH.name).toString())); + } + + const QByteArray bencodedResumeData = query.value(DB_COLUMN_RESUMEDATA.name).toByteArray(); + const auto *pref = Preferences::instance(); + const int bdecodeDepthLimit = pref->getBdecodeDepthLimit(); + const int bdecodeTokenLimit = pref->getBdecodeTokenLimit(); + + lt::error_code ec; + const lt::bdecode_node resumeDataRoot = lt::bdecode(bencodedResumeData, ec, nullptr, bdecodeDepthLimit, bdecodeTokenLimit); + if (ec) + return nonstd::make_unexpected(tr("Cannot parse resume data: %1").arg(QString::fromStdString(ec.message()))); + + lt::add_torrent_params &p = resumeData.ltAddTorrentParams; + + p = lt::read_resume_data(resumeDataRoot, ec); + if (ec) + return nonstd::make_unexpected(tr("Cannot parse resume data: %1").arg(QString::fromStdString(ec.message()))); + + if (const QByteArray bencodedMetadata = query.value(DB_COLUMN_METADATA.name).toByteArray() + ; !bencodedMetadata.isEmpty()) + { + const lt::bdecode_node torentInfoRoot = lt::bdecode(bencodedMetadata, ec + , nullptr, bdecodeDepthLimit, bdecodeTokenLimit); + if (ec) + return nonstd::make_unexpected(tr("Cannot parse torrent info: %1").arg(QString::fromStdString(ec.message()))); + + p.ti = std::make_shared(torentInfoRoot, ec); + if (ec) + return nonstd::make_unexpected(tr("Cannot parse torrent info: %1").arg(QString::fromStdString(ec.message()))); + } + + p.save_path = Profile::instance()->fromPortablePath(Path(fromLTString(p.save_path))) + .toString().toStdString(); + if (p.save_path.empty()) + return nonstd::make_unexpected(tr("Corrupted resume data: %1").arg(tr("save_path is invalid"))); + + if (p.flags & lt::torrent_flags::stop_when_ready) + { + p.flags &= ~lt::torrent_flags::stop_when_ready; + resumeData.stopCondition = Torrent::StopCondition::FilesChecked; + } + + return resumeData; +} + BitTorrent::DBResumeDataStorage::Worker::Worker(const Path &dbPath, QReadWriteLock &dbLock, QObject *parent) : QThread(parent) , m_path {dbPath} @@ -747,7 +779,7 @@ void BitTorrent::DBResumeDataStorage::Worker::remove(const TorrentID &id) addJob(std::make_unique(id)); } -void BitTorrent::DBResumeDataStorage::Worker::storeQueue(const QVector &queue) +void BitTorrent::DBResumeDataStorage::Worker::storeQueue(const QList &queue) { addJob(std::make_unique(queue)); } @@ -797,7 +829,7 @@ namespace } } - QVector columns { + QList columns { DB_COLUMN_TORRENT_ID, DB_COLUMN_NAME, DB_COLUMN_CATEGORY, @@ -929,7 +961,7 @@ namespace } } - StoreQueueJob::StoreQueueJob(const QVector &queue) + StoreQueueJob::StoreQueueJob(const QList &queue) : m_queue {queue} { } diff --git a/src/base/bittorrent/dbresumedatastorage.h b/src/base/bittorrent/dbresumedatastorage.h index 97485f298..a7a97ab25 100644 --- a/src/base/bittorrent/dbresumedatastorage.h +++ b/src/base/bittorrent/dbresumedatastorage.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2021-2022 Vladimir Golovnev + * Copyright (C) 2021-2025 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -31,10 +31,9 @@ #include #include "base/pathfwd.h" -#include "base/utils/thread.h" #include "resumedatastorage.h" -class QThread; +class QSqlQuery; namespace BitTorrent { @@ -47,12 +46,12 @@ namespace BitTorrent explicit DBResumeDataStorage(const Path &dbPath, QObject *parent = nullptr); ~DBResumeDataStorage() override; - QVector registeredTorrents() const override; + QList registeredTorrents() const override; LoadResumeDataResult load(const TorrentID &id) const override; void store(const TorrentID &id, const LoadTorrentParams &resumeData) const override; void remove(const TorrentID &id) const override; - void storeQueue(const QVector &queue) const override; + void storeQueue(const QList &queue) const override; private: void doLoadAll() const override; @@ -60,8 +59,7 @@ namespace BitTorrent void createDB() const; void updateDB(int fromVersion) const; void enableWALMode() const; - - Utils::Thread::UniquePtr m_ioThread; + LoadResumeDataResult parseQueryResultRow(const QSqlQuery &query) const; class Worker; Worker *m_asyncWorker = nullptr; diff --git a/src/base/bittorrent/filterparserthread.cpp b/src/base/bittorrent/filterparserthread.cpp index 56d650ed7..5b5c0659c 100644 --- a/src/base/bittorrent/filterparserthread.cpp +++ b/src/base/bittorrent/filterparserthread.cpp @@ -133,7 +133,7 @@ int FilterParserThread::parseDATFilterFile() return ruleCount; } - std::vector buffer(BUFFER_SIZE, 0); // seems a bit faster than QVector + std::vector buffer(BUFFER_SIZE, 0); // seems a bit faster than QList qint64 bytesRead = 0; int offset = 0; int start = 0; @@ -297,7 +297,7 @@ int FilterParserThread::parseP2PFilterFile() return ruleCount; } - std::vector buffer(BUFFER_SIZE, 0); // seems a bit faster than QVector + std::vector buffer(BUFFER_SIZE, 0); // seems a bit faster than QList qint64 bytesRead = 0; int offset = 0; int start = 0; diff --git a/src/base/bittorrent/infohash.cpp b/src/base/bittorrent/infohash.cpp index c4b514e8c..e4df6c619 100644 --- a/src/base/bittorrent/infohash.cpp +++ b/src/base/bittorrent/infohash.cpp @@ -29,6 +29,9 @@ #include "infohash.h" #include +#include + +#include "base/global.h" const int TorrentIDTypeId = qRegisterMetaType(); @@ -86,6 +89,28 @@ BitTorrent::TorrentID BitTorrent::InfoHash::toTorrentID() const #endif } +QString BitTorrent::InfoHash::toString() const +{ + // Returns a string that is suitable for logging purpose + + QString ret; + ret.reserve(40 + 64 + 2); // v1 hash length + v2 hash length + comma + + const SHA1Hash v1Hash = v1(); + const bool v1IsValid = v1Hash.isValid(); + if (v1IsValid) + ret += v1Hash.toString(); + + if (const SHA256Hash v2Hash = v2(); v2Hash.isValid()) + { + if (v1IsValid) + ret += u", "; + ret += v2Hash.toString(); + } + + return ret; +} + BitTorrent::InfoHash::operator WrappedType() const { return m_nativeHash; diff --git a/src/base/bittorrent/infohash.h b/src/base/bittorrent/infohash.h index d870e0fd2..2153c104f 100644 --- a/src/base/bittorrent/infohash.h +++ b/src/base/bittorrent/infohash.h @@ -36,6 +36,8 @@ #include "base/digest32.h" +class QString; + using SHA1Hash = Digest32<160>; using SHA256Hash = Digest32<256>; @@ -79,6 +81,8 @@ namespace BitTorrent SHA256Hash v2() const; TorrentID toTorrentID() const; + QString toString() const; + operator WrappedType() const; private: diff --git a/src/base/bittorrent/peeraddress.cpp b/src/base/bittorrent/peeraddress.cpp index 1d05ef92f..e4ef445ef 100644 --- a/src/base/bittorrent/peeraddress.cpp +++ b/src/base/bittorrent/peeraddress.cpp @@ -39,7 +39,11 @@ PeerAddress PeerAddress::parse(const QStringView address) if (address.startsWith(u'[') && address.contains(u"]:")) { // IPv6 ipPort = address.split(u"]:"); - ipPort[0] = ipPort[0].mid(1); // chop '[' +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + ipPort[0].slice(1); // chop '[' +#else + ipPort[0] = ipPort[0].sliced(1); // chop '[' +#endif } else if (address.contains(u':')) { // IPv4 diff --git a/src/base/bittorrent/peerinfo.cpp b/src/base/bittorrent/peerinfo.cpp index cf27ba302..3706b1e81 100644 --- a/src/base/bittorrent/peerinfo.cpp +++ b/src/base/bittorrent/peerinfo.cpp @@ -367,6 +367,10 @@ void PeerInfo::determineFlags() if (useUTPSocket()) updateFlags(u'P', C_UTP); + // h = Peer is using NAT hole punching + if (isHolepunched()) + updateFlags(u'h', tr("Peer is using NAT hole punching")); + m_flags.chop(1); m_flagsDescription.chop(1); } diff --git a/src/base/bittorrent/resumedatastorage.cpp b/src/base/bittorrent/resumedatastorage.cpp index 6e67a5b58..f21d3c832 100644 --- a/src/base/bittorrent/resumedatastorage.cpp +++ b/src/base/bittorrent/resumedatastorage.cpp @@ -30,12 +30,12 @@ #include +#include #include #include #include -#include -const int TORRENTIDLIST_TYPEID = qRegisterMetaType>(); +const int TORRENTIDLIST_TYPEID = qRegisterMetaType>(); BitTorrent::ResumeDataStorage::ResumeDataStorage(const Path &path, QObject *parent) : QObject(parent) @@ -56,6 +56,7 @@ void BitTorrent::ResumeDataStorage::loadAll() const { doLoadAll(); }); + loadingThread->setObjectName("ResumeDataStorage::loadAll loadingThread"); connect(loadingThread, &QThread::finished, loadingThread, &QObject::deleteLater); loadingThread->start(); } diff --git a/src/base/bittorrent/resumedatastorage.h b/src/base/bittorrent/resumedatastorage.h index b583da60a..f2df1b1e2 100644 --- a/src/base/bittorrent/resumedatastorage.h +++ b/src/base/bittorrent/resumedatastorage.h @@ -58,17 +58,17 @@ namespace BitTorrent Path path() const; - virtual QVector registeredTorrents() const = 0; + virtual QList registeredTorrents() const = 0; virtual LoadResumeDataResult load(const TorrentID &id) const = 0; virtual void store(const TorrentID &id, const LoadTorrentParams &resumeData) const = 0; virtual void remove(const TorrentID &id) const = 0; - virtual void storeQueue(const QVector &queue) const = 0; + virtual void storeQueue(const QList &queue) const = 0; void loadAll() const; QList fetchLoadedResumeData() const; signals: - void loadStarted(const QVector &torrents); + void loadStarted(const QList &torrents); void loadFinished(); protected: diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index d4d3e758a..95c7ac4be 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2024 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -34,20 +34,16 @@ #include "base/pathfwd.h" #include "base/tagset.h" +#include "addtorrenterror.h" #include "addtorrentparams.h" #include "categoryoptions.h" #include "sharelimitaction.h" +#include "torrentcontentremoveoption.h" #include "trackerentry.h" #include "trackerentrystatus.h" class QString; -enum DeleteOption -{ - DeleteTorrent, - DeleteTorrentAndFiles -}; - namespace BitTorrent { class InfoHash; @@ -58,6 +54,12 @@ namespace BitTorrent struct CacheStatus; struct SessionStatus; + enum class TorrentRemoveOption + { + KeepContent, + RemoveContent + }; + // Using `Q_ENUM_NS()` without a wrapper namespace in our case is not advised // since `Q_NAMESPACE` cannot be used when the same namespace resides at different files. // https://www.kdab.com/new-qt-5-8-meta-object-support-namespaces/#comment-143779 @@ -91,7 +93,8 @@ namespace BitTorrent { Default = 0, MMap = 1, - Posix = 2 + Posix = 2, + SimplePreadPwrite = 3 }; Q_ENUM_NS(DiskIOType) @@ -235,6 +238,12 @@ namespace BitTorrent virtual Path finishedTorrentExportDirectory() const = 0; virtual void setFinishedTorrentExportDirectory(const Path &path) = 0; + virtual bool isAddTrackersFromURLEnabled() const = 0; + virtual void setAddTrackersFromURLEnabled(bool enabled) = 0; + virtual QString additionalTrackersURL() const = 0; + virtual void setAdditionalTrackersURL(const QString &url) = 0; + virtual QString additionalTrackersFromURL() const = 0; + virtual int globalDownloadSpeedLimit() const = 0; virtual void setGlobalDownloadSpeedLimit(int limit) = 0; virtual int globalUploadSpeedLimit() const = 0; @@ -256,6 +265,8 @@ namespace BitTorrent virtual void setPerformanceWarningEnabled(bool enable) = 0; virtual int saveResumeDataInterval() const = 0; virtual void setSaveResumeDataInterval(int value) = 0; + virtual std::chrono::minutes saveStatisticsInterval() const = 0; + virtual void setSaveStatisticsInterval(std::chrono::minutes value) = 0; virtual int shutdownTimeout() const = 0; virtual void setShutdownTimeout(int value) = 0; virtual int port() const = 0; @@ -382,6 +393,8 @@ namespace BitTorrent virtual void setIncludeOverheadInLimits(bool include) = 0; virtual QString announceIP() const = 0; virtual void setAnnounceIP(const QString &ip) = 0; + virtual int announcePort() const = 0; + virtual void setAnnouncePort(int port) = 0; virtual int maxConcurrentHTTPAnnounces() const = 0; virtual void setMaxConcurrentHTTPAnnounces(int value) = 0; virtual bool isReannounceWhenAddressChangedEnabled() const = 0; @@ -409,6 +422,8 @@ namespace BitTorrent virtual void setUTPRateLimited(bool limited) = 0; virtual MixedModeAlgorithm utpMixedMode() const = 0; virtual void setUtpMixedMode(MixedModeAlgorithm mode) = 0; + virtual int hostnameCacheTTL() const = 0; + virtual void setHostnameCacheTTL(int value) = 0; virtual bool isIDNSupportEnabled() const = 0; virtual void setIDNSupportEnabled(bool enabled) = 0; virtual bool multiConnectionsPerIpEnabled() const = 0; @@ -425,7 +440,7 @@ namespace BitTorrent virtual void setExcludedFileNamesEnabled(bool enabled) = 0; virtual QStringList excludedFileNames() const = 0; virtual void setExcludedFileNames(const QStringList &newList) = 0; - virtual bool isFilenameExcluded(const QString &fileName) const = 0; + virtual void applyFilenameFilter(const PathList &files, QList &priorities) = 0; virtual QStringList bannedIPs() const = 0; virtual void setBannedIPs(const QStringList &newList) = 0; virtual ResumeDataStorageType resumeDataStorageType() const = 0; @@ -434,6 +449,8 @@ namespace BitTorrent virtual void setMergeTrackersEnabled(bool enabled) = 0; virtual bool isStartPaused() const = 0; virtual void setStartPaused(bool value) = 0; + virtual TorrentContentRemoveOption torrentContentRemoveOption() const = 0; + virtual void setTorrentContentRemoveOption(TorrentContentRemoveOption option) = 0; virtual bool isRestored() const = 0; @@ -443,7 +460,7 @@ namespace BitTorrent virtual Torrent *getTorrent(const TorrentID &id) const = 0; virtual Torrent *findTorrent(const InfoHash &infoHash) const = 0; - virtual QVector torrents() const = 0; + virtual QList torrents() const = 0; virtual qsizetype torrentsCount() const = 0; virtual const SessionStatus &status() const = 0; virtual const CacheStatus &cacheStatus() const = 0; @@ -453,18 +470,23 @@ namespace BitTorrent virtual bool isKnownTorrent(const InfoHash &infoHash) const = 0; virtual bool addTorrent(const TorrentDescriptor &torrentDescr, const AddTorrentParams ¶ms = {}) = 0; - virtual bool deleteTorrent(const TorrentID &id, DeleteOption deleteOption = DeleteOption::DeleteTorrent) = 0; + virtual bool removeTorrent(const TorrentID &id, TorrentRemoveOption deleteOption = TorrentRemoveOption::KeepContent) = 0; virtual bool downloadMetadata(const TorrentDescriptor &torrentDescr) = 0; virtual bool cancelDownloadMetadata(const TorrentID &id) = 0; - virtual void increaseTorrentsQueuePos(const QVector &ids) = 0; - virtual void decreaseTorrentsQueuePos(const QVector &ids) = 0; - virtual void topTorrentsQueuePos(const QVector &ids) = 0; - virtual void bottomTorrentsQueuePos(const QVector &ids) = 0; + virtual void increaseTorrentsQueuePos(const QList &ids) = 0; + virtual void decreaseTorrentsQueuePos(const QList &ids) = 0; + virtual void topTorrentsQueuePos(const QList &ids) = 0; + virtual void bottomTorrentsQueuePos(const QList &ids) = 0; + + virtual QString lastExternalIPv4Address() const = 0; + virtual QString lastExternalIPv6Address() const = 0; + + virtual qint64 freeDiskSpace() const = 0; signals: void startupProgressUpdated(int progress); - void addTorrentFailed(const InfoHash &infoHash, const QString &reason); + void addTorrentFailed(const InfoHash &infoHash, const AddTorrentError &reason); void allTorrentsFinished(); void categoryAdded(const QString &categoryName); void categoryRemoved(const QString &categoryName); @@ -491,16 +513,17 @@ namespace BitTorrent void torrentStarted(Torrent *torrent); void torrentSavePathChanged(Torrent *torrent); void torrentSavingModeChanged(Torrent *torrent); - void torrentsLoaded(const QVector &torrents); - void torrentsUpdated(const QVector &torrents); + void torrentsLoaded(const QList &torrents); + void torrentsUpdated(const QList &torrents); void torrentTagAdded(Torrent *torrent, const Tag &tag); void torrentTagRemoved(Torrent *torrent, const Tag &tag); void trackerError(Torrent *torrent, const QString &tracker); - void trackersAdded(Torrent *torrent, const QVector &trackers); + void trackersAdded(Torrent *torrent, const QList &trackers); void trackersChanged(Torrent *torrent); void trackersRemoved(Torrent *torrent, const QStringList &trackers); void trackerSuccess(Torrent *torrent, const QString &tracker); void trackerWarning(Torrent *torrent, const QString &tracker); void trackerEntryStatusesUpdated(Torrent *torrent, const QHash &updatedTrackers); + void freeDiskSpaceChecked(qint64 result); }; } diff --git a/src/base/bittorrent/sessionimpl.cpp b/src/base/bittorrent/sessionimpl.cpp index 5822bcb63..64d274f19 100644 --- a/src/base/bittorrent/sessionimpl.cpp +++ b/src/base/bittorrent/sessionimpl.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2024 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -30,7 +30,6 @@ #include "sessionimpl.h" #include -#include #include #include #include @@ -58,6 +57,7 @@ #include #include +#include #include #include #include @@ -66,18 +66,20 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include "base/algorithm.h" +#include "base/freediskspacechecker.h" #include "base/global.h" #include "base/logger.h" +#include "base/net/downloadmanager.h" #include "base/net/proxyconfigurationmanager.h" #include "base/preferences.h" #include "base/profile.h" @@ -87,6 +89,7 @@ #include "base/utils/net.h" #include "base/utils/number.h" #include "base/utils/random.h" +#include "base/utils/string.h" #include "base/version.h" #include "bandwidthscheduler.h" #include "bencoderesumedatastorage.h" @@ -101,23 +104,25 @@ #include "nativesessionextension.h" #include "portforwarderimpl.h" #include "resumedatastorage.h" +#include "torrentcontentremover.h" #include "torrentdescriptor.h" #include "torrentimpl.h" #include "tracker.h" #include "trackerentry.h" +#include "trackerentrystatus.h" using namespace std::chrono_literals; using namespace BitTorrent; const Path CATEGORIES_FILE_NAME {u"categories.json"_s}; const int MAX_PROCESSING_RESUMEDATA_COUNT = 50; -const int STATISTICS_SAVE_INTERVAL = std::chrono::milliseconds(15min).count(); +const std::chrono::seconds FREEDISKSPACE_CHECK_TIMEOUT = 30s; namespace { const char PEER_ID[] = "qB"; const auto USER_AGENT = QStringLiteral("qBittorrent/" QBT_VERSION_2); - const QString DEFAULT_DHT_BOOTSTRAP_NODES = u"dht.libtorrent.org:25401, dht.transmissionbt.com:6881, router.bittorrent.com:6881, router.utorrent.com:6881, dht.aelitis.com:6881"_s; + const QString DEFAULT_DHT_BOOTSTRAP_NODES = u"dht.libtorrent.org:25401, dht.transmissionbt.com:6881, router.bittorrent.com:6881"_s; void torrentQueuePositionUp(const lt::torrent_handle &handle) { @@ -223,7 +228,7 @@ namespace { try { - return QString::fromLatin1(address.to_string().c_str()); + return Utils::String::fromLatin1(address.to_string()); } catch (const std::exception &) { @@ -297,14 +302,15 @@ namespace { switch (mode) { - default: - Q_ASSERT(false); case MoveStorageMode::FailIfExist: return lt::move_flags_t::fail_if_exist; case MoveStorageMode::KeepExistingFiles: return lt::move_flags_t::dont_replace; case MoveStorageMode::Overwrite: return lt::move_flags_t::always_replace_files; + default: + Q_UNREACHABLE(); + break; } } } @@ -359,7 +365,7 @@ QString Session::subcategoryName(const QString &category) { const int sepIndex = category.lastIndexOf(u'/'); if (sepIndex >= 0) - return category.mid(sepIndex + 1); + return category.sliced(sepIndex + 1); return category; } @@ -368,7 +374,7 @@ QString Session::parentCategoryName(const QString &category) { const int sepIndex = category.lastIndexOf(u'/'); if (sepIndex >= 0) - return category.left(sepIndex); + return category.first(sepIndex); return {}; } @@ -379,7 +385,7 @@ QStringList Session::expandCategory(const QString &category) int index = 0; while ((index = category.indexOf(u'/', index)) >= 0) { - result << category.left(index); + result << category.first(index); ++index; } result << category; @@ -441,6 +447,7 @@ SessionImpl::SessionImpl(QObject *parent) , m_ignoreLimitsOnLAN(BITTORRENT_SESSION_KEY(u"IgnoreLimitsOnLAN"_s), false) , m_includeOverheadInLimits(BITTORRENT_SESSION_KEY(u"IncludeOverheadInLimits"_s), false) , m_announceIP(BITTORRENT_SESSION_KEY(u"AnnounceIP"_s)) + , m_announcePort(BITTORRENT_SESSION_KEY(u"AnnouncePort"_s), 0) , m_maxConcurrentHTTPAnnounces(BITTORRENT_SESSION_KEY(u"MaxConcurrentHTTPAnnounces"_s), 50) , m_isReannounceWhenAddressChangedEnabled(BITTORRENT_SESSION_KEY(u"ReannounceWhenAddressChanged"_s), false) , m_stopTrackerTimeout(BITTORRENT_SESSION_KEY(u"StopTrackerTimeout"_s), 2) @@ -453,6 +460,7 @@ SessionImpl::SessionImpl(QObject *parent) , m_isUTPRateLimited(BITTORRENT_SESSION_KEY(u"uTPRateLimited"_s), true) , m_utpMixedMode(BITTORRENT_SESSION_KEY(u"uTPMixedMode"_s), MixedModeAlgorithm::TCP , clampValue(MixedModeAlgorithm::TCP, MixedModeAlgorithm::Proportional)) + , m_hostnameCacheTTL(BITTORRENT_SESSION_KEY(u"HostnameCacheTTL"_s), 1200) , m_IDNSupportEnabled(BITTORRENT_SESSION_KEY(u"IDNSupportEnabled"_s), false) , m_multiConnectionsPerIpEnabled(BITTORRENT_SESSION_KEY(u"MultiConnectionsPerIp"_s), false) , m_validateHTTPSTrackerCertificate(BITTORRENT_SESSION_KEY(u"ValidateHTTPSTrackerCertificate"_s), true) @@ -460,9 +468,13 @@ SessionImpl::SessionImpl(QObject *parent) , m_blockPeersOnPrivilegedPorts(BITTORRENT_SESSION_KEY(u"BlockPeersOnPrivilegedPorts"_s), false) , m_isAddTrackersEnabled(BITTORRENT_SESSION_KEY(u"AddTrackersEnabled"_s), false) , m_additionalTrackers(BITTORRENT_SESSION_KEY(u"AdditionalTrackers"_s)) + , m_isAddTrackersFromURLEnabled(BITTORRENT_SESSION_KEY(u"AddTrackersFromURLEnabled"_s), false) + , m_additionalTrackersURL(BITTORRENT_SESSION_KEY(u"AdditionalTrackersURL"_s)) , m_globalMaxRatio(BITTORRENT_SESSION_KEY(u"GlobalMaxRatio"_s), -1, [](qreal r) { return r < 0 ? -1. : r;}) - , m_globalMaxSeedingMinutes(BITTORRENT_SESSION_KEY(u"GlobalMaxSeedingMinutes"_s), -1, lowerLimited(-1)) - , m_globalMaxInactiveSeedingMinutes(BITTORRENT_SESSION_KEY(u"GlobalMaxInactiveSeedingMinutes"_s), -1, lowerLimited(-1)) + , m_globalMaxSeedingMinutes(BITTORRENT_SESSION_KEY(u"GlobalMaxSeedingMinutes"_s), Torrent::NO_SEEDING_TIME_LIMIT + , clampValue(Torrent::NO_SEEDING_TIME_LIMIT, Torrent::MAX_SEEDING_TIME)) + , m_globalMaxInactiveSeedingMinutes(BITTORRENT_SESSION_KEY(u"GlobalMaxInactiveSeedingMinutes"_s), Torrent::NO_INACTIVE_SEEDING_TIME_LIMIT + , clampValue(Torrent::NO_INACTIVE_SEEDING_TIME_LIMIT, Torrent::MAX_INACTIVE_SEEDING_TIME)) , m_isAddTorrentToQueueTop(BITTORRENT_SESSION_KEY(u"AddTorrentToTopOfQueue"_s), false) , m_isAddTorrentStopped(BITTORRENT_SESSION_KEY(u"AddTorrentStopped"_s), false) , m_torrentStopCondition(BITTORRENT_SESSION_KEY(u"TorrentStopCondition"_s), Torrent::StopCondition::None) @@ -481,6 +493,7 @@ SessionImpl::SessionImpl(QObject *parent) , m_isBandwidthSchedulerEnabled(BITTORRENT_SESSION_KEY(u"BandwidthSchedulerEnabled"_s), false) , m_isPerformanceWarningEnabled(BITTORRENT_SESSION_KEY(u"PerformanceWarning"_s), false) , m_saveResumeDataInterval(BITTORRENT_SESSION_KEY(u"SaveResumeDataInterval"_s), 60) + , m_saveStatisticsInterval(BITTORRENT_SESSION_KEY(u"SaveStatisticsInterval"_s), 15) , m_shutdownTimeout(BITTORRENT_SESSION_KEY(u"ShutdownTimeout"_s), -1) , m_port(BITTORRENT_SESSION_KEY(u"Port"_s), -1) , m_sslEnabled(BITTORRENT_SESSION_KEY(u"SSL/Enabled"_s), false) @@ -525,15 +538,21 @@ SessionImpl::SessionImpl(QObject *parent) , m_I2POutboundQuantity {BITTORRENT_SESSION_KEY(u"I2P/OutboundQuantity"_s), 3} , m_I2PInboundLength {BITTORRENT_SESSION_KEY(u"I2P/InboundLength"_s), 3} , m_I2POutboundLength {BITTORRENT_SESSION_KEY(u"I2P/OutboundLength"_s), 3} + , m_torrentContentRemoveOption {BITTORRENT_SESSION_KEY(u"TorrentContentRemoveOption"_s), TorrentContentRemoveOption::Delete} , m_startPaused {BITTORRENT_SESSION_KEY(u"StartPaused"_s)} , m_seedingLimitTimer {new QTimer(this)} , m_resumeDataTimer {new QTimer(this)} , m_ioThread {new QThread} , m_asyncWorker {new QThreadPool(this)} , m_recentErroredTorrentsTimer {new QTimer(this)} + , m_freeDiskSpaceChecker {new FreeDiskSpaceChecker(savePath())} + , m_freeDiskSpaceCheckingTimer {new QTimer(this)} { // It is required to perform async access to libtorrent sequentially m_asyncWorker->setMaxThreadCount(1); + m_asyncWorker->setObjectName("SessionImpl m_asyncWorker"); + + m_alerts.reserve(1024); if (port() < 0) m_port = Utils::Random::rand(1024, 65535); @@ -550,7 +569,14 @@ SessionImpl::SessionImpl(QObject *parent) , this, [this]() { m_recentErroredTorrents.clear(); }); m_seedingLimitTimer->setInterval(10s); - connect(m_seedingLimitTimer, &QTimer::timeout, this, &SessionImpl::processShareLimits); + connect(m_seedingLimitTimer, &QTimer::timeout, this, [this] + { + // We shouldn't iterate over `m_torrents` in the loop below + // since `deleteTorrent()` modifies it indirectly + const QHash torrents {m_torrents}; + for (TorrentImpl *torrent : torrents) + processTorrentShareLimits(torrent); + }); initializeNativeSession(); configureComponents(); @@ -581,13 +607,33 @@ SessionImpl::SessionImpl(QObject *parent) , &Net::ProxyConfigurationManager::proxyConfigurationChanged , this, &SessionImpl::configureDeferred); + m_freeDiskSpaceChecker->moveToThread(m_ioThread.get()); + connect(m_ioThread.get(), &QThread::finished, m_freeDiskSpaceChecker, &QObject::deleteLater); + m_freeDiskSpaceCheckingTimer->setInterval(FREEDISKSPACE_CHECK_TIMEOUT); + m_freeDiskSpaceCheckingTimer->setSingleShot(true); + connect(m_freeDiskSpaceCheckingTimer, &QTimer::timeout, m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::check); + connect(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::checked, this, [this](const qint64 value) + { + m_freeDiskSpace = value; + m_freeDiskSpaceCheckingTimer->start(); + emit freeDiskSpaceChecked(m_freeDiskSpace); + }); + m_fileSearcher = new FileSearcher; m_fileSearcher->moveToThread(m_ioThread.get()); connect(m_ioThread.get(), &QThread::finished, m_fileSearcher, &QObject::deleteLater); connect(m_fileSearcher, &FileSearcher::searchFinished, this, &SessionImpl::fileSearchFinished); + m_torrentContentRemover = new TorrentContentRemover; + m_torrentContentRemover->moveToThread(m_ioThread.get()); + connect(m_ioThread.get(), &QThread::finished, m_torrentContentRemover, &QObject::deleteLater); + connect(m_torrentContentRemover, &TorrentContentRemover::jobFinished, this, &SessionImpl::torrentContentRemovingFinished); + + m_ioThread->setObjectName("SessionImpl m_ioThread"); m_ioThread->start(); + QMetaObject::invokeMethod(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::check); + initMetrics(); loadStatistics(); @@ -598,13 +644,22 @@ SessionImpl::SessionImpl(QObject *parent) enableTracker(isTrackerEnabled()); prepareStartup(); + + m_updateTrackersFromURLTimer = new QTimer(this); + m_updateTrackersFromURLTimer->setInterval(24h); + connect(m_updateTrackersFromURLTimer, &QTimer::timeout, this, &SessionImpl::updateTrackersFromURL); + if (isAddTrackersFromURLEnabled()) + { + updateTrackersFromURL(); + m_updateTrackersFromURLTimer->start(); + } } SessionImpl::~SessionImpl() { m_nativeSession->pause(); - const qint64 timeout = (m_shutdownTimeout >= 0) ? (m_shutdownTimeout * 1000) : -1; + const auto timeout = (m_shutdownTimeout >= 0) ? (static_cast(m_shutdownTimeout) * 1000) : -1; const QDeadlineTimer shutdownDeadlineTimer {timeout}; if (m_torrentsQueueChanged) @@ -645,6 +700,7 @@ SessionImpl::~SessionImpl() qDebug("Deleting libtorrent session..."); delete nativeSessionProxy; }); + sessionTerminateThread->setObjectName("~SessionImpl sessionTerminateThread"); connect(sessionTerminateThread, &QThread::finished, sessionTerminateThread, &QObject::deleteLater); sessionTerminateThread->start(); if (sessionTerminateThread->wait(shutdownDeadlineTimer)) @@ -939,23 +995,25 @@ bool SessionImpl::editCategory(const QString &name, const CategoryOptions &optio if (options == currentOptions) return false; - currentOptions = options; - storeCategories(); if (isDisableAutoTMMWhenCategorySavePathChanged()) { + // This should be done before changing the category options + // to prevent the torrent from being moved at the new save path. + for (TorrentImpl *const torrent : asConst(m_torrents)) { if (torrent->category() == name) torrent->setAutoTMMEnabled(false); } } - else + + currentOptions = options; + storeCategories(); + + for (TorrentImpl *const torrent : asConst(m_torrents)) { - for (TorrentImpl *const torrent : asConst(m_torrents)) - { - if (torrent->category() == name) - torrent->handleCategoryOptionsChanged(); - } + if (torrent->category() == name) + torrent->handleCategoryOptionsChanged(); } emit categoryOptionsChanged(name); @@ -1199,8 +1257,7 @@ int SessionImpl::globalMaxSeedingMinutes() const void SessionImpl::setGlobalMaxSeedingMinutes(int minutes) { - if (minutes < 0) - minutes = -1; + minutes = std::clamp(minutes, Torrent::NO_SEEDING_TIME_LIMIT, Torrent::MAX_SEEDING_TIME); if (minutes != globalMaxSeedingMinutes()) { @@ -1216,7 +1273,7 @@ int SessionImpl::globalMaxInactiveSeedingMinutes() const void SessionImpl::setGlobalMaxInactiveSeedingMinutes(int minutes) { - minutes = std::max(minutes, -1); + minutes = std::clamp(minutes, Torrent::NO_INACTIVE_SEEDING_TIME_LIMIT, Torrent::MAX_INACTIVE_SEEDING_TIME); if (minutes != globalMaxInactiveSeedingMinutes()) { @@ -1292,7 +1349,7 @@ void SessionImpl::prepareStartup() context->startupStorage = m_resumeDataStorage; connect(context->startupStorage, &ResumeDataStorage::loadStarted, context - , [this, context](const QVector &torrents) + , [this, context](const QList &torrents) { context->totalResumeDataCount = torrents.size(); #ifdef QBT_USES_LIBTORRENT2 @@ -1582,20 +1639,24 @@ void SessionImpl::endStartup(ResumeSessionContext *context) m_resumeDataTimer->start(); } - m_wakeupCheckTimer = new QTimer(this); - connect(m_wakeupCheckTimer, &QTimer::timeout, this, [this] + auto wakeupCheckTimer = new QTimer(this); + connect(wakeupCheckTimer, &QTimer::timeout, this, [this] { - const auto now = QDateTime::currentDateTime(); - if (m_wakeupCheckTimestamp.secsTo(now) > 100) +#if (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + const bool hasSystemSlept = m_wakeupCheckTimestamp.durationElapsed() > 100s; +#else + const bool hasSystemSlept = m_wakeupCheckTimestamp.elapsed() > std::chrono::milliseconds(100s).count(); +#endif + if (hasSystemSlept) { LogMsg(tr("System wake-up event detected. Re-announcing to all the trackers...")); reannounceToAllTrackers(); } - m_wakeupCheckTimestamp = QDateTime::currentDateTime(); + m_wakeupCheckTimestamp.start(); }); - m_wakeupCheckTimestamp = QDateTime::currentDateTime(); - m_wakeupCheckTimer->start(30s); + m_wakeupCheckTimestamp.start(); + wakeupCheckTimer->start(30s); m_isRestored = true; emit startupProgressUpdated(100); @@ -1624,6 +1685,13 @@ void SessionImpl::initializeNativeSession() #ifdef QBT_USES_LIBTORRENT2 // preserve the same behavior as in earlier libtorrent versions pack.set_bool(lt::settings_pack::enable_set_file_valid_data, true); + + // This is a special case. We use MMap disk IO but tweak it to always fallback to pread/pwrite. + if (diskIOType() == DiskIOType::SimplePreadPwrite) + { + pack.set_int(lt::settings_pack::mmap_file_size_cutoff, std::numeric_limits::max()); + pack.set_int(lt::settings_pack::disk_write_mode, lt::settings_pack::mmap_write_mode_t::always_pwrite); + } #endif lt::session_params sessionParams {std::move(pack), {}}; @@ -1634,6 +1702,7 @@ void SessionImpl::initializeNativeSession() sessionParams.disk_io_constructor = customPosixDiskIOConstructor; break; case DiskIOType::MMap: + case DiskIOType::SimplePreadPwrite: sessionParams.disk_io_constructor = customMMapDiskIOConstructor; break; default: @@ -1958,6 +2027,10 @@ lt::settings_pack SessionImpl::loadLTSettings() const settingsPack.set_bool(lt::settings_pack::rate_limit_ip_overhead, includeOverheadInLimits()); // IP address to announce to trackers settingsPack.set_str(lt::settings_pack::announce_ip, announceIP().toStdString()); +#if LIBTORRENT_VERSION_NUM >= 20011 + // Port to announce to trackers + settingsPack.set_int(lt::settings_pack::announce_port, announcePort()); +#endif // Max concurrent HTTP announces settingsPack.set_int(lt::settings_pack::max_concurrent_http_announces, maxConcurrentHTTPAnnounces()); // Stop tracker timeout @@ -2003,6 +2076,8 @@ lt::settings_pack SessionImpl::loadLTSettings() const break; } + settingsPack.set_int(lt::settings_pack::resolver_cache_timeout, hostnameCacheTTL()); + settingsPack.set_bool(lt::settings_pack::allow_idna, isIDNSupportEnabled()); settingsPack.set_bool(lt::settings_pack::allow_multiple_connections_per_ip, multiConnectionsPerIpEnabled()); @@ -2236,72 +2311,71 @@ void SessionImpl::populateAdditionalTrackers() m_additionalTrackerEntries = parseTrackerEntries(additionalTrackers()); } -void SessionImpl::processShareLimits() +void SessionImpl::populateAdditionalTrackersFromURL() { + m_additionalTrackerEntriesFromURL = parseTrackerEntries(additionalTrackersFromURL()); +} + +void SessionImpl::processTorrentShareLimits(TorrentImpl *torrent) +{ + if (!torrent->isFinished() || torrent->isForced()) + return; + const auto effectiveLimit = [](const T limit, const T useGlobalLimit, const T globalLimit) -> T { return (limit == useGlobalLimit) ? globalLimit : limit; }; - // We shouldn't iterate over `m_torrents` in the loop below - // since `deleteTorrent()` modifies it indirectly - const QHash torrents {m_torrents}; - for (const auto &[torrentID, torrent] : torrents.asKeyValueRange()) + const qreal ratioLimit = effectiveLimit(torrent->ratioLimit(), Torrent::USE_GLOBAL_RATIO, globalMaxRatio()); + const int seedingTimeLimit = effectiveLimit(torrent->seedingTimeLimit(), Torrent::USE_GLOBAL_SEEDING_TIME, globalMaxSeedingMinutes()); + const int inactiveSeedingTimeLimit = effectiveLimit(torrent->inactiveSeedingTimeLimit(), Torrent::USE_GLOBAL_INACTIVE_SEEDING_TIME, globalMaxInactiveSeedingMinutes()); + + bool reached = false; + QString description; + + if (const qreal ratio = torrent->realRatio(); + (ratioLimit >= 0) && (ratio <= Torrent::MAX_RATIO) && (ratio >= ratioLimit)) { - if (!torrent->isFinished() || torrent->isForced()) - continue; + reached = true; + description = tr("Torrent reached the share ratio limit."); + } + else if (const qlonglong seedingTimeInMinutes = torrent->finishedTime() / 60; + (seedingTimeLimit >= 0) && (seedingTimeInMinutes <= Torrent::MAX_SEEDING_TIME) && (seedingTimeInMinutes >= seedingTimeLimit)) + { + reached = true; + description = tr("Torrent reached the seeding time limit."); + } + else if (const qlonglong inactiveSeedingTimeInMinutes = torrent->timeSinceActivity() / 60; + (inactiveSeedingTimeLimit >= 0) && (inactiveSeedingTimeInMinutes <= Torrent::MAX_INACTIVE_SEEDING_TIME) && (inactiveSeedingTimeInMinutes >= inactiveSeedingTimeLimit)) + { + reached = true; + description = tr("Torrent reached the inactive seeding time limit."); + } - const qreal ratioLimit = effectiveLimit(torrent->ratioLimit(), Torrent::USE_GLOBAL_RATIO, globalMaxRatio()); - const int seedingTimeLimit = effectiveLimit(torrent->seedingTimeLimit(), Torrent::USE_GLOBAL_SEEDING_TIME, globalMaxSeedingMinutes()); - const int inactiveSeedingTimeLimit = effectiveLimit(torrent->inactiveSeedingTimeLimit(), Torrent::USE_GLOBAL_INACTIVE_SEEDING_TIME, globalMaxInactiveSeedingMinutes()); + if (reached) + { + const QString torrentName = tr("Torrent: \"%1\".").arg(torrent->name()); + const ShareLimitAction shareLimitAction = (torrent->shareLimitAction() == ShareLimitAction::Default) ? m_shareLimitAction : torrent->shareLimitAction(); - bool reached = false; - QString description; - - if (const qreal ratio = torrent->realRatio(); - (ratioLimit >= 0) && (ratio <= Torrent::MAX_RATIO) && (ratio >= ratioLimit)) + if (shareLimitAction == ShareLimitAction::Remove) { - reached = true; - description = tr("Torrent reached the share ratio limit."); + LogMsg(u"%1 %2 %3"_s.arg(description, tr("Removing torrent."), torrentName)); + removeTorrent(torrent->id(), TorrentRemoveOption::KeepContent); } - else if (const qlonglong seedingTimeInMinutes = torrent->finishedTime() / 60; - (seedingTimeLimit >= 0) && (seedingTimeInMinutes <= Torrent::MAX_SEEDING_TIME) && (seedingTimeInMinutes >= seedingTimeLimit)) + else if (shareLimitAction == ShareLimitAction::RemoveWithContent) { - reached = true; - description = tr("Torrent reached the seeding time limit."); + LogMsg(u"%1 %2 %3"_s.arg(description, tr("Removing torrent and deleting its content."), torrentName)); + removeTorrent(torrent->id(), TorrentRemoveOption::RemoveContent); } - else if (const qlonglong inactiveSeedingTimeInMinutes = torrent->timeSinceActivity() / 60; - (inactiveSeedingTimeLimit >= 0) && (inactiveSeedingTimeInMinutes <= Torrent::MAX_INACTIVE_SEEDING_TIME) && (inactiveSeedingTimeInMinutes >= inactiveSeedingTimeLimit)) + else if ((shareLimitAction == ShareLimitAction::Stop) && !torrent->isStopped()) { - reached = true; - description = tr("Torrent reached the inactive seeding time limit."); + torrent->stop(); + LogMsg(u"%1 %2 %3"_s.arg(description, tr("Torrent stopped."), torrentName)); } - - if (reached) + else if ((shareLimitAction == ShareLimitAction::EnableSuperSeeding) && !torrent->isStopped() && !torrent->superSeeding()) { - const QString torrentName = tr("Torrent: \"%1\".").arg(torrent->name()); - const ShareLimitAction shareLimitAction = (torrent->shareLimitAction() == ShareLimitAction::Default) ? m_shareLimitAction : torrent->shareLimitAction(); - - if (shareLimitAction == ShareLimitAction::Remove) - { - LogMsg(u"%1 %2 %3"_s.arg(description, tr("Removing torrent."), torrentName)); - deleteTorrent(torrentID); - } - else if (shareLimitAction == ShareLimitAction::RemoveWithContent) - { - LogMsg(u"%1 %2 %3"_s.arg(description, tr("Removing torrent and deleting its content."), torrentName)); - deleteTorrent(torrentID, DeleteTorrentAndFiles); - } - else if ((shareLimitAction == ShareLimitAction::Stop) && !torrent->isStopped()) - { - torrent->stop(); - LogMsg(u"%1 %2 %3"_s.arg(description, tr("Torrent stopped."), torrentName)); - } - else if ((shareLimitAction == ShareLimitAction::EnableSuperSeeding) && !torrent->isStopped() && !torrent->superSeeding()) - { - torrent->setSuperSeeding(true); - LogMsg(u"%1 %2 %3"_s.arg(description, tr("Super seeding enabled."), torrentName)); - } + torrent->setSuperSeeding(true); + LogMsg(u"%1 %2 %3"_s.arg(description, tr("Super seeding enabled."), torrentName)); } } } @@ -2331,6 +2405,19 @@ void SessionImpl::fileSearchFinished(const TorrentID &id, const Path &savePath, } } +void SessionImpl::torrentContentRemovingFinished(const QString &torrentName, const QString &errorMessage) +{ + if (errorMessage.isEmpty()) + { + LogMsg(tr("Torrent content removed. Torrent: \"%1\"").arg(torrentName)); + } + else + { + LogMsg(tr("Failed to remove torrent content. Torrent: \"%1\". Error: \"%2\"") + .arg(torrentName, errorMessage), Log::WARNING); + } +} + Torrent *SessionImpl::getTorrent(const TorrentID &id) const { return m_torrents.value(id); @@ -2377,30 +2464,33 @@ void SessionImpl::banIP(const QString &ip) // Delete a torrent from the session, given its hash // and from the disk, if the corresponding deleteOption is chosen -bool SessionImpl::deleteTorrent(const TorrentID &id, const DeleteOption deleteOption) +bool SessionImpl::removeTorrent(const TorrentID &id, const TorrentRemoveOption deleteOption) { TorrentImpl *const torrent = m_torrents.take(id); if (!torrent) return false; - qDebug("Deleting torrent with ID: %s", qUtf8Printable(torrent->id().toString())); + const TorrentID torrentID = torrent->id(); + const QString torrentName = torrent->name(); + + qDebug("Deleting torrent with ID: %s", qUtf8Printable(torrentID.toString())); emit torrentAboutToBeRemoved(torrent); if (const InfoHash infoHash = torrent->infoHash(); infoHash.isHybrid()) m_hybridTorrentsByAltID.remove(TorrentID::fromSHA1Hash(infoHash.v1())); // Remove it from session - if (deleteOption == DeleteTorrent) + if (deleteOption == TorrentRemoveOption::KeepContent) { - m_removingTorrents[torrent->id()] = {torrent->name(), {}, deleteOption}; + m_removingTorrents[torrentID] = {torrentName, torrent->actualStorageLocation(), {}, deleteOption}; const lt::torrent_handle nativeHandle {torrent->nativeHandle()}; - const auto iter = std::find_if(m_moveStorageQueue.begin(), m_moveStorageQueue.end() - , [&nativeHandle](const MoveStorageJob &job) + const auto iter = std::find_if(m_moveStorageQueue.cbegin(), m_moveStorageQueue.cend() + , [&nativeHandle](const MoveStorageJob &job) { return job.torrentHandle == nativeHandle; }); - if (iter != m_moveStorageQueue.end()) + if (iter != m_moveStorageQueue.cend()) { // We shouldn't actually remove torrent until existing "move storage jobs" are done torrentQueuePositionBottom(nativeHandle); @@ -2414,35 +2504,36 @@ bool SessionImpl::deleteTorrent(const TorrentID &id, const DeleteOption deleteOp } else { - m_removingTorrents[torrent->id()] = {torrent->name(), torrent->rootPath(), deleteOption}; + m_removingTorrents[torrentID] = {torrentName, torrent->actualStorageLocation(), torrent->actualFilePaths(), deleteOption}; if (m_moveStorageQueue.size() > 1) { // Delete "move storage job" for the deleted torrent // (note: we shouldn't delete active job) - const auto iter = std::find_if((m_moveStorageQueue.begin() + 1), m_moveStorageQueue.end() - , [torrent](const MoveStorageJob &job) + const auto iter = std::find_if((m_moveStorageQueue.cbegin() + 1), m_moveStorageQueue.cend() + , [torrent](const MoveStorageJob &job) { return job.torrentHandle == torrent->nativeHandle(); }); - if (iter != m_moveStorageQueue.end()) + if (iter != m_moveStorageQueue.cend()) m_moveStorageQueue.erase(iter); } - m_nativeSession->remove_torrent(torrent->nativeHandle(), lt::session::delete_files); + m_nativeSession->remove_torrent(torrent->nativeHandle(), lt::session::delete_partfile); } // Remove it from torrent resume directory - m_resumeDataStorage->remove(torrent->id()); + m_resumeDataStorage->remove(torrentID); + LogMsg(tr("Torrent removed. Torrent: \"%1\"").arg(torrentName)); delete torrent; return true; } bool SessionImpl::cancelDownloadMetadata(const TorrentID &id) { - const auto downloadedMetadataIter = m_downloadedMetadata.find(id); - if (downloadedMetadataIter == m_downloadedMetadata.end()) + const auto downloadedMetadataIter = m_downloadedMetadata.constFind(id); + if (downloadedMetadataIter == m_downloadedMetadata.cend()) return false; const lt::torrent_handle nativeHandle = downloadedMetadataIter.value(); @@ -2462,11 +2553,11 @@ bool SessionImpl::cancelDownloadMetadata(const TorrentID &id) } #endif - m_nativeSession->remove_torrent(nativeHandle, lt::session::delete_files); + m_nativeSession->remove_torrent(nativeHandle); return true; } -void SessionImpl::increaseTorrentsQueuePos(const QVector &ids) +void SessionImpl::increaseTorrentsQueuePos(const QList &ids) { using ElementType = std::pair; std::priority_queue &ids) m_torrentsQueueChanged = true; } -void SessionImpl::decreaseTorrentsQueuePos(const QVector &ids) +void SessionImpl::decreaseTorrentsQueuePos(const QList &ids) { using ElementType = std::pair; std::priority_queue torrentQueue; @@ -2521,7 +2612,7 @@ void SessionImpl::decreaseTorrentsQueuePos(const QVector &ids) m_torrentsQueueChanged = true; } -void SessionImpl::topTorrentsQueuePos(const QVector &ids) +void SessionImpl::topTorrentsQueuePos(const QList &ids) { using ElementType = std::pair; std::priority_queue torrentQueue; @@ -2546,7 +2637,7 @@ void SessionImpl::topTorrentsQueuePos(const QVector &ids) m_torrentsQueueChanged = true; } -void SessionImpl::bottomTorrentsQueuePos(const QVector &ids) +void SessionImpl::bottomTorrentsQueuePos(const QList &ids) { using ElementType = std::pair; std::priority_queue SessionImpl::torrents() const +QList SessionImpl::torrents() const { - QVector result; + QList result; result.reserve(m_torrents.size()); for (TorrentImpl *torrent : asConst(m_torrents)) result << torrent; @@ -2684,10 +2775,50 @@ bool SessionImpl::addTorrent_impl(const TorrentDescriptor &source, const AddTorr // We should not add the torrent if it is already // processed or is pending to add to session if (m_loadingTorrents.contains(id) || (infoHash.isHybrid() && m_loadingTorrents.contains(altID))) + { + emit addTorrentFailed(infoHash, {AddTorrentError::DuplicateTorrent, tr("Duplicate torrent")}); return false; + } - if (findTorrent(infoHash)) + if (Torrent *torrent = findTorrent(infoHash)) + { + // a duplicate torrent is being added + + if (hasMetadata) + { + // Trying to set metadata to existing torrent in case if it has none + torrent->setMetadata(*source.info()); + } + + if (!isMergeTrackersEnabled()) + { + const QString message = tr("Merging of trackers is disabled"); + LogMsg(tr("Detected an attempt to add a duplicate torrent. Existing torrent: \"%1\". Torrent infohash: %2. Result: %3") + .arg(torrent->name(), torrent->infoHash().toString(), message)); + emit addTorrentFailed(infoHash, {AddTorrentError::DuplicateTorrent, message}); + return false; + } + + const bool isPrivate = torrent->isPrivate() || (hasMetadata && source.info()->isPrivate()); + if (isPrivate) + { + const QString message = tr("Trackers cannot be merged because it is a private torrent"); + LogMsg(tr("Detected an attempt to add a duplicate torrent. Existing torrent: \"%1\". Torrent infohash: %2. Result: %3") + .arg(torrent->name(), torrent->infoHash().toString(), message)); + emit addTorrentFailed(infoHash, {AddTorrentError::DuplicateTorrent, message}); + return false; + } + + // merge trackers and web seeds + torrent->addTrackers(source.trackers()); + torrent->addUrlSeeds(source.urlSeeds()); + + const QString message = tr("Trackers are merged from new source"); + LogMsg(tr("Detected an attempt to add a duplicate torrent. Existing torrent: \"%1\". Torrent infohash: %2. Result: %3") + .arg(torrent->name(), torrent->infoHash().toString(), message)); + emit addTorrentFailed(infoHash, {AddTorrentError::DuplicateTorrent, message}); return false; + } // It looks illogical that we don't just use an existing handle, // but as previous experience has shown, it actually creates unnecessary @@ -2751,6 +2882,19 @@ bool SessionImpl::addTorrent_impl(const TorrentDescriptor &source, const AddTorr loadTorrentParams.name = contentName; } + const auto nativeIndexes = torrentInfo.nativeIndexes(); + + Q_ASSERT(p.file_priorities.empty()); + Q_ASSERT(addTorrentParams.filePriorities.isEmpty() || (addTorrentParams.filePriorities.size() == nativeIndexes.size())); + QList filePriorities = addTorrentParams.filePriorities; + + // Filename filter should be applied before `findIncompleteFiles()` is called. + if (filePriorities.isEmpty() && isExcludedFileNamesEnabled()) + { + // Check file name blacklist when priorities are not explicitly set + applyFilenameFilter(filePaths, filePriorities); + } + if (!loadTorrentParams.hasFinishedStatus) { const Path actualDownloadPath = useAutoTMM @@ -2759,36 +2903,20 @@ bool SessionImpl::addTorrent_impl(const TorrentDescriptor &source, const AddTorr isFindingIncompleteFiles = true; } - const auto nativeIndexes = torrentInfo.nativeIndexes(); if (!isFindingIncompleteFiles) { for (int index = 0; index < filePaths.size(); ++index) p.renamed_files[nativeIndexes[index]] = filePaths.at(index).toString().toStdString(); } - Q_ASSERT(p.file_priorities.empty()); - Q_ASSERT(addTorrentParams.filePriorities.isEmpty() || (addTorrentParams.filePriorities.size() == nativeIndexes.size())); - const int internalFilesCount = torrentInfo.nativeInfo()->files().num_files(); // including .pad files // Use qBittorrent default priority rather than libtorrent's (4) p.file_priorities = std::vector(internalFilesCount, LT::toNative(DownloadPriority::Normal)); - if (addTorrentParams.filePriorities.isEmpty()) + if (!filePriorities.isEmpty()) { - if (isExcludedFileNamesEnabled()) - { - // Check file name blacklist when priorities are not explicitly set - for (int i = 0; i < filePaths.size(); ++i) - { - if (isFilenameExcluded(filePaths.at(i).filename())) - p.file_priorities[LT::toUnderlyingType(nativeIndexes[i])] = lt::dont_download; - } - } - } - else - { - for (int i = 0; i < addTorrentParams.filePriorities.size(); ++i) - p.file_priorities[LT::toUnderlyingType(nativeIndexes[i])] = LT::toNative(addTorrentParams.filePriorities[i]); + for (int i = 0; i < filePriorities.size(); ++i) + p.file_priorities[LT::toUnderlyingType(nativeIndexes[i])] = LT::toNative(filePriorities[i]); } Q_ASSERT(p.ti); @@ -2816,6 +2944,21 @@ bool SessionImpl::addTorrent_impl(const TorrentDescriptor &source, const AddTorr } } + if (isAddTrackersFromURLEnabled() && !(hasMetadata && p.ti->priv())) + { + const auto maxTierIter = std::max_element(p.tracker_tiers.cbegin(), p.tracker_tiers.cend()); + const int baseTier = (maxTierIter != p.tracker_tiers.cend()) ? (*maxTierIter + 1) : 0; + + p.trackers.reserve(p.trackers.size() + static_cast(m_additionalTrackerEntriesFromURL.size())); + p.tracker_tiers.reserve(p.trackers.size() + static_cast(m_additionalTrackerEntriesFromURL.size())); + p.tracker_tiers.resize(p.trackers.size(), 0); + for (const TrackerEntry &trackerEntry : asConst(m_additionalTrackerEntriesFromURL)) + { + p.trackers.emplace_back(trackerEntry.url.toStdString()); + p.tracker_tiers.emplace_back(Utils::Number::clampingAdd(trackerEntry.tier, baseTier)); + } + } + p.upload_limit = addTorrentParams.uploadLimit; p.download_limit = addTorrentParams.downloadLimit; @@ -2950,11 +3093,6 @@ void SessionImpl::removeMappedPorts(const QSet &ports) }); } -void SessionImpl::invokeAsync(std::function func) -{ - m_asyncWorker->start(std::move(func)); -} - // Add a torrent to libtorrent session in hidden mode // and force it to download its metadata bool SessionImpl::downloadMetadata(const TorrentDescriptor &torrentDescr) @@ -3089,10 +3227,10 @@ void SessionImpl::saveResumeData() break; } - const std::vector alerts = getPendingAlerts(waitTime); + fetchPendingAlerts(waitTime); bool hasWantedAlert = false; - for (const lt::alert *alert : alerts) + for (const lt::alert *alert : m_alerts) { if (const int alertType = alert->type(); (alertType == lt::save_resume_data_alert::alert_type) || (alertType == lt::save_resume_data_failed_alert::alert_type) @@ -3112,7 +3250,7 @@ void SessionImpl::saveResumeData() void SessionImpl::saveTorrentsQueue() { - QVector queue; + QList queue; for (const TorrentImpl *torrent : asConst(m_torrents)) { if (const int queuePos = torrent->queuePosition(); queuePos >= 0) @@ -3142,6 +3280,9 @@ void SessionImpl::setSavePath(const Path &path) if (isDisableAutoTMMWhenDefaultSavePathChanged()) { + // This should be done before changing the save path + // to prevent the torrent from being moved at the new save path. + QSet affectedCatogories {{}}; // includes default (unnamed) category for (auto it = m_categories.cbegin(); it != m_categories.cend(); ++it) { @@ -3161,6 +3302,14 @@ void SessionImpl::setSavePath(const Path &path) m_savePath = newPath; for (TorrentImpl *const torrent : asConst(m_torrents)) torrent->handleCategoryOptionsChanged(); + + m_freeDiskSpace = -1; + m_freeDiskSpaceCheckingTimer->stop(); + QMetaObject::invokeMethod(m_freeDiskSpaceChecker, [checker = m_freeDiskSpaceChecker, pathToCheck = m_savePath] + { + checker->setPathToCheck(pathToCheck); + checker->check(); + }); } void SessionImpl::setDownloadPath(const Path &path) @@ -3171,6 +3320,9 @@ void SessionImpl::setDownloadPath(const Path &path) if (isDisableAutoTMMWhenDefaultSavePathChanged()) { + // This should be done before changing the save path + // to prevent the torrent from being moved at the new save path. + QSet affectedCatogories {{}}; // includes default (unnamed) category for (auto it = m_categories.cbegin(); it != m_categories.cend(); ++it) { @@ -3497,6 +3649,16 @@ void SessionImpl::setSaveResumeDataInterval(const int value) } } +std::chrono::minutes SessionImpl::saveStatisticsInterval() const +{ + return std::chrono::minutes(m_saveStatisticsInterval); +} + +void SessionImpl::setSaveStatisticsInterval(const std::chrono::minutes timeInMinutes) +{ + m_saveStatisticsInterval = timeInMinutes.count(); +} + int SessionImpl::shutdownTimeout() const { return m_shutdownTimeout; @@ -3803,6 +3965,82 @@ void SessionImpl::setAdditionalTrackers(const QString &trackers) populateAdditionalTrackers(); } +bool SessionImpl::isAddTrackersFromURLEnabled() const +{ + return m_isAddTrackersFromURLEnabled; +} + +void SessionImpl::setAddTrackersFromURLEnabled(const bool enabled) +{ + if (enabled != isAddTrackersFromURLEnabled()) + { + m_isAddTrackersFromURLEnabled = enabled; + if (enabled) + { + updateTrackersFromURL(); + m_updateTrackersFromURLTimer->start(); + } + else + { + m_updateTrackersFromURLTimer->stop(); + setAdditionalTrackersFromURL({}); + } + } +} + +QString SessionImpl::additionalTrackersURL() const +{ + return m_additionalTrackersURL; +} + +void SessionImpl::setAdditionalTrackersURL(const QString &url) +{ + if (url != additionalTrackersURL()) + { + m_additionalTrackersURL = url.trimmed(); + if (isAddTrackersFromURLEnabled()) + updateTrackersFromURL(); + } +} + +QString SessionImpl::additionalTrackersFromURL() const +{ + return m_additionalTrackersFromURL; +} + +void SessionImpl::setAdditionalTrackersFromURL(const QString &trackers) +{ + if (trackers != additionalTrackersFromURL()) + { + m_additionalTrackersFromURL = trackers; + populateAdditionalTrackersFromURL(); + } +} + +void SessionImpl::updateTrackersFromURL() +{ + const QString url = additionalTrackersURL(); + if (url.isEmpty()) + { + setAdditionalTrackersFromURL({}); + } + else + { + Net::DownloadManager::instance()->download(Net::DownloadRequest(url) + , Preferences::instance()->useProxyForGeneralPurposes(), this, [this](const Net::DownloadResult &result) + { + if (result.status == Net::DownloadStatus::Success) + { + setAdditionalTrackersFromURL(QString::fromUtf8(result.data)); + LogMsg(tr("Tracker list updated"), Log::INFO); + return; + } + + LogMsg(tr("Failed to update tracker list. Reason: \"%1\"").arg(result.errorString), Log::WARNING); + }); + } +} + bool SessionImpl::isIPFilteringEnabled() const { return m_isIPFilteringEnabled; @@ -3874,21 +4112,41 @@ void SessionImpl::populateExcludedFileNamesRegExpList() for (const QString &str : excludedNames) { - const QString pattern = QRegularExpression::anchoredPattern(QRegularExpression::wildcardToRegularExpression(str)); + const QString pattern = QRegularExpression::wildcardToRegularExpression(str); const QRegularExpression re {pattern, QRegularExpression::CaseInsensitiveOption}; m_excludedFileNamesRegExpList.append(re); } } -bool SessionImpl::isFilenameExcluded(const QString &fileName) const +void SessionImpl::applyFilenameFilter(const PathList &files, QList &priorities) { if (!isExcludedFileNamesEnabled()) - return false; + return; - return std::any_of(m_excludedFileNamesRegExpList.begin(), m_excludedFileNamesRegExpList.end(), [&fileName](const QRegularExpression &re) + const auto isFilenameExcluded = [patterns = m_excludedFileNamesRegExpList](const Path &fileName) { - return re.match(fileName).hasMatch(); - }); + return std::any_of(patterns.begin(), patterns.end(), [&fileName](const QRegularExpression &re) + { + Path path = fileName; + while (!re.match(path.filename()).hasMatch()) + { + path = path.parentPath(); + if (path.isEmpty()) + return false; + } + return true; + }); + }; + + priorities.resize(files.count(), DownloadPriority::Normal); + for (int i = 0; i < priorities.size(); ++i) + { + if (priorities[i] == BitTorrent::DownloadPriority::Ignored) + continue; + + if (isFilenameExcluded(files.at(i))) + priorities[i] = BitTorrent::DownloadPriority::Ignored; + } } void SessionImpl::setBannedIPs(const QStringList &newList) @@ -3957,6 +4215,16 @@ void SessionImpl::setStartPaused(const bool value) m_startPaused = value; } +TorrentContentRemoveOption SessionImpl::torrentContentRemoveOption() const +{ + return m_torrentContentRemoveOption; +} + +void SessionImpl::setTorrentContentRemoveOption(const TorrentContentRemoveOption option) +{ + m_torrentContentRemoveOption = option; +} + QStringList SessionImpl::bannedIPs() const { return m_bannedIPs; @@ -3974,14 +4242,29 @@ bool SessionImpl::isPaused() const void SessionImpl::pause() { - if (!m_isPaused) - { - if (isRestored()) - m_nativeSession->pause(); + if (m_isPaused) + return; - m_isPaused = true; - emit paused(); + if (isRestored()) + { + m_nativeSession->pause(); + + for (TorrentImpl *torrent : asConst(m_torrents)) + { + torrent->resetTrackerEntryStatuses(); + + const QList trackers = torrent->trackers(); + QHash updatedTrackers; + updatedTrackers.reserve(trackers.size()); + + for (const TrackerEntryStatus &status : trackers) + updatedTrackers.emplace(status.url, status); + emit trackerEntryStatusesUpdated(torrent, updatedTrackers); + } } + + m_isPaused = true; + emit paused(); } void SessionImpl::resume() @@ -4648,6 +4931,20 @@ void SessionImpl::setAnnounceIP(const QString &ip) } } +int SessionImpl::announcePort() const +{ + return m_announcePort; +} + +void SessionImpl::setAnnouncePort(const int port) +{ + if (port != m_announcePort) + { + m_announcePort = port; + configureDeferred(); + } +} + int SessionImpl::maxConcurrentHTTPAnnounces() const { return m_maxConcurrentHTTPAnnounces; @@ -4774,6 +5071,20 @@ void SessionImpl::setUtpMixedMode(const MixedModeAlgorithm mode) configureDeferred(); } +int SessionImpl::hostnameCacheTTL() const +{ + return m_hostnameCacheTTL; +} + +void SessionImpl::setHostnameCacheTTL(const int value) +{ + if (value == hostnameCacheTTL()) + return; + + m_hostnameCacheTTL = value; + configureDeferred(); +} + bool SessionImpl::isIDNSupportEnabled() const { return m_IDNSupportEnabled; @@ -4853,6 +5164,21 @@ void SessionImpl::setTrackerFilteringEnabled(const bool enabled) } } +QString SessionImpl::lastExternalIPv4Address() const +{ + return m_lastExternalIPv4Address; +} + +QString SessionImpl::lastExternalIPv6Address() const +{ + return m_lastExternalIPv6Address; +} + +qint64 SessionImpl::freeDiskSpace() const +{ + return m_freeDiskSpace; +} + bool SessionImpl::isListening() const { return m_nativeSessionExtension->isSessionListening(); @@ -4890,7 +5216,7 @@ void SessionImpl::updateSeedingLimitTimer() if ((globalMaxRatio() == Torrent::NO_RATIO_LIMIT) && !hasPerTorrentRatioLimit() && (globalMaxSeedingMinutes() == Torrent::NO_SEEDING_TIME_LIMIT) && !hasPerTorrentSeedingTimeLimit() && (globalMaxInactiveSeedingMinutes() == Torrent::NO_INACTIVE_SEEDING_TIME_LIMIT) && !hasPerTorrentInactiveSeedingTimeLimit()) - { + { if (m_seedingLimitTimer->isActive()) m_seedingLimitTimer->stop(); } @@ -4934,7 +5260,7 @@ void SessionImpl::handleTorrentSavingModeChanged(TorrentImpl *const torrent) emit torrentSavingModeChanged(torrent); } -void SessionImpl::handleTorrentTrackersAdded(TorrentImpl *const torrent, const QVector &newTrackers) +void SessionImpl::handleTorrentTrackersAdded(TorrentImpl *const torrent, const QList &newTrackers) { for (const TrackerEntry &newTracker : newTrackers) LogMsg(tr("Added tracker to torrent. Torrent: \"%1\". Tracker: \"%2\"").arg(torrent->name(), newTracker.url)); @@ -4953,13 +5279,13 @@ void SessionImpl::handleTorrentTrackersChanged(TorrentImpl *const torrent) emit trackersChanged(torrent); } -void SessionImpl::handleTorrentUrlSeedsAdded(TorrentImpl *const torrent, const QVector &newUrlSeeds) +void SessionImpl::handleTorrentUrlSeedsAdded(TorrentImpl *const torrent, const QList &newUrlSeeds) { for (const QUrl &newUrlSeed : newUrlSeeds) LogMsg(tr("Added URL seed to torrent. Torrent: \"%1\". URL: \"%2\"").arg(torrent->name(), newUrlSeed.toString())); } -void SessionImpl::handleTorrentUrlSeedsRemoved(TorrentImpl *const torrent, const QVector &urlSeeds) +void SessionImpl::handleTorrentUrlSeedsRemoved(TorrentImpl *const torrent, const QList &urlSeeds) { for (const QUrl &urlSeed : urlSeeds) LogMsg(tr("Removed URL seed from torrent. Torrent: \"%1\". URL: \"%2\"").arg(torrent->name(), urlSeed.toString())); @@ -4977,7 +5303,7 @@ void SessionImpl::handleTorrentStopped(TorrentImpl *const torrent) { torrent->resetTrackerEntryStatuses(); - const QVector trackers = torrent->trackers(); + const QList trackers = torrent->trackers(); QHash updatedTrackers; updatedTrackers.reserve(trackers.size()); @@ -5002,25 +5328,14 @@ void SessionImpl::handleTorrentChecked(TorrentImpl *const torrent) void SessionImpl::handleTorrentFinished(TorrentImpl *const torrent) { - LogMsg(tr("Torrent download finished. Torrent: \"%1\"").arg(torrent->name())); - emit torrentFinished(torrent); - - if (const Path exportPath = finishedTorrentExportDirectory(); !exportPath.isEmpty()) - exportTorrentFile(torrent, exportPath); - - const bool hasUnfinishedTorrents = std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentImpl *torrent) - { - return !(torrent->isFinished() || torrent->isStopped() || torrent->isErrored()); - }); - if (!hasUnfinishedTorrents) - emit allTorrentsFinished(); + m_pendingFinishedTorrents.append(torrent); } void SessionImpl::handleTorrentResumeDataReady(TorrentImpl *const torrent, const LoadTorrentParams &data) { m_resumeDataStorage->store(torrent->id(), data); - const auto iter = m_changedTorrentIDs.find(torrent->id()); - if (iter != m_changedTorrentIDs.end()) + const auto iter = m_changedTorrentIDs.constFind(torrent->id()); + if (iter != m_changedTorrentIDs.cend()) { m_resumeDataStorage->remove(iter.value()); m_changedTorrentIDs.erase(iter); @@ -5053,11 +5368,11 @@ bool SessionImpl::addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &new const lt::torrent_handle torrentHandle = torrent->nativeHandle(); const Path currentLocation = torrent->actualStorageLocation(); - const bool torrentHasActiveJob = !m_moveStorageQueue.isEmpty() && (m_moveStorageQueue.first().torrentHandle == torrentHandle); + const bool torrentHasActiveJob = !m_moveStorageQueue.isEmpty() && (m_moveStorageQueue.constFirst().torrentHandle == torrentHandle); if (m_moveStorageQueue.size() > 1) { - auto iter = std::find_if((m_moveStorageQueue.begin() + 1), m_moveStorageQueue.end() + auto iter = std::find_if((m_moveStorageQueue.cbegin() + 1), m_moveStorageQueue.cend() , [&torrentHandle](const MoveStorageJob &job) { return job.torrentHandle == torrentHandle; @@ -5076,7 +5391,7 @@ bool SessionImpl::addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &new { // if there is active job for this torrent prevent creating meaningless // job that will move torrent to the same location as current one - if (m_moveStorageQueue.first().path == newPath) + if (m_moveStorageQueue.constFirst().path == newPath) { LogMsg(tr("Failed to enqueue torrent move. Torrent: \"%1\". Source: \"%2\". Destination: \"%3\". Reason: torrent is currently moving to the destination") .arg(torrent->name(), currentLocation.toString(), newPath.toString())); @@ -5121,7 +5436,7 @@ void SessionImpl::handleMoveTorrentStorageJobFinished(const Path &newPath) { const MoveStorageJob finishedJob = m_moveStorageQueue.takeFirst(); if (!m_moveStorageQueue.isEmpty()) - moveTorrentStorage(m_moveStorageQueue.first()); + moveTorrentStorage(m_moveStorageQueue.constFirst()); const auto iter = std::find_if(m_moveStorageQueue.cbegin(), m_moveStorageQueue.cend() , [&finishedJob](const MoveStorageJob &job) @@ -5141,11 +5456,37 @@ void SessionImpl::handleMoveTorrentStorageJobFinished(const Path &newPath) // Last job is completed for torrent that being removing, so actually remove it const lt::torrent_handle nativeHandle {finishedJob.torrentHandle}; const RemovingTorrentData &removingTorrentData = m_removingTorrents[nativeHandle.info_hash()]; - if (removingTorrentData.deleteOption == DeleteTorrent) + if (removingTorrentData.removeOption == TorrentRemoveOption::KeepContent) m_nativeSession->remove_torrent(nativeHandle, lt::session::delete_partfile); } } +void SessionImpl::processPendingFinishedTorrents() +{ + if (m_pendingFinishedTorrents.isEmpty()) + return; + + for (TorrentImpl *torrent : asConst(m_pendingFinishedTorrents)) + { + LogMsg(tr("Torrent download finished. Torrent: \"%1\"").arg(torrent->name())); + emit torrentFinished(torrent); + + if (const Path exportPath = finishedTorrentExportDirectory(); !exportPath.isEmpty()) + exportTorrentFile(torrent, exportPath); + + processTorrentShareLimits(torrent); + } + + m_pendingFinishedTorrents.clear(); + + const bool hasUnfinishedTorrents = std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentImpl *torrent) + { + return !(torrent->isFinished() || torrent->isStopped() || torrent->isErrored()); + }); + if (!hasUnfinishedTorrents) + emit allTorrentsFinished(); +} + void SessionImpl::storeCategories() const { QJsonObject jsonObj; @@ -5349,14 +5690,13 @@ void SessionImpl::handleIPFilterError() emit IPFilterParsed(true, 0); } -std::vector SessionImpl::getPendingAlerts(const lt::time_duration time) const +void SessionImpl::fetchPendingAlerts(const lt::time_duration time) { if (time > lt::time_duration::zero()) m_nativeSession->wait_for_alert(time); - std::vector alerts; - m_nativeSession->pop_alerts(&alerts); - return alerts; + m_alerts.clear(); + m_nativeSession->pop_alerts(&m_alerts); } TorrentContentLayout SessionImpl::torrentContentLayout() const @@ -5372,7 +5712,7 @@ void SessionImpl::setTorrentContentLayout(const TorrentContentLayout value) // Read alerts sent by libtorrent session void SessionImpl::readAlerts() { - const std::vector alerts = getPendingAlerts(); + fetchPendingAlerts(); Q_ASSERT(m_loadedTorrents.isEmpty()); Q_ASSERT(m_receivedAddTorrentAlertsCount == 0); @@ -5380,7 +5720,7 @@ void SessionImpl::readAlerts() if (!isRestored()) m_loadedTorrents.reserve(MAX_PROCESSING_RESUMEDATA_COUNT); - for (const lt::alert *a : alerts) + for (const lt::alert *a : m_alerts) handleAlert(a); if (m_receivedAddTorrentAlertsCount > 0) @@ -5398,7 +5738,8 @@ void SessionImpl::readAlerts() } } - processTrackerStatuses(); + // Some torrents may become "finished" after different alerts handling. + processPendingFinishedTorrents(); } void SessionImpl::handleAddTorrentAlert(const lt::add_torrent_alert *alert) @@ -5421,14 +5762,16 @@ void SessionImpl::handleAddTorrentAlert(const lt::add_torrent_alert *alert) #else const InfoHash infoHash {(hasMetadata ? params.ti->info_hash() : params.info_hash)}; #endif - if (const auto loadingTorrentsIter = m_loadingTorrents.find(TorrentID::fromInfoHash(infoHash)) - ; loadingTorrentsIter != m_loadingTorrents.end()) + if (const auto loadingTorrentsIter = m_loadingTorrents.constFind(TorrentID::fromInfoHash(infoHash)) + ; loadingTorrentsIter != m_loadingTorrents.cend()) { - emit addTorrentFailed(infoHash, msg); + const AddTorrentError::Kind errorKind = (alert->error == lt::errors::duplicate_torrent) + ? AddTorrentError::DuplicateTorrent : AddTorrentError::Other; + emit addTorrentFailed(infoHash, {errorKind, msg}); m_loadingTorrents.erase(loadingTorrentsIter); } - else if (const auto downloadedMetadataIter = m_downloadedMetadata.find(TorrentID::fromInfoHash(infoHash)) - ; downloadedMetadataIter != m_downloadedMetadata.end()) + else if (const auto downloadedMetadataIter = m_downloadedMetadata.constFind(TorrentID::fromInfoHash(infoHash)) + ; downloadedMetadataIter != m_downloadedMetadata.cend()) { m_downloadedMetadata.erase(downloadedMetadataIter); if (infoHash.isHybrid()) @@ -5449,8 +5792,8 @@ void SessionImpl::handleAddTorrentAlert(const lt::add_torrent_alert *alert) #endif const auto torrentID = TorrentID::fromInfoHash(infoHash); - if (const auto loadingTorrentsIter = m_loadingTorrents.find(torrentID) - ; loadingTorrentsIter != m_loadingTorrents.end()) + if (const auto loadingTorrentsIter = m_loadingTorrents.constFind(torrentID) + ; loadingTorrentsIter != m_loadingTorrents.cend()) { const LoadTorrentParams params = loadingTorrentsIter.value(); m_loadingTorrents.erase(loadingTorrentsIter); @@ -5660,74 +6003,32 @@ TorrentImpl *SessionImpl::createTorrent(const lt::torrent_handle &nativeHandle, return torrent; } -void SessionImpl::handleTorrentRemovedAlert(const lt::torrent_removed_alert *alert) +void SessionImpl::handleTorrentRemovedAlert(const lt::torrent_removed_alert */*alert*/) { -#ifdef QBT_USES_LIBTORRENT2 - const auto id = TorrentID::fromInfoHash(alert->info_hashes); -#else - const auto id = TorrentID::fromInfoHash(alert->info_hash); -#endif - - const auto removingTorrentDataIter = m_removingTorrents.find(id); - if (removingTorrentDataIter != m_removingTorrents.end()) - { - if (removingTorrentDataIter->deleteOption == DeleteTorrent) - { - LogMsg(tr("Removed torrent. Torrent: \"%1\"").arg(removingTorrentDataIter->name)); - m_removingTorrents.erase(removingTorrentDataIter); - } - } + // We cannot consider `torrent_removed_alert` as a starting point for removing content, + // because it has an inconsistent posting time between different versions of libtorrent, + // so files may still be in use in some cases. } void SessionImpl::handleTorrentDeletedAlert(const lt::torrent_deleted_alert *alert) { #ifdef QBT_USES_LIBTORRENT2 - const auto id = TorrentID::fromInfoHash(alert->info_hashes); + const auto torrentID = TorrentID::fromInfoHash(alert->info_hashes); #else - const auto id = TorrentID::fromInfoHash(alert->info_hash); + const auto torrentID = TorrentID::fromInfoHash(alert->info_hash); #endif - - const auto removingTorrentDataIter = m_removingTorrents.find(id); - if (removingTorrentDataIter == m_removingTorrents.end()) - return; - - // torrent_deleted_alert can also be posted due to deletion of partfile. Ignore it in such a case. - if (removingTorrentDataIter->deleteOption == DeleteTorrent) - return; - - Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathToRemove); - LogMsg(tr("Removed torrent and deleted its content. Torrent: \"%1\"").arg(removingTorrentDataIter->name)); - m_removingTorrents.erase(removingTorrentDataIter); + handleRemovedTorrent(torrentID); } void SessionImpl::handleTorrentDeleteFailedAlert(const lt::torrent_delete_failed_alert *alert) { #ifdef QBT_USES_LIBTORRENT2 - const auto id = TorrentID::fromInfoHash(alert->info_hashes); + const auto torrentID = TorrentID::fromInfoHash(alert->info_hashes); #else - const auto id = TorrentID::fromInfoHash(alert->info_hash); + const auto torrentID = TorrentID::fromInfoHash(alert->info_hash); #endif - - const auto removingTorrentDataIter = m_removingTorrents.find(id); - if (removingTorrentDataIter == m_removingTorrents.end()) - return; - - if (alert->error) - { - // libtorrent won't delete the directory if it contains files not listed in the torrent, - // so we remove the directory ourselves - Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathToRemove); - - LogMsg(tr("Removed torrent but failed to delete its content and/or partfile. Torrent: \"%1\". Error: \"%2\"") - .arg(removingTorrentDataIter->name, QString::fromLocal8Bit(alert->error.message().c_str())) - , Log::WARNING); - } - else // torrent without metadata, hence no files on disk - { - LogMsg(tr("Removed torrent. Torrent: \"%1\"").arg(removingTorrentDataIter->name)); - } - - m_removingTorrents.erase(removingTorrentDataIter); + const auto errorMessage = alert->error ? Utils::String::fromLocal8Bit(alert->error.message()) : QString(); + handleRemovedTorrent(torrentID, errorMessage); } void SessionImpl::handleTorrentNeedCertAlert(const lt::torrent_need_cert_alert *alert) @@ -5755,7 +6056,7 @@ void SessionImpl::handleMetadataReceivedAlert(const lt::metadata_received_alert const TorrentID torrentID {alert->handle.info_hash()}; bool found = false; - if (const auto iter = m_downloadedMetadata.find(torrentID); iter != m_downloadedMetadata.end()) + if (const auto iter = m_downloadedMetadata.constFind(torrentID); iter != m_downloadedMetadata.cend()) { found = true; m_downloadedMetadata.erase(iter); @@ -5765,7 +6066,7 @@ void SessionImpl::handleMetadataReceivedAlert(const lt::metadata_received_alert if (infoHash.isHybrid()) { const auto altID = TorrentID::fromSHA1Hash(infoHash.v1()); - if (const auto iter = m_downloadedMetadata.find(altID); iter != m_downloadedMetadata.end()) + if (const auto iter = m_downloadedMetadata.constFind(altID); iter != m_downloadedMetadata.cend()) { found = true; m_downloadedMetadata.erase(iter); @@ -5860,7 +6161,7 @@ void SessionImpl::handleUrlSeedAlert(const lt::url_seed_alert *alert) if (alert->error) { - LogMsg(tr("URL seed DNS lookup failed. Torrent: \"%1\". URL: \"%2\". Error: \"%3\"") + LogMsg(tr("URL seed connection failed. Torrent: \"%1\". URL: \"%2\". Error: \"%3\"") .arg(torrent->name(), QString::fromUtf8(alert->server_url()), QString::fromStdString(alert->message())) , Log::WARNING); } @@ -5884,7 +6185,7 @@ void SessionImpl::handleListenFailedAlert(const lt::listen_failed_alert *alert) const QString proto {toString(alert->socket_type)}; LogMsg(tr("Failed to listen on IP. IP: \"%1\". Port: \"%2/%3\". Reason: \"%4\"") .arg(toString(alert->address), proto, QString::number(alert->port) - , QString::fromLocal8Bit(alert->error.message().c_str())), Log::CRITICAL); + , Utils::String::fromLocal8Bit(alert->error.message())), Log::CRITICAL); } void SessionImpl::handleExternalIPAlert(const lt::external_ip_alert *alert) @@ -5893,11 +6194,19 @@ void SessionImpl::handleExternalIPAlert(const lt::external_ip_alert *alert) LogMsg(tr("Detected external IP. IP: \"%1\"") .arg(externalIP), Log::INFO); - if (m_lastExternalIP != externalIP) + const bool isIPv6 = alert->external_address.is_v6(); + const bool isIPv4 = alert->external_address.is_v4(); + if (isIPv6 && (externalIP != m_lastExternalIPv6Address)) { - if (isReannounceWhenAddressChangedEnabled() && !m_lastExternalIP.isEmpty()) + if (isReannounceWhenAddressChangedEnabled() && !m_lastExternalIPv6Address.isEmpty()) reannounceToAllTrackers(); - m_lastExternalIP = externalIP; + m_lastExternalIPv6Address = externalIP; + } + else if (isIPv4 && (externalIP != m_lastExternalIPv4Address)) + { + if (isReannounceWhenAddressChangedEnabled() && !m_lastExternalIPv4Address.isEmpty()) + reannounceToAllTrackers(); + m_lastExternalIPv4Address = externalIP; } } @@ -5983,8 +6292,14 @@ void SessionImpl::handleSessionStatsAlert(const lt::session_stats_alert *alert) m_status.allTimeDownload = m_previouslyDownloaded + m_status.totalDownload; m_status.allTimeUpload = m_previouslyUploaded + m_status.totalUpload; - if (m_statisticsLastUpdateTimer.hasExpired(STATISTICS_SAVE_INTERVAL)) - saveStatistics(); + if (m_saveStatisticsInterval > 0) + { + const auto saveInterval = std::chrono::duration_cast(std::chrono::minutes(m_saveStatisticsInterval)); + if (m_statisticsLastUpdateTimer.hasExpired(saveInterval.count())) + { + saveStatistics(); + } + } m_cacheStatus.totalUsedBuffers = stats[m_metricIndices.disk.diskBlocksInUse]; m_cacheStatus.jobQueueLength = stats[m_metricIndices.disk.queuedDiskJobs]; @@ -6013,7 +6328,7 @@ void SessionImpl::handleStorageMovedAlert(const lt::storage_moved_alert *alert) { Q_ASSERT(!m_moveStorageQueue.isEmpty()); - const MoveStorageJob ¤tJob = m_moveStorageQueue.first(); + const MoveStorageJob ¤tJob = m_moveStorageQueue.constFirst(); Q_ASSERT(currentJob.torrentHandle == alert->handle); const Path newPath {QString::fromUtf8(alert->storage_path())}; @@ -6036,7 +6351,7 @@ void SessionImpl::handleStorageMovedFailedAlert(const lt::storage_moved_failed_a { Q_ASSERT(!m_moveStorageQueue.isEmpty()); - const MoveStorageJob ¤tJob = m_moveStorageQueue.first(); + const MoveStorageJob ¤tJob = m_moveStorageQueue.constFirst(); Q_ASSERT(currentJob.torrentHandle == alert->handle); #ifdef QBT_USES_LIBTORRENT2 @@ -6058,7 +6373,7 @@ void SessionImpl::handleStorageMovedFailedAlert(const lt::storage_moved_failed_a void SessionImpl::handleStateUpdateAlert(const lt::state_update_alert *alert) { - QVector updatedTorrents; + QList updatedTorrents; updatedTorrents.reserve(static_cast(alert->status.size())); for (const lt::torrent_status &status : alert->status) @@ -6096,7 +6411,7 @@ void SessionImpl::handleSocks5Alert(const lt::socks5_alert *alert) const const QString endpoint = (addr.is_v6() ? u"[%1]:%2"_s : u"%1:%2"_s) .arg(QString::fromStdString(addr.to_string()), QString::number(alert->ip.port())); LogMsg(tr("SOCKS5 proxy error. Address: %1. Message: \"%2\".") - .arg(endpoint, QString::fromLocal8Bit(alert->error.message().c_str())) + .arg(endpoint, Utils::String::fromLocal8Bit(alert->error.message())) , Log::WARNING); } } @@ -6116,7 +6431,12 @@ void SessionImpl::handleTrackerAlert(const lt::tracker_alert *alert) if (!torrent) return; + [[maybe_unused]] const QMutexLocker updatedTrackerStatusesLocker {&m_updatedTrackerStatusesMutex}; + + const auto prevSize = m_updatedTrackerStatuses.size(); QMap &updateInfo = m_updatedTrackerStatuses[torrent->nativeHandle()][std::string(alert->tracker_url())][alert->local_endpoint]; + if (prevSize < m_updatedTrackerStatuses.size()) + updateTrackerEntryStatuses(torrent->nativeHandle()); if (alert->type() == lt::tracker_reply_alert::alert_type) { @@ -6140,7 +6460,7 @@ void SessionImpl::handleTorrentConflictAlert(const lt::torrent_conflict_alert *a if (torrent2) { if (torrent1) - deleteTorrent(torrentIDv1); + removeTorrent(torrentIDv1); else cancelDownloadMetadata(torrentIDv1); @@ -6178,17 +6498,6 @@ void SessionImpl::handleTorrentConflictAlert(const lt::torrent_conflict_alert *a } #endif -void SessionImpl::processTrackerStatuses() -{ - if (m_updatedTrackerStatuses.isEmpty()) - return; - - for (auto it = m_updatedTrackerStatuses.cbegin(); it != m_updatedTrackerStatuses.cend(); ++it) - updateTrackerEntryStatuses(it.key(), it.value()); - - m_updatedTrackerStatuses.clear(); -} - void SessionImpl::saveStatistics() const { if (!m_isStatisticsDirty) @@ -6213,17 +6522,21 @@ void SessionImpl::loadStatistics() m_previouslyUploaded = value[u"AlltimeUL"_s].toLongLong(); } -void SessionImpl::updateTrackerEntryStatuses(lt::torrent_handle torrentHandle, QHash>> updatedTrackers) +void SessionImpl::updateTrackerEntryStatuses(lt::torrent_handle torrentHandle) { - invokeAsync([this, torrentHandle = std::move(torrentHandle), updatedTrackers = std::move(updatedTrackers)]() mutable + invokeAsync([this, torrentHandle = std::move(torrentHandle)] { try { std::vector nativeTrackers = torrentHandle.trackers(); - invoke([this, torrentHandle, nativeTrackers = std::move(nativeTrackers) - , updatedTrackers = std::move(updatedTrackers)] + + QMutexLocker updatedTrackerStatusesLocker {&m_updatedTrackerStatusesMutex}; + QHash>> updatedTrackers = m_updatedTrackerStatuses.take(torrentHandle); + updatedTrackerStatusesLocker.unlock(); + + invoke([this, infoHash = torrentHandle.info_hash(), nativeTrackers = std::move(nativeTrackers), updatedTrackers = std::move(updatedTrackers)] { - TorrentImpl *torrent = m_torrents.value(torrentHandle.info_hash()); + TorrentImpl *torrent = m_torrents.value(infoHash); if (!torrent || torrent->isStopped()) return; @@ -6249,3 +6562,29 @@ void SessionImpl::updateTrackerEntryStatuses(lt::torrent_handle torrentHandle, Q } }); } + +void SessionImpl::handleRemovedTorrent(const TorrentID &torrentID, const QString &partfileRemoveError) +{ + const auto removingTorrentDataIter = m_removingTorrents.constFind(torrentID); + if (removingTorrentDataIter == m_removingTorrents.cend()) + return; + + if (!partfileRemoveError.isEmpty()) + { + LogMsg(tr("Failed to remove partfile. Torrent: \"%1\". Reason: \"%2\".") + .arg(removingTorrentDataIter->name, partfileRemoveError) + , Log::WARNING); + } + + if ((removingTorrentDataIter->removeOption == TorrentRemoveOption::RemoveContent) + && !removingTorrentDataIter->contentStoragePath.isEmpty()) + { + QMetaObject::invokeMethod(m_torrentContentRemover, [this, jobData = *removingTorrentDataIter] + { + m_torrentContentRemover->performJob(jobData.name, jobData.contentStoragePath + , jobData.fileNames, m_torrentContentRemoveOption); + }); + } + + m_removingTorrents.erase(removingTorrentDataIter); +} diff --git a/src/base/bittorrent/sessionimpl.h b/src/base/bittorrent/sessionimpl.h index 40ffbfffa..1ad2108ff 100644 --- a/src/base/bittorrent/sessionimpl.h +++ b/src/base/bittorrent/sessionimpl.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2024 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ #pragma once +#include #include #include @@ -37,13 +38,14 @@ #include #include -#include #include #include +#include #include +#include #include #include -#include +#include #include "base/path.h" #include "base/settingvalue.h" @@ -54,17 +56,15 @@ #include "session.h" #include "sessionstatus.h" #include "torrentinfo.h" -#include "trackerentrystatus.h" class QString; -class QThread; -class QThreadPool; class QTimer; class QUrl; class BandwidthScheduler; class FileSearcher; class FilterParserThread; +class FreeDiskSpaceChecker; class NativeSessionExtension; namespace BitTorrent @@ -75,6 +75,7 @@ namespace BitTorrent class InfoHash; class ResumeDataStorage; class Torrent; + class TorrentContentRemover; class TorrentDescriptor; class TorrentImpl; class Tracker; @@ -233,6 +234,8 @@ namespace BitTorrent void setPerformanceWarningEnabled(bool enable) override; int saveResumeDataInterval() const override; void setSaveResumeDataInterval(int value) override; + std::chrono::minutes saveStatisticsInterval() const override; + void setSaveStatisticsInterval(std::chrono::minutes value) override; int shutdownTimeout() const override; void setShutdownTimeout(int value) override; int port() const override; @@ -359,6 +362,8 @@ namespace BitTorrent void setIncludeOverheadInLimits(bool include) override; QString announceIP() const override; void setAnnounceIP(const QString &ip) override; + int announcePort() const override; + void setAnnouncePort(int port) override; int maxConcurrentHTTPAnnounces() const override; void setMaxConcurrentHTTPAnnounces(int value) override; bool isReannounceWhenAddressChangedEnabled() const override; @@ -386,6 +391,8 @@ namespace BitTorrent void setUTPRateLimited(bool limited) override; MixedModeAlgorithm utpMixedMode() const override; void setUtpMixedMode(MixedModeAlgorithm mode) override; + int hostnameCacheTTL() const override; + void setHostnameCacheTTL(int value) override; bool isIDNSupportEnabled() const override; void setIDNSupportEnabled(bool enabled) override; bool multiConnectionsPerIpEnabled() const override; @@ -402,7 +409,7 @@ namespace BitTorrent void setExcludedFileNamesEnabled(bool enabled) override; QStringList excludedFileNames() const override; void setExcludedFileNames(const QStringList &excludedFileNames) override; - bool isFilenameExcluded(const QString &fileName) const override; + void applyFilenameFilter(const PathList &files, QList &priorities) override; QStringList bannedIPs() const override; void setBannedIPs(const QStringList &newList) override; ResumeDataStorageType resumeDataStorageType() const override; @@ -411,6 +418,8 @@ namespace BitTorrent void setMergeTrackersEnabled(bool enabled) override; bool isStartPaused() const override; void setStartPaused(bool value) override; + TorrentContentRemoveOption torrentContentRemoveOption() const override; + void setTorrentContentRemoveOption(TorrentContentRemoveOption option) override; bool isRestored() const override; @@ -420,7 +429,7 @@ namespace BitTorrent Torrent *getTorrent(const TorrentID &id) const override; Torrent *findTorrent(const InfoHash &infoHash) const override; - QVector torrents() const override; + QList torrents() const override; qsizetype torrentsCount() const override; const SessionStatus &status() const override; const CacheStatus &cacheStatus() const override; @@ -430,14 +439,19 @@ namespace BitTorrent bool isKnownTorrent(const InfoHash &infoHash) const override; bool addTorrent(const TorrentDescriptor &torrentDescr, const AddTorrentParams ¶ms = {}) override; - bool deleteTorrent(const TorrentID &id, DeleteOption deleteOption = DeleteTorrent) override; + bool removeTorrent(const TorrentID &id, TorrentRemoveOption deleteOption = TorrentRemoveOption::KeepContent) override; bool downloadMetadata(const TorrentDescriptor &torrentDescr) override; bool cancelDownloadMetadata(const TorrentID &id) override; - void increaseTorrentsQueuePos(const QVector &ids) override; - void decreaseTorrentsQueuePos(const QVector &ids) override; - void topTorrentsQueuePos(const QVector &ids) override; - void bottomTorrentsQueuePos(const QVector &ids) override; + void increaseTorrentsQueuePos(const QList &ids) override; + void decreaseTorrentsQueuePos(const QList &ids) override; + void topTorrentsQueuePos(const QList &ids) override; + void bottomTorrentsQueuePos(const QList &ids) override; + + QString lastExternalIPv4Address() const override; + QString lastExternalIPv6Address() const override; + + qint64 freeDiskSpace() const override; // Torrent interface void handleTorrentResumeDataRequested(const TorrentImpl *torrent); @@ -453,11 +467,11 @@ namespace BitTorrent void handleTorrentStarted(TorrentImpl *torrent); void handleTorrentChecked(TorrentImpl *torrent); void handleTorrentFinished(TorrentImpl *torrent); - void handleTorrentTrackersAdded(TorrentImpl *torrent, const QVector &newTrackers); + void handleTorrentTrackersAdded(TorrentImpl *torrent, const QList &newTrackers); void handleTorrentTrackersRemoved(TorrentImpl *torrent, const QStringList &deletedTrackers); void handleTorrentTrackersChanged(TorrentImpl *torrent); - void handleTorrentUrlSeedsAdded(TorrentImpl *torrent, const QVector &newUrlSeeds); - void handleTorrentUrlSeedsRemoved(TorrentImpl *torrent, const QVector &urlSeeds); + void handleTorrentUrlSeedsAdded(TorrentImpl *torrent, const QList &newUrlSeeds); + void handleTorrentUrlSeedsRemoved(TorrentImpl *torrent, const QList &urlSeeds); void handleTorrentResumeDataReady(TorrentImpl *torrent, const LoadTorrentParams &data); void handleTorrentInfoHashChanged(TorrentImpl *torrent, const InfoHash &prevInfoHash); void handleTorrentStorageMovingStateChanged(TorrentImpl *torrent); @@ -478,7 +492,17 @@ namespace BitTorrent QMetaObject::invokeMethod(this, std::forward(func), Qt::QueuedConnection); } - void invokeAsync(std::function func); + template + void invokeAsync(Func &&func) + { + m_asyncWorker->start(std::forward(func)); + } + + bool isAddTrackersFromURLEnabled() const override; + void setAddTrackersFromURLEnabled(bool enabled) override; + QString additionalTrackersURL() const override; + void setAdditionalTrackersURL(const QString &url) override; + QString additionalTrackersFromURL() const override; signals: void addTorrentAlertsReceived(qsizetype count); @@ -487,11 +511,11 @@ namespace BitTorrent void configureDeferred(); void readAlerts(); void enqueueRefresh(); - void processShareLimits(); void generateResumeData(); void handleIPFilterParsed(int ruleCount); void handleIPFilterError(); void fileSearchFinished(const TorrentID &id, const Path &savePath, const PathList &fileNames); + void torrentContentRemovingFinished(const QString &torrentName, const QString &errorMessage); private: struct ResumeSessionContext; @@ -507,8 +531,9 @@ namespace BitTorrent struct RemovingTorrentData { QString name; - Path pathToRemove; - DeleteOption deleteOption {}; + Path contentStoragePath; + PathList fileNames; + TorrentRemoveOption removeOption {}; }; explicit SessionImpl(QObject *parent = nullptr); @@ -535,7 +560,7 @@ namespace BitTorrent void populateAdditionalTrackers(); void enableIPFilter(); void disableIPFilter(); - void processTrackerStatuses(); + void processTorrentShareLimits(TorrentImpl *torrent); void populateExcludedFileNamesRegExpList(); void prepareStartup(); void handleLoadedResumeData(ResumeSessionContext *context); @@ -584,10 +609,13 @@ namespace BitTorrent void saveTorrentsQueue(); void removeTorrentsQueue(); - std::vector getPendingAlerts(lt::time_duration time = lt::time_duration::zero()) const; + void populateAdditionalTrackersFromURL(); + + void fetchPendingAlerts(lt::time_duration time = lt::time_duration::zero()); void moveTorrentStorage(const MoveStorageJob &job) const; void handleMoveTorrentStorageJobFinished(const Path &newPath); + void processPendingFinishedTorrents(); void loadCategories(); void storeCategories() const; @@ -597,15 +625,12 @@ namespace BitTorrent void saveStatistics() const; void loadStatistics(); - void updateTrackerEntryStatuses(lt::torrent_handle torrentHandle, QHash>> updatedTrackers); + void updateTrackerEntryStatuses(lt::torrent_handle torrentHandle); - // BitTorrent - lt::session *m_nativeSession = nullptr; - NativeSessionExtension *m_nativeSessionExtension = nullptr; + void handleRemovedTorrent(const TorrentID &torrentID, const QString &partfileRemoveError = {}); - bool m_deferredConfigureScheduled = false; - bool m_IPFilteringConfigured = false; - mutable bool m_listenInterfaceConfigured = false; + void setAdditionalTrackersFromURL(const QString &trackers); + void updateTrackersFromURL(); CachedSettingValue m_DHTBootstrapNodes; CachedSettingValue m_isDHTEnabled; @@ -652,6 +677,7 @@ namespace BitTorrent CachedSettingValue m_ignoreLimitsOnLAN; CachedSettingValue m_includeOverheadInLimits; CachedSettingValue m_announceIP; + CachedSettingValue m_announcePort; CachedSettingValue m_maxConcurrentHTTPAnnounces; CachedSettingValue m_isReannounceWhenAddressChangedEnabled; CachedSettingValue m_stopTrackerTimeout; @@ -662,6 +688,7 @@ namespace BitTorrent CachedSettingValue m_btProtocol; CachedSettingValue m_isUTPRateLimited; CachedSettingValue m_utpMixedMode; + CachedSettingValue m_hostnameCacheTTL; CachedSettingValue m_IDNSupportEnabled; CachedSettingValue m_multiConnectionsPerIpEnabled; CachedSettingValue m_validateHTTPSTrackerCertificate; @@ -669,6 +696,8 @@ namespace BitTorrent CachedSettingValue m_blockPeersOnPrivilegedPorts; CachedSettingValue m_isAddTrackersEnabled; CachedSettingValue m_additionalTrackers; + CachedSettingValue m_isAddTrackersFromURLEnabled; + CachedSettingValue m_additionalTrackersURL; CachedSettingValue m_globalMaxRatio; CachedSettingValue m_globalMaxSeedingMinutes; CachedSettingValue m_globalMaxInactiveSeedingMinutes; @@ -690,6 +719,7 @@ namespace BitTorrent CachedSettingValue m_isBandwidthSchedulerEnabled; CachedSettingValue m_isPerformanceWarningEnabled; CachedSettingValue m_saveResumeDataInterval; + CachedSettingValue m_saveStatisticsInterval; CachedSettingValue m_shutdownTimeout; CachedSettingValue m_port; CachedSettingValue m_sslEnabled; @@ -731,8 +761,19 @@ namespace BitTorrent CachedSettingValue m_I2POutboundQuantity; CachedSettingValue m_I2PInboundLength; CachedSettingValue m_I2POutboundLength; + CachedSettingValue m_torrentContentRemoveOption; SettingValue m_startPaused; + lt::session *m_nativeSession = nullptr; + NativeSessionExtension *m_nativeSessionExtension = nullptr; + + bool m_deferredConfigureScheduled = false; + bool m_IPFilteringConfigured = false; + mutable bool m_listenInterfaceConfigured = false; + + QString m_additionalTrackersFromURL; + QTimer *m_updateTrackersFromURLTimer = nullptr; + bool m_isRestored = false; bool m_isPaused = isStartPaused(); @@ -742,8 +783,9 @@ namespace BitTorrent const bool m_wasPexEnabled = m_isPeXEnabled; int m_numResumeData = 0; - QVector m_additionalTrackerEntries; - QVector m_excludedFileNamesRegExpList; + QList m_additionalTrackerEntries; + QList m_additionalTrackerEntriesFromURL; + QList m_excludedFileNamesRegExpList; // Statistics mutable QElapsedTimer m_statisticsLastUpdateTimer; @@ -766,6 +808,7 @@ namespace BitTorrent QThreadPool *m_asyncWorker = nullptr; ResumeDataStorage *m_resumeDataStorage = nullptr; FileSearcher *m_fileSearcher = nullptr; + TorrentContentRemover *m_torrentContentRemover = nullptr; QHash m_downloadedMetadata; @@ -777,12 +820,14 @@ namespace BitTorrent QMap m_categories; TagSet m_tags; + std::vector m_alerts; // make it a class variable so it can preserve its allocated `capacity` qsizetype m_receivedAddTorrentAlertsCount = 0; QList m_loadedTorrents; // This field holds amounts of peers reported by trackers in their responses to announces // (torrent.tracker_name.tracker_local_endpoint.protocol_version.num_peers) QHash>>> m_updatedTrackerStatuses; + QMutex m_updatedTrackerStatusesMutex; // I/O errored torrents QSet m_recentErroredTorrents; @@ -796,7 +841,8 @@ namespace BitTorrent QList m_moveStorageQueue; - QString m_lastExternalIP; + QString m_lastExternalIPv4Address; + QString m_lastExternalIPv6Address; bool m_needUpgradeDownloadPath = false; @@ -806,8 +852,13 @@ namespace BitTorrent bool m_isPortMappingEnabled = false; QHash> m_mappedPorts; - QTimer *m_wakeupCheckTimer = nullptr; - QDateTime m_wakeupCheckTimestamp; + QElapsedTimer m_wakeupCheckTimestamp; + + QList m_pendingFinishedTorrents; + + FreeDiskSpaceChecker *m_freeDiskSpaceChecker = nullptr; + QTimer *m_freeDiskSpaceCheckingTimer = nullptr; + qint64 m_freeDiskSpace = -1; friend void Session::initInstance(); friend void Session::freeInstance(); diff --git a/src/base/bittorrent/torrent.h b/src/base/bittorrent/torrent.h index 34cccd4ff..d2eefbabf 100644 --- a/src/base/bittorrent/torrent.h +++ b/src/base/bittorrent/torrent.h @@ -215,7 +215,15 @@ namespace BitTorrent virtual int piecesCount() const = 0; virtual int piecesHave() const = 0; virtual qreal progress() const = 0; + virtual QDateTime addedTime() const = 0; + virtual QDateTime completedTime() const = 0; + virtual QDateTime lastSeenComplete() const = 0; + virtual qlonglong activeTime() const = 0; + virtual qlonglong finishedTime() const = 0; + virtual qlonglong timeSinceUpload() const = 0; + virtual qlonglong timeSinceDownload() const = 0; + virtual qlonglong timeSinceActivity() const = 0; // Share limits virtual qreal ratioLimit() const = 0; @@ -228,6 +236,7 @@ namespace BitTorrent virtual void setShareLimitAction(ShareLimitAction action) = 0; virtual PathList filePaths() const = 0; + virtual PathList actualFilePaths() const = 0; virtual TorrentInfo info() const = 0; virtual bool isFinished() const = 0; @@ -248,13 +257,11 @@ namespace BitTorrent virtual bool hasMissingFiles() const = 0; virtual bool hasError() const = 0; virtual int queuePosition() const = 0; - virtual QVector trackers() const = 0; - virtual QVector urlSeeds() const = 0; + virtual QList trackers() const = 0; + virtual QList urlSeeds() const = 0; virtual QString error() const = 0; virtual qlonglong totalDownload() const = 0; virtual qlonglong totalUpload() const = 0; - virtual qlonglong activeTime() const = 0; - virtual qlonglong finishedTime() const = 0; virtual qlonglong eta() const = 0; virtual int seedsCount() const = 0; virtual int peersCount() const = 0; @@ -262,21 +269,16 @@ namespace BitTorrent virtual int totalSeedsCount() const = 0; virtual int totalPeersCount() const = 0; virtual int totalLeechersCount() const = 0; - virtual QDateTime lastSeenComplete() const = 0; - virtual QDateTime completedTime() const = 0; - virtual qlonglong timeSinceUpload() const = 0; - virtual qlonglong timeSinceDownload() const = 0; - virtual qlonglong timeSinceActivity() const = 0; virtual int downloadLimit() const = 0; virtual int uploadLimit() const = 0; virtual bool superSeeding() const = 0; virtual bool isDHTDisabled() const = 0; virtual bool isPEXDisabled() const = 0; virtual bool isLSDDisabled() const = 0; - virtual QVector peers() const = 0; + virtual QList peers() const = 0; virtual QBitArray pieces() const = 0; virtual QBitArray downloadingPieces() const = 0; - virtual QVector pieceAvailability() const = 0; + virtual QList pieceAvailability() const = 0; virtual qreal distributedCopies() const = 0; virtual qreal maxRatio() const = 0; virtual int maxSeedingTime() const = 0; @@ -305,11 +307,11 @@ namespace BitTorrent virtual void setDHTDisabled(bool disable) = 0; virtual void setPEXDisabled(bool disable) = 0; virtual void setLSDDisabled(bool disable) = 0; - virtual void addTrackers(QVector trackers) = 0; + virtual void addTrackers(QList trackers) = 0; virtual void removeTrackers(const QStringList &trackers) = 0; - virtual void replaceTrackers(QVector trackers) = 0; - virtual void addUrlSeeds(const QVector &urlSeeds) = 0; - virtual void removeUrlSeeds(const QVector &urlSeeds) = 0; + virtual void replaceTrackers(QList trackers) = 0; + virtual void addUrlSeeds(const QList &urlSeeds) = 0; + virtual void removeUrlSeeds(const QList &urlSeeds) = 0; virtual bool connectPeer(const PeerAddress &peerAddress) = 0; virtual void clearPeers() = 0; virtual void setMetadata(const TorrentInfo &torrentInfo) = 0; @@ -323,9 +325,9 @@ namespace BitTorrent virtual nonstd::expected exportToBuffer() const = 0; virtual nonstd::expected exportToFile(const Path &path) const = 0; - virtual void fetchPeerInfo(std::function)> resultHandler) const = 0; - virtual void fetchURLSeeds(std::function)> resultHandler) const = 0; - virtual void fetchPieceAvailability(std::function)> resultHandler) const = 0; + virtual void fetchPeerInfo(std::function)> resultHandler) const = 0; + virtual void fetchURLSeeds(std::function)> resultHandler) const = 0; + virtual void fetchPieceAvailability(std::function)> resultHandler) const = 0; virtual void fetchDownloadingPieces(std::function resultHandler) const = 0; TorrentID id() const; diff --git a/src/base/bittorrent/torrentcontenthandler.h b/src/base/bittorrent/torrentcontenthandler.h index 1604cbe52..2e3702d2c 100644 --- a/src/base/bittorrent/torrentcontenthandler.h +++ b/src/base/bittorrent/torrentcontenthandler.h @@ -44,18 +44,18 @@ namespace BitTorrent virtual bool hasMetadata() const = 0; virtual Path actualStorageLocation() const = 0; virtual Path actualFilePath(int fileIndex) const = 0; - virtual QVector filePriorities() const = 0; - virtual QVector filesProgress() const = 0; + virtual QList filePriorities() const = 0; + virtual QList filesProgress() const = 0; /** * @brief fraction of file pieces that are available at least from one peer * * This is not the same as torrrent availability, it is just a fraction of pieces * that can be downloaded right now. It varies between 0 to 1. */ - virtual QVector availableFileFractions() const = 0; - virtual void fetchAvailableFileFractions(std::function)> resultHandler) const = 0; + virtual QList availableFileFractions() const = 0; + virtual void fetchAvailableFileFractions(std::function)> resultHandler) const = 0; - virtual void prioritizeFiles(const QVector &priorities) = 0; + virtual void prioritizeFiles(const QList &priorities) = 0; virtual void flushCache() const = 0; }; } diff --git a/src/base/bittorrent/torrentcontentremoveoption.h b/src/base/bittorrent/torrentcontentremoveoption.h new file mode 100644 index 000000000..1083e5ec0 --- /dev/null +++ b/src/base/bittorrent/torrentcontentremoveoption.h @@ -0,0 +1,50 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +namespace BitTorrent +{ + // Using `Q_ENUM_NS()` without a wrapper namespace in our case is not advised + // since `Q_NAMESPACE` cannot be used when the same namespace resides at different files. + // https://www.kdab.com/new-qt-5-8-meta-object-support-namespaces/#comment-143779 + inline namespace TorrentContentRemoveOptionNS + { + Q_NAMESPACE + + enum class TorrentContentRemoveOption + { + Delete, + MoveToTrash + }; + + Q_ENUM_NS(TorrentContentRemoveOption) + } +} diff --git a/src/base/bittorrent/torrentcontentremover.cpp b/src/base/bittorrent/torrentcontentremover.cpp new file mode 100644 index 000000000..861f4be96 --- /dev/null +++ b/src/base/bittorrent/torrentcontentremover.cpp @@ -0,0 +1,61 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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 "torrentcontentremover.h" + +#include "base/utils/fs.h" + +void BitTorrent::TorrentContentRemover::performJob(const QString &torrentName, const Path &basePath + , const PathList &fileNames, const TorrentContentRemoveOption option) +{ + QString errorMessage; + + if (!fileNames.isEmpty()) + { + const auto removeFileFn = [&option](const Path &filePath) + { + return ((option == TorrentContentRemoveOption::MoveToTrash) + ? Utils::Fs::moveFileToTrash : Utils::Fs::removeFile)(filePath); + }; + + for (const Path &fileName : fileNames) + { + if (const auto result = removeFileFn(basePath / fileName) + ; !result && errorMessage.isEmpty()) + { + errorMessage = result.error(); + } + } + + const Path rootPath = Path::findRootFolder(fileNames); + if (!rootPath.isEmpty()) + Utils::Fs::smartRemoveEmptyFolderTree(basePath / rootPath); + } + + emit jobFinished(torrentName, errorMessage); +} diff --git a/src/base/bittorrent/torrentcontentremover.h b/src/base/bittorrent/torrentcontentremover.h new file mode 100644 index 000000000..a18161493 --- /dev/null +++ b/src/base/bittorrent/torrentcontentremover.h @@ -0,0 +1,53 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +#include "base/path.h" +#include "torrentcontentremoveoption.h" + +namespace BitTorrent +{ + class TorrentContentRemover final : public QObject + { + Q_OBJECT + Q_DISABLE_COPY_MOVE(TorrentContentRemover) + + public: + using QObject::QObject; + + public slots: + void performJob(const QString &torrentName, const Path &basePath + , const PathList &fileNames, TorrentContentRemoveOption option); + + signals: + void jobFinished(const QString &torrentName, const QString &errorMessage); + }; +} diff --git a/src/base/bittorrent/torrentcreationmanager.cpp b/src/base/bittorrent/torrentcreationmanager.cpp index 283a99780..9ff0b531d 100644 --- a/src/base/bittorrent/torrentcreationmanager.cpp +++ b/src/base/bittorrent/torrentcreationmanager.cpp @@ -62,7 +62,10 @@ BitTorrent::TorrentCreationManager::TorrentCreationManager(IApplication *app, QO , m_maxTasks {SETTINGS_KEY(u"MaxTasks"_s), 256} , m_numThreads {SETTINGS_KEY(u"NumThreads"_s), 1} , m_tasks {std::make_unique()} + , m_threadPool(this) { + m_threadPool.setObjectName("TorrentCreationManager m_threadPool"); + if (m_numThreads > 0) m_threadPool.setMaxThreadCount(m_numThreads); } diff --git a/src/base/bittorrent/torrentcreator.cpp b/src/base/bittorrent/torrentcreator.cpp index 3cd26ba7c..727e9a9dc 100644 --- a/src/base/bittorrent/torrentcreator.cpp +++ b/src/base/bittorrent/torrentcreator.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -123,7 +124,14 @@ void TorrentCreator::run() // need to sort the file names by natural sort order QStringList dirs = {m_params.sourcePath.data()}; - QDirIterator dirIter {m_params.sourcePath.data(), (QDir::AllDirs | QDir::NoDotAndDotDot), QDirIterator::Subdirectories}; +#ifdef Q_OS_WIN + // libtorrent couldn't handle .lnk files on Windows + // Also, Windows users do not expect torrent creator to traverse into .lnk files so skip over them + const QDir::Filters dirFilters {QDir::AllDirs | QDir::NoDotAndDotDot | QDir::NoSymLinks}; +#else + const QDir::Filters dirFilters {QDir::AllDirs | QDir::NoDotAndDotDot}; +#endif + QDirIterator dirIter {m_params.sourcePath.data(), dirFilters, QDirIterator::Subdirectories}; while (dirIter.hasNext()) { const QString filePath = dirIter.next(); @@ -138,7 +146,12 @@ void TorrentCreator::run() { QStringList tmpNames; // natural sort files within each dir - QDirIterator fileIter {dir, QDir::Files}; +#ifdef Q_OS_WIN + const QDir::Filters fileFilters {QDir::Files | QDir::NoSymLinks}; +#else + const QDir::Filters fileFilters {QDir::Files}; +#endif + QDirIterator fileIter {dir, fileFilters}; while (fileIter.hasNext()) { const QFileInfo fileInfo = fileIter.nextFileInfo(); diff --git a/src/base/bittorrent/torrentdescriptor.cpp b/src/base/bittorrent/torrentdescriptor.cpp index bc5a4619a..437c6557c 100644 --- a/src/base/bittorrent/torrentdescriptor.cpp +++ b/src/base/bittorrent/torrentdescriptor.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2023 Vladimir Golovnev + * Copyright (C) 2015-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -35,9 +35,7 @@ #include #include -#include #include -#include #include #include "base/global.h" @@ -147,7 +145,13 @@ BitTorrent::TorrentDescriptor::TorrentDescriptor(lt::add_torrent_params ltAddTor : m_ltAddTorrentParams {std::move(ltAddTorrentParams)} { if (m_ltAddTorrentParams.ti && m_ltAddTorrentParams.ti->is_valid()) + { m_info.emplace(*m_ltAddTorrentParams.ti); + if (m_ltAddTorrentParams.ti->creation_date() > 0) + m_creationDate = QDateTime::fromSecsSinceEpoch(m_ltAddTorrentParams.ti->creation_date()); + m_creator = QString::fromStdString(m_ltAddTorrentParams.ti->creator()); + m_comment = QString::fromStdString(m_ltAddTorrentParams.ti->comment()); + } } BitTorrent::InfoHash BitTorrent::TorrentDescriptor::infoHash() const @@ -166,18 +170,17 @@ QString BitTorrent::TorrentDescriptor::name() const QDateTime BitTorrent::TorrentDescriptor::creationDate() const { - return ((m_ltAddTorrentParams.ti->creation_date() != 0) - ? QDateTime::fromSecsSinceEpoch(m_ltAddTorrentParams.ti->creation_date()) : QDateTime()); + return m_creationDate; } QString BitTorrent::TorrentDescriptor::creator() const { - return QString::fromStdString(m_ltAddTorrentParams.ti->creator()); + return m_creator; } QString BitTorrent::TorrentDescriptor::comment() const { - return QString::fromStdString(m_ltAddTorrentParams.ti->comment()); + return m_comment; } const std::optional &BitTorrent::TorrentDescriptor::info() const @@ -204,9 +207,9 @@ void BitTorrent::TorrentDescriptor::setTorrentInfo(TorrentInfo torrentInfo) } } -QVector BitTorrent::TorrentDescriptor::trackers() const +QList BitTorrent::TorrentDescriptor::trackers() const { - QVector ret; + QList ret; ret.reserve(static_cast(m_ltAddTorrentParams.trackers.size())); std::size_t i = 0; for (const std::string &tracker : m_ltAddTorrentParams.trackers) @@ -215,9 +218,9 @@ QVector BitTorrent::TorrentDescriptor::trackers() cons return ret; } -QVector BitTorrent::TorrentDescriptor::urlSeeds() const +QList BitTorrent::TorrentDescriptor::urlSeeds() const { - QVector urlSeeds; + QList urlSeeds; urlSeeds.reserve(static_cast(m_ltAddTorrentParams.url_seeds.size())); for (const std::string &nativeURLSeed : m_ltAddTorrentParams.url_seeds) diff --git a/src/base/bittorrent/torrentdescriptor.h b/src/base/bittorrent/torrentdescriptor.h index 86f9059c3..f41140fed 100644 --- a/src/base/bittorrent/torrentdescriptor.h +++ b/src/base/bittorrent/torrentdescriptor.h @@ -33,16 +33,15 @@ #include #include +#include #include +#include #include "base/3rdparty/expected.hpp" #include "base/path.h" -#include "torrentdescriptor.h" #include "torrentinfo.h" class QByteArray; -class QDateTime; -class QString; class QUrl; namespace BitTorrent @@ -60,8 +59,8 @@ namespace BitTorrent QDateTime creationDate() const; QString creator() const; QString comment() const; - QVector trackers() const; - QVector urlSeeds() const; + QList trackers() const; + QList urlSeeds() const; const std::optional &info() const; void setTorrentInfo(TorrentInfo torrentInfo); @@ -78,6 +77,9 @@ namespace BitTorrent lt::add_torrent_params m_ltAddTorrentParams; std::optional m_info; + QDateTime m_creationDate; + QString m_creator; + QString m_comment; }; } diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index 4cc41c084..45cc7f3bf 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -49,6 +49,7 @@ #include #include +#include #include #include #include @@ -62,6 +63,7 @@ #include "base/types.h" #include "base/utils/fs.h" #include "base/utils/io.h" +#include "base/utils/string.h" #include "common.h" #include "downloadpriority.h" #include "extensiondata.h" @@ -77,6 +79,10 @@ #include "base/utils/os.h" #endif // Q_OS_MACOS || Q_OS_WIN +#ifndef QBT_USES_LIBTORRENT2 +#include "customstorage.h" +#endif + using namespace BitTorrent; namespace @@ -88,18 +94,16 @@ namespace return entry; } - QDateTime fromLTTimePoint32(const lt::time_point32 &timePoint) - { - const auto ltNow = lt::clock_type::now(); - const auto qNow = QDateTime::currentDateTime(); - const auto secsSinceNow = lt::duration_cast(timePoint - ltNow + lt::milliseconds(500)).count(); - - return qNow.addSecs(secsSinceNow); - } - QString toString(const lt::tcp::endpoint <TCPEndpoint) { - return QString::fromStdString((std::stringstream() << ltTCPEndpoint).str()); + static QCache cache; + + if (const QString *endpointName = cache.object(ltTCPEndpoint)) + return *endpointName; + + const auto endpointName = Utils::String::fromLatin1((std::ostringstream() << ltTCPEndpoint).str()); + cache.insert(ltTCPEndpoint, new QString(endpointName)); + return endpointName; } void updateTrackerEntryStatus(TrackerEntryStatus &trackerEntryStatus, const lt::announce_entry &nativeEntry @@ -109,16 +113,6 @@ namespace trackerEntryStatus.tier = nativeEntry.tier; - // remove outdated endpoints - trackerEntryStatus.endpoints.removeIf([&nativeEntry](const QHash, TrackerEndpointStatus>::iterator &iter) - { - return std::none_of(nativeEntry.endpoints.cbegin(), nativeEntry.endpoints.cend() - , [&endpointName = std::get<0>(iter.key())](const auto &existingEndpoint) - { - return (endpointName == toString(existingEndpoint.local_endpoint)); - }); - }); - const auto numEndpoints = static_cast(nativeEntry.endpoints.size()) * btProtocols.size(); int numUpdating = 0; @@ -150,8 +144,8 @@ namespace trackerEndpointStatus.numSeeds = ltAnnounceInfo.scrape_complete; trackerEndpointStatus.numLeeches = ltAnnounceInfo.scrape_incomplete; trackerEndpointStatus.numDownloaded = ltAnnounceInfo.scrape_downloaded; - trackerEndpointStatus.nextAnnounceTime = fromLTTimePoint32(ltAnnounceInfo.next_announce); - trackerEndpointStatus.minAnnounceTime = fromLTTimePoint32(ltAnnounceInfo.min_announce); + trackerEndpointStatus.nextAnnounceTime = ltAnnounceInfo.next_announce; + trackerEndpointStatus.minAnnounceTime = ltAnnounceInfo.min_announce; if (ltAnnounceInfo.updating) { @@ -201,6 +195,19 @@ namespace } } + if (trackerEntryStatus.endpoints.size() > numEndpoints) + { + // remove outdated endpoints + trackerEntryStatus.endpoints.removeIf([&nativeEntry](const QHash, TrackerEndpointStatus>::iterator &iter) + { + return std::none_of(nativeEntry.endpoints.cbegin(), nativeEntry.endpoints.cend() + , [&endpointName = std::get<0>(iter.key())](const auto &existingEndpoint) + { + return (endpointName == toString(existingEndpoint.local_endpoint)); + }); + }); + } + if (numEndpoints > 0) { if (numUpdating > 0) @@ -229,8 +236,8 @@ namespace trackerEntryStatus.numSeeds = -1; trackerEntryStatus.numLeeches = -1; trackerEntryStatus.numDownloaded = -1; - trackerEntryStatus.nextAnnounceTime = QDateTime(); - trackerEntryStatus.minAnnounceTime = QDateTime(); + trackerEntryStatus.nextAnnounceTime = {}; + trackerEntryStatus.minAnnounceTime = {}; trackerEntryStatus.message.clear(); for (const TrackerEndpointStatus &endpointStatus : asConst(trackerEntryStatus.endpoints)) @@ -242,7 +249,7 @@ namespace if (endpointStatus.state == trackerEntryStatus.state) { - if (!trackerEntryStatus.nextAnnounceTime.isValid() || (trackerEntryStatus.nextAnnounceTime > endpointStatus.nextAnnounceTime)) + if ((trackerEntryStatus.nextAnnounceTime == AnnounceTimePoint()) || (trackerEntryStatus.nextAnnounceTime > endpointStatus.nextAnnounceTime)) { trackerEntryStatus.nextAnnounceTime = endpointStatus.nextAnnounceTime; trackerEntryStatus.minAnnounceTime = endpointStatus.minAnnounceTime; @@ -313,6 +320,11 @@ TorrentImpl::TorrentImpl(SessionImpl *session, lt::session *nativeSession { if (m_ltAddTorrentParams.ti) { + if (const std::time_t creationDate = m_ltAddTorrentParams.ti->creation_date(); creationDate > 0) + m_creationDate = QDateTime::fromSecsSinceEpoch(creationDate); + m_creator = QString::fromStdString(m_ltAddTorrentParams.ti->creator()); + m_comment = QString::fromStdString(m_ltAddTorrentParams.ti->comment()); + // Initialize it only if torrent is added with metadata. // Otherwise it should be initialized in "Metadata received" handler. m_torrentInfo = TorrentInfo(*m_ltAddTorrentParams.ti); @@ -356,6 +368,12 @@ TorrentImpl::TorrentImpl(SessionImpl *session, lt::session *nativeSession m_urlSeeds.append(QString::fromStdString(urlSeed)); m_nativeStatus = extensionData->status; + m_addedTime = QDateTime::fromSecsSinceEpoch(m_nativeStatus.added_time); + if (m_nativeStatus.completed_time > 0) + m_completedTime = QDateTime::fromSecsSinceEpoch(m_nativeStatus.completed_time); + if (m_nativeStatus.last_seen_complete > 0) + m_lastSeenComplete = QDateTime::fromSecsSinceEpoch(m_nativeStatus.last_seen_complete); + if (hasMetadata()) updateProgress(); @@ -399,17 +417,17 @@ QString TorrentImpl::name() const QDateTime TorrentImpl::creationDate() const { - return m_torrentInfo.creationDate(); + return m_creationDate; } QString TorrentImpl::creator() const { - return m_torrentInfo.creator(); + return m_creator; } QString TorrentImpl::comment() const { - return m_torrentInfo.comment(); + return m_comment; } bool TorrentImpl::isPrivate() const @@ -445,7 +463,13 @@ qlonglong TorrentImpl::wastedSize() const QString TorrentImpl::currentTracker() const { - return QString::fromStdString(m_nativeStatus.current_tracker); + if (!m_nativeStatus.current_tracker.empty()) + return QString::fromStdString(m_nativeStatus.current_tracker); + + if (!m_trackerEntryStatuses.isEmpty()) + return m_trackerEntryStatuses.constFirst().url; + + return {}; } Path TorrentImpl::savePath() const @@ -456,6 +480,8 @@ Path TorrentImpl::savePath() const void TorrentImpl::setSavePath(const Path &path) { Q_ASSERT(!isAutoTMMEnabled()); + if (isAutoTMMEnabled()) [[unlikely]] + return; const Path basePath = m_session->useCategoryPathsInManualMode() ? m_session->categorySavePath(category()) : m_session->savePath(); @@ -483,6 +509,8 @@ Path TorrentImpl::downloadPath() const void TorrentImpl::setDownloadPath(const Path &path) { Q_ASSERT(!isAutoTMMEnabled()); + if (isAutoTMMEnabled()) [[unlikely]] + return; const Path basePath = m_session->useCategoryPathsInManualMode() ? m_session->categoryDownloadPath(category()) : m_session->downloadPath(); @@ -602,12 +630,12 @@ Path TorrentImpl::makeUserPath(const Path &path) const return userPath; } -QVector TorrentImpl::trackers() const +QList TorrentImpl::trackers() const { return m_trackerEntryStatuses; } -void TorrentImpl::addTrackers(QVector trackers) +void TorrentImpl::addTrackers(QList trackers) { trackers.removeIf([](const TrackerEntry &trackerEntry) { return trackerEntry.url.isEmpty(); }); @@ -620,7 +648,7 @@ void TorrentImpl::addTrackers(QVector trackers) if (newTrackerSet.isEmpty()) return; - trackers = QVector(newTrackerSet.cbegin(), newTrackerSet.cend()); + trackers = QList(newTrackerSet.cbegin(), newTrackerSet.cend()); for (const TrackerEntry &tracker : asConst(trackers)) { m_nativeHandle.add_tracker(makeNativeAnnounceEntry(tracker.url, tracker.tier)); @@ -656,13 +684,13 @@ void TorrentImpl::removeTrackers(const QStringList &trackers) } } -void TorrentImpl::replaceTrackers(QVector trackers) +void TorrentImpl::replaceTrackers(QList trackers) { trackers.removeIf([](const TrackerEntry &trackerEntry) { return trackerEntry.url.isEmpty(); }); // Filter out duplicate trackers const auto uniqueTrackers = QSet(trackers.cbegin(), trackers.cend()); - trackers = QVector(uniqueTrackers.cbegin(), uniqueTrackers.cend()); + trackers = QList(uniqueTrackers.cbegin(), uniqueTrackers.cend()); std::sort(trackers.begin(), trackers.end() , [](const TrackerEntry &left, const TrackerEntry &right) { return left.tier < right.tier; }); @@ -687,12 +715,12 @@ void TorrentImpl::replaceTrackers(QVector trackers) m_session->handleTorrentTrackersChanged(this); } -QVector TorrentImpl::urlSeeds() const +QList TorrentImpl::urlSeeds() const { return m_urlSeeds; } -void TorrentImpl::addUrlSeeds(const QVector &urlSeeds) +void TorrentImpl::addUrlSeeds(const QList &urlSeeds) { m_session->invokeAsync([urlSeeds, session = m_session , nativeHandle = m_nativeHandle @@ -701,12 +729,12 @@ void TorrentImpl::addUrlSeeds(const QVector &urlSeeds) try { const std::set nativeSeeds = nativeHandle.url_seeds(); - QVector currentSeeds; + QList currentSeeds; currentSeeds.reserve(static_cast(nativeSeeds.size())); for (const std::string &urlSeed : nativeSeeds) currentSeeds.append(QString::fromStdString(urlSeed)); - QVector addedUrlSeeds; + QList addedUrlSeeds; addedUrlSeeds.reserve(urlSeeds.size()); for (const QUrl &url : urlSeeds) @@ -736,7 +764,7 @@ void TorrentImpl::addUrlSeeds(const QVector &urlSeeds) }); } -void TorrentImpl::removeUrlSeeds(const QVector &urlSeeds) +void TorrentImpl::removeUrlSeeds(const QList &urlSeeds) { m_session->invokeAsync([urlSeeds, session = m_session , nativeHandle = m_nativeHandle @@ -745,12 +773,12 @@ void TorrentImpl::removeUrlSeeds(const QVector &urlSeeds) try { const std::set nativeSeeds = nativeHandle.url_seeds(); - QVector currentSeeds; + QList currentSeeds; currentSeeds.reserve(static_cast(nativeSeeds.size())); for (const std::string &urlSeed : nativeSeeds) currentSeeds.append(QString::fromStdString(urlSeed)); - QVector removedUrlSeeds; + QList removedUrlSeeds; removedUrlSeeds.reserve(urlSeeds.size()); for (const QUrl &url : urlSeeds) @@ -934,7 +962,52 @@ void TorrentImpl::removeAllTags() QDateTime TorrentImpl::addedTime() const { - return QDateTime::fromSecsSinceEpoch(m_nativeStatus.added_time); + return m_addedTime; +} + +QDateTime TorrentImpl::completedTime() const +{ + return m_completedTime; +} + +QDateTime TorrentImpl::lastSeenComplete() const +{ + return m_lastSeenComplete; +} + +qlonglong TorrentImpl::activeTime() const +{ + return lt::total_seconds(m_nativeStatus.active_duration); +} + +qlonglong TorrentImpl::finishedTime() const +{ + return lt::total_seconds(m_nativeStatus.finished_duration); +} + +qlonglong TorrentImpl::timeSinceUpload() const +{ + if (m_nativeStatus.last_upload.time_since_epoch().count() == 0) + return -1; + + return lt::total_seconds(lt::clock_type::now() - m_nativeStatus.last_upload); +} + +qlonglong TorrentImpl::timeSinceDownload() const +{ + if (m_nativeStatus.last_download.time_since_epoch().count() == 0) + return -1; + + return lt::total_seconds(lt::clock_type::now() - m_nativeStatus.last_download); +} + +qlonglong TorrentImpl::timeSinceActivity() const +{ + const qlonglong upTime = timeSinceUpload(); + const qlonglong downTime = timeSinceDownload(); + return ((upTime < 0) != (downTime < 0)) + ? std::max(upTime, downTime) + : std::min(upTime, downTime); } qreal TorrentImpl::ratioLimit() const @@ -962,7 +1035,7 @@ Path TorrentImpl::filePath(const int index) const Path TorrentImpl::actualFilePath(const int index) const { - const QVector nativeIndexes = m_torrentInfo.nativeIndexes(); + const QList nativeIndexes = m_torrentInfo.nativeIndexes(); Q_ASSERT(index >= 0); Q_ASSERT(index < nativeIndexes.size()); @@ -982,7 +1055,22 @@ PathList TorrentImpl::filePaths() const return m_filePaths; } -QVector TorrentImpl::filePriorities() const +PathList TorrentImpl::actualFilePaths() const +{ + if (!hasMetadata()) + return {}; + + PathList paths; + paths.reserve(filesCount()); + + const lt::file_storage files = nativeTorrentInfo()->files(); + for (const lt::file_index_t &nativeIndex : asConst(m_torrentInfo.nativeIndexes())) + paths.emplaceBack(files.file_path(nativeIndex)); + + return paths; +} + +QList TorrentImpl::filePriorities() const { return m_filePriorities; } @@ -1217,12 +1305,12 @@ int TorrentImpl::queuePosition() const QString TorrentImpl::error() const { if (m_nativeStatus.errc) - return QString::fromLocal8Bit(m_nativeStatus.errc.message().c_str()); + return Utils::String::fromLocal8Bit(m_nativeStatus.errc.message()); if (m_nativeStatus.flags & lt::torrent_flags::upload_mode) { return tr("Couldn't write to file. Reason: \"%1\". Torrent is now in \"upload only\" mode.") - .arg(QString::fromLocal8Bit(m_lastFileError.error.message().c_str())); + .arg(Utils::String::fromLocal8Bit(m_lastFileError.error.message())); } return {}; @@ -1238,16 +1326,6 @@ qlonglong TorrentImpl::totalUpload() const return m_nativeStatus.all_time_upload; } -qlonglong TorrentImpl::activeTime() const -{ - return lt::total_seconds(m_nativeStatus.active_duration); -} - -qlonglong TorrentImpl::finishedTime() const -{ - return lt::total_seconds(m_nativeStatus.finished_duration); -} - qlonglong TorrentImpl::eta() const { if (isStopped()) return MAX_ETA; @@ -1298,7 +1376,7 @@ qlonglong TorrentImpl::eta() const return (wantedSize() - completedSize()) / speedAverage.download; } -QVector TorrentImpl::filesProgress() const +QList TorrentImpl::filesProgress() const { if (!hasMetadata()) return {}; @@ -1309,9 +1387,9 @@ QVector TorrentImpl::filesProgress() const return {}; if (m_completedFiles.count(true) == count) - return QVector(count, 1); + return QList(count, 1); - QVector result; + QList result; result.reserve(count); for (int i = 0; i < count; ++i) { @@ -1357,45 +1435,6 @@ int TorrentImpl::totalLeechersCount() const return (m_nativeStatus.num_incomplete > -1) ? m_nativeStatus.num_incomplete : (m_nativeStatus.list_peers - m_nativeStatus.list_seeds); } -QDateTime TorrentImpl::lastSeenComplete() const -{ - if (m_nativeStatus.last_seen_complete > 0) - return QDateTime::fromSecsSinceEpoch(m_nativeStatus.last_seen_complete); - else - return {}; -} - -QDateTime TorrentImpl::completedTime() const -{ - if (m_nativeStatus.completed_time > 0) - return QDateTime::fromSecsSinceEpoch(m_nativeStatus.completed_time); - else - return {}; -} - -qlonglong TorrentImpl::timeSinceUpload() const -{ - if (m_nativeStatus.last_upload.time_since_epoch().count() == 0) - return -1; - return lt::total_seconds(lt::clock_type::now() - m_nativeStatus.last_upload); -} - -qlonglong TorrentImpl::timeSinceDownload() const -{ - if (m_nativeStatus.last_download.time_since_epoch().count() == 0) - return -1; - return lt::total_seconds(lt::clock_type::now() - m_nativeStatus.last_download); -} - -qlonglong TorrentImpl::timeSinceActivity() const -{ - const qlonglong upTime = timeSinceUpload(); - const qlonglong downTime = timeSinceDownload(); - return ((upTime < 0) != (downTime < 0)) - ? std::max(upTime, downTime) - : std::min(upTime, downTime); -} - int TorrentImpl::downloadLimit() const { return m_downloadLimit;; @@ -1426,12 +1465,12 @@ bool TorrentImpl::isLSDDisabled() const return static_cast(m_nativeStatus.flags & lt::torrent_flags::disable_lsd); } -QVector TorrentImpl::peers() const +QList TorrentImpl::peers() const { std::vector nativePeers; m_nativeHandle.get_peer_info(nativePeers); - QVector peers; + QList peers; peers.reserve(static_cast(nativePeers.size())); for (const lt::peer_info &peer : nativePeers) @@ -1447,18 +1486,20 @@ QBitArray TorrentImpl::pieces() const QBitArray TorrentImpl::downloadingPieces() const { - QBitArray result(piecesCount()); + if (!hasMetadata()) + return {}; std::vector queue; m_nativeHandle.get_download_queue(queue); + QBitArray result {piecesCount()}; for (const lt::partial_piece_info &info : queue) result.setBit(LT::toUnderlyingType(info.piece_index)); return result; } -QVector TorrentImpl::pieceAvailability() const +QList TorrentImpl::pieceAvailability() const { std::vector avail; m_nativeHandle.piece_availability(avail); @@ -1574,18 +1615,20 @@ bool TorrentImpl::setCategory(const QString &category) if (!category.isEmpty() && !m_session->categories().contains(category)) return false; + if (m_session->isDisableAutoTMMWhenCategoryChanged()) + { + // This should be done before changing the category name + // to prevent the torrent from being moved at the path of new category. + setAutoTMMEnabled(false); + } + const QString oldCategory = m_category; m_category = category; deferredRequestResumeData(); m_session->handleTorrentCategoryChanged(this, oldCategory); if (m_useAutoTMM) - { - if (!m_session->isDisableAutoTMMWhenCategoryChanged()) - adjustStorageLocation(); - else - setAutoTMMEnabled(false); - } + adjustStorageLocation(); } return true; @@ -1607,9 +1650,19 @@ void TorrentImpl::forceRecheck() return; m_nativeHandle.force_recheck(); + // We have to force update the cached state, otherwise someone will be able to get // an incorrect one during the interval until the cached state is updated in a regular way. m_nativeStatus.state = lt::torrent_status::checking_resume_data; + m_nativeStatus.pieces.clear_all(); + m_nativeStatus.num_pieces = 0; + m_ltAddTorrentParams.have_pieces.clear(); + m_ltAddTorrentParams.verified_pieces.clear(); + m_ltAddTorrentParams.unfinished_pieces.clear(); + m_completedFiles.fill(false); + m_filesProgress.fill(0); + m_pieces.fill(false); + m_unchecked = false; if (m_hasMissingFiles) { @@ -1622,14 +1675,6 @@ void TorrentImpl::forceRecheck() } } - m_unchecked = false; - - m_completedFiles.fill(false); - m_filesProgress.fill(0); - m_pieces.fill(false); - m_nativeStatus.pieces.clear_all(); - m_nativeStatus.num_pieces = 0; - if (isStopped()) { // When "force recheck" is applied on Stopped torrent, we start them to perform checking @@ -1734,7 +1779,9 @@ TrackerEntryStatus TorrentImpl::updateTrackerEntryStatus(const lt::announce_entr #else const QSet btProtocols {1}; #endif + ::updateTrackerEntryStatus(*it, announceEntry, btProtocols, updateInfo); + return *it; } @@ -1791,12 +1838,13 @@ void TorrentImpl::endReceivedMetadataHandling(const Path &savePath, const PathLi const Path filePath = actualFilePath.removedExtension(QB_EXT); m_filePaths.append(filePath); - lt::download_priority_t &nativePriority = p.file_priorities[LT::toUnderlyingType(nativeIndex)]; - if ((nativePriority != lt::dont_download) && m_session->isFilenameExcluded(filePath.filename())) - nativePriority = lt::dont_download; - const auto priority = LT::fromNative(nativePriority); - m_filePriorities.append(priority); + m_filePriorities.append(LT::fromNative(p.file_priorities[LT::toUnderlyingType(nativeIndex)])); } + + m_session->applyFilenameFilter(m_filePaths, m_filePriorities); + for (int i = 0; i < m_filePriorities.size(); ++i) + p.file_priorities[LT::toUnderlyingType(nativeIndexes[i])] = LT::toNative(m_filePriorities[i]); + p.save_path = savePath.toString().toStdString(); p.ti = metadata; @@ -1859,6 +1907,9 @@ void TorrentImpl::reload() auto *const extensionData = new ExtensionData; p.userdata = LTClientData(extensionData); +#ifndef QBT_USES_LIBTORRENT2 + p.storage = customStorageConstructor; +#endif m_nativeHandle = m_nativeSession->add_torrent(p); m_nativeStatus = extensionData->status; @@ -1933,8 +1984,17 @@ void TorrentImpl::moveStorage(const Path &newPath, const MoveStorageContext cont { if (!hasMetadata()) { - m_savePath = newPath; - m_session->handleTorrentSavePathChanged(this); + if (context == MoveStorageContext::ChangeSavePath) + { + m_savePath = newPath; + m_session->handleTorrentSavePathChanged(this); + } + else if (context == MoveStorageContext::ChangeDownloadPath) + { + m_downloadPath = newPath; + m_session->handleTorrentSavePathChanged(this); + } + return; } @@ -2090,7 +2150,7 @@ void TorrentImpl::handleSaveResumeDataAlert(const lt::save_resume_data_alert *p) // URL seed list have been changed by libtorrent for some reason, so we need to update cached one. // Unfortunately, URL seed list containing in "resume data" is generated according to different rules // than the list we usually cache, so we have to request it from the appropriate source. - fetchURLSeeds([this](const QVector &urlSeeds) { m_urlSeeds = urlSeeds; }); + fetchURLSeeds([this](const QList &urlSeeds) { m_urlSeeds = urlSeeds; }); } if ((m_maintenanceJob == MaintenanceJob::HandleMetadata) && p->params.ti) @@ -2104,6 +2164,7 @@ void TorrentImpl::handleSaveResumeDataAlert(const lt::save_resume_data_alert *p) m_ltAddTorrentParams.have_pieces.clear(); m_ltAddTorrentParams.verified_pieces.clear(); + m_ltAddTorrentParams.unfinished_pieces.clear(); m_nativeStatus.torrent_file = m_ltAddTorrentParams.ti; @@ -2146,23 +2207,37 @@ void TorrentImpl::handleSaveResumeDataAlert(const lt::save_resume_data_alert *p) void TorrentImpl::prepareResumeData(const lt::add_torrent_params ¶ms) { - if (m_hasMissingFiles) { - const auto havePieces = m_ltAddTorrentParams.have_pieces; - const auto unfinishedPieces = m_ltAddTorrentParams.unfinished_pieces; - const auto verifiedPieces = m_ltAddTorrentParams.verified_pieces; + decltype(params.have_pieces) havePieces; + decltype(params.unfinished_pieces) unfinishedPieces; + decltype(params.verified_pieces) verifiedPieces; + + // The resume data obtained from libtorrent contains an empty "progress" in the following cases: + // 1. when it was requested at a time when the initial resume data has not yet been checked, + // 2. when initial resume data was rejected + // We should preserve the initial "progress" in such cases. + const bool needPreserveProgress = m_hasMissingFiles + || (!m_ltAddTorrentParams.have_pieces.empty() && params.have_pieces.empty()); + const bool preserveSeedMode = !m_hasMissingFiles && !hasMetadata() + && (m_ltAddTorrentParams.flags & lt::torrent_flags::seed_mode); + + if (needPreserveProgress) + { + havePieces = std::move(m_ltAddTorrentParams.have_pieces); + unfinishedPieces = std::move(m_ltAddTorrentParams.unfinished_pieces); + verifiedPieces = std::move(m_ltAddTorrentParams.verified_pieces); + } - // Update recent resume data but preserve existing progress - m_ltAddTorrentParams = params; - m_ltAddTorrentParams.have_pieces = havePieces; - m_ltAddTorrentParams.unfinished_pieces = unfinishedPieces; - m_ltAddTorrentParams.verified_pieces = verifiedPieces; - } - else - { - const bool preserveSeedMode = (!hasMetadata() && (m_ltAddTorrentParams.flags & lt::torrent_flags::seed_mode)); // Update recent resume data m_ltAddTorrentParams = params; + + if (needPreserveProgress) + { + m_ltAddTorrentParams.have_pieces = std::move(havePieces); + m_ltAddTorrentParams.unfinished_pieces = std::move(unfinishedPieces); + m_ltAddTorrentParams.verified_pieces = std::move(verifiedPieces); + } + if (preserveSeedMode) m_ltAddTorrentParams.flags |= lt::torrent_flags::seed_mode; } @@ -2201,7 +2276,7 @@ void TorrentImpl::handleSaveResumeDataFailedAlert(const lt::save_resume_data_fai if (p->error != lt::errors::resume_data_not_modified) { LogMsg(tr("Generate resume data failed. Torrent: \"%1\". Reason: \"%2\"") - .arg(name(), QString::fromLocal8Bit(p->error.message().c_str())), Log::CRITICAL); + .arg(name(), Utils::String::fromLocal8Bit(p->error.message())), Log::CRITICAL); } } @@ -2289,7 +2364,7 @@ void TorrentImpl::handleFileRenameFailedAlert(const lt::file_rename_failed_alert Q_ASSERT(fileIndex >= 0); LogMsg(tr("File rename failed. Torrent: \"%1\", file: \"%2\", reason: \"%3\"") - .arg(name(), filePath(fileIndex).toString(), QString::fromLocal8Bit(p->error.message().c_str())), Log::WARNING); + .arg(name(), filePath(fileIndex).toString(), Utils::String::fromLocal8Bit(p->error.message())), Log::WARNING); --m_renameCount; while (!isMoveInProgress() && (m_renameCount == 0) && !m_moveFinishedTriggers.isEmpty()) @@ -2312,7 +2387,8 @@ void TorrentImpl::handleFileCompletedAlert(const lt::file_completed_alert *p) #if defined(Q_OS_MACOS) || defined(Q_OS_WIN) // only apply Mark-of-the-Web to new download files - if (Preferences::instance()->isMarkOfTheWebEnabled() && isDownloading()) + if (Preferences::instance()->isMarkOfTheWebEnabled() + && (m_nativeStatus.state == lt::torrent_status::downloading)) { const Path fullpath = actualStorageLocation() / actualPath; Utils::OS::applyMarkOfTheWeb(fullpath); @@ -2467,7 +2543,7 @@ void TorrentImpl::adjustStorageLocation() void TorrentImpl::doRenameFile(const int index, const Path &path) { - const QVector nativeIndexes = m_torrentInfo.nativeIndexes(); + const QList nativeIndexes = m_torrentInfo.nativeIndexes(); Q_ASSERT(index >= 0); Q_ASSERT(index < nativeIndexes.size()); @@ -2558,11 +2634,23 @@ bool TorrentImpl::isMoveInProgress() const void TorrentImpl::updateStatus(const lt::torrent_status &nativeStatus) { + // Since libtorrent alerts are handled asynchronously there can be obsolete + // "state update" event reached here after torrent was reloaded in libtorrent. + // Just discard such events. + if (nativeStatus.handle != m_nativeHandle) [[unlikely]] + return; + const lt::torrent_status oldStatus = std::exchange(m_nativeStatus, nativeStatus); if (m_nativeStatus.num_pieces != oldStatus.num_pieces) updateProgress(); + if (m_nativeStatus.completed_time != oldStatus.completed_time) + m_completedTime = (m_nativeStatus.completed_time > 0) ? QDateTime::fromSecsSinceEpoch(m_nativeStatus.completed_time) : QDateTime(); + + if (m_nativeStatus.last_seen_complete != oldStatus.last_seen_complete) + m_lastSeenComplete = QDateTime::fromSecsSinceEpoch(m_nativeStatus.last_seen_complete); + updateState(); m_payloadRateMonitor.addSample({nativeStatus.download_payload_rate @@ -2765,33 +2853,26 @@ QString TorrentImpl::createMagnetURI() const const SHA1Hash infoHash1 = infoHash().v1(); if (infoHash1.isValid()) - { ret += u"xt=urn:btih:" + infoHash1.toString(); - } - const SHA256Hash infoHash2 = infoHash().v2(); - if (infoHash2.isValid()) + if (const SHA256Hash infoHash2 = infoHash().v2(); infoHash2.isValid()) { if (infoHash1.isValid()) ret += u'&'; ret += u"xt=urn:btmh:1220" + infoHash2.toString(); } - const QString displayName = name(); - if (displayName != id().toString()) - { + if (const QString displayName = name(); displayName != id().toString()) ret += u"&dn=" + QString::fromLatin1(QUrl::toPercentEncoding(displayName)); - } + + if (hasMetadata()) + ret += u"&xl=" + QString::number(totalSize()); for (const TrackerEntryStatus &tracker : asConst(trackers())) - { ret += u"&tr=" + QString::fromLatin1(QUrl::toPercentEncoding(tracker.url)); - } for (const QUrl &urlSeed : asConst(urlSeeds())) - { - ret += u"&ws=" + QString::fromLatin1(urlSeed.toEncoded()); - } + ret += u"&ws=" + urlSeed.toString(QUrl::FullyEncoded); return ret; } @@ -2849,15 +2930,15 @@ nonstd::expected TorrentImpl::exportToFile(const Path &path) cons return {}; } -void TorrentImpl::fetchPeerInfo(std::function)> resultHandler) const +void TorrentImpl::fetchPeerInfo(std::function)> resultHandler) const { - invokeAsync([nativeHandle = m_nativeHandle, allPieces = pieces()]() -> QVector + invokeAsync([nativeHandle = m_nativeHandle, allPieces = pieces()]() -> QList { try { std::vector nativePeers; nativeHandle.get_peer_info(nativePeers); - QVector peers; + QList peers; peers.reserve(static_cast(nativePeers.size())); for (const lt::peer_info &peer : nativePeers) peers.append(PeerInfo(peer, allPieces)); @@ -2870,14 +2951,14 @@ void TorrentImpl::fetchPeerInfo(std::function)> resultHa , std::move(resultHandler)); } -void TorrentImpl::fetchURLSeeds(std::function)> resultHandler) const +void TorrentImpl::fetchURLSeeds(std::function)> resultHandler) const { - invokeAsync([nativeHandle = m_nativeHandle]() -> QVector + invokeAsync([nativeHandle = m_nativeHandle]() -> QList { try { const std::set currentSeeds = nativeHandle.url_seeds(); - QVector urlSeeds; + QList urlSeeds; urlSeeds.reserve(static_cast(currentSeeds.size())); for (const std::string &urlSeed : currentSeeds) urlSeeds.append(QString::fromStdString(urlSeed)); @@ -2890,15 +2971,15 @@ void TorrentImpl::fetchURLSeeds(std::function)> resultHandle , std::move(resultHandler)); } -void TorrentImpl::fetchPieceAvailability(std::function)> resultHandler) const +void TorrentImpl::fetchPieceAvailability(std::function)> resultHandler) const { - invokeAsync([nativeHandle = m_nativeHandle]() -> QVector + invokeAsync([nativeHandle = m_nativeHandle]() -> QList { try { std::vector piecesAvailability; nativeHandle.piece_availability(piecesAvailability); - return QVector(piecesAvailability.cbegin(), piecesAvailability.cend()); + return QList(piecesAvailability.cbegin(), piecesAvailability.cend()); } catch (const std::exception &) {} @@ -2932,9 +3013,9 @@ void TorrentImpl::fetchDownloadingPieces(std::function resultH , std::move(resultHandler)); } -void TorrentImpl::fetchAvailableFileFractions(std::function)> resultHandler) const +void TorrentImpl::fetchAvailableFileFractions(std::function)> resultHandler) const { - invokeAsync([nativeHandle = m_nativeHandle, torrentInfo = m_torrentInfo]() -> QVector + invokeAsync([nativeHandle = m_nativeHandle, torrentInfo = m_torrentInfo]() -> QList { if (!torrentInfo.isValid() || (torrentInfo.filesCount() <= 0)) return {}; @@ -2946,9 +3027,9 @@ void TorrentImpl::fetchAvailableFileFractions(std::function const int filesCount = torrentInfo.filesCount(); // libtorrent returns empty array for seeding only torrents if (piecesAvailability.empty()) - return QVector(filesCount, -1); + return QList(filesCount, -1); - QVector result; + QList result; result.reserve(filesCount); for (int i = 0; i < filesCount; ++i) { @@ -2972,7 +3053,7 @@ void TorrentImpl::fetchAvailableFileFractions(std::function , std::move(resultHandler)); } -void TorrentImpl::prioritizeFiles(const QVector &priorities) +void TorrentImpl::prioritizeFiles(const QList &priorities) { if (!hasMetadata()) return; @@ -2981,7 +3062,7 @@ void TorrentImpl::prioritizeFiles(const QVector &priorities) // Reset 'm_hasSeedStatus' if needed in order to react again to // 'torrent_finished_alert' and eg show tray notifications - const QVector oldPriorities = filePriorities(); + const QList oldPriorities = filePriorities(); for (int i = 0; i < oldPriorities.size(); ++i) { if ((oldPriorities[i] == DownloadPriority::Ignored) @@ -3009,18 +3090,18 @@ void TorrentImpl::prioritizeFiles(const QVector &priorities) manageActualFilePaths(); } -QVector TorrentImpl::availableFileFractions() const +QList TorrentImpl::availableFileFractions() const { Q_ASSERT(hasMetadata()); const int filesCount = this->filesCount(); if (filesCount <= 0) return {}; - const QVector piecesAvailability = pieceAvailability(); + const QList piecesAvailability = pieceAvailability(); // libtorrent returns empty array for seeding only torrents - if (piecesAvailability.empty()) return QVector(filesCount, -1); + if (piecesAvailability.empty()) return QList(filesCount, -1); - QVector res; + QList res; res.reserve(filesCount); for (int i = 0; i < filesCount; ++i) { diff --git a/src/base/bittorrent/torrentimpl.h b/src/base/bittorrent/torrentimpl.h index 54b84c1f4..5c54b2d00 100644 --- a/src/base/bittorrent/torrentimpl.h +++ b/src/base/bittorrent/torrentimpl.h @@ -41,11 +41,11 @@ #include #include #include +#include #include #include #include #include -#include #include "base/path.h" #include "base/tagset.h" @@ -138,7 +138,15 @@ namespace BitTorrent int piecesCount() const override; int piecesHave() const override; qreal progress() const override; + QDateTime addedTime() const override; + QDateTime completedTime() const override; + QDateTime lastSeenComplete() const override; + qlonglong activeTime() const override; + qlonglong finishedTime() const override; + qlonglong timeSinceUpload() const override; + qlonglong timeSinceDownload() const override; + qlonglong timeSinceActivity() const override; qreal ratioLimit() const override; void setRatioLimit(qreal limit) override; @@ -153,7 +161,8 @@ namespace BitTorrent Path actualFilePath(int index) const override; qlonglong fileSize(int index) const override; PathList filePaths() const override; - QVector filePriorities() const override; + PathList actualFilePaths() const override; + QList filePriorities() const override; TorrentInfo info() const override; bool isFinished() const override; @@ -175,36 +184,29 @@ namespace BitTorrent bool hasMissingFiles() const override; bool hasError() const override; int queuePosition() const override; - QVector trackers() const override; - QVector urlSeeds() const override; + QList trackers() const override; + QList urlSeeds() const override; QString error() const override; qlonglong totalDownload() const override; qlonglong totalUpload() const override; - qlonglong activeTime() const override; - qlonglong finishedTime() const override; qlonglong eta() const override; - QVector filesProgress() const override; + QList filesProgress() const override; int seedsCount() const override; int peersCount() const override; int leechsCount() const override; int totalSeedsCount() const override; int totalPeersCount() const override; int totalLeechersCount() const override; - QDateTime lastSeenComplete() const override; - QDateTime completedTime() const override; - qlonglong timeSinceUpload() const override; - qlonglong timeSinceDownload() const override; - qlonglong timeSinceActivity() const override; int downloadLimit() const override; int uploadLimit() const override; bool superSeeding() const override; bool isDHTDisabled() const override; bool isPEXDisabled() const override; bool isLSDDisabled() const override; - QVector peers() const override; + QList peers() const override; QBitArray pieces() const override; QBitArray downloadingPieces() const override; - QVector pieceAvailability() const override; + QList pieceAvailability() const override; qreal distributedCopies() const override; qreal maxRatio() const override; int maxSeedingTime() const override; @@ -218,7 +220,7 @@ namespace BitTorrent int connectionsCount() const override; int connectionsLimit() const override; qlonglong nextAnnounce() const override; - QVector availableFileFractions() const override; + QList availableFileFractions() const override; void setName(const QString &name) override; void setSequentialDownload(bool enable) override; @@ -229,7 +231,7 @@ namespace BitTorrent void forceDHTAnnounce() override; void forceRecheck() override; void renameFile(int index, const Path &path) override; - void prioritizeFiles(const QVector &priorities) override; + void prioritizeFiles(const QList &priorities) override; void setUploadLimit(int limit) override; void setDownloadLimit(int limit) override; void setSuperSeeding(bool enable) override; @@ -237,11 +239,11 @@ namespace BitTorrent void setPEXDisabled(bool disable) override; void setLSDDisabled(bool disable) override; void flushCache() const override; - void addTrackers(QVector trackers) override; + void addTrackers(QList trackers) override; void removeTrackers(const QStringList &trackers) override; - void replaceTrackers(QVector trackers) override; - void addUrlSeeds(const QVector &urlSeeds) override; - void removeUrlSeeds(const QVector &urlSeeds) override; + void replaceTrackers(QList trackers) override; + void addUrlSeeds(const QList &urlSeeds) override; + void removeUrlSeeds(const QList &urlSeeds) override; bool connectPeer(const PeerAddress &peerAddress) override; void clearPeers() override; void setMetadata(const TorrentInfo &torrentInfo) override; @@ -256,11 +258,11 @@ namespace BitTorrent nonstd::expected exportToBuffer() const override; nonstd::expected exportToFile(const Path &path) const override; - void fetchPeerInfo(std::function)> resultHandler) const override; - void fetchURLSeeds(std::function)> resultHandler) const override; - void fetchPieceAvailability(std::function)> resultHandler) const override; + void fetchPeerInfo(std::function)> resultHandler) const override; + void fetchURLSeeds(std::function)> resultHandler) const override; + void fetchPieceAvailability(std::function)> resultHandler) const override; void fetchDownloadingPieces(std::function resultHandler) const override; - void fetchAvailableFileFractions(std::function)> resultHandler) const override; + void fetchAvailableFileFractions(std::function)> resultHandler) const override; bool needSaveResumeData() const; @@ -335,12 +337,20 @@ namespace BitTorrent TorrentInfo m_torrentInfo; PathList m_filePaths; QHash m_indexMap; - QVector m_filePriorities; + QList m_filePriorities; QBitArray m_completedFiles; SpeedMonitor m_payloadRateMonitor; InfoHash m_infoHash; + QDateTime m_creationDate; + QString m_creator; + QString m_comment; + + QDateTime m_addedTime; + QDateTime m_completedTime; + QDateTime m_lastSeenComplete; + // m_moveFinishedTriggers is activated only when the following conditions are met: // all file rename jobs complete, all file move jobs complete QQueue m_moveFinishedTriggers; @@ -351,8 +361,8 @@ namespace BitTorrent MaintenanceJob m_maintenanceJob = MaintenanceJob::None; - QVector m_trackerEntryStatuses; - QVector m_urlSeeds; + QList m_trackerEntryStatuses; + QList m_urlSeeds; FileErrorInfo m_lastFileError; // Persistent data @@ -383,7 +393,7 @@ namespace BitTorrent int m_uploadLimit = 0; QBitArray m_pieces; - QVector m_filesProgress; + QList m_filesProgress; bool m_deferredRequestResumeDataInvoked = false; }; diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index eecd9d33a..590930fe2 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2023 Vladimir Golovnev + * Copyright (C) 2015-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,24 +28,15 @@ #include "torrentinfo.h" -#include -#include #include #include #include -#include -#include #include -#include #include #include "base/global.h" #include "base/path.h" -#include "base/preferences.h" -#include "base/utils/fs.h" -#include "base/utils/io.h" -#include "base/utils/misc.h" #include "infohash.h" #include "trackerentry.h" @@ -82,66 +73,6 @@ bool TorrentInfo::isValid() const return (m_nativeInfo != nullptr); } -nonstd::expected TorrentInfo::load(const QByteArray &data) noexcept -{ - // 2-step construction to overcome default limits of `depth_limit` & `token_limit` which are - // used in `torrent_info()` constructor - const auto *pref = Preferences::instance(); - - lt::error_code ec; - const lt::bdecode_node node = lt::bdecode(data, ec - , nullptr, pref->getBdecodeDepthLimit(), pref->getBdecodeTokenLimit()); - if (ec) - return nonstd::make_unexpected(QString::fromStdString(ec.message())); - - const lt::torrent_info nativeInfo {node, ec}; - if (ec) - return nonstd::make_unexpected(QString::fromStdString(ec.message())); - - return TorrentInfo(nativeInfo); -} - -nonstd::expected TorrentInfo::loadFromFile(const Path &path) noexcept -{ - QByteArray data; - try - { - const qint64 torrentSizeLimit = Preferences::instance()->getTorrentFileSizeLimit(); - const auto readResult = Utils::IO::readFile(path, torrentSizeLimit); - if (!readResult) - return nonstd::make_unexpected(readResult.error().message); - data = readResult.value(); - } - catch (const std::bad_alloc &e) - { - return nonstd::make_unexpected(tr("Failed to allocate memory when reading file. File: \"%1\". Error: \"%2\"") - .arg(path.toString(), QString::fromLocal8Bit(e.what()))); - } - - return load(data); -} - -nonstd::expected TorrentInfo::saveToFile(const Path &path) const -{ - if (!isValid()) - return nonstd::make_unexpected(tr("Invalid metadata")); - - try - { - const auto torrentCreator = lt::create_torrent(*m_nativeInfo); - const lt::entry torrentEntry = torrentCreator.generate(); - const nonstd::expected result = Utils::IO::saveToFile(path, torrentEntry); - if (!result) - return result.get_unexpected(); - } - catch (const lt::system_error &err) - { - return nonstd::make_unexpected(QString::fromLocal8Bit(err.what())); - } - - return {}; -} - InfoHash TorrentInfo::infoHash() const { if (!isValid()) return {}; @@ -160,28 +91,6 @@ QString TorrentInfo::name() const return QString::fromStdString(m_nativeInfo->orig_files().name()); } -QDateTime TorrentInfo::creationDate() const -{ - if (!isValid()) return {}; - - const std::time_t date = m_nativeInfo->creation_date(); - return ((date != 0) ? QDateTime::fromSecsSinceEpoch(date) : QDateTime()); -} - -QString TorrentInfo::creator() const -{ - if (!isValid()) return {}; - - return QString::fromStdString(m_nativeInfo->creator()); -} - -QString TorrentInfo::comment() const -{ - if (!isValid()) return {}; - - return QString::fromStdString(m_nativeInfo->comment()); -} - bool TorrentInfo::isPrivate() const { if (!isValid()) return false; @@ -270,43 +179,7 @@ qlonglong TorrentInfo::fileOffset(const int index) const return m_nativeInfo->orig_files().file_offset(m_nativeIndexes[index]); } -QVector TorrentInfo::trackers() const -{ - if (!isValid()) return {}; - - const std::vector trackers = m_nativeInfo->trackers(); - - QVector ret; - ret.reserve(static_cast(trackers.size())); - for (const lt::announce_entry &tracker : trackers) - ret.append({.url = QString::fromStdString(tracker.url), .tier = tracker.tier}); - - return ret; -} - -QVector TorrentInfo::urlSeeds() const -{ - if (!isValid()) return {}; - - const std::vector &nativeWebSeeds = m_nativeInfo->web_seeds(); - - QVector urlSeeds; - urlSeeds.reserve(static_cast(nativeWebSeeds.size())); - - for (const lt::web_seed_entry &webSeed : nativeWebSeeds) - { -#if LIBTORRENT_VERSION_NUM < 20100 - if (webSeed.type == lt::web_seed_entry::url_seed) - urlSeeds.append(QUrl(QString::fromStdString(webSeed.url))); -#else - urlSeeds.append(QUrl(QString::fromStdString(webSeed.url))); -#endif - } - - return urlSeeds; -} - -QByteArray TorrentInfo::metadata() const +QByteArray TorrentInfo::rawData() const { if (!isValid()) return {}; #ifdef QBT_USES_LIBTORRENT2 @@ -320,7 +193,7 @@ QByteArray TorrentInfo::metadata() const PathList TorrentInfo::filesForPiece(const int pieceIndex) const { // no checks here because fileIndicesForPiece() will return an empty list - const QVector fileIndices = fileIndicesForPiece(pieceIndex); + const QList fileIndices = fileIndicesForPiece(pieceIndex); PathList res; res.reserve(fileIndices.size()); @@ -330,14 +203,14 @@ PathList TorrentInfo::filesForPiece(const int pieceIndex) const return res; } -QVector TorrentInfo::fileIndicesForPiece(const int pieceIndex) const +QList TorrentInfo::fileIndicesForPiece(const int pieceIndex) const { if (!isValid() || (pieceIndex < 0) || (pieceIndex >= piecesCount())) return {}; const std::vector files = m_nativeInfo->map_block( lt::piece_index_t {pieceIndex}, 0, m_nativeInfo->piece_size(lt::piece_index_t {pieceIndex})); - QVector res; + QList res; res.reserve(static_cast(files.size())); for (const lt::file_slice &fileSlice : files) { @@ -349,13 +222,13 @@ QVector TorrentInfo::fileIndicesForPiece(const int pieceIndex) const return res; } -QVector TorrentInfo::pieceHashes() const +QList TorrentInfo::pieceHashes() const { if (!isValid()) return {}; const int count = piecesCount(); - QVector hashes; + QList hashes; hashes.reserve(count); for (int i = 0; i < count; ++i) @@ -366,16 +239,7 @@ QVector TorrentInfo::pieceHashes() const TorrentInfo::PieceRange TorrentInfo::filePieces(const Path &filePath) const { - if (!isValid()) // if we do not check here the debug message will be printed, which would be not correct - return {}; - - const int index = fileIndex(filePath); - if (index == -1) - { - qDebug() << "Filename" << filePath.toString() << "was not found in torrent" << name(); - return {}; - } - return filePieces(index); + return filePieces(fileIndex(filePath)); } TorrentInfo::PieceRange TorrentInfo::filePieces(const int fileIndex) const @@ -384,10 +248,7 @@ TorrentInfo::PieceRange TorrentInfo::filePieces(const int fileIndex) const return {}; if ((fileIndex < 0) || (fileIndex >= filesCount())) - { - qDebug() << "File index (" << fileIndex << ") is out of range for torrent" << name(); return {}; - } const lt::file_storage &files = m_nativeInfo->orig_files(); const auto fileSize = files.file_size(m_nativeIndexes[fileIndex]); @@ -450,7 +311,7 @@ std::shared_ptr TorrentInfo::nativeInfo() const return std::make_shared(*m_nativeInfo); } -QVector TorrentInfo::nativeIndexes() const +QList TorrentInfo::nativeIndexes() const { return m_nativeIndexes; } diff --git a/src/base/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h index abca51978..02f5f78d8 100644 --- a/src/base/bittorrent/torrentinfo.h +++ b/src/base/bittorrent/torrentinfo.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2015-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -32,9 +32,8 @@ #include #include -#include +#include -#include "base/3rdparty/expected.hpp" #include "base/indexrange.h" #include "base/pathfwd.h" @@ -50,26 +49,17 @@ namespace BitTorrent class TorrentInfo { - Q_DECLARE_TR_FUNCTIONS(TorrentInfo) - public: TorrentInfo() = default; TorrentInfo(const TorrentInfo &other) = default; explicit TorrentInfo(const lt::torrent_info &nativeInfo); - static nonstd::expected load(const QByteArray &data) noexcept; - static nonstd::expected loadFromFile(const Path &path) noexcept; - nonstd::expected saveToFile(const Path &path) const; - TorrentInfo &operator=(const TorrentInfo &other); bool isValid() const; InfoHash infoHash() const; QString name() const; - QDateTime creationDate() const; - QString creator() const; - QString comment() const; bool isPrivate() const; qlonglong totalSize() const; int filesCount() const; @@ -80,12 +70,9 @@ namespace BitTorrent PathList filePaths() const; qlonglong fileSize(int index) const; qlonglong fileOffset(int index) const; - QVector trackers() const; - QVector urlSeeds() const; - QByteArray metadata() const; PathList filesForPiece(int pieceIndex) const; - QVector fileIndicesForPiece(int pieceIndex) const; - QVector pieceHashes() const; + QList fileIndicesForPiece(int pieceIndex) const; + QList pieceHashes() const; using PieceRange = IndexRange; // returns pair of the first and the last pieces into which @@ -93,10 +80,12 @@ namespace BitTorrent PieceRange filePieces(const Path &filePath) const; PieceRange filePieces(int fileIndex) const; + QByteArray rawData() const; + bool matchesInfoHash(const InfoHash &otherInfoHash) const; std::shared_ptr nativeInfo() const; - QVector nativeIndexes() const; + QList nativeIndexes() const; private: // returns file index or -1 if fileName is not found @@ -106,7 +95,7 @@ namespace BitTorrent // internal indexes of files (payload only, excluding any .pad files) // by which they are addressed in libtorrent - QVector m_nativeIndexes; + QList m_nativeIndexes; }; } diff --git a/src/base/bittorrent/tracker.cpp b/src/base/bittorrent/tracker.cpp index 6da1321cd..a86d50310 100644 --- a/src/base/bittorrent/tracker.cpp +++ b/src/base/bittorrent/tracker.cpp @@ -380,7 +380,7 @@ void Tracker::registerPeer(const TrackerAnnounceRequest &announceReq) { // Reached max size, remove a random torrent if (m_torrents.size() >= MAX_TORRENTS) - m_torrents.erase(m_torrents.begin()); + m_torrents.erase(m_torrents.cbegin()); } m_torrents[announceReq.torrentID].setPeer(announceReq.peer); diff --git a/src/base/bittorrent/trackerentrystatus.h b/src/base/bittorrent/trackerentrystatus.h index 1f271d41a..fa5998a58 100644 --- a/src/base/bittorrent/trackerentrystatus.h +++ b/src/base/bittorrent/trackerentrystatus.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015-2023 Vladimir Golovnev + * Copyright (C) 2015-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,10 +28,11 @@ #pragma once -#include #include #include +#include "announcetimepoint.h" + class QStringView; namespace BitTorrent @@ -59,8 +60,8 @@ namespace BitTorrent int numLeeches = -1; int numDownloaded = -1; - QDateTime nextAnnounceTime {}; - QDateTime minAnnounceTime {}; + AnnounceTimePoint nextAnnounceTime {}; + AnnounceTimePoint minAnnounceTime {}; }; struct TrackerEntryStatus @@ -76,8 +77,8 @@ namespace BitTorrent int numLeeches = -1; int numDownloaded = -1; - QDateTime nextAnnounceTime {}; - QDateTime minAnnounceTime {}; + AnnounceTimePoint nextAnnounceTime {}; + AnnounceTimePoint minAnnounceTime {}; QHash, TrackerEndpointStatus> endpoints {}; diff --git a/src/webui/freediskspacechecker.cpp b/src/base/freediskspacechecker.cpp similarity index 78% rename from src/webui/freediskspacechecker.cpp rename to src/base/freediskspacechecker.cpp index 23939fc97..ace9dcf96 100644 --- a/src/webui/freediskspacechecker.cpp +++ b/src/base/freediskspacechecker.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2025 Vladimir Golovnev * Copyright (C) 2018 Thomas Piccirello * * This program is free software; you can redistribute it and/or @@ -29,16 +29,24 @@ #include "freediskspacechecker.h" -#include "base/bittorrent/session.h" #include "base/utils/fs.h" -qint64 FreeDiskSpaceChecker::lastResult() const +FreeDiskSpaceChecker::FreeDiskSpaceChecker(const Path &pathToCheck) + : m_pathToCheck {pathToCheck} { - return m_lastResult; +} + +Path FreeDiskSpaceChecker::pathToCheck() const +{ + return m_pathToCheck; +} + +void FreeDiskSpaceChecker::setPathToCheck(const Path &newPathToCheck) +{ + m_pathToCheck = newPathToCheck; } void FreeDiskSpaceChecker::check() { - m_lastResult = Utils::Fs::freeDiskSpaceOnPath(BitTorrent::Session::instance()->savePath()); - emit checked(m_lastResult); + emit checked(Utils::Fs::freeDiskSpaceOnPath(m_pathToCheck)); } diff --git a/src/webui/freediskspacechecker.h b/src/base/freediskspacechecker.h similarity index 87% rename from src/webui/freediskspacechecker.h rename to src/base/freediskspacechecker.h index 31be38b34..950ffc026 100644 --- a/src/webui/freediskspacechecker.h +++ b/src/base/freediskspacechecker.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2025 Vladimir Golovnev * Copyright (C) 2018 Thomas Piccirello * * This program is free software; you can redistribute it and/or @@ -31,15 +31,18 @@ #include +#include "base/path.h" + class FreeDiskSpaceChecker final : public QObject { Q_OBJECT Q_DISABLE_COPY_MOVE(FreeDiskSpaceChecker) public: - using QObject::QObject; + FreeDiskSpaceChecker(const Path &pathToCheck); - qint64 lastResult() const; + Path pathToCheck() const; + void setPathToCheck(const Path &newPathToCheck); public slots: void check(); @@ -48,5 +51,5 @@ signals: void checked(qint64 freeSpaceSize); private: - qint64 m_lastResult = 0; + Path m_pathToCheck; }; diff --git a/src/base/http/connection.cpp b/src/base/http/connection.cpp index 4a96295e4..216d3e103 100644 --- a/src/base/http/connection.cpp +++ b/src/base/http/connection.cpp @@ -44,6 +44,7 @@ Connection::Connection(QTcpSocket *socket, IRequestHandler *requestHandler, QObj , m_requestHandler(requestHandler) { m_socket->setParent(this); + connect(m_socket, &QAbstractSocket::disconnected, this, &Connection::closed); // reserve common size for requests, don't use the max allowed size which is too big for // memory constrained platforms @@ -62,11 +63,6 @@ Connection::Connection(QTcpSocket *socket, IRequestHandler *requestHandler, QObj }); } -Connection::~Connection() -{ - m_socket->close(); -} - void Connection::read() { // reuse existing buffer and avoid unnecessary memory allocation/relocation @@ -159,12 +155,16 @@ void Connection::read() sendResponse(resp); } +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + m_receivedData.slice(result.frameSize); +#else m_receivedData.remove(0, result.frameSize); +#endif } break; default: - Q_ASSERT(false); + Q_UNREACHABLE(); return; } } @@ -182,11 +182,6 @@ bool Connection::hasExpired(const qint64 timeout) const && m_idleTimer.hasExpired(timeout); } -bool Connection::isClosed() const -{ - return (m_socket->state() == QAbstractSocket::UnconnectedState); -} - bool Connection::acceptsGzipEncoding(QString codings) { // [rfc7231] 5.3.4. Accept-Encoding diff --git a/src/base/http/connection.h b/src/base/http/connection.h index 5b8f67a78..46a263106 100644 --- a/src/base/http/connection.h +++ b/src/base/http/connection.h @@ -47,10 +47,11 @@ namespace Http public: Connection(QTcpSocket *socket, IRequestHandler *requestHandler, QObject *parent = nullptr); - ~Connection(); bool hasExpired(qint64 timeout) const; - bool isClosed() const; + + signals: + void closed(); private: static bool acceptsGzipEncoding(QString codings); diff --git a/src/base/http/requestparser.cpp b/src/base/http/requestparser.cpp index 5b2b500a1..e8a02dd09 100644 --- a/src/base/http/requestparser.cpp +++ b/src/base/http/requestparser.cpp @@ -50,7 +50,7 @@ using QStringPair = std::pair; namespace { - const QByteArray EOH = QByteArray(CRLF).repeated(2); + const QByteArray EOH = CRLF.repeated(2); const QByteArrayView viewWithoutEndingWith(const QByteArrayView in, const QByteArrayView str) { @@ -69,8 +69,8 @@ namespace return false; } - const QString name = line.left(i).trimmed().toString().toLower(); - const QString value = line.mid(i + 1).trimmed().toString(); + const QString name = line.first(i).trimmed().toString().toLower(); + const QString value = line.sliced(i + 1).trimmed().toString(); out[name] = value; return true; @@ -164,7 +164,7 @@ bool RequestParser::parseStartLines(const QStringView data) if (line.at(0).isSpace() && !requestLines.isEmpty()) { // continuation of previous line - requestLines.last() += line.toString(); + requestLines.last() += line; } else { @@ -204,15 +204,15 @@ bool RequestParser::parseRequestLine(const QString &line) m_request.method = match.captured(1); // Request Target - const QByteArray url {match.captured(2).toLatin1()}; + const QByteArray url {match.capturedView(2).toLatin1()}; const int sepPos = url.indexOf('?'); - const QByteArrayView pathComponent = ((sepPos == -1) ? url : QByteArrayView(url).mid(0, sepPos)); + const QByteArrayView pathComponent = ((sepPos == -1) ? url : QByteArrayView(url).first(sepPos)); m_request.path = QString::fromUtf8(QByteArray::fromPercentEncoding(asQByteArray(pathComponent))); if (sepPos >= 0) { - const QByteArrayView query = QByteArrayView(url).mid(sepPos + 1); + const QByteArrayView query = QByteArrayView(url).sliced(sepPos + 1); // [rfc3986] 2.4 When to Encode or Decode // URL components should be separated before percent-decoding @@ -221,13 +221,11 @@ bool RequestParser::parseRequestLine(const QString &line) const int eqCharPos = param.indexOf('='); if (eqCharPos <= 0) continue; // ignores params without name - const QByteArrayView nameComponent = param.mid(0, eqCharPos); - const QByteArrayView valueComponent = param.mid(eqCharPos + 1); + const QByteArrayView nameComponent = param.first(eqCharPos); + const QByteArrayView valueComponent = param.sliced(eqCharPos + 1); const QString paramName = QString::fromUtf8( QByteArray::fromPercentEncoding(asQByteArray(nameComponent)).replace('+', ' ')); - const QByteArray paramValue = valueComponent.isNull() - ? QByteArray("") - : QByteArray::fromPercentEncoding(asQByteArray(valueComponent)).replace('+', ' '); + const QByteArray paramValue = QByteArray::fromPercentEncoding(asQByteArray(valueComponent)).replace('+', ' '); m_request.query[paramName] = paramValue; } @@ -272,7 +270,7 @@ bool RequestParser::parsePostMessage(const QByteArrayView data) return false; } - const QByteArray delimiter = Utils::String::unquote(QStringView(contentType).mid(idx + boundaryFieldName.size())).toLatin1(); + const QByteArray delimiter = Utils::String::unquote(QStringView(contentType).sliced(idx + boundaryFieldName.size())).toLatin1(); if (delimiter.isEmpty()) { qWarning() << Q_FUNC_INFO << "boundary delimiter field empty!"; @@ -281,7 +279,7 @@ bool RequestParser::parsePostMessage(const QByteArrayView data) // split data by "dash-boundary" const QByteArray dashDelimiter = QByteArray("--") + delimiter + CRLF; - QList multipart = splitToViews(data, dashDelimiter, Qt::SkipEmptyParts); + QList multipart = splitToViews(data, dashDelimiter); if (multipart.isEmpty()) { qWarning() << Q_FUNC_INFO << "multipart empty"; @@ -312,8 +310,8 @@ bool RequestParser::parseFormData(const QByteArrayView data) return false; } - const QString headers = QString::fromLatin1(data.mid(0, eohPos)); - const QByteArrayView payload = viewWithoutEndingWith(data.mid((eohPos + EOH.size()), data.size()), CRLF); + const QString headers = QString::fromLatin1(data.first(eohPos)); + const QByteArrayView payload = viewWithoutEndingWith(data.sliced((eohPos + EOH.size())), CRLF); HeaderMap headersMap; const QList headerLines = QStringView(headers).split(QString::fromLatin1(CRLF), Qt::SkipEmptyParts); @@ -330,14 +328,14 @@ bool RequestParser::parseFormData(const QByteArrayView data) if (idx < 0) continue; - const QString name = directive.left(idx).trimmed().toString().toLower(); - const QString value = Utils::String::unquote(directive.mid(idx + 1).trimmed()).toString(); + const QString name = directive.first(idx).trimmed().toString().toLower(); + const QString value = Utils::String::unquote(directive.sliced(idx + 1).trimmed()).toString(); headersMap[name] = value; } } else { - if (!parseHeaderLine(line.toString(), headersMap)) + if (!parseHeaderLine(line, headersMap)) return false; } } @@ -348,7 +346,8 @@ bool RequestParser::parseFormData(const QByteArrayView data) if (headersMap.contains(filename)) { - m_request.files.append({headersMap[filename], headersMap[HEADER_CONTENT_TYPE], payload.toByteArray()}); + m_request.files.append({.filename = headersMap[filename], .type = headersMap[HEADER_CONTENT_TYPE] + , .data = payload.toByteArray()}); } else if (headersMap.contains(name)) { diff --git a/src/base/http/server.cpp b/src/base/http/server.cpp index 1e2320e11..7c99d8ecd 100644 --- a/src/base/http/server.cpp +++ b/src/base/http/server.cpp @@ -32,15 +32,18 @@ #include #include +#include +#include +#include #include +#include #include -#include +#include #include #include #include -#include "base/algorithm.h" #include "base/global.h" #include "base/utils/net.h" #include "base/utils/sslkey.h" @@ -98,13 +101,12 @@ using namespace Http; Server::Server(IRequestHandler *requestHandler, QObject *parent) : QTcpServer(parent) , m_requestHandler(requestHandler) + , m_sslConfig {QSslConfiguration::defaultConfiguration()} { setProxy(QNetworkProxy::NoProxy); - QSslConfiguration sslConf {QSslConfiguration::defaultConfiguration()}; - sslConf.setProtocol(QSsl::TlsV1_2OrLater); - sslConf.setCiphers(safeCipherList()); - QSslConfiguration::setDefaultConfiguration(sslConf); + m_sslConfig.setCiphers(safeCipherList()); + m_sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone); auto *dropConnectionTimer = new QTimer(this); connect(dropConnectionTimer, &QTimer::timeout, this, &Server::dropTimedOutConnection); @@ -113,32 +115,35 @@ Server::Server(IRequestHandler *requestHandler, QObject *parent) void Server::incomingConnection(const qintptr socketDescriptor) { - if (m_connections.size() >= CONNECTIONS_LIMIT) return; - - QTcpSocket *serverSocket = nullptr; - if (m_https) - serverSocket = new QSslSocket(this); - else - serverSocket = new QTcpSocket(this); - + std::unique_ptr serverSocket = isHttps() ? std::make_unique(this) : std::make_unique(this); if (!serverSocket->setSocketDescriptor(socketDescriptor)) + return; + + if (m_connections.size() >= CONNECTIONS_LIMIT) { - delete serverSocket; + qWarning("Too many connections. Exceeded CONNECTIONS_LIMIT (%d). Connection closed.", CONNECTIONS_LIMIT); return; } - if (m_https) + try { - static_cast(serverSocket)->setProtocol(QSsl::SecureProtocols); - static_cast(serverSocket)->setPrivateKey(m_key); - static_cast(serverSocket)->setLocalCertificateChain(m_certificates); - static_cast(serverSocket)->setPeerVerifyMode(QSslSocket::VerifyNone); - static_cast(serverSocket)->startServerEncryption(); - } + if (isHttps()) + { + auto *sslSocket = static_cast(serverSocket.get()); + sslSocket->setSslConfiguration(m_sslConfig); + sslSocket->startServerEncryption(); + } - auto *c = new Connection(serverSocket, m_requestHandler, this); - m_connections.insert(c); - connect(serverSocket, &QAbstractSocket::disconnected, this, [c, this]() { removeConnection(c); }); + auto *connection = new Connection(serverSocket.release(), m_requestHandler, this); + m_connections.insert(connection); + connect(connection, &Connection::closed, this, [this, connection] { removeConnection(connection); }); + } + catch (const std::bad_alloc &exception) + { + // drop the connection instead of throwing exception and crash + qWarning("Failed to allocate memory for HTTP connection. Connection closed."); + return; + } } void Server::removeConnection(Connection *connection) @@ -170,17 +175,17 @@ bool Server::setupHttps(const QByteArray &certificates, const QByteArray &privat return false; } - m_key = key; - m_certificates = certs; + m_sslConfig.setLocalCertificateChain(certs); + m_sslConfig.setPrivateKey(key); m_https = true; return true; } void Server::disableHttps() { + m_sslConfig.setLocalCertificateChain({}); + m_sslConfig.setPrivateKey({}); m_https = false; - m_certificates.clear(); - m_key.clear(); } bool Server::isHttps() const diff --git a/src/base/http/server.h b/src/base/http/server.h index 6e743599c..61c956387 100644 --- a/src/base/http/server.h +++ b/src/base/http/server.h @@ -31,8 +31,7 @@ #pragma once #include -#include -#include +#include #include namespace Http @@ -63,7 +62,6 @@ namespace Http QSet m_connections; // for tracking persistent connections bool m_https = false; - QList m_certificates; - QSslKey m_key; + QSslConfiguration m_sslConfig; }; } diff --git a/src/base/http/types.h b/src/base/http/types.h index 156ddf6c0..ebe342a6f 100644 --- a/src/base/http/types.h +++ b/src/base/http/types.h @@ -29,9 +29,12 @@ #pragma once +#include +#include #include +#include +#include #include -#include #include "base/global.h" @@ -57,6 +60,7 @@ namespace Http inline const QString HEADER_X_CONTENT_TYPE_OPTIONS = u"x-content-type-options"_s; inline const QString HEADER_X_FORWARDED_FOR = u"x-forwarded-for"_s; inline const QString HEADER_X_FORWARDED_HOST = u"x-forwarded-host"_s; + inline const QString HEADER_X_FORWARDED_PROTO = u"X-forwarded-proto"_s; inline const QString HEADER_X_FRAME_OPTIONS = u"x-frame-options"_s; inline const QString HEADER_X_XSS_PROTECTION = u"x-xss-protection"_s; @@ -75,7 +79,7 @@ namespace Http inline const QString CONTENT_TYPE_FORM_DATA = u"multipart/form-data"_s; // portability: "\r\n" doesn't guarantee mapping to the correct symbol - inline const char CRLF[] = {0x0D, 0x0A, '\0'}; + inline const QByteArray CRLF = QByteArrayLiteral("\x0D\x0A"); struct Environment { @@ -109,7 +113,7 @@ namespace Http HeaderMap headers; QHash query; QHash posts; - QVector files; + QList files; }; struct ResponseStatus diff --git a/src/base/logger.cpp b/src/base/logger.cpp index 7b03b97d6..9a91632a9 100644 --- a/src/base/logger.cpp +++ b/src/base/logger.cpp @@ -31,14 +31,14 @@ #include #include -#include +#include namespace { template - QVector loadFromBuffer(const boost::circular_buffer_space_optimized &src, const int offset = 0) + QList loadFromBuffer(const boost::circular_buffer_space_optimized &src, const int offset = 0) { - QVector ret; + QList ret; ret.reserve(static_cast(src.size()) - offset); std::copy((src.begin() + offset), src.end(), std::back_inserter(ret)); return ret; @@ -90,7 +90,7 @@ void Logger::addPeer(const QString &ip, const bool blocked, const QString &reaso emit newLogPeer(msg); } -QVector Logger::getMessages(const int lastKnownId) const +QList Logger::getMessages(const int lastKnownId) const { const QReadLocker locker(&m_lock); @@ -106,7 +106,7 @@ QVector Logger::getMessages(const int lastKnownId) const return loadFromBuffer(m_messages, (size - diff)); } -QVector Logger::getPeers(const int lastKnownId) const +QList Logger::getPeers(const int lastKnownId) const { const QReadLocker locker(&m_lock); diff --git a/src/base/logger.h b/src/base/logger.h index e41139f77..c948a204a 100644 --- a/src/base/logger.h +++ b/src/base/logger.h @@ -81,8 +81,8 @@ public: void addMessage(const QString &message, const Log::MsgType &type = Log::NORMAL); void addPeer(const QString &ip, bool blocked, const QString &reason = {}); - QVector getMessages(int lastKnownId = -1) const; - QVector getPeers(int lastKnownId = -1) const; + QList getMessages(int lastKnownId = -1) const; + QList getPeers(int lastKnownId = -1) const; signals: void newLogMessage(const Log::Msg &message); diff --git a/src/base/net/dnsupdater.cpp b/src/base/net/dnsupdater.cpp index 4aa385668..99c80b35a 100644 --- a/src/base/net/dnsupdater.cpp +++ b/src/base/net/dnsupdater.cpp @@ -96,9 +96,9 @@ void DNSUpdater::ipRequestFinished(const DownloadResult &result) const QRegularExpressionMatch ipRegexMatch = QRegularExpression(u"Current IP Address:\\s+([^<]+)"_s).match(QString::fromUtf8(result.data)); if (ipRegexMatch.hasMatch()) { - QString ipStr = ipRegexMatch.captured(1); + const QString ipStr = ipRegexMatch.captured(1); qDebug() << Q_FUNC_INFO << "Regular expression captured the following IP:" << ipStr; - QHostAddress newIp(ipStr); + const QHostAddress newIp {ipStr}; if (!newIp.isNull()) { if (m_lastIP != newIp) @@ -153,7 +153,7 @@ QString DNSUpdater::getUpdateUrl() const break; default: qWarning() << "Unrecognized Dynamic DNS service!"; - Q_ASSERT(false); + Q_UNREACHABLE(); break; } url.setPath(u"/nic/update"_s); @@ -305,7 +305,7 @@ QUrl DNSUpdater::getRegistrationUrl(const DNS::Service service) case DNS::Service::NoIP: return {u"https://www.noip.com/remote-access"_s}; default: - Q_ASSERT(false); + Q_UNREACHABLE(); break; } return {}; diff --git a/src/base/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp index 6b6eba17b..6a46ee0ce 100644 --- a/src/base/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -148,10 +148,20 @@ Net::DownloadManager::DownloadManager(QObject *parent) QStringList errorList; for (const QSslError &error : errors) errorList += error.errorString(); - LogMsg(tr("Ignoring SSL error, URL: \"%1\", errors: \"%2\"").arg(reply->url().toString(), errorList.join(u". ")), Log::WARNING); - // Ignore all SSL errors - reply->ignoreSslErrors(); + QString errorMsg; + if (!Preferences::instance()->isIgnoreSSLErrors()) + { + errorMsg = tr("SSL error, URL: \"%1\", errors: \"%2\""); + } + else + { + errorMsg = tr("Ignoring SSL error, URL: \"%1\", errors: \"%2\""); + // Ignore all SSL errors + reply->ignoreSslErrors(); + } + + LogMsg(errorMsg.arg(reply->url().toString(), errorList.join(u". ")), Log::WARNING); }); connect(ProxyConfigurationManager::instance(), &ProxyConfigurationManager::proxyConfigurationChanged @@ -255,38 +265,37 @@ void Net::DownloadManager::applyProxySettings() const auto *proxyManager = ProxyConfigurationManager::instance(); const ProxyConfiguration proxyConfig = proxyManager->proxyConfiguration(); - m_proxy = QNetworkProxy(QNetworkProxy::NoProxy); - - if ((proxyConfig.type == Net::ProxyType::None) || (proxyConfig.type == ProxyType::SOCKS4)) - return; - - // Proxy enabled - if (proxyConfig.type == ProxyType::SOCKS5) + switch (proxyConfig.type) { - qDebug() << Q_FUNC_INFO << "using SOCKS proxy"; - m_proxy.setType(QNetworkProxy::Socks5Proxy); - } - else - { - qDebug() << Q_FUNC_INFO << "using HTTP proxy"; - m_proxy.setType(QNetworkProxy::HttpProxy); - } + case Net::ProxyType::None: + case Net::ProxyType::SOCKS4: + m_proxy = QNetworkProxy(QNetworkProxy::NoProxy); + break; - m_proxy.setHostName(proxyConfig.ip); - m_proxy.setPort(proxyConfig.port); + case Net::ProxyType::HTTP: + m_proxy = QNetworkProxy( + QNetworkProxy::HttpProxy + , proxyConfig.ip + , proxyConfig.port + , (proxyConfig.authEnabled ? proxyConfig.username : QString()) + , (proxyConfig.authEnabled ? proxyConfig.password : QString())); + m_proxy.setCapabilities(proxyConfig.hostnameLookupEnabled + ? (m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability) + : (m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability)); + break; - // Authentication? - if (proxyConfig.authEnabled) - { - qDebug("Proxy requires authentication, authenticating..."); - m_proxy.setUser(proxyConfig.username); - m_proxy.setPassword(proxyConfig.password); - } - - if (proxyConfig.hostnameLookupEnabled) - m_proxy.setCapabilities(m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability); - else - m_proxy.setCapabilities(m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability); + case Net::ProxyType::SOCKS5: + m_proxy = QNetworkProxy( + QNetworkProxy::Socks5Proxy + , proxyConfig.ip + , proxyConfig.port + , (proxyConfig.authEnabled ? proxyConfig.username : QString()) + , (proxyConfig.authEnabled ? proxyConfig.password : QString())); + m_proxy.setCapabilities(proxyConfig.hostnameLookupEnabled + ? (m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability) + : (m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability)); + break; + }; } void Net::DownloadManager::processWaitingJobs(const ServiceID &serviceID) @@ -310,14 +319,11 @@ void Net::DownloadManager::processRequest(DownloadHandlerImpl *downloadHandler) const DownloadRequest downloadRequest = downloadHandler->downloadRequest(); QNetworkRequest request {downloadRequest.url()}; - - if (downloadRequest.userAgent().isEmpty()) - request.setRawHeader("User-Agent", getBrowserUserAgent()); - else - request.setRawHeader("User-Agent", downloadRequest.userAgent().toUtf8()); + request.setHeader(QNetworkRequest::UserAgentHeader, (downloadRequest.userAgent().isEmpty() + ? getBrowserUserAgent() : downloadRequest.userAgent().toUtf8())); // Spoof HTTP Referer to allow adding torrent link from Torcache/KickAssTorrents - request.setRawHeader("Referer", request.url().toEncoded().data()); + request.setRawHeader("Referer", request.url().toEncoded()); #ifdef QT_NO_COMPRESS // The macro "QT_NO_COMPRESS" defined in QT will disable the zlib related features // and reply data auto-decompression in QT will also be disabled. But we can support diff --git a/src/base/net/geoipdatabase.cpp b/src/base/net/geoipdatabase.cpp index b53178402..5655827ea 100644 --- a/src/base/net/geoipdatabase.cpp +++ b/src/base/net/geoipdatabase.cpp @@ -28,6 +28,7 @@ #include "geoipdatabase.h" +#include #include #include #include @@ -41,7 +42,7 @@ namespace { const qint32 MAX_FILE_SIZE = 67108864; // 64MB const quint32 MAX_METADATA_SIZE = 131072; // 128KB - const char METADATA_BEGIN_MARK[] = "\xab\xcd\xefMaxMind.com"; + const QByteArray METADATA_BEGIN_MARK = QByteArrayLiteral("\xab\xcd\xefMaxMind.com"); const char DATA_SECTION_SEPARATOR[16] = {0}; enum class DataType @@ -309,7 +310,7 @@ QVariantHash GeoIPDatabase::readMetadata() const { if (m_size > MAX_METADATA_SIZE) index += (m_size - MAX_METADATA_SIZE); // from begin of all data - auto offset = static_cast(index + strlen(METADATA_BEGIN_MARK)); + auto offset = static_cast(index + METADATA_BEGIN_MARK.size()); const QVariant metadata = readDataField(offset); if (metadata.userType() == QMetaType::QVariantHash) return metadata.toHash(); diff --git a/src/base/net/geoipmanager.cpp b/src/base/net/geoipmanager.cpp index 0d0a4c412..423501699 100644 --- a/src/base/net/geoipmanager.cpp +++ b/src/base/net/geoipmanager.cpp @@ -456,15 +456,15 @@ void GeoIPManager::downloadFinished(const DownloadResult &result) Utils::Fs::mkpath(targetPath); const auto path = targetPath / Path(GEODB_FILENAME); - const nonstd::expected result = Utils::IO::saveToFile(path, data); - if (result) + const nonstd::expected saveResult = Utils::IO::saveToFile(path, data); + if (saveResult) { LogMsg(tr("Successfully updated IP geolocation database."), Log::INFO); } else { LogMsg(tr("Couldn't save downloaded IP geolocation database file. Reason: %1") - .arg(result.error()), Log::WARNING); + .arg(saveResult.error()), Log::WARNING); } } else diff --git a/src/base/net/smtp.cpp b/src/base/net/smtp.cpp index 94f833810..e130f6b11 100644 --- a/src/base/net/smtp.cpp +++ b/src/base/net/smtp.cpp @@ -148,8 +148,7 @@ void Smtp::sendMail(const QString &from, const QString &to, const QString &subje // Encode the body in base64 QString crlfBody = body; const QByteArray b = crlfBody.replace(u"\n"_s, u"\r\n"_s).toUtf8().toBase64(); - const int ct = b.length(); - for (int i = 0; i < ct; i += 78) + for (int i = 0, end = b.length(); i < end; i += 78) m_message += b.mid(i, 78); m_from = from; m_rcpt = to; @@ -190,8 +189,12 @@ void Smtp::readyRead() { const int pos = m_buffer.indexOf("\r\n"); if (pos < 0) return; // Loop exit condition - const QByteArray line = m_buffer.left(pos); + const QByteArray line = m_buffer.first(pos); +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + m_buffer.slice(pos + 2); +#else m_buffer.remove(0, (pos + 2)); +#endif qDebug() << "Response line:" << line; // Extract response code const QByteArray code = line.left(3); @@ -565,29 +568,11 @@ void Smtp::logError(const QString &msg) QString Smtp::getCurrentDateTime() const { - // return date & time in the format specified in RFC 2822, section 3.3 - const QDateTime nowDateTime = QDateTime::currentDateTime(); - const QDate nowDate = nowDateTime.date(); - const QLocale eng(QLocale::English); - - const QString timeStr = nowDateTime.time().toString(u"HH:mm:ss"); - const QString weekDayStr = eng.dayName(nowDate.dayOfWeek(), QLocale::ShortFormat); - const QString dayStr = QString::number(nowDate.day()); - const QString monthStr = eng.monthName(nowDate.month(), QLocale::ShortFormat); - const QString yearStr = QString::number(nowDate.year()); - - QDateTime tmp = nowDateTime; - tmp.setTimeSpec(Qt::UTC); - const int timeOffsetHour = nowDateTime.secsTo(tmp) / 3600; - const int timeOffsetMin = nowDateTime.secsTo(tmp) / 60 - (60 * timeOffsetHour); - const int timeOffset = timeOffsetHour * 100 + timeOffsetMin; - // buf size = 11 to avoid format truncation warnings from snprintf - char buf[11] = {0}; - std::snprintf(buf, sizeof(buf), "%+05d", timeOffset); - const auto timeOffsetStr = QString::fromUtf8(buf); - - const QString ret = weekDayStr + u", " + dayStr + u' ' + monthStr + u' ' + yearStr + u' ' + timeStr + u' ' + timeOffsetStr; - return ret; + // [rfc2822] 3.3. Date and Time Specification + const auto now = QDateTime::currentDateTime(); + const QLocale eng {QLocale::English}; + const QString weekday = eng.dayName(now.date().dayOfWeek(), QLocale::ShortFormat); + return (weekday + u", " + now.toString(Qt::RFC2822Date)); } void Smtp::error(QAbstractSocket::SocketError socketError) diff --git a/src/base/net/smtp.h b/src/base/net/smtp.h index 28c7cadeb..d58d8322b 100644 --- a/src/base/net/smtp.h +++ b/src/base/net/smtp.h @@ -43,7 +43,6 @@ class QSslSocket; #else class QTcpSocket; #endif -class QTextCodec; namespace Net { diff --git a/src/base/path.cpp b/src/base/path.cpp index 14950d473..55162d6df 100644 --- a/src/base/path.cpp +++ b/src/base/path.cpp @@ -94,7 +94,13 @@ bool Path::isValid() const #if defined(Q_OS_WIN) QStringView view = m_pathStr; if (hasDriveLetter(view)) - view = view.mid(3); + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + view.slice(3); +#else + view = view.sliced(3); +#endif + } // \\37 is using base-8 number system const QRegularExpression regex {u"[\\0-\\37:?\"*<>|]"_s}; @@ -147,9 +153,9 @@ Path Path::rootItem() const #ifdef Q_OS_WIN // should be `c:/` instead of `c:` if ((slashIndex == 2) && hasDriveLetter(m_pathStr)) - return createUnchecked(m_pathStr.left(slashIndex + 1)); + return createUnchecked(m_pathStr.first(slashIndex + 1)); #endif - return createUnchecked(m_pathStr.left(slashIndex)); + return createUnchecked(m_pathStr.first(slashIndex)); } Path Path::parentPath() const @@ -167,9 +173,9 @@ Path Path::parentPath() const // should be `c:/` instead of `c:` // Windows "drive letter" is limited to one alphabet if ((slashIndex == 2) && hasDriveLetter(m_pathStr)) - return (m_pathStr.size() == 3) ? Path() : createUnchecked(m_pathStr.left(slashIndex + 1)); + return (m_pathStr.size() == 3) ? Path() : createUnchecked(m_pathStr.first(slashIndex + 1)); #endif - return createUnchecked(m_pathStr.left(slashIndex)); + return createUnchecked(m_pathStr.first(slashIndex)); } QString Path::filename() const @@ -178,7 +184,7 @@ QString Path::filename() const if (slashIndex == -1) return m_pathStr; - return m_pathStr.mid(slashIndex + 1); + return m_pathStr.sliced(slashIndex + 1); } QString Path::extension() const @@ -188,9 +194,9 @@ QString Path::extension() const return (u"." + suffix); const int slashIndex = m_pathStr.lastIndexOf(u'/'); - const auto filename = QStringView(m_pathStr).mid(slashIndex + 1); + const auto filename = QStringView(m_pathStr).sliced(slashIndex + 1); const int dotIndex = filename.lastIndexOf(u'.', -2); - return ((dotIndex == -1) ? QString() : filename.mid(dotIndex).toString()); + return ((dotIndex == -1) ? QString() : filename.sliced(dotIndex).toString()); } bool Path::hasExtension(const QStringView ext) const @@ -293,7 +299,7 @@ Path Path::commonPath(const Path &left, const Path &right) if (commonItemsCount > 0) commonPathSize += (commonItemsCount - 1); // size of intermediate separators - return Path::createUnchecked(left.m_pathStr.left(commonPathSize)); + return Path::createUnchecked(left.m_pathStr.first(commonPathSize)); } Path Path::findRootFolder(const PathList &filePaths) @@ -322,7 +328,13 @@ void Path::stripRootFolder(PathList &filePaths) return; for (Path &filePath : filePaths) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + filePath.m_pathStr.slice(commonRootFolder.m_pathStr.size() + 1); +#else filePath.m_pathStr.remove(0, (commonRootFolder.m_pathStr.size() + 1)); +#endif + } } void Path::addRootFolder(PathList &filePaths, const Path &rootFolder) diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 13c1c8b00..de5845fe3 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -134,17 +134,17 @@ void Preferences::setCustomUIThemePath(const Path &path) setValue(u"Preferences/General/CustomUIThemePath"_s, path); } -bool Preferences::deleteTorrentFilesAsDefault() const +bool Preferences::removeTorrentContent() const { return value(u"Preferences/General/DeleteTorrentsFilesAsDefault"_s, false); } -void Preferences::setDeleteTorrentFilesAsDefault(const bool del) +void Preferences::setRemoveTorrentContent(const bool remove) { - if (del == deleteTorrentFilesAsDefault()) + if (remove == removeTorrentContent()) return; - setValue(u"Preferences/General/DeleteTorrentsFilesAsDefault"_s, del); + setValue(u"Preferences/General/DeleteTorrentsFilesAsDefault"_s, remove); } bool Preferences::confirmOnExit() const @@ -359,6 +359,32 @@ void Preferences::setStatusbarDisplayed(const bool displayed) setValue(u"Preferences/General/StatusbarDisplayed"_s, displayed); } +bool Preferences::isStatusbarFreeDiskSpaceDisplayed() const +{ + return value(u"Preferences/General/StatusbarFreeDiskSpaceDisplayed"_s, false); +} + +void Preferences::setStatusbarFreeDiskSpaceDisplayed(const bool displayed) +{ + if (displayed == isStatusbarFreeDiskSpaceDisplayed()) + return; + + setValue(u"Preferences/General/StatusbarFreeDiskSpaceDisplayed"_s, displayed); +} + +bool Preferences::isStatusbarExternalIPDisplayed() const +{ + return value(u"Preferences/General/StatusbarExternalIPDisplayed"_s, false); +} + +void Preferences::setStatusbarExternalIPDisplayed(const bool displayed) +{ + if (displayed == isStatusbarExternalIPDisplayed()) + return; + + setValue(u"Preferences/General/StatusbarExternalIPDisplayed"_s, displayed); +} + bool Preferences::isSplashScreenDisabled() const { return value(u"Preferences/General/NoSplashScreen"_s, true); @@ -429,6 +455,19 @@ void Preferences::setWinStartup(const bool b) settings.remove(profileID); } } + +QString Preferences::getStyle() const +{ + return value(u"Appearance/Style"_s); +} + +void Preferences::setStyle(const QString &styleName) +{ + if (styleName == getStyle()) + return; + + setValue(u"Appearance/Style"_s, styleName); +} #endif // Q_OS_WIN // Downloads @@ -629,6 +668,47 @@ void Preferences::setSearchEnabled(const bool enabled) setValue(u"Preferences/Search/SearchEnabled"_s, enabled); } +int Preferences::searchHistoryLength() const +{ + const int val = value(u"Search/HistoryLength"_s, 50); + return std::clamp(val, 0, 99); +} + +void Preferences::setSearchHistoryLength(const int length) +{ + const int clampedLength = std::clamp(length, 0, 99); + if (clampedLength == searchHistoryLength()) + return; + + setValue(u"Search/HistoryLength"_s, clampedLength); +} + +bool Preferences::storeOpenedSearchTabs() const +{ + return value(u"Search/StoreOpenedSearchTabs"_s, false); +} + +void Preferences::setStoreOpenedSearchTabs(const bool enabled) +{ + if (enabled == storeOpenedSearchTabs()) + return; + + setValue(u"Search/StoreOpenedSearchTabs"_s, enabled); +} + +bool Preferences::storeOpenedSearchTabResults() const +{ + return value(u"Search/StoreOpenedSearchTabResults"_s, false); +} + +void Preferences::setStoreOpenedSearchTabResults(const bool enabled) +{ + if (enabled == storeOpenedSearchTabResults()) + return; + + setValue(u"Search/StoreOpenedSearchTabResults"_s, enabled); +} + bool Preferences::isWebUIEnabled() const { #ifdef DISABLE_GUI @@ -673,11 +753,11 @@ void Preferences::setWebUIAuthSubnetWhitelistEnabled(const bool enabled) setValue(u"Preferences/WebUI/AuthSubnetWhitelistEnabled"_s, enabled); } -QVector Preferences::getWebUIAuthSubnetWhitelist() const +QList Preferences::getWebUIAuthSubnetWhitelist() const { const auto subnets = value(u"Preferences/WebUI/AuthSubnetWhitelist"_s); - QVector ret; + QList ret; ret.reserve(subnets.size()); for (const QString &rawSubnet : subnets) @@ -1330,6 +1410,19 @@ void Preferences::setMarkOfTheWebEnabled(const bool enabled) setValue(u"Preferences/Advanced/markOfTheWeb"_s, enabled); } +bool Preferences::isIgnoreSSLErrors() const +{ + return value(u"Preferences/Advanced/IgnoreSSLErrors"_s, false); +} + +void Preferences::setIgnoreSSLErrors(const bool enabled) +{ + if (enabled == isIgnoreSSLErrors()) + return; + + setValue(u"Preferences/Advanced/IgnoreSSLErrors"_s, enabled); +} + Path Preferences::getPythonExecutablePath() const { return value(u"Preferences/Search/pythonExecutablePath"_s, Path()); @@ -1974,6 +2067,19 @@ void Preferences::setAddNewTorrentDialogSavePathHistoryLength(const int value) setValue(u"AddNewTorrentDialog/SavePathHistoryLength"_s, clampedValue); } +bool Preferences::isAddNewTorrentDialogAttached() const +{ + return value(u"AddNewTorrentDialog/Attached"_s, false); +} + +void Preferences::setAddNewTorrentDialogAttached(const bool attached) +{ + if (attached == isAddNewTorrentDialogAttached()) + return; + + setValue(u"AddNewTorrentDialog/Attached"_s, attached); +} + void Preferences::apply() { if (SettingsStorage::instance()->save()) diff --git a/src/base/preferences.h b/src/base/preferences.h index 90f26b055..bfe53d150 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -105,8 +105,8 @@ public: void setUseCustomUITheme(bool use); Path customUIThemePath() const; void setCustomUIThemePath(const Path &path); - bool deleteTorrentFilesAsDefault() const; - void setDeleteTorrentFilesAsDefault(bool del); + bool removeTorrentContent() const; + void setRemoveTorrentContent(bool remove); bool confirmOnExit() const; void setConfirmOnExit(bool confirm); bool speedInTitleBar() const; @@ -119,6 +119,10 @@ public: void setHideZeroComboValues(int n); bool isStatusbarDisplayed() const; void setStatusbarDisplayed(bool displayed); + bool isStatusbarFreeDiskSpaceDisplayed() const; + void setStatusbarFreeDiskSpaceDisplayed(bool displayed); + bool isStatusbarExternalIPDisplayed() const; + void setStatusbarExternalIPDisplayed(bool displayed); bool isToolbarDisplayed() const; void setToolbarDisplayed(bool displayed); bool isSplashScreenDisabled() const; @@ -130,6 +134,8 @@ public: #ifdef Q_OS_WIN bool WinStartup() const; void setWinStartup(bool b); + QString getStyle() const; + void setStyle(const QString &styleName); #endif // Downloads @@ -168,6 +174,14 @@ public: bool isSearchEnabled() const; void setSearchEnabled(bool enabled); + // Search UI + int searchHistoryLength() const; + void setSearchHistoryLength(int length); + bool storeOpenedSearchTabs() const; + void setStoreOpenedSearchTabs(bool enabled); + bool storeOpenedSearchTabResults() const; + void setStoreOpenedSearchTabResults(bool enabled); + // HTTP Server bool isWebUIEnabled() const; void setWebUIEnabled(bool enabled); @@ -185,7 +199,7 @@ public: void setWebUILocalAuthEnabled(bool enabled); bool isWebUIAuthSubnetWhitelistEnabled() const; void setWebUIAuthSubnetWhitelistEnabled(bool enabled); - QVector getWebUIAuthSubnetWhitelist() const; + QList getWebUIAuthSubnetWhitelist() const; void setWebUIAuthSubnetWhitelist(QStringList subnets); QString getWebUIUsername() const; void setWebUIUsername(const QString &username); @@ -293,6 +307,8 @@ public: void setTrackerPortForwardingEnabled(bool enabled); bool isMarkOfTheWebEnabled() const; void setMarkOfTheWebEnabled(bool enabled); + bool isIgnoreSSLErrors() const; + void setIgnoreSSLErrors(bool enabled); Path getPythonExecutablePath() const; void setPythonExecutablePath(const Path &path); #if defined(Q_OS_WIN) || defined(Q_OS_MACOS) @@ -419,6 +435,8 @@ public: void setAddNewTorrentDialogTopLevel(bool value); int addNewTorrentDialogSavePathHistoryLength() const; void setAddNewTorrentDialogSavePathHistoryLength(int value); + bool isAddNewTorrentDialogAttached() const; + void setAddNewTorrentDialogAttached(bool attached); public slots: void setStatusFilterState(bool checked); diff --git a/src/base/rss/feed_serializer.cpp b/src/base/rss/feed_serializer.cpp index ce097c41c..838ad06a9 100644 --- a/src/base/rss/feed_serializer.cpp +++ b/src/base/rss/feed_serializer.cpp @@ -34,14 +34,14 @@ #include #include #include -#include +#include #include "base/logger.h" #include "base/path.h" #include "base/utils/io.h" #include "rss_article.h" -const int ARTICLEDATALIST_TYPEID = qRegisterMetaType>(); +const int ARTICLEDATALIST_TYPEID = qRegisterMetaType>(); void RSS::Private::FeedSerializer::load(const Path &dataFileName, const QString &url) { @@ -61,7 +61,7 @@ void RSS::Private::FeedSerializer::load(const Path &dataFileName, const QString emit loadingFinished(loadArticles(readResult.value(), url)); } -void RSS::Private::FeedSerializer::store(const Path &dataFileName, const QVector &articlesData) +void RSS::Private::FeedSerializer::store(const Path &dataFileName, const QList &articlesData) { QJsonArray arr; for (const QVariantHash &data : articlesData) @@ -73,7 +73,7 @@ void RSS::Private::FeedSerializer::store(const Path &dataFileName, const QVector arr << jsonObj; } - const nonstd::expected result = Utils::IO::saveToFile(dataFileName, QJsonDocument(arr).toJson()); + const nonstd::expected result = Utils::IO::saveToFile(dataFileName, QJsonDocument(arr).toJson(QJsonDocument::Compact)); if (!result) { LogMsg(tr("Failed to save RSS feed in '%1', Reason: %2").arg(dataFileName.toString(), result.error()) @@ -81,7 +81,7 @@ void RSS::Private::FeedSerializer::store(const Path &dataFileName, const QVector } } -QVector RSS::Private::FeedSerializer::loadArticles(const QByteArray &data, const QString &url) +QList RSS::Private::FeedSerializer::loadArticles(const QByteArray &data, const QString &url) { QJsonParseError jsonError; const QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError); @@ -98,7 +98,7 @@ QVector RSS::Private::FeedSerializer::loadArticles(const QByteArra return {}; } - QVector result; + QList result; const QJsonArray jsonArr = jsonDoc.array(); result.reserve(jsonArr.size()); for (int i = 0; i < jsonArr.size(); ++i) diff --git a/src/base/rss/feed_serializer.h b/src/base/rss/feed_serializer.h index db593b0cc..9bc33c4c8 100644 --- a/src/base/rss/feed_serializer.h +++ b/src/base/rss/feed_serializer.h @@ -49,12 +49,12 @@ namespace RSS::Private using QObject::QObject; void load(const Path &dataFileName, const QString &url); - void store(const Path &dataFileName, const QVector &articlesData); + void store(const Path &dataFileName, const QList &articlesData); signals: - void loadingFinished(const QVector &articles); + void loadingFinished(const QList &articles); private: - QVector loadArticles(const QByteArray &data, const QString &url); + QList loadArticles(const QByteArray &data, const QString &url); }; } diff --git a/src/base/rss/rss_autodownloader.cpp b/src/base/rss/rss_autodownloader.cpp index 798634d7a..294e3289e 100644 --- a/src/base/rss/rss_autodownloader.cpp +++ b/src/base/rss/rss_autodownloader.cpp @@ -35,14 +35,15 @@ #include #include #include +#include #include #include #include #include -#include #include "base/addtorrentmanager.h" #include "base/asyncfilestorage.h" +#include "base/bittorrent/addtorrenterror.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrentdescriptor.h" #include "base/global.h" @@ -68,7 +69,7 @@ const QString RULES_FILE_NAME = u"download_rules.json"_s; namespace { - QVector rulesFromJSON(const QByteArray &jsonData) + QList rulesFromJSON(const QByteArray &jsonData) { QJsonParseError jsonError; const QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &jsonError); @@ -79,7 +80,7 @@ namespace throw RSS::ParsingError(RSS::AutoDownloader::tr("Invalid data format.")); const QJsonObject jsonObj {jsonDoc.object()}; - QVector rules; + QList rules; for (auto it = jsonObj.begin(); it != jsonObj.end(); ++it) { const QJsonValue jsonVal {it.value()}; @@ -123,6 +124,7 @@ AutoDownloader::AutoDownloader(IApplication *app) .arg(fileName.toString(), errorString), Log::CRITICAL); }); + m_ioThread->setObjectName("RSS::AutoDownloader m_ioThread"); m_ioThread->start(); connect(app->addTorrentManager(), &AddTorrentManager::torrentAdded @@ -374,10 +376,24 @@ void AutoDownloader::handleTorrentAdded(const QString &source) } } -void AutoDownloader::handleAddTorrentFailed(const QString &source) +void AutoDownloader::handleAddTorrentFailed(const QString &source, const BitTorrent::AddTorrentError &error) { - m_waitingJobs.remove(source); - // TODO: Re-schedule job here. + const auto job = m_waitingJobs.take(source); + if (!job) + return; + + if (error.kind == BitTorrent::AddTorrentError::DuplicateTorrent) + { + if (Feed *feed = Session::instance()->feedByURL(job->feedURL)) + { + if (Article *article = feed->articleByGUID(job->articleData.value(Article::KeyId).toString())) + article->markAsRead(); + } + } + else + { + // TODO: Re-schedule job here. + } } void AutoDownloader::handleNewArticle(const Article *article) diff --git a/src/base/rss/rss_autodownloader.h b/src/base/rss/rss_autodownloader.h index c70bdbf94..02b52231a 100644 --- a/src/base/rss/rss_autodownloader.h +++ b/src/base/rss/rss_autodownloader.h @@ -41,13 +41,17 @@ #include "base/settingvalue.h" #include "base/utils/thread.h" -class QThread; class QTimer; class Application; class AsyncFileStorage; struct ProcessingJob; +namespace BitTorrent +{ + struct AddTorrentError; +} + namespace RSS { class Article; @@ -112,7 +116,7 @@ namespace RSS private slots: void process(); void handleTorrentAdded(const QString &source); - void handleAddTorrentFailed(const QString &url); + void handleAddTorrentFailed(const QString &url, const BitTorrent::AddTorrentError &error); void handleNewArticle(const Article *article); void handleFeedURLChanged(Feed *feed, const QString &oldURL); diff --git a/src/base/rss/rss_autodownloadrule.cpp b/src/base/rss/rss_autodownloadrule.cpp index 3a8265c23..77d342f91 100644 --- a/src/base/rss/rss_autodownloadrule.cpp +++ b/src/base/rss/rss_autodownloadrule.cpp @@ -184,14 +184,10 @@ QString computeEpisodeName(const QString &article) for (int i = 1; i <= match.lastCapturedIndex(); ++i) { const QString cap = match.captured(i); - if (cap.isEmpty()) continue; - bool isInt = false; - const int x = cap.toInt(&isInt); - - ret.append(isInt ? QString::number(x) : cap); + ret.append(cap); } return ret.join(u'x'); } @@ -293,20 +289,26 @@ bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString &articleTitl if (!matcher.hasMatch()) return false; - const QString season {matcher.captured(1)}; - const QStringList episodes {matcher.captured(2).split(u';')}; + const QStringView season {matcher.capturedView(1)}; + const QList episodes {matcher.capturedView(2).split(u';')}; const int seasonOurs {season.toInt()}; - for (QString episode : episodes) + for (QStringView episode : episodes) { if (episode.isEmpty()) continue; // We need to trim leading zeroes, but if it's all zeros then we want episode zero. while ((episode.size() > 1) && episode.startsWith(u'0')) - episode = episode.right(episode.size() - 1); + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + episode.slice(1); +#else + episode = episode.sliced(1); +#endif + } - if (episode.indexOf(u'-') != -1) + if (episode.contains(u'-')) { // Range detected const QString partialPattern1 {u"\\bs0?(\\d{1,4})[ -_\\.]?e(0?\\d{1,4})(?:\\D|\\b)"_s}; const QString partialPattern2 {u"\\b(\\d{1,4})x(0?\\d{1,4})(?:\\D|\\b)"_s}; @@ -323,24 +325,25 @@ bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString &articleTitl if (matched) { - const int seasonTheirs {matcher.captured(1).toInt()}; - const int episodeTheirs {matcher.captured(2).toInt()}; + const int seasonTheirs {matcher.capturedView(1).toInt()}; + const int episodeTheirs {matcher.capturedView(2).toInt()}; if (episode.endsWith(u'-')) { // Infinite range - const int episodeOurs {QStringView(episode).left(episode.size() - 1).toInt()}; + const int episodeOurs {QStringView(episode).chopped(1).toInt()}; if (((seasonTheirs == seasonOurs) && (episodeTheirs >= episodeOurs)) || (seasonTheirs > seasonOurs)) return true; } else { // Normal range - const QStringList range {episode.split(u'-')}; + const QList range {episode.split(u'-')}; Q_ASSERT(range.size() == 2); - if (range.first().toInt() > range.last().toInt()) - continue; // Ignore this subrule completely const int episodeOursFirst {range.first().toInt()}; const int episodeOursLast {range.last().toInt()}; + if (episodeOursFirst > episodeOursLast) + continue; // Ignore this subrule completely + if ((seasonTheirs == seasonOurs) && ((episodeOursFirst <= episodeTheirs) && (episodeOursLast >= episodeTheirs))) return true; } @@ -396,6 +399,8 @@ bool AutoDownloadRule::matchesSmartEpisodeFilter(const QString &articleTitle) co m_dataPtr->lastComputedEpisodes.append(episodeStr + u"-REPACK"); m_dataPtr->lastComputedEpisodes.append(episodeStr + u"-PROPER"); } + + return true; } m_dataPtr->lastComputedEpisodes.append(episodeStr); diff --git a/src/base/rss/rss_feed.cpp b/src/base/rss/rss_feed.cpp index ac3515308..2df5c2417 100644 --- a/src/base/rss/rss_feed.cpp +++ b/src/base/rss/rss_feed.cpp @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2024 Jonathan Ketchker - * Copyright (C) 2015-2022 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -39,8 +39,8 @@ #include #include #include +#include #include -#include #include "base/asyncfilestorage.h" #include "base/global.h" @@ -56,19 +56,22 @@ const QString KEY_UID = u"uid"_s; const QString KEY_URL = u"url"_s; +const QString KEY_REFRESHINTERVAL = u"refreshInterval"_s; const QString KEY_TITLE = u"title"_s; const QString KEY_LASTBUILDDATE = u"lastBuildDate"_s; const QString KEY_ISLOADING = u"isLoading"_s; const QString KEY_HASERROR = u"hasError"_s; const QString KEY_ARTICLES = u"articles"_s; +using namespace std::chrono_literals; using namespace RSS; -Feed::Feed(const QUuid &uid, const QString &url, const QString &path, Session *session) +Feed::Feed(Session *session, const QUuid &uid, const QString &url, const QString &path, const std::chrono::seconds refreshInterval) : Item(path) - , m_session(session) - , m_uid(uid) - , m_url(url) + , m_session {session} + , m_uid {uid} + , m_url {url} + , m_refreshInterval {refreshInterval} { const auto uidHex = QString::fromLatin1(m_uid.toRfc4122().toHex()); m_dataFileName = Path(uidHex + u".json"); @@ -301,7 +304,7 @@ void Feed::store() m_dirty = false; m_savingTimer.stop(); - QVector articlesData; + QList articlesData; articlesData.reserve(m_articles.size()); for (Article *article :asConst(m_articles)) @@ -327,9 +330,9 @@ bool Feed::addArticle(const QVariantHash &articleData) // Insertion sort const int maxArticles = m_session->maxArticlesPerFeed(); - const auto lowerBound = std::lower_bound(m_articlesByDate.begin(), m_articlesByDate.end() - , articleData.value(Article::KeyDate).toDateTime(), Article::articleDateRecentThan); - if ((lowerBound - m_articlesByDate.begin()) >= maxArticles) + const auto lowerBound = std::lower_bound(m_articlesByDate.cbegin(), m_articlesByDate.cend() + , articleData.value(Article::KeyDate).toDateTime(), Article::articleDateRecentThan); + if ((lowerBound - m_articlesByDate.cbegin()) >= maxArticles) return false; // we reach max articles auto *article = new Article(this, articleData); @@ -395,7 +398,7 @@ int Feed::updateArticles(const QList &loadedArticles) return 0; QDateTime dummyPubDate {QDateTime::currentDateTime()}; - QVector newArticles; + QList newArticles; newArticles.reserve(loadedArticles.size()); for (QVariantHash article : loadedArticles) { @@ -462,6 +465,20 @@ Path Feed::iconPath() const return m_iconPath; } +std::chrono::seconds Feed::refreshInterval() const +{ + return m_refreshInterval; +} + +void Feed::setRefreshInterval(const std::chrono::seconds refreshInterval) +{ + if (refreshInterval == m_refreshInterval) + return; + + const std::chrono::seconds oldRefreshInterval = std::exchange(m_refreshInterval, refreshInterval); + emit refreshIntervalChanged(oldRefreshInterval); +} + void Feed::setURL(const QString &url) { const QString oldURL = m_url; @@ -474,6 +491,8 @@ QJsonValue Feed::toJsonValue(const bool withData) const QJsonObject jsonObj; jsonObj.insert(KEY_UID, uid().toString()); jsonObj.insert(KEY_URL, url()); + if (refreshInterval() > 0s) + jsonObj.insert(KEY_REFRESHINTERVAL, static_cast(refreshInterval().count())); if (withData) { @@ -516,7 +535,7 @@ void Feed::handleArticleRead(Article *article) storeDeferred(); } -void Feed::handleArticleLoadFinished(QVector articles) +void Feed::handleArticleLoadFinished(QList articles) { Q_ASSERT(m_articles.isEmpty()); Q_ASSERT(m_unreadCount == 0); diff --git a/src/base/rss/rss_feed.h b/src/base/rss/rss_feed.h index 678ff39c1..639b8bda4 100644 --- a/src/base/rss/rss_feed.h +++ b/src/base/rss/rss_feed.h @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2024 Jonathan Ketchker - * Copyright (C) 2015-2022 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -31,6 +31,8 @@ #pragma once +#include + #include #include #include @@ -68,7 +70,7 @@ namespace RSS friend class Session; - Feed(const QUuid &uid, const QString &url, const QString &path, Session *session); + Feed(Session *session, const QUuid &uid, const QString &url, const QString &path, std::chrono::seconds refreshInterval); ~Feed() override; public: @@ -87,6 +89,9 @@ namespace RSS Article *articleByGUID(const QString &guid) const; Path iconPath() const; + std::chrono::seconds refreshInterval() const; + void setRefreshInterval(std::chrono::seconds refreshInterval); + QJsonValue toJsonValue(bool withData = false) const override; signals: @@ -94,6 +99,7 @@ namespace RSS void titleChanged(Feed *feed = nullptr); void stateChanged(Feed *feed = nullptr); void urlChanged(const QString &oldURL); + void refreshIntervalChanged(std::chrono::seconds oldRefreshInterval); private slots: void handleSessionProcessingEnabledChanged(bool enabled); @@ -102,7 +108,7 @@ namespace RSS void handleDownloadFinished(const Net::DownloadResult &result); void handleParsingFinished(const Private::ParsingResult &result); void handleArticleRead(Article *article); - void handleArticleLoadFinished(QVector articles); + void handleArticleLoadFinished(QList articles); private: void timerEvent(QTimerEvent *event) override; @@ -123,6 +129,7 @@ namespace RSS Private::FeedSerializer *m_serializer = nullptr; const QUuid m_uid; QString m_url; + std::chrono::seconds m_refreshInterval; QString m_title; QString m_lastBuildDate; bool m_hasError = false; diff --git a/src/base/rss/rss_item.cpp b/src/base/rss/rss_item.cpp index 6cbc0ba3f..19f340fa0 100644 --- a/src/base/rss/rss_item.cpp +++ b/src/base/rss/rss_item.cpp @@ -97,7 +97,7 @@ QStringList Item::expandPath(const QString &path) int index = 0; while ((index = path.indexOf(Item::PathSeparator, index)) >= 0) { - result << path.left(index); + result << path.first(index); ++index; } result << path; @@ -108,11 +108,11 @@ QStringList Item::expandPath(const QString &path) QString Item::parentPath(const QString &path) { const int pos = path.lastIndexOf(Item::PathSeparator); - return (pos >= 0) ? path.left(pos) : QString(); + return (pos >= 0) ? path.first(pos) : QString(); } QString Item::relativeName(const QString &path) { - int pos; - return ((pos = path.lastIndexOf(Item::PathSeparator)) >= 0 ? path.right(path.size() - (pos + 1)) : path); + const int pos = path.lastIndexOf(Item::PathSeparator); + return (pos >= 0) ? path.sliced(pos + 1) : path; } diff --git a/src/base/rss/rss_parser.cpp b/src/base/rss/rss_parser.cpp index 7c9acf4ca..d34212b40 100644 --- a/src/base/rss/rss_parser.cpp +++ b/src/base/rss/rss_parser.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -29,13 +29,11 @@ #include "rss_parser.h" -#include #include -#include #include -#include #include #include +#include #include #include #include @@ -359,7 +357,7 @@ namespace }; // Ported to Qt from KDElibs4 - QDateTime parseDate(const QString &string) + QDateTime parseDate(const QString &string, const QDateTime &fallbackDate) { const char16_t shortDay[][4] = { @@ -382,7 +380,7 @@ namespace const QString str = string.trimmed(); if (str.isEmpty()) - return QDateTime::currentDateTime(); + return fallbackDate; int nyear = 6; // indexes within string to values int nmonth = 4; @@ -402,14 +400,14 @@ namespace const bool h1 = (parts[3] == u"-"); const bool h2 = (parts[5] == u"-"); if (h1 != h2) - return QDateTime::currentDateTime(); + return fallbackDate; } else { // Check for the obsolete form "Wdy Mon DD HH:MM:SS YYYY" rx = QRegularExpression {u"^([A-Z][a-z]+)\\s+(\\S+)\\s+(\\d\\d)\\s+(\\d\\d):(\\d\\d):(\\d\\d)\\s+(\\d\\d\\d\\d)$"_s}; if (str.indexOf(rx, 0, &rxMatch) != 0) - return QDateTime::currentDateTime(); + return fallbackDate; nyear = 7; nmonth = 2; @@ -427,14 +425,14 @@ namespace 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(); + return fallbackDate; int second = 0; if (!parts[nsec].isEmpty()) { second = parts[nsec].toInt(&ok[0]); if (!ok[0]) - return QDateTime::currentDateTime(); + return fallbackDate; } const bool leapSecond = (second == 60); @@ -518,21 +516,21 @@ namespace const QDate qDate(year, month + 1, day); // convert date, and check for out-of-range if (!qDate.isValid()) - return QDateTime::currentDateTime(); + return fallbackDate; const QTime qTime(hour, minute, second); - QDateTime result(qDate, qTime, Qt::UTC); + QDateTime result(qDate, qTime, QTimeZone::UTC); if (offset) result = result.addSecs(-offset); if (!result.isValid()) - return QDateTime::currentDateTime(); // invalid date/time + return fallbackDate; // 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 fallbackDate; // the time isn't the last second of the day } return result; @@ -550,6 +548,7 @@ RSS::Private::Parser::Parser(const QString &lastBuildDate) void RSS::Private::Parser::parse(const QByteArray &feedData) { QXmlStreamReader xml {feedData}; + m_fallbackDate = QDateTime::currentDateTime(); XmlStreamEntityResolver resolver; xml.setEntityResolver(&resolver); bool foundChannel = false; @@ -641,7 +640,7 @@ void RSS::Private::Parser::parseRssArticle(QXmlStreamReader &xml) } else if (name == u"pubDate") { - article[Article::KeyDate] = parseDate(xml.readElementText().trimmed()); + article[Article::KeyDate] = parseDate(xml.readElementText().trimmed(), m_fallbackDate); } else if (name == u"author") { @@ -755,7 +754,7 @@ void RSS::Private::Parser::parseAtomArticle(QXmlStreamReader &xml) { // ATOM uses standard compliant date, don't do fancy stuff const QDateTime articleDate = QDateTime::fromString(xml.readElementText().trimmed(), Qt::ISODate); - article[Article::KeyDate] = (articleDate.isValid() ? articleDate : QDateTime::currentDateTime()); + article[Article::KeyDate] = (articleDate.isValid() ? articleDate : m_fallbackDate); } else if (name == u"author") { diff --git a/src/base/rss/rss_parser.h b/src/base/rss/rss_parser.h index 7abfeeb2e..1569049a1 100644 --- a/src/base/rss/rss_parser.h +++ b/src/base/rss/rss_parser.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ #pragma once +#include #include #include #include @@ -66,6 +67,7 @@ namespace RSS::Private void parseAtomChannel(QXmlStreamReader &xml); void addArticle(QVariantHash article); + QDateTime m_fallbackDate; QString m_baseUrl; ParsingResult m_result; QSet m_articleIDs; diff --git a/src/base/rss/rss_session.cpp b/src/base/rss/rss_session.cpp index 1aabc7ba3..53cf8b3f5 100644 --- a/src/base/rss/rss_session.cpp +++ b/src/base/rss/rss_session.cpp @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2017-2025 Vladimir Golovnev * Copyright (C) 2024 Jonathan Ketchker - * Copyright (C) 2017 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -56,6 +56,7 @@ const QString CONF_FOLDER_NAME = u"rss"_s; const QString DATA_FOLDER_NAME = u"rss/articles"_s; const QString FEEDS_FILE_NAME = u"feeds.json"_s; +using namespace std::chrono_literals; using namespace RSS; QPointer Session::m_instance = nullptr; @@ -90,15 +91,14 @@ Session::Session() m_itemsByPath.insert(u""_s, new Folder); // root folder + m_workingThread->setObjectName("RSS::Session m_workingThread"); m_workingThread->start(); load(); + m_refreshTimer.setSingleShot(true); connect(&m_refreshTimer, &QTimer::timeout, this, &Session::refresh); if (isProcessingEnabled()) - { - m_refreshTimer.start(std::chrono::minutes(refreshInterval())); refresh(); - } // Remove legacy/corrupted settings // (at least on Windows, QSettings is case-insensitive and it can get @@ -137,19 +137,20 @@ Session *Session::instance() return m_instance; } -nonstd::expected Session::addFolder(const QString &path) +nonstd::expected Session::addFolder(const QString &path) { const nonstd::expected result = prepareItemDest(path); if (!result) return result.get_unexpected(); auto *destFolder = result.value(); - addItem(new Folder(path), destFolder); + auto *folder = new Folder(path); + addItem(folder, destFolder); store(); - return {}; + return folder; } -nonstd::expected Session::addFeed(const QString &url, const QString &path) +nonstd::expected Session::addFeed(const QString &url, const QString &path, const std::chrono::seconds refreshInterval) { if (m_feedsByURL.contains(url)) return nonstd::make_unexpected(tr("RSS feed with given URL already exists: %1.").arg(url)); @@ -159,13 +160,13 @@ nonstd::expected Session::addFeed(const QString &url, const QStri return result.get_unexpected(); auto *destFolder = result.value(); - auto *feed = new Feed(generateUID(), url, path, this); + auto *feed = new Feed(this, generateUID(), url, path, refreshInterval); addItem(feed, destFolder); store(); if (isProcessingEnabled()) - feed->refresh(); + refreshFeed(feed, std::chrono::system_clock::now()); - return {}; + return feed; } nonstd::expected Session::setFeedURL(const QString &path, const QString &url) @@ -191,7 +192,7 @@ nonstd::expected Session::setFeedURL(Feed *feed, const QString &u feed->setURL(url); store(); if (isProcessingEnabled()) - feed->refresh(); + refreshFeed(feed, std::chrono::system_clock::now()); return {}; } @@ -213,14 +214,20 @@ nonstd::expected Session::moveItem(Item *item, const QString &des Q_ASSERT(item); Q_ASSERT(item != rootFolder()); + if (item->path() == destPath) + return {}; + + if (auto *folder = static_cast(item)) // if `item` is a `Folder` + { + if (destPath.startsWith(folder->path() + Item::PathSeparator)) + return nonstd::make_unexpected(tr("Can't move a folder into itself or its subfolders.")); + } + const nonstd::expected result = prepareItemDest(destPath); if (!result) return result.get_unexpected(); auto *destFolder = result.value(); - if (static_cast(destFolder) == item) - return nonstd::make_unexpected(tr("Couldn't move folder into itself.")); - auto *srcFolder = static_cast(m_itemsByPath.value(Item::parentPath(item->path()))); if (srcFolder != destFolder) { @@ -313,7 +320,7 @@ bool Session::loadFolder(const QJsonObject &jsonObj, Folder *folder) QString url = val.toString(); if (url.isEmpty()) url = key; - addFeedToFolder(generateUID(), url, key, folder); + addFeedToFolder(generateUID(), url, key, folder, 0s); updated = true; } else if (val.isObject()) @@ -353,7 +360,9 @@ bool Session::loadFolder(const QJsonObject &jsonObj, Folder *folder) updated = true; } - addFeedToFolder(uid, valObj[u"url"].toString(), key, folder); + const auto refreshInterval = std::chrono::seconds(valObj[u"refreshInterval"].toInteger()); + + addFeedToFolder(uid, valObj[u"url"].toString(), key, folder, refreshInterval); } else { @@ -384,8 +393,14 @@ void Session::loadLegacy() uint i = 0; for (QString legacyPath : legacyFeedPaths) { - if (Item::PathSeparator == legacyPath[0]) + if (legacyPath.startsWith(Item::PathSeparator)) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + legacyPath.slice(1); +#else legacyPath.remove(0, 1); +#endif + } const QString parentFolderPath = Item::parentPath(legacyPath); const QString feedUrl = Item::relativeName(legacyPath); @@ -403,7 +418,7 @@ void Session::loadLegacy() void Session::store() { m_confFileStorage->store(Path(FEEDS_FILE_NAME) - , QJsonDocument(rootFolder()->toJsonValue().toObject()).toJson()); + , QJsonDocument(rootFolder()->toJsonValue().toObject()).toJson()); } nonstd::expected Session::prepareItemDest(const QString &path) @@ -429,9 +444,9 @@ Folder *Session::addSubfolder(const QString &name, Folder *parentFolder) return folder; } -Feed *Session::addFeedToFolder(const QUuid &uid, const QString &url, const QString &name, Folder *parentFolder) +Feed *Session::addFeedToFolder(const QUuid &uid, const QString &url, const QString &name, Folder *parentFolder, const std::chrono::seconds refreshInterval) { - auto *feed = new Feed(uid, url, Item::joinPath(parentFolder->path(), name), this); + auto *feed = new Feed(this, uid, url, Item::joinPath(parentFolder->path(), name), refreshInterval); addItem(feed, parentFolder); return feed; } @@ -453,8 +468,25 @@ void Session::addItem(Item *item, Folder *destFolder) emit feedURLChanged(feed, oldURL); }); + connect(feed, &Feed::refreshIntervalChanged, this, [this, feed](const std::chrono::seconds oldRefreshInterval) + { + store(); + + std::chrono::system_clock::time_point &nextRefresh = m_refreshTimepoints[feed]; + if (nextRefresh > std::chrono::system_clock::time_point()) + nextRefresh += feed->refreshInterval() - oldRefreshInterval; + + if (isProcessingEnabled()) + { + const std::chrono::seconds oldEffectiveRefreshInterval = (oldRefreshInterval > 0s) + ? oldRefreshInterval : std::chrono::minutes(refreshInterval()); + if (feed->refreshInterval() < oldEffectiveRefreshInterval) + refresh(); + } + }); m_feedsByUID[feed->uid()] = feed; m_feedsByURL[feed->url()] = feed; + m_refreshTimepoints.emplace(feed, std::chrono::system_clock::time_point()); } connect(item, &Item::pathChanged, this, &Session::itemPathChanged); @@ -475,14 +507,9 @@ void Session::setProcessingEnabled(const bool enabled) { m_storeProcessingEnabled = enabled; if (enabled) - { - m_refreshTimer.start(std::chrono::minutes(refreshInterval())); refresh(); - } else - { m_refreshTimer.stop(); - } emit processingStateChanged(enabled); } @@ -553,6 +580,7 @@ void Session::handleItemAboutToBeDestroyed(Item *item) { m_feedsByUID.remove(feed->uid()); m_feedsByURL.remove(feed->url()); + m_refreshTimepoints.remove(feed); } } @@ -591,6 +619,28 @@ void Session::setMaxArticlesPerFeed(const int n) void Session::refresh() { - // NOTE: Should we allow manually refreshing for disabled session? - rootFolder()->refresh(); + const auto currentTimepoint = std::chrono::system_clock::now(); + std::chrono::seconds nextRefreshInterval = 0s; + for (auto it = m_refreshTimepoints.begin(); it != m_refreshTimepoints.end(); ++it) + { + Feed *feed = it.key(); + std::chrono::system_clock::time_point &timepoint = it.value(); + + if (timepoint <= currentTimepoint) + timepoint = refreshFeed(feed, currentTimepoint); + + const auto interval = std::chrono::duration_cast(timepoint - currentTimepoint); + if ((interval < nextRefreshInterval) || (nextRefreshInterval == 0s)) + nextRefreshInterval = interval; + } + + m_refreshTimer.start(nextRefreshInterval); +} + +std::chrono::system_clock::time_point Session::refreshFeed(Feed *feed, const std::chrono::system_clock::time_point ¤tTimepoint) +{ + feed->refresh(); + const std::chrono::seconds feedRefreshInterval = feed->refreshInterval(); + const std::chrono::seconds effectiveRefreshInterval = (feedRefreshInterval > 0s) ? feedRefreshInterval : std::chrono::minutes(refreshInterval()); + return currentTimepoint + effectiveRefreshInterval; } diff --git a/src/base/rss/rss_session.h b/src/base/rss/rss_session.h index 97241c56f..b8d2e28c4 100644 --- a/src/base/rss/rss_session.h +++ b/src/base/rss/rss_session.h @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2017-2025 Vladimir Golovnev * Copyright (C) 2024 Jonathan Ketchker - * Copyright (C) 2017 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -35,26 +35,20 @@ * RSS Session configuration file format (JSON): * * =============== BEGIN =============== - * - { - * "folder1": - { - * "subfolder1": - { - * "Feed name 1 (Alias)": - { + * { + * "folder1": { + * "subfolder1": { + * "Feed name 1 (Alias)": { * "uid": "feed unique identifier", * "url": "http://some-feed-url1" * } - * "Feed name 2 (Alias)": - { + * "Feed name 2 (Alias)": { * "uid": "feed unique identifier", * "url": "http://some-feed-url2" * } * }, * "subfolder2": {}, - * "Feed name 3 (Alias)": - { + * "Feed name 3 (Alias)": { * "uid": "feed unique identifier", * "url": "http://some-feed-url3" * } @@ -120,8 +114,8 @@ namespace RSS std::chrono::seconds fetchDelay() const; void setFetchDelay(std::chrono::seconds delay); - nonstd::expected addFolder(const QString &path); - nonstd::expected addFeed(const QString &url, const QString &path); + nonstd::expected addFolder(const QString &path); + nonstd::expected addFeed(const QString &url, const QString &path, std::chrono::seconds refreshInterval = {}); nonstd::expected setFeedURL(const QString &path, const QString &url); nonstd::expected setFeedURL(Feed *feed, const QString &url); nonstd::expected moveItem(const QString &itemPath, const QString &destPath); @@ -135,9 +129,6 @@ namespace RSS Folder *rootFolder() const; - public slots: - void refresh(); - signals: void processingStateChanged(bool enabled); void maxArticlesPerFeedChanged(int n); @@ -160,8 +151,10 @@ namespace RSS void store(); nonstd::expected prepareItemDest(const QString &path); Folder *addSubfolder(const QString &name, Folder *parentFolder); - Feed *addFeedToFolder(const QUuid &uid, const QString &url, const QString &name, Folder *parentFolder); + Feed *addFeedToFolder(const QUuid &uid, const QString &url, const QString &name, Folder *parentFolder, std::chrono::seconds refreshInterval); void addItem(Item *item, Folder *destFolder); + void refresh(); + std::chrono::system_clock::time_point refreshFeed(Feed *feed, const std::chrono::system_clock::time_point ¤tTimepoint); static QPointer m_instance; @@ -176,5 +169,6 @@ namespace RSS QHash m_itemsByPath; QHash m_feedsByUID; QHash m_feedsByURL; + QHash m_refreshTimepoints; }; } diff --git a/src/base/search/searchdownloadhandler.cpp b/src/base/search/searchdownloadhandler.cpp index 436637183..34289bf8c 100644 --- a/src/base/search/searchdownloadhandler.cpp +++ b/src/base/search/searchdownloadhandler.cpp @@ -41,7 +41,10 @@ SearchDownloadHandler::SearchDownloadHandler(const QString &pluginName, const QS , m_manager {manager} , m_downloadProcess {new QProcess(this)} { - m_downloadProcess->setEnvironment(QProcess::systemEnvironment()); + m_downloadProcess->setProcessEnvironment(m_manager->proxyEnvironment()); +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + m_downloadProcess->setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif connect(m_downloadProcess, qOverload(&QProcess::finished) , this, &SearchDownloadHandler::downloadProcessFinished); const QStringList params diff --git a/src/base/search/searchhandler.cpp b/src/base/search/searchhandler.cpp index b08a62fd4..114ddce5f 100644 --- a/src/base/search/searchhandler.cpp +++ b/src/base/search/searchhandler.cpp @@ -31,10 +31,10 @@ #include +#include #include #include #include -#include #include "base/global.h" #include "base/path.h" @@ -70,7 +70,11 @@ SearchHandler::SearchHandler(const QString &pattern, const QString &category, co , m_searchTimeout {new QTimer(this)} { // Load environment variables (proxy) - m_searchProcess->setEnvironment(QProcess::systemEnvironment()); + m_searchProcess->setProcessEnvironment(m_manager->proxyEnvironment()); + m_searchProcess->setProgram(Utils::ForeignApps::pythonInfo().executableName); +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + m_searchProcess->setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif const QStringList params { @@ -79,9 +83,6 @@ SearchHandler::SearchHandler(const QString &pattern, const QString &category, co m_usedPlugins.join(u','), m_category }; - - // Launch search - m_searchProcess->setProgram(Utils::ForeignApps::pythonInfo().executableName); m_searchProcess->setArguments(params + m_pattern.split(u' ')); connect(m_searchProcess, &QProcess::errorOccurred, this, &SearchHandler::processFailed); @@ -93,6 +94,7 @@ SearchHandler::SearchHandler(const QString &pattern, const QString &category, co connect(m_searchTimeout, &QTimer::timeout, this, &SearchHandler::cancelSearch); m_searchTimeout->start(3min); + // Launch search // deferred start allows clients to handle starting-related signals QMetaObject::invokeMethod(this, [this]() { m_searchProcess->start(QIODevice::ReadOnly); } , Qt::QueuedConnection); @@ -145,7 +147,7 @@ void SearchHandler::readSearchOutput() lines.prepend(m_searchResultLineTruncated + lines.takeFirst()); m_searchResultLineTruncated = lines.takeLast().trimmed(); - QVector searchResultList; + QList searchResultList; searchResultList.reserve(lines.size()); for (const QByteArray &line : asConst(lines)) diff --git a/src/base/search/searchhandler.h b/src/base/search/searchhandler.h index c765a9bfe..40cf58754 100644 --- a/src/base/search/searchhandler.h +++ b/src/base/search/searchhandler.h @@ -75,7 +75,7 @@ public: signals: void searchFinished(bool cancelled = false); void searchFailed(); - void newSearchResults(const QVector &results); + void newSearchResults(const QList &results); private: void readSearchOutput(); diff --git a/src/base/search/searchpluginmanager.cpp b/src/base/search/searchpluginmanager.cpp index 095e3d57a..c79ba5d60 100644 --- a/src/base/search/searchpluginmanager.cpp +++ b/src/base/search/searchpluginmanager.cpp @@ -88,6 +88,7 @@ QPointer SearchPluginManager::m_instance = nullptr; SearchPluginManager::SearchPluginManager() : m_updateUrl(u"https://searchplugins.qbittorrent.org/nova3/engines/"_s) + , m_proxyEnv {QProcessEnvironment::systemEnvironment()} { Q_ASSERT(!m_instance); // only one instance is allowed m_instance = this; @@ -359,7 +360,12 @@ SearchHandler *SearchPluginManager::startSearch(const QString &pattern, const QS // No search pattern entered Q_ASSERT(!pattern.isEmpty()); - return new SearchHandler {pattern, category, usedPlugins, this}; + return new SearchHandler(pattern, category, usedPlugins, this); +} + +QProcessEnvironment SearchPluginManager::proxyEnvironment() const +{ + return m_proxyEnv; } QString SearchPluginManager::categoryFullName(const QString &categoryName) @@ -367,14 +373,14 @@ QString SearchPluginManager::categoryFullName(const QString &categoryName) const QHash categoryTable { {u"all"_s, tr("All categories")}, - {u"movies"_s, tr("Movies")}, - {u"tv"_s, tr("TV shows")}, - {u"music"_s, tr("Music")}, - {u"games"_s, tr("Games")}, {u"anime"_s, tr("Anime")}, - {u"software"_s, tr("Software")}, + {u"books"_s, tr("Books")}, + {u"games"_s, tr("Games")}, + {u"movies"_s, tr("Movies")}, + {u"music"_s, tr("Music")}, {u"pictures"_s, tr("Pictures")}, - {u"books"_s, tr("Books")} + {u"software"_s, tr("Software")}, + {u"tv"_s, tr("TV shows")} }; return categoryTable.value(categoryName); } @@ -403,50 +409,70 @@ Path SearchPluginManager::engineLocation() void SearchPluginManager::applyProxySettings() { - const auto *proxyManager = Net::ProxyConfigurationManager::instance(); - const Net::ProxyConfiguration proxyConfig = proxyManager->proxyConfiguration(); + // for python `urllib`: https://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandler + const QString HTTP_PROXY = u"http_proxy"_s; + const QString HTTPS_PROXY = u"https_proxy"_s; + // for `helpers.setupSOCKSProxy()`: https://everything.curl.dev/usingcurl/proxies/socks.html + const QString SOCKS_PROXY = u"qbt_socks_proxy"_s; - // Define environment variables for urllib in search engine plugins - QString proxyStrHTTP, proxyStrSOCK; - if ((proxyConfig.type != Net::ProxyType::None) && Preferences::instance()->useProxyForGeneralPurposes()) + if (!Preferences::instance()->useProxyForGeneralPurposes()) { - switch (proxyConfig.type) - { - case Net::ProxyType::HTTP: - if (proxyConfig.authEnabled) - { - proxyStrHTTP = u"http://%1:%2@%3:%4"_s.arg(proxyConfig.username - , proxyConfig.password, proxyConfig.ip, QString::number(proxyConfig.port)); - } - else - { - proxyStrHTTP = u"http://%1:%2"_s.arg(proxyConfig.ip, QString::number(proxyConfig.port)); - } - break; - - case Net::ProxyType::SOCKS5: - if (proxyConfig.authEnabled) - { - proxyStrSOCK = u"%1:%2@%3:%4"_s.arg(proxyConfig.username - , proxyConfig.password, proxyConfig.ip, QString::number(proxyConfig.port)); - } - else - { - proxyStrSOCK = u"%1:%2"_s.arg(proxyConfig.ip, QString::number(proxyConfig.port)); - } - break; - - default: - qDebug("Disabling HTTP communications proxy"); - } - - qDebug("HTTP communications proxy string: %s" - , qUtf8Printable((proxyConfig.type == Net::ProxyType::SOCKS5) ? proxyStrSOCK : proxyStrHTTP)); + m_proxyEnv.remove(HTTP_PROXY); + m_proxyEnv.remove(HTTPS_PROXY); + m_proxyEnv.remove(SOCKS_PROXY); + return; } - qputenv("http_proxy", proxyStrHTTP.toLocal8Bit()); - qputenv("https_proxy", proxyStrHTTP.toLocal8Bit()); - qputenv("sock_proxy", proxyStrSOCK.toLocal8Bit()); + const Net::ProxyConfiguration proxyConfig = Net::ProxyConfigurationManager::instance()->proxyConfiguration(); + switch (proxyConfig.type) + { + case Net::ProxyType::None: + m_proxyEnv.remove(HTTP_PROXY); + m_proxyEnv.remove(HTTPS_PROXY); + m_proxyEnv.remove(SOCKS_PROXY); + break; + + case Net::ProxyType::HTTP: + { + const QString credential = proxyConfig.authEnabled + ? (proxyConfig.username + u':' + proxyConfig.password + u'@') + : QString(); + const QString proxyURL = u"http://%1%2:%3"_s + .arg(credential, proxyConfig.ip, QString::number(proxyConfig.port)); + + m_proxyEnv.insert(HTTP_PROXY, proxyURL); + m_proxyEnv.insert(HTTPS_PROXY, proxyURL); + m_proxyEnv.remove(SOCKS_PROXY); + } + break; + + case Net::ProxyType::SOCKS5: + { + const QString scheme = proxyConfig.hostnameLookupEnabled ? u"socks5h"_s : u"socks5"_s; + const QString credential = proxyConfig.authEnabled + ? (proxyConfig.username + u':' + proxyConfig.password + u'@') + : QString(); + const QString proxyURL = u"%1://%2%3:%4"_s + .arg(scheme, credential, proxyConfig.ip, QString::number(proxyConfig.port)); + + m_proxyEnv.remove(HTTP_PROXY); + m_proxyEnv.remove(HTTPS_PROXY); + m_proxyEnv.insert(SOCKS_PROXY, proxyURL); + } + break; + + case Net::ProxyType::SOCKS4: + { + const QString scheme = proxyConfig.hostnameLookupEnabled ? u"socks4a"_s : u"socks4"_s; + const QString proxyURL = u"%1://%2:%3"_s + .arg(scheme, proxyConfig.ip, QString::number(proxyConfig.port)); + + m_proxyEnv.remove(HTTP_PROXY); + m_proxyEnv.remove(HTTPS_PROXY); + m_proxyEnv.insert(SOCKS_PROXY, proxyURL); + } + break; + } } void SearchPluginManager::versionInfoDownloadFinished(const Net::DownloadResult &result) @@ -469,9 +495,9 @@ void SearchPluginManager::pluginDownloadFinished(const Net::DownloadResult &resu } else { - const QString url = result.url; - QString pluginName = url.mid(url.lastIndexOf(u'/') + 1); - pluginName.replace(u".py"_s, u""_s, Qt::CaseInsensitive); + const QString &url = result.url; + const QString pluginName = url.sliced(url.lastIndexOf(u'/') + 1) + .replace(u".py"_s, u""_s, Qt::CaseInsensitive); if (pluginInfo(pluginName)) emit pluginUpdateFailed(pluginName, tr("Failed to download the plugin file. %1").arg(result.errorString)); @@ -497,29 +523,32 @@ void SearchPluginManager::updateNova() packageFile2.close(); // Copy search plugin files (if necessary) - const auto updateFile = [&enginePath](const Path &filename, const bool compareVersion) + const auto updateFile = [&enginePath](const Path &filename) { const Path filePathBundled = Path(u":/searchengine/nova3"_s) / filename; const Path filePathDisk = enginePath / filename; - if (compareVersion && (getPluginVersion(filePathBundled) <= getPluginVersion(filePathDisk))) + if (getPluginVersion(filePathBundled) <= getPluginVersion(filePathDisk)) return; Utils::Fs::removeFile(filePathDisk); Utils::Fs::copyFile(filePathBundled, filePathDisk); }; - updateFile(Path(u"helpers.py"_s), true); - updateFile(Path(u"nova2.py"_s), true); - updateFile(Path(u"nova2dl.py"_s), true); - updateFile(Path(u"novaprinter.py"_s), true); - updateFile(Path(u"socks.py"_s), false); + updateFile(Path(u"helpers.py"_s)); + updateFile(Path(u"nova2.py"_s)); + updateFile(Path(u"nova2dl.py"_s)); + updateFile(Path(u"novaprinter.py"_s)); + updateFile(Path(u"socks.py"_s)); } void SearchPluginManager::update() { QProcess nova; - nova.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); + nova.setProcessEnvironment(proxyEnvironment()); +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + nova.setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif const QStringList params { @@ -592,14 +621,14 @@ void SearchPluginManager::parseVersionInfo(const QByteArray &info) QHash updateInfo; int numCorrectData = 0; - const QList lines = Utils::ByteArray::splitToViews(info, "\n", Qt::SkipEmptyParts); + const QList lines = Utils::ByteArray::splitToViews(info, "\n"); for (QByteArrayView line : lines) { line = line.trimmed(); if (line.isEmpty()) continue; if (line.startsWith('#')) continue; - const QList list = Utils::ByteArray::splitToViews(line, ":", Qt::SkipEmptyParts); + const QList list = Utils::ByteArray::splitToViews(line, ":"); if (list.size() != 2) continue; const auto pluginName = QString::fromUtf8(list.first().trimmed()); @@ -651,9 +680,10 @@ PluginVersion SearchPluginManager::getPluginVersion(const Path &filePath) while (!pluginFile.atEnd()) { const auto line = QString::fromUtf8(pluginFile.readLine(lineMaxLength)).remove(u' '); - if (!line.startsWith(u"#VERSION:", Qt::CaseInsensitive)) continue; + if (!line.startsWith(u"#VERSION:", Qt::CaseInsensitive)) + continue; - const QString versionStr = line.mid(9); + const QString versionStr = line.sliced(9); const auto version = PluginVersion::fromString(versionStr); if (version.isValid()) return version; diff --git a/src/base/search/searchpluginmanager.h b/src/base/search/searchpluginmanager.h index 72cf0f146..60c4f105c 100644 --- a/src/base/search/searchpluginmanager.h +++ b/src/base/search/searchpluginmanager.h @@ -32,6 +32,7 @@ #include #include #include +#include #include "base/path.h" #include "base/utils/version.h" @@ -87,6 +88,8 @@ public: SearchHandler *startSearch(const QString &pattern, const QString &category, const QStringList &usedPlugins); SearchDownloadHandler *downloadTorrent(const QString &pluginName, const QString &url); + QProcessEnvironment proxyEnvironment() const; + static PluginVersion getPluginVersion(const Path &filePath); static QString categoryFullName(const QString &categoryName); QString pluginFullName(const QString &pluginName) const; @@ -122,4 +125,5 @@ private: const QString m_updateUrl; QHash m_plugins; + QProcessEnvironment m_proxyEnv; }; diff --git a/src/base/settingsstorage.cpp b/src/base/settingsstorage.cpp index 9f19f0891..c6006beb7 100644 --- a/src/base/settingsstorage.cpp +++ b/src/base/settingsstorage.cpp @@ -170,7 +170,7 @@ bool SettingsStorage::writeNativeSettings() const // between deleting the file and recreating it. This is a safety measure. // Write everything to qBittorrent_new.ini/qBittorrent_new.conf and if it succeeds // replace qBittorrent.ini/qBittorrent.conf with it. - for (auto i = m_data.begin(); i != m_data.end(); ++i) + for (auto i = m_data.cbegin(); i != m_data.cend(); ++i) nativeSettings->setValue(i.key(), i.value()); nativeSettings->sync(); // Important to get error status diff --git a/src/base/torrentfileswatcher.cpp b/src/base/torrentfileswatcher.cpp index 91f7ef7e7..5fa224d05 100644 --- a/src/base/torrentfileswatcher.cpp +++ b/src/base/torrentfileswatcher.cpp @@ -146,6 +146,7 @@ TorrentFilesWatcher::TorrentFilesWatcher(QObject *parent) m_asyncWorker->moveToThread(m_ioThread.get()); connect(m_ioThread.get(), &QThread::finished, m_asyncWorker, &QObject::deleteLater); + m_ioThread->setObjectName("TorrentFilesWatcher m_ioThread"); m_ioThread->start(); load(); diff --git a/src/base/torrentfileswatcher.h b/src/base/torrentfileswatcher.h index e26196086..9b2361575 100644 --- a/src/base/torrentfileswatcher.h +++ b/src/base/torrentfileswatcher.h @@ -36,8 +36,6 @@ #include "base/path.h" #include "base/utils/thread.h" -class QThread; - /* * Watches the configured directories for new .torrent files in order * to add torrents to BitTorrent session. Supports Network File System diff --git a/src/base/torrentfilter.cpp b/src/base/torrentfilter.cpp index 7ad8cf112..e1a6243b1 100644 --- a/src/base/torrentfilter.cpp +++ b/src/base/torrentfilter.cpp @@ -52,19 +52,21 @@ const TorrentFilter TorrentFilter::ErroredTorrent(TorrentFilter::Errored); using BitTorrent::Torrent; TorrentFilter::TorrentFilter(const Type type, const std::optional &idSet - , const std::optional &category, const std::optional &tag) + , const std::optional &category, const std::optional &tag, const std::optional isPrivate) : m_type {type} , m_category {category} , m_tag {tag} , m_idSet {idSet} + , m_private {isPrivate} { } TorrentFilter::TorrentFilter(const QString &filter, const std::optional &idSet - , const std::optional &category, const std::optional &tag) + , const std::optional &category, const std::optional &tag, const std::optional isPrivate) : m_category {category} , m_tag {tag} , m_idSet {idSet} + , m_private {isPrivate} { setTypeByName(filter); } @@ -147,11 +149,22 @@ bool TorrentFilter::setTag(const std::optional &tag) return false; } +bool TorrentFilter::setPrivate(const std::optional isPrivate) +{ + if (m_private != isPrivate) + { + m_private = isPrivate; + return true; + } + + return false; +} + bool TorrentFilter::match(const Torrent *const torrent) const { if (!torrent) return false; - return (matchState(torrent) && matchHash(torrent) && matchCategory(torrent) && matchTag(torrent)); + return (matchState(torrent) && matchHash(torrent) && matchCategory(torrent) && matchTag(torrent) && matchPrivate(torrent)); } bool TorrentFilter::matchState(const BitTorrent::Torrent *const torrent) const @@ -192,9 +205,11 @@ bool TorrentFilter::matchState(const BitTorrent::Torrent *const torrent) const case Errored: return torrent->isErrored(); default: - Q_ASSERT(false); - return false; + Q_UNREACHABLE(); + break; } + + return false; } bool TorrentFilter::matchHash(const BitTorrent::Torrent *const torrent) const @@ -224,3 +239,11 @@ bool TorrentFilter::matchTag(const BitTorrent::Torrent *const torrent) const return torrent->hasTag(*m_tag); } + +bool TorrentFilter::matchPrivate(const BitTorrent::Torrent *const torrent) const +{ + if (!m_private) + return true; + + return m_private == torrent->isPrivate(); +} diff --git a/src/base/torrentfilter.h b/src/base/torrentfilter.h index 19092fb8e..39fd3e06f 100644 --- a/src/base/torrentfilter.h +++ b/src/base/torrentfilter.h @@ -87,16 +87,24 @@ public: TorrentFilter() = default; // category & tags: pass empty string for uncategorized / untagged torrents. - TorrentFilter(Type type, const std::optional &idSet = AnyID - , const std::optional &category = AnyCategory, const std::optional &tag = AnyTag); - TorrentFilter(const QString &filter, const std::optional &idSet = AnyID - , const std::optional &category = AnyCategory, const std::optional &tags = AnyTag); + TorrentFilter(Type type + , const std::optional &idSet = AnyID + , const std::optional &category = AnyCategory + , const std::optional &tag = AnyTag + , std::optional isPrivate = {}); + TorrentFilter(const QString &filter + , const std::optional &idSet = AnyID + , const std::optional &category = AnyCategory + , const std::optional &tags = AnyTag + , std::optional isPrivate = {}); + bool setType(Type type); bool setTypeByName(const QString &filter); bool setTorrentIDSet(const std::optional &idSet); bool setCategory(const std::optional &category); bool setTag(const std::optional &tag); + bool setPrivate(std::optional isPrivate); bool match(const BitTorrent::Torrent *torrent) const; @@ -105,9 +113,11 @@ private: bool matchHash(const BitTorrent::Torrent *torrent) const; bool matchCategory(const BitTorrent::Torrent *torrent) const; bool matchTag(const BitTorrent::Torrent *torrent) const; + bool matchPrivate(const BitTorrent::Torrent *torrent) const; Type m_type {All}; std::optional m_category; std::optional m_tag; std::optional m_idSet; + std::optional m_private; }; diff --git a/src/base/utils/bytearray.cpp b/src/base/utils/bytearray.cpp index cae871f38..81e0a2627 100644 --- a/src/base/utils/bytearray.cpp +++ b/src/base/utils/bytearray.cpp @@ -30,28 +30,30 @@ #include "bytearray.h" #include +#include #include #include -QList Utils::ByteArray::splitToViews(const QByteArrayView in, const QByteArrayView sep, const Qt::SplitBehavior behavior) +QList Utils::ByteArray::splitToViews(const QByteArrayView in, const QByteArrayView sep) { + if (in.isEmpty()) + return {}; if (sep.isEmpty()) return {in}; + const QByteArrayMatcher matcher {sep}; QList ret; - ret.reserve((behavior == Qt::KeepEmptyParts) - ? (1 + (in.size() / sep.size())) - : (1 + (in.size() / (sep.size() + 1)))); - int head = 0; + ret.reserve(1 + (in.size() / (sep.size() + 1))); + qsizetype head = 0; while (head < in.size()) { - int end = in.indexOf(sep, head); + qsizetype end = matcher.indexIn(in, head); if (end < 0) end = in.size(); // omit empty parts - const QByteArrayView part = in.mid(head, (end - head)); - if (!part.isEmpty() || (behavior == Qt::KeepEmptyParts)) + const QByteArrayView part = in.sliced(head, (end - head)); + if (!part.isEmpty()) ret += part; head = end + sep.size(); diff --git a/src/base/utils/bytearray.h b/src/base/utils/bytearray.h index d0930dede..0f0d38fe7 100644 --- a/src/base/utils/bytearray.h +++ b/src/base/utils/bytearray.h @@ -37,8 +37,8 @@ class QByteArrayView; namespace Utils::ByteArray { - // Mimic QStringView(in).split(sep, behavior) - QList splitToViews(QByteArrayView in, QByteArrayView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts); + // Inspired by QStringView(in).split(sep, Qt::SkipEmptyParts) + QList splitToViews(QByteArrayView in, QByteArrayView sep); QByteArray asQByteArray(QByteArrayView view); QByteArray toBase32(const QByteArray &in); diff --git a/src/base/utils/compare.cpp b/src/base/utils/compare.cpp index aca03e1a6..15d438b2d 100644 --- a/src/base/utils/compare.cpp +++ b/src/base/utils/compare.cpp @@ -64,7 +64,7 @@ int Utils::Compare::naturalCompare(const QString &left, const QString &right, co const int start = pos; while ((pos < str.size()) && str[pos].isDigit()) ++pos; - return str.mid(start, (pos - start)); + return str.sliced(start, (pos - start)); }; const QStringView numViewL = numberView(left, posL); diff --git a/src/base/utils/foreignapps.cpp b/src/base/utils/foreignapps.cpp index 8048688c6..038d5128f 100644 --- a/src/base/utils/foreignapps.cpp +++ b/src/base/utils/foreignapps.cpp @@ -57,6 +57,9 @@ namespace info = {}; QProcess proc; +#if defined(Q_OS_UNIX) && (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)) + proc.setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif proc.start(exeName, {u"--version"_s}, QIODevice::ReadOnly); if (proc.waitForFinished() && (proc.exitCode() == QProcess::NormalExit)) { @@ -68,7 +71,7 @@ namespace // Software 'Anaconda' installs its own python interpreter // and `python --version` returns a string like this: // "Python 3.4.3 :: Anaconda 2.3.0 (64-bit)" - const QList outputSplit = Utils::ByteArray::splitToViews(procOutput, " ", Qt::SkipEmptyParts); + const QList outputSplit = Utils::ByteArray::splitToViews(procOutput, " "); if (outputSplit.size() <= 1) return false; @@ -252,7 +255,7 @@ bool Utils::ForeignApps::PythonInfo::isValid() const bool Utils::ForeignApps::PythonInfo::isSupportedVersion() const { - return (version >= Version {3, 7, 0}); + return (version >= Version {3, 9, 0}); } PythonInfo Utils::ForeignApps::pythonInfo() diff --git a/src/base/utils/fs.cpp b/src/base/utils/fs.cpp index 4d89f49a0..4dd02e3de 100644 --- a/src/base/utils/fs.cpp +++ b/src/base/utils/fs.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -29,8 +29,6 @@ #include "fs.h" -#include -#include #include #if defined(Q_OS_WIN) @@ -52,6 +50,7 @@ #include #endif +#include #include #include #include @@ -61,7 +60,6 @@ #include #include -#include "base/global.h" #include "base/path.h" /** @@ -311,20 +309,42 @@ bool Utils::Fs::renameFile(const Path &from, const Path &to) * * This function will try to fix the file permissions before removing it. */ -bool Utils::Fs::removeFile(const Path &path) +nonstd::expected Utils::Fs::removeFile(const Path &path) { - if (QFile::remove(path.data())) - return true; - QFile file {path.data()}; + if (file.remove()) + return {}; + if (!file.exists()) - return true; + return {}; // Make sure we have read/write permissions file.setPermissions(file.permissions() | QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::WriteUser); - return file.remove(); + if (file.remove()) + return {}; + + return nonstd::make_unexpected(file.errorString()); } +nonstd::expected Utils::Fs::moveFileToTrash(const Path &path) +{ + QFile file {path.data()}; + if (file.moveToTrash()) + return {}; + + if (!file.exists()) + return {}; + + // Make sure we have read/write permissions + file.setPermissions(file.permissions() | QFile::ReadOwner | QFile::WriteOwner | QFile::ReadUser | QFile::WriteUser); + if (file.moveToTrash()) + return {}; + + const QString errorMessage = file.errorString(); + return nonstd::make_unexpected(!errorMessage.isEmpty() ? errorMessage : QCoreApplication::translate("fs", "Unknown error")); +} + + bool Utils::Fs::isReadable(const Path &path) { return QFileInfo(path.data()).isReadable(); diff --git a/src/base/utils/fs.h b/src/base/utils/fs.h index 3dccb1d2d..eced8b072 100644 --- a/src/base/utils/fs.h +++ b/src/base/utils/fs.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -35,6 +35,7 @@ #include +#include "base/3rdparty/expected.hpp" #include "base/global.h" #include "base/pathfwd.h" @@ -60,7 +61,8 @@ namespace Utils::Fs bool copyFile(const Path &from, const Path &to); bool renameFile(const Path &from, const Path &to); - bool removeFile(const Path &path); + nonstd::expected removeFile(const Path &path); + nonstd::expected moveFileToTrash(const Path &path); bool mkdir(const Path &dirPath); bool mkpath(const Path &dirPath); bool rmdir(const Path &dirPath); diff --git a/src/base/utils/misc.cpp b/src/base/utils/misc.cpp index 8d6e87765..27d305452 100644 --- a/src/base/utils/misc.cpp +++ b/src/base/utils/misc.cpp @@ -47,6 +47,7 @@ #include #include +#include "base/net/downloadmanager.h" #include "base/path.h" #include "base/unicodestrings.h" #include "base/utils/string.h" @@ -212,6 +213,14 @@ bool Utils::Misc::isPreviewable(const Path &filePath) return multimediaExtensions.contains(filePath.extension().toUpper()); } +bool Utils::Misc::isTorrentLink(const QString &str) +{ + return str.startsWith(u"magnet:", Qt::CaseInsensitive) + || str.endsWith(TORRENT_FILE_EXTENSION, Qt::CaseInsensitive) + || (!str.startsWith(u"file:", Qt::CaseInsensitive) + && Net::DownloadManager::hasSupportedScheme(str)); +} + QString Utils::Misc::userFriendlyDuration(const qlonglong seconds, const qlonglong maxCap, const TimeResolution resolution) { if (seconds < 0) diff --git a/src/base/utils/misc.h b/src/base/utils/misc.h index d477c3d58..7a1f7b6a9 100644 --- a/src/base/utils/misc.h +++ b/src/base/utils/misc.h @@ -78,6 +78,7 @@ namespace Utils::Misc qint64 sizeInBytes(qreal size, SizeUnit unit); bool isPreviewable(const Path &filePath); + bool isTorrentLink(const QString &str); // Take a number of seconds and return a user-friendly // time duration like "1d 2h 10m". diff --git a/src/base/utils/net.cpp b/src/base/utils/net.cpp index da570090f..40247e38c 100644 --- a/src/base/utils/net.cpp +++ b/src/base/utils/net.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include "base/global.h" @@ -55,14 +54,7 @@ namespace Utils return subnet; } - bool isLoopbackAddress(const QHostAddress &addr) - { - return (addr == QHostAddress::LocalHost) - || (addr == QHostAddress::LocalHostIPv6) - || (addr == QHostAddress(u"::ffff:127.0.0.1"_s)); - } - - bool isIPInSubnets(const QHostAddress &addr, const QVector &subnets) + bool isIPInSubnets(const QHostAddress &addr, const QList &subnets) { QHostAddress protocolEquivalentAddress; bool addrConversionOk = false; diff --git a/src/base/utils/net.h b/src/base/utils/net.h index 54b585317..6e6e271f7 100644 --- a/src/base/utils/net.h +++ b/src/base/utils/net.h @@ -45,8 +45,7 @@ namespace Utils::Net bool isValidIP(const QString &ip); std::optional parseSubnet(const QString &subnetStr); - bool isLoopbackAddress(const QHostAddress &addr); - bool isIPInSubnets(const QHostAddress &addr, const QVector &subnets); + bool isIPInSubnets(const QHostAddress &addr, const QList &subnets); QString subnetToString(const Subnet &subnet); QHostAddress canonicalIPv6Addr(const QHostAddress &addr); diff --git a/src/base/utils/os.cpp b/src/base/utils/os.cpp index 8bfd7d07e..c946cb698 100644 --- a/src/base/utils/os.cpp +++ b/src/base/utils/os.cpp @@ -31,6 +31,8 @@ #include "os.h" #ifdef Q_OS_WIN +#include + #include #include #include @@ -42,6 +44,8 @@ #include #endif // Q_OS_MACOS +#include + #ifdef QBT_USES_DBUS #include #endif // QBT_USES_DBUS @@ -271,6 +275,11 @@ Path Utils::OS::windowsSystemPath() #if defined(Q_OS_MACOS) || defined(Q_OS_WIN) bool Utils::OS::applyMarkOfTheWeb(const Path &file, const QString &url) { + // Trying to apply this to a non-existent file is unacceptable, + // as it may unexpectedly create such a file. + if (!file.exists()) + return false; + Q_ASSERT(url.isEmpty() || url.startsWith(u"http:") || url.startsWith(u"https:")); #ifdef Q_OS_MACOS @@ -278,34 +287,53 @@ bool Utils::OS::applyMarkOfTheWeb(const Path &file, const QString &url) // https://searchfox.org/mozilla-central/rev/ffdc4971dc18e1141cb2a90c2b0b776365650270/xpcom/io/CocoaFileUtils.mm#230 // https://github.com/transmission/transmission/blob/f62f7427edb1fd5c430e0ef6956bbaa4f03ae597/macosx/Torrent.mm#L1945-L1955 + const CFStringRef fileString = file.toString().toCFString(); + [[maybe_unused]] const auto fileStringGuard = qScopeGuard([&fileString] { ::CFRelease(fileString); }); + const CFURLRef fileURL = ::CFURLCreateWithFileSystemPath(kCFAllocatorDefault + , fileString, kCFURLPOSIXPathStyle, false); + [[maybe_unused]] const auto fileURLGuard = qScopeGuard([&fileURL] { ::CFRelease(fileURL); }); + + if (CFDictionaryRef currentProperties = nullptr; + ::CFURLCopyResourcePropertyForKey(fileURL, kCFURLQuarantinePropertiesKey, ¤tProperties, NULL) + && currentProperties) + { + [[maybe_unused]] const auto currentPropertiesGuard = qScopeGuard([¤tProperties] { ::CFRelease(currentProperties); }); + + if (CFStringRef quarantineType = nullptr; + ::CFDictionaryGetValueIfPresent(currentProperties, kLSQuarantineTypeKey, reinterpret_cast(&quarantineType)) + && quarantineType) + { + if (::CFStringCompare(quarantineType, kLSQuarantineTypeOtherDownload, 0) == kCFCompareEqualTo) + return true; + } + } + CFMutableDictionaryRef properties = ::CFDictionaryCreateMutable(kCFAllocatorDefault, 0 , &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - if (properties == NULL) + if (!properties) return false; + [[maybe_unused]] const auto propertiesGuard = qScopeGuard([&properties] { ::CFRelease(properties); }); ::CFDictionarySetValue(properties, kLSQuarantineTypeKey, kLSQuarantineTypeOtherDownload); if (!url.isEmpty()) - ::CFDictionarySetValue(properties, kLSQuarantineDataURLKey, url.toCFString()); - - const CFStringRef fileString = file.toString().toCFString(); - const CFURLRef fileURL = ::CFURLCreateWithFileSystemPath(kCFAllocatorDefault - , fileString, kCFURLPOSIXPathStyle, false); + { + const CFStringRef urlCFString = url.toCFString(); + [[maybe_unused]] const auto urlStringGuard = qScopeGuard([&urlCFString] { ::CFRelease(urlCFString); }); + ::CFDictionarySetValue(properties, kLSQuarantineDataURLKey, urlCFString); + } const Boolean success = ::CFURLSetResourcePropertyForKey(fileURL, kCFURLQuarantinePropertiesKey , properties, NULL); - - ::CFRelease(fileURL); - ::CFRelease(fileString); - ::CFRelease(properties); - return success; #elif defined(Q_OS_WIN) const QString zoneIDStream = file.toString() + u":Zone.Identifier"; - HANDLE handle = ::CreateFileW(zoneIDStream.toStdWString().c_str(), GENERIC_WRITE + + HANDLE handle = ::CreateFileW(zoneIDStream.toStdWString().c_str(), (GENERIC_READ | GENERIC_WRITE) , (FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE) , nullptr, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr); if (handle == INVALID_HANDLE_VALUE) return false; + [[maybe_unused]] const auto handleGuard = qScopeGuard([&handle] { ::CloseHandle(handle); }); // 5.6.1 Zone.Identifier Stream Name // https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/6e3f7352-d11c-4d76-8c39-2516a9df36e8 @@ -313,10 +341,27 @@ bool Utils::OS::applyMarkOfTheWeb(const Path &file, const QString &url) const QByteArray zoneID = QByteArrayLiteral("[ZoneTransfer]\r\nZoneId=3\r\n") + u"HostUrl=%1\r\n"_s.arg(hostURL).toUtf8(); + if (LARGE_INTEGER streamSize = {0}; + ::GetFileSizeEx(handle, &streamSize) && (streamSize.QuadPart > 0)) + { + const DWORD expectedReadSize = std::min(streamSize.QuadPart, 1024); + QByteArray buf {expectedReadSize, '\0'}; + + if (DWORD actualReadSize = 0; + ::ReadFile(handle, buf.data(), expectedReadSize, &actualReadSize, nullptr) && (actualReadSize == expectedReadSize)) + { + if (buf.startsWith("[ZoneTransfer]\r\n") && buf.contains("\r\nZoneId=3\r\n") && buf.contains("\r\nHostUrl=")) + return true; + } + } + + if (!::SetFilePointerEx(handle, {0}, nullptr, FILE_BEGIN)) + return false; + if (!::SetEndOfFile(handle)) + return false; + DWORD written = 0; const BOOL writeResult = ::WriteFile(handle, zoneID.constData(), zoneID.size(), &written, nullptr); - ::CloseHandle(handle); - return writeResult && (written == zoneID.size()); #endif } diff --git a/src/base/utils/password.cpp b/src/base/utils/password.cpp index bec752530..fd3ffdfee 100644 --- a/src/base/utils/password.cpp +++ b/src/base/utils/password.cpp @@ -34,8 +34,8 @@ #include #include +#include #include -#include #include "base/global.h" #include "bytearray.h" @@ -115,7 +115,7 @@ bool Utils::Password::PBKDF2::verify(const QByteArray &secret, const QString &pa bool Utils::Password::PBKDF2::verify(const QByteArray &secret, const QByteArray &password) { - const QList list = ByteArray::splitToViews(secret, ":", Qt::SkipEmptyParts); + const QList list = ByteArray::splitToViews(secret, ":"); if (list.size() != 2) return false; diff --git a/src/base/utils/random.cpp b/src/base/utils/random.cpp index 99343f0e1..57f84c753 100644 --- a/src/base/utils/random.cpp +++ b/src/base/utils/random.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2017 Mike Tzou + * Copyright (C) 2017-2024 Mike Tzou (Chocobo1) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -32,107 +32,14 @@ #include -#ifdef Q_OS_WIN -#include -#include -#else // Q_OS_WIN -#include -#include -#include +#if defined(Q_OS_LINUX) +#include "randomlayer_linux.cpp" +#elif defined(Q_OS_WIN) +#include "randomlayer_win.cpp" +#else +#include "randomlayer_other.cpp" #endif -#include - -#include "base/global.h" - -#ifdef Q_OS_WIN -#include "base/utils/os.h" -#endif - -namespace -{ -#ifdef Q_OS_WIN - class RandomLayer - { - // need to satisfy UniformRandomBitGenerator requirements - public: - using result_type = uint32_t; - - RandomLayer() - : m_rtlGenRandom {Utils::OS::loadWinAPI(u"Advapi32.dll"_s, "SystemFunction036")} - { - if (!m_rtlGenRandom) - qFatal("Failed to load RtlGenRandom()"); - } - - static constexpr result_type min() - { - return std::numeric_limits::min(); - } - - static constexpr result_type max() - { - return std::numeric_limits::max(); - } - - result_type operator()() - { - result_type buf = 0; - const bool result = m_rtlGenRandom(&buf, sizeof(buf)); - if (!result) - qFatal("RtlGenRandom() failed"); - - return buf; - } - - private: - using PRTLGENRANDOM = BOOLEAN (WINAPI *)(PVOID, ULONG); - const PRTLGENRANDOM m_rtlGenRandom; - }; -#else // Q_OS_WIN - class RandomLayer - { - // need to satisfy UniformRandomBitGenerator requirements - public: - using result_type = uint32_t; - - RandomLayer() - : m_randDev {fopen("/dev/urandom", "rb")} - { - if (!m_randDev) - qFatal("Failed to open /dev/urandom. Reason: %s. Error code: %d.\n", std::strerror(errno), errno); - } - - ~RandomLayer() - { - fclose(m_randDev); - } - - static constexpr result_type min() - { - return std::numeric_limits::min(); - } - - static constexpr result_type max() - { - return std::numeric_limits::max(); - } - - result_type operator()() const - { - result_type buf = 0; - if (fread(&buf, sizeof(buf), 1, m_randDev) != 1) - qFatal("Read /dev/urandom error. Reason: %s. Error code: %d.\n", std::strerror(errno), errno); - - return buf; - } - - private: - FILE *m_randDev = nullptr; - }; -#endif -} - uint32_t Utils::Random::rand(const uint32_t min, const uint32_t max) { static RandomLayer layer; diff --git a/src/base/utils/random.h b/src/base/utils/random.h index bf004660d..b177933a0 100644 --- a/src/base/utils/random.h +++ b/src/base/utils/random.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2017 Mike Tzou + * Copyright (C) 2017-2024 Mike Tzou (Chocobo1) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff --git a/src/base/utils/randomlayer_linux.cpp b/src/base/utils/randomlayer_linux.cpp new file mode 100644 index 000000000..29b24631c --- /dev/null +++ b/src/base/utils/randomlayer_linux.cpp @@ -0,0 +1,77 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Mike Tzou (Chocobo1) + * + * 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 + +namespace +{ + class RandomLayer + { + // need to satisfy UniformRandomBitGenerator requirements + public: + using result_type = uint32_t; + + RandomLayer() + { + } + + static constexpr result_type min() + { + return std::numeric_limits::min(); + } + + static constexpr result_type max() + { + return std::numeric_limits::max(); + } + + result_type operator()() + { + const int RETRY_MAX = 3; + + for (int i = 0; i < RETRY_MAX; ++i) + { + result_type buf = 0; + const ssize_t result = ::getrandom(&buf, sizeof(buf), 0); + if (result == sizeof(buf)) // success + return buf; + + if (result < 0) + qFatal("getrandom() error. Reason: %s. Error code: %d.", std::strerror(errno), errno); + } + + qFatal("getrandom() failed. Reason: too many retries."); + } + }; +} diff --git a/src/base/utils/randomlayer_other.cpp b/src/base/utils/randomlayer_other.cpp new file mode 100644 index 000000000..fa7e61f38 --- /dev/null +++ b/src/base/utils/randomlayer_other.cpp @@ -0,0 +1,79 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Mike Tzou (Chocobo1) + * + * 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 + +namespace +{ + class RandomLayer + { + // need to satisfy UniformRandomBitGenerator requirements + public: + using result_type = uint32_t; + + RandomLayer() + : m_randDev {fopen("/dev/urandom", "rb")} + { + if (!m_randDev) + qFatal("Failed to open /dev/urandom. Reason: %s. Error code: %d.", std::strerror(errno), errno); + } + + ~RandomLayer() + { + fclose(m_randDev); + } + + static constexpr result_type min() + { + return std::numeric_limits::min(); + } + + static constexpr result_type max() + { + return std::numeric_limits::max(); + } + + result_type operator()() const + { + result_type buf = 0; + if (fread(&buf, sizeof(buf), 1, m_randDev) != 1) + qFatal("Read /dev/urandom error. Reason: %s. Error code: %d.", std::strerror(errno), errno); + + return buf; + } + + private: + FILE *m_randDev = nullptr; + }; +} diff --git a/src/base/utils/randomlayer_win.cpp b/src/base/utils/randomlayer_win.cpp new file mode 100644 index 000000000..916ed6acf --- /dev/null +++ b/src/base/utils/randomlayer_win.cpp @@ -0,0 +1,77 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Mike Tzou (Chocobo1) + * + * 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 "base/global.h" +#include "base/utils/os.h" + +namespace +{ + class RandomLayer + { + // need to satisfy UniformRandomBitGenerator requirements + public: + using result_type = uint32_t; + + RandomLayer() + : m_processPrng {Utils::OS::loadWinAPI(u"BCryptPrimitives.dll"_s, "ProcessPrng")} + { + if (!m_processPrng) + qFatal("Failed to load ProcessPrng()."); + } + + static constexpr result_type min() + { + return std::numeric_limits::min(); + } + + static constexpr result_type max() + { + return std::numeric_limits::max(); + } + + result_type operator()() + { + result_type buf = 0; + const bool result = m_processPrng(reinterpret_cast(&buf), sizeof(buf)); + if (!result) + qFatal("ProcessPrng() failed."); + + return buf; + } + + private: + using PPROCESSPRNG = BOOL (WINAPI *)(PBYTE, SIZE_T); + const PPROCESSPRNG m_processPrng = nullptr; + }; +} diff --git a/src/base/utils/string.cpp b/src/base/utils/string.cpp index 0c6491438..f3fc4d87e 100644 --- a/src/base/utils/string.cpp +++ b/src/base/utils/string.cpp @@ -31,10 +31,10 @@ #include +#include #include #include #include -#include // to send numbers instead of strings with suffixes QString Utils::String::fromDouble(const double n, const int precision) @@ -49,6 +49,16 @@ QString Utils::String::fromDouble(const double n, const int precision) return QLocale::system().toString(std::floor(n * prec) / prec, 'f', precision); } +QString Utils::String::fromLatin1(const std::string_view string) +{ + return QString::fromLatin1(string.data(), string.size()); +} + +QString Utils::String::fromLocal8Bit(const std::string_view string) +{ + return QString::fromLocal8Bit(string.data(), string.size()); +} + QString Utils::String::wildcardToRegexPattern(const QString &pattern) { return QRegularExpression::wildcardToRegularExpression(pattern, QRegularExpression::UnanchoredWildcardConversion); diff --git a/src/base/utils/string.h b/src/base/utils/string.h index 6a72176f2..f3ed70213 100644 --- a/src/base/utils/string.h +++ b/src/base/utils/string.h @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -48,12 +49,13 @@ namespace Utils::String template T unquote(const T &str, const QString "es = u"\""_s) { - if (str.length() < 2) return str; + if (str.length() < 2) + return str; for (const QChar quote : quotes) { if (str.startsWith(quote) && str.endsWith(quote)) - return str.mid(1, (str.length() - 2)); + return str.sliced(1, (str.length() - 2)); } return str; @@ -66,6 +68,8 @@ namespace Utils::String QStringList splitCommand(const QString &command); QString fromDouble(double n, int precision); + QString fromLatin1(std::string_view string); + QString fromLocal8Bit(std::string_view string); template QString joinIntoString(const Container &container, const QString &separator) diff --git a/src/base/version.h.in b/src/base/version.h.in index 9e06e895b..94857236a 100644 --- a/src/base/version.h.in +++ b/src/base/version.h.in @@ -29,10 +29,10 @@ #pragma once #define QBT_VERSION_MAJOR 5 -#define QBT_VERSION_MINOR 0 +#define QBT_VERSION_MINOR 2 #define QBT_VERSION_BUGFIX 0 #define QBT_VERSION_BUILD 0 -#define QBT_VERSION_STATUS "beta1" // Should be empty for stable releases! +#define QBT_VERSION_STATUS "alpha1" // Should be empty for stable releases! #define QBT__STRINGIFY(x) #x #define QBT_STRINGIFY(x) QBT__STRINGIFY(x) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 1a426ed6e..2ed0a7d3c 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -18,6 +18,7 @@ qt_wrap_ui(UI_HEADERS properties/peersadditiondialog.ui properties/propertieswidget.ui rss/automatedrssdownloader.ui + rss/rssfeeddialog.ui rss/rsswidget.ui search/pluginselectdialog.ui search/pluginsourcedialog.ui @@ -46,12 +47,15 @@ add_library(qbt_gui STATIC autoexpandabledialog.h banlistoptionsdialog.h color.h + colorscheme.h cookiesdialog.h cookiesmodel.h deletionconfirmationdialog.h desktopintegration.h downloadfromurldialog.h executionlogwidget.h + filterpatternformat.h + filterpatternformatmenu.h flowlayout.h fspathedit.h fspathedit_p.h @@ -66,6 +70,7 @@ add_library(qbt_gui STATIC log/logmodel.h mainwindow.h optionsdialog.h + powermanagement/inhibitor.h powermanagement/powermanagement.h previewlistdelegate.h previewselectdialog.h @@ -85,6 +90,7 @@ add_library(qbt_gui STATIC rss/automatedrssdownloader.h rss/feedlistwidget.h rss/htmlbrowser.h + rss/rssfeeddialog.h rss/rsswidget.h search/pluginselectdialog.h search/pluginsourcedialog.h @@ -134,6 +140,7 @@ add_library(qbt_gui STATIC uithememanager.h uithemesource.h utils.h + utils/keysequence.h watchedfolderoptionsdialog.h watchedfoldersmodel.h windowstate.h @@ -151,6 +158,7 @@ add_library(qbt_gui STATIC desktopintegration.cpp downloadfromurldialog.cpp executionlogwidget.cpp + filterpatternformatmenu.cpp flowlayout.cpp fspathedit.cpp fspathedit_p.cpp @@ -163,6 +171,7 @@ add_library(qbt_gui STATIC log/logmodel.cpp mainwindow.cpp optionsdialog.cpp + powermanagement/inhibitor.cpp powermanagement/powermanagement.cpp previewlistdelegate.cpp previewselectdialog.cpp @@ -182,6 +191,7 @@ add_library(qbt_gui STATIC rss/automatedrssdownloader.cpp rss/feedlistwidget.cpp rss/htmlbrowser.cpp + rss/rssfeeddialog.cpp rss/rsswidget.cpp search/pluginselectdialog.cpp search/pluginsourcedialog.cpp @@ -230,6 +240,7 @@ add_library(qbt_gui STATIC uithememanager.cpp uithemesource.cpp utils.cpp + utils/keysequence.cpp watchedfolderoptionsdialog.cpp watchedfoldersmodel.cpp @@ -255,8 +266,8 @@ if (DBUS) notifications/dbusnotifier.cpp notifications/dbusnotificationsinterface.h notifications/dbusnotificationsinterface.cpp - powermanagement/powermanagement_x11.h - powermanagement/powermanagement_x11.cpp + powermanagement/inhibitordbus.h + powermanagement/inhibitordbus.cpp ) endif() @@ -270,21 +281,29 @@ if (STACKTRACE) ) endif() -if ((CMAKE_SYSTEM_NAME STREQUAL "Windows") OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin")) - target_sources(qbt_gui PRIVATE - programupdater.h - programupdater.cpp - ) -endif() - if (CMAKE_SYSTEM_NAME STREQUAL "Darwin") target_sources(qbt_gui PRIVATE macosdockbadge/badger.h macosdockbadge/badger.mm macosdockbadge/badgeview.h macosdockbadge/badgeview.mm + macosshiftclickhandler.h + macosshiftclickhandler.cpp macutilities.h macutilities.mm + powermanagement/inhibitormacos.h + powermanagement/inhibitormacos.cpp + programupdater.h + programupdater.cpp ) target_link_libraries(qbt_gui PRIVATE objc) endif() + +if (CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_sources(qbt_gui PRIVATE + powermanagement/inhibitorwindows.h + powermanagement/inhibitorwindows.cpp + programupdater.h + programupdater.cpp + ) +endif() diff --git a/src/gui/aboutdialog.cpp b/src/gui/aboutdialog.cpp index bc1be50a3..5a8976fed 100644 --- a/src/gui/aboutdialog.cpp +++ b/src/gui/aboutdialog.cpp @@ -67,7 +67,7 @@ AboutDialog::AboutDialog(QWidget *parent) u"

"_s .arg(tr("An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar.") .replace(u"C++"_s, u"C\u2060+\u2060+"_s) // make C++ non-breaking - , tr("Copyright %1 2006-2024 The qBittorrent project").arg(C_COPYRIGHT) + , tr("Copyright %1 2006-2025 The qBittorrent project").arg(C_COPYRIGHT) , tr("Home Page:") , tr("Forum:") , tr("Bug Tracker:")); diff --git a/src/gui/aboutdialog.ui b/src/gui/aboutdialog.ui index abb6fd5c0..68e2bf43b 100644 --- a/src/gui/aboutdialog.ui +++ b/src/gui/aboutdialog.ui @@ -26,14 +26,14 @@ qBittorrent - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse
- Qt::Horizontal + Qt::Orientation::Horizontal @@ -67,7 +67,7 @@ - Qt::RichText + Qt::TextFormat::RichText true @@ -75,6 +75,9 @@ true + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + @@ -90,40 +93,6 @@ Current maintainer - - - - Greece - - - - - - - <a href="mailto:sledgehammer999@qbittorrent.org">sledgehammer999@qbittorrent.org</a> - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Nationality: - - - - - - - E-mail: - - - @@ -138,10 +107,44 @@ + + + + Nationality: + + + + + + + Greece + + + + + + + E-mail: + + + + + + + <a href="mailto:sledgehammer999@qbittorrent.org">sledgehammer999@qbittorrent.org</a> + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -160,10 +163,10 @@ Original author - - + + - France + Name: @@ -174,6 +177,27 @@ + + + + Nationality: + + + + + + + France + + + + + + + E-mail: + + + @@ -183,35 +207,14 @@ true - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Name: - - - - - - - E-mail: - - - - - - - Nationality: + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - Qt::Horizontal + Qt::Orientation::Horizontal @@ -227,7 +230,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -285,7 +288,7 @@ - QTextEdit::NoWrap + QTextEdit::LineWrapMode::NoWrap true @@ -337,7 +340,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -359,23 +362,36 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - - + + + + Qt: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - - + + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + + + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -385,63 +401,30 @@ - - - - Qt: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - Libtorrent: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Boost: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - - + + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -451,23 +434,43 @@ + + + + Boost: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + + + + + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse + + + OpenSSL: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse @@ -477,17 +480,17 @@ zlib: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse @@ -496,7 +499,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -512,14 +515,14 @@ true - Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse - Qt::Vertical + Qt::Orientation::Vertical diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index 99ecdda59..321e1528b 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022-2023 Vladimir Golovnev + * Copyright (C) 2022-2025 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -46,7 +47,6 @@ #include #include #include -#include #include "base/bittorrent/addtorrentparams.h" #include "base/bittorrent/downloadpriority.h" @@ -64,6 +64,7 @@ #include "base/utils/fs.h" #include "base/utils/misc.h" #include "base/utils/string.h" +#include "filterpatternformatmenu.h" #include "lineedit.h" #include "torrenttagsdialog.h" @@ -121,7 +122,7 @@ namespace fsPathEdit->setCurrentIndex(existingIndex); } - void updatePathHistory(const QString &settingsKey, const Path &path, const int maxLength) + void updatePathHistory(const QString &settingsKey, const Path &path, const qsizetype maxLength) { // Add last used save path to the front of history @@ -133,7 +134,10 @@ namespace else pathList.prepend(path.toString()); - settings()->storeValue(settingsKey, QStringList(pathList.mid(0, maxLength))); + if (pathList.size() > maxLength) + pathList.resize(maxLength); + + settings()->storeValue(settingsKey, pathList); } } @@ -142,7 +146,7 @@ class AddNewTorrentDialog::TorrentContentAdaptor final { public: TorrentContentAdaptor(const BitTorrent::TorrentInfo &torrentInfo, PathList &filePaths - , QVector &filePriorities, std::function onFilePrioritiesChanged) + , QList &filePriorities, std::function onFilePrioritiesChanged) : m_torrentInfo {torrentInfo} , m_filePaths {filePaths} , m_filePriorities {filePriorities} @@ -181,6 +185,11 @@ public: return (m_filePaths.isEmpty() ? m_torrentInfo.filePath(index) : m_filePaths.at(index)); } + PathList filePaths() const + { + return (m_filePaths.isEmpty() ? m_torrentInfo.filePaths() : m_filePaths); + } + void renameFile(const int index, const Path &newFilePath) override { Q_ASSERT((index >= 0) && (index < filesCount())); @@ -221,29 +230,29 @@ public: } } - QVector filePriorities() const override + QList filePriorities() const override { return m_filePriorities.isEmpty() - ? QVector(filesCount(), BitTorrent::DownloadPriority::Normal) + ? QList(filesCount(), BitTorrent::DownloadPriority::Normal) : m_filePriorities; } - QVector filesProgress() const override + QList filesProgress() const override { - return QVector(filesCount(), 0); + return QList(filesCount(), 0); } - QVector availableFileFractions() const override + QList availableFileFractions() const override { - return QVector(filesCount(), 0); + return QList(filesCount(), 0); } - void fetchAvailableFileFractions(std::function)> resultHandler) const override + void fetchAvailableFileFractions(std::function)> resultHandler) const override { resultHandler(availableFileFractions()); } - void prioritizeFiles(const QVector &priorities) override + void prioritizeFiles(const QList &priorities) override { Q_ASSERT(priorities.size() == filesCount()); m_filePriorities = priorities; @@ -268,7 +277,7 @@ public: private: const BitTorrent::TorrentInfo &m_torrentInfo; PathList &m_filePaths; - QVector &m_filePriorities; + QList &m_filePriorities; std::function m_onFilePrioritiesChanged; Path m_originalRootFolder; BitTorrent::TorrentContentLayout m_currentContentLayout; @@ -290,6 +299,7 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::TorrentDescriptor &to , m_storeRememberLastSavePath {SETTINGS_KEY(u"RememberLastSavePath"_s)} , m_storeTreeHeaderState {u"GUI/Qt6/" SETTINGS_KEY(u"TreeHeaderState"_s)} , m_storeSplitterState {u"GUI/Qt6/" SETTINGS_KEY(u"SplitterState"_s)} + , m_storeFilterPatternFormat {u"GUI/" SETTINGS_KEY(u"FilterPatternFormat"_s)} { m_ui->setupUi(this); @@ -316,6 +326,8 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::TorrentDescriptor &to // Torrent content filtering m_filterLine->setPlaceholderText(tr("Filter files...")); m_filterLine->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + m_filterLine->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_filterLine, &QWidget::customContextMenuRequested, this, &AddNewTorrentDialog::showContentFilterContextMenu); m_ui->contentFilterLayout->insertWidget(3, m_filterLine); const auto *focusSearchHotkey = new QShortcut(QKeySequence::Find, this); connect(focusSearchHotkey, &QShortcut::activated, this, [this]() @@ -360,14 +372,13 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::TorrentDescriptor &to }); dlg->open(); }); - connect(m_filterLine, &LineEdit::textChanged, m_ui->contentTreeView, &TorrentContentWidget::setFilterPattern); + connect(m_filterLine, &LineEdit::textChanged, this, &AddNewTorrentDialog::setContentFilterPattern); connect(m_ui->buttonSelectAll, &QPushButton::clicked, m_ui->contentTreeView, &TorrentContentWidget::checkAll); connect(m_ui->buttonSelectNone, &QPushButton::clicked, m_ui->contentTreeView, &TorrentContentWidget::checkNone); connect(Preferences::instance(), &Preferences::changed, [] { const int length = Preferences::instance()->addNewTorrentDialogSavePathHistoryLength(); - settings()->storeValue(KEY_SAVEPATHHISTORY - , QStringList(settings()->loadValue(KEY_SAVEPATHHISTORY).mid(0, length))); + settings()->storeValue(KEY_SAVEPATHHISTORY, settings()->loadValue(KEY_SAVEPATHHISTORY).mid(0, length)); }); setCurrentContext(std::make_shared(Context {torrentDescr, inParams})); @@ -375,7 +386,6 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::TorrentDescriptor &to AddNewTorrentDialog::~AddNewTorrentDialog() { - saveState(); delete m_ui; } @@ -389,7 +399,7 @@ void AddNewTorrentDialog::loadState() if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid()) resize(dialogSize); - m_ui->splitter->restoreState(m_storeSplitterState);; + m_ui->splitter->restoreState(m_storeSplitterState); } void AddNewTorrentDialog::saveState() @@ -585,7 +595,7 @@ void AddNewTorrentDialog::updateDiskSpaceLabel() if (hasMetadata) { const auto torrentInfo = *torrentDescr.info(); - const QVector &priorities = m_contentAdaptor->filePriorities(); + const QList &priorities = m_contentAdaptor->filePriorities(); Q_ASSERT(priorities.size() == torrentInfo.filesCount()); for (int i = 0; i < priorities.size(); ++i) { @@ -691,6 +701,28 @@ void AddNewTorrentDialog::saveTorrentFile() } } +void AddNewTorrentDialog::showContentFilterContextMenu() +{ + QMenu *menu = m_filterLine->createStandardContextMenu(); + + auto *formatMenu = new FilterPatternFormatMenu(m_storeFilterPatternFormat.get(FilterPatternFormat::Wildcards), menu); + connect(formatMenu, &FilterPatternFormatMenu::patternFormatChanged, this, [this](const FilterPatternFormat format) + { + m_storeFilterPatternFormat = format; + setContentFilterPattern(); + }); + + menu->addSeparator(); + menu->addMenu(formatMenu); + menu->setAttribute(Qt::WA_DeleteOnClose); + menu->popup(QCursor::pos()); +} + +void AddNewTorrentDialog::setContentFilterPattern() +{ + m_ui->contentTreeView->setFilterPattern(m_filterLine->text(), m_storeFilterPatternFormat.get(FilterPatternFormat::Wildcards)); +} + void AddNewTorrentDialog::populateSavePaths() { Q_ASSERT(m_currentContext); @@ -790,6 +822,8 @@ void AddNewTorrentDialog::reject() if (!m_currentContext) [[unlikely]] return; + emit torrentRejected(m_currentContext->torrentDescr); + const BitTorrent::TorrentDescriptor &torrentDescr = m_currentContext->torrentDescr; const bool hasMetadata = torrentDescr.info().has_value(); if (!hasMetadata) @@ -801,6 +835,12 @@ void AddNewTorrentDialog::reject() QDialog::reject(); } +void AddNewTorrentDialog::done(const int result) +{ + saveState(); + QDialog::done(result); +} + void AddNewTorrentDialog::updateMetadata(const BitTorrent::TorrentInfo &metadata) { Q_ASSERT(m_currentContext); @@ -866,11 +906,11 @@ void AddNewTorrentDialog::setupTreeview() // Set dialog title setWindowTitle(torrentDescr.name()); - const auto &torrentInfo = *torrentDescr.info(); - // Set torrent information - m_ui->labelCommentData->setText(Utils::Misc::parseHtmlLinks(torrentInfo.comment().toHtmlEscaped())); - m_ui->labelDateData->setText(!torrentInfo.creationDate().isNull() ? QLocale().toString(torrentInfo.creationDate(), QLocale::ShortFormat) : tr("Not available")); + m_ui->labelCommentData->setText(Utils::Misc::parseHtmlLinks(torrentDescr.comment().toHtmlEscaped())); + m_ui->labelDateData->setText(!torrentDescr.creationDate().isNull() ? QLocale().toString(torrentDescr.creationDate(), QLocale::ShortFormat) : tr("Not available")); + + const auto &torrentInfo = *torrentDescr.info(); BitTorrent::AddTorrentParams &addTorrentParams = m_currentContext->torrentParams; if (addTorrentParams.filePaths.isEmpty()) @@ -885,16 +925,8 @@ void AddNewTorrentDialog::setupTreeview() if (BitTorrent::Session::instance()->isExcludedFileNamesEnabled()) { // Check file name blacklist for torrents that are manually added - QVector priorities = m_contentAdaptor->filePriorities(); - for (int i = 0; i < priorities.size(); ++i) - { - if (priorities[i] == BitTorrent::DownloadPriority::Ignored) - continue; - - if (BitTorrent::Session::instance()->isFilenameExcluded(torrentInfo.filePath(i).filename())) - priorities[i] = BitTorrent::DownloadPriority::Ignored; - } - + QList priorities = m_contentAdaptor->filePriorities(); + BitTorrent::Session::instance()->applyFilenameFilter(m_contentAdaptor->filePaths(), priorities); m_contentAdaptor->prioritizeFiles(priorities); } diff --git a/src/gui/addnewtorrentdialog.h b/src/gui/addnewtorrentdialog.h index 1dd1eb1b1..84d57b4cc 100644 --- a/src/gui/addnewtorrentdialog.h +++ b/src/gui/addnewtorrentdialog.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022-2023 Vladimir Golovnev + * Copyright (C) 2022-2025 Vladimir Golovnev * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -35,6 +35,7 @@ #include "base/path.h" #include "base/settingvalue.h" +#include "filterpatternformat.h" class LineEdit; @@ -65,6 +66,12 @@ public: signals: void torrentAccepted(const BitTorrent::TorrentDescriptor &torrentDescriptor, const BitTorrent::AddTorrentParams &addTorrentParams); + void torrentRejected(const BitTorrent::TorrentDescriptor &torrentDescriptor); + +public slots: + void accept() override; + void reject() override; + void done(int result) override; private slots: void updateDiskSpaceLabel(); @@ -75,9 +82,6 @@ private slots: void categoryChanged(int index); void contentLayoutChanged(); - void accept() override; - void reject() override; - private: class TorrentContentAdaptor; struct Context; @@ -92,6 +96,8 @@ private: void setMetadataProgressIndicator(bool visibleIndicator, const QString &labelText = {}); void setupTreeview(); void saveTorrentFile(); + void showContentFilterContextMenu(); + void setContentFilterPattern(); Ui::AddNewTorrentDialog *m_ui = nullptr; std::unique_ptr m_contentAdaptor; @@ -107,4 +113,5 @@ private: SettingValue m_storeRememberLastSavePath; SettingValue m_storeTreeHeaderState; SettingValue m_storeSplitterState; + SettingValue m_storeFilterPatternFormat; }; diff --git a/src/gui/addnewtorrentdialog.ui b/src/gui/addnewtorrentdialog.ui index 4fd126795..7e17af2d6 100644 --- a/src/gui/addnewtorrentdialog.ui +++ b/src/gui/addnewtorrentdialog.ui @@ -14,10 +14,10 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame - QAbstractScrollArea::AdjustToContents + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents true @@ -47,7 +47,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal false @@ -95,7 +95,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -139,7 +139,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -164,7 +164,7 @@ - Torrent settings + Torrent options @@ -188,13 +188,13 @@ true - QComboBox::InsertAtTop + QComboBox::InsertPolicy::InsertAtTop - + Set as default category @@ -260,15 +260,14 @@ - - + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -352,7 +351,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -379,6 +378,26 @@ Torrent information + + + + Size: + + + + + + + + + + Date: + + + + + + @@ -386,19 +405,44 @@ - - + + + + Qt::TextInteractionFlag::TextSelectableByMouse + + - - + + + + Info hash v2: + + + + + + + Qt::TextInteractionFlag::TextSelectableByMouse + + + + + + + Comment: + + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + - QFrame::NoFrame + QFrame::Shape::NoFrame - QAbstractScrollArea::AdjustToContents + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents true @@ -428,10 +472,10 @@ - Qt::RichText + Qt::TextFormat::RichText - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop true @@ -440,7 +484,7 @@ true - Qt::TextBrowserInteraction + Qt::TextInteractionFlag::TextSelectableByKeyboard|Qt::TextInteractionFlag::TextSelectableByMouse @@ -448,51 +492,6 @@ - - - - Comment: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - - - Size: - - - - - - - Qt::TextSelectableByMouse - - - - - - - Date: - - - - - - - Info hash v2: - - - - - - - Qt::TextSelectableByMouse - - - @@ -519,7 +518,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -540,10 +539,10 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection true @@ -570,7 +569,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -624,7 +623,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/addtorrentparamswidget.ui b/src/gui/addtorrentparamswidget.ui index 455dd764f..58c5969d7 100644 --- a/src/gui/addtorrentparamswidget.ui +++ b/src/gui/addtorrentparamswidget.ui @@ -33,7 +33,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -81,7 +81,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -120,14 +120,14 @@ true - QComboBox::InsertAtTop + QComboBox::InsertPolicy::InsertAtTop - Qt::Horizontal + Qt::Orientation::Horizontal diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index d81cfecc6..b5a56f936 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -30,6 +30,7 @@ #include +#include #include #include #include @@ -39,7 +40,6 @@ #include "base/global.h" #include "base/preferences.h" #include "base/unicodestrings.h" -#include "gui/addnewtorrentdialog.h" #include "gui/desktopintegration.h" #include "gui/mainwindow.h" #include "interfaces/iguiapplication.h" @@ -63,6 +63,7 @@ namespace // qBittorrent section QBITTORRENT_HEADER, RESUME_DATA_STORAGE, + TORRENT_CONTENT_REMOVE_OPTION, #if defined(QBT_USES_LIBTORRENT2) && !defined(Q_OS_MACOS) MEMORY_WORKING_SET_LIMIT, #endif @@ -75,6 +76,7 @@ namespace NETWORK_IFACE_ADDRESS, // behavior SAVE_RESUME_DATA_INTERVAL, + SAVE_STATISTICS_INTERVAL, TORRENT_FILE_SIZE_LIMIT, CONFIRM_RECHECK_TORRENT, RECHECK_COMPLETED, @@ -96,6 +98,7 @@ namespace ENABLE_SPEED_WIDGET, #ifndef Q_OS_MACOS ENABLE_ICONS_IN_MENUS, + USE_ATTACHED_ADD_NEW_TORRENT_DIALOG, #endif // embedded tracker TRACKER_STATUS, @@ -104,6 +107,7 @@ namespace #if defined(Q_OS_MACOS) || defined(Q_OS_WIN) ENABLE_MARK_OF_THE_WEB, #endif // Q_OS_MACOS || Q_OS_WIN + IGNORE_SSL_ERRORS, PYTHON_EXECUTABLE_PATH, START_SESSION_PAUSED, SESSION_SHUTDOWN_TIMEOUT, @@ -147,6 +151,7 @@ namespace UPNP_LEASE_DURATION, PEER_TOS, UTP_MIX_MODE, + HOSTNAME_CACHE_TTL, IDN_SUPPORT, MULTI_CONNECTIONS_PER_IP, VALIDATE_HTTPS_TRACKER_CERTIFICATE, @@ -159,6 +164,7 @@ namespace ANNOUNCE_ALL_TRACKERS, ANNOUNCE_ALL_TIERS, ANNOUNCE_IP, + ANNOUNCE_PORT, MAX_CONCURRENT_HTTP_ANNOUNCES, STOP_TRACKER_TIMEOUT, PEER_TURNOVER, @@ -260,6 +266,8 @@ void AdvancedSettings::saveAdvancedSettings() const session->setSocketBacklogSize(m_spinBoxSocketBacklogSize.value()); // Save resume data interval session->setSaveResumeDataInterval(m_spinBoxSaveResumeDataInterval.value()); + // Save statistics interval + session->setSaveStatisticsInterval(std::chrono::minutes(m_spinBoxSaveStatisticsInterval.value())); // .torrent file size limit pref->setTorrentFileSizeLimit(m_spinBoxTorrentFileSizeLimit.value() * 1024 * 1024); // Outgoing ports @@ -271,6 +279,8 @@ void AdvancedSettings::saveAdvancedSettings() const session->setPeerToS(m_spinBoxPeerToS.value()); // uTP-TCP mixed mode session->setUtpMixedMode(m_comboBoxUtpMixedMode.currentData().value()); + // Hostname resolver cache TTL + session->setHostnameCacheTTL(m_spinBoxHostnameCacheTTL.value()); // Support internationalized domain name (IDN) session->setIDNSupportEnabled(m_checkBoxIDNSupport.isChecked()); // multiple connections per IP @@ -303,6 +313,8 @@ void AdvancedSettings::saveAdvancedSettings() const // Construct a QHostAddress to filter malformed strings const QHostAddress addr(m_lineEditAnnounceIP.text().trimmed()); session->setAnnounceIP(addr.toString()); + // Announce Port + session->setAnnouncePort(m_spinBoxAnnouncePort.value()); // Max concurrent HTTP announces session->setMaxConcurrentHTTPAnnounces(m_spinBoxMaxConcurrentHTTPAnnounces.value()); // Stop tracker timeout @@ -321,6 +333,7 @@ void AdvancedSettings::saveAdvancedSettings() const pref->setSpeedWidgetEnabled(m_checkBoxSpeedWidgetEnabled.isChecked()); #ifndef Q_OS_MACOS pref->setIconsInMenusEnabled(m_checkBoxIconsInMenusEnabled.isChecked()); + pref->setAddNewTorrentDialogAttached(m_checkBoxAttachedAddNewTorrentDialog.isChecked()); #endif // Tracker @@ -331,6 +344,8 @@ void AdvancedSettings::saveAdvancedSettings() const // Mark-of-the-Web pref->setMarkOfTheWebEnabled(m_checkBoxMarkOfTheWeb.isChecked()); #endif // Q_OS_MACOS || Q_OS_WIN + // Ignore SSL errors + pref->setIgnoreSSLErrors(m_checkBoxIgnoreSSLErrors.isChecked()); // Python executable path pref->setPythonExecutablePath(Path(m_pythonExecutablePath.text().trimmed())); // Start session paused @@ -364,6 +379,8 @@ void AdvancedSettings::saveAdvancedSettings() const session->setI2PInboundLength(m_spinBoxI2PInboundLength.value()); session->setI2POutboundLength(m_spinBoxI2POutboundLength.value()); #endif + + session->setTorrentContentRemoveOption(m_comboBoxTorrentContentRemoveOption.currentData().value()); } #ifndef QBT_USES_LIBTORRENT2 @@ -400,7 +417,7 @@ void AdvancedSettings::updateInterfaceAddressCombo() case QAbstractSocket::IPv6Protocol: return Utils::Net::canonicalIPv6Addr(address).toString(); default: - Q_ASSERT(false); + Q_UNREACHABLE(); break; } return {}; @@ -472,6 +489,11 @@ void AdvancedSettings::loadAdvancedSettings() m_comboBoxResumeDataStorage.setCurrentIndex(m_comboBoxResumeDataStorage.findData(QVariant::fromValue(session->resumeDataStorageType()))); addRow(RESUME_DATA_STORAGE, tr("Resume data storage type (requires restart)"), &m_comboBoxResumeDataStorage); + m_comboBoxTorrentContentRemoveOption.addItem(tr("Delete files permanently"), QVariant::fromValue(BitTorrent::TorrentContentRemoveOption::Delete)); + m_comboBoxTorrentContentRemoveOption.addItem(tr("Move files to trash (if possible)"), QVariant::fromValue(BitTorrent::TorrentContentRemoveOption::MoveToTrash)); + m_comboBoxTorrentContentRemoveOption.setCurrentIndex(m_comboBoxTorrentContentRemoveOption.findData(QVariant::fromValue(session->torrentContentRemoveOption()))); + addRow(TORRENT_CONTENT_REMOVE_OPTION, tr("Torrent content removing mode"), &m_comboBoxTorrentContentRemoveOption); + #if defined(QBT_USES_LIBTORRENT2) && !defined(Q_OS_MACOS) // Physical memory (RAM) usage limit m_spinBoxMemoryWorkingSetLimit.setMinimum(1); @@ -577,6 +599,7 @@ void AdvancedSettings::loadAdvancedSettings() m_comboBoxDiskIOType.addItem(tr("Default"), QVariant::fromValue(BitTorrent::DiskIOType::Default)); m_comboBoxDiskIOType.addItem(tr("Memory mapped files"), QVariant::fromValue(BitTorrent::DiskIOType::MMap)); m_comboBoxDiskIOType.addItem(tr("POSIX-compliant"), QVariant::fromValue(BitTorrent::DiskIOType::Posix)); + m_comboBoxDiskIOType.addItem(tr("Simple pread/pwrite"), QVariant::fromValue(BitTorrent::DiskIOType::SimplePreadPwrite)); m_comboBoxDiskIOType.setCurrentIndex(m_comboBoxDiskIOType.findData(QVariant::fromValue(session->diskIOType()))); addRow(DISK_IO_TYPE, tr("Disk IO type (requires restart)") + u' ' + makeLink(u"https://www.libtorrent.org/single-page-ref.html#default-disk-io-constructor", u"(?)") , &m_comboBoxDiskIOType); @@ -663,6 +686,13 @@ void AdvancedSettings::loadAdvancedSettings() m_spinBoxSaveResumeDataInterval.setSuffix(tr(" min", " minutes")); m_spinBoxSaveResumeDataInterval.setSpecialValueText(tr("0 (disabled)")); addRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval [0: disabled]", "How often the fastresume file is saved."), &m_spinBoxSaveResumeDataInterval); + // Save statistics interval + m_spinBoxSaveStatisticsInterval.setMinimum(0); + m_spinBoxSaveStatisticsInterval.setMaximum(std::numeric_limits::max()); + m_spinBoxSaveStatisticsInterval.setValue(session->saveStatisticsInterval().count()); + m_spinBoxSaveStatisticsInterval.setSuffix(tr(" min", " minutes")); + m_spinBoxSaveStatisticsInterval.setSpecialValueText(tr("0 (disabled)")); + addRow(SAVE_STATISTICS_INTERVAL, tr("Save statistics interval [0: disabled]", "How often the statistics file is saved."), &m_spinBoxSaveStatisticsInterval); // .torrent file size limit m_spinBoxTorrentFileSizeLimit.setMinimum(1); m_spinBoxTorrentFileSizeLimit.setMaximum(std::numeric_limits::max() / 1024 / 1024); @@ -706,6 +736,14 @@ void AdvancedSettings::loadAdvancedSettings() addRow(UTP_MIX_MODE, (tr("%1-TCP mixed mode algorithm", "uTP-TCP mixed mode algorithm").arg(C_UTP) + u' ' + makeLink(u"https://www.libtorrent.org/reference-Settings.html#mixed_mode_algorithm", u"(?)")) , &m_comboBoxUtpMixedMode); + // Hostname resolver cache TTL + m_spinBoxHostnameCacheTTL.setMinimum(0); + m_spinBoxHostnameCacheTTL.setMaximum(std::numeric_limits::max()); + m_spinBoxHostnameCacheTTL.setValue(session->hostnameCacheTTL()); + m_spinBoxHostnameCacheTTL.setSuffix(tr(" s", " seconds")); + addRow(HOSTNAME_CACHE_TTL, (tr("Internal hostname resolver cache expiry interval") + + u' ' + makeLink(u"https://www.libtorrent.org/reference-Settings.html#resolver_cache_timeout", u"(?)")) + , &m_spinBoxHostnameCacheTTL); // Support internationalized domain name (IDN) m_checkBoxIDNSupport.setChecked(session->isIDNSupportEnabled()); addRow(IDN_SUPPORT, (tr("Support internationalized domain name (IDN)") @@ -778,6 +816,13 @@ void AdvancedSettings::loadAdvancedSettings() addRow(ANNOUNCE_IP, (tr("IP address reported to trackers (requires restart)") + u' ' + makeLink(u"https://www.libtorrent.org/reference-Settings.html#announce_ip", u"(?)")) , &m_lineEditAnnounceIP); + // Announce port + m_spinBoxAnnouncePort.setMinimum(0); + m_spinBoxAnnouncePort.setMaximum(65535); + m_spinBoxAnnouncePort.setValue(session->announcePort()); + addRow(ANNOUNCE_PORT, (tr("Port reported to trackers (requires restart) [0: listening port]") + + u' ' + makeLink(u"https://www.libtorrent.org/reference-Settings.html#announce_port", u"(?)")) + , &m_spinBoxAnnouncePort); // Max concurrent HTTP announces m_spinBoxMaxConcurrentHTTPAnnounces.setMaximum(std::numeric_limits::max()); m_spinBoxMaxConcurrentHTTPAnnounces.setValue(session->maxConcurrentHTTPAnnounces()); @@ -823,6 +868,9 @@ void AdvancedSettings::loadAdvancedSettings() // Enable icons in menus m_checkBoxIconsInMenusEnabled.setChecked(pref->iconsInMenusEnabled()); addRow(ENABLE_ICONS_IN_MENUS, tr("Enable icons in menus"), &m_checkBoxIconsInMenusEnabled); + + m_checkBoxAttachedAddNewTorrentDialog.setChecked(pref->isAddNewTorrentDialogAttached()); + addRow(USE_ATTACHED_ADD_NEW_TORRENT_DIALOG, tr("Attach \"Add new torrent\" dialog to main window"), &m_checkBoxAttachedAddNewTorrentDialog); #endif // Tracker State m_checkBoxTrackerStatus.setChecked(session->isTrackerEnabled()); @@ -845,6 +893,10 @@ void AdvancedSettings::loadAdvancedSettings() m_checkBoxMarkOfTheWeb.setChecked(pref->isMarkOfTheWebEnabled()); addRow(ENABLE_MARK_OF_THE_WEB, motwLabel, &m_checkBoxMarkOfTheWeb); #endif // Q_OS_MACOS || Q_OS_WIN + // Ignore SSL errors + m_checkBoxIgnoreSSLErrors.setChecked(pref->isIgnoreSSLErrors()); + m_checkBoxIgnoreSSLErrors.setToolTip(tr("Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc)")); + addRow(IGNORE_SSL_ERRORS, tr("Ignore SSL errors"), &m_checkBoxIgnoreSSLErrors); // Python executable path m_pythonExecutablePath.setPlaceholderText(tr("(Auto detect if empty)")); m_pythonExecutablePath.setText(pref->getPythonExecutablePath().toString()); @@ -860,7 +912,6 @@ void AdvancedSettings::loadAdvancedSettings() m_spinBoxSessionShutdownTimeout.setSpecialValueText(tr("-1 (unlimited)")); m_spinBoxSessionShutdownTimeout.setToolTip(u"Sets the timeout for the session to be shut down gracefully, at which point it will be forcibly terminated.
Note that this does not apply to the saving resume data time."_s); addRow(SESSION_SHUTDOWN_TIMEOUT, tr("BitTorrent session shutdown timeout [-1: unlimited]"), &m_spinBoxSessionShutdownTimeout); - // Choking algorithm m_comboBoxChokingAlgorithm.addItem(tr("Fixed slots"), QVariant::fromValue(BitTorrent::ChokingAlgorithm::FixedSlots)); m_comboBoxChokingAlgorithm.addItem(tr("Upload rate based"), QVariant::fromValue(BitTorrent::ChokingAlgorithm::RateBased)); @@ -964,7 +1015,13 @@ void AdvancedSettings::addRow(const int row, const QString &text, T *widget) setCellWidget(row, VALUE, widget); if constexpr (std::is_same_v) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) + connect(widget, &QCheckBox::checkStateChanged, this, &AdvancedSettings::settingsChanged); +#else connect(widget, &QCheckBox::stateChanged, this, &AdvancedSettings::settingsChanged); +#endif + } else if constexpr (std::is_same_v) connect(widget, qOverload(&QSpinBox::valueChanged), this, &AdvancedSettings::settingsChanged); else if constexpr (std::is_same_v) diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 386a44d10..2305e830a 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -68,20 +68,21 @@ private: void loadAdvancedSettings(); template void addRow(int row, const QString &text, T *widget); - QSpinBox m_spinBoxSaveResumeDataInterval, m_spinBoxTorrentFileSizeLimit, m_spinBoxBdecodeDepthLimit, m_spinBoxBdecodeTokenLimit, + QSpinBox m_spinBoxSaveResumeDataInterval, m_spinBoxSaveStatisticsInterval, m_spinBoxTorrentFileSizeLimit, m_spinBoxBdecodeDepthLimit, m_spinBoxBdecodeTokenLimit, m_spinBoxAsyncIOThreads, m_spinBoxFilePoolSize, m_spinBoxCheckingMemUsage, m_spinBoxDiskQueueSize, - m_spinBoxOutgoingPortsMin, m_spinBoxOutgoingPortsMax, m_spinBoxUPnPLeaseDuration, m_spinBoxPeerToS, + m_spinBoxOutgoingPortsMin, m_spinBoxOutgoingPortsMax, m_spinBoxUPnPLeaseDuration, m_spinBoxPeerToS, m_spinBoxHostnameCacheTTL, m_spinBoxListRefresh, m_spinBoxTrackerPort, m_spinBoxSendBufferWatermark, m_spinBoxSendBufferLowWatermark, m_spinBoxSendBufferWatermarkFactor, m_spinBoxConnectionSpeed, m_spinBoxSocketSendBufferSize, m_spinBoxSocketReceiveBufferSize, m_spinBoxSocketBacklogSize, - m_spinBoxMaxConcurrentHTTPAnnounces, m_spinBoxStopTrackerTimeout, m_spinBoxSessionShutdownTimeout, + m_spinBoxAnnouncePort, m_spinBoxMaxConcurrentHTTPAnnounces, m_spinBoxStopTrackerTimeout, m_spinBoxSessionShutdownTimeout, m_spinBoxSavePathHistoryLength, m_spinBoxPeerTurnover, m_spinBoxPeerTurnoverCutoff, m_spinBoxPeerTurnoverInterval, m_spinBoxRequestQueueSize; QCheckBox m_checkBoxOsCache, m_checkBoxRecheckCompleted, m_checkBoxResolveCountries, m_checkBoxResolveHosts, m_checkBoxProgramNotifications, m_checkBoxTorrentAddedNotifications, m_checkBoxReannounceWhenAddressChanged, m_checkBoxTrackerFavicon, m_checkBoxTrackerStatus, - m_checkBoxTrackerPortForwarding, m_checkBoxConfirmTorrentRecheck, m_checkBoxConfirmRemoveAllTags, m_checkBoxAnnounceAllTrackers, m_checkBoxAnnounceAllTiers, - m_checkBoxMultiConnectionsPerIp, m_checkBoxValidateHTTPSTrackerCertificate, m_checkBoxSSRFMitigation, m_checkBoxBlockPeersOnPrivilegedPorts, m_checkBoxPieceExtentAffinity, - m_checkBoxSuggestMode, m_checkBoxSpeedWidgetEnabled, m_checkBoxIDNSupport, m_checkBoxConfirmRemoveTrackerFromAllTorrents, m_checkBoxStartSessionPaused; + m_checkBoxTrackerPortForwarding, m_checkBoxIgnoreSSLErrors, m_checkBoxConfirmTorrentRecheck, m_checkBoxConfirmRemoveAllTags, m_checkBoxAnnounceAllTrackers, + m_checkBoxAnnounceAllTiers, m_checkBoxMultiConnectionsPerIp, m_checkBoxValidateHTTPSTrackerCertificate, m_checkBoxSSRFMitigation, m_checkBoxBlockPeersOnPrivilegedPorts, + m_checkBoxPieceExtentAffinity, m_checkBoxSuggestMode, m_checkBoxSpeedWidgetEnabled, m_checkBoxIDNSupport, m_checkBoxConfirmRemoveTrackerFromAllTorrents, + m_checkBoxStartSessionPaused; QComboBox m_comboBoxInterface, m_comboBoxInterfaceAddress, m_comboBoxDiskIOReadMode, m_comboBoxDiskIOWriteMode, m_comboBoxUtpMixedMode, m_comboBoxChokingAlgorithm, - m_comboBoxSeedChokingAlgorithm, m_comboBoxResumeDataStorage; + m_comboBoxSeedChokingAlgorithm, m_comboBoxResumeDataStorage, m_comboBoxTorrentContentRemoveOption; QLineEdit m_lineEditAppInstanceName, m_pythonExecutablePath, m_lineEditAnnounceIP, m_lineEditDHTBootstrapNodes; #ifndef QBT_USES_LIBTORRENT2 @@ -107,6 +108,7 @@ private: #ifndef Q_OS_MACOS QCheckBox m_checkBoxIconsInMenusEnabled; + QCheckBox m_checkBoxAttachedAddNewTorrentDialog; #endif #if defined(Q_OS_MACOS) || defined(Q_OS_WIN) diff --git a/src/gui/autoexpandabledialog.ui b/src/gui/autoexpandabledialog.ui index a934bcfa9..a33825136 100644 --- a/src/gui/autoexpandabledialog.ui +++ b/src/gui/autoexpandabledialog.ui @@ -20,7 +20,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/banlistoptionsdialog.ui b/src/gui/banlistoptionsdialog.ui index a96b6e34d..51abbf6dd 100644 --- a/src/gui/banlistoptionsdialog.ui +++ b/src/gui/banlistoptionsdialog.ui @@ -29,10 +29,10 @@ true
- QFrame::Panel + QFrame::Shape::Panel - QFrame::Raised + QFrame::Shadow::Raised 1 @@ -50,7 +50,7 @@ - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection false @@ -96,18 +96,12 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok - - bannedIPList - txtIP - buttonBanIP - buttonDeleteIP - diff --git a/src/gui/colorscheme.h b/src/gui/colorscheme.h new file mode 100644 index 000000000..62dcb0d6f --- /dev/null +++ b/src/gui/colorscheme.h @@ -0,0 +1,45 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +inline namespace ColorSchemeNS +{ + Q_NAMESPACE + + enum class ColorScheme + { + System , + Light, + Dark + }; + + Q_ENUM_NS(ColorScheme) +} diff --git a/src/gui/cookiesdialog.ui b/src/gui/cookiesdialog.ui index 536f4e2ac..343b3b7d0 100644 --- a/src/gui/cookiesdialog.ui +++ b/src/gui/cookiesdialog.ui @@ -19,13 +19,13 @@ - QAbstractItemView::AllEditTriggers + QAbstractItemView::EditTrigger::AllEditTriggers true - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection @@ -34,7 +34,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -50,10 +50,10 @@ - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -69,7 +69,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -86,10 +86,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/deletionconfirmationdialog.cpp b/src/gui/deletionconfirmationdialog.cpp index e667a4ad3..9f5fe5452 100644 --- a/src/gui/deletionconfirmationdialog.cpp +++ b/src/gui/deletionconfirmationdialog.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -30,6 +31,7 @@ #include +#include "base/bittorrent/session.h" #include "base/global.h" #include "base/preferences.h" #include "uithememanager.h" @@ -53,8 +55,8 @@ DeletionConfirmationDialog::DeletionConfirmationDialog(QWidget *parent, const in m_ui->rememberBtn->setIcon(UIThemeManager::instance()->getIcon(u"object-locked"_s)); m_ui->rememberBtn->setIconSize(Utils::Gui::mediumIconSize()); - m_ui->checkPermDelete->setChecked(defaultDeleteFiles || Preferences::instance()->deleteTorrentFilesAsDefault()); - connect(m_ui->checkPermDelete, &QCheckBox::clicked, this, &DeletionConfirmationDialog::updateRememberButtonState); + m_ui->checkRemoveContent->setChecked(defaultDeleteFiles || Preferences::instance()->removeTorrentContent()); + connect(m_ui->checkRemoveContent, &QCheckBox::clicked, this, &DeletionConfirmationDialog::updateRememberButtonState); m_ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Remove")); m_ui->buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); @@ -67,18 +69,18 @@ DeletionConfirmationDialog::~DeletionConfirmationDialog() delete m_ui; } -bool DeletionConfirmationDialog::isDeleteFileSelected() const +bool DeletionConfirmationDialog::isRemoveContentSelected() const { - return m_ui->checkPermDelete->isChecked(); + return m_ui->checkRemoveContent->isChecked(); } void DeletionConfirmationDialog::updateRememberButtonState() { - m_ui->rememberBtn->setEnabled(m_ui->checkPermDelete->isChecked() != Preferences::instance()->deleteTorrentFilesAsDefault()); + m_ui->rememberBtn->setEnabled(m_ui->checkRemoveContent->isChecked() != Preferences::instance()->removeTorrentContent()); } void DeletionConfirmationDialog::on_rememberBtn_clicked() { - Preferences::instance()->setDeleteTorrentFilesAsDefault(m_ui->checkPermDelete->isChecked()); + Preferences::instance()->setRemoveTorrentContent(m_ui->checkRemoveContent->isChecked()); m_ui->rememberBtn->setEnabled(false); } diff --git a/src/gui/deletionconfirmationdialog.h b/src/gui/deletionconfirmationdialog.h index f93f1746b..9ff657849 100644 --- a/src/gui/deletionconfirmationdialog.h +++ b/src/gui/deletionconfirmationdialog.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -37,16 +38,16 @@ namespace Ui class DeletionConfirmationDialog; } -class DeletionConfirmationDialog : public QDialog +class DeletionConfirmationDialog final : public QDialog { Q_OBJECT Q_DISABLE_COPY_MOVE(DeletionConfirmationDialog) public: DeletionConfirmationDialog(QWidget *parent, int size, const QString &name, bool defaultDeleteFiles); - ~DeletionConfirmationDialog(); + ~DeletionConfirmationDialog() override; - bool isDeleteFileSelected() const; + bool isRemoveContentSelected() const; private slots: void updateRememberButtonState(); diff --git a/src/gui/deletionconfirmationdialog.ui b/src/gui/deletionconfirmationdialog.ui index 9912e2b44..3686c5d26 100644 --- a/src/gui/deletionconfirmationdialog.ui +++ b/src/gui/deletionconfirmationdialog.ui @@ -47,7 +47,7 @@ message goes here - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter true @@ -75,7 +75,7 @@ - + 0 @@ -88,7 +88,7 @@ - Also permanently delete the files + Also remove the content files @@ -103,10 +103,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/downloadfromurldialog.ui b/src/gui/downloadfromurldialog.ui index ebe19ec6f..39fa22526 100644 --- a/src/gui/downloadfromurldialog.ui +++ b/src/gui/downloadfromurldialog.ui @@ -18,7 +18,6 @@ - 75 true @@ -52,7 +51,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok true diff --git a/src/gui/executionlogwidget.ui b/src/gui/executionlogwidget.ui index 9de7af044..28945c381 100644 --- a/src/gui/executionlogwidget.ui +++ b/src/gui/executionlogwidget.ui @@ -26,7 +26,7 @@ - QTabWidget::East + QTabWidget::TabPosition::East 0 diff --git a/src/gui/filtermode.h b/src/gui/filtermode.h new file mode 100644 index 000000000..621d5c69c --- /dev/null +++ b/src/gui/filtermode.h @@ -0,0 +1,36 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +enum class FilterMode +{ + PlainText = 0, + Wildcard = 1, + Regex = 2 +}; diff --git a/src/gui/filterpatternformat.h b/src/gui/filterpatternformat.h new file mode 100644 index 000000000..71b3c5c51 --- /dev/null +++ b/src/gui/filterpatternformat.h @@ -0,0 +1,48 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +// Using `Q_ENUM_NS()` without a wrapper namespace in our case is not advised +// since `Q_NAMESPACE` cannot be used when the same namespace resides at different files. +// https://www.kdab.com/new-qt-5-8-meta-object-support-namespaces/#comment-143779 +inline namespace FilterPatternFormatNS +{ + Q_NAMESPACE + + enum class FilterPatternFormat + { + PlainText, + Wildcards, + Regex + }; + + Q_ENUM_NS(FilterPatternFormat) +} diff --git a/src/gui/filterpatternformatmenu.cpp b/src/gui/filterpatternformatmenu.cpp new file mode 100644 index 000000000..d13ab685a --- /dev/null +++ b/src/gui/filterpatternformatmenu.cpp @@ -0,0 +1,82 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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 "filterpatternformatmenu.h" + +#include + +FilterPatternFormatMenu::FilterPatternFormatMenu(const FilterPatternFormat format, QWidget *parent) + : QMenu(parent) +{ + setTitle(tr("Pattern Format")); + + auto *patternFormatGroup = new QActionGroup(this); + patternFormatGroup->setExclusive(true); + + QAction *plainTextAction = addAction(tr("Plain text")); + plainTextAction->setCheckable(true); + patternFormatGroup->addAction(plainTextAction); + + QAction *wildcardsAction = addAction(tr("Wildcards")); + wildcardsAction->setCheckable(true); + patternFormatGroup->addAction(wildcardsAction); + + QAction *regexAction = addAction(tr("Regular expression")); + regexAction->setCheckable(true); + patternFormatGroup->addAction(regexAction); + + switch (format) + { + case FilterPatternFormat::Wildcards: + default: + wildcardsAction->setChecked(true); + break; + case FilterPatternFormat::PlainText: + plainTextAction->setChecked(true); + break; + case FilterPatternFormat::Regex: + regexAction->setChecked(true); + break; + } + + connect(plainTextAction, &QAction::toggled, this, [this](const bool checked) + { + if (checked) + emit patternFormatChanged(FilterPatternFormat::PlainText); + }); + connect(wildcardsAction, &QAction::toggled, this, [this](const bool checked) + { + if (checked) + emit patternFormatChanged(FilterPatternFormat::Wildcards); + }); + connect(regexAction, &QAction::toggled, this, [this](const bool checked) + { + if (checked) + emit patternFormatChanged(FilterPatternFormat::Regex); + }); +} diff --git a/src/gui/filterpatternformatmenu.h b/src/gui/filterpatternformatmenu.h new file mode 100644 index 000000000..e201fd89d --- /dev/null +++ b/src/gui/filterpatternformatmenu.h @@ -0,0 +1,45 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +#pragma once + +#include + +#include "filterpatternformat.h" + +class FilterPatternFormatMenu final : public QMenu +{ + Q_OBJECT + Q_DISABLE_COPY_MOVE(FilterPatternFormatMenu) + +public: + explicit FilterPatternFormatMenu(FilterPatternFormat format, QWidget *parent = nullptr); + +signals: + void patternFormatChanged(FilterPatternFormat format); +}; diff --git a/src/gui/fspathedit.cpp b/src/gui/fspathedit.cpp index ff3a8f1e4..477a93a77 100644 --- a/src/gui/fspathedit.cpp +++ b/src/gui/fspathedit.cpp @@ -234,14 +234,14 @@ void FileSystemPathEdit::setFileNameFilter(const QString &val) const int closeBracePos = val.indexOf(u')', (openBracePos + 1)); if ((openBracePos > 0) && (closeBracePos > 0) && (closeBracePos > openBracePos + 2)) { - QString filterString = val.mid(openBracePos + 1, closeBracePos - openBracePos - 1); + const QString filterString = val.sliced((openBracePos + 1), (closeBracePos - openBracePos - 1)); if (filterString == u"*") { // no filters d->m_editor->setFilenameFilters({}); } else { - QStringList filters = filterString.split(u' ', Qt::SkipEmptyParts); + const QStringList filters = filterString.split(u' ', Qt::SkipEmptyParts); d->m_editor->setFilenameFilters(filters); } } diff --git a/src/gui/guiaddtorrentmanager.cpp b/src/gui/guiaddtorrentmanager.cpp index 2fbebef68..6e6b709d7 100644 --- a/src/gui/guiaddtorrentmanager.cpp +++ b/src/gui/guiaddtorrentmanager.cpp @@ -33,7 +33,6 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrentdescriptor.h" -#include "base/logger.h" #include "base/net/downloadmanager.h" #include "base/preferences.h" #include "base/torrentfileguard.h" @@ -82,6 +81,15 @@ GUIAddTorrentManager::GUIAddTorrentManager(IGUIApplication *app, BitTorrent::Ses connect(btSession(), &BitTorrent::Session::metadataDownloaded, this, &GUIAddTorrentManager::onMetadataDownloaded); } +GUIAddTorrentManager::~GUIAddTorrentManager() +{ + for (AddNewTorrentDialog *dialog : asConst(m_dialogs)) + { + dialog->disconnect(this); + dialog->reject(); + } +} + bool GUIAddTorrentManager::addTorrent(const QString &source, const BitTorrent::AddTorrentParams ¶ms, const AddTorrentOption option) { // `source`: .torrent file path, magnet URI or URL @@ -175,7 +183,8 @@ void GUIAddTorrentManager::onMetadataDownloaded(const BitTorrent::TorrentInfo &m } } -bool GUIAddTorrentManager::processTorrent(const QString &source, const BitTorrent::TorrentDescriptor &torrentDescr, const BitTorrent::AddTorrentParams ¶ms) +bool GUIAddTorrentManager::processTorrent(const QString &source + , const BitTorrent::TorrentDescriptor &torrentDescr, const BitTorrent::AddTorrentParams ¶ms) { const bool hasMetadata = torrentDescr.info().has_value(); const BitTorrent::InfoHash infoHash = torrentDescr.infoHash(); @@ -183,32 +192,39 @@ bool GUIAddTorrentManager::processTorrent(const QString &source, const BitTorren // Prevent showing the dialog if download is already present if (BitTorrent::Torrent *torrent = btSession()->findTorrent(infoHash)) { - if (hasMetadata) + if (Preferences::instance()->confirmMergeTrackers()) { - // Trying to set metadata to existing torrent in case if it has none - torrent->setMetadata(*torrentDescr.info()); - } + if (hasMetadata) + { + // Trying to set metadata to existing torrent in case if it has none + torrent->setMetadata(*torrentDescr.info()); + } - if (torrent->isPrivate() || (hasMetadata && torrentDescr.info()->isPrivate())) - { - handleDuplicateTorrent(source, torrent, tr("Trackers cannot be merged because it is a private torrent")); + const bool isPrivate = torrent->isPrivate() || (hasMetadata && torrentDescr.info()->isPrivate()); + const QString dialogCaption = tr("Torrent is already present"); + if (isPrivate) + { + // We cannot merge trackers for private torrent but we still notify user + // about duplicate torrent if confirmation dialog is enabled. + RaisedMessageBox::warning(app()->mainWindow(), dialogCaption + , tr("Trackers cannot be merged because it is a private torrent.")); + } + else + { + const bool mergeTrackers = btSession()->isMergeTrackersEnabled(); + const QMessageBox::StandardButton btn = RaisedMessageBox::question(app()->mainWindow(), dialogCaption + , tr("Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source?").arg(torrent->name()) + , (QMessageBox::Yes | QMessageBox::No), (mergeTrackers ? QMessageBox::Yes : QMessageBox::No)); + if (btn == QMessageBox::Yes) + { + torrent->addTrackers(torrentDescr.trackers()); + torrent->addUrlSeeds(torrentDescr.urlSeeds()); + } + } } else { - bool mergeTrackers = btSession()->isMergeTrackersEnabled(); - if (Preferences::instance()->confirmMergeTrackers()) - { - const QMessageBox::StandardButton btn = RaisedMessageBox::question(app()->mainWindow(), tr("Torrent is already present") - , tr("Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source?").arg(torrent->name()) - , (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes); - mergeTrackers = (btn == QMessageBox::Yes); - } - - if (mergeTrackers) - { - torrent->addTrackers(torrentDescr.trackers()); - torrent->addUrlSeeds(torrentDescr.urlSeeds()); - } + handleDuplicateTorrent(source, torrentDescr, torrent); } return false; @@ -217,25 +233,39 @@ bool GUIAddTorrentManager::processTorrent(const QString &source, const BitTorren if (!hasMetadata) btSession()->downloadMetadata(torrentDescr); +#ifdef Q_OS_MACOS + const bool attached = false; +#else + const bool attached = Preferences::instance()->isAddNewTorrentDialogAttached(); +#endif + // By not setting a parent to the "AddNewTorrentDialog", all those dialogs // will be displayed on top and will not overlap with the main window. - auto *dlg = new AddNewTorrentDialog(torrentDescr, params, nullptr); + auto *dlg = new AddNewTorrentDialog(torrentDescr, params, (attached ? app()->mainWindow() : nullptr)); // Qt::Window is required to avoid showing only two dialog on top (see #12852). // Also improves the general convenience of adding multiple torrents. - dlg->setWindowFlags(Qt::Window); + if (!attached) + dlg->setWindowFlags(Qt::Window); dlg->setAttribute(Qt::WA_DeleteOnClose); m_dialogs[infoHash] = dlg; connect(dlg, &AddNewTorrentDialog::torrentAccepted, this - , [this, source](const BitTorrent::TorrentDescriptor &torrentDescr, const BitTorrent::AddTorrentParams &addTorrentParams) - { - addTorrentToSession(source, torrentDescr, addTorrentParams); - }); - connect(dlg, &QDialog::finished, this, [this, source, infoHash, dlg] + , [this, source, dlg](const BitTorrent::TorrentDescriptor &torrentDescr, const BitTorrent::AddTorrentParams &addTorrentParams) { if (dlg->isDoNotDeleteTorrentChecked()) - releaseTorrentFileGuard(source); + { + if (auto torrentFileGuard = releaseTorrentFileGuard(source)) + torrentFileGuard->setAutoRemove(false); + } + addTorrentToSession(source, torrentDescr, addTorrentParams); + }); + connect(dlg, &AddNewTorrentDialog::torrentRejected, this, [this, source] + { + releaseTorrentFileGuard(source); + }); + connect(dlg, &QDialog::finished, this, [this, infoHash] + { m_dialogs.remove(infoHash); }); diff --git a/src/gui/guiaddtorrentmanager.h b/src/gui/guiaddtorrentmanager.h index fa48dda30..2c756e313 100644 --- a/src/gui/guiaddtorrentmanager.h +++ b/src/gui/guiaddtorrentmanager.h @@ -61,6 +61,7 @@ class GUIAddTorrentManager : public GUIApplicationComponent public: GUIAddTorrentManager(IGUIApplication *app, BitTorrent::Session *session, QObject *parent = nullptr); + ~GUIAddTorrentManager() override; bool addTorrent(const QString &source, const BitTorrent::AddTorrentParams ¶ms = {}, AddTorrentOption option = AddTorrentOption::Default); diff --git a/src/gui/ipsubnetwhitelistoptionsdialog.ui b/src/gui/ipsubnetwhitelistoptionsdialog.ui index 9c85f79f5..962055d36 100644 --- a/src/gui/ipsubnetwhitelistoptionsdialog.ui +++ b/src/gui/ipsubnetwhitelistoptionsdialog.ui @@ -20,10 +20,10 @@ true - QFrame::Panel + QFrame::Shape::Panel - QFrame::Raised + QFrame::Shadow::Raised @@ -80,18 +80,12 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok - - whitelistedIPSubnetList - txtIPSubnet - buttonWhitelistIPSubnet - buttonDeleteIPSubnet - diff --git a/src/gui/macosshiftclickhandler.cpp b/src/gui/macosshiftclickhandler.cpp new file mode 100644 index 000000000..81ba81926 --- /dev/null +++ b/src/gui/macosshiftclickhandler.cpp @@ -0,0 +1,73 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Luke Memet (lukemmtt) + * + * 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 "macosshiftclickhandler.h" + +#include +#include + +MacOSShiftClickHandler::MacOSShiftClickHandler(QTreeView *treeView) + : QObject(treeView) + , m_treeView {treeView} +{ + treeView->installEventFilter(this); +} + +bool MacOSShiftClickHandler::eventFilter(QObject *watched, QEvent *event) +{ + if ((watched == m_treeView) && (event->type() == QEvent::MouseButtonPress)) + { + const auto *mouseEvent = static_cast(event); + if (mouseEvent->button() != Qt::LeftButton) + return false; + + const QModelIndex clickedIndex = m_treeView->indexAt(mouseEvent->position().toPoint()); + if (!clickedIndex.isValid()) + return false; + + const Qt::KeyboardModifiers modifiers = mouseEvent->modifiers(); + const bool shiftPressed = modifiers.testFlag(Qt::ShiftModifier); + + if (shiftPressed && m_lastClickedIndex.isValid()) + { + const QItemSelection selection(m_lastClickedIndex, clickedIndex); + const bool commandPressed = modifiers.testFlag(Qt::ControlModifier); + if (commandPressed) + m_treeView->selectionModel()->select(selection, (QItemSelectionModel::Select | QItemSelectionModel::Rows)); + else + m_treeView->selectionModel()->select(selection, (QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows)); + m_treeView->selectionModel()->setCurrentIndex(clickedIndex, QItemSelectionModel::NoUpdate); + return true; + } + + if (!modifiers.testFlags(Qt::AltModifier | Qt::MetaModifier)) + m_lastClickedIndex = clickedIndex; + } + + return QObject::eventFilter(watched, event); +} diff --git a/src/gui/macosshiftclickhandler.h b/src/gui/macosshiftclickhandler.h new file mode 100644 index 000000000..43d6fda16 --- /dev/null +++ b/src/gui/macosshiftclickhandler.h @@ -0,0 +1,50 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Luke Memet (lukemmtt) + * + * 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. + */ + +#pragma once + +#include +#include + +class QTreeView; + +// Workaround for QTBUG-115838: Shift-click range selection not working properly on macOS +class MacOSShiftClickHandler final : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY_MOVE(MacOSShiftClickHandler) + +public: + explicit MacOSShiftClickHandler(QTreeView *treeView); + +private: + bool eventFilter(QObject *watched, QEvent *event) override; + + QTreeView *m_treeView = nullptr; + QPersistentModelIndex m_lastClickedIndex; +}; diff --git a/src/gui/macutilities.mm b/src/gui/macutilities.mm index 823a1daa9..77a7f450b 100644 --- a/src/gui/macutilities.mm +++ b/src/gui/macutilities.mm @@ -34,7 +34,6 @@ #include #include #include -#include #include "base/path.h" diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 61c18452a..fc78ccbc8 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -57,6 +56,11 @@ #include #include +#ifdef Q_OS_WIN +#include +#include +#endif + #include "base/bittorrent/session.h" #include "base/bittorrent/sessionstatus.h" #include "base/global.h" @@ -97,6 +101,7 @@ #include "ui_mainwindow.h" #include "uithememanager.h" #include "utils.h" +#include "utils/keysequence.h" #ifdef Q_OS_MACOS #include "macosdockbadge/badger.h" @@ -114,13 +119,11 @@ namespace const std::chrono::seconds PREVENT_SUSPEND_INTERVAL {60}; - bool isTorrentLink(const QString &str) - { - return str.startsWith(u"magnet:", Qt::CaseInsensitive) - || str.endsWith(TORRENT_FILE_EXTENSION, Qt::CaseInsensitive) - || (!str.startsWith(u"file:", Qt::CaseInsensitive) - && Net::DownloadManager::hasSupportedScheme(str)); - } +#ifdef Q_OS_WIN + const QString PYTHON_INSTALLER_URL = u"https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe"_s; + const QByteArray PYTHON_INSTALLER_MD5 = QByteArrayLiteral("f5e5d48ba86586d4bef67bcb3790d339"); + const QByteArray PYTHON_INSTALLER_SHA3_512 = QByteArrayLiteral("28ed23b82451efa5ec87e5dd18d7dacb9bc4d0a3643047091e5a687439f7e03a1c6e60ec64ee1210a0acaf2e5012504ff342ff27e5db108db05407e62aeff2f1"); +#endif } MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, const QString &titleSuffix) @@ -128,6 +131,8 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con , m_ui {new Ui::MainWindow} , m_downloadRate {Utils::Misc::friendlyUnit(0, true)} , m_uploadRate {Utils::Misc::friendlyUnit(0, true)} + , m_pwr {new PowerManagement} + , m_preventTimer {new QTimer(this)} , m_storeExecutionLogEnabled {EXECUTIONLOG_SETTINGS_KEY(u"Enabled"_s)} , m_storeDownloadTrackerFavicon {SETTINGS_KEY(u"DownloadTrackerFavicon"_s)} , m_storeExecutionLogTypes {EXECUTIONLOG_SETTINGS_KEY(u"Types"_s), Log::MsgType::ALL} @@ -241,7 +246,7 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con m_ui->toolBar->insertWidget(m_columnFilterAction, spacer); // Transfer List tab - m_transferListWidget = new TransferListWidget(hSplitter, this); + m_transferListWidget = new TransferListWidget(app, this); m_propertiesWidget = new PropertiesWidget(hSplitter); connect(m_transferListWidget, &TransferListWidget::currentTorrentChanged, m_propertiesWidget, &PropertiesWidget::loadTorrentInfos); hSplitter->addWidget(m_transferListWidget); @@ -254,7 +259,7 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con #endif tr("Transfers")); // Filter types - const QVector filterTypes = {TransferListModel::Column::TR_NAME, TransferListModel::Column::TR_SAVE_PATH}; + const QList filterTypes = {TransferListModel::Column::TR_NAME, TransferListModel::Column::TR_SAVE_PATH}; for (const TransferListModel::Column type : filterTypes) { const QString typeName = m_transferListWidget->getSourceModel()->headerData(type, Qt::Horizontal, Qt::DisplayRole).value(); @@ -334,8 +339,6 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con connect(m_ui->actionManageCookies, &QAction::triggered, this, &MainWindow::manageCookies); // Initialise system sleep inhibition timer - m_pwr = new PowerManagement(this); - m_preventTimer = new QTimer(this); m_preventTimer->setSingleShot(true); connect(m_preventTimer, &QTimer::timeout, this, &MainWindow::updatePowerManagementState); connect(pref, &Preferences::changed, this, &MainWindow::updatePowerManagementState); @@ -347,8 +350,6 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con connect(BitTorrent::Session::instance(), &BitTorrent::Session::statsUpdated, this, &MainWindow::loadSessionStats); connect(BitTorrent::Session::instance(), &BitTorrent::Session::torrentsUpdated, this, &MainWindow::reloadTorrentStats); - // Accept drag 'n drops - setAcceptDrops(true); createKeyboardShortcuts(); #ifdef Q_OS_MACOS @@ -739,6 +740,16 @@ void MainWindow::displaySearchTab(bool enable) if (!m_searchWidget) { m_searchWidget = new SearchWidget(app(), this); + connect(m_searchWidget, &SearchWidget::searchFinished, this, [this](const bool failed) + { + if (app()->desktopIntegration()->isNotificationsEnabled() && (currentTabWidget() != m_searchWidget)) + { + if (failed) + app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Search has failed")); + else + app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Search has finished")); + } + }); m_tabs->insertTab(1, m_searchWidget, #ifndef Q_OS_MACOS UIThemeManager::instance()->getIcon(u"edit-find"_s), @@ -827,6 +838,7 @@ void MainWindow::cleanup() delete m_executableWatcher; m_preventTimer->stop(); + delete m_pwr; #if (defined(Q_OS_WIN) || defined(Q_OS_MACOS)) if (m_programUpdateTimer) @@ -872,7 +884,7 @@ void MainWindow::createKeyboardShortcuts() { m_ui->actionCreateTorrent->setShortcut(QKeySequence::New); m_ui->actionOpen->setShortcut(QKeySequence::Open); - m_ui->actionDelete->setShortcut(QKeySequence::Delete); + m_ui->actionDelete->setShortcut(Utils::KeySequence::deleteItem()); m_ui->actionDelete->setShortcutContext(Qt::WidgetShortcut); // nullify its effect: delete key event is handled by respective widgets, not here m_ui->actionDownloadFromURL->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_O); m_ui->actionExit->setShortcut(Qt::CTRL | Qt::Key_Q); @@ -1124,16 +1136,13 @@ void MainWindow::keyPressEvent(QKeyEvent *event) if (event->matches(QKeySequence::Paste)) { const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(); - if (mimeData->hasText()) { const QStringList lines = mimeData->text().split(u'\n', Qt::SkipEmptyParts); - for (QString line : lines) { line = line.trimmed(); - - if (!isTorrentLink(line)) + if (!Utils::Misc::isTorrentLink(line)) continue; app()->addTorrentManager()->addTorrent(line); @@ -1172,7 +1181,7 @@ void MainWindow::closeEvent(QCloseEvent *e) } #endif // Q_OS_MACOS - const QVector allTorrents = BitTorrent::Session::instance()->torrents(); + const QList allTorrents = BitTorrent::Session::instance()->torrents(); const bool hasActiveTorrents = std::any_of(allTorrents.cbegin(), allTorrents.cend(), [](BitTorrent::Torrent *torrent) { return torrent->isActive(); @@ -1284,66 +1293,6 @@ bool MainWindow::event(QEvent *e) return QMainWindow::event(e); } -// action executed when a file is dropped -void MainWindow::dropEvent(QDropEvent *event) -{ - event->acceptProposedAction(); - - // remove scheme - QStringList files; - if (event->mimeData()->hasUrls()) - { - for (const QUrl &url : asConst(event->mimeData()->urls())) - { - if (url.isEmpty()) - continue; - - files << ((url.scheme().compare(u"file", Qt::CaseInsensitive) == 0) - ? url.toLocalFile() - : url.toString()); - } - } - else - { - files = event->mimeData()->text().split(u'\n'); - } - - // differentiate ".torrent" files/links & magnet links from others - QStringList torrentFiles, otherFiles; - for (const QString &file : asConst(files)) - { - if (isTorrentLink(file)) - torrentFiles << file; - else - otherFiles << file; - } - - // Download torrents - for (const QString &file : asConst(torrentFiles)) - app()->addTorrentManager()->addTorrent(file); - if (!torrentFiles.isEmpty()) return; - - // Create torrent - for (const QString &file : asConst(otherFiles)) - { - createTorrentTriggered(Path(file)); - - // currently only handle the first entry - // this is a stub that can be expanded later to create many torrents at once - break; - } -} - -// Decode if we accept drag 'n drop or not -void MainWindow::dragEnterEvent(QDragEnterEvent *event) -{ - for (const QString &mime : asConst(event->mimeData()->formats())) - qDebug("mimeData: %s", mime.toLocal8Bit().data()); - - if (event->mimeData()->hasFormat(u"text/plain"_s) || event->mimeData()->hasFormat(u"text/uri-list"_s)) - event->acceptProposedAction(); -} - // Display a dialog to allow user to add // torrents to download list void MainWindow::on_actionOpen_triggered() @@ -1523,7 +1472,7 @@ void MainWindow::loadSessionStats() refreshWindowTitle(); } -void MainWindow::reloadTorrentStats(const QVector &torrents) +void MainWindow::reloadTorrentStats(const QList &torrents) { if (currentTabWidget() == m_transferListWidget) { @@ -1667,14 +1616,14 @@ void MainWindow::on_actionSearchWidget_triggered() #ifdef Q_OS_WIN const QMessageBox::StandardButton buttonPressed = QMessageBox::question(this, tr("Old Python Runtime") , tr("Your Python version (%1) is outdated. Minimum requirement: %2.\nDo you want to install a newer version now?") - .arg(pyInfo.version.toString(), u"3.7.0") + .arg(pyInfo.version.toString(), u"3.9.0") , (QMessageBox::Yes | QMessageBox::No), QMessageBox::Yes); if (buttonPressed == QMessageBox::Yes) installPython(); #else QMessageBox::information(this, tr("Old Python Runtime") , tr("Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work.\nMinimum requirement: %2.") - .arg(pyInfo.version.toString(), u"3.7.0")); + .arg(pyInfo.version.toString(), u"3.9.0")); #endif return; } @@ -1718,7 +1667,7 @@ void MainWindow::handleUpdateCheckFinished(ProgramUpdater *updater, const bool i { const QString msg {tr("A new version is available.") + u"
" + tr("Do you want to download %1?").arg(newVersion) + u"

" - + u"%1"_s.arg(tr("Open changelog..."))}; + + u"%1"_s.arg(tr("Open changelog..."))}; auto *msgBox = new QMessageBox {QMessageBox::Question, tr("qBittorrent Update Available"), msg , (QMessageBox::Yes | QMessageBox::No), this}; msgBox->setAttribute(Qt::WA_DeleteOnClose); @@ -1868,7 +1817,7 @@ void MainWindow::updatePowerManagementState() const const bool preventFromSuspendWhenDownloading = pref->preventFromSuspendWhenDownloading(); const bool preventFromSuspendWhenSeeding = pref->preventFromSuspendWhenSeeding(); - const QVector allTorrents = BitTorrent::Session::instance()->torrents(); + const QList allTorrents = BitTorrent::Session::instance()->torrents(); const bool inhibitSuspend = std::any_of(allTorrents.cbegin(), allTorrents.cend(), [&](const BitTorrent::Torrent *torrent) { if (preventFromSuspendWhenDownloading && (!torrent->isFinished() && !torrent->isStopped() && !torrent->isErrored() && torrent->hasMetadata())) @@ -1879,7 +1828,7 @@ void MainWindow::updatePowerManagementState() const return torrent->isMoving(); }); - m_pwr->setActivityState(inhibitSuspend); + m_pwr->setActivityState(inhibitSuspend ? PowerManagement::ActivityState::Busy : PowerManagement::ActivityState::Idle); m_preventTimer->start(PREVENT_SUSPEND_INTERVAL); } @@ -1951,50 +1900,114 @@ void MainWindow::checkProgramUpdate(const bool invokedByUser) #ifdef Q_OS_WIN void MainWindow::installPython() { - setCursor(QCursor(Qt::WaitCursor)); + m_ui->actionSearchWidget->setEnabled(false); + m_ui->actionSearchWidget->setToolTip(tr("Python installation in progress...")); + setCursor(Qt::WaitCursor); // Download python - const auto installerURL = u"https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe"_s; Net::DownloadManager::instance()->download( - Net::DownloadRequest(installerURL).saveToFile(true) + Net::DownloadRequest(PYTHON_INSTALLER_URL).saveToFile(true) , Preferences::instance()->useProxyForGeneralPurposes() , this, &MainWindow::pythonDownloadFinished); } +bool MainWindow::verifyPythonInstaller(const Path &installerPath) const +{ + // Verify installer hash + // Python.org only provides MD5 hash but MD5 is already broken and doesn't guarantee file is not tampered. + // Therefore, MD5 is only included to prove that the hash is still the same with upstream and we rely on + // SHA3-512 for the main check. + + QFile file {installerPath.data()}; + if (!file.open(QIODevice::ReadOnly)) + { + LogMsg((tr("Failed to open Python installer. File: \"%1\".").arg(installerPath.toString())), Log::WARNING); + return false; + } + + QCryptographicHash md5Hash {QCryptographicHash::Md5}; + md5Hash.addData(&file); + if (const QByteArray hashHex = md5Hash.result().toHex(); hashHex != PYTHON_INSTALLER_MD5) + { + LogMsg((tr("Failed MD5 hash check for Python installer. File: \"%1\". Result hash: \"%2\". Expected hash: \"%3\".") + .arg(installerPath.toString(), QString::fromLatin1(hashHex), QString::fromLatin1(PYTHON_INSTALLER_MD5))) + , Log::WARNING); + return false; + } + + file.seek(0); + + QCryptographicHash sha3Hash {QCryptographicHash::Sha3_512}; + sha3Hash.addData(&file); + if (const QByteArray hashHex = sha3Hash.result().toHex(); hashHex != PYTHON_INSTALLER_SHA3_512) + { + LogMsg((tr("Failed SHA3-512 hash check for Python installer. File: \"%1\". Result hash: \"%2\". Expected hash: \"%3\".") + .arg(installerPath.toString(), QString::fromLatin1(hashHex), QString::fromLatin1(PYTHON_INSTALLER_SHA3_512))) + , Log::WARNING); + return false; + } + + return true; +} + void MainWindow::pythonDownloadFinished(const Net::DownloadResult &result) { + auto restoreWidgetsGuard = qScopeGuard([this] + { + m_ui->actionSearchWidget->setEnabled(true); + m_ui->actionSearchWidget->setToolTip({}); + setCursor(Qt::ArrowCursor); + }); + if (result.status != Net::DownloadStatus::Success) { - setCursor(QCursor(Qt::ArrowCursor)); QMessageBox::warning( this, tr("Download error") - , tr("Python setup could not be downloaded, reason: %1.\nPlease install it manually.") + , tr("Python installer could not be downloaded. Error: %1.\nPlease install it manually.") .arg(result.errorString)); return; } - setCursor(QCursor(Qt::ArrowCursor)); - QProcess installer; - qDebug("Launching Python installer in passive mode..."); - const Path exePath = result.filePath + u".exe"; - Utils::Fs::renameFile(result.filePath, exePath); - installer.start(exePath.toString(), {u"/passive"_s}); - - // Wait for setup to complete - installer.waitForFinished(10 * 60 * 1000); - - qDebug("Installer stdout: %s", installer.readAllStandardOutput().data()); - qDebug("Installer stderr: %s", installer.readAllStandardError().data()); - qDebug("Setup should be complete!"); - - // Delete temp file - Utils::Fs::removeFile(exePath); - - // Reload search engine - if (Utils::ForeignApps::pythonInfo().isSupportedVersion()) + if (!Utils::Fs::renameFile(result.filePath, exePath)) { - m_ui->actionSearchWidget->setChecked(true); - displaySearchTab(true); + LogMsg(tr("Rename Python installer failed. Source: \"%1\". Destination: \"%2\".") + .arg(result.filePath.toString(), exePath.toString()) + , Log::WARNING); + return; } + + if (!verifyPythonInstaller(exePath)) + return; + + // launch installer + auto *installer = new QProcess(this); + installer->connect(installer, &QProcess::finished, this, [this, exePath, installer, restoreWidgetsGuard = std::move(restoreWidgetsGuard)](const int exitCode, const QProcess::ExitStatus exitStatus) + { + installer->deleteLater(); + + if ((exitStatus == QProcess::NormalExit) && (exitCode == 0)) + { + LogMsg(tr("Python installation success."), Log::INFO); + + // Delete installer + Utils::Fs::removeFile(exePath); + + // Reload search engine + if (Utils::ForeignApps::pythonInfo().isSupportedVersion()) + { + m_ui->actionSearchWidget->setChecked(true); + displaySearchTab(true); + } + } + else + { + const QString errorInfo = (exitStatus == QProcess::NormalExit) + ? tr("Exit code: %1.").arg(QString::number(exitCode)) + : tr("Reason: installer crashed."); + LogMsg(u"%1 %2"_s.arg(tr("Python installation failed."), errorInfo), Log::WARNING); + } + }); + LogMsg(tr("Launching Python installer. File: \"%1\".").arg(exePath.toString()), Log::INFO); + installer->start(exePath.toString(), {u"/passive"_s}); } #endif // Q_OS_WIN diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index f749db1ed..99b0989a5 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -128,14 +128,11 @@ private slots: void displayExecutionLogTab(); void toggleFocusBetweenLineEdits(); void loadSessionStats(); - void reloadTorrentStats(const QVector &torrents); + void reloadTorrentStats(const QList &torrents); void loadPreferences(); void optionsSaved(); void toggleAlternativeSpeeds(); -#ifdef Q_OS_WIN - void pythonDownloadFinished(const Net::DownloadResult &result); -#endif void addToolbarContextMenu(); void manageCookies(); @@ -184,15 +181,13 @@ private slots: #else void toggleVisibility(); #endif +#ifdef Q_OS_WIN + void pythonDownloadFinished(const Net::DownloadResult &result); +#endif private: void populateDesktopIntegrationMenu(); -#ifdef Q_OS_WIN - void installPython(); -#endif - void dropEvent(QDropEvent *event) override; - void dragEnterEvent(QDragEnterEvent *event) override; void closeEvent(QCloseEvent *) override; void showEvent(QShowEvent *) override; void keyPressEvent(QKeyEvent *event) override; @@ -206,6 +201,11 @@ private: void refreshWindowTitle(); void refreshTrayIconTooltip(); +#ifdef Q_OS_WIN + void installPython(); + bool verifyPythonInstaller(const Path &installerPath) const; +#endif + Ui::MainWindow *m_ui = nullptr; QString m_windowTitle; diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index f2f7167d7..90a4fecb7 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -11,7 +11,7 @@
- Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu @@ -135,10 +135,10 @@ false
- Qt::Horizontal + Qt::Orientation::Horizontal - Qt::ToolButtonFollowStyle + Qt::ToolButtonStyle::ToolButtonFollowStyle false @@ -149,8 +149,8 @@ false - + @@ -199,7 +199,7 @@ - &Resume Session + R&esume Session @@ -392,7 +392,7 @@ true - S&hutdown System + Sh&utdown System diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index dd76877b3..114f3004f 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023-2024 Vladimir Golovnev + * Copyright (C) 2023-2025 Vladimir Golovnev * Copyright (C) 2024 Jonathan Ketchker * Copyright (C) 2006 Christophe Dumez * @@ -30,6 +30,7 @@ #include "optionsdialog.h" +#include #include #include #include @@ -44,10 +45,15 @@ #include #include +#ifdef Q_OS_WIN +#include +#endif + #include "base/bittorrent/session.h" #include "base/bittorrent/sharelimitaction.h" #include "base/exceptions.h" #include "base/global.h" +#include "base/net/downloadmanager.h" #include "base/net/portforwarder.h" #include "base/net/proxyconfigurationmanager.h" #include "base/path.h" @@ -56,6 +62,7 @@ #include "base/rss/rss_session.h" #include "base/torrentfileguard.h" #include "base/torrentfileswatcher.h" +#include "base/utils/compare.h" #include "base/utils/io.h" #include "base/utils/misc.h" #include "base/utils/net.h" @@ -157,6 +164,7 @@ OptionsDialog::OptionsDialog(IGUIApplication *app, QWidget *parent) m_ui->tabSelection->item(TAB_DOWNLOADS)->setIcon(UIThemeManager::instance()->getIcon(u"download"_s, u"folder-download"_s)); m_ui->tabSelection->item(TAB_SPEED)->setIcon(UIThemeManager::instance()->getIcon(u"speedometer"_s, u"chronometer"_s)); m_ui->tabSelection->item(TAB_RSS)->setIcon(UIThemeManager::instance()->getIcon(u"application-rss"_s, u"application-rss+xml"_s)); + m_ui->tabSelection->item(TAB_SEARCH)->setIcon(UIThemeManager::instance()->getIcon(u"edit-find"_s)); #ifdef DISABLE_WEBUI m_ui->tabSelection->item(TAB_WEBUI)->setHidden(true); #else @@ -183,6 +191,7 @@ OptionsDialog::OptionsDialog(IGUIApplication *app, QWidget *parent) loadSpeedTabOptions(); loadBittorrentTabOptions(); loadRSSTabOptions(); + loadSearchTabOptions(); #ifndef DISABLE_WEBUI loadWebUITabOptions(); #endif @@ -236,6 +245,9 @@ void OptionsDialog::loadBehaviorTabOptions() initializeLanguageCombo(); setLocale(pref->getLocale()); + initializeStyleCombo(); + initializeColorSchemeOptions(); + m_ui->checkUseCustomTheme->setChecked(Preferences::instance()->useCustomUITheme()); m_ui->customThemeFilePath->setSelectedPath(Preferences::instance()->customUIThemePath()); m_ui->customThemeFilePath->setMode(FileSystemPathEdit::Mode::FileOpen); @@ -343,9 +355,19 @@ void OptionsDialog::loadBehaviorTabOptions() // Groupbox's check state must be initialized after some of its children if they are manually enabled/disabled m_ui->checkFileLog->setChecked(app()->isFileLoggerEnabled()); + m_ui->checkBoxFreeDiskSpaceStatusBar->setChecked(pref->isStatusbarFreeDiskSpaceDisplayed()); + m_ui->checkBoxExternalIPStatusBar->setChecked(pref->isStatusbarExternalIPDisplayed()); m_ui->checkBoxPerformanceWarning->setChecked(session->isPerformanceWarningEnabled()); - connect(m_ui->comboI18n, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); + connect(m_ui->comboLanguage, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); + +#ifdef Q_OS_WIN + connect(m_ui->comboStyle, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); +#endif + +#ifdef QBT_HAS_COLORSCHEME_OPTION + connect(m_ui->comboColorScheme, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); +#endif #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) connect(m_ui->checkUseSystemIcon, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); @@ -422,6 +444,8 @@ void OptionsDialog::loadBehaviorTabOptions() connect(m_ui->spinFileLogAge, qSpinBoxValueChanged, this, &ThisType::enableApplyButton); connect(m_ui->comboFileLogAgeType, qComboBoxCurrentIndexChanged, this, &ThisType::enableApplyButton); + connect(m_ui->checkBoxFreeDiskSpaceStatusBar, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); + connect(m_ui->checkBoxExternalIPStatusBar, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkBoxPerformanceWarning, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); } @@ -443,6 +467,14 @@ void OptionsDialog::saveBehaviorTabOptions() const } pref->setLocale(locale); +#ifdef Q_OS_WIN + pref->setStyle(m_ui->comboStyle->currentData().toString()); +#endif + +#ifdef QBT_HAS_COLORSCHEME_OPTION + UIThemeManager::instance()->setColorScheme(m_ui->comboColorScheme->currentData().value()); +#endif + #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) pref->useSystemIcons(m_ui->checkUseSystemIcon->isChecked()); #endif @@ -506,6 +538,8 @@ void OptionsDialog::saveBehaviorTabOptions() const app()->setStartUpWindowState(m_ui->windowStateComboBox->currentData().value()); + pref->setStatusbarFreeDiskSpaceDisplayed(m_ui->checkBoxFreeDiskSpaceStatusBar->isChecked()); + pref->setStatusbarExternalIPDisplayed(m_ui->checkBoxExternalIPStatusBar->isChecked()); session->setPerformanceWarningEnabled(m_ui->checkBoxPerformanceWarning->isChecked()); } @@ -1120,6 +1154,10 @@ void OptionsDialog::loadBittorrentTabOptions() m_ui->checkEnableAddTrackers->setChecked(session->isAddTrackersEnabled()); m_ui->textTrackers->setPlainText(session->additionalTrackers()); + m_ui->checkAddTrackersFromURL->setChecked(session->isAddTrackersFromURLEnabled()); + m_ui->textTrackersURL->setText(session->additionalTrackersURL()); + m_ui->textTrackersFromURL->setPlainText(session->additionalTrackersFromURL()); + connect(m_ui->checkDHT, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkPeX, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkLSD, &QAbstractButton::toggled, this, &ThisType::enableApplyButton); @@ -1153,6 +1191,9 @@ void OptionsDialog::loadBittorrentTabOptions() connect(m_ui->checkEnableAddTrackers, &QGroupBox::toggled, this, &ThisType::enableApplyButton); connect(m_ui->textTrackers, &QPlainTextEdit::textChanged, this, &ThisType::enableApplyButton); + + connect(m_ui->checkAddTrackersFromURL, &QGroupBox::toggled, this, &ThisType::enableApplyButton); + connect(m_ui->textTrackersURL, &QLineEdit::textChanged, this, &ThisType::enableApplyButton); } void OptionsDialog::saveBittorrentTabOptions() const @@ -1179,7 +1220,7 @@ void OptionsDialog::saveBittorrentTabOptions() const session->setGlobalMaxRatio(getMaxRatio()); session->setGlobalMaxSeedingMinutes(getMaxSeedingMinutes()); session->setGlobalMaxInactiveSeedingMinutes(getMaxInactiveSeedingMinutes()); - const QVector actIndex = + const QList actIndex = { BitTorrent::ShareLimitAction::Stop, BitTorrent::ShareLimitAction::Remove, @@ -1190,6 +1231,9 @@ void OptionsDialog::saveBittorrentTabOptions() const session->setAddTrackersEnabled(m_ui->checkEnableAddTrackers->isChecked()); session->setAdditionalTrackers(m_ui->textTrackers->toPlainText()); + + session->setAddTrackersFromURLEnabled(m_ui->checkAddTrackersFromURL->isChecked()); + session->setAdditionalTrackersURL(m_ui->textTrackersURL->text()); } void OptionsDialog::loadRSSTabOptions() @@ -1234,6 +1278,28 @@ void OptionsDialog::saveRSSTabOptions() const autoDownloader->setDownloadRepacks(m_ui->checkSmartFilterDownloadRepacks->isChecked()); } +void OptionsDialog::loadSearchTabOptions() +{ + const auto *pref = Preferences::instance(); + + m_ui->groupStoreOpenedTabs->setChecked(pref->storeOpenedSearchTabs()); + m_ui->checkStoreTabsSearchResults->setChecked(pref->storeOpenedSearchTabResults()); + m_ui->searchHistoryLengthSpinBox->setValue(pref->searchHistoryLength()); + + connect(m_ui->groupStoreOpenedTabs, &QGroupBox::toggled, this, &OptionsDialog::enableApplyButton); + connect(m_ui->checkStoreTabsSearchResults, &QCheckBox::toggled, this, &OptionsDialog::enableApplyButton); + connect(m_ui->searchHistoryLengthSpinBox, qSpinBoxValueChanged, this, &OptionsDialog::enableApplyButton); +} + +void OptionsDialog::saveSearchTabOptions() const +{ + auto *pref = Preferences::instance(); + + pref->setStoreOpenedSearchTabs(m_ui->groupStoreOpenedTabs->isChecked()); + pref->setStoreOpenedSearchTabResults(m_ui->checkStoreTabsSearchResults->isChecked()); + pref->setSearchHistoryLength(m_ui->searchHistoryLengthSpinBox->value()); +} + #ifndef DISABLE_WEBUI void OptionsDialog::loadWebUITabOptions() { @@ -1273,7 +1339,6 @@ void OptionsDialog::loadWebUITabOptions() // Security m_ui->checkClickjacking->setChecked(pref->isWebUIClickjackingProtectionEnabled()); m_ui->checkCSRFProtection->setChecked(pref->isWebUICSRFProtectionEnabled()); - m_ui->checkSecureCookie->setEnabled(pref->isWebUIHttpsEnabled()); m_ui->checkSecureCookie->setChecked(pref->isWebUISecureCookieEnabled()); m_ui->groupHostHeaderValidation->setChecked(pref->isWebUIHostHeaderValidationEnabled()); m_ui->textServerDomains->setText(pref->getServerDomains()); @@ -1315,7 +1380,6 @@ void OptionsDialog::loadWebUITabOptions() connect(m_ui->checkClickjacking, &QCheckBox::toggled, this, &ThisType::enableApplyButton); connect(m_ui->checkCSRFProtection, &QCheckBox::toggled, this, &ThisType::enableApplyButton); - connect(m_ui->checkWebUIHttps, &QGroupBox::toggled, m_ui->checkSecureCookie, &QWidget::setEnabled); connect(m_ui->checkSecureCookie, &QCheckBox::toggled, this, &ThisType::enableApplyButton); connect(m_ui->groupHostHeaderValidation, &QGroupBox::toggled, this, &ThisType::enableApplyButton); connect(m_ui->textServerDomains, &QLineEdit::textChanged, this, &ThisType::enableApplyButton); @@ -1387,7 +1451,7 @@ void OptionsDialog::initializeLanguageCombo() for (const QString &langFile : langFiles) { const QString langCode = QStringView(langFile).sliced(12).chopped(3).toString(); // remove "qbittorrent_" and ".qm" - m_ui->comboI18n->addItem(Utils::Misc::languageToLocalizedString(langCode), langCode); + m_ui->comboLanguage->addItem(Utils::Misc::languageToLocalizedString(langCode), langCode); } } @@ -1428,6 +1492,7 @@ void OptionsDialog::saveOptions() const saveSpeedTabOptions(); saveBittorrentTabOptions(); saveRSSTabOptions(); + saveSearchTabOptions(); #ifndef DISABLE_WEBUI saveWebUITabOptions(); #endif @@ -1624,7 +1689,7 @@ void OptionsDialog::adjustProxyOptions() if (currentProxyType == Net::ProxyType::None) { - m_ui->labelProxyTypeIncompatible->setVisible(false); + m_ui->labelProxyTypeUnavailable->setVisible(false); m_ui->lblProxyIP->setEnabled(false); m_ui->textProxyIP->setEnabled(false); @@ -1649,7 +1714,7 @@ void OptionsDialog::adjustProxyOptions() if (currentProxyType == Net::ProxyType::SOCKS4) { - m_ui->labelProxyTypeIncompatible->setVisible(true); + m_ui->labelProxyTypeUnavailable->setVisible(true); m_ui->checkProxyHostnameLookup->setEnabled(false); m_ui->checkProxyRSS->setEnabled(false); @@ -1658,7 +1723,7 @@ void OptionsDialog::adjustProxyOptions() else { // SOCKS5 or HTTP - m_ui->labelProxyTypeIncompatible->setVisible(false); + m_ui->labelProxyTypeUnavailable->setVisible(false); m_ui->checkProxyHostnameLookup->setEnabled(true); m_ui->checkProxyRSS->setEnabled(true); @@ -1672,6 +1737,50 @@ bool OptionsDialog::isSplashScreenDisabled() const return !m_ui->checkShowSplash->isChecked(); } +void OptionsDialog::initializeStyleCombo() +{ +#ifdef Q_OS_WIN + m_ui->labelStyleHint->setText(tr("%1 is recommended for best compatibility with Windows dark mode" + , "Fusion is recommended for best compatibility with Windows dark mode").arg(u"Fusion"_s)); + m_ui->comboStyle->addItem(tr("System", "System default Qt style"), u"system"_s); + m_ui->comboStyle->setItemData(0, tr("Let Qt decide the style for this system"), Qt::ToolTipRole); + m_ui->comboStyle->insertSeparator(1); + + QStringList styleNames = QStyleFactory::keys(); + std::sort(styleNames.begin(), styleNames.end(), Utils::Compare::NaturalLessThan()); + for (const QString &styleName : asConst(styleNames)) + m_ui->comboStyle->addItem(styleName, styleName); + + const QString prefStyleName = Preferences::instance()->getStyle(); + const QString selectedStyleName = prefStyleName.isEmpty() ? QApplication::style()->name() : prefStyleName; + const int styleIndex = m_ui->comboStyle->findData(selectedStyleName, Qt::UserRole, Qt::MatchFixedString); + m_ui->comboStyle->setCurrentIndex(std::max(0, styleIndex)); +#else + m_ui->labelStyle->hide(); + m_ui->comboStyle->hide(); + m_ui->labelStyleHint->hide(); + m_ui->UISettingsBoxLayout->removeWidget(m_ui->labelStyle); + m_ui->UISettingsBoxLayout->removeWidget(m_ui->comboStyle); + m_ui->UISettingsBoxLayout->removeWidget(m_ui->labelStyleHint); +#endif +} + +void OptionsDialog::initializeColorSchemeOptions() +{ +#ifdef QBT_HAS_COLORSCHEME_OPTION + m_ui->comboColorScheme->addItem(tr("Dark", "Dark color scheme"), QVariant::fromValue(ColorScheme::Dark)); + m_ui->comboColorScheme->addItem(tr("Light", "Light color scheme"), QVariant::fromValue(ColorScheme::Light)); + m_ui->comboColorScheme->addItem(tr("System", "System color scheme"), QVariant::fromValue(ColorScheme::System)); + m_ui->comboColorScheme->setCurrentIndex(m_ui->comboColorScheme->findData(QVariant::fromValue(UIThemeManager::instance()->colorScheme()))); +#else + m_ui->labelColorScheme->hide(); + m_ui->comboColorScheme->hide(); + m_ui->UISettingsBoxLayout->removeWidget(m_ui->labelColorScheme); + m_ui->UISettingsBoxLayout->removeWidget(m_ui->comboColorScheme); + m_ui->UISettingsBoxLayout->removeItem(m_ui->spacerColorScheme); +#endif +} + #ifdef Q_OS_WIN bool OptionsDialog::WinStartup() const { @@ -1721,7 +1830,7 @@ QString OptionsDialog::getProxyPassword() const // Locale Settings QString OptionsDialog::getLocale() const { - return m_ui->comboI18n->itemData(m_ui->comboI18n->currentIndex(), Qt::UserRole).toString(); + return m_ui->comboLanguage->itemData(m_ui->comboLanguage->currentIndex(), Qt::UserRole).toString(); } void OptionsDialog::setLocale(const QString &localeStr) @@ -1746,24 +1855,24 @@ void OptionsDialog::setLocale(const QString &localeStr) name = locale.name(); } // Attempt to find exact match - int index = m_ui->comboI18n->findData(name, Qt::UserRole); + int index = m_ui->comboLanguage->findData(name, Qt::UserRole); if (index < 0) { //Attempt to find a language match without a country - int pos = name.indexOf(u'_'); + const int pos = name.indexOf(u'_'); if (pos > -1) { - QString lang = name.left(pos); - index = m_ui->comboI18n->findData(lang, Qt::UserRole); + const QString lang = name.first(pos); + index = m_ui->comboLanguage->findData(lang, Qt::UserRole); } } if (index < 0) { // Unrecognized, use US English - index = m_ui->comboI18n->findData(u"en"_s, Qt::UserRole); + index = m_ui->comboLanguage->findData(u"en"_s, Qt::UserRole); Q_ASSERT(index >= 0); } - m_ui->comboI18n->setCurrentIndex(index); + m_ui->comboLanguage->setCurrentIndex(index); } Path OptionsDialog::getTorrentExportDir() const @@ -1869,7 +1978,7 @@ Path OptionsDialog::getFilter() const void OptionsDialog::webUIHttpsCertChanged(const Path &path) { const auto readResult = Utils::IO::readFile(path, Utils::Net::MAX_SSL_FILE_SIZE); - const bool isCertValid = !Utils::SSLKey::load(readResult.value_or(QByteArray())).isNull(); + const bool isCertValid = Utils::Net::isSSLCertificatesValid(readResult.value_or(QByteArray())); m_ui->textWebUIHttpsCert->setSelectedPath(path); m_ui->lblSslCertStatus->setPixmap(UIThemeManager::instance()->getScaledPixmap( diff --git a/src/gui/optionsdialog.h b/src/gui/optionsdialog.h index 6cb66ea05..c1e29c1d6 100644 --- a/src/gui/optionsdialog.h +++ b/src/gui/optionsdialog.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -73,6 +73,7 @@ class OptionsDialog final : public GUIApplicationComponent TAB_CONNECTION, TAB_SPEED, TAB_BITTORRENT, + TAB_SEARCH, TAB_RSS, TAB_WEBUI, TAB_ADVANCED @@ -136,6 +137,9 @@ private: void loadRSSTabOptions(); void saveRSSTabOptions() const; + void loadSearchTabOptions(); + void saveSearchTabOptions() const; + #ifndef DISABLE_WEBUI void loadWebUITabOptions(); void saveWebUITabOptions() const; @@ -143,6 +147,8 @@ private: // General options void initializeLanguageCombo(); + void initializeStyleCombo(); + void initializeColorSchemeOptions(); QString getLocale() const; bool isSplashScreenDisabled() const; #ifdef Q_OS_WIN diff --git a/src/gui/optionsdialog.ui b/src/gui/optionsdialog.ui index fcfba3f3b..dbac539f7 100644 --- a/src/gui/optionsdialog.ui +++ b/src/gui/optionsdialog.ui @@ -17,32 +17,32 @@ - Qt::Horizontal + Qt::Orientation::Horizontal false - Qt::LeftToRight + Qt::LayoutDirection::LeftToRight - Qt::ScrollBarAlwaysOff + Qt::ScrollBarPolicy::ScrollBarAlwaysOff - QListView::Static + QListView::Movement::Static - QListView::TopToBottom + QListView::Flow::TopToBottom false - QListView::Adjust + QListView::ResizeMode::Adjust - QListView::IconMode + QListView::ViewMode::IconMode 0 @@ -72,6 +72,11 @@ BitTorrent + + + Search + + RSS @@ -79,7 +84,7 @@ - Web UI + WebUI @@ -132,9 +137,9 @@ Interface - + - + true @@ -146,19 +151,19 @@ - + Language: - + - + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -168,7 +173,49 @@ - + + + + Style: + + + + + + + + + + + true + + + + + + + + Color scheme: + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + Use custom UI Theme @@ -190,14 +237,14 @@ - + Use icons from system theme - + Customize UI Theme... @@ -262,7 +309,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -294,7 +341,7 @@ - Start / Stop Torrent + Start / stop torrent @@ -309,43 +356,7 @@ - Show torrent options - - - - - No action - - - - - - - - Completed torrents: - - - - - - - - Start / Stop Torrent - - - - - Open destination folder - - - - - Preview file, otherwise open destination folder - - - - - Show torrent options + Open torrent options dialog @@ -358,7 +369,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -368,6 +379,42 @@ + + + + Completed torrents: + + + + + + + + Start / stop torrent + + + + + Open destination folder + + + + + Preview file, otherwise open destination folder + + + + + Open torrent options dialog + + + + + No action + + + + @@ -423,7 +470,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -521,7 +568,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -638,7 +685,7 @@ - &Log file + &Log Files true @@ -698,7 +745,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -757,7 +804,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -772,6 +819,20 @@ + + + + Show free disk space in status bar + + + + + + + Show external IP in status bar + + + @@ -782,7 +843,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -889,7 +950,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -955,7 +1016,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1126,7 +1187,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1164,7 +1225,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1205,7 +1266,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1246,7 +1307,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1309,9 +1370,6 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - - - @@ -1319,6 +1377,9 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually + + + @@ -1347,16 +1408,16 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - QAbstractItemView::AllEditTriggers + QAbstractItemView::EditTrigger::AllEditTriggers - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows - Qt::ElideNone + Qt::TextElideMode::ElideNone false @@ -1401,7 +1462,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - Qt::Vertical + Qt::Orientation::Vertical @@ -1447,8 +1508,11 @@ readme.txt: filter exact file name. ?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. + + true + - QPlainTextEdit::NoWrap + QPlainTextEdit::LineWrapMode::NoWrap @@ -1469,8 +1533,18 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - + + + + Sender + + + From: + + + + + @@ -1482,6 +1556,9 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. + + + @@ -1492,19 +1569,6 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - - - - - Sender - - - From: - - - @@ -1546,7 +1610,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -1555,14 +1619,14 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - 0 - 0 - - - - Send test email + + + 0 + 0 + + + + Send test email @@ -1578,7 +1642,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Run on torrent added + Run on torrent added: true @@ -1596,7 +1660,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Run on torrent finished + Run on torrent finished: true @@ -1694,7 +1758,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1744,7 +1808,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1775,26 +1839,6 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'.Connections Limits - - - - 500 - - - 4 - - - - - - - Maximum number of connections per torrent: - - - true - - - @@ -1821,6 +1865,29 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Maximum number of connections per torrent: + + + true + + + @@ -1834,13 +1901,6 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - - Maximum number of upload slots per torrent: - - - @@ -1858,18 +1918,22 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - - Qt::Horizontal + + + + Maximum number of upload slots per torrent: - - - 40 - 20 - + + + + + + 500 - + + 4 + + @@ -1921,7 +1985,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1936,7 +2000,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> Mixed mode @@ -2000,7 +2064,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2013,14 +2077,14 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + true - Some options are incompatible with the chosen proxy type! + Some functions are unavailable with the chosen proxy type! @@ -2071,7 +2135,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -2080,7 +2144,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Info: The password is saved unencrypted + Note: The password is saved unencrypted @@ -2194,7 +2258,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Vertical + Qt::Orientation::Vertical @@ -2245,6 +2309,16 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'.Global Rate Limits + + + + + + + Upload: + + + @@ -2256,11 +2330,34 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + 100 + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Download: + + + @@ -2272,41 +2369,14 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + 100 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Upload: - - - - - - - Download: - - -
@@ -2316,6 +2386,55 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'.Alternative Rate Limits
+ + + + + + + Upload: + + + + + + + + + + KiB/s + + + 2000000 + + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + + + 10 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Download: + + + @@ -2327,14 +2446,14 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + 10 - - - @@ -2357,33 +2476,6 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - - true - - - hh:mm - - - - - - - - - - End time - - - To: - - - @@ -2404,6 +2496,46 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. + + + + End time + + + To: + + + + + + + true + + + hh:mm + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -2436,65 +2568,9 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - - - - Qt::Horizontal - - - - 40 - 20 - - - -
- - - - - - - KiB/s - - - 2000000 - - - 10 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Upload: - - - - - - - Download: - - -
@@ -2531,7 +2607,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Qt::Vertical + Qt::Orientation::Vertical @@ -2657,7 +2733,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2689,12 +2765,15 @@ Disable encryption: Only connect to peers without protocol encryption true + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2734,7 +2813,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Horizontal + Qt::Orientation::Horizontal @@ -2778,6 +2857,19 @@ Disable encryption: Only connect to peers without protocol encryption + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -2818,19 +2910,6 @@ Disable encryption: Only connect to peers without protocol encryption - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -2843,6 +2922,13 @@ Disable encryption: Only connect to peers without protocol encryption false + + + + Download rate threshold: + + + @@ -2851,11 +2937,34 @@ Disable encryption: Only connect to peers without protocol encryption 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + 2 + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Upload rate threshold: + + + @@ -2864,38 +2973,21 @@ Disable encryption: Only connect to peers without protocol encryption 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + 2 - - + + - Upload rate threshold: + Torrent inactivity timer: - - - - Download rate threshold: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -2912,13 +3004,6 @@ Disable encryption: Only connect to peers without protocol encryption - - - - Torrent inactivity timer: - - - @@ -2957,7 +3042,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Horizontal + Qt::Orientation::Horizontal @@ -3019,7 +3104,7 @@ Disable encryption: Only connect to peers without protocol encryption then - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -3066,7 +3151,54 @@ Disable encryption: Only connect to peers without protocol encryption - + + + true + + + + + + + + + + Automatically append trackers from URL to new downloads: + + + true + + + false + + + + + + + + URL: + + + + + + + + + + + + Fetched trackers + + + + + + + true + + @@ -3074,7 +3206,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Vertical + Qt::Orientation::Vertical @@ -3090,6 +3222,122 @@ Disable encryption: Only connect to peers without protocol encryption + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + true + + + + + 0 + 0 + 521 + 541 + + + + + + + Search UI + + + + + + Store opened tabs + + + true + + + false + + + + + + Also store search results + + + + + + + + + + + + History length + + + + + + + QAbstractSpinBox::ButtonSymbols::PlusMinus + + + 99 + + + QAbstractSpinBox::StepType::DefaultStepType + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 422 + + + + + + + + + + @@ -3141,26 +3389,6 @@ Disable encryption: Only connect to peers without protocol encryption - - - - sec - - - 2147483646 - - - 2 - - - - - - - Same host request delay: - - - @@ -3180,7 +3408,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Horizontal + Qt::Orientation::Horizontal @@ -3190,13 +3418,23 @@ Disable encryption: Only connect to peers without protocol encryption - - + + + + Same host request delay: + + + + + + + sec + 2147483646 - 100 + 2 @@ -3207,6 +3445,16 @@ Disable encryption: Only connect to peers without protocol encryption + + + + 2147483646 + + + 100 + + +
@@ -3256,7 +3504,11 @@ Disable encryption: Only connect to peers without protocol encryption
- + + + true + + @@ -3264,7 +3516,7 @@ Disable encryption: Only connect to peers without protocol encryption - Qt::Vertical + Qt::Orientation::Vertical @@ -3395,12 +3647,8 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv false - - - - Key: - - + + @@ -3409,28 +3657,35 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv
- - + + + + + + Key: + + + + + + - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> true + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + - - - - - - @@ -3462,7 +3717,7 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv - QLineEdit::Password + QLineEdit::EchoMode::Password Change current password @@ -3507,19 +3762,6 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -3530,13 +3772,26 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + ban for: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -3580,7 +3835,7 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv - Qt::Horizontal + Qt::Orientation::Horizontal @@ -3598,7 +3853,7 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv - Use alternative Web UI + Use alternative WebUI true @@ -3606,16 +3861,33 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv false - + - - - Files location: - - + + + + + Files location: + + + + + + + - + + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + + @@ -3643,7 +3915,7 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv - Enable cookie Secure flag (requires HTTPS) + Enable cookie Secure flag (requires HTTPS or localhost connection) @@ -3695,8 +3967,11 @@ Use ';' to split multiple entries. Can use wildcard '*'. + + true + - QPlainTextEdit::NoWrap + QPlainTextEdit::LineWrapMode::NoWrap Header: value pairs, one per line @@ -3733,6 +4008,19 @@ Use ';' to split multiple entries. Can use wildcard '*'. + + + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + true + + + Qt::TextInteractionFlag::LinksAccessibleByKeyboard|Qt::TextInteractionFlag::LinksAccessibleByMouse + + + @@ -3814,7 +4102,7 @@ Use ';' to split multiple entries. Can use wildcard '*'. - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -3827,7 +4115,7 @@ Use ';' to split multiple entries. Can use wildcard '*'. - Qt::Vertical + Qt::Orientation::Vertical @@ -3865,7 +4153,7 @@ Use ';' to split multiple entries. Can use wildcard '*'. - QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok @@ -3879,124 +4167,6 @@ Use ';' to split multiple entries. Can use wildcard '*'. 1 - - tabOption - comboI18n - checkUseCustomTheme - customThemeFilePath - checkAddStopped - stopConditionComboBox - spinPort - checkUPnP - textWebUIUsername - checkWebUI - textSavePath - scrollArea_7 - scrollArea_2 - spinWebUIPort - textWebUIPassword - buttonBox - tabSelection - scrollArea - confirmDeletion - checkAltRowColors - actionTorrentDlOnDblClBox - actionTorrentFnOnDblClBox - checkBoxHideZeroStatusFilters - checkStartup - checkShowSplash - windowStateComboBox - checkProgramExitConfirm - checkShowSystray - checkMinimizeToSysTray - checkCloseToSystray - checkAssociateTorrents - checkAssociateMagnetLinks - checkPreventFromSuspendWhenDownloading - checkPreventFromSuspendWhenSeeding - checkAdditionDialog - checkAdditionDialogFront - checkPreallocateAll - checkUseDownloadPath - textDownloadPath - checkAppendqB - checkUnwantedFolder - scanFoldersView - addWatchedFolderButton - editWatchedFolderButton - removeWatchedFolderButton - checkExportDir - textExportDir - checkExportDirFin - textExportDirFin - groupMailNotification - lineEditDestEmail - lineEditSmtpServer - groupMailNotifAuth - mailNotifUsername - mailNotifPassword - sendTestEmail - checkSmtpSSL - lineEditRunOnAdded - lineEditRunOnFinished - scrollArea_3 - randomButton - checkMaxConnections - spinMaxConnec - checkMaxConnectionsPerTorrent - spinMaxConnecPerTorrent - checkMaxUploadsPerTorrent - spinMaxUploadsPerTorrent - checkMaxUploads - spinMaxUploads - comboProxyType - textProxyIP - spinProxyPort - checkProxyHostnameLookup - checkProxyAuth - textProxyUsername - textProxyPassword - checkProxyBitTorrent - checkProxyPeerConnections - checkProxyRSS - checkProxyMisc - checkIPFilter - textFilterPath - IpFilterRefreshBtn - checkIpFilterTrackers - scrollArea_9 - spinUploadLimit - spinDownloadLimit - groupBoxSchedule - timeEditScheduleTo - timeEditScheduleFrom - comboBoxScheduleDays - spinUploadLimitAlt - spinDownloadLimitAlt - checkLimitLocalPeerRate - checkLimitTransportOverhead - scrollArea_4 - checkDHT - checkPeX - checkLSD - comboEncryption - checkAnonymousMode - checkEnableQueueing - spinMaxActiveDownloads - spinMaxActiveUploads - spinMaxActiveTorrents - checkWebUIUPnP - checkWebUIHttps - checkBypassLocalAuth - checkBypassAuthSubnetWhitelist - IPSubnetWhitelistButton - checkDynDNS - comboDNSService - registerDNSBtn - domainNameTxt - DNSUsernameTxt - DNSPasswordTxt - diff --git a/src/gui/powermanagement/inhibitor.cpp b/src/gui/powermanagement/inhibitor.cpp new file mode 100644 index 000000000..dff5633ba --- /dev/null +++ b/src/gui/powermanagement/inhibitor.cpp @@ -0,0 +1,40 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * Copyright (C) 2011 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 "inhibitor.h" + +bool Inhibitor::requestBusy() +{ + return true; +} + +bool Inhibitor::requestIdle() +{ + return true; +} diff --git a/src/gui/powermanagement/inhibitor.h b/src/gui/powermanagement/inhibitor.h new file mode 100644 index 000000000..7b0d6bb68 --- /dev/null +++ b/src/gui/powermanagement/inhibitor.h @@ -0,0 +1,38 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * + * 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. + */ + +#pragma once + +class Inhibitor +{ +public: + virtual ~Inhibitor() = default; + + virtual bool requestBusy(); + virtual bool requestIdle(); +}; diff --git a/src/gui/powermanagement/powermanagement_x11.cpp b/src/gui/powermanagement/inhibitordbus.cpp similarity index 87% rename from src/gui/powermanagement/powermanagement_x11.cpp rename to src/gui/powermanagement/inhibitordbus.cpp index ed3b16079..1eee96194 100644 --- a/src/gui/powermanagement/powermanagement_x11.cpp +++ b/src/gui/powermanagement/inhibitordbus.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) * Copyright (C) 2011 Vladimir Golovnev * * This program is free software; you can redistribute it and/or @@ -26,7 +27,7 @@ * exception statement from your version. */ -#include "powermanagement_x11.h" +#include "inhibitordbus.h" #include #include @@ -36,7 +37,7 @@ #include "base/global.h" #include "base/logger.h" -PowerManagementInhibitor::PowerManagementInhibitor(QObject *parent) +InhibitorDBus::InhibitorDBus(QObject *parent) : QObject(parent) , m_busInterface {new QDBusInterface(u"org.gnome.SessionManager"_s, u"/org/gnome/SessionManager"_s , u"org.gnome.SessionManager"_s, QDBusConnection::sessionBus(), this)} @@ -70,38 +71,26 @@ PowerManagementInhibitor::PowerManagementInhibitor(QObject *parent) } else { - LogMsg(tr("Power management error. Did not found suitable D-Bus interface."), Log::WARNING); + m_state = Error; + LogMsg(tr("Power management error. Did not find a suitable D-Bus interface."), Log::WARNING); } } -void PowerManagementInhibitor::requestIdle() -{ - m_intendedState = Idle; - if ((m_state == Error) || (m_state == Idle) || (m_state == RequestIdle) || (m_state == RequestBusy)) - return; - - if (m_manager == ManagerType::Systemd) - { - m_fd = {}; - m_state = Idle; - return; - } - - m_state = RequestIdle; - - const QString method = (m_manager == ManagerType::Gnome) - ? u"Uninhibit"_s - : u"UnInhibit"_s; - const QDBusPendingCall pcall = m_busInterface->asyncCall(method, m_cookie); - const auto *watcher = new QDBusPendingCallWatcher(pcall, this); - connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::onAsyncReply); -} - -void PowerManagementInhibitor::requestBusy() +bool InhibitorDBus::requestBusy() { m_intendedState = Busy; - if ((m_state == Error) || (m_state == Busy) || (m_state == RequestBusy) || (m_state == RequestIdle)) - return; + + switch (m_state) + { + case Busy: + case RequestBusy: + return true; + case Error: + case RequestIdle: + return false; + case Idle: + break; + }; m_state = RequestBusy; @@ -123,10 +112,45 @@ void PowerManagementInhibitor::requestBusy() const QDBusPendingCall pcall = m_busInterface->asyncCallWithArgumentList(u"Inhibit"_s, args); const auto *watcher = new QDBusPendingCallWatcher(pcall, this); - connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::onAsyncReply); + connect(watcher, &QDBusPendingCallWatcher::finished, this, &InhibitorDBus::onAsyncReply); + return true; } -void PowerManagementInhibitor::onAsyncReply(QDBusPendingCallWatcher *call) +bool InhibitorDBus::requestIdle() +{ + m_intendedState = Idle; + + switch (m_state) + { + case Idle: + case RequestIdle: + return true; + case Error: + case RequestBusy: + return false; + case Busy: + break; + }; + + if (m_manager == ManagerType::Systemd) + { + m_fd = {}; + m_state = Idle; + return true; + } + + m_state = RequestIdle; + + const QString method = (m_manager == ManagerType::Gnome) + ? u"Uninhibit"_s + : u"UnInhibit"_s; + const QDBusPendingCall pcall = m_busInterface->asyncCall(method, m_cookie); + const auto *watcher = new QDBusPendingCallWatcher(pcall, this); + connect(watcher, &QDBusPendingCallWatcher::finished, this, &InhibitorDBus::onAsyncReply); + return true; +} + +void InhibitorDBus::onAsyncReply(QDBusPendingCallWatcher *call) { call->deleteLater(); diff --git a/src/gui/powermanagement/powermanagement_x11.h b/src/gui/powermanagement/inhibitordbus.h similarity index 89% rename from src/gui/powermanagement/powermanagement_x11.h rename to src/gui/powermanagement/inhibitordbus.h index cc6fa529f..e0cc998ef 100644 --- a/src/gui/powermanagement/powermanagement_x11.h +++ b/src/gui/powermanagement/inhibitordbus.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) * Copyright (C) 2011 Vladimir Golovnev * * This program is free software; you can redistribute it and/or @@ -31,20 +32,21 @@ #include #include +#include "inhibitor.h" + class QDBusInterface; class QDBusPendingCallWatcher; -class PowerManagementInhibitor final : public QObject +class InhibitorDBus final : public QObject, public Inhibitor { Q_OBJECT - Q_DISABLE_COPY_MOVE(PowerManagementInhibitor) + Q_DISABLE_COPY_MOVE(InhibitorDBus) public: - PowerManagementInhibitor(QObject *parent = nullptr); - ~PowerManagementInhibitor() override = default; + InhibitorDBus(QObject *parent = nullptr); - void requestIdle(); - void requestBusy(); + bool requestBusy() override; + bool requestIdle() override; private slots: void onAsyncReply(QDBusPendingCallWatcher *call); diff --git a/src/gui/powermanagement/inhibitormacos.cpp b/src/gui/powermanagement/inhibitormacos.cpp new file mode 100644 index 000000000..c22d10b28 --- /dev/null +++ b/src/gui/powermanagement/inhibitormacos.cpp @@ -0,0 +1,46 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * Copyright (C) 2011 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 "inhibitormacos.h" + +#include + +bool InhibitorMacOS::requestBusy() +{ + const CFStringRef assertName = tr("PMMacOS", "qBittorrent is active").toCFString(); + [[maybe_unused]] const auto assertNameGuard = qScopeGuard([&assertName] { ::CFRelease(assertName); }); + const IOReturn result = ::IOPMAssertionCreateWithName(kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn + , assertName, &m_assertionID); + return result == kIOReturnSuccess; +} + +bool InhibitorMacOS::requestIdle() +{ + return ::IOPMAssertionRelease(m_assertionID) == kIOReturnSuccess; +} diff --git a/src/gui/powermanagement/inhibitormacos.h b/src/gui/powermanagement/inhibitormacos.h new file mode 100644 index 000000000..5ad4f06a3 --- /dev/null +++ b/src/gui/powermanagement/inhibitormacos.h @@ -0,0 +1,47 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * + * 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. + */ + +#pragma once + +#include + +#include + +#include "inhibitor.h" + +class InhibitorMacOS final : public Inhibitor +{ + Q_DECLARE_TR_FUNCTIONS(InhibitorMacOS) + +public: + bool requestBusy() override; + bool requestIdle() override; + +private: + IOPMAssertionID m_assertionID {}; +}; diff --git a/src/gui/powermanagement/inhibitorwindows.cpp b/src/gui/powermanagement/inhibitorwindows.cpp new file mode 100644 index 000000000..d31eb23b5 --- /dev/null +++ b/src/gui/powermanagement/inhibitorwindows.cpp @@ -0,0 +1,42 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * Copyright (C) 2011 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 "inhibitorwindows.h" + +#include + +bool InhibitorWindows::requestBusy() +{ + return ::SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED) != NULL; +} + +bool InhibitorWindows::requestIdle() +{ + return ::SetThreadExecutionState(ES_CONTINUOUS) != NULL; +} diff --git a/src/gui/powermanagement/inhibitorwindows.h b/src/gui/powermanagement/inhibitorwindows.h new file mode 100644 index 000000000..79bf8df29 --- /dev/null +++ b/src/gui/powermanagement/inhibitorwindows.h @@ -0,0 +1,38 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * + * 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. + */ + +#pragma once + +#include "inhibitor.h" + +class InhibitorWindows final : public Inhibitor +{ +public: + bool requestBusy() override; + bool requestIdle() override; +}; diff --git a/src/gui/powermanagement/powermanagement.cpp b/src/gui/powermanagement/powermanagement.cpp index a51bb10fe..68c12dc93 100644 --- a/src/gui/powermanagement/powermanagement.cpp +++ b/src/gui/powermanagement/powermanagement.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) * Copyright (C) 2011 Vladimir Golovnev * * This program is free software; you can redistribute it and/or @@ -30,68 +31,59 @@ #include -#ifdef Q_OS_MACOS -#include +#if defined(Q_OS_MACOS) +#include "inhibitormacos.h" +using InhibitorImpl = InhibitorMacOS; +#elif defined(Q_OS_WIN) +#include "inhibitorwindows.h" +using InhibitorImpl = InhibitorWindows; +#elif defined(QBT_USES_DBUS) +#include "inhibitordbus.h" +using InhibitorImpl = InhibitorDBus; +#else +#include "inhibitor.h" +using InhibitorImpl = Inhibitor; #endif -#ifdef Q_OS_WIN -#include -#endif - -#ifdef QBT_USES_DBUS -#include "powermanagement_x11.h" -#endif - -PowerManagement::PowerManagement(QObject *parent) - : QObject(parent) -#ifdef QBT_USES_DBUS - , m_inhibitor {new PowerManagementInhibitor(this)} -#endif +PowerManagement::PowerManagement() + : m_inhibitor {new InhibitorImpl} { } PowerManagement::~PowerManagement() { setIdle(); + delete m_inhibitor; } -void PowerManagement::setActivityState(const bool busy) +void PowerManagement::setActivityState(const ActivityState state) { - if (busy) + switch (state) + { + case ActivityState::Busy: setBusy(); - else + break; + + case ActivityState::Idle: setIdle(); + break; + }; } void PowerManagement::setBusy() { - if (m_busy) + if (m_state == ActivityState::Busy) return; - m_busy = true; -#ifdef Q_OS_WIN - ::SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED); -#elif defined(QBT_USES_DBUS) - m_inhibitor->requestBusy(); -#elif defined(Q_OS_MACOS) - const IOReturn success = ::IOPMAssertionCreateWithName(kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn - , tr("qBittorrent is active").toCFString(), &m_assertionID); - if (success != kIOReturnSuccess) - m_busy = false; -#endif + if (m_inhibitor->requestBusy()) + m_state = ActivityState::Busy; } void PowerManagement::setIdle() { - if (!m_busy) + if (m_state == ActivityState::Idle) return; - m_busy = false; -#ifdef Q_OS_WIN - ::SetThreadExecutionState(ES_CONTINUOUS); -#elif defined(QBT_USES_DBUS) - m_inhibitor->requestIdle(); -#elif defined(Q_OS_MACOS) - ::IOPMAssertionRelease(m_assertionID); -#endif + if (m_inhibitor->requestIdle()) + m_state = ActivityState::Idle; } diff --git a/src/gui/powermanagement/powermanagement.h b/src/gui/powermanagement/powermanagement.h index f5168c1df..e81a1b0b1 100644 --- a/src/gui/powermanagement/powermanagement.h +++ b/src/gui/powermanagement/powermanagement.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) * Copyright (C) 2011 Vladimir Golovnev * * This program is free software; you can redistribute it and/or @@ -28,38 +29,26 @@ #pragma once -#include +class Inhibitor; -#ifdef Q_OS_MACOS -// Require Mac OS X >= 10.5 -#include -#endif - -#ifdef QBT_USES_DBUS -class PowerManagementInhibitor; -#endif - -class PowerManagement final : public QObject +class PowerManagement final { - Q_OBJECT - Q_DISABLE_COPY_MOVE(PowerManagement) - public: - PowerManagement(QObject *parent = nullptr); - ~PowerManagement() override; + enum class ActivityState + { + Busy, + Idle + }; - void setActivityState(bool busy); + PowerManagement(); + ~PowerManagement(); + + void setActivityState(ActivityState state); private: void setBusy(); void setIdle(); - bool m_busy = false; - -#ifdef QBT_USES_DBUS - PowerManagementInhibitor *m_inhibitor = nullptr; -#endif -#ifdef Q_OS_MACOS - IOPMAssertionID m_assertionID {}; -#endif + ActivityState m_state = ActivityState::Idle; + Inhibitor *m_inhibitor = nullptr; }; diff --git a/src/gui/previewselectdialog.cpp b/src/gui/previewselectdialog.cpp index f325e5adb..00d103cab 100644 --- a/src/gui/previewselectdialog.cpp +++ b/src/gui/previewselectdialog.cpp @@ -48,6 +48,11 @@ #define SETTINGS_KEY(name) u"PreviewSelectDialog/" name +enum Roles +{ + SortRole = Qt::UserRole +}; + PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torrent *torrent) : QDialog(parent) , m_ui {new Ui::PreviewSelectDialog} @@ -75,13 +80,12 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torr m_ui->previewList->setAlternatingRowColors(pref->useAlternatingRowColors()); m_ui->previewList->setUniformRowHeights(true); m_ui->previewList->setModel(previewListModel); - m_ui->previewList->hideColumn(FILE_INDEX); auto *listDelegate = new PreviewListDelegate(this); m_ui->previewList->setItemDelegate(listDelegate); // Fill list in - const QVector fp = torrent->filesProgress(); + const QList fp = torrent->filesProgress(); for (int i = 0; i < torrent->filesCount(); ++i) { const Path filePath = torrent->filePath(i); @@ -89,13 +93,19 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torr { int row = previewListModel->rowCount(); previewListModel->insertRow(row); - previewListModel->setData(previewListModel->index(row, NAME), filePath.filename()); - previewListModel->setData(previewListModel->index(row, SIZE), Utils::Misc::friendlyUnit(torrent->fileSize(i))); - previewListModel->setData(previewListModel->index(row, PROGRESS), fp[i]); - previewListModel->setData(previewListModel->index(row, FILE_INDEX), i); + previewListModel->setData(previewListModel->index(row, NAME), filePath.filename(), Qt::DisplayRole); + previewListModel->setData(previewListModel->index(row, NAME), filePath.filename(), SortRole); + // Sorting file size by bytes, while displaying by human readable format + previewListModel->setData(previewListModel->index(row, SIZE), Utils::Misc::friendlyUnit(torrent->fileSize(i)), Qt::DisplayRole); + previewListModel->setData(previewListModel->index(row, SIZE), torrent->fileSize(i), SortRole); + previewListModel->setData(previewListModel->index(row, PROGRESS), fp[i], Qt::DisplayRole); + previewListModel->setData(previewListModel->index(row, PROGRESS), fp[i], SortRole); + previewListModel->setData(previewListModel->index(row, FILE_INDEX), i, Qt::DisplayRole); + previewListModel->setData(previewListModel->index(row, FILE_INDEX), i, SortRole); } } + previewListModel->setSortRole(SortRole); previewListModel->sort(NAME); m_ui->previewList->header()->setContextMenuPolicy(Qt::CustomContextMenu); m_ui->previewList->header()->setFirstSectionMovable(true); @@ -106,6 +116,7 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torr // Restore dialog state loadWindowState(); + m_ui->previewList->hideColumn(FILE_INDEX); } PreviewSelectDialog::~PreviewSelectDialog() diff --git a/src/gui/previewselectdialog.ui b/src/gui/previewselectdialog.ui index bd21963e4..9564b6583 100644 --- a/src/gui/previewselectdialog.ui +++ b/src/gui/previewselectdialog.ui @@ -31,7 +31,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok true diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index ead2e9e49..063bc5473 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -29,6 +29,9 @@ #include "programupdater.h" +#include + +#include #include #include #include @@ -61,6 +64,20 @@ namespace } return (newVersion > currentVersion); } + + QString buildVariant() + { +#if defined(Q_OS_MACOS) + const auto BASE_OS = u"Mac OS X"_s; +#elif defined(Q_OS_WIN) + const auto BASE_OS = u"Windows x64"_s; +#endif + + if constexpr ((QT_VERSION_MAJOR == 6) && (LIBTORRENT_VERSION_MAJOR == 1)) + return BASE_OS; + + return u"%1 (qt%2 lt%3%4)"_s.arg(BASE_OS, QString::number(QT_VERSION_MAJOR), QString::number(LIBTORRENT_VERSION_MAJOR), QString::number(LIBTORRENT_VERSION_MINOR)); + } } void ProgramUpdater::checkForUpdates() const @@ -97,12 +114,7 @@ void ProgramUpdater::rssDownloadFinished(const Net::DownloadResult &result) : QString {}; }; -#ifdef Q_OS_MACOS - const QString OS_TYPE = u"Mac OS X"_s; -#elif defined(Q_OS_WIN) - const QString OS_TYPE = u"Windows x64"_s; -#endif - + const QString variant = buildVariant(); bool inItem = false; QString version; QString updateLink; @@ -128,7 +140,7 @@ void ProgramUpdater::rssDownloadFinished(const Net::DownloadResult &result) { if (inItem && (xml.name() == u"item")) { - if (type.compare(OS_TYPE, Qt::CaseInsensitive) == 0) + if (type.compare(variant, Qt::CaseInsensitive) == 0) { qDebug("The last update available is %s", qUtf8Printable(version)); if (!version.isEmpty()) diff --git a/src/gui/properties/downloadedpiecesbar.cpp b/src/gui/properties/downloadedpiecesbar.cpp index 486d761d4..0f1ec8cea 100644 --- a/src/gui/properties/downloadedpiecesbar.cpp +++ b/src/gui/properties/downloadedpiecesbar.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -32,7 +33,7 @@ #include #include -#include +#include #include "base/global.h" @@ -46,14 +47,14 @@ namespace } DownloadedPiecesBar::DownloadedPiecesBar(QWidget *parent) - : base {parent} - , m_dlPieceColor {dlPieceColor(pieceColor())} + : base(parent) { + updateColorsImpl(); } -QVector DownloadedPiecesBar::bitfieldToFloatVector(const QBitArray &vecin, int reqSize) +QList DownloadedPiecesBar::bitfieldToFloatVector(const QBitArray &vecin, int reqSize) { - QVector result(reqSize, 0.0); + QList result(reqSize, 0.0); if (vecin.isEmpty()) return result; const float ratio = vecin.size() / static_cast(reqSize); @@ -128,25 +129,24 @@ QVector DownloadedPiecesBar::bitfieldToFloatVector(const QBitArray &vecin return result; } -bool DownloadedPiecesBar::updateImage(QImage &image) +QImage DownloadedPiecesBar::renderImage() { // qDebug() << "updateImage"; - QImage image2(width() - 2 * borderWidth, 1, QImage::Format_RGB888); - if (image2.isNull()) + QImage image {width() - 2 * borderWidth, 1, QImage::Format_RGB888}; + if (image.isNull()) { - qDebug() << "QImage image2() allocation failed, width():" << width(); - return false; + qDebug() << "QImage allocation failed, width():" << width(); + return image; } if (m_pieces.isEmpty()) { - image2.fill(backgroundColor()); - image = image2; - return true; + image.fill(backgroundColor()); + return image; } - QVector scaledPieces = bitfieldToFloatVector(m_pieces, image2.width()); - QVector scaledPiecesDl = bitfieldToFloatVector(m_downloadedPieces, image2.width()); + QList scaledPieces = bitfieldToFloatVector(m_pieces, image.width()); + QList scaledPiecesDl = bitfieldToFloatVector(m_downloadedPieces, image.width()); // filling image for (int x = 0; x < scaledPieces.size(); ++x) @@ -161,15 +161,15 @@ bool DownloadedPiecesBar::updateImage(QImage &image) QRgb mixedColor = mixTwoColors(pieceColor().rgb(), m_dlPieceColor.rgb(), ratio); mixedColor = mixTwoColors(backgroundColor().rgb(), mixedColor, fillRatio); - image2.setPixel(x, 0, mixedColor); + image.setPixel(x, 0, mixedColor); } else { - image2.setPixel(x, 0, pieceColors()[piecesToValue * 255]); + image.setPixel(x, 0, pieceColors()[piecesToValue * 255]); } } - image = image2; - return true; + + return image; } void DownloadedPiecesBar::setProgress(const QBitArray &pieces, const QBitArray &downloadedPieces) @@ -177,7 +177,7 @@ void DownloadedPiecesBar::setProgress(const QBitArray &pieces, const QBitArray & m_pieces = pieces; m_downloadedPieces = downloadedPieces; - requestImageUpdate(); + redraw(); } void DownloadedPiecesBar::clear() @@ -198,3 +198,14 @@ QString DownloadedPiecesBar::simpleToolTipText() const + u""; } + +void DownloadedPiecesBar::updateColors() +{ + PiecesBar::updateColors(); + updateColorsImpl(); +} + +void DownloadedPiecesBar::updateColorsImpl() +{ + m_dlPieceColor = dlPieceColor(pieceColor()); +} diff --git a/src/gui/properties/downloadedpiecesbar.h b/src/gui/properties/downloadedpiecesbar.h index d98a114b2..85e9e0c8d 100644 --- a/src/gui/properties/downloadedpiecesbar.h +++ b/src/gui/properties/downloadedpiecesbar.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -51,12 +52,14 @@ public: private: // scale bitfield vector to float vector - QVector bitfieldToFloatVector(const QBitArray &vecin, int reqSize); - bool updateImage(QImage &image) override; + QList bitfieldToFloatVector(const QBitArray &vecin, int reqSize); + QImage renderImage() override; QString simpleToolTipText() const override; + void updateColors() override; + void updateColorsImpl(); // incomplete piece color - const QColor m_dlPieceColor; + QColor m_dlPieceColor; // last used bitfields, uses to better resize redraw // TODO: make a diff pieces to new pieces and update only changed pixels, speedup when update > 20x faster QBitArray m_pieces; diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 02f0cc609..8546d7143 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -42,7 +43,6 @@ #include #include #include -#include #include #include "base/bittorrent/peeraddress.h" @@ -58,6 +58,7 @@ #include "base/utils/misc.h" #include "base/utils/string.h" #include "gui/uithememanager.h" +#include "gui/utils/keysequence.h" #include "peerlistsortmodel.h" #include "peersadditiondialog.h" #include "propertieswidget.h" @@ -187,7 +188,7 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent) handleSortColumnChanged(header()->sortIndicatorSection()); const auto *copyHotkey = new QShortcut(QKeySequence::Copy, this, nullptr, nullptr, Qt::WidgetShortcut); connect(copyHotkey, &QShortcut::activated, this, &PeerListWidget::copySelectedPeers); - const auto *deleteHotkey = new QShortcut(QKeySequence::Delete, this, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteHotkey = new QShortcut(Utils::KeySequence::deleteItem(), this, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteHotkey, &QShortcut::activated, this, &PeerListWidget::banSelectedPeers); } @@ -290,7 +291,7 @@ void PeerListWidget::showPeerListMenu() QAction *addNewPeer = menu->addAction(UIThemeManager::instance()->getIcon(u"peers-add"_s), tr("Add peers...") , this, [this, torrent]() { - const QVector peersList = PeersAdditionDialog::askForPeers(this); + const QList peersList = PeersAdditionDialog::askForPeers(this); const int peerCount = std::count_if(peersList.cbegin(), peersList.cend(), [torrent](const BitTorrent::PeerAddress &peer) { return torrent->connectPeer(peer); @@ -335,7 +336,7 @@ void PeerListWidget::banSelectedPeers() // Store selected rows first as selected peers may disconnect const QModelIndexList selectedIndexes = selectionModel()->selectedRows(); - QVector selectedIPs; + QList selectedIPs; selectedIPs.reserve(selectedIndexes.size()); for (const QModelIndex &index : selectedIndexes) @@ -405,13 +406,13 @@ void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent) return; using TorrentPtr = QPointer; - torrent->fetchPeerInfo([this, torrent = TorrentPtr(torrent)](const QVector &peers) + torrent->fetchPeerInfo([this, torrent = TorrentPtr(torrent)](const QList &peers) { if (torrent != m_properties->getCurrentTorrent()) return; // Remove I2P peers since they will be completely reloaded. - for (QStandardItem *item : asConst(m_I2PPeerItems)) + for (const QStandardItem *item : asConst(m_I2PPeerItems)) m_listModel->removeRow(item->row()); m_I2PPeerItems.clear(); @@ -420,7 +421,8 @@ void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent) for (auto i = m_peerItems.cbegin(); i != m_peerItems.cend(); ++i) existingPeers.insert(i.key()); - const bool hideZeroValues = Preferences::instance()->getHideZeroValues(); + const Preferences *pref = Preferences::instance(); + const bool hideZeroValues = (pref->getHideZeroValues() && (pref->getHideZeroComboValues() == 0)); for (const BitTorrent::PeerInfo &peer : peers) { const PeerEndpoint peerEndpoint {peer.address(), peer.connectionType()}; @@ -466,10 +468,14 @@ void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent) { QStandardItem *item = m_peerItems.take(peerEndpoint); - QSet &items = m_itemsByIP[peerEndpoint.address.ip]; - items.remove(item); - if (items.isEmpty()) - m_itemsByIP.remove(peerEndpoint.address.ip); + const auto items = m_itemsByIP.find(peerEndpoint.address.ip); + Q_ASSERT(items != m_itemsByIP.end()); + if (items == m_itemsByIP.end()) [[unlikely]] + continue; + + items->remove(item); + if (items->isEmpty()) + m_itemsByIP.erase(items); m_listModel->removeRow(item->row()); } diff --git a/src/gui/properties/peersadditiondialog.cpp b/src/gui/properties/peersadditiondialog.cpp index 6ef62a7f1..a98227083 100644 --- a/src/gui/properties/peersadditiondialog.cpp +++ b/src/gui/properties/peersadditiondialog.cpp @@ -50,7 +50,7 @@ PeersAdditionDialog::~PeersAdditionDialog() delete m_ui; } -QVector PeersAdditionDialog::askForPeers(QWidget *parent) +QList PeersAdditionDialog::askForPeers(QWidget *parent) { PeersAdditionDialog dlg(parent); dlg.exec(); diff --git a/src/gui/properties/peersadditiondialog.h b/src/gui/properties/peersadditiondialog.h index a778ccb39..078b7f775 100644 --- a/src/gui/properties/peersadditiondialog.h +++ b/src/gui/properties/peersadditiondialog.h @@ -29,7 +29,7 @@ #pragma once #include -#include +#include #include "base/bittorrent/peerinfo.h" @@ -47,12 +47,12 @@ public: PeersAdditionDialog(QWidget *parent); ~PeersAdditionDialog(); - static QVector askForPeers(QWidget *parent); + static QList askForPeers(QWidget *parent); protected slots: void validateInput(); private: Ui::PeersAdditionDialog *m_ui = nullptr; - QVector m_peersList; + QList m_peersList; }; diff --git a/src/gui/properties/peersadditiondialog.ui b/src/gui/properties/peersadditiondialog.ui index 3084080fe..fcc39159a 100644 --- a/src/gui/properties/peersadditiondialog.ui +++ b/src/gui/properties/peersadditiondialog.ui @@ -23,8 +23,11 @@ + + true + - QTextEdit::NoWrap + QTextEdit::LineWrapMode::NoWrap false @@ -37,10 +40,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/properties/pieceavailabilitybar.cpp b/src/gui/properties/pieceavailabilitybar.cpp index 0f33d704b..5a9e61845 100644 --- a/src/gui/properties/pieceavailabilitybar.cpp +++ b/src/gui/properties/pieceavailabilitybar.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -40,9 +41,9 @@ PieceAvailabilityBar::PieceAvailabilityBar(QWidget *parent) { } -QVector PieceAvailabilityBar::intToFloatVector(const QVector &vecin, int reqSize) +QList PieceAvailabilityBar::intToFloatVector(const QList &vecin, int reqSize) { - QVector result(reqSize, 0.0); + QList result(reqSize, 0.0); if (vecin.isEmpty()) return result; const float ratio = static_cast(vecin.size()) / reqSize; @@ -126,39 +127,38 @@ QVector PieceAvailabilityBar::intToFloatVector(const QVector &vecin, return result; } -bool PieceAvailabilityBar::updateImage(QImage &image) +QImage PieceAvailabilityBar::renderImage() { - QImage image2(width() - 2 * borderWidth, 1, QImage::Format_RGB888); - if (image2.isNull()) + QImage image {width() - 2 * borderWidth, 1, QImage::Format_RGB888}; + if (image.isNull()) { - qDebug() << "QImage image2() allocation failed, width():" << width(); - return false; + qDebug() << "QImage allocation failed, width():" << width(); + return image; } if (m_pieces.empty()) { - image2.fill(backgroundColor()); - image = image2; - return true; + image.fill(backgroundColor()); + return image; } - QVector scaledPieces = intToFloatVector(m_pieces, image2.width()); + QList scaledPieces = intToFloatVector(m_pieces, image.width()); // filling image for (int x = 0; x < scaledPieces.size(); ++x) { float piecesToValue = scaledPieces.at(x); - image2.setPixel(x, 0, pieceColors()[piecesToValue * 255]); + image.setPixel(x, 0, pieceColors()[piecesToValue * 255]); } - image = image2; - return true; + + return image; } -void PieceAvailabilityBar::setAvailability(const QVector &avail) +void PieceAvailabilityBar::setAvailability(const QList &avail) { m_pieces = avail; - requestImageUpdate(); + redraw(); } void PieceAvailabilityBar::clear() diff --git a/src/gui/properties/pieceavailabilitybar.h b/src/gui/properties/pieceavailabilitybar.h index 05472d489..3fb6be98e 100644 --- a/src/gui/properties/pieceavailabilitybar.h +++ b/src/gui/properties/pieceavailabilitybar.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -40,19 +41,19 @@ class PieceAvailabilityBar final : public PiecesBar public: PieceAvailabilityBar(QWidget *parent); - void setAvailability(const QVector &avail); + void setAvailability(const QList &avail); // PiecesBar interface void clear() override; private: - bool updateImage(QImage &image) override; + QImage renderImage() override; QString simpleToolTipText() const override; // last used int vector, uses to better resize redraw // TODO: make a diff pieces to new pieces and update only changed pixels, speedup when update > 20x faster - QVector m_pieces; + QList m_pieces; // scale int vector to float vector - QVector intToFloatVector(const QVector &vecin, int reqSize); + QList intToFloatVector(const QList &vecin, int reqSize); }; diff --git a/src/gui/properties/piecesbar.cpp b/src/gui/properties/piecesbar.cpp index 0d42ec2ab..87b941493 100644 --- a/src/gui/properties/piecesbar.cpp +++ b/src/gui/properties/piecesbar.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2016 Eugene Shalygin * Copyright (C) 2006 Christophe Dumez * @@ -114,10 +115,10 @@ namespace } PiecesBar::PiecesBar(QWidget *parent) - : QWidget {parent} + : QWidget(parent) { - updatePieceColors(); setMouseTracking(true); + updateColorsImpl(); } void PiecesBar::setTorrent(const BitTorrent::Torrent *torrent) @@ -135,12 +136,19 @@ void PiecesBar::clear() bool PiecesBar::event(QEvent *e) { - if (e->type() == QEvent::ToolTip) + const QEvent::Type eventType = e->type(); + if (eventType == QEvent::ToolTip) { showToolTip(static_cast(e)); return true; } + if (eventType == QEvent::PaletteChange) + { + updateColors(); + redraw(); + } + return base::event(e); } @@ -154,7 +162,7 @@ void PiecesBar::leaveEvent(QEvent *e) { m_hovered = false; m_highlightedRegion = {}; - requestImageUpdate(); + redraw(); base::leaveEvent(e); } @@ -178,16 +186,17 @@ void PiecesBar::paintEvent(QPaintEvent *) else { if (m_image.width() != imageRect.width()) - updateImage(m_image); + { + if (const QImage image = renderImage(); !image.isNull()) + m_image = image; + } painter.drawImage(imageRect, m_image); } if (!m_highlightedRegion.isNull()) { - QColor highlightColor {this->palette().color(QPalette::Active, QPalette::Highlight)}; - highlightColor.setAlphaF(0.35f); QRect targetHighlightRect {m_highlightedRegion.adjusted(borderWidth, borderWidth, borderWidth, height() - 2 * borderWidth)}; - painter.fillRect(targetHighlightRect, highlightColor); + painter.fillRect(targetHighlightRect, highlightedPieceColor()); } QPainterPath border; @@ -196,33 +205,43 @@ void PiecesBar::paintEvent(QPaintEvent *) painter.drawPath(border); } -void PiecesBar::requestImageUpdate() +void PiecesBar::redraw() { - if (updateImage(m_image)) + if (const QImage image = renderImage(); !image.isNull()) + { + m_image = image; update(); + } } QColor PiecesBar::backgroundColor() const { - return palette().color(QPalette::Base); + return palette().color(QPalette::Active, QPalette::Base); } QColor PiecesBar::borderColor() const { - return palette().color(QPalette::Dark); + return palette().color(QPalette::Active, QPalette::Dark); } QColor PiecesBar::pieceColor() const { - return palette().color(QPalette::Highlight); + return palette().color(QPalette::Active, QPalette::Highlight); +} + +QColor PiecesBar::highlightedPieceColor() const +{ + QColor col = palette().color(QPalette::Highlight).darker(); + col.setAlphaF(0.35); + return col; } QColor PiecesBar::colorBoxBorderColor() const { - return palette().color(QPalette::ToolTipText); + return palette().color(QPalette::Active, QPalette::ToolTipText); } -const QVector &PiecesBar::pieceColors() const +const QList &PiecesBar::pieceColors() const { return m_pieceColors; } @@ -261,7 +280,7 @@ void PiecesBar::showToolTip(const QHelpEvent *e) { const PieceIndexToImagePos transform {torrentInfo, m_image}; const int pieceIndex = transform.pieceIndex(imagePos); - const QVector fileIndexes = torrentInfo.fileIndicesForPiece(pieceIndex); + const QList fileIndexes = torrentInfo.fileIndicesForPiece(pieceIndex); QString tooltipTitle; if (fileIndexes.count() > 1) @@ -305,7 +324,7 @@ void PiecesBar::highlightFile(int imagePos) PieceIndexToImagePos transform {torrentInfo, m_image}; int pieceIndex = transform.pieceIndex(imagePos); - QVector fileIndices {torrentInfo.fileIndicesForPiece(pieceIndex)}; + QList fileIndices {torrentInfo.fileIndicesForPiece(pieceIndex)}; if (fileIndices.count() == 1) { BitTorrent::TorrentInfo::PieceRange filePieces = torrentInfo.filePieces(fileIndices.first()); @@ -325,12 +344,17 @@ void PiecesBar::highlightFile(int imagePos) } } -void PiecesBar::updatePieceColors() +void PiecesBar::updateColors() { - m_pieceColors = QVector(256); + updateColorsImpl(); +} + +void PiecesBar::updateColorsImpl() +{ + m_pieceColors = QList(256); for (int i = 0; i < 256; ++i) { - float ratio = (i / 255.0); + const float ratio = (i / 255.0); m_pieceColors[i] = mixTwoColors(backgroundColor().rgb(), pieceColor().rgb(), ratio); } } diff --git a/src/gui/properties/piecesbar.h b/src/gui/properties/piecesbar.h index 2f6e20615..3811ae471 100644 --- a/src/gui/properties/piecesbar.h +++ b/src/gui/properties/piecesbar.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2016 Eugene Shalygin * Copyright (C) 2006 Christophe Dumez * @@ -54,23 +55,23 @@ public: virtual void clear(); - // QObject interface - bool event(QEvent *e) override; - protected: - // QWidget interface + bool event(QEvent *e) override; void enterEvent(QEnterEvent *e) override; void leaveEvent(QEvent *e) override; void mouseMoveEvent(QMouseEvent *e) override; - void paintEvent(QPaintEvent *e) override; - void requestImageUpdate(); + + virtual void updateColors(); + void redraw(); QColor backgroundColor() const; QColor borderColor() const; QColor pieceColor() const; + QColor highlightedPieceColor() const; QColor colorBoxBorderColor() const; - const QVector &pieceColors() const; + + const QList &pieceColors() const; // mix two colors by light model, ratio <0, 1> static QRgb mixTwoColors(QRgb rgb1, QRgb rgb2, float ratio); @@ -82,16 +83,14 @@ private: void highlightFile(int imagePos); virtual QString simpleToolTipText() const = 0; + virtual QImage renderImage() = 0; - // draw new image to replace the actual image - // returns true if image was successfully updated - virtual bool updateImage(QImage &image) = 0; - void updatePieceColors(); + void updateColorsImpl(); const BitTorrent::Torrent *m_torrent = nullptr; QImage m_image; // buffered 256 levels gradient from bg_color to piece_color - QVector m_pieceColors; + QList m_pieceColors; bool m_hovered = false; QRect m_highlightedRegion; // part of the bar can be highlighted; this rectangle is in the same frame as m_image }; diff --git a/src/gui/properties/propertieswidget.cpp b/src/gui/properties/propertieswidget.cpp index 980978cb9..ad9673272 100644 --- a/src/gui/properties/propertieswidget.cpp +++ b/src/gui/properties/propertieswidget.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -39,7 +39,6 @@ #include #include #include -#include #include #include "base/bittorrent/infohash.h" @@ -52,10 +51,12 @@ #include "base/utils/misc.h" #include "base/utils/string.h" #include "gui/autoexpandabledialog.h" +#include "gui/filterpatternformatmenu.h" #include "gui/lineedit.h" #include "gui/trackerlist/trackerlistwidget.h" #include "gui/uithememanager.h" #include "gui/utils.h" +#include "gui/utils/keysequence.h" #include "downloadedpiecesbar.h" #include "peerlistwidget.h" #include "pieceavailabilitybar.h" @@ -66,6 +67,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent) : QWidget(parent) , m_ui {new Ui::PropertiesWidget} + , m_storeFilterPatternFormat {u"GUI/PropertiesWidget/FilterPatternFormat"_s} { m_ui->setupUi(this); #ifndef Q_OS_MACOS @@ -78,7 +80,9 @@ PropertiesWidget::PropertiesWidget(QWidget *parent) m_contentFilterLine = new LineEdit(this); m_contentFilterLine->setPlaceholderText(tr("Filter files...")); m_contentFilterLine->setFixedWidth(300); - connect(m_contentFilterLine, &LineEdit::textChanged, m_ui->filesList, &TorrentContentWidget::setFilterPattern); + m_contentFilterLine->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_contentFilterLine, &QWidget::customContextMenuRequested, this, &PropertiesWidget::showContentFilterContextMenu); + connect(m_contentFilterLine, &LineEdit::textChanged, this, &PropertiesWidget::setContentFilterPattern); m_ui->contentFilterLayout->insertWidget(3, m_contentFilterLine); m_ui->filesList->setDoubleClickAction(TorrentContentWidget::DoubleClickAction::Open); @@ -133,7 +137,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent) const auto *editWebSeedsHotkey = new QShortcut(Qt::Key_F2, m_ui->listWebSeeds, nullptr, nullptr, Qt::WidgetShortcut); connect(editWebSeedsHotkey, &QShortcut::activated, this, &PropertiesWidget::editWebSeed); - const auto *deleteWebSeedsHotkey = new QShortcut(QKeySequence::Delete, m_ui->listWebSeeds, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteWebSeedsHotkey = new QShortcut(Utils::KeySequence::deleteItem(), m_ui->listWebSeeds, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteWebSeedsHotkey, &QShortcut::activated, this, &PropertiesWidget::deleteSelectedUrlSeeds); connect(m_ui->listWebSeeds, &QListWidget::doubleClicked, this, &PropertiesWidget::editWebSeed); @@ -206,6 +210,7 @@ void PropertiesWidget::clear() m_ui->labelSavePathVal->clear(); m_ui->labelCreatedOnVal->clear(); m_ui->labelTotalPiecesVal->clear(); + m_ui->labelPrivateVal->clear(); m_ui->labelInfohash1Val->clear(); m_ui->labelInfohash2Val->clear(); m_ui->labelCommentVal->clear(); @@ -274,6 +279,28 @@ void PropertiesWidget::updateSavePath(BitTorrent::Torrent *const torrent) m_ui->labelSavePathVal->setText(m_torrent->savePath().toString()); } +void PropertiesWidget::showContentFilterContextMenu() +{ + QMenu *menu = m_contentFilterLine->createStandardContextMenu(); + + auto *formatMenu = new FilterPatternFormatMenu(m_storeFilterPatternFormat.get(FilterPatternFormat::Wildcards), menu); + connect(formatMenu, &FilterPatternFormatMenu::patternFormatChanged, this, [this](const FilterPatternFormat format) + { + m_storeFilterPatternFormat = format; + setContentFilterPattern(); + }); + + menu->addSeparator(); + menu->addMenu(formatMenu); + menu->setAttribute(Qt::WA_DeleteOnClose); + menu->popup(QCursor::pos()); +} + +void PropertiesWidget::setContentFilterPattern() +{ + m_ui->filesList->setFilterPattern(m_contentFilterLine->text(), m_storeFilterPatternFormat.get(FilterPatternFormat::Wildcards)); +} + void PropertiesWidget::updateTorrentInfos(BitTorrent::Torrent *const torrent) { if (torrent == m_torrent) @@ -309,7 +336,14 @@ void PropertiesWidget::loadTorrentInfos(BitTorrent::Torrent *const torrent) m_ui->labelCommentVal->setText(Utils::Misc::parseHtmlLinks(m_torrent->comment().toHtmlEscaped())); m_ui->labelCreatedByVal->setText(m_torrent->creator()); + + m_ui->labelPrivateVal->setText(m_torrent->isPrivate() ? tr("Yes") : tr("No")); } + else + { + m_ui->labelPrivateVal->setText(tr("N/A")); + } + // Load dynamic data loadDynamicData(); } @@ -445,7 +479,7 @@ void PropertiesWidget::loadDynamicData() { // Pieces availability showPiecesAvailability(true); - m_torrent->fetchPieceAvailability([this, torrent = TorrentPtr(m_torrent)](const QVector &pieceAvailability) + m_torrent->fetchPieceAvailability([this, torrent = TorrentPtr(m_torrent)](const QList &pieceAvailability) { if (torrent == m_torrent) m_piecesAvailability->setAvailability(pieceAvailability); @@ -491,17 +525,17 @@ void PropertiesWidget::loadUrlSeeds() return; using TorrentPtr = QPointer; - m_torrent->fetchURLSeeds([this, torrent = TorrentPtr(m_torrent)](const QVector &urlSeeds) + m_torrent->fetchURLSeeds([this, torrent = TorrentPtr(m_torrent)](const QList &urlSeeds) { if (torrent != m_torrent) return; m_ui->listWebSeeds->clear(); - qDebug("Loading URL seeds"); + qDebug("Loading web seeds"); // Add url seeds for (const QUrl &urlSeed : urlSeeds) { - qDebug("Loading URL seed: %s", qUtf8Printable(urlSeed.toString())); + qDebug("Loading web seed: %s", qUtf8Printable(urlSeed.toString())); new QListWidgetItem(urlSeed.toString(), m_ui->listWebSeeds); } }); @@ -516,16 +550,16 @@ void PropertiesWidget::displayWebSeedListMenu() QMenu *menu = new QMenu(this); menu->setAttribute(Qt::WA_DeleteOnClose); - menu->addAction(UIThemeManager::instance()->getIcon(u"list-add"_s), tr("New Web seed"), this, &PropertiesWidget::askWebSeed); + menu->addAction(UIThemeManager::instance()->getIcon(u"list-add"_s), tr("Add web seed..."), this, &PropertiesWidget::askWebSeed); if (!rows.isEmpty()) { - menu->addAction(UIThemeManager::instance()->getIcon(u"edit-clear"_s, u"list-remove"_s), tr("Remove Web seed") + menu->addAction(UIThemeManager::instance()->getIcon(u"edit-clear"_s, u"list-remove"_s), tr("Remove web seed") , this, &PropertiesWidget::deleteSelectedUrlSeeds); menu->addSeparator(); - menu->addAction(UIThemeManager::instance()->getIcon(u"edit-copy"_s), tr("Copy Web seed URL") + menu->addAction(UIThemeManager::instance()->getIcon(u"edit-copy"_s), tr("Copy web seed URL") , this, &PropertiesWidget::copySelectedWebSeedsToClipboard); - menu->addAction(UIThemeManager::instance()->getIcon(u"edit-rename"_s), tr("Edit Web seed URL") + menu->addAction(UIThemeManager::instance()->getIcon(u"edit-rename"_s), tr("Edit web seed URL...") , this, &PropertiesWidget::editWebSeed); } @@ -573,14 +607,14 @@ void PropertiesWidget::askWebSeed() { bool ok = false; // Ask user for a new url seed - const QString urlSeed = AutoExpandableDialog::getText(this, tr("New URL seed", "New HTTP source"), - tr("New URL seed:"), QLineEdit::Normal, + const QString urlSeed = AutoExpandableDialog::getText(this, tr("Add web seed", "Add HTTP source"), + tr("Add web seed:"), QLineEdit::Normal, u"http://www."_s, &ok); if (!ok) return; qDebug("Adding %s web seed", qUtf8Printable(urlSeed)); if (!m_ui->listWebSeeds->findItems(urlSeed, Qt::MatchFixedString).empty()) { - QMessageBox::warning(this, u"qBittorrent"_s, tr("This URL seed is already in the list."), QMessageBox::Ok); + QMessageBox::warning(this, u"qBittorrent"_s, tr("This web seed is already in the list."), QMessageBox::Ok); return; } if (m_torrent) @@ -594,7 +628,7 @@ void PropertiesWidget::deleteSelectedUrlSeeds() const QList selectedItems = m_ui->listWebSeeds->selectedItems(); if (selectedItems.isEmpty()) return; - QVector urlSeeds; + QList urlSeeds; urlSeeds.reserve(selectedItems.size()); for (const QListWidgetItem *item : selectedItems) @@ -633,7 +667,7 @@ void PropertiesWidget::editWebSeed() if (!m_ui->listWebSeeds->findItems(newSeed, Qt::MatchFixedString).empty()) { QMessageBox::warning(this, u"qBittorrent"_s, - tr("This URL seed is already in the list."), + tr("This web seed is already in the list."), QMessageBox::Ok); return; } diff --git a/src/gui/properties/propertieswidget.h b/src/gui/properties/propertieswidget.h index 31a1963b0..21b1b5fc5 100644 --- a/src/gui/properties/propertieswidget.h +++ b/src/gui/properties/propertieswidget.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -32,7 +32,8 @@ #include #include -#include "base/pathfwd.h" +#include "base/settingvalue.h" +#include "gui/filterpatternformat.h" class QPushButton; class QTreeView; @@ -102,6 +103,8 @@ private slots: private: QPushButton *getButtonFromIndex(int index); + void showContentFilterContextMenu(); + void setContentFilterPattern(); Ui::PropertiesWidget *m_ui = nullptr; BitTorrent::Torrent *m_torrent = nullptr; @@ -115,4 +118,6 @@ private: PropTabBar *m_tabBar = nullptr; LineEdit *m_contentFilterLine = nullptr; int m_handleWidth = -1; + + SettingValue m_storeFilterPatternFormat; }; diff --git a/src/gui/properties/propertieswidget.ui b/src/gui/properties/propertieswidget.ui index 17ffa6b4f..dd21f6fef 100644 --- a/src/gui/properties/propertieswidget.ui +++ b/src/gui/properties/propertieswidget.ui @@ -81,7 +81,14 @@ Progress: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + Qt::TextFormat::PlainText @@ -94,7 +101,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -110,7 +117,14 @@ Availability: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + Qt::TextFormat::PlainText @@ -123,21 +137,7 @@ - Qt::PlainText - - - - - - - Qt::PlainText - - - - - - - Qt::PlainText + Qt::TextFormat::PlainText @@ -147,7 +147,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -163,21 +163,8 @@ 4 - - - - - 0 - 0 - - - - Qt::PlainText - - - - - + + 0 @@ -185,15 +172,15 @@ - Upload Speed: + Time Active: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - + + 0 @@ -201,12 +188,12 @@ - Qt::PlainText + Qt::TextFormat::PlainText - - + + 0 @@ -214,10 +201,23 @@ - Peers: + ETA: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText @@ -233,12 +233,12 @@ Connections: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - + + 0 @@ -246,12 +246,28 @@ - Qt::PlainText + Qt::TextFormat::PlainText - - + + + + + 0 + 0 + + + + Downloaded: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + 0 @@ -259,7 +275,152 @@ - Qt::PlainText + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Uploaded: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Seeds: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Download Speed: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Upload Speed: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Peers: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText @@ -275,7 +436,78 @@ Download Limit: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Upload Limit: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Wasted: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText @@ -291,7 +523,78 @@ Share Ratio: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Reannounce In: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + + + + + + 0 + 0 + + + + Last Seen Complete: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText @@ -310,207 +613,7 @@ Popularity: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Downloaded: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Upload Limit: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Last Seen Complete: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Reannounce In: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Seeds: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Download Speed: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Qt::PlainText + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -526,110 +629,7 @@ Ratio / Time Active (in months), indicates how popular the torrent is - Qt::PlainText - - - - - - - - 0 - 0 - - - - Uploaded: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - Time Active: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - - - - - - 0 - 0 - - - - ETA: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - Wasted: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::TextFormat::PlainText @@ -660,7 +660,7 @@ Total Size: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -673,7 +673,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -689,7 +689,7 @@ Pieces: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -702,7 +702,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -718,7 +718,7 @@ Created By: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -731,7 +731,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -747,7 +747,7 @@ Added On: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -760,7 +760,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -776,7 +776,7 @@ Completed On: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -789,7 +789,7 @@ - Qt::PlainText + Qt::TextFormat::PlainText @@ -805,7 +805,7 @@ Created On: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter @@ -818,11 +818,43 @@ - Qt::PlainText + Qt::TextFormat::PlainText + + + + 0 + 0 + + + + Private: + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + Qt::TextInteractionFlag::TextSelectableByMouse + + + + @@ -834,11 +866,27 @@ Info Hash v1: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + Qt::TextInteractionFlag::TextSelectableByMouse + + + + @@ -850,11 +898,11 @@ Info Hash v2: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - + @@ -863,14 +911,14 @@ - Qt::PlainText + Qt::TextFormat::PlainText - Qt::TextSelectableByMouse + Qt::TextInteractionFlag::TextSelectableByMouse - + @@ -882,11 +930,30 @@ Save Path: - Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTop|Qt::AlignmentFlag::AlignTrailing - + + + + + 0 + 0 + + + + Qt::TextFormat::PlainText + + + true + + + Qt::TextInteractionFlag::TextSelectableByMouse + + + + @@ -898,46 +965,11 @@ Comment: - Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTop|Qt::AlignmentFlag::AlignTrailing - - - - - 0 - 0 - - - - Qt::PlainText - - - Qt::TextSelectableByMouse - - - - - - - - 0 - 0 - - - - Qt::PlainText - - - true - - - Qt::TextSelectableByMouse - - - - + @@ -946,10 +978,10 @@ - Qt::RichText + Qt::TextFormat::RichText - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop true @@ -958,7 +990,7 @@ true - Qt::TextBrowserInteraction + Qt::TextInteractionFlag::TextBrowserInteraction true @@ -993,7 +1025,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -1012,7 +1044,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -1059,10 +1091,10 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection @@ -1104,7 +1136,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -1119,13 +1151,13 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu - QAbstractItemView::AllEditTriggers + QAbstractItemView::EditTrigger::AllEditTriggers - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection true @@ -1158,7 +1190,7 @@ TorrentContentWidget QTreeView -
gui/torrentcontentwidget.h
+
gui/torrentcontentwidget.h
diff --git a/src/gui/properties/speedplotview.cpp b/src/gui/properties/speedplotview.cpp index 5dcb3d092..6fb78c95d 100644 --- a/src/gui/properties/speedplotview.cpp +++ b/src/gui/properties/speedplotview.cpp @@ -292,7 +292,7 @@ void SpeedPlotView::paintEvent(QPaintEvent *) rect.adjust(0, fontMetrics.height(), 0, 0); // Add top padding for top speed text // draw Y axis speed labels - const QVector speedLabels = + const QList speedLabels = { formatLabel(niceScale.arg, niceScale.unit), formatLabel((0.75 * niceScale.arg), niceScale.unit), @@ -358,7 +358,7 @@ void SpeedPlotView::paintEvent(QPaintEvent *) if (!m_properties[static_cast(id)].enable) continue; - QVector points; + QList points; milliseconds duration {0}; for (int i = static_cast(queue.size()) - 1; i >= 0; --i) diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index 6ebfaaf4c..f305cefb9 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -29,6 +29,7 @@ #include "automatedrssdownloader.h" +#include #include #include #include @@ -54,6 +55,7 @@ #include "gui/torrentcategorydialog.h" #include "gui/uithememanager.h" #include "gui/utils.h" +#include "gui/utils/keysequence.h" #include "ui_automatedrssdownloader.h" const QString EXT_JSON = u".json"_s; @@ -129,10 +131,17 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent) connect(m_ui->lineNotContains, &QLineEdit::textEdited, this, &AutomatedRssDownloader::updateMustNotLineValidity); connect(m_ui->lineEFilter, &QLineEdit::textEdited, this, &AutomatedRssDownloader::handleRuleDefinitionChanged); connect(m_ui->lineEFilter, &QLineEdit::textEdited, this, &AutomatedRssDownloader::updateEpisodeFilterValidity); +#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) + connect(m_ui->checkRegex, &QCheckBox::checkStateChanged, this, &AutomatedRssDownloader::handleRuleDefinitionChanged); + connect(m_ui->checkRegex, &QCheckBox::checkStateChanged, this, &AutomatedRssDownloader::updateMustLineValidity); + connect(m_ui->checkRegex, &QCheckBox::checkStateChanged, this, &AutomatedRssDownloader::updateMustNotLineValidity); + connect(m_ui->checkSmart, &QCheckBox::checkStateChanged, this, &AutomatedRssDownloader::handleRuleDefinitionChanged); +#else connect(m_ui->checkRegex, &QCheckBox::stateChanged, this, &AutomatedRssDownloader::handleRuleDefinitionChanged); connect(m_ui->checkRegex, &QCheckBox::stateChanged, this, &AutomatedRssDownloader::updateMustLineValidity); connect(m_ui->checkRegex, &QCheckBox::stateChanged, this, &AutomatedRssDownloader::updateMustNotLineValidity); connect(m_ui->checkSmart, &QCheckBox::stateChanged, this, &AutomatedRssDownloader::handleRuleDefinitionChanged); +#endif connect(m_ui->spinIgnorePeriod, qOverload(&QSpinBox::valueChanged) , this, &AutomatedRssDownloader::handleRuleDefinitionChanged); @@ -143,7 +152,7 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent) const auto *editHotkey = new QShortcut(Qt::Key_F2, m_ui->ruleList, nullptr, nullptr, Qt::WidgetShortcut); connect(editHotkey, &QShortcut::activated, this, &AutomatedRssDownloader::renameSelectedRule); - const auto *deleteHotkey = new QShortcut(QKeySequence::Delete, m_ui->ruleList, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteHotkey = new QShortcut(Utils::KeySequence::deleteItem(), m_ui->ruleList, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteHotkey, &QShortcut::activated, this, &AutomatedRssDownloader::onRemoveRuleBtnClicked); connect(m_ui->ruleList, &QAbstractItemView::doubleClicked, this, &AutomatedRssDownloader::renameSelectedRule); diff --git a/src/gui/rss/automatedrssdownloader.ui b/src/gui/rss/automatedrssdownloader.ui index a78b26f3d..ad54a0eb0 100644 --- a/src/gui/rss/automatedrssdownloader.ui +++ b/src/gui/rss/automatedrssdownloader.ui @@ -41,7 +41,7 @@
- Qt::Horizontal + Qt::Orientation::Horizontal @@ -100,7 +100,7 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu @@ -108,7 +108,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -118,13 +118,13 @@ - Qt::ScrollBarAlwaysOn + Qt::ScrollBarPolicy::ScrollBarAlwaysOn - Qt::ScrollBarAsNeeded + Qt::ScrollBarPolicy::ScrollBarAsNeeded - QAbstractScrollArea::AdjustToContentsOnFirstShow + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContentsOnFirstShow true @@ -154,7 +154,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -182,22 +182,11 @@
- - - - Must Not Contain: - - + + - - - - Episode Filter: - - - - - + + 18 @@ -206,6 +195,16 @@ + + + + Must Not Contain: + + + + + + @@ -216,11 +215,18 @@ - - + + + + Episode Filter: + + - - + + + + + 18 @@ -239,12 +245,6 @@ - - - - - - @@ -294,7 +294,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also true
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter
@@ -325,7 +325,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Qt::Vertical + Qt::Orientation::Vertical @@ -341,7 +341,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - QLayout::SetDefaultConstraint + QLayout::SizeConstraint::SetDefaultConstraint @@ -416,10 +416,10 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Qt::StrongFocus + Qt::FocusPolicy::StrongFocus - QDialogButtonBox::Close + QDialogButtonBox::StandardButton::Close @@ -427,20 +427,6 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - renameRuleBtn - removeRuleBtn - addRuleBtn - ruleList - lineContains - lineNotContains - lineEFilter - spinIgnorePeriod - listFeeds - matchingArticlesTree - importBtn - exportBtn - diff --git a/src/gui/rss/htmlbrowser.cpp b/src/gui/rss/htmlbrowser.cpp index ecf3ff7ad..4c34923bc 100644 --- a/src/gui/rss/htmlbrowser.cpp +++ b/src/gui/rss/htmlbrowser.cpp @@ -106,10 +106,12 @@ void HtmlBrowser::resourceLoaded(QNetworkReply *reply) atts[QNetworkRequest::HttpStatusCodeAttribute] = 200; atts[QNetworkRequest::HttpReasonPhraseAttribute] = u"Ok"_s; metaData.setAttributes(atts); - metaData.setLastModified(QDateTime::currentDateTime()); - metaData.setExpirationDate(QDateTime::currentDateTime().addDays(1)); + const auto currentDateTime = QDateTime::currentDateTime(); + metaData.setLastModified(currentDateTime); + metaData.setExpirationDate(currentDateTime.addDays(1)); QIODevice *dev = m_diskCache->prepare(metaData); - if (!dev) return; + if (!dev) + return; QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning).pixmap(32, 32).save(dev, "PNG"); m_diskCache->insert(dev); diff --git a/src/gui/rss/rssfeeddialog.cpp b/src/gui/rss/rssfeeddialog.cpp new file mode 100644 index 000000000..e179617ff --- /dev/null +++ b/src/gui/rss/rssfeeddialog.cpp @@ -0,0 +1,82 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 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 "rssfeeddialog.h" + +#include + +#include "ui_rssfeeddialog.h" + +RSSFeedDialog::RSSFeedDialog(QWidget *parent) + : QDialog(parent) + , m_ui {new Ui::RSSFeedDialog} +{ + m_ui->setupUi(this); + + m_ui->spinRefreshInterval->setMaximum(std::numeric_limits::max()); + m_ui->spinRefreshInterval->setStepType(QAbstractSpinBox::AdaptiveDecimalStepType); + m_ui->spinRefreshInterval->setSuffix(tr(" sec")); + m_ui->spinRefreshInterval->setSpecialValueText(tr("Default")); + + // disable Ok button + m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + + connect(m_ui->textFeedURL, &QLineEdit::textChanged, this, &RSSFeedDialog::feedURLChanged); +} + +RSSFeedDialog::~RSSFeedDialog() +{ + delete m_ui; +} + +QString RSSFeedDialog::feedURL() const +{ + return m_ui->textFeedURL->text(); +} + +void RSSFeedDialog::setFeedURL(const QString &feedURL) +{ + m_ui->textFeedURL->setText(feedURL); +} + +std::chrono::seconds RSSFeedDialog::refreshInterval() const +{ + return std::chrono::seconds(m_ui->spinRefreshInterval->value()); +} + +void RSSFeedDialog::setRefreshInterval(const std::chrono::seconds refreshInterval) +{ + m_ui->spinRefreshInterval->setValue(refreshInterval.count()); +} + +void RSSFeedDialog::feedURLChanged(const QString &feedURL) +{ + m_ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!feedURL.isEmpty()); +} diff --git a/src/gui/rss/rssfeeddialog.h b/src/gui/rss/rssfeeddialog.h new file mode 100644 index 000000000..d97f605a0 --- /dev/null +++ b/src/gui/rss/rssfeeddialog.h @@ -0,0 +1,57 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 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. + */ + +#pragma once + +#include +#include + +namespace Ui +{ + class RSSFeedDialog; +} + +class RSSFeedDialog final : public QDialog +{ + Q_OBJECT + Q_DISABLE_COPY_MOVE(RSSFeedDialog) + +public: + explicit RSSFeedDialog(QWidget *parent = nullptr); + ~RSSFeedDialog() override; + + QString feedURL() const; + void setFeedURL(const QString &feedURL); + std::chrono::seconds refreshInterval() const; + void setRefreshInterval(std::chrono::seconds refreshInterval); + +private: + void feedURLChanged(const QString &feedURL); + + Ui::RSSFeedDialog *m_ui = nullptr; +}; diff --git a/src/gui/rss/rssfeeddialog.ui b/src/gui/rss/rssfeeddialog.ui new file mode 100644 index 000000000..601d4c798 --- /dev/null +++ b/src/gui/rss/rssfeeddialog.ui @@ -0,0 +1,75 @@ + + + RSSFeedDialog + + + + 0 + 0 + 555 + 106 + + + + RSS Feed Options + + + + + + + + URL: + + + + + + + + + + Refresh interval: + + + + + + + + 0 + 0 + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + Qt::Orientation::Horizontal + + + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok + + + + + + + + diff --git a/src/gui/rss/rsswidget.cpp b/src/gui/rss/rsswidget.cpp index 75d0be77a..98c272014 100644 --- a/src/gui/rss/rsswidget.cpp +++ b/src/gui/rss/rsswidget.cpp @@ -49,11 +49,61 @@ #include "gui/autoexpandabledialog.h" #include "gui/interfaces/iguiapplication.h" #include "gui/uithememanager.h" +#include "gui/utils/keysequence.h" #include "articlelistwidget.h" #include "automatedrssdownloader.h" #include "feedlistwidget.h" +#include "rssfeeddialog.h" #include "ui_rsswidget.h" +namespace +{ + void convertRelativeUrlToAbsolute(QString &html, const QString &baseUrl) + { + const QRegularExpression rx {uR"(((]*?href|]*?src)\s*=\s*["'])((https?|ftp):)?(\/\/[^\/]*)?(\/?[^\/"].*?)(["']))"_s + , QRegularExpression::CaseInsensitiveOption}; + + const QString normalizedBaseUrl = baseUrl.endsWith(u'/') ? baseUrl : (baseUrl + u'/'); + const QUrl url {normalizedBaseUrl}; + const QString defaultScheme = url.scheme(); + QRegularExpressionMatchIterator iter = rx.globalMatch(html); + + while (iter.hasNext()) + { + const QRegularExpressionMatch match = iter.next(); + const QStringView scheme = match.capturedView(4); + const QStringView host = match.capturedView(5); + if (!scheme.isEmpty()) + { + if (host.isEmpty()) + break; // invalid URL, should never happen + + // already absolute URL + continue; + } + + QStringView relativePath = match.capturedView(6); + if (relativePath.startsWith(u'/')) + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + relativePath.slice(1); +#else + relativePath = relativePath.sliced(1); +#endif + } + + const QString absoluteUrl = !host.isEmpty() + ? QString(defaultScheme + u':' + host) : (normalizedBaseUrl + relativePath); + const QString fullMatch = match.captured(0); + const QStringView prefix = match.capturedView(1); + const QStringView suffix = match.capturedView(7); + + html.replace(fullMatch, (prefix + absoluteUrl + suffix)); + } + } +} + + RSSWidget::RSSWidget(IGUIApplication *app, QWidget *parent) : GUIApplicationComponent(app, parent) , m_ui {new Ui::RSSWidget} @@ -64,7 +114,7 @@ RSSWidget::RSSWidget(IGUIApplication *app, QWidget *parent) m_ui->actionCopyFeedURL->setIcon(UIThemeManager::instance()->getIcon(u"edit-copy"_s)); m_ui->actionDelete->setIcon(UIThemeManager::instance()->getIcon(u"edit-clear"_s)); m_ui->actionDownloadTorrent->setIcon(UIThemeManager::instance()->getIcon(u"downloading"_s, u"download"_s)); - m_ui->actionEditFeedURL->setIcon(UIThemeManager::instance()->getIcon(u"edit-rename"_s)); + m_ui->actionEditFeed->setIcon(UIThemeManager::instance()->getIcon(u"edit-rename"_s)); m_ui->actionMarkItemsRead->setIcon(UIThemeManager::instance()->getIcon(u"task-complete"_s, u"mail-mark-read"_s)); m_ui->actionNewFolder->setIcon(UIThemeManager::instance()->getIcon(u"folder-new"_s)); m_ui->actionNewSubscription->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_s)); @@ -79,29 +129,25 @@ RSSWidget::RSSWidget(IGUIApplication *app, QWidget *parent) m_ui->rssDownloaderBtn->setIcon(UIThemeManager::instance()->getIcon(u"downloading"_s, u"download"_s)); #endif - m_articleListWidget = new ArticleListWidget(m_ui->splitterMain); - m_ui->splitterMain->insertWidget(0, m_articleListWidget); - connect(m_articleListWidget, &ArticleListWidget::customContextMenuRequested, this, &RSSWidget::displayItemsListMenu); - connect(m_articleListWidget, &ArticleListWidget::currentItemChanged, this, &RSSWidget::handleCurrentArticleItemChanged); - connect(m_articleListWidget, &ArticleListWidget::itemDoubleClicked, this, &RSSWidget::downloadSelectedTorrents); + connect(m_ui->articleListWidget, &ArticleListWidget::customContextMenuRequested, this, &RSSWidget::displayItemsListMenu); + connect(m_ui->articleListWidget, &ArticleListWidget::currentItemChanged, this, &RSSWidget::handleCurrentArticleItemChanged); + connect(m_ui->articleListWidget, &ArticleListWidget::itemDoubleClicked, this, &RSSWidget::downloadSelectedTorrents); - m_feedListWidget = new FeedListWidget(m_ui->splitterSide); - m_ui->splitterSide->insertWidget(0, m_feedListWidget); - connect(m_feedListWidget, &QAbstractItemView::doubleClicked, this, &RSSWidget::renameSelectedRSSItem); - connect(m_feedListWidget, &QTreeWidget::currentItemChanged, this, &RSSWidget::handleCurrentFeedItemChanged); - connect(m_feedListWidget, &QWidget::customContextMenuRequested, this, &RSSWidget::displayRSSListMenu); + connect(m_ui->feedListWidget, &QAbstractItemView::doubleClicked, this, &RSSWidget::renameSelectedRSSItem); + connect(m_ui->feedListWidget, &QTreeWidget::currentItemChanged, this, &RSSWidget::handleCurrentFeedItemChanged); + connect(m_ui->feedListWidget, &QWidget::customContextMenuRequested, this, &RSSWidget::displayRSSListMenu); loadFoldersOpenState(); - m_feedListWidget->setCurrentItem(m_feedListWidget->stickyUnreadItem()); + m_ui->feedListWidget->setCurrentItem(m_ui->feedListWidget->stickyUnreadItem()); - const auto *editHotkey = new QShortcut(Qt::Key_F2, m_feedListWidget, nullptr, nullptr, Qt::WidgetShortcut); + const auto *editHotkey = new QShortcut(Qt::Key_F2, m_ui->feedListWidget, nullptr, nullptr, Qt::WidgetShortcut); connect(editHotkey, &QShortcut::activated, this, &RSSWidget::renameSelectedRSSItem); - const auto *deleteHotkey = new QShortcut(QKeySequence::Delete, m_feedListWidget, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteHotkey = new QShortcut(Utils::KeySequence::deleteItem(), m_ui->feedListWidget, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteHotkey, &QShortcut::activated, this, &RSSWidget::deleteSelectedItems); // Feeds list actions connect(m_ui->actionDelete, &QAction::triggered, this, &RSSWidget::deleteSelectedItems); connect(m_ui->actionRename, &QAction::triggered, this, &RSSWidget::renameSelectedRSSItem); - connect(m_ui->actionEditFeedURL, &QAction::triggered, this, &RSSWidget::editSelectedRSSFeedURL); + connect(m_ui->actionEditFeed, &QAction::triggered, this, &RSSWidget::editSelectedRSSFeed); connect(m_ui->actionUpdate, &QAction::triggered, this, &RSSWidget::refreshSelectedItems); connect(m_ui->actionNewFolder, &QAction::triggered, this, &RSSWidget::askNewFolder); connect(m_ui->actionNewSubscription, &QAction::triggered, this, &RSSWidget::on_newFeedButton_clicked); @@ -126,31 +172,32 @@ RSSWidget::RSSWidget(IGUIApplication *app, QWidget *parent) , this, &RSSWidget::handleSessionProcessingStateChanged); connect(RSS::Session::instance()->rootFolder(), &RSS::Folder::unreadCountChanged , this, &RSSWidget::handleUnreadCountChanged); + + m_ui->textBrowser->installEventFilter(this); } RSSWidget::~RSSWidget() { // we need it here to properly mark latest article // as read without having additional code - m_articleListWidget->clear(); + m_ui->articleListWidget->clear(); saveFoldersOpenState(); - delete m_feedListWidget; delete m_ui; } // display a right-click menu void RSSWidget::displayRSSListMenu(const QPoint &pos) { - if (!m_feedListWidget->indexAt(pos).isValid()) + if (!m_ui->feedListWidget->indexAt(pos).isValid()) // No item under the mouse, clear selection - m_feedListWidget->clearSelection(); + m_ui->feedListWidget->clearSelection(); QMenu *menu = new QMenu(this); menu->setAttribute(Qt::WA_DeleteOnClose); - const QList selectedItems = m_feedListWidget->selectedItems(); + const QList selectedItems = m_ui->feedListWidget->selectedItems(); if (!selectedItems.isEmpty()) { menu->addAction(m_ui->actionUpdate); @@ -160,14 +207,14 @@ void RSSWidget::displayRSSListMenu(const QPoint &pos) if (selectedItems.size() == 1) { QTreeWidgetItem *selectedItem = selectedItems.first(); - if (selectedItem != m_feedListWidget->stickyUnreadItem()) + if (selectedItem != m_ui->feedListWidget->stickyUnreadItem()) { menu->addAction(m_ui->actionRename); - if (m_feedListWidget->isFeed(selectedItem)) - menu->addAction(m_ui->actionEditFeedURL); + if (m_ui->feedListWidget->isFeed(selectedItem)) + menu->addAction(m_ui->actionEditFeed); menu->addAction(m_ui->actionDelete); menu->addSeparator(); - if (m_feedListWidget->isFolder(selectedItem)) + if (m_ui->feedListWidget->isFolder(selectedItem)) menu->addAction(m_ui->actionNewFolder); } } @@ -179,7 +226,7 @@ void RSSWidget::displayRSSListMenu(const QPoint &pos) menu->addAction(m_ui->actionNewSubscription); - if (m_feedListWidget->isFeed(selectedItems.first())) + if (m_ui->feedListWidget->isFeed(selectedItems.first())) { menu->addSeparator(); menu->addAction(m_ui->actionCopyFeedURL); @@ -200,7 +247,7 @@ void RSSWidget::displayItemsListMenu() { bool hasTorrent = false; bool hasLink = false; - for (const QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) + for (const QListWidgetItem *item : asConst(m_ui->articleListWidget->selectedItems())) { auto *article = item->data(Qt::UserRole).value(); Q_ASSERT(article); @@ -238,78 +285,88 @@ void RSSWidget::askNewFolder() // Determine destination folder for new item QTreeWidgetItem *destItem = nullptr; - QList selectedItems = m_feedListWidget->selectedItems(); + QList selectedItems = m_ui->feedListWidget->selectedItems(); if (!selectedItems.empty()) { destItem = selectedItems.first(); - if (!m_feedListWidget->isFolder(destItem)) + if (!m_ui->feedListWidget->isFolder(destItem)) destItem = destItem->parent(); } // Consider the case where the user clicked on Unread item - RSS::Folder *rssDestFolder = ((!destItem || (destItem == m_feedListWidget->stickyUnreadItem())) - ? RSS::Session::instance()->rootFolder() - : qobject_cast(m_feedListWidget->getRSSItem(destItem))); + RSS::Folder *rssDestFolder = ((!destItem || (destItem == m_ui->feedListWidget->stickyUnreadItem())) + ? RSS::Session::instance()->rootFolder() + : qobject_cast(m_ui->feedListWidget->getRSSItem(destItem))); const QString newFolderPath = RSS::Item::joinPath(rssDestFolder->path(), newName); - const nonstd::expected result = RSS::Session::instance()->addFolder(newFolderPath); + const nonstd::expected result = RSS::Session::instance()->addFolder(newFolderPath); if (!result) + { QMessageBox::warning(this, u"qBittorrent"_s, result.error(), QMessageBox::Ok); + return; + } + + RSS::Folder *newFolder = result.value(); // Expand destination folder to display new feed - if (destItem && (destItem != m_feedListWidget->stickyUnreadItem())) + if (destItem && (destItem != m_ui->feedListWidget->stickyUnreadItem())) destItem->setExpanded(true); // As new RSS items are added synchronously, we can do the following here. - m_feedListWidget->setCurrentItem(m_feedListWidget->mapRSSItem(RSS::Session::instance()->itemByPath(newFolderPath))); + m_ui->feedListWidget->setCurrentItem(m_ui->feedListWidget->mapRSSItem(newFolder)); } // add a stream by a button void RSSWidget::on_newFeedButton_clicked() { + // Determine destination folder for new item + QTreeWidgetItem *destItem = nullptr; + QList selectedItems = m_ui->feedListWidget->selectedItems(); + if (!selectedItems.empty()) + { + destItem = selectedItems.first(); + if (!m_ui->feedListWidget->isFolder(destItem)) + destItem = destItem->parent(); + } + // Consider the case where the user clicked on Unread item + RSS::Folder *destFolder = ((!destItem || (destItem == m_ui->feedListWidget->stickyUnreadItem())) + ? RSS::Session::instance()->rootFolder() + : qobject_cast(m_ui->feedListWidget->getRSSItem(destItem))); + // Ask for feed URL const QString clipText = qApp->clipboard()->text(); const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : u"http://"_s; - bool ok = false; - QString newURL = AutoExpandableDialog::getText( - this, tr("Please type a RSS feed URL"), tr("Feed URL:"), QLineEdit::Normal, defaultURL, &ok); - if (!ok) return; - - newURL = newURL.trimmed(); - if (newURL.isEmpty()) return; - - // Determine destination folder for new item - QTreeWidgetItem *destItem = nullptr; - QList selectedItems = m_feedListWidget->selectedItems(); - if (!selectedItems.empty()) + RSS::Feed *newFeed = nullptr; + RSSFeedDialog dialog {this}; + dialog.setFeedURL(defaultURL); + while (!newFeed && (dialog.exec() == RSSFeedDialog::Accepted)) { - destItem = selectedItems.first(); - if (!m_feedListWidget->isFolder(destItem)) - destItem = destItem->parent(); - } - // Consider the case where the user clicked on Unread item - RSS::Folder *rssDestFolder = ((!destItem || (destItem == m_feedListWidget->stickyUnreadItem())) - ? RSS::Session::instance()->rootFolder() - : qobject_cast(m_feedListWidget->getRSSItem(destItem))); + const QString feedURL = dialog.feedURL().trimmed(); + const std::chrono::seconds refreshInterval = dialog.refreshInterval(); - // NOTE: We still add feed using legacy way (with URL as feed name) - const QString newFeedPath = RSS::Item::joinPath(rssDestFolder->path(), newURL); - const nonstd::expected result = RSS::Session::instance()->addFeed(newURL, newFeedPath); - if (!result) - QMessageBox::warning(this, u"qBittorrent"_s, result.error(), QMessageBox::Ok); + const QString feedPath = RSS::Item::joinPath(destFolder->path(), feedURL); + const nonstd::expected result = RSS::Session::instance()->addFeed(feedURL, feedPath, refreshInterval); + if (result) + newFeed = result.value(); + else + QMessageBox::warning(&dialog, u"qBittorrent"_s, result.error(), QMessageBox::Ok); + } + + if (!newFeed) + return; // Expand destination folder to display new feed - if (destItem && (destItem != m_feedListWidget->stickyUnreadItem())) + if (destItem && (destItem != m_ui->feedListWidget->stickyUnreadItem())) destItem->setExpanded(true); // As new RSS items are added synchronously, we can do the following here. - m_feedListWidget->setCurrentItem(m_feedListWidget->mapRSSItem(RSS::Session::instance()->itemByPath(newFeedPath))); + m_ui->feedListWidget->setCurrentItem(m_ui->feedListWidget->mapRSSItem(newFeed)); } void RSSWidget::deleteSelectedItems() { - const QList selectedItems = m_feedListWidget->selectedItems(); + const QList selectedItems = m_ui->feedListWidget->selectedItems(); if (selectedItems.isEmpty()) return; - if ((selectedItems.size() == 1) && (selectedItems.first() == m_feedListWidget->stickyUnreadItem())) + if ((selectedItems.size() == 1) && (selectedItems.first() == m_ui->feedListWidget->stickyUnreadItem())) return; QMessageBox::StandardButton answer = QMessageBox::question( @@ -319,8 +376,8 @@ void RSSWidget::deleteSelectedItems() return; for (QTreeWidgetItem *item : selectedItems) - if (item != m_feedListWidget->stickyUnreadItem()) - RSS::Session::instance()->removeItem(m_feedListWidget->itemPath(item)); + if (item != m_ui->feedListWidget->stickyUnreadItem()) + RSS::Session::instance()->removeItem(m_ui->feedListWidget->itemPath(item)); } void RSSWidget::loadFoldersOpenState() @@ -331,11 +388,11 @@ void RSSWidget::loadFoldersOpenState() QTreeWidgetItem *parent = nullptr; for (const QString &name : asConst(varPath.split(u'\\'))) { - int nbChildren = (parent ? parent->childCount() : m_feedListWidget->topLevelItemCount()); + int nbChildren = (parent ? parent->childCount() : m_ui->feedListWidget->topLevelItemCount()); for (int i = 0; i < nbChildren; ++i) { - QTreeWidgetItem *child = (parent ? parent->child(i) : m_feedListWidget->topLevelItem(i)); - if (m_feedListWidget->getRSSItem(child)->name() == name) + QTreeWidgetItem *child = (parent ? parent->child(i) : m_ui->feedListWidget->topLevelItem(i)); + if (m_ui->feedListWidget->getRSSItem(child)->name() == name) { parent = child; parent->setExpanded(true); @@ -349,19 +406,19 @@ void RSSWidget::loadFoldersOpenState() void RSSWidget::saveFoldersOpenState() { QStringList openedFolders; - for (QTreeWidgetItem *item : asConst(m_feedListWidget->getAllOpenedFolders())) - openedFolders << m_feedListWidget->itemPath(item); + for (QTreeWidgetItem *item : asConst(m_ui->feedListWidget->getAllOpenedFolders())) + openedFolders << m_ui->feedListWidget->itemPath(item); Preferences::instance()->setRssOpenFolders(openedFolders); } void RSSWidget::refreshAllFeeds() { - RSS::Session::instance()->refresh(); + RSS::Session::instance()->rootFolder()->refresh(); } void RSSWidget::downloadSelectedTorrents() { - for (QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) + for (QListWidgetItem *item : asConst(m_ui->articleListWidget->selectedItems())) { auto *article = item->data(Qt::UserRole).value(); Q_ASSERT(article); @@ -376,7 +433,7 @@ void RSSWidget::downloadSelectedTorrents() // open the url of the selected RSS articles in the Web browser void RSSWidget::openSelectedArticlesUrls() { - for (QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) + for (QListWidgetItem *item : asConst(m_ui->articleListWidget->selectedItems())) { auto *article = item->data(Qt::UserRole).value(); Q_ASSERT(article); @@ -391,14 +448,14 @@ void RSSWidget::openSelectedArticlesUrls() void RSSWidget::renameSelectedRSSItem() { - QList selectedItems = m_feedListWidget->selectedItems(); + QList selectedItems = m_ui->feedListWidget->selectedItems(); if (selectedItems.size() != 1) return; QTreeWidgetItem *item = selectedItems.first(); - if (item == m_feedListWidget->stickyUnreadItem()) + if (item == m_ui->feedListWidget->stickyUnreadItem()) return; - RSS::Item *rssItem = m_feedListWidget->getRSSItem(item); + RSS::Item *rssItem = m_ui->feedListWidget->getRSSItem(item); const QString parentPath = RSS::Item::parentPath(rssItem->path()); bool ok = false; do @@ -418,49 +475,54 @@ void RSSWidget::renameSelectedRSSItem() } while (!ok); } -void RSSWidget::editSelectedRSSFeedURL() +void RSSWidget::editSelectedRSSFeed() { - QList selectedItems = m_feedListWidget->selectedItems(); + QList selectedItems = m_ui->feedListWidget->selectedItems(); if (selectedItems.size() != 1) return; QTreeWidgetItem *item = selectedItems.first(); - RSS::Feed *rssFeed = qobject_cast(m_feedListWidget->getRSSItem(item)); + RSS::Feed *rssFeed = qobject_cast(m_ui->feedListWidget->getRSSItem(item)); Q_ASSERT(rssFeed); if (!rssFeed) [[unlikely]] return; - bool ok = false; - QString newURL = AutoExpandableDialog::getText(this, tr("Please type a RSS feed URL") - , tr("Feed URL:"), QLineEdit::Normal, rssFeed->url(), &ok).trimmed(); - if (!ok || newURL.isEmpty()) - return; + auto *dialog = new RSSFeedDialog(this); + dialog->setAttribute(Qt::WA_DeleteOnClose); + dialog->setFeedURL(rssFeed->url()); + dialog->setRefreshInterval(rssFeed->refreshInterval()); + connect(dialog, &RSSFeedDialog::accepted, this, [this, dialog, rssFeed] + { + rssFeed->setRefreshInterval(dialog->refreshInterval()); - const nonstd::expected result = RSS::Session::instance()->setFeedURL(rssFeed, newURL); - if (!result) - QMessageBox::warning(this, u"qBittorrent"_s, result.error(), QMessageBox::Ok); + const QString newURL = dialog->feedURL(); + const nonstd::expected result = RSS::Session::instance()->setFeedURL(rssFeed, newURL); + if (!result) + QMessageBox::warning(this, u"qBittorrent"_s, result.error(), QMessageBox::Ok); + }); + dialog->open(); } void RSSWidget::refreshSelectedItems() { - for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) + for (QTreeWidgetItem *item : asConst(m_ui->feedListWidget->selectedItems())) { - if (item == m_feedListWidget->stickyUnreadItem()) + if (item == m_ui->feedListWidget->stickyUnreadItem()) { refreshAllFeeds(); return; } - m_feedListWidget->getRSSItem(item)->refresh(); + m_ui->feedListWidget->getRSSItem(item)->refresh(); } } void RSSWidget::copySelectedFeedsURL() { QStringList URLs; - for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) + for (QTreeWidgetItem *item : asConst(m_ui->feedListWidget->selectedItems())) { - if (auto *feed = qobject_cast(m_feedListWidget->getRSSItem(item))) + if (auto *feed = qobject_cast(m_ui->feedListWidget->getRSSItem(item))) URLs << feed->url(); } qApp->clipboard()->setText(URLs.join(u'\n')); @@ -468,16 +530,16 @@ void RSSWidget::copySelectedFeedsURL() void RSSWidget::handleCurrentFeedItemChanged(QTreeWidgetItem *currentItem) { - m_articleListWidget->setRSSItem(m_feedListWidget->getRSSItem(currentItem) - , (currentItem == m_feedListWidget->stickyUnreadItem())); + m_ui->articleListWidget->setRSSItem(m_ui->feedListWidget->getRSSItem(currentItem) + , (currentItem == m_ui->feedListWidget->stickyUnreadItem())); } void RSSWidget::on_markReadButton_clicked() { - for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) + for (QTreeWidgetItem *item : asConst(m_ui->feedListWidget->selectedItems())) { - m_feedListWidget->getRSSItem(item)->markAsRead(); - if (item == m_feedListWidget->stickyUnreadItem()) + m_ui->feedListWidget->getRSSItem(item)->markAsRead(); + if (item == m_ui->feedListWidget->stickyUnreadItem()) break; // all items was read } } @@ -489,65 +551,16 @@ void RSSWidget::handleCurrentArticleItemChanged(QListWidgetItem *currentItem, QL if (previousItem) { - auto *article = m_articleListWidget->getRSSArticle(previousItem); + auto *article = m_ui->articleListWidget->getRSSArticle(previousItem); Q_ASSERT(article); article->markAsRead(); } - if (!currentItem) return; + if (!currentItem) + return; - auto *article = m_articleListWidget->getRSSArticle(currentItem); - Q_ASSERT(article); - - const QString highlightedBaseColor = m_ui->textBrowser->palette().color(QPalette::Highlight).name(); - const QString highlightedBaseTextColor = m_ui->textBrowser->palette().color(QPalette::HighlightedText).name(); - const QString alternateBaseColor = m_ui->textBrowser->palette().color(QPalette::AlternateBase).name(); - - QString html = - u"
" + - u"
%3
"_s.arg(highlightedBaseColor, highlightedBaseTextColor, article->title()); - if (article->date().isValid()) - html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Date: "), QLocale::system().toString(article->date().toLocalTime())); - if (m_feedListWidget->currentItem() == m_feedListWidget->stickyUnreadItem()) - html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Feed: "), article->feed()->title()); - if (!article->author().isEmpty()) - html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Author: "), article->author()); - html += u"
" - u"
"; - if (Qt::mightBeRichText(article->description())) - { - html += article->description(); - } - else - { - QString description = article->description(); - QRegularExpression rx; - // If description is plain text, replace BBCode tags with HTML and wrap everything in
 so it looks nice
-        rx.setPatternOptions(QRegularExpression::InvertedGreedinessOption
-            | QRegularExpression::CaseInsensitiveOption);
-
-        rx.setPattern(u"\\[img\\](.+)\\[/img\\]"_s);
-        description = description.replace(rx, u""_s);
-
-        rx.setPattern(u"\\[url=(\")?(.+)\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/url]"_s, u""_s, Qt::CaseInsensitive);
-
-        rx.setPattern(u"\\[(/)?([bius])\\]"_s);
-        description = description.replace(rx, u"<\\1\\2>"_s);
-
-        rx.setPattern(u"\\[color=(\")?(.+)\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/color]"_s, u""_s, Qt::CaseInsensitive);
-
-        rx.setPattern(u"\\[size=(\")?(.+)\\d\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/size]"_s, u""_s, Qt::CaseInsensitive);
-
-        html += u"
" + description + u"
"; - } - html += u"
"; - m_ui->textBrowser->setHtml(html); + auto *article = m_ui->articleListWidget->getRSSArticle(currentItem); + renderArticle(article); } void RSSWidget::saveSlidersPosition() @@ -590,3 +603,78 @@ void RSSWidget::handleUnreadCountChanged() { emit unreadCountUpdated(RSS::Session::instance()->rootFolder()->unreadCount()); } + +bool RSSWidget::eventFilter(QObject *obj, QEvent *event) +{ + if ((obj == m_ui->textBrowser) && (event->type() == QEvent::PaletteChange)) + { + QListWidgetItem *currentItem = m_ui->articleListWidget->currentItem(); + if (currentItem) + { + const RSS::Article *article = m_ui->articleListWidget->getRSSArticle(currentItem); + renderArticle(article); + } + } + + return false; +} + +void RSSWidget::renderArticle(const RSS::Article *article) const +{ + Q_ASSERT(article); + + const QString highlightedBaseColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::Highlight).name(); + const QString highlightedBaseTextColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::HighlightedText).name(); + const QString alternateBaseColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::AlternateBase).name(); + + QString html = + u"
" + + u"
%3
"_s.arg(highlightedBaseColor, highlightedBaseTextColor, article->title()); + if (article->date().isValid()) + html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Date: "), QLocale::system().toString(article->date().toLocalTime())); + if (m_ui->feedListWidget->currentItem() == m_ui->feedListWidget->stickyUnreadItem()) + html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Feed: "), article->feed()->title()); + if (!article->author().isEmpty()) + html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Author: "), article->author()); + html += u"
" + u"
"; + if (Qt::mightBeRichText(article->description())) + { + html += article->description(); + } + else + { + QString description = article->description(); + QRegularExpression rx; + // If description is plain text, replace BBCode tags with HTML and wrap everything in
 so it looks nice
+        rx.setPatternOptions(QRegularExpression::InvertedGreedinessOption
+                             | QRegularExpression::CaseInsensitiveOption);
+
+        rx.setPattern(u"\\[img\\](.+)\\[/img\\]"_s);
+        description = description.replace(rx, u""_s);
+
+        rx.setPattern(u"\\[url=(\")?(.+)\\1\\]"_s);
+        description = description.replace(rx, u""_s);
+        description = description.replace(u"[/url]"_s, u""_s, Qt::CaseInsensitive);
+
+        rx.setPattern(u"\\[(/)?([bius])\\]"_s);
+        description = description.replace(rx, u"<\\1\\2>"_s);
+
+        rx.setPattern(u"\\[color=(\")?(.+)\\1\\]"_s);
+        description = description.replace(rx, u""_s);
+        description = description.replace(u"[/color]"_s, u""_s, Qt::CaseInsensitive);
+
+        rx.setPattern(u"\\[size=(\")?(.+)\\d\\1\\]"_s);
+        description = description.replace(rx, u""_s);
+        description = description.replace(u"[/size]"_s, u""_s, Qt::CaseInsensitive);
+
+        html += u"
" + description + u"
"; + } + + // Supplement relative URLs to absolute ones + const QUrl url {article->link()}; + const QString baseUrl = url.toString(QUrl::RemovePath | QUrl::RemoveQuery); + convertRelativeUrlToAbsolute(html, baseUrl); + html += u"
"; + m_ui->textBrowser->setHtml(html); +} diff --git a/src/gui/rss/rsswidget.h b/src/gui/rss/rsswidget.h index 5c5aaaa1b..67d1e474c 100644 --- a/src/gui/rss/rsswidget.h +++ b/src/gui/rss/rsswidget.h @@ -37,8 +37,10 @@ class QListWidgetItem; class QTreeWidgetItem; -class ArticleListWidget; -class FeedListWidget; +namespace RSS +{ + class Article; +} namespace Ui { @@ -68,7 +70,7 @@ private slots: void displayRSSListMenu(const QPoint &pos); void displayItemsListMenu(); void renameSelectedRSSItem(); - void editSelectedRSSFeedURL(); + void editSelectedRSSFeed(); void refreshSelectedItems(); void copySelectedFeedsURL(); void handleCurrentFeedItemChanged(QTreeWidgetItem *currentItem); @@ -85,7 +87,8 @@ private slots: void handleUnreadCountChanged(); private: + bool eventFilter(QObject *obj, QEvent *event) override; + void renderArticle(const RSS::Article *article) const; + Ui::RSSWidget *m_ui = nullptr; - ArticleListWidget *m_articleListWidget = nullptr; - FeedListWidget *m_feedListWidget = nullptr; }; diff --git a/src/gui/rss/rsswidget.ui b/src/gui/rss/rsswidget.ui index 97f06194c..964b0bae1 100644 --- a/src/gui/rss/rsswidget.ui +++ b/src/gui/rss/rsswidget.ui @@ -64,7 +64,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -92,15 +92,15 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + - 75 true @@ -118,8 +118,9 @@
- Qt::Horizontal + Qt::Orientation::Horizontal + true @@ -197,12 +198,9 @@ New folder... - + - Edit feed URL... - - - Edit feed URL + Feed options... @@ -212,6 +210,16 @@ QTextBrowser
gui/rss/htmlbrowser.h
+ + FeedListWidget + QTreeWidget +
gui/rss/feedlistwidget.h
+
+ + ArticleListWidget + QListWidget +
gui/rss/articlelistwidget.h
+
diff --git a/src/gui/search/pluginselectdialog.cpp b/src/gui/search/pluginselectdialog.cpp index 90ed7fced..d97e91a8b 100644 --- a/src/gui/search/pluginselectdialog.cpp +++ b/src/gui/search/pluginselectdialog.cpp @@ -249,9 +249,9 @@ void PluginSelectDialog::setRowColor(const int row, const QString &color) } } -QVector PluginSelectDialog::findItemsWithUrl(const QString &url) +QList PluginSelectDialog::findItemsWithUrl(const QString &url) { - QVector res; + QList res; res.reserve(m_ui->pluginsTree->topLevelItemCount()); for (int i = 0; i < m_ui->pluginsTree->topLevelItemCount(); ++i) diff --git a/src/gui/search/pluginselectdialog.h b/src/gui/search/pluginselectdialog.h index 29df65a33..101a81f00 100644 --- a/src/gui/search/pluginselectdialog.h +++ b/src/gui/search/pluginselectdialog.h @@ -57,7 +57,7 @@ public: explicit PluginSelectDialog(SearchPluginManager *pluginManager, QWidget *parent = nullptr); ~PluginSelectDialog() override; - QVector findItemsWithUrl(const QString &url); + QList findItemsWithUrl(const QString &url); QTreeWidgetItem *findItemWithID(const QString &id); protected: diff --git a/src/gui/search/pluginselectdialog.ui b/src/gui/search/pluginselectdialog.ui index 7bd9d57d8..388833c35 100644 --- a/src/gui/search/pluginselectdialog.ui +++ b/src/gui/search/pluginselectdialog.ui @@ -21,7 +21,6 @@ - 75 true true @@ -34,10 +33,10 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu - QAbstractItemView::ExtendedSelection + QAbstractItemView::SelectionMode::ExtendedSelection true diff --git a/src/gui/search/pluginsourcedialog.ui b/src/gui/search/pluginsourcedialog.ui index 5e3e39001..767431f4f 100644 --- a/src/gui/search/pluginsourcedialog.ui +++ b/src/gui/search/pluginsourcedialog.ui @@ -18,7 +18,6 @@ - 75 true true diff --git a/src/gui/search/searchjobwidget.cpp b/src/gui/search/searchjobwidget.cpp index e8aa99ead..aae330ce4 100644 --- a/src/gui/search/searchjobwidget.cpp +++ b/src/gui/search/searchjobwidget.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2018 Vladimir Golovnev + * Copyright (C) 2018-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -50,11 +50,43 @@ #include "searchsortmodel.h" #include "ui_searchjobwidget.h" -SearchJobWidget::SearchJobWidget(SearchHandler *searchHandler, IGUIApplication *app, QWidget *parent) +namespace +{ + enum DataRole + { + LinkVisitedRole = Qt::UserRole + 100 + }; + + QColor visitedRowColor() + { + return QApplication::palette().color(QPalette::Disabled, QPalette::WindowText); + } + + QString statusText(SearchJobWidget::Status st) + { + switch (st) + { + case SearchJobWidget::Status::Ongoing: + return SearchJobWidget::tr("Searching..."); + case SearchJobWidget::Status::Finished: + return SearchJobWidget::tr("Search has finished"); + case SearchJobWidget::Status::Aborted: + return SearchJobWidget::tr("Search aborted"); + case SearchJobWidget::Status::Error: + return SearchJobWidget::tr("An error occurred during search..."); + case SearchJobWidget::Status::NoResults: + return SearchJobWidget::tr("Search returned no results"); + default: + return {}; + } + } +} + +SearchJobWidget::SearchJobWidget(const QString &id, IGUIApplication *app, QWidget *parent) : GUIApplicationComponent(app, parent) - , m_ui {new Ui::SearchJobWidget} - , m_searchHandler {searchHandler} , m_nameFilteringMode {u"Search/FilteringMode"_s} + , m_id {id} + , m_ui {new Ui::SearchJobWidget} { m_ui->setupUi(this); @@ -81,7 +113,6 @@ SearchJobWidget::SearchJobWidget(SearchHandler *searchHandler, IGUIApplication * m_proxyModel = new SearchSortModel(this); m_proxyModel->setDynamicSortFilter(true); m_proxyModel->setSourceModel(m_searchListModel); - m_proxyModel->setNameFilter(searchHandler->pattern()); m_ui->resultsBrowser->setModel(m_proxyModel); m_ui->resultsBrowser->hideColumn(SearchSortModel::DL_LINK); // Hide url column @@ -122,8 +153,6 @@ SearchJobWidget::SearchJobWidget(SearchHandler *searchHandler, IGUIApplication * fillFilterComboBoxes(); - updateFilter(); - m_lineEditSearchResultsFilter = new LineEdit(this); m_lineEditSearchResultsFilter->setPlaceholderText(tr("Filter search results...")); m_lineEditSearchResultsFilter->setContextMenuPolicy(Qt::CustomContextMenu); @@ -152,12 +181,24 @@ SearchJobWidget::SearchJobWidget(SearchHandler *searchHandler, IGUIApplication * connect(m_ui->resultsBrowser, &QAbstractItemView::doubleClicked, this, &SearchJobWidget::onItemDoubleClicked); - connect(searchHandler, &SearchHandler::newSearchResults, this, &SearchJobWidget::appendSearchResults); - connect(searchHandler, &SearchHandler::searchFinished, this, &SearchJobWidget::searchFinished); - connect(searchHandler, &SearchHandler::searchFailed, this, &SearchJobWidget::searchFailed); - connect(this, &QObject::destroyed, searchHandler, &QObject::deleteLater); + connect(UIThemeManager::instance(), &UIThemeManager::themeChanged, this, &SearchJobWidget::onUIThemeChanged); +} - setStatusTip(statusText(m_status)); +SearchJobWidget::SearchJobWidget(const QString &id, const QString &searchPattern + , const QList &searchResults, IGUIApplication *app, QWidget *parent) + : SearchJobWidget(id, app, parent) +{ + m_searchPattern = searchPattern; + m_proxyModel->setNameFilter(m_searchPattern); + updateFilter(); + + appendSearchResults(searchResults); +} + +SearchJobWidget::SearchJobWidget(const QString &id, SearchHandler *searchHandler, IGUIApplication *app, QWidget *parent) + : SearchJobWidget(id, app, parent) +{ + assignSearchHandler(searchHandler); } SearchJobWidget::~SearchJobWidget() @@ -166,6 +207,21 @@ SearchJobWidget::~SearchJobWidget() delete m_ui; } +QString SearchJobWidget::id() const +{ + return m_id; +} + +QString SearchJobWidget::searchPattern() const +{ + return m_searchPattern; +} + +QList SearchJobWidget::searchResults() const +{ + return m_searchResults; +} + void SearchJobWidget::onItemDoubleClicked(const QModelIndex &index) { downloadTorrent(index); @@ -179,9 +235,31 @@ QHeaderView *SearchJobWidget::header() const // Set the color of a row in data model void SearchJobWidget::setRowColor(int row, const QColor &color) { - m_proxyModel->setDynamicSortFilter(false); for (int i = 0; i < m_proxyModel->columnCount(); ++i) m_proxyModel->setData(m_proxyModel->index(row, i), color, Qt::ForegroundRole); +} + +void SearchJobWidget::setRowVisited(const int row) +{ + m_proxyModel->setDynamicSortFilter(false); + + m_proxyModel->setData(m_proxyModel->index(row, 0), true, LinkVisitedRole); + setRowColor(row, visitedRowColor()); + + m_proxyModel->setDynamicSortFilter(true); +} + +void SearchJobWidget::onUIThemeChanged() +{ + m_proxyModel->setDynamicSortFilter(false); + + for (int row = 0; row < m_proxyModel->rowCount(); ++row) + { + const QVariant userData = m_proxyModel->data(m_proxyModel->index(row, 0), LinkVisitedRole); + const bool isVisited = userData.toBool(); + if (isVisited) + setRowColor(row, visitedRowColor()); + } m_proxyModel->setDynamicSortFilter(true); } @@ -201,9 +279,37 @@ LineEdit *SearchJobWidget::lineEditSearchResultsFilter() const return m_lineEditSearchResultsFilter; } +void SearchJobWidget::assignSearchHandler(SearchHandler *searchHandler) +{ + Q_ASSERT(searchHandler); + if (!searchHandler) [[unlikely]] + return; + + m_searchResults.clear(); + m_searchListModel->removeRows(0, m_searchListModel->rowCount()); + delete m_searchHandler; + + m_searchHandler = searchHandler; + m_searchHandler->setParent(this); + connect(m_searchHandler, &SearchHandler::newSearchResults, this, &SearchJobWidget::appendSearchResults); + connect(m_searchHandler, &SearchHandler::searchFinished, this, &SearchJobWidget::searchFinished); + connect(m_searchHandler, &SearchHandler::searchFailed, this, &SearchJobWidget::searchFailed); + + m_searchPattern = m_searchHandler->pattern(); + + m_proxyModel->setNameFilter(m_searchPattern); + updateFilter(); + + setStatus(Status::Ongoing); +} + void SearchJobWidget::cancelSearch() { + if (!m_searchHandler) + return; + m_searchHandler->cancelSearch(); + setStatus(Status::Aborted); } void SearchJobWidget::downloadTorrents(const AddTorrentOption option) @@ -259,7 +365,8 @@ void SearchJobWidget::copyField(const int column) const void SearchJobWidget::setStatus(Status value) { - if (m_status == value) return; + if (m_status == value) + return; m_status = value; setStatusTip(statusText(value)); @@ -279,12 +386,13 @@ void SearchJobWidget::downloadTorrent(const QModelIndex &rowIndex, const AddTorr } else { - SearchDownloadHandler *downloadHandler = m_searchHandler->manager()->downloadTorrent(engineName, torrentUrl); + SearchDownloadHandler *downloadHandler = SearchPluginManager::instance()->downloadTorrent(engineName, torrentUrl); connect(downloadHandler, &SearchDownloadHandler::downloadFinished , this, [this, option](const QString &source) { addTorrentToSession(source, option); }); connect(downloadHandler, &SearchDownloadHandler::downloadFinished, downloadHandler, &SearchDownloadHandler::deleteLater); } - setRowColor(rowIndex.row(), QApplication::palette().color(QPalette::LinkVisited)); + + setRowVisited(rowIndex.row()); } void SearchJobWidget::addTorrentToSession(const QString &source, const AddTorrentOption option) @@ -406,25 +514,6 @@ void SearchJobWidget::contextMenuEvent(QContextMenuEvent *event) menu->popup(event->globalPos()); } -QString SearchJobWidget::statusText(SearchJobWidget::Status st) -{ - switch (st) - { - case Status::Ongoing: - return tr("Searching..."); - case Status::Finished: - return tr("Search has finished"); - case Status::Aborted: - return tr("Search aborted"); - case Status::Error: - return tr("An error occurred during search..."); - case Status::NoResults: - return tr("Search returned no results"); - default: - return {}; - } -} - SearchJobWidget::NameFilteringMode SearchJobWidget::filteringMode() const { return static_cast(m_ui->filterMode->itemData(m_ui->filterMode->currentIndex()).toInt()); @@ -508,7 +597,7 @@ void SearchJobWidget::searchFailed() setStatus(Status::Error); } -void SearchJobWidget::appendSearchResults(const QVector &results) +void SearchJobWidget::appendSearchResults(const QList &results) { for (const SearchResult &result : results) { @@ -539,6 +628,7 @@ void SearchJobWidget::appendSearchResults(const QVector &results) setModelData(SearchSortModel::PUB_DATE, QLocale().toString(result.pubDate.toLocalTime(), QLocale::ShortFormat), result.pubDate); } + m_searchResults.append(results); updateResultsCount(); } diff --git a/src/gui/search/searchjobwidget.h b/src/gui/search/searchjobwidget.h index f597c03af..7ef36cf38 100644 --- a/src/gui/search/searchjobwidget.h +++ b/src/gui/search/searchjobwidget.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2018 Vladimir Golovnev + * Copyright (C) 2018-2025 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -69,6 +69,7 @@ public: enum class Status { + Ready, Ongoing, Finished, Error, @@ -76,13 +77,18 @@ public: NoResults }; - SearchJobWidget(SearchHandler *searchHandler, IGUIApplication *app, QWidget *parent = nullptr); + SearchJobWidget(const QString &id, const QString &searchPattern, const QList &searchResults, IGUIApplication *app, QWidget *parent = nullptr); + SearchJobWidget(const QString &id, SearchHandler *searchHandler, IGUIApplication *app, QWidget *parent = nullptr); ~SearchJobWidget() override; + QString id() const; + QString searchPattern() const; + QList searchResults() const; Status status() const; int visibleResultsCount() const; LineEdit *lineEditSearchResultsFilter() const; + void assignSearchHandler(SearchHandler *searchHandler); void cancelSearch(); signals: @@ -96,6 +102,8 @@ private slots: void displayColumnHeaderMenu(); private: + SearchJobWidget(const QString &id, IGUIApplication *app, QWidget *parent); + void loadSettings(); void saveSettings() const; void updateFilter(); @@ -105,7 +113,7 @@ private: void onItemDoubleClicked(const QModelIndex &index); void searchFinished(bool cancelled); void searchFailed(); - void appendSearchResults(const QVector &results); + void appendSearchResults(const QList &results); void updateResultsCount(); void setStatus(Status value); void downloadTorrent(const QModelIndex &rowIndex, AddTorrentOption option = AddTorrentOption::Default); @@ -113,8 +121,10 @@ private: void fillFilterComboBoxes(); NameFilteringMode filteringMode() const; QHeaderView *header() const; - void setRowColor(int row, const QColor &color); int visibleColumnsCount() const; + void setRowColor(int row, const QColor &color); + void setRowVisited(int row); + void onUIThemeChanged(); void downloadTorrents(AddTorrentOption option = AddTorrentOption::Default); void openTorrentPages() const; @@ -123,17 +133,18 @@ private: void copyTorrentNames() const; void copyField(int column) const; - static QString statusText(Status st); + SettingValue m_nameFilteringMode; + QString m_id; + QString m_searchPattern; + QList m_searchResults; Ui::SearchJobWidget *m_ui = nullptr; SearchHandler *m_searchHandler = nullptr; QStandardItemModel *m_searchListModel = nullptr; SearchSortModel *m_proxyModel = nullptr; LineEdit *m_lineEditSearchResultsFilter = nullptr; - Status m_status = Status::Ongoing; + Status m_status = Status::Ready; bool m_noSearchResults = true; - - SettingValue m_nameFilteringMode; }; Q_DECLARE_METATYPE(SearchJobWidget::NameFilteringMode) diff --git a/src/gui/search/searchjobwidget.ui b/src/gui/search/searchjobwidget.ui index 560120133..7305afec2 100644 --- a/src/gui/search/searchjobwidget.ui +++ b/src/gui/search/searchjobwidget.ui @@ -23,7 +23,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -50,10 +50,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Minimum + QSizePolicy::Policy::Minimum @@ -106,10 +106,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Minimum + QSizePolicy::Policy::Minimum diff --git a/src/gui/search/searchsortmodel.cpp b/src/gui/search/searchsortmodel.cpp index becf1ea72..5b0f815a4 100644 --- a/src/gui/search/searchsortmodel.cpp +++ b/src/gui/search/searchsortmodel.cpp @@ -46,7 +46,7 @@ void SearchSortModel::setNameFilter(const QString &searchTerm) { m_searchTerm = searchTerm; if ((searchTerm.length() > 2) && searchTerm.startsWith(u'"') && searchTerm.endsWith(u'"')) - m_searchTermWords = QStringList(m_searchTerm.mid(1, m_searchTerm.length() - 2)); + m_searchTermWords = QStringList(m_searchTerm.sliced(1, (m_searchTerm.length() - 2))); else m_searchTermWords = searchTerm.split(u' ', Qt::SkipEmptyParts); } diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp index 1128a561e..48a828ea9 100644 --- a/src/gui/search/searchwidget.cpp +++ b/src/gui/search/searchwidget.cpp @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2020, Will Da Silva - * Copyright (C) 2015, 2018 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -34,37 +34,99 @@ #include -#ifdef Q_OS_WIN -#include -#endif - +#include #include #include -#include +#include +#include +#include +#include +#include +#include #include +#include #include #include #include #include -#include +#include +#include +#include +#include #include "base/global.h" +#include "base/logger.h" +#include "base/preferences.h" +#include "base/profile.h" #include "base/search/searchhandler.h" #include "base/search/searchpluginmanager.h" +#include "base/utils/bytearray.h" +#include "base/utils/compare.h" +#include "base/utils/datetime.h" +#include "base/utils/fs.h" #include "base/utils/foreignapps.h" +#include "base/utils/io.h" #include "gui/desktopintegration.h" #include "gui/interfaces/iguiapplication.h" -#include "gui/mainwindow.h" #include "gui/uithememanager.h" #include "pluginselectdialog.h" #include "searchjobwidget.h" #include "ui_searchwidget.h" -#define SEARCHHISTORY_MAXSIZE 50 -#define URL_COLUMN 5 +const int HISTORY_FILE_MAX_SIZE = 10 * 1024 * 1024; +const int SESSION_FILE_MAX_SIZE = 10 * 1024 * 1024; +const int RESULTS_FILE_MAX_SIZE = 10 * 1024 * 1024; + +const QString DATA_FOLDER_NAME = u"SearchUI"_s; +const QString HISTORY_FILE_NAME = u"History.txt"_s; +const QString SESSION_FILE_NAME = u"Session.json"_s; + +const QString KEY_SESSION_TABS = u"Tabs"_s; +const QString KEY_SESSION_CURRENTTAB = u"CurrentTab"_s; +const QString KEY_TAB_ID = u"ID"_s; +const QString KEY_TAB_SEARCHPATTERN = u"SearchPattern"_s; +const QString KEY_RESULT_FILENAME = u"FileName"_s; +const QString KEY_RESULT_FILEURL = u"FileURL"_s; +const QString KEY_RESULT_FILESIZE = u"FileSize"_s; +const QString KEY_RESULT_SEEDERSCOUNT = u"SeedersCount"_s; +const QString KEY_RESULT_LEECHERSCOUNT = u"LeechersCount"_s; +const QString KEY_RESULT_ENGINENAME = u"EngineName"_s; +const QString KEY_RESULT_SITEURL = u"SiteURL"_s; +const QString KEY_RESULT_DESCRLINK = u"DescrLink"_s; +const QString KEY_RESULT_PUBDATE = u"PubDate"_s; namespace { + class SearchHistorySortModel final : public QSortFilterProxyModel + { + Q_OBJECT + Q_DISABLE_COPY_MOVE(SearchHistorySortModel) + + public: + using QSortFilterProxyModel::QSortFilterProxyModel; + + private: + bool lessThan(const QModelIndex &left, const QModelIndex &right) const override + { + const int result = m_naturalCompare(left.data(sortRole()).toString(), right.data(sortRole()).toString()); + return result < 0; + } + + Utils::Compare::NaturalCompare m_naturalCompare; + }; + + struct TabData + { + QString tabID; + QString searchPattern; + }; + + struct SessionData + { + QList tabs; + QString currentTabID; + }; + QString statusIconName(const SearchJobWidget::Status st) { switch (st) @@ -82,14 +144,213 @@ namespace return {}; } } + + Path makeDataFilePath(const QString &fileName) + { + return specialFolderLocation(SpecialFolder::Data) / Path(DATA_FOLDER_NAME) / Path(fileName); + } + + QString makeTabName(SearchJobWidget *searchJobWdget) + { + Q_ASSERT(searchJobWdget); + if (!searchJobWdget) [[unlikely]] + return {}; + + QString tabName = searchJobWdget->searchPattern(); + tabName.replace(QRegularExpression(u"&{1}"_s), u"&&"_s); + return tabName; + } + + nonstd::expected loadHistory(const Path &filePath) + { + const auto readResult = Utils::IO::readFile(filePath, HISTORY_FILE_MAX_SIZE); + if (!readResult) + { + if (readResult.error().status == Utils::IO::ReadError::NotExist) + return {}; + + return nonstd::make_unexpected(readResult.error().message); + } + + const QList lines = Utils::ByteArray::splitToViews(readResult.value(), "\n"); + QStringList history; + history.reserve(lines.size()); + for (const QByteArrayView line : lines) + history.append(QString::fromUtf8(line)); + + return history; + } + + nonstd::expected loadSession(const Path &filePath) + { + const auto readResult = Utils::IO::readFile(filePath, SESSION_FILE_MAX_SIZE); + if (!readResult) + { + if (readResult.error().status == Utils::IO::ReadError::NotExist) + return {}; + + return nonstd::make_unexpected(readResult.error().message); + } + + const QString formatErrorMsg = SearchWidget::tr("Invalid data format."); + QJsonParseError jsonError; + const QJsonDocument sessionDoc = QJsonDocument::fromJson(readResult.value(), &jsonError); + if (jsonError.error != QJsonParseError::NoError) + return nonstd::make_unexpected(jsonError.errorString()); + + if (!sessionDoc.isObject()) + return nonstd::make_unexpected(formatErrorMsg); + + const QJsonObject sessionObj = sessionDoc.object(); + const QJsonValue tabsVal = sessionObj[KEY_SESSION_TABS]; + if (!tabsVal.isArray()) + return nonstd::make_unexpected(formatErrorMsg); + + QList tabs; + QSet tabIDs; + for (const QJsonValue &tabVal : asConst(tabsVal.toArray())) + { + if (!tabVal.isObject()) + return nonstd::make_unexpected(formatErrorMsg); + + const QJsonObject tabObj = tabVal.toObject(); + + const QJsonValue tabIDVal = tabObj[KEY_TAB_ID]; + if (!tabIDVal.isString()) + return nonstd::make_unexpected(formatErrorMsg); + + const QJsonValue patternVal = tabObj[KEY_TAB_SEARCHPATTERN]; + if (!patternVal.isString()) + return nonstd::make_unexpected(formatErrorMsg); + + const QString tabID = tabIDVal.toString(); + tabIDs.insert(tabID); + tabs.emplaceBack(TabData {tabID, patternVal.toString()}); + if (tabs.size() != tabIDs.size()) // duplicate ID + return nonstd::make_unexpected(formatErrorMsg); + } + + const QJsonValue currentTabVal = sessionObj[KEY_SESSION_CURRENTTAB]; + if (!currentTabVal.isString()) + return nonstd::make_unexpected(formatErrorMsg); + + return SessionData {.tabs = tabs, .currentTabID = currentTabVal.toString()}; + } + + nonstd::expected, QString> loadSearchResults(const Path &filePath) + { + const auto readResult = Utils::IO::readFile(filePath, RESULTS_FILE_MAX_SIZE); + if (!readResult) + { + if (readResult.error().status != Utils::IO::ReadError::NotExist) + { + return nonstd::make_unexpected(readResult.error().message); + } + + return {}; + } + + const QString formatErrorMsg = SearchWidget::tr("Invalid data format."); + QJsonParseError jsonError; + const QJsonDocument searchResultsDoc = QJsonDocument::fromJson(readResult.value(), &jsonError); + if (jsonError.error != QJsonParseError::NoError) + return nonstd::make_unexpected(jsonError.errorString()); + + if (!searchResultsDoc.isArray()) + return nonstd::make_unexpected(formatErrorMsg); + + const QJsonArray resultsList = searchResultsDoc.array(); + QList searchResults; + for (const QJsonValue &resultVal : resultsList) + { + if (!resultVal.isObject()) + return nonstd::make_unexpected(formatErrorMsg); + + const QJsonObject resultObj = resultVal.toObject(); + SearchResult &searchResult = searchResults.emplaceBack(); + + if (const QJsonValue fileNameVal = resultObj[KEY_RESULT_FILENAME]; fileNameVal.isString()) + searchResult.fileName = fileNameVal.toString(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue fileURLVal = resultObj[KEY_RESULT_FILEURL]; fileURLVal.isString()) + searchResult.fileUrl= fileURLVal.toString(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue fileSizeVal = resultObj[KEY_RESULT_FILESIZE]; fileSizeVal.isDouble()) + searchResult.fileSize= fileSizeVal.toInteger(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue seedersCountVal = resultObj[KEY_RESULT_SEEDERSCOUNT]; seedersCountVal.isDouble()) + searchResult.nbSeeders = seedersCountVal.toInteger(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue leechersCountVal = resultObj[KEY_RESULT_LEECHERSCOUNT]; leechersCountVal.isDouble()) + searchResult.nbLeechers = leechersCountVal.toInteger(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue engineNameVal = resultObj[KEY_RESULT_ENGINENAME]; engineNameVal.isString()) + searchResult.engineName= engineNameVal.toString(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue siteURLVal = resultObj[KEY_RESULT_SITEURL]; siteURLVal.isString()) + searchResult.siteUrl= siteURLVal.toString(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue descrLinkVal = resultObj[KEY_RESULT_DESCRLINK]; descrLinkVal.isString()) + searchResult.descrLink= descrLinkVal.toString(); + else + return nonstd::make_unexpected(formatErrorMsg); + + if (const QJsonValue pubDateVal = resultObj[KEY_RESULT_PUBDATE]; pubDateVal.isDouble()) + searchResult.pubDate = QDateTime::fromSecsSinceEpoch(pubDateVal.toInteger()); + else + return nonstd::make_unexpected(formatErrorMsg); + } + + return searchResults; + } } -SearchWidget::SearchWidget(IGUIApplication *app, MainWindow *mainWindow) - : GUIApplicationComponent(app, mainWindow) +class SearchWidget::DataStorage final : public QObject +{ + Q_OBJECT + Q_DISABLE_COPY_MOVE(DataStorage) + +public: + using QObject::QObject; + + void loadSession(bool withSearchResults); + void storeSession(const SessionData &sessionData); + void removeSession(); + void storeTab(const QString &tabID, const QList &searchResults); + void removeTab(const QString &tabID); + void loadHistory(); + void storeHistory(const QStringList &history); + void removeHistory(); + +signals: + void historyLoaded(const QStringList &history); + void sessionLoaded(const SessionData &sessionData); + void tabLoaded(const QString &tabID, const QString &searchPattern, const QList &searchResults); +}; + +SearchWidget::SearchWidget(IGUIApplication *app, QWidget *parent) + : GUIApplicationComponent(app, parent) , m_ui {new Ui::SearchWidget()} - , m_mainWindow {mainWindow} + , m_ioThread {new QThread} + , m_dataStorage {new DataStorage} { m_ui->setupUi(this); + + m_ui->stopButton->hide(); m_ui->tabWidget->tabBar()->installEventFilter(this); const QString searchPatternHint = u"

" @@ -119,7 +380,25 @@ SearchWidget::SearchWidget(IGUIApplication *app, MainWindow *mainWindow) m_ui->tabWidget->setIconSize(iconSize); #endif connect(m_ui->tabWidget, &QTabWidget::tabCloseRequested, this, &SearchWidget::closeTab); - connect(m_ui->tabWidget, &QTabWidget::currentChanged, this, &SearchWidget::tabChanged); + connect(m_ui->tabWidget, &QTabWidget::currentChanged, this, &SearchWidget::currentTabChanged); + connect(m_ui->tabWidget, &QTabWidget::currentChanged, this, &SearchWidget::saveSession); + connect(m_ui->tabWidget->tabBar(), &QTabBar::tabMoved, this, &SearchWidget::saveSession); + + connect(m_ui->tabWidget, &QTabWidget::tabBarDoubleClicked, this, [this](const int tabIndex) + { + if (tabIndex < 0) + return; + + // Reset current search pattern + auto *searchJobWidget = static_cast(m_ui->tabWidget->widget(tabIndex)); + const QString pattern = searchJobWidget->searchPattern(); + if (pattern != m_ui->lineEditSearchPattern->text()) + { + m_ui->lineEditSearchPattern->setText(pattern); + m_isNewQueryString = false; + adjustSearchButton(); + } + }); const auto *searchManager = SearchPluginManager::instance(); const auto onPluginChanged = [this]() @@ -136,6 +415,9 @@ SearchWidget::SearchWidget(IGUIApplication *app, MainWindow *mainWindow) // Fill in category combobox onPluginChanged(); + connect(m_ui->pluginsButton, &QPushButton::clicked, this, &SearchWidget::pluginsButtonClicked); + connect(m_ui->searchButton, &QPushButton::clicked, this, &SearchWidget::searchButtonClicked); + connect(m_ui->stopButton, &QPushButton::clicked, this, &SearchWidget::stopButtonClicked); connect(m_ui->lineEditSearchPattern, &LineEdit::returnPressed, m_ui->searchButton, &QPushButton::click); connect(m_ui->lineEditSearchPattern, &LineEdit::textEdited, this, &SearchWidget::searchTextEdited); connect(m_ui->selectPlugin, qOverload(&QComboBox::currentIndexChanged) @@ -147,6 +429,19 @@ SearchWidget::SearchWidget(IGUIApplication *app, MainWindow *mainWindow) connect(focusSearchHotkey, &QShortcut::activated, this, &SearchWidget::toggleFocusBetweenLineEdits); const auto *focusSearchHotkeyAlternative = new QShortcut((Qt::CTRL | Qt::Key_E), this); connect(focusSearchHotkeyAlternative, &QShortcut::activated, this, &SearchWidget::toggleFocusBetweenLineEdits); + + m_historyLength = Preferences::instance()->searchHistoryLength(); + m_storeOpenedTabs = Preferences::instance()->storeOpenedSearchTabs(); + m_storeOpenedTabsResults = Preferences::instance()->storeOpenedSearchTabResults(); + connect(Preferences::instance(), &Preferences::changed, this, &SearchWidget::onPreferencesChanged); + + m_dataStorage->moveToThread(m_ioThread.get()); + connect(m_ioThread.get(), &QThread::finished, m_dataStorage, &QObject::deleteLater); + m_ioThread->setObjectName("SearchWidget m_ioThread"); + m_ioThread->start(); + + loadHistory(); + restoreSession(); } bool SearchWidget::eventFilter(QObject *object, QEvent *event) @@ -159,33 +454,115 @@ bool SearchWidget::eventFilter(QObject *object, QEvent *event) const auto *mouseEvent = static_cast(event); const int tabIndex = m_ui->tabWidget->tabBar()->tabAt(mouseEvent->pos()); - if ((mouseEvent->button() == Qt::MiddleButton) && (tabIndex >= 0)) + if (tabIndex >= 0) { - closeTab(tabIndex); - return true; - } - if (mouseEvent->button() == Qt::RightButton) - { - QMenu *menu = new QMenu(this); - menu->setAttribute(Qt::WA_DeleteOnClose); - menu->addAction(tr("Close tab"), this, [this, tabIndex]() { closeTab(tabIndex); }); - menu->addAction(tr("Close all tabs"), this, &SearchWidget::closeAllTabs); - menu->popup(QCursor::pos()); - return true; + if (mouseEvent->button() == Qt::MiddleButton) + { + closeTab(tabIndex); + return true; + } + + if (mouseEvent->button() == Qt::RightButton) + { + showTabMenu(tabIndex); + return true; + } } + return false; } + return QWidget::eventFilter(object, event); } +void SearchWidget::onPreferencesChanged() +{ + const auto *pref = Preferences::instance(); + + const bool storeOpenedTabs = pref->storeOpenedSearchTabs(); + const bool isStoreOpenedTabsChanged = storeOpenedTabs != m_storeOpenedTabs; + if (isStoreOpenedTabsChanged) + { + m_storeOpenedTabs = storeOpenedTabs; + if (m_storeOpenedTabs) + { + saveSession(); + } + else + { + QMetaObject::invokeMethod(m_dataStorage, &SearchWidget::DataStorage::removeSession); + } + } + + + const bool storeOpenedTabsResults = pref->storeOpenedSearchTabResults(); + const bool isStoreOpenedTabsResultsChanged = storeOpenedTabsResults != m_storeOpenedTabsResults; + if (isStoreOpenedTabsResultsChanged) + m_storeOpenedTabsResults = storeOpenedTabsResults; + + if (isStoreOpenedTabsResultsChanged || isStoreOpenedTabsChanged) + { + if (m_storeOpenedTabsResults) + { + for (int tabIndex = (m_ui->tabWidget->count() - 1); tabIndex >= 0; --tabIndex) + { + const auto *tab = static_cast(m_ui->tabWidget->widget(tabIndex)); + QMetaObject::invokeMethod(m_dataStorage, [this, tabID = tab->id(), searchResults = tab->searchResults()] + { + m_dataStorage->storeTab(tabID, searchResults); + }); + } + } + else + { + for (int tabIndex = (m_ui->tabWidget->count() - 1); tabIndex >= 0; --tabIndex) + { + const auto *tab = static_cast(m_ui->tabWidget->widget(tabIndex)); + QMetaObject::invokeMethod(m_dataStorage, [this, tabID = tab->id()] { m_dataStorage->removeTab(tabID); }); + } + } + } + + const int historyLength = pref->searchHistoryLength(); + if (historyLength != m_historyLength) + { + if (m_historyLength <= 0) + { + createSearchPatternCompleter(); + } + else + { + if (historyLength <= 0) + { + m_searchPatternCompleterModel->removeRows(0, m_searchPatternCompleterModel->rowCount()); + QMetaObject::invokeMethod(m_dataStorage, &SearchWidget::DataStorage::removeHistory); + } + else if (historyLength < m_historyLength) + { + if (const int rowCount = m_searchPatternCompleterModel->rowCount(); rowCount > historyLength) + { + m_searchPatternCompleterModel->removeRows(0, (rowCount - historyLength)); + QMetaObject::invokeMethod(m_dataStorage, [this] + { + m_dataStorage->storeHistory(m_searchPatternCompleterModel->stringList()); + }); + } + } + } + + m_historyLength = historyLength; + } +} + void SearchWidget::fillCatCombobox() { m_ui->comboCategory->clear(); m_ui->comboCategory->addItem(SearchPluginManager::categoryFullName(u"all"_s), u"all"_s); using QStrPair = std::pair; - QVector tmpList; - for (const QString &cat : asConst(SearchPluginManager::instance()->getPluginCategories(selectedPlugin()))) + QList tmpList; + const auto selectedPlugin = m_ui->selectPlugin->itemData(m_ui->selectPlugin->currentIndex()).toString(); + for (const QString &cat : asConst(SearchPluginManager::instance()->getPluginCategories(selectedPlugin))) tmpList << std::make_pair(SearchPluginManager::categoryFullName(cat), cat); std::sort(tmpList.begin(), tmpList.end(), [](const QStrPair &l, const QStrPair &r) { return (QString::localeAwareCompare(l.first, r.first) < 0); }); @@ -207,7 +584,7 @@ void SearchWidget::fillPluginComboBox() m_ui->selectPlugin->addItem(tr("Select..."), u"multi"_s); using QStrPair = std::pair; - QVector tmpList; + QList tmpList; for (const QString &name : asConst(SearchPluginManager::instance()->enabledPlugins())) tmpList << std::make_pair(SearchPluginManager::instance()->pluginFullName(name), name); std::sort(tmpList.begin(), tmpList.end(), [](const QStrPair &l, const QStrPair &r) { return (l.first < r.first); } ); @@ -224,9 +601,138 @@ QString SearchWidget::selectedCategory() const return m_ui->comboCategory->itemData(m_ui->comboCategory->currentIndex()).toString(); } -QString SearchWidget::selectedPlugin() const +QStringList SearchWidget::selectedPlugins() const { - return m_ui->selectPlugin->itemData(m_ui->selectPlugin->currentIndex()).toString(); + const auto itemText = m_ui->selectPlugin->itemData(m_ui->selectPlugin->currentIndex()).toString(); + + if (itemText == u"all") + return SearchPluginManager::instance()->allPlugins(); + + if ((itemText == u"enabled") || (itemText == u"multi")) + return SearchPluginManager::instance()->enabledPlugins(); + + return {itemText}; +} + +QString SearchWidget::generateTabID() const +{ + for (;;) + { + const QString tabID = QString::number(qHash(QDateTime::currentDateTimeUtc())); + if (!m_tabWidgets.contains(tabID)) + return tabID; + } + + return {}; +} + +int SearchWidget::addTab(const QString &tabID, SearchJobWidget *searchJobWdget) +{ + Q_ASSERT(!m_tabWidgets.contains(tabID)); + + connect(searchJobWdget, &SearchJobWidget::statusChanged, this, [this, searchJobWdget]() { tabStatusChanged(searchJobWdget); }); + m_tabWidgets.insert(tabID, searchJobWdget); + return m_ui->tabWidget->addTab(searchJobWdget, makeTabName(searchJobWdget)); +} + +void SearchWidget::updateHistory(const QString &newSearchPattern) +{ + if (m_historyLength <= 0) + return; + + if (m_searchPatternCompleterModel->stringList().contains(newSearchPattern)) + return; + + const int rowNum = m_searchPatternCompleterModel->rowCount(); + m_searchPatternCompleterModel->insertRow(rowNum); + m_searchPatternCompleterModel->setData(m_searchPatternCompleterModel->index(rowNum, 0), newSearchPattern); + if (m_searchPatternCompleterModel->rowCount() > m_historyLength) + m_searchPatternCompleterModel->removeRow(0); + + QMetaObject::invokeMethod(m_dataStorage, [this, history = m_searchPatternCompleterModel->stringList()] + { + m_dataStorage->storeHistory(history); + }); +} + +void SearchWidget::loadHistory() +{ + if (m_historyLength <= 0) + return; + + createSearchPatternCompleter(); + + connect(m_dataStorage, &DataStorage::historyLoaded, this, [this](const QStringList &storedHistory) + { + if (m_historyLength <= 0) + return; + + QStringList history = storedHistory; + for (const QString &newPattern : asConst(m_searchPatternCompleterModel->stringList())) + { + if (!history.contains(newPattern)) + history.append(newPattern); + } + + if (history.size() > m_historyLength) + history.remove(0, (history.size() - m_historyLength)); + + m_searchPatternCompleterModel->setStringList(history); + }); + + QMetaObject::invokeMethod(m_dataStorage, &SearchWidget::DataStorage::loadHistory); +} + +void SearchWidget::saveSession() const +{ + if (!m_storeOpenedTabs) + return; + + const int currentIndex = m_ui->tabWidget->currentIndex(); + SessionData sessionData; + for (int tabIndex = 0; tabIndex < m_ui->tabWidget->count(); ++tabIndex) + { + auto *searchJobWidget = static_cast(m_ui->tabWidget->widget(tabIndex)); + sessionData.tabs.emplaceBack(TabData {searchJobWidget->id(), searchJobWidget->searchPattern()}); + if (currentIndex == tabIndex) + sessionData.currentTabID = searchJobWidget->id(); + } + + QMetaObject::invokeMethod(m_dataStorage, [this, sessionData] { m_dataStorage->storeSession(sessionData); }); +} + +void SearchWidget::createSearchPatternCompleter() +{ + Q_ASSERT(!m_ui->lineEditSearchPattern->completer()); + + m_searchPatternCompleterModel = new QStringListModel(this); + auto *sortModel = new SearchHistorySortModel(this); + sortModel->setSourceModel(m_searchPatternCompleterModel); + sortModel->sort(0); + auto *completer = new QCompleter(sortModel, this); + completer->setCaseSensitivity(Qt::CaseInsensitive); + completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel); + m_ui->lineEditSearchPattern->setCompleter(completer); +} + +void SearchWidget::restoreSession() +{ + if (!m_storeOpenedTabs) + return; + + connect(m_dataStorage, &DataStorage::tabLoaded, this + , [this](const QString &tabID, const QString &searchPattern, const QList &searchResults) + { + auto *restoredTab = new SearchJobWidget(tabID, searchPattern, searchResults, app(), this); + addTab(tabID, restoredTab); + }); + + connect(m_dataStorage, &DataStorage::sessionLoaded, this, [this](const SessionData &sessionData) + { + m_ui->tabWidget->setCurrentWidget(m_tabWidgets.value(sessionData.currentTabID)); + }); + + QMetaObject::invokeMethod(m_dataStorage, [this] { m_dataStorage->loadSession(m_storeOpenedTabsResults); }); } void SearchWidget::selectActivePage() @@ -255,17 +761,28 @@ SearchWidget::~SearchWidget() delete m_ui; } -void SearchWidget::tabChanged(const int index) +void SearchWidget::currentTabChanged(const int index) { // when we switch from a tab that is not empty to another that is empty // the download button doesn't have to be available - m_currentSearchTab = ((index < 0) ? nullptr : m_allTabs.at(m_ui->tabWidget->currentIndex())); + m_currentSearchTab = (index >= 0) + ? static_cast(m_ui->tabWidget->widget(index)) + : nullptr; + + if (!m_currentSearchTab) + m_isNewQueryString = true; + + if (!m_isNewQueryString) + m_ui->lineEditSearchPattern->setText(m_currentSearchTab->searchPattern()); + + adjustSearchButton(); } void SearchWidget::selectMultipleBox([[maybe_unused]] const int index) { - if (selectedPlugin() == u"multi") - on_pluginsButton_clicked(); + const auto itemText = m_ui->selectPlugin->itemData(m_ui->selectPlugin->currentIndex()).toString(); + if (itemText == u"multi") + pluginsButtonClicked(); } void SearchWidget::toggleFocusBetweenLineEdits() @@ -282,18 +799,63 @@ void SearchWidget::toggleFocusBetweenLineEdits() } } -void SearchWidget::on_pluginsButton_clicked() +void SearchWidget::adjustSearchButton() +{ + if (!m_isNewQueryString + && (m_currentSearchTab && (m_currentSearchTab->status() == SearchJobWidget::Status::Ongoing))) + { + if (m_ui->searchButton->isVisible()) + { + m_ui->searchButton->hide(); + m_ui->stopButton->show(); + } + } + else + { + if (m_ui->stopButton->isVisible()) + { + m_ui->stopButton->hide(); + m_ui->searchButton->show(); + } + } +} + +void SearchWidget::showTabMenu(const int index) +{ + QMenu *menu = new QMenu(this); + + if (auto *searchJobWidget = static_cast(m_ui->tabWidget->widget(index)); + searchJobWidget->status() != SearchJobWidget::Status::Ongoing) + { + menu->addAction(tr("Refresh"), this, [this, searchJobWidget] { refreshTab(searchJobWidget); }); + } + else + { + menu->addAction(tr("Stop"), this, [searchJobWidget] { searchJobWidget->cancelSearch(); }); + } + + menu->addSeparator(); + menu->addAction(tr("Close tab"), this, [this, index] { closeTab(index); }); + menu->addAction(tr("Close all tabs"), this, &SearchWidget::closeAllTabs); + + menu->setAttribute(Qt::WA_DeleteOnClose); + menu->popup(QCursor::pos()); +} + +void SearchWidget::pluginsButtonClicked() { auto *dlg = new PluginSelectDialog(SearchPluginManager::instance(), this); dlg->setAttribute(Qt::WA_DeleteOnClose); dlg->show(); } -void SearchWidget::searchTextEdited(const QString &) +void SearchWidget::searchTextEdited(const QString &text) { - // Enable search button - m_ui->searchButton->setText(tr("Search")); - m_isNewQueryString = true; + if (m_currentSearchTab) + { + m_isNewQueryString = m_currentSearchTab->searchPattern() != text; + adjustSearchButton(); + } } void SearchWidget::giveFocusToSearchInput() @@ -302,24 +864,8 @@ void SearchWidget::giveFocusToSearchInput() } // Function called when we click on search button -void SearchWidget::on_searchButton_clicked() +void SearchWidget::searchButtonClicked() { - if (!Utils::ForeignApps::pythonInfo().isValid()) - { - app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); - return; - } - - if (m_activeSearchTab) - { - m_activeSearchTab->cancelSearch(); - if (!m_isNewQueryString) - { - m_ui->searchButton->setText(tr("Search")); - return; - } - } - m_isNewQueryString = false; const QString pattern = m_ui->lineEditSearchPattern->text().trimmed(); @@ -330,72 +876,222 @@ void SearchWidget::on_searchButton_clicked() return; } - const QString plugin = selectedPlugin(); - - QStringList plugins; - if (plugin == u"all") - plugins = SearchPluginManager::instance()->allPlugins(); - else if ((plugin == u"enabled") || (plugin == u"multi")) - plugins = SearchPluginManager::instance()->enabledPlugins(); - else - plugins << plugin; + if (!Utils::ForeignApps::pythonInfo().isValid()) + { + app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); + return; + } qDebug("Search with category: %s", qUtf8Printable(selectedCategory())); // Launch search - auto *searchHandler = SearchPluginManager::instance()->startSearch(pattern, selectedCategory(), plugins); + auto *searchHandler = SearchPluginManager::instance()->startSearch(pattern, selectedCategory(), selectedPlugins()); // Tab Addition - auto *newTab = new SearchJobWidget(searchHandler, app(), this); - m_allTabs.append(newTab); - - QString tabName = pattern; - tabName.replace(QRegularExpression(u"&{1}"_s), u"&&"_s); - m_ui->tabWidget->addTab(newTab, tabName); + const QString newTabID = generateTabID(); + auto *newTab = new SearchJobWidget(newTabID, searchHandler, app(), this); + const int tabIndex = addTab(newTabID, newTab); + m_ui->tabWidget->setTabToolTip(tabIndex, newTab->statusTip()); + m_ui->tabWidget->setTabIcon(tabIndex, UIThemeManager::instance()->getIcon(statusIconName(newTab->status()))); m_ui->tabWidget->setCurrentWidget(newTab); - - connect(newTab, &SearchJobWidget::statusChanged, this, [this, newTab]() { tabStatusChanged(newTab); }); - - m_ui->searchButton->setText(tr("Stop")); - m_activeSearchTab = newTab; - tabStatusChanged(newTab); + adjustSearchButton(); + updateHistory(pattern); + saveSession(); } -void SearchWidget::tabStatusChanged(QWidget *tab) +void SearchWidget::stopButtonClicked() +{ + m_currentSearchTab->cancelSearch(); +} + +void SearchWidget::tabStatusChanged(SearchJobWidget *tab) { const int tabIndex = m_ui->tabWidget->indexOf(tab); m_ui->tabWidget->setTabToolTip(tabIndex, tab->statusTip()); m_ui->tabWidget->setTabIcon(tabIndex, UIThemeManager::instance()->getIcon( - statusIconName(static_cast(tab)->status()))); + statusIconName(static_cast(tab)->status()))); - if ((tab == m_activeSearchTab) && (m_activeSearchTab->status() != SearchJobWidget::Status::Ongoing)) + if (tab->status() != SearchJobWidget::Status::Ongoing) { - Q_ASSERT(m_activeSearchTab->status() != SearchJobWidget::Status::Ongoing); + if (tab == m_currentSearchTab) + adjustSearchButton(); - if (app()->desktopIntegration()->isNotificationsEnabled() && (m_mainWindow->currentTabWidget() != this)) + emit searchFinished(tab->status() == SearchJobWidget::Status::Error); + + if (m_storeOpenedTabsResults) { - if (m_activeSearchTab->status() == SearchJobWidget::Status::Error) - app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Search has failed")); - else - app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Search has finished")); + QMetaObject::invokeMethod(m_dataStorage, [this, tabID = tab->id(), searchResults = tab->searchResults()] + { + m_dataStorage->storeTab(tabID, searchResults); + }); } - - m_activeSearchTab = nullptr; - m_ui->searchButton->setText(tr("Search")); } } -void SearchWidget::closeTab(int index) +void SearchWidget::closeTab(const int index) { - SearchJobWidget *tab = m_allTabs.takeAt(index); - if (tab == m_activeSearchTab) - m_ui->searchButton->setText(tr("Search")); + const auto *tab = static_cast(m_ui->tabWidget->widget(index)); + const QString tabID = tab->id(); + delete m_tabWidgets.take(tabID); - delete tab; + QMetaObject::invokeMethod(m_dataStorage, [this, tabID] { m_dataStorage->removeTab(tabID); }); + saveSession(); } void SearchWidget::closeAllTabs() { - for (int i = (m_allTabs.size() - 1); i >= 0; --i) - closeTab(i); + for (int tabIndex = (m_ui->tabWidget->count() - 1); tabIndex >= 0; --tabIndex) + { + const auto *tab = static_cast(m_ui->tabWidget->widget(tabIndex)); + const QString tabID = tab->id(); + delete m_tabWidgets.take(tabID); + QMetaObject::invokeMethod(m_dataStorage, [this, tabID] { m_dataStorage->removeTab(tabID); }); + } + + saveSession(); } + +void SearchWidget::refreshTab(SearchJobWidget *searchJobWidget) +{ + if (!Utils::ForeignApps::pythonInfo().isValid()) + { + app()->desktopIntegration()->showNotification(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); + return; + } + + // Re-launch search + auto *searchHandler = SearchPluginManager::instance()->startSearch(searchJobWidget->searchPattern(), selectedCategory(), selectedPlugins()); + searchJobWidget->assignSearchHandler(searchHandler); +} + +void SearchWidget::DataStorage::loadSession(const bool withSearchResults) +{ + const Path sessionFilePath = makeDataFilePath(SESSION_FILE_NAME); + const auto loadResult = ::loadSession(sessionFilePath); + if (!loadResult) + { + LogMsg(tr("Failed to load Search UI saved state data. File: \"%1\". Error: \"%2\"") + .arg(sessionFilePath.toString(), loadResult.error()), Log::WARNING); + return; + } + + const SessionData &sessionData = loadResult.value(); + + for (const auto &[tabID, searchPattern] : sessionData.tabs) + { + QList searchResults; + + if (withSearchResults) + { + const Path tabStateFilePath = makeDataFilePath(tabID + u".json"); + if (const auto loadTabStateResult = loadSearchResults(tabStateFilePath)) + { + searchResults = loadTabStateResult.value(); + } + else + { + LogMsg(tr("Failed to load saved search results. Tab: \"%1\". File: \"%2\". Error: \"%3\"") + .arg(searchPattern, tabStateFilePath.toString(), loadTabStateResult.error()), Log::WARNING); + } + } + + emit tabLoaded(tabID, searchPattern, searchResults); + } + + emit sessionLoaded(sessionData); +} + +void SearchWidget::DataStorage::storeSession(const SessionData &sessionData) +{ + QJsonArray tabsList; + for (const auto &[tabID, searchPattern] : sessionData.tabs) + { + const QJsonObject tabObj { + {u"ID"_s, tabID}, + {u"SearchPattern"_s, searchPattern} + }; + tabsList.append(tabObj); + } + + const QJsonObject sessionObj { + {u"Tabs"_s, tabsList}, + {u"CurrentTab"_s, sessionData.currentTabID} + }; + + const Path sessionFilePath = makeDataFilePath(SESSION_FILE_NAME); + const auto saveResult = Utils::IO::saveToFile(sessionFilePath, QJsonDocument(sessionObj).toJson(QJsonDocument::Compact)); + if (!saveResult) + { + LogMsg(tr("Failed to save Search UI state. File: \"%1\". Error: \"%2\"") + .arg(sessionFilePath.toString(), saveResult.error()), Log::WARNING); + } +} + +void SearchWidget::DataStorage::removeSession() +{ + Utils::Fs::removeFile(makeDataFilePath(SESSION_FILE_NAME)); +} + +void SearchWidget::DataStorage::storeTab(const QString &tabID, const QList &searchResults) +{ + QJsonArray searchResultsArray; + for (const SearchResult &searchResult : searchResults) + { + searchResultsArray.append(QJsonObject { + {KEY_RESULT_FILENAME, searchResult.fileName}, + {KEY_RESULT_FILEURL, searchResult.fileUrl}, + {KEY_RESULT_FILESIZE, searchResult.fileSize}, + {KEY_RESULT_SEEDERSCOUNT, searchResult.nbSeeders}, + {KEY_RESULT_LEECHERSCOUNT, searchResult.nbLeechers}, + {KEY_RESULT_ENGINENAME, searchResult.engineName}, + {KEY_RESULT_SITEURL, searchResult.siteUrl}, + {KEY_RESULT_DESCRLINK, searchResult.descrLink}, + {KEY_RESULT_PUBDATE, Utils::DateTime::toSecsSinceEpoch(searchResult.pubDate)} + }); + } + + const Path filePath = makeDataFilePath(tabID + u".json"); + const auto saveResult = Utils::IO::saveToFile(filePath, QJsonDocument(searchResultsArray).toJson(QJsonDocument::Compact)); + if (!saveResult) + { + LogMsg(tr("Failed to save search results. Tab: \"%1\". File: \"%2\". Error: \"%3\"") + .arg(tabID, filePath.toString(), saveResult.error()), Log::WARNING); + } +} + +void SearchWidget::DataStorage::removeTab(const QString &tabID) +{ + Utils::Fs::removeFile(makeDataFilePath(tabID + u".json")); +} + +void SearchWidget::DataStorage::loadHistory() +{ + const Path historyFilePath = makeDataFilePath(HISTORY_FILE_NAME); + const auto loadResult = ::loadHistory(historyFilePath); + if (!loadResult) + { + LogMsg(tr("Failed to load Search UI history. File: \"%1\". Error: \"%2\"") + .arg(historyFilePath.toString(), loadResult.error()), Log::WARNING); + return; + } + + emit historyLoaded(loadResult.value()); +} + +void SearchWidget::DataStorage::storeHistory(const QStringList &history) +{ + const Path filePath = makeDataFilePath(HISTORY_FILE_NAME); + const auto saveResult = Utils::IO::saveToFile(filePath, history.join(u'\n').toUtf8()); + if (!saveResult) + { + LogMsg(tr("Failed to save search history. File: \"%1\". Error: \"%2\"") + .arg(filePath.toString(), saveResult.error()), Log::WARNING); + } +} + +void SearchWidget::DataStorage::removeHistory() +{ + Utils::Fs::removeFile(makeDataFilePath(HISTORY_FILE_NAME)); +} + +#include "searchwidget.moc" diff --git a/src/gui/search/searchwidget.h b/src/gui/search/searchwidget.h index 06544308c..a09493ef6 100644 --- a/src/gui/search/searchwidget.h +++ b/src/gui/search/searchwidget.h @@ -1,7 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015-2025 Vladimir Golovnev * Copyright (C) 2020, Will Da Silva - * Copyright (C) 2015, 2018 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -30,17 +30,17 @@ #pragma once -#include #include +#include #include +#include "base/utils/thread.h" #include "gui/guiapplicationcomponent.h" class QEvent; class QObject; -class QTabWidget; +class QStringListModel; -class MainWindow; class SearchJobWidget; namespace Ui @@ -54,36 +54,66 @@ class SearchWidget : public GUIApplicationComponent Q_DISABLE_COPY_MOVE(SearchWidget) public: - explicit SearchWidget(IGUIApplication *app, MainWindow *mainWindow); + explicit SearchWidget(IGUIApplication *app, QWidget *parent); ~SearchWidget() override; void giveFocusToSearchInput(); -private slots: - void on_searchButton_clicked(); - void on_pluginsButton_clicked(); +signals: + void searchFinished(bool failed); private: bool eventFilter(QObject *object, QEvent *event) override; - void tabChanged(int index); + + void onPreferencesChanged(); + + void pluginsButtonClicked(); + void searchButtonClicked(); + void stopButtonClicked(); + void searchTextEdited(const QString &text); + void currentTabChanged(int index); + + void tabStatusChanged(SearchJobWidget *tab); + void closeTab(int index); void closeAllTabs(); - void tabStatusChanged(QWidget *tab); + void refreshTab(SearchJobWidget *searchJobWidget); + void showTabMenu(int index); + void selectMultipleBox(int index); void toggleFocusBetweenLineEdits(); + void adjustSearchButton(); void fillCatCombobox(); void fillPluginComboBox(); void selectActivePage(); - void searchTextEdited(const QString &); QString selectedCategory() const; - QString selectedPlugin() const; + QStringList selectedPlugins() const; + + QString generateTabID() const; + int addTab(const QString &tabID, SearchJobWidget *searchJobWdget); + + void loadHistory(); + void restoreSession(); + void updateHistory(const QString &newSearchPattern); + void saveSession() const; + + void createSearchPatternCompleter(); Ui::SearchWidget *m_ui = nullptr; QPointer m_currentSearchTab; // Selected tab - QPointer m_activeSearchTab; // Tab with running search - QList m_allTabs; // To store all tabs - MainWindow *m_mainWindow = nullptr; bool m_isNewQueryString = false; + QHash m_tabWidgets; + + bool m_storeOpenedTabs = false; + bool m_storeOpenedTabsResults = false; + int m_historyLength = 0; + + Utils::Thread::UniquePtr m_ioThread; + + class DataStorage; + DataStorage *m_dataStorage = nullptr; + + QStringListModel *m_searchPatternCompleterModel = nullptr; }; diff --git a/src/gui/search/searchwidget.ui b/src/gui/search/searchwidget.ui index cc3f0e7f5..54442b201 100644 --- a/src/gui/search/searchwidget.ui +++ b/src/gui/search/searchwidget.ui @@ -52,6 +52,13 @@ + + + + Stop + + + diff --git a/src/gui/shutdownconfirmdialog.ui b/src/gui/shutdownconfirmdialog.ui index 2db098701..9c1f42351 100644 --- a/src/gui/shutdownconfirmdialog.ui +++ b/src/gui/shutdownconfirmdialog.ui @@ -22,17 +22,17 @@ warning icon - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - Qt::Horizontal + Qt::Orientation::Horizontal - QSizePolicy::Fixed + QSizePolicy::Policy::Fixed @@ -70,7 +70,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -83,7 +83,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/speedlimitdialog.ui b/src/gui/speedlimitdialog.ui index e9250793d..71cef5f65 100644 --- a/src/gui/speedlimitdialog.ui +++ b/src/gui/speedlimitdialog.ui @@ -37,7 +37,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -52,6 +52,9 @@ 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + @@ -64,7 +67,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -79,6 +82,9 @@ 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + @@ -107,7 +113,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -122,6 +128,9 @@ 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + @@ -134,7 +143,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -149,6 +158,9 @@ 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + @@ -157,7 +169,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -170,7 +182,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/statsdialog.ui b/src/gui/statsdialog.ui index 76e22599e..acb2767cc 100644 --- a/src/gui/statsdialog.ui +++ b/src/gui/statsdialog.ui @@ -20,29 +20,15 @@ User statistics - - + + - TextLabel + All-time upload: - - - - Connected peers: - - - - - - - All-time share ratio: - - - - - + + TextLabel @@ -55,14 +41,21 @@ - + TextLabel - + + + + All-time share ratio: + + + + TextLabel @@ -76,15 +69,22 @@ - - + + - All-time upload: + TextLabel - - + + + + Connected peers: + + + + + TextLabel @@ -106,20 +106,13 @@ - + TextLabel - - - - TextLabel - - - @@ -127,6 +120,13 @@ + + + + TextLabel + + + @@ -136,28 +136,28 @@ Performance statistics - - + + - TextLabel + Write cache overload: - - - - TextLabel - - - - + TextLabel - + + + + Read cache overload: + + + + TextLabel @@ -171,10 +171,10 @@ - - + + - Write cache overload: + TextLabel @@ -185,10 +185,10 @@ - - + + - Read cache overload: + TextLabel @@ -199,7 +199,7 @@ - + TextLabel @@ -212,7 +212,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -225,7 +225,7 @@ - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/statusbar.cpp b/src/gui/statusbar.cpp index 8eef15e7b..d881ee24b 100644 --- a/src/gui/statusbar.cpp +++ b/src/gui/statusbar.cpp @@ -38,11 +38,25 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/sessionstatus.h" +#include "base/preferences.h" #include "base/utils/misc.h" #include "speedlimitdialog.h" #include "uithememanager.h" #include "utils.h" +namespace +{ + QWidget *createSeparator(QWidget *parent) + { + QFrame *separator = new QFrame(parent); + separator->setFrameStyle(QFrame::VLine); + #ifndef Q_OS_MACOS + separator->setFrameShadow(QFrame::Raised); + #endif + return separator; + } +} + StatusBar::StatusBar(QWidget *parent) : QStatusBar(parent) { @@ -86,8 +100,17 @@ StatusBar::StatusBar(QWidget *parent) m_upSpeedLbl->setStyleSheet(u"text-align:left;"_s); m_upSpeedLbl->setMinimumWidth(200); + m_freeDiskSpaceLbl = new QLabel(tr("Free space: N/A")); + m_freeDiskSpaceLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + m_freeDiskSpaceSeparator = createSeparator(m_freeDiskSpaceLbl); + + m_lastExternalIPsLbl = new QLabel(tr("External IP: N/A")); + m_lastExternalIPsLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + m_lastExternalIPsSeparator = createSeparator(m_lastExternalIPsLbl); + m_DHTLbl = new QLabel(tr("DHT: %1 nodes").arg(0), this); m_DHTLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + m_DHTSeparator = createSeparator(m_DHTLbl); m_altSpeedsBtn = new QPushButton(this); m_altSpeedsBtn->setFlat(true); @@ -109,44 +132,43 @@ StatusBar::StatusBar(QWidget *parent) m_connecStatusLblIcon->setMaximumWidth(Utils::Gui::largeIconSize().width()); m_altSpeedsBtn->setMaximumWidth(Utils::Gui::largeIconSize().width()); - QFrame *statusSep1 = new QFrame(this); - statusSep1->setFrameStyle(QFrame::VLine); -#ifndef Q_OS_MACOS - statusSep1->setFrameShadow(QFrame::Raised); -#endif - QFrame *statusSep2 = new QFrame(this); - statusSep2->setFrameStyle(QFrame::VLine); -#ifndef Q_OS_MACOS - statusSep2->setFrameShadow(QFrame::Raised); -#endif - QFrame *statusSep3 = new QFrame(this); - statusSep3->setFrameStyle(QFrame::VLine); -#ifndef Q_OS_MACOS - statusSep3->setFrameShadow(QFrame::Raised); -#endif - QFrame *statusSep4 = new QFrame(this); - statusSep4->setFrameStyle(QFrame::VLine); -#ifndef Q_OS_MACOS - statusSep4->setFrameShadow(QFrame::Raised); -#endif + layout->addWidget(m_freeDiskSpaceLbl); + layout->addWidget(m_freeDiskSpaceSeparator); + + layout->addWidget(m_lastExternalIPsLbl); + layout->addWidget(m_lastExternalIPsSeparator); + layout->addWidget(m_DHTLbl); - layout->addWidget(statusSep1); + layout->addWidget(m_DHTSeparator); + layout->addWidget(m_connecStatusLblIcon); - layout->addWidget(statusSep2); + layout->addWidget(createSeparator(m_connecStatusLblIcon)); + layout->addWidget(m_altSpeedsBtn); - layout->addWidget(statusSep4); + layout->addWidget(createSeparator(m_altSpeedsBtn)); + layout->addWidget(m_dlSpeedLbl); - layout->addWidget(statusSep3); + layout->addWidget(createSeparator(m_dlSpeedLbl)); + layout->addWidget(m_upSpeedLbl); addPermanentWidget(container); setStyleSheet(u"QWidget {margin: 0;}"_s); container->adjustSize(); adjustSize(); + updateFreeDiskSpaceVisibility(); + updateExternalAddressesVisibility(); // Is DHT enabled - m_DHTLbl->setVisible(session->isDHTEnabled()); + const bool isDHTVisible = session->isDHTEnabled(); + m_DHTLbl->setVisible(isDHTVisible); + m_DHTSeparator->setVisible(isDHTVisible); refresh(); connect(session, &BitTorrent::Session::statsUpdated, this, &StatusBar::refresh); + + updateFreeDiskSpaceLabel(session->freeDiskSpace()); + connect(session, &BitTorrent::Session::freeDiskSpaceChecked, this, &StatusBar::updateFreeDiskSpaceLabel); + + connect(Preferences::instance(), &Preferences::changed, this, &StatusBar::optionsSaved); } StatusBar::~StatusBar() @@ -203,15 +225,52 @@ void StatusBar::updateDHTNodesNumber() if (BitTorrent::Session::instance()->isDHTEnabled()) { m_DHTLbl->setVisible(true); - m_DHTLbl->setText(tr("DHT: %1 nodes") - .arg(BitTorrent::Session::instance()->status().dhtNodes)); + m_DHTSeparator->setVisible(true); + m_DHTLbl->setText(tr("DHT: %1 nodes").arg(BitTorrent::Session::instance()->status().dhtNodes)); } else { m_DHTLbl->setVisible(false); + m_DHTSeparator->setVisible(false); } } +void StatusBar::updateFreeDiskSpaceLabel(const qint64 value) +{ + m_freeDiskSpaceLbl->setText(tr("Free space: ") + Utils::Misc::friendlyUnit(value)); +} + +void StatusBar::updateFreeDiskSpaceVisibility() +{ + const bool isVisible = Preferences::instance()->isStatusbarFreeDiskSpaceDisplayed(); + m_freeDiskSpaceLbl->setVisible(isVisible); + m_freeDiskSpaceSeparator->setVisible(isVisible); +} + +void StatusBar::updateExternalAddressesLabel() +{ + const QString lastExternalIPv4Address = BitTorrent::Session::instance()->lastExternalIPv4Address(); + const QString lastExternalIPv6Address = BitTorrent::Session::instance()->lastExternalIPv6Address(); + QString addressText = tr("External IP: N/A"); + + const bool hasIPv4Address = !lastExternalIPv4Address.isEmpty(); + const bool hasIPv6Address = !lastExternalIPv6Address.isEmpty(); + + if (hasIPv4Address && hasIPv6Address) + addressText = tr("External IPs: %1, %2").arg(lastExternalIPv4Address, lastExternalIPv6Address); + else if (hasIPv4Address || hasIPv6Address) + addressText = tr("External IP: %1%2").arg(lastExternalIPv4Address, lastExternalIPv6Address); + + m_lastExternalIPsLbl->setText(addressText); +} + +void StatusBar::updateExternalAddressesVisibility() +{ + const bool isVisible = Preferences::instance()->isStatusbarExternalIPDisplayed(); + m_lastExternalIPsLbl->setVisible(isVisible); + m_lastExternalIPsSeparator->setVisible(isVisible); +} + void StatusBar::updateSpeedLabels() { const BitTorrent::SessionStatus &sessionStatus = BitTorrent::Session::instance()->status(); @@ -235,6 +294,7 @@ void StatusBar::refresh() { updateConnectionStatus(); updateDHTNodesNumber(); + updateExternalAddressesLabel(); updateSpeedLabels(); } @@ -261,3 +321,9 @@ void StatusBar::capSpeed() dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->open(); } + +void StatusBar::optionsSaved() +{ + updateFreeDiskSpaceVisibility(); + updateExternalAddressesVisibility(); +} diff --git a/src/gui/statusbar.h b/src/gui/statusbar.h index be5f993d0..27fde54d1 100644 --- a/src/gui/statusbar.h +++ b/src/gui/statusbar.h @@ -58,15 +58,25 @@ private slots: void refresh(); void updateAltSpeedsBtn(bool alternative); void capSpeed(); + void optionsSaved(); private: void updateConnectionStatus(); void updateDHTNodesNumber(); + void updateFreeDiskSpaceLabel(qint64 value); + void updateFreeDiskSpaceVisibility(); + void updateExternalAddressesLabel(); + void updateExternalAddressesVisibility(); void updateSpeedLabels(); QPushButton *m_dlSpeedLbl = nullptr; QPushButton *m_upSpeedLbl = nullptr; + QLabel *m_freeDiskSpaceLbl = nullptr; + QWidget *m_freeDiskSpaceSeparator = nullptr; + QLabel *m_lastExternalIPsLbl = nullptr; + QWidget *m_lastExternalIPsSeparator = nullptr; QLabel *m_DHTLbl = nullptr; + QWidget *m_DHTSeparator = nullptr; QPushButton *m_connecStatusLblIcon = nullptr; QPushButton *m_altSpeedsBtn = nullptr; }; diff --git a/src/gui/torrentcategorydialog.ui b/src/gui/torrentcategorydialog.ui index ed0c13123..804af09dd 100644 --- a/src/gui/torrentcategorydialog.ui +++ b/src/gui/torrentcategorydialog.ui @@ -17,7 +17,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -98,7 +98,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -143,7 +143,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -156,10 +156,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok @@ -173,12 +173,6 @@ 1 - - textCategoryName - comboSavePath - comboUseDownloadPath - comboDownloadPath - diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 61c43cebc..e75fc1856 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022-2023 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2006-2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -34,20 +34,17 @@ #include #include #include +#include #include #include +#include -#if defined(Q_OS_WIN) -#include -#include -#else -#include -#include -#endif - -#if defined Q_OS_WIN || defined Q_OS_MACOS +#if defined(Q_OS_MACOS) #define QBT_PIXMAP_CACHE_FOR_FILE_ICONS #include +#elif !defined(Q_OS_WIN) +#include +#include #endif #include "base/bittorrent/downloadpriority.h" @@ -116,27 +113,8 @@ namespace }; #endif // QBT_PIXMAP_CACHE_FOR_FILE_ICONS -#if defined(Q_OS_WIN) - // See QTBUG-25319 for explanation why this is required - class WinShellFileIconProvider final : public CachingFileIconProvider - { - QPixmap pixmapForExtension(const QString &ext) const override - { - const std::wstring extWStr = QString(u'.' + ext).toStdWString(); - - SHFILEINFOW sfi {}; - const HRESULT hr = ::SHGetFileInfoW(extWStr.c_str(), - FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), (SHGFI_ICON | SHGFI_USEFILEATTRIBUTES)); - if (FAILED(hr)) - return {}; - - const auto iconPixmap = QPixmap::fromImage(QImage::fromHICON(sfi.hIcon)); - ::DestroyIcon(sfi.hIcon); - return iconPixmap; - } - }; -#elif defined(Q_OS_MACOS) - // There is a similar bug on macOS, to be reported to Qt +#if defined(Q_OS_MACOS) + // There is a bug on macOS, to be reported to Qt // https://github.com/qbittorrent/qBittorrent/pull/6156#issuecomment-316302615 class MacFileIconProvider final : public CachingFileIconProvider { @@ -145,7 +123,7 @@ namespace return MacUtils::pixmapForExtension(ext, QSize(32, 32)); } }; -#else +#elif !defined(Q_OS_WIN) /** * @brief Tests whether QFileIconProvider actually works * @@ -187,9 +165,9 @@ namespace TorrentContentModel::TorrentContentModel(QObject *parent) : QAbstractItemModel(parent) - , m_rootItem(new TorrentContentModelFolder(QVector({ tr("Name"), tr("Total Size"), tr("Progress"), tr("Download Priority"), tr("Remaining"), tr("Availability") }))) + , m_rootItem(new TorrentContentModelFolder(QList({ tr("Name"), tr("Total Size"), tr("Progress"), tr("Download Priority"), tr("Remaining"), tr("Availability") }))) #if defined(Q_OS_WIN) - , m_fileIconProvider {new WinShellFileIconProvider} + , m_fileIconProvider {new QFileIconProvider} #elif defined(Q_OS_MACOS) , m_fileIconProvider {new MacFileIconProvider} #else @@ -209,7 +187,7 @@ void TorrentContentModel::updateFilesProgress() { Q_ASSERT(m_contentHandler && m_contentHandler->hasMetadata()); - const QVector &filesProgress = m_contentHandler->filesProgress(); + const QList &filesProgress = m_contentHandler->filesProgress(); Q_ASSERT(m_filesIndex.size() == filesProgress.size()); // XXX: Why is this necessary? if (m_filesIndex.size() != filesProgress.size()) [[unlikely]] @@ -226,7 +204,7 @@ void TorrentContentModel::updateFilesPriorities() { Q_ASSERT(m_contentHandler && m_contentHandler->hasMetadata()); - const QVector fprio = m_contentHandler->filePriorities(); + const QList fprio = m_contentHandler->filePriorities(); Q_ASSERT(m_filesIndex.size() == fprio.size()); // XXX: Why is this necessary? if (m_filesIndex.size() != fprio.size()) @@ -241,7 +219,7 @@ void TorrentContentModel::updateFilesAvailability() Q_ASSERT(m_contentHandler && m_contentHandler->hasMetadata()); using HandlerPtr = QPointer; - m_contentHandler->fetchAvailableFileFractions([this, handler = HandlerPtr(m_contentHandler)](const QVector &availableFileFractions) + m_contentHandler->fetchAvailableFileFractions([this, handler = HandlerPtr(m_contentHandler)](const QList &availableFileFractions) { if (handler != m_contentHandler) return; @@ -274,7 +252,7 @@ bool TorrentContentModel::setItemPriority(const QModelIndex &index, BitTorrent:: m_rootItem->recalculateProgress(); m_rootItem->recalculateAvailability(); - const QVector columns = + const QList columns = { {TorrentContentModelItem::COL_NAME, TorrentContentModelItem::COL_NAME}, {TorrentContentModelItem::COL_PRIO, TorrentContentModelItem::COL_PRIO} @@ -284,9 +262,9 @@ bool TorrentContentModel::setItemPriority(const QModelIndex &index, BitTorrent:: return true; } -QVector TorrentContentModel::getFilePriorities() const +QList TorrentContentModel::getFilePriorities() const { - QVector prio; + QList prio; prio.reserve(m_filesIndex.size()); for (const TorrentContentModelFile *file : asConst(m_filesIndex)) prio.push_back(file->priority()); @@ -422,7 +400,9 @@ QVariant TorrentContentModel::data(const QModelIndex &index, const int role) con const bool hasIgnored = std::any_of(childItems.cbegin(), childItems.cend() , [](const TorrentContentModelItem *childItem) { - return (childItem->priority() == BitTorrent::DownloadPriority::Ignored); + const auto prio = childItem->priority(); + return ((prio == BitTorrent::DownloadPriority::Ignored) + || (prio == BitTorrent::DownloadPriority::Mixed)); }); return hasIgnored ? Qt::PartiallyChecked : Qt::Checked; @@ -458,7 +438,7 @@ Qt::ItemFlags TorrentContentModel::flags(const QModelIndex &index) const if (!index.isValid()) return Qt::NoItemFlags; - Qt::ItemFlags flags {Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable}; + Qt::ItemFlags flags {Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable}; if (itemType(index) == TorrentContentModelItem::FolderType) flags |= Qt::ItemIsAutoTristate; if (index.column() == TorrentContentModelItem::COL_PRIO) @@ -539,6 +519,47 @@ int TorrentContentModel::rowCount(const QModelIndex &parent) const return parentItem ? parentItem->childCount() : 0; } +QMimeData *TorrentContentModel::mimeData(const QModelIndexList &indexes) const +{ + if (indexes.isEmpty()) + return nullptr; + + const Path storagePath = contentHandler()->actualStorageLocation(); + + QList paths; + paths.reserve(indexes.size()); + + for (const QModelIndex &index : indexes) + { + if (!index.isValid()) + continue; + if (index.column() != TorrentContentModelItem::COL_NAME) + continue; + + if (itemType(index) == TorrentContentModelItem::FileType) + { + const int idx = getFileIndex(index); + const Path fullPath = storagePath / contentHandler()->actualFilePath(idx); + paths.append(QUrl::fromLocalFile(fullPath.data())); + } + else // folder type + { + const Path fullPath = storagePath / getItemPath(index); + paths.append(QUrl::fromLocalFile(fullPath.data())); + } + } + + auto *mimeData = new QMimeData; // lifetime will be handled by Qt + mimeData->setUrls(paths); + + return mimeData; +} + +QStringList TorrentContentModel::mimeTypes() const +{ + return {u"text/uri-list"_s}; +} + void TorrentContentModel::populate() { Q_ASSERT(m_contentHandler && m_contentHandler->hasMetadata()); @@ -547,7 +568,7 @@ void TorrentContentModel::populate() m_filesIndex.reserve(filesCount); QHash> folderMap; - QVector lastParentPath; + QList lastParentPath; TorrentContentModelFolder *lastParent = m_rootItem; // Iterate over files for (int i = 0; i < filesCount; ++i) @@ -626,7 +647,7 @@ void TorrentContentModel::refresh() updateFilesPriorities(); updateFilesAvailability(); - const QVector columns = + const QList columns = { {TorrentContentModelItem::COL_NAME, TorrentContentModelItem::COL_NAME}, {TorrentContentModelItem::COL_PROGRESS, TorrentContentModelItem::COL_PROGRESS}, @@ -643,7 +664,7 @@ void TorrentContentModel::refresh() } } -void TorrentContentModel::notifySubtreeUpdated(const QModelIndex &index, const QVector &columns) +void TorrentContentModel::notifySubtreeUpdated(const QModelIndex &index, const QList &columns) { // For best performance, `columns` entries should be arranged from left to right @@ -663,7 +684,7 @@ void TorrentContentModel::notifySubtreeUpdated(const QModelIndex &index, const Q } // propagate down the model - QVector parentIndexes; + QList parentIndexes; if (hasChildren(index)) parentIndexes.push_back(index); diff --git a/src/gui/torrentcontentmodel.h b/src/gui/torrentcontentmodel.h index d18577453..b1b331052 100644 --- a/src/gui/torrentcontentmodel.h +++ b/src/gui/torrentcontentmodel.h @@ -30,13 +30,14 @@ #pragma once #include -#include +#include #include "base/indexrange.h" #include "base/pathfwd.h" #include "torrentcontentmodelitem.h" class QFileIconProvider; +class QMimeData; class QModelIndex; class QVariant; @@ -66,7 +67,7 @@ public: void refresh(); - QVector getFilePriorities() const; + QList getFilePriorities() const; TorrentContentModelItem::ItemType itemType(const QModelIndex &index) const; int getFileIndex(const QModelIndex &index) const; Path getItemPath(const QModelIndex &index) const; @@ -86,15 +87,17 @@ signals: private: using ColumnInterval = IndexInterval; + QMimeData *mimeData(const QModelIndexList &indexes) const override; + QStringList mimeTypes() const override; void populate(); void updateFilesProgress(); void updateFilesPriorities(); void updateFilesAvailability(); bool setItemPriority(const QModelIndex &index, BitTorrent::DownloadPriority priority); - void notifySubtreeUpdated(const QModelIndex &index, const QVector &columns); + void notifySubtreeUpdated(const QModelIndex &index, const QList &columns); BitTorrent::TorrentContentHandler *m_contentHandler = nullptr; TorrentContentModelFolder *m_rootItem = nullptr; - QVector m_filesIndex; + QList m_filesIndex; QFileIconProvider *m_fileIconProvider = nullptr; }; diff --git a/src/gui/torrentcontentmodelfolder.cpp b/src/gui/torrentcontentmodelfolder.cpp index abece9c9b..baaa098aa 100644 --- a/src/gui/torrentcontentmodelfolder.cpp +++ b/src/gui/torrentcontentmodelfolder.cpp @@ -39,7 +39,7 @@ TorrentContentModelFolder::TorrentContentModelFolder(const QString &name, Torren m_name = name; } -TorrentContentModelFolder::TorrentContentModelFolder(const QVector &data) +TorrentContentModelFolder::TorrentContentModelFolder(const QList &data) : TorrentContentModelItem(nullptr) { Q_ASSERT(data.size() == NB_COL); @@ -63,7 +63,7 @@ void TorrentContentModelFolder::deleteAllChildren() m_childItems.clear(); } -const QVector &TorrentContentModelFolder::children() const +const QList &TorrentContentModelFolder::children() const { return m_childItems; } @@ -97,7 +97,7 @@ void TorrentContentModelFolder::updatePriority() // If all children have the same priority // then the folder should have the same // priority - const BitTorrent::DownloadPriority prio = m_childItems.first()->priority(); + const BitTorrent::DownloadPriority prio = m_childItems.constFirst()->priority(); for (int i = 1; i < m_childItems.size(); ++i) { if (m_childItems.at(i)->priority() != prio) @@ -147,10 +147,19 @@ void TorrentContentModelFolder::recalculateProgress() tRemaining += child->remaining(); } - if (!isRootItem() && (tSize > 0)) + if (!isRootItem()) { - m_progress = tProgress / tSize; - m_remaining = tRemaining; + if (tSize > 0) + { + m_progress = tProgress / tSize; + m_remaining = tRemaining; + } + else + { + m_progress = 1.0; + m_remaining = 0; + } + Q_ASSERT(m_progress <= 1.); } } diff --git a/src/gui/torrentcontentmodelfolder.h b/src/gui/torrentcontentmodelfolder.h index c82c1008e..7e3fdfc2b 100644 --- a/src/gui/torrentcontentmodelfolder.h +++ b/src/gui/torrentcontentmodelfolder.h @@ -42,7 +42,7 @@ public: TorrentContentModelFolder(const QString &name, TorrentContentModelFolder *parent); // Invisible root item constructor - explicit TorrentContentModelFolder(const QVector &data); + explicit TorrentContentModelFolder(const QList &data); ~TorrentContentModelFolder() override; @@ -56,11 +56,11 @@ public: void setPriority(BitTorrent::DownloadPriority newPriority, bool updateParent = true) override; void deleteAllChildren(); - const QVector &children() const; + const QList &children() const; void appendChild(TorrentContentModelItem *item); TorrentContentModelItem *child(int row) const; int childCount() const; private: - QVector m_childItems; + QList m_childItems; }; diff --git a/src/gui/torrentcontentmodelitem.cpp b/src/gui/torrentcontentmodelitem.cpp index d226d0852..ee5245c96 100644 --- a/src/gui/torrentcontentmodelitem.cpp +++ b/src/gui/torrentcontentmodelitem.cpp @@ -140,9 +140,11 @@ QString TorrentContentModelItem::displayData(const int column) const return (value + u'%'); } default: - Q_ASSERT(false); - return {}; + Q_UNREACHABLE(); + break; } + + return {}; } QVariant TorrentContentModelItem::underlyingData(const int column) const @@ -165,9 +167,11 @@ QVariant TorrentContentModelItem::underlyingData(const int column) const case COL_AVAILABILITY: return availability(); default: - Q_ASSERT(false); - return {}; + Q_UNREACHABLE(); + break; } + + return {}; } int TorrentContentModelItem::row() const diff --git a/src/gui/torrentcontentmodelitem.h b/src/gui/torrentcontentmodelitem.h index 27a33a4ad..e644f047e 100644 --- a/src/gui/torrentcontentmodelitem.h +++ b/src/gui/torrentcontentmodelitem.h @@ -29,7 +29,7 @@ #pragma once #include -#include +#include #include "base/bittorrent/downloadpriority.h" @@ -86,7 +86,7 @@ public: protected: TorrentContentModelFolder *m_parentItem = nullptr; // Root item members - QVector m_itemData; + QList m_itemData; // Non-root item members QString m_name; qulonglong m_size = 0; diff --git a/src/gui/torrentcontentwidget.cpp b/src/gui/torrentcontentwidget.cpp index 1b3817408..472537bf2 100644 --- a/src/gui/torrentcontentwidget.cpp +++ b/src/gui/torrentcontentwidget.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2014 Ivan Sorokin * * This program is free software; you can redistribute it and/or @@ -37,7 +37,6 @@ #include #include #include -#include #include #include "base/bittorrent/torrentcontenthandler.h" @@ -56,9 +55,24 @@ #include "gui/macutilities.h" #endif +namespace +{ + QList toPersistentIndexes(const QModelIndexList &indexes) + { + QList persistentIndexes; + persistentIndexes.reserve(indexes.size()); + for (const QModelIndex &index : indexes) + persistentIndexes.emplaceBack(index); + + return persistentIndexes; + } +} + TorrentContentWidget::TorrentContentWidget(QWidget *parent) : QTreeView(parent) { + setDragEnabled(true); + setDragDropMode(QAbstractItemView::DragOnly); setExpandsOnDoubleClick(false); setSortingEnabled(true); setUniformRowHeights(true); @@ -173,10 +187,20 @@ Path TorrentContentWidget::getItemPath(const QModelIndex &index) const return path; } -void TorrentContentWidget::setFilterPattern(const QString &patternText) +void TorrentContentWidget::setFilterPattern(const QString &patternText, const FilterPatternFormat format) { - const QString pattern = Utils::String::wildcardToRegexPattern(patternText); - m_filterModel->setFilterRegularExpression(QRegularExpression(pattern, QRegularExpression::CaseInsensitiveOption)); + if (format == FilterPatternFormat::PlainText) + { + m_filterModel->setFilterFixedString(patternText); + m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + } + else + { + const QString pattern = ((format == FilterPatternFormat::Regex) + ? patternText : Utils::String::wildcardToRegexPattern(patternText)); + m_filterModel->setFilterRegularExpression(QRegularExpression(pattern, QRegularExpression::CaseInsensitiveOption)); + } + if (patternText.isEmpty()) { collapseAll(); @@ -219,9 +243,9 @@ void TorrentContentWidget::keyPressEvent(QKeyEvent *event) const Qt::CheckState state = (static_cast(value.toInt()) == Qt::Checked) ? Qt::Unchecked : Qt::Checked; - const QModelIndexList selection = selectionModel()->selectedRows(TorrentContentModelItem::COL_NAME); + const QList selection = toPersistentIndexes(selectionModel()->selectedRows(TorrentContentModelItem::COL_NAME)); - for (const QModelIndex &index : selection) + for (const QPersistentModelIndex &index : selection) model()->setData(index, state, Qt::CheckStateRole); } @@ -248,10 +272,10 @@ void TorrentContentWidget::renameSelectedFile() void TorrentContentWidget::applyPriorities(const BitTorrent::DownloadPriority priority) { - const QModelIndexList selectedRows = selectionModel()->selectedRows(0); - for (const QModelIndex &index : selectedRows) + const QList selectedRows = toPersistentIndexes(selectionModel()->selectedRows(Priority)); + for (const QPersistentModelIndex &index : selectedRows) { - model()->setData(index.sibling(index.row(), Priority), static_cast(priority)); + model()->setData(index, static_cast(priority)); } } @@ -261,7 +285,7 @@ void TorrentContentWidget::applyPrioritiesByOrder() // a download priority that will apply to each item. The number of groups depends on how // many "download priority" are available to be assigned - const QModelIndexList selectedRows = selectionModel()->selectedRows(0); + const QList selectedRows = toPersistentIndexes(selectionModel()->selectedRows(Priority)); const qsizetype priorityGroups = 3; const auto priorityGroupSize = std::max((selectedRows.length() / priorityGroups), 1); @@ -283,8 +307,8 @@ void TorrentContentWidget::applyPrioritiesByOrder() break; } - const QModelIndex &index = selectedRows[i]; - model()->setData(index.sibling(index.row(), Priority), static_cast(priority)); + const QPersistentModelIndex &index = selectedRows[i]; + model()->setData(index, static_cast(priority)); } } diff --git a/src/gui/torrentcontentwidget.h b/src/gui/torrentcontentwidget.h index 4baccb883..1e9f0835c 100644 --- a/src/gui/torrentcontentwidget.h +++ b/src/gui/torrentcontentwidget.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2022 Vladimir Golovnev + * Copyright (C) 2022-2024 Vladimir Golovnev * Copyright (C) 2014 Ivan Sorokin * * This program is free software; you can redistribute it and/or @@ -33,6 +33,7 @@ #include "base/bittorrent/downloadpriority.h" #include "base/pathfwd.h" +#include "filterpatternformat.h" class QShortcut; @@ -92,7 +93,7 @@ public: int getFileIndex(const QModelIndex &index) const; Path getItemPath(const QModelIndex &index) const; - void setFilterPattern(const QString &patternText); + void setFilterPattern(const QString &patternText, FilterPatternFormat format = FilterPatternFormat::Wildcards); void checkAll(); void checkNone(); diff --git a/src/gui/torrentcreatordialog.cpp b/src/gui/torrentcreatordialog.cpp index d6b5bdf53..71405ca8e 100644 --- a/src/gui/torrentcreatordialog.cpp +++ b/src/gui/torrentcreatordialog.cpp @@ -84,11 +84,7 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const Path &defaultP m_ui->setupUi(this); m_ui->comboPieceSize->addItem(tr("Auto"), 0); -#ifdef QBT_USES_LIBTORRENT2 - for (int i = 4; i <= 18; ++i) -#else for (int i = 4; i <= 17; ++i) -#endif { const int size = 1024 << i; const QString displaySize = Utils::Misc::friendlyUnit(size, false, 0); @@ -109,6 +105,7 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const Path &defaultP updateInputPath(defaultPath); m_threadPool.setMaxThreadCount(1); + m_threadPool.setObjectName("TorrentCreatorDialog m_threadPool"); #ifdef QBT_USES_LIBTORRENT2 m_ui->checkOptimizeAlignment->hide(); diff --git a/src/gui/torrentcreatordialog.ui b/src/gui/torrentcreatordialog.ui index d25d58a51..6a3eb33be 100644 --- a/src/gui/torrentcreatordialog.ui +++ b/src/gui/torrentcreatordialog.ui @@ -20,7 +20,7 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame true @@ -66,7 +66,7 @@ - + false @@ -91,7 +91,7 @@ [Drag and drop area] - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -164,7 +164,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -213,7 +213,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -289,7 +289,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -313,11 +313,21 @@ Fields + + + + Tracker URLs: + + + You can separate tracker tiers / groups with an empty line. + + true + false @@ -332,25 +342,14 @@ + + true + false - - - - false - - - - - - - Tracker URLs: - - - @@ -358,6 +357,16 @@ + + + + true + + + false + + + @@ -396,7 +405,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok true @@ -413,19 +422,6 @@ 1 - - textInputPath - addFileButton - addFolderButton - comboPieceSize - checkPrivate - checkStartSeeding - checkIgnoreShareLimits - checkOptimizeAlignment - trackersList - URLSeedsList - txtComment - diff --git a/src/gui/torrentoptionsdialog.cpp b/src/gui/torrentoptionsdialog.cpp index b15483e13..85b72ea7c 100644 --- a/src/gui/torrentoptionsdialog.cpp +++ b/src/gui/torrentoptionsdialog.cpp @@ -58,7 +58,7 @@ namespace } } -TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector &torrents) +TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QList &torrents) : QDialog {parent} , m_ui {new Ui::TorrentOptionsDialog} , m_storeDialogSize {SETTINGS_KEY(u"Size"_s)} diff --git a/src/gui/torrentoptionsdialog.h b/src/gui/torrentoptionsdialog.h index b601cb422..25accf3db 100644 --- a/src/gui/torrentoptionsdialog.h +++ b/src/gui/torrentoptionsdialog.h @@ -58,7 +58,7 @@ class TorrentOptionsDialog final : public QDialog Q_DISABLE_COPY_MOVE(TorrentOptionsDialog) public: - explicit TorrentOptionsDialog(QWidget *parent, const QVector &torrents); + explicit TorrentOptionsDialog(QWidget *parent, const QList &torrents); ~TorrentOptionsDialog() override; public slots: @@ -73,7 +73,7 @@ private slots: void handleDownSpeedLimitChanged(); private: - QVector m_torrentIDs; + QList m_torrentIDs; Ui::TorrentOptionsDialog *m_ui = nullptr; SettingValue m_storeDialogSize; QStringList m_categories; diff --git a/src/gui/torrentoptionsdialog.ui b/src/gui/torrentoptionsdialog.ui index 551b19023..9fcb65d52 100644 --- a/src/gui/torrentoptionsdialog.ui +++ b/src/gui/torrentoptionsdialog.ui @@ -52,6 +52,13 @@ + + + + Category: + + + @@ -67,14 +74,7 @@ 2147483647 - QComboBox::InsertAtTop - - - - - - - Category: + QComboBox::InsertPolicy::InsertAtTop @@ -83,26 +83,20 @@ - Torrent speed limits + Torrent Speed Limits - - + + - Download: + Upload: - - - - - - - KiB/s - - - 2000000 + + + + Qt::Orientation::Horizontal @@ -117,6 +111,39 @@ 2000000 + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + + + + + + + Download: + + + + + + + Qt::Orientation::Horizontal + + + + + + + + + + KiB/s + + + 2000000 + + + QAbstractSpinBox::StepType::AdaptiveDecimalStepType + @@ -126,34 +153,13 @@ - - - - Upload: - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - Torrent share limits + Torrent Share Limits @@ -181,7 +187,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -217,7 +223,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -230,7 +236,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok @@ -252,7 +258,4 @@ - - - diff --git a/src/gui/torrentsharelimitswidget.ui b/src/gui/torrentsharelimitswidget.ui index 9a58a54e1..9ada9ed67 100644 --- a/src/gui/torrentsharelimitswidget.ui +++ b/src/gui/torrentsharelimitswidget.ui @@ -13,8 +13,60 @@ - - + + + + Ratio: + + + + + + + -1 + + + + Default + + + + + Unlimited + + + + + Set to + + + + + + + + false + + + 9998.000000000000000 + + + 0.050000000000000 + + + 1.000000000000000 + + + + + + + Seeding time: + + + + + -1 @@ -51,13 +103,6 @@ - - - - Ratio: - - - @@ -65,6 +110,28 @@ + + + + -1 + + + + Default + + + + + Unlimited + + + + + Set to + + + + @@ -81,73 +148,6 @@ - - - - false - - - 9998.000000000000000 - - - 0.050000000000000 - - - 1.000000000000000 - - - - - - - -1 - - - - Default - - - - - Unlimited - - - - - Set to - - - - - - - - -1 - - - - Default - - - - - Unlimited - - - - - Set to - - - - - - - - Seeding time: - - - @@ -194,7 +194,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal diff --git a/src/gui/torrenttagsdialog.cpp b/src/gui/torrenttagsdialog.cpp index 9e48443b0..a1c57d71e 100644 --- a/src/gui/torrenttagsdialog.cpp +++ b/src/gui/torrenttagsdialog.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -37,6 +37,7 @@ #include "base/global.h" #include "autoexpandabledialog.h" #include "flowlayout.h" +#include "utils.h" #include "ui_torrenttagsdialog.h" @@ -52,10 +53,10 @@ TorrentTagsDialog::TorrentTagsDialog(const TagSet &initialTags, QWidget *parent) connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); - auto *tagsLayout = new FlowLayout(m_ui->scrollArea); + auto *tagsLayout = new FlowLayout(m_ui->scrollArea->widget()); for (const Tag &tag : asConst(initialTags.united(BitTorrent::Session::instance()->tags()))) { - auto *tagWidget = new QCheckBox(tag.toString()); + auto *tagWidget = new QCheckBox(Utils::Gui::tagToWidgetText(tag)); if (initialTags.contains(tag)) tagWidget->setChecked(true); tagsLayout->addWidget(tagWidget); @@ -78,12 +79,12 @@ TorrentTagsDialog::~TorrentTagsDialog() TagSet TorrentTagsDialog::tags() const { TagSet tags; - auto *layout = m_ui->scrollArea->layout(); + auto *layout = m_ui->scrollArea->widget()->layout(); for (int i = 0; i < (layout->count() - 1); ++i) { const auto *tagWidget = static_cast(layout->itemAt(i)->widget()); if (tagWidget->isChecked()) - tags.insert(Tag(tagWidget->text())); + tags.insert(Utils::Gui::widgetTextToTag(tagWidget->text())); } return tags; @@ -96,7 +97,7 @@ void TorrentTagsDialog::addNewTag() while (!done) { bool ok = false; - tag = Tag(AutoExpandableDialog::getText(this, tr("New Tag") + tag = Tag(AutoExpandableDialog::getText(this, tr("Add tag") , tr("Tag:"), QLineEdit::Normal, tag.toString(), &ok)); if (!ok || tag.isEmpty()) break; @@ -111,9 +112,9 @@ void TorrentTagsDialog::addNewTag() } else { - auto *layout = m_ui->scrollArea->layout(); + auto *layout = m_ui->scrollArea->widget()->layout(); auto *btn = layout->takeAt(layout->count() - 1); - auto *tagWidget = new QCheckBox(tag.toString()); + auto *tagWidget = new QCheckBox(Utils::Gui::tagToWidgetText(tag)); tagWidget->setChecked(true); layout->addWidget(tagWidget); layout->addItem(btn); diff --git a/src/gui/torrenttagsdialog.ui b/src/gui/torrenttagsdialog.ui index c27b683ff..f432b06cd 100644 --- a/src/gui/torrenttagsdialog.ui +++ b/src/gui/torrenttagsdialog.ui @@ -17,7 +17,7 @@ - Qt::ScrollBarAlwaysOff + Qt::ScrollBarPolicy::ScrollBarAlwaysOff true @@ -37,7 +37,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/trackerentriesdialog.cpp b/src/gui/trackerentriesdialog.cpp index 8dd2b88d7..db963fd26 100644 --- a/src/gui/trackerentriesdialog.cpp +++ b/src/gui/trackerentriesdialog.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include "base/bittorrent/trackerentry.h" #include "ui_trackerentriesdialog.h" @@ -59,7 +59,7 @@ TrackerEntriesDialog::~TrackerEntriesDialog() delete m_ui; } -void TrackerEntriesDialog::setTrackers(const QVector &trackers) +void TrackerEntriesDialog::setTrackers(const QList &trackers) { int maxTier = -1; QHash tiers; // @@ -78,7 +78,7 @@ void TrackerEntriesDialog::setTrackers(const QVector & m_ui->plainTextEdit->setPlainText(text); } -QVector TrackerEntriesDialog::trackers() const +QList TrackerEntriesDialog::trackers() const { return BitTorrent::parseTrackerEntries(m_ui->plainTextEdit->toPlainText()); } diff --git a/src/gui/trackerentriesdialog.h b/src/gui/trackerentriesdialog.h index b4882fe7b..f1516c3f9 100644 --- a/src/gui/trackerentriesdialog.h +++ b/src/gui/trackerentriesdialog.h @@ -52,8 +52,8 @@ public: explicit TrackerEntriesDialog(QWidget *parent); ~TrackerEntriesDialog() override; - void setTrackers(const QVector &trackers); - QVector trackers() const; + void setTrackers(const QList &trackers); + QList trackers() const; private: void saveSettings(); diff --git a/src/gui/trackerentriesdialog.ui b/src/gui/trackerentriesdialog.ui index adee9c8ff..25651f816 100644 --- a/src/gui/trackerentriesdialog.ui +++ b/src/gui/trackerentriesdialog.ui @@ -36,7 +36,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/trackerlist/trackerlistmodel.cpp b/src/gui/trackerlist/trackerlistmodel.cpp index 92fb8acb3..78465488c 100644 --- a/src/gui/trackerlist/trackerlistmodel.cpp +++ b/src/gui/trackerlist/trackerlistmodel.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ #include "trackerlistmodel.h" +#include #include #include @@ -40,11 +41,13 @@ #include #include +#include #include #include #include #include +#include "base/bittorrent/announcetimepoint.h" #include "base/bittorrent/peerinfo.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrent.h" @@ -141,12 +144,12 @@ struct TrackerListModel::Item final int numLeeches = -1; int numDownloaded = -1; - QDateTime nextAnnounceTime {}; - QDateTime minAnnounceTime {}; + BitTorrent::AnnounceTimePoint nextAnnounceTime; + BitTorrent::AnnounceTimePoint minAnnounceTime; qint64 secsToNextAnnounce = 0; qint64 secsToMinAnnounce = 0; - QDateTime announceTimestamp; + BitTorrent::AnnounceTimePoint announceTimestamp; std::weak_ptr parentItem {}; @@ -211,7 +214,7 @@ void TrackerListModel::Item::fillFrom(const BitTorrent::TrackerEntryStatus &trac minAnnounceTime = trackerEntryStatus.minAnnounceTime; secsToNextAnnounce = 0; secsToMinAnnounce = 0; - announceTimestamp = QDateTime(); + announceTimestamp = {}; } void TrackerListModel::Item::fillFrom(const BitTorrent::TrackerEndpointStatus &endpointStatus) @@ -230,7 +233,7 @@ void TrackerListModel::Item::fillFrom(const BitTorrent::TrackerEndpointStatus &e minAnnounceTime = endpointStatus.minAnnounceTime; secsToNextAnnounce = 0; secsToMinAnnounce = 0; - announceTimestamp = QDateTime(); + announceTimestamp = {}; } TrackerListModel::TrackerListModel(BitTorrent::Session *btSession, QObject *parent) @@ -369,7 +372,7 @@ void TrackerListModel::populate() for (const BitTorrent::TrackerEntryStatus &status : trackers) addTrackerItem(status); - m_announceTimestamp = QDateTime::currentDateTime(); + m_announceTimestamp = BitTorrent::AnnounceTimePoint::clock::now(); m_announceRefreshTimer->start(ANNOUNCE_TIME_REFRESH_INTERVAL); } @@ -448,7 +451,7 @@ void TrackerListModel::refreshAnnounceTimes() if (!m_torrent) return; - m_announceTimestamp = QDateTime::currentDateTime(); + m_announceTimestamp = BitTorrent::AnnounceTimePoint::clock::now(); emit dataChanged(index(0, COL_NEXT_ANNOUNCE), index((rowCount() - 1), COL_MIN_ANNOUNCE)); for (int i = 0; i < rowCount(); ++i) { @@ -488,11 +491,11 @@ QVariant TrackerListModel::headerData(const int section, const Qt::Orientation o switch (section) { case COL_URL: - return tr("URL/Announce endpoint"); + return tr("URL/Announce Endpoint"); case COL_TIER: return tr("Tier"); case COL_PROTOCOL: - return tr("Protocol"); + return tr("BT Protocol"); case COL_STATUS: return tr("Status"); case COL_PEERS: @@ -506,9 +509,9 @@ QVariant TrackerListModel::headerData(const int section, const Qt::Orientation o case COL_MSG: return tr("Message"); case COL_NEXT_ANNOUNCE: - return tr("Next announce"); + return tr("Next Announce"); case COL_MIN_ANNOUNCE: - return tr("Min announce"); + return tr("Min Announce"); default: return {}; } @@ -545,8 +548,12 @@ QVariant TrackerListModel::data(const QModelIndex &index, const int role) const if (itemPtr->announceTimestamp != m_announceTimestamp) { - itemPtr->secsToNextAnnounce = std::max(0, m_announceTimestamp.secsTo(itemPtr->nextAnnounceTime)); - itemPtr->secsToMinAnnounce = std::max(0, m_announceTimestamp.secsTo(itemPtr->minAnnounceTime)); + const auto timeToNextAnnounce = std::chrono::duration_cast(itemPtr->nextAnnounceTime - m_announceTimestamp); + itemPtr->secsToNextAnnounce = std::max(0, timeToNextAnnounce.count()); + + const auto timeToMinAnnounce = std::chrono::duration_cast(itemPtr->minAnnounceTime - m_announceTimestamp); + itemPtr->secsToMinAnnounce = std::max(0, timeToMinAnnounce.count()); + itemPtr->announceTimestamp = m_announceTimestamp; } @@ -585,7 +592,7 @@ QVariant TrackerListModel::data(const QModelIndex &index, const int role) const case COL_TIER: return (isEndpoint || (index.row() < STICKY_ROW_COUNT)) ? QString() : QString::number(itemPtr->tier); case COL_PROTOCOL: - return isEndpoint ? tr("v%1").arg(itemPtr->btVersion) : QString(); + return isEndpoint ? (u'v' + QString::number(itemPtr->btVersion)) : QString(); case COL_STATUS: if (isEndpoint) return toString(itemPtr->status); diff --git a/src/gui/trackerlist/trackerlistmodel.h b/src/gui/trackerlist/trackerlistmodel.h index 9a633bf8e..523f894b5 100644 --- a/src/gui/trackerlist/trackerlistmodel.h +++ b/src/gui/trackerlist/trackerlistmodel.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -33,8 +33,8 @@ #include #include -#include +#include "base/bittorrent/announcetimepoint.h" #include "base/bittorrent/trackerentrystatus.h" class QTimer; @@ -115,6 +115,6 @@ private: class Items; std::unique_ptr m_items; - QDateTime m_announceTimestamp; + BitTorrent::AnnounceTimePoint m_announceTimestamp; QTimer *m_announceRefreshTimer = nullptr; }; diff --git a/src/gui/trackerlist/trackerlistwidget.cpp b/src/gui/trackerlist/trackerlistwidget.cpp index be34e261a..36ae595d8 100644 --- a/src/gui/trackerlist/trackerlistwidget.cpp +++ b/src/gui/trackerlist/trackerlistwidget.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -42,7 +43,6 @@ #include #include #include -#include #include #include "base/bittorrent/session.h" @@ -53,6 +53,7 @@ #include "gui/autoexpandabledialog.h" #include "gui/trackersadditiondialog.h" #include "gui/uithememanager.h" +#include "gui/utils/keysequence.h" #include "trackerlistitemdelegate.h" #include "trackerlistmodel.h" #include "trackerlistsortmodel.h" @@ -106,7 +107,7 @@ TrackerListWidget::TrackerListWidget(QWidget *parent) // Set hotkeys const auto *editHotkey = new QShortcut(Qt::Key_F2, this, nullptr, nullptr, Qt::WidgetShortcut); connect(editHotkey, &QShortcut::activated, this, &TrackerListWidget::editSelectedTracker); - const auto *deleteHotkey = new QShortcut(QKeySequence::Delete, this, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteHotkey = new QShortcut(Utils::KeySequence::deleteItem(), this, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteHotkey, &QShortcut::activated, this, &TrackerListWidget::deleteSelectedTrackers); const auto *copyHotkey = new QShortcut(QKeySequence::Copy, this, nullptr, nullptr, Qt::WidgetShortcut); connect(copyHotkey, &QShortcut::activated, this, &TrackerListWidget::copyTrackerUrl); diff --git a/src/gui/trackersadditiondialog.cpp b/src/gui/trackersadditiondialog.cpp index fbfbdea64..0014d5a55 100644 --- a/src/gui/trackersadditiondialog.cpp +++ b/src/gui/trackersadditiondialog.cpp @@ -29,10 +29,10 @@ #include "trackersadditiondialog.h" +#include #include #include #include -#include #include "base/bittorrent/torrent.h" #include "base/bittorrent/trackerentry.h" @@ -76,10 +76,10 @@ TrackersAdditionDialog::~TrackersAdditionDialog() void TrackersAdditionDialog::onAccepted() const { - const QVector currentTrackers = m_torrent->trackers(); + const QList currentTrackers = m_torrent->trackers(); const int baseTier = !currentTrackers.isEmpty() ? (currentTrackers.last().tier + 1) : 0; - QVector entries = BitTorrent::parseTrackerEntries(m_ui->textEditTrackersList->toPlainText()); + QList entries = BitTorrent::parseTrackerEntries(m_ui->textEditTrackersList->toPlainText()); for (BitTorrent::TrackerEntry &entry : entries) entry.tier = Utils::Number::clampingAdd(entry.tier, baseTier); diff --git a/src/gui/trackersadditiondialog.ui b/src/gui/trackersadditiondialog.ui index 4f97142b4..75c574459 100644 --- a/src/gui/trackersadditiondialog.ui +++ b/src/gui/trackersadditiondialog.ui @@ -23,8 +23,11 @@ + + true + - QTextEdit::NoWrap + QTextEdit::LineWrapMode::NoWrap false @@ -55,10 +58,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/transferlistfilters/basefilterwidget.h b/src/gui/transferlistfilters/basefilterwidget.h index 9f0afecdb..912986098 100644 --- a/src/gui/transferlistfilters/basefilterwidget.h +++ b/src/gui/transferlistfilters/basefilterwidget.h @@ -55,7 +55,7 @@ public slots: private slots: virtual void showMenu() = 0; virtual void applyFilter(int row) = 0; - virtual void handleTorrentsLoaded(const QVector &torrents) = 0; + virtual void handleTorrentsLoaded(const QList &torrents) = 0; virtual void torrentAboutToBeDeleted(BitTorrent::Torrent *) = 0; private: diff --git a/src/gui/transferlistfilters/categoryfiltermodel.cpp b/src/gui/transferlistfilters/categoryfiltermodel.cpp index f9bf6ad11..45516321f 100644 --- a/src/gui/transferlistfilters/categoryfiltermodel.cpp +++ b/src/gui/transferlistfilters/categoryfiltermodel.cpp @@ -174,9 +174,9 @@ namespace { QString shortName(const QString &fullName) { - int pos = fullName.lastIndexOf(u'/'); + const int pos = fullName.lastIndexOf(u'/'); if (pos >= 0) - return fullName.mid(pos + 1); + return fullName.sliced(pos + 1); return fullName; } } @@ -350,7 +350,7 @@ void CategoryFilterModel::categoryRemoved(const QString &categoryName) } } -void CategoryFilterModel::torrentsLoaded(const QVector &torrents) +void CategoryFilterModel::torrentsLoaded(const QList &torrents) { for (const BitTorrent::Torrent *torrent : torrents) { diff --git a/src/gui/transferlistfilters/categoryfiltermodel.h b/src/gui/transferlistfilters/categoryfiltermodel.h index 8aa3425cf..fce28243d 100644 --- a/src/gui/transferlistfilters/categoryfiltermodel.h +++ b/src/gui/transferlistfilters/categoryfiltermodel.h @@ -62,7 +62,7 @@ public: private slots: void categoryAdded(const QString &categoryName); void categoryRemoved(const QString &categoryName); - void torrentsLoaded(const QVector &torrents); + void torrentsLoaded(const QList &torrents); void torrentAboutToBeRemoved(BitTorrent::Torrent *torrent); void torrentCategoryChanged(BitTorrent::Torrent *torrent, const QString &oldCategory); void subcategoriesSupportChanged(); diff --git a/src/gui/transferlistfilters/statusfilterwidget.cpp b/src/gui/transferlistfilters/statusfilterwidget.cpp index 802b5535b..92f9d8c3e 100644 --- a/src/gui/transferlistfilters/statusfilterwidget.cpp +++ b/src/gui/transferlistfilters/statusfilterwidget.cpp @@ -86,7 +86,7 @@ StatusFilterWidget::StatusFilterWidget(QWidget *parent, TransferListWidget *tran errored->setData(Qt::DisplayRole, tr("Errored (0)")); errored->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"error"_s)); - const QVector torrents = BitTorrent::Session::instance()->torrents(); + const QList torrents = BitTorrent::Session::instance()->torrents(); update(torrents); connect(BitTorrent::Session::instance(), &BitTorrent::Session::torrentsUpdated , this, &StatusFilterWidget::update); @@ -199,7 +199,7 @@ void StatusFilterWidget::hideZeroItems() setCurrentRow(TorrentFilter::All, QItemSelectionModel::SelectCurrent); } -void StatusFilterWidget::update(const QVector &torrents) +void StatusFilterWidget::update(const QList &torrents) { for (const BitTorrent::Torrent *torrent : torrents) updateTorrentStatus(torrent); @@ -233,12 +233,9 @@ void StatusFilterWidget::applyFilter(int row) transferList()->applyStatusFilter(row); } -void StatusFilterWidget::handleTorrentsLoaded(const QVector &torrents) +void StatusFilterWidget::handleTorrentsLoaded(const QList &torrents) { - for (const BitTorrent::Torrent *torrent : torrents) - updateTorrentStatus(torrent); - - updateTexts(); + update(torrents); } void StatusFilterWidget::torrentAboutToBeDeleted(BitTorrent::Torrent *const torrent) @@ -273,6 +270,12 @@ void StatusFilterWidget::torrentAboutToBeDeleted(BitTorrent::Torrent *const torr m_nbStalled = m_nbStalledUploading + m_nbStalledDownloading; updateTexts(); + + if (Preferences::instance()->getHideZeroStatusFilters()) + { + hideZeroItems(); + updateGeometry(); + } } void StatusFilterWidget::configure() diff --git a/src/gui/transferlistfilters/statusfilterwidget.h b/src/gui/transferlistfilters/statusfilterwidget.h index 2c9a4bfda..3e78e3337 100644 --- a/src/gui/transferlistfilters/statusfilterwidget.h +++ b/src/gui/transferlistfilters/statusfilterwidget.h @@ -53,12 +53,12 @@ private: // No need to redeclare them here as slots. void showMenu() override; void applyFilter(int row) override; - void handleTorrentsLoaded(const QVector &torrents) override; + void handleTorrentsLoaded(const QList &torrents) override; void torrentAboutToBeDeleted(BitTorrent::Torrent *) override; void configure(); - void update(const QVector &torrents); + void update(const QList &torrents); void updateTorrentStatus(const BitTorrent::Torrent *torrent); void updateTexts(); void hideZeroItems(); diff --git a/src/gui/transferlistfilters/tagfiltermodel.cpp b/src/gui/transferlistfilters/tagfiltermodel.cpp index f9099da46..da76e7be6 100644 --- a/src/gui/transferlistfilters/tagfiltermodel.cpp +++ b/src/gui/transferlistfilters/tagfiltermodel.cpp @@ -30,7 +30,7 @@ #include "tagfiltermodel.h" #include -#include +#include #include "base/bittorrent/session.h" #include "base/global.h" @@ -236,13 +236,13 @@ void TagFilterModel::torrentTagRemoved(BitTorrent::Torrent *const torrent, const emit dataChanged(i, i); } -void TagFilterModel::torrentsLoaded(const QVector &torrents) +void TagFilterModel::torrentsLoaded(const QList &torrents) { for (const BitTorrent::Torrent *torrent : torrents) { allTagsItem()->increaseTorrentsCount(); - const QVector items = findItems(torrent->tags()); + const QList items = findItems(torrent->tags()); if (items.isEmpty()) untaggedItem()->increaseTorrentsCount(); @@ -339,9 +339,9 @@ TagModelItem *TagFilterModel::findItem(const Tag &tag) return &m_tagItems[row]; } -QVector TagFilterModel::findItems(const TagSet &tags) +QList TagFilterModel::findItems(const TagSet &tags) { - QVector items; + QList items; items.reserve(tags.count()); for (const Tag &tag : tags) { diff --git a/src/gui/transferlistfilters/tagfiltermodel.h b/src/gui/transferlistfilters/tagfiltermodel.h index 9718307a2..c58920287 100644 --- a/src/gui/transferlistfilters/tagfiltermodel.h +++ b/src/gui/transferlistfilters/tagfiltermodel.h @@ -64,7 +64,7 @@ private slots: void tagRemoved(const Tag &tag); void torrentTagAdded(BitTorrent::Torrent *torrent, const Tag &tag); void torrentTagRemoved(BitTorrent::Torrent *, const Tag &tag); - void torrentsLoaded(const QVector &torrents); + void torrentsLoaded(const QList &torrents); void torrentAboutToBeRemoved(BitTorrent::Torrent *torrent); private: @@ -74,7 +74,7 @@ private: bool isValidRow(int row) const; int findRow(const Tag &tag) const; TagModelItem *findItem(const Tag &tag); - QVector findItems(const TagSet &tags); + QList findItems(const TagSet &tags); TagModelItem *allTagsItem(); TagModelItem *untaggedItem(); diff --git a/src/gui/transferlistfilters/tagfilterwidget.cpp b/src/gui/transferlistfilters/tagfilterwidget.cpp index 934995b15..fab4f8445 100644 --- a/src/gui/transferlistfilters/tagfilterwidget.cpp +++ b/src/gui/transferlistfilters/tagfilterwidget.cpp @@ -164,7 +164,7 @@ Tag TagFilterWidget::askTagName() while (invalid) { invalid = false; - tag = Tag(AutoExpandableDialog::getText(this, tr("New Tag"), tr("Tag:") + tag = Tag(AutoExpandableDialog::getText(this, tr("Add tag"), tr("Tag:") , QLineEdit::Normal, tag.toString(), &ok)); if (ok && !tag.isEmpty()) { diff --git a/src/gui/transferlistfilters/trackersfilterwidget.cpp b/src/gui/transferlistfilters/trackersfilterwidget.cpp index a166c7da7..60f8a08b8 100644 --- a/src/gui/transferlistfilters/trackersfilterwidget.cpp +++ b/src/gui/transferlistfilters/trackersfilterwidget.cpp @@ -155,7 +155,7 @@ TrackersFilterWidget::~TrackersFilterWidget() Utils::Fs::removeFile(iconPath); } -void TrackersFilterWidget::addTrackers(const BitTorrent::Torrent *torrent, const QVector &trackers) +void TrackersFilterWidget::addTrackers(const BitTorrent::Torrent *torrent, const QList &trackers) { const BitTorrent::TorrentID torrentID = torrent->id(); @@ -204,7 +204,7 @@ void TrackersFilterWidget::refreshTrackers(const BitTorrent::Torrent *torrent) return false; }); - const QVector trackers = torrent->trackers(); + const QList trackers = torrent->trackers(); if (trackers.isEmpty()) { addItems(NULL_HOST, {torrentID}); @@ -228,7 +228,7 @@ void TrackersFilterWidget::refreshTrackers(const BitTorrent::Torrent *torrent) updateGeometry(); } -void TrackersFilterWidget::addItems(const QString &trackerURL, const QVector &torrents) +void TrackersFilterWidget::addItems(const QString &trackerURL, const QList &torrents) { const QString host = getHost(trackerURL); auto trackersIt = m_trackers.find(host); @@ -392,50 +392,81 @@ void TrackersFilterWidget::handleTrackerStatusesUpdated(const BitTorrent::Torren for (const BitTorrent::TrackerEntryStatus &trackerEntryStatus : updatedTrackers) { - if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::Working) + switch (trackerEntryStatus.state) { - if (errorHashesIt != m_errors.end()) + case BitTorrent::TrackerEndpointState::Working: { - errorHashesIt->remove(trackerEntryStatus.url); - } + // remove tracker from "error" and "tracker error" categories + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); - if (trackerErrorHashesIt != m_trackerErrors.end()) - { - trackerErrorHashesIt->remove(trackerEntryStatus.url); - } - - const bool hasNoWarningMessages = std::all_of(trackerEntryStatus.endpoints.cbegin(), trackerEntryStatus.endpoints.cend() - , [](const BitTorrent::TrackerEndpointStatus &endpointEntry) - { - return endpointEntry.message.isEmpty() || (endpointEntry.state != BitTorrent::TrackerEndpointState::Working); - }); - if (hasNoWarningMessages) - { - if (warningHashesIt != m_warnings.end()) + const bool hasNoWarningMessages = std::all_of(trackerEntryStatus.endpoints.cbegin(), trackerEntryStatus.endpoints.cend() + , [](const BitTorrent::TrackerEndpointStatus &endpointEntry) { - warningHashesIt->remove(trackerEntryStatus.url); + return endpointEntry.message.isEmpty() || (endpointEntry.state != BitTorrent::TrackerEndpointState::Working); + }); + if (hasNoWarningMessages) + { + if (warningHashesIt != m_warnings.end()) + { + warningHashesIt->remove(trackerEntryStatus.url); + } + } + else + { + if (warningHashesIt == m_warnings.end()) + warningHashesIt = m_warnings.insert(id, {}); + warningHashesIt->insert(trackerEntryStatus.url); } } - else + break; + + case BitTorrent::TrackerEndpointState::NotWorking: + case BitTorrent::TrackerEndpointState::Unreachable: { - if (warningHashesIt == m_warnings.end()) - warningHashesIt = m_warnings.insert(id, {}); - warningHashesIt->insert(trackerEntryStatus.url); + // remove tracker from "tracker error" and "warning" categories + if (warningHashesIt != m_warnings.end()) + warningHashesIt->remove(trackerEntryStatus.url); + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); + + if (errorHashesIt == m_errors.end()) + errorHashesIt = m_errors.insert(id, {}); + errorHashesIt->insert(trackerEntryStatus.url); } - } - else if ((trackerEntryStatus.state == BitTorrent::TrackerEndpointState::NotWorking) - || (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::Unreachable)) - { - if (errorHashesIt == m_errors.end()) - errorHashesIt = m_errors.insert(id, {}); - errorHashesIt->insert(trackerEntryStatus.url); - } - else if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::TrackerError) - { - if (trackerErrorHashesIt == m_trackerErrors.end()) - trackerErrorHashesIt = m_trackerErrors.insert(id, {}); - trackerErrorHashesIt->insert(trackerEntryStatus.url); - } + break; + + case BitTorrent::TrackerEndpointState::TrackerError: + { + // remove tracker from "error" and "warning" categories + if (warningHashesIt != m_warnings.end()) + warningHashesIt->remove(trackerEntryStatus.url); + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + + if (trackerErrorHashesIt == m_trackerErrors.end()) + trackerErrorHashesIt = m_trackerErrors.insert(id, {}); + trackerErrorHashesIt->insert(trackerEntryStatus.url); + } + break; + + case BitTorrent::TrackerEndpointState::NotContacted: + { + // remove tracker from "error", "tracker error" and "warning" categories + if (warningHashesIt != m_warnings.end()) + warningHashesIt->remove(trackerEntryStatus.url); + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); + } + break; + + case BitTorrent::TrackerEndpointState::Updating: + break; + }; } if ((errorHashesIt != m_errors.end()) && errorHashesIt->isEmpty()) @@ -524,7 +555,7 @@ void TrackersFilterWidget::handleFavicoDownloadFinished(const Net::DownloadResul { if (result.url.endsWith(u".ico", Qt::CaseInsensitive)) { - const QString faviconURL = result.url.left(result.url.size() - 4) + u".png"; + const QString faviconURL = QStringView(result.url).chopped(4) + u".png"; for (const auto &trackerHost : trackerHosts) { if (m_trackers.contains(trackerHost)) @@ -587,13 +618,13 @@ void TrackersFilterWidget::applyFilter(const int row) transferList()->applyTrackerFilter(getTorrentIDs(row)); } -void TrackersFilterWidget::handleTorrentsLoaded(const QVector &torrents) +void TrackersFilterWidget::handleTorrentsLoaded(const QList &torrents) { - QHash> torrentsPerTracker; + QHash> torrentsPerTracker; for (const BitTorrent::Torrent *torrent : torrents) { const BitTorrent::TorrentID torrentID = torrent->id(); - const QVector trackers = torrent->trackers(); + const QList trackers = torrent->trackers(); for (const BitTorrent::TrackerEntryStatus &tracker : trackers) torrentsPerTracker[tracker.url].append(torrentID); @@ -614,7 +645,7 @@ void TrackersFilterWidget::handleTorrentsLoaded(const QVectorid(); - const QVector trackers = torrent->trackers(); + const QList trackers = torrent->trackers(); for (const BitTorrent::TrackerEntryStatus &tracker : trackers) removeItem(tracker.url, torrentID); diff --git a/src/gui/transferlistfilters/trackersfilterwidget.h b/src/gui/transferlistfilters/trackersfilterwidget.h index a61aada59..0b7e82731 100644 --- a/src/gui/transferlistfilters/trackersfilterwidget.h +++ b/src/gui/transferlistfilters/trackersfilterwidget.h @@ -57,7 +57,7 @@ public: TrackersFilterWidget(QWidget *parent, TransferListWidget *transferList, bool downloadFavicon); ~TrackersFilterWidget() override; - void addTrackers(const BitTorrent::Torrent *torrent, const QVector &trackers); + void addTrackers(const BitTorrent::Torrent *torrent, const QList &trackers); void removeTrackers(const BitTorrent::Torrent *torrent, const QStringList &trackers); void refreshTrackers(const BitTorrent::Torrent *torrent); void handleTrackerStatusesUpdated(const BitTorrent::Torrent *torrent @@ -72,12 +72,12 @@ private: // No need to redeclare them here as slots. void showMenu() override; void applyFilter(int row) override; - void handleTorrentsLoaded(const QVector &torrents) override; + void handleTorrentsLoaded(const QList &torrents) override; void torrentAboutToBeDeleted(BitTorrent::Torrent *torrent) override; void onRemoveTrackerTriggered(); - void addItems(const QString &trackerURL, const QVector &torrents); + void addItems(const QString &trackerURL, const QList &torrents); void removeItem(const QString &trackerURL, const BitTorrent::TorrentID &id); QString trackerFromRow(int row) const; int rowFromTracker(const QString &tracker) const; diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index feb93d1a6..e9d301212 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -39,7 +39,6 @@ #include #include -#include "base/algorithm.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrent.h" #include "base/bittorrent/trackerentrystatus.h" @@ -177,7 +176,7 @@ void TransferListFiltersWidget::setDownloadTrackerFavicon(bool value) m_trackersFilterWidget->setDownloadTrackerFavicon(value); } -void TransferListFiltersWidget::addTrackers(const BitTorrent::Torrent *torrent, const QVector &trackers) +void TransferListFiltersWidget::addTrackers(const BitTorrent::Torrent *torrent, const QList &trackers) { m_trackersFilterWidget->addTrackers(torrent, trackers); } diff --git a/src/gui/transferlistfilterswidget.h b/src/gui/transferlistfilterswidget.h index dc652e48e..b6afbb9ee 100644 --- a/src/gui/transferlistfilterswidget.h +++ b/src/gui/transferlistfilterswidget.h @@ -56,7 +56,7 @@ public: void setDownloadTrackerFavicon(bool value); public slots: - void addTrackers(const BitTorrent::Torrent *torrent, const QVector &trackers); + void addTrackers(const BitTorrent::Torrent *torrent, const QList &trackers); void removeTrackers(const BitTorrent::Torrent *torrent, const QStringList &trackers); void refreshTrackers(const BitTorrent::Torrent *torrent); void trackerEntryStatusesUpdated(const BitTorrent::Torrent *torrent diff --git a/src/gui/transferlistmodel.cpp b/src/gui/transferlistmodel.cpp index cb35a51c0..7c827c1a6 100644 --- a/src/gui/transferlistmodel.cpp +++ b/src/gui/transferlistmodel.cpp @@ -193,6 +193,7 @@ QVariant TransferListModel::headerData(const int section, const Qt::Orientation case TR_INFOHASH_V1: return tr("Info Hash v1", "i.e: torrent info hash v1"); case TR_INFOHASH_V2: return tr("Info Hash v2", "i.e: torrent info hash v2"); case TR_REANNOUNCE: return tr("Reannounce In", "Indicates the time until next trackers reannounce"); + case TR_PRIVATE: return tr("Private", "Flags private torrents"); default: return {}; } } @@ -357,6 +358,15 @@ QString TransferListModel::displayValue(const BitTorrent::Torrent *torrent, cons return Utils::Misc::userFriendlyDuration(time); }; + const auto privateString = [hideValues](const bool isPrivate, const bool hasMetadata) -> QString + { + if (hideValues && !isPrivate) + return {}; + if (hasMetadata) + return isPrivate ? tr("Yes") : tr("No"); + return tr("N/A"); + }; + switch (column) { case TR_NAME: @@ -431,6 +441,8 @@ QString TransferListModel::displayValue(const BitTorrent::Torrent *torrent, cons return hashString(torrent->infoHash().v2()); case TR_REANNOUNCE: return reannounceString(torrent->nextAnnounce()); + case TR_PRIVATE: + return privateString(torrent->isPrivate(), torrent->hasMetadata()); } return {}; @@ -512,6 +524,8 @@ QVariant TransferListModel::internalValue(const BitTorrent::Torrent *torrent, co return QVariant::fromValue(torrent->infoHash().v2()); case TR_REANNOUNCE: return torrent->nextAnnounce(); + case TR_PRIVATE: + return (torrent->hasMetadata() ? torrent->isPrivate() : QVariant()); } return {}; @@ -611,7 +625,7 @@ bool TransferListModel::setData(const QModelIndex &index, const QVariant &value, return true; } -void TransferListModel::addTorrents(const QVector &torrents) +void TransferListModel::addTorrents(const QList &torrents) { qsizetype row = m_torrentList.size(); const qsizetype total = row + torrents.size(); @@ -669,7 +683,7 @@ void TransferListModel::handleTorrentStatusUpdated(BitTorrent::Torrent *const to emit dataChanged(index(row, 0), index(row, columnCount() - 1)); } -void TransferListModel::handleTorrentsUpdated(const QVector &torrents) +void TransferListModel::handleTorrentsUpdated(const QList &torrents) { const int columns = (columnCount() - 1); @@ -761,7 +775,9 @@ QIcon TransferListModel::getIconByState(const BitTorrent::TorrentState state) co case BitTorrent::TorrentState::Error: return m_errorIcon; default: - Q_ASSERT(false); - return m_errorIcon; + Q_UNREACHABLE(); + break; } + + return {}; } diff --git a/src/gui/transferlistmodel.h b/src/gui/transferlistmodel.h index 061db4683..306beee0b 100644 --- a/src/gui/transferlistmodel.h +++ b/src/gui/transferlistmodel.h @@ -86,6 +86,7 @@ public: TR_INFOHASH_V1, TR_INFOHASH_V2, TR_REANNOUNCE, + TR_PRIVATE, NB_COLUMNS }; @@ -108,10 +109,10 @@ public: BitTorrent::Torrent *torrentHandle(const QModelIndex &index) const; private slots: - void addTorrents(const QVector &torrents); + void addTorrents(const QList &torrents); void handleTorrentAboutToBeRemoved(BitTorrent::Torrent *torrent); void handleTorrentStatusUpdated(BitTorrent::Torrent *torrent); - void handleTorrentsUpdated(const QVector &torrents); + void handleTorrentsUpdated(const QList &torrents); private: void configure(); diff --git a/src/gui/transferlistsortmodel.cpp b/src/gui/transferlistsortmodel.cpp index 2f9ce6ff0..782aead74 100644 --- a/src/gui/transferlistsortmodel.cpp +++ b/src/gui/transferlistsortmodel.cpp @@ -59,8 +59,8 @@ namespace int customCompare(const TagSet &left, const TagSet &right, const Utils::Compare::NaturalCompare &compare) { for (auto leftIter = left.cbegin(), rightIter = right.cbegin(); - (leftIter != left.cend()) && (rightIter != right.cend()); - ++leftIter, ++rightIter) + (leftIter != left.cend()) && (rightIter != right.cend()); + ++leftIter, ++rightIter) { const int result = compare(leftIter->toString(), rightIter->toString()); if (result != 0) @@ -84,6 +84,17 @@ namespace return isLeftValid ? -1 : 1; } + int compareAsBool(const QVariant &left, const QVariant &right) + { + const bool leftValid = left.isValid(); + const bool rightValid = right.isValid(); + if (leftValid && rightValid) + return threeWayCompare(left.toBool(), right.toBool()); + if (!leftValid && !rightValid) + return 0; + return leftValid ? -1 : 1; + } + int adjustSubSortColumn(const int column) { return ((column >= 0) && (column < TransferListModel::NB_COLUMNS)) @@ -214,6 +225,9 @@ int TransferListSortModel::compare(const QModelIndex &left, const QModelIndex &r case TransferListModel::TR_UPSPEED: return customCompare(leftValue.toInt(), rightValue.toInt()); + case TransferListModel::TR_PRIVATE: + return compareAsBool(leftValue, rightValue); + case TransferListModel::TR_PEERS: case TransferListModel::TR_SEEDS: { diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index a1b79b29e..95814c0e6 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2023 Vladimir Golovnev + * Copyright (C) 2023-2024 Vladimir Golovnev * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -35,12 +35,13 @@ #include #include #include +#include #include #include +#include #include #include #include -#include #include #include "base/bittorrent/session.h" @@ -57,11 +58,13 @@ #include "base/utils/string.h" #include "autoexpandabledialog.h" #include "deletionconfirmationdialog.h" +#include "interfaces/iguiapplication.h" #include "mainwindow.h" #include "optionsdialog.h" #include "previewselectdialog.h" #include "speedlimitdialog.h" #include "torrentcategorydialog.h" +#include "torrentcreatordialog.h" #include "torrentoptionsdialog.h" #include "trackerentriesdialog.h" #include "transferlistdelegate.h" @@ -69,16 +72,18 @@ #include "tristateaction.h" #include "uithememanager.h" #include "utils.h" +#include "utils/keysequence.h" #ifdef Q_OS_MACOS +#include "macosshiftclickhandler.h" #include "macutilities.h" #endif namespace { - QVector extractIDs(const QVector &torrents) + QList extractIDs(const QList &torrents) { - QVector torrentIDs; + QList torrentIDs; torrentIDs.reserve(torrents.size()); for (const BitTorrent::Torrent *torrent : torrents) torrentIDs << torrent->id(); @@ -113,20 +118,20 @@ namespace #endif } - void removeTorrents(const QVector &torrents, const bool isDeleteFileSelected) + void removeTorrents(const QList &torrents, const bool isDeleteFileSelected) { auto *session = BitTorrent::Session::instance(); - const DeleteOption deleteOption = isDeleteFileSelected ? DeleteTorrentAndFiles : DeleteTorrent; + const BitTorrent::TorrentRemoveOption removeOption = isDeleteFileSelected + ? BitTorrent::TorrentRemoveOption::RemoveContent : BitTorrent::TorrentRemoveOption::KeepContent; for (const BitTorrent::Torrent *torrent : torrents) - session->deleteTorrent(torrent->id(), deleteOption); + session->removeTorrent(torrent->id(), removeOption); } } -TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *mainWindow) - : QTreeView {parent} +TransferListWidget::TransferListWidget(IGUIApplication *app, QWidget *parent) + : GUIApplicationComponent(app, parent) , m_listModel {new TransferListModel {this}} , m_sortFilterModel {new TransferListSortModel {this}} - , m_mainWindow {mainWindow} { // Load settings const bool columnLoaded = loadSettings(); @@ -150,9 +155,12 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *mainWindow) setSelectionMode(QAbstractItemView::ExtendedSelection); setItemsExpandable(false); setAutoScroll(true); - setDragDropMode(QAbstractItemView::DragOnly); + setAcceptDrops(true); + setDragDropMode(QAbstractItemView::DropOnly); + setDropIndicatorShown(true); #if defined(Q_OS_MACOS) setAttribute(Qt::WA_MacShowFocusRect, false); + new MacOSShiftClickHandler(this); #endif header()->setFirstSectionMovable(true); header()->setStretchLastSection(false); @@ -183,6 +191,7 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *mainWindow) setColumnHidden(TransferListModel::TR_LAST_ACTIVITY, true); setColumnHidden(TransferListModel::TR_TOTAL_SIZE, true); setColumnHidden(TransferListModel::TR_REANNOUNCE, true); + setColumnHidden(TransferListModel::TR_PRIVATE, true); } //Ensure that at least one column is visible at all times @@ -220,7 +229,7 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *mainWindow) const auto *editHotkey = new QShortcut(Qt::Key_F2, this, nullptr, nullptr, Qt::WidgetShortcut); connect(editHotkey, &QShortcut::activated, this, &TransferListWidget::renameSelectedTorrent); - const auto *deleteHotkey = new QShortcut(QKeySequence::Delete, this, nullptr, nullptr, Qt::WidgetShortcut); + const auto *deleteHotkey = new QShortcut(Utils::KeySequence::deleteItem(), this, nullptr, nullptr, Qt::WidgetShortcut); connect(deleteHotkey, &QShortcut::activated, this, &TransferListWidget::softDeleteSelectedTorrents); const auto *permDeleteHotkey = new QShortcut((Qt::SHIFT | Qt::Key_Delete), this, nullptr, nullptr, Qt::WidgetShortcut); connect(permDeleteHotkey, &QShortcut::activated, this, &TransferListWidget::permDeleteSelectedTorrents); @@ -322,22 +331,22 @@ void TransferListWidget::torrentDoubleClicked() } } -QVector TransferListWidget::getSelectedTorrents() const +QList TransferListWidget::getSelectedTorrents() const { const QModelIndexList selectedRows = selectionModel()->selectedRows(); - QVector torrents; + QList torrents; torrents.reserve(selectedRows.size()); for (const QModelIndex &index : selectedRows) torrents << m_listModel->torrentHandle(mapToSource(index)); return torrents; } -QVector TransferListWidget::getVisibleTorrents() const +QList TransferListWidget::getVisibleTorrents() const { const int visibleTorrentsCount = m_sortFilterModel->rowCount(); - QVector torrents; + QList torrents; torrents.reserve(visibleTorrentsCount); for (int i = 0; i < visibleTorrentsCount; ++i) torrents << m_listModel->torrentHandle(mapToSource(m_sortFilterModel->index(i, 0))); @@ -346,7 +355,7 @@ QVector TransferListWidget::getVisibleTorrents() const void TransferListWidget::setSelectedTorrentsLocation() { - const QVector torrents = getSelectedTorrents(); + const QList torrents = getSelectedTorrents(); if (torrents.isEmpty()) return; @@ -358,7 +367,7 @@ void TransferListWidget::setSelectedTorrentsLocation() fileDialog->setOptions(QFileDialog::DontConfirmOverwrite | QFileDialog::ShowDirsOnly | QFileDialog::HideNameFilterDetails); connect(fileDialog, &QDialog::accepted, this, [this, fileDialog]() { - const QVector torrents = getSelectedTorrents(); + const QList torrents = getSelectedTorrents(); if (torrents.isEmpty()) return; @@ -429,9 +438,9 @@ void TransferListWidget::permDeleteSelectedTorrents() void TransferListWidget::deleteSelectedTorrents(const bool deleteLocalFiles) { - if (m_mainWindow->currentTabWidget() != this) return; + if (app()->mainWindow()->currentTabWidget() != this) return; - const QVector torrents = getSelectedTorrents(); + const QList torrents = getSelectedTorrents(); if (torrents.empty()) return; if (Preferences::instance()->confirmTorrentDeletion()) @@ -442,7 +451,7 @@ void TransferListWidget::deleteSelectedTorrents(const bool deleteLocalFiles) { // Some torrents might be removed when waiting for user input, so refetch the torrent list // NOTE: this will only work when dialog is modal - removeTorrents(getSelectedTorrents(), dialog->isDeleteFileSelected()); + removeTorrents(getSelectedTorrents(), dialog->isRemoveContentSelected()); }); dialog->open(); } @@ -454,7 +463,7 @@ void TransferListWidget::deleteSelectedTorrents(const bool deleteLocalFiles) void TransferListWidget::deleteVisibleTorrents() { - const QVector torrents = getVisibleTorrents(); + const QList torrents = getVisibleTorrents(); if (torrents.empty()) return; if (Preferences::instance()->confirmTorrentDeletion()) @@ -465,7 +474,7 @@ void TransferListWidget::deleteVisibleTorrents() { // Some torrents might be removed when waiting for user input, so refetch the torrent list // NOTE: this will only work when dialog is modal - removeTorrents(getVisibleTorrents(), dialog->isDeleteFileSelected()); + removeTorrents(getVisibleTorrents(), dialog->isRemoveContentSelected()); }); dialog->open(); } @@ -478,26 +487,26 @@ void TransferListWidget::deleteVisibleTorrents() void TransferListWidget::increaseQueuePosSelectedTorrents() { qDebug() << Q_FUNC_INFO; - if (m_mainWindow->currentTabWidget() == this) + if (app()->mainWindow()->currentTabWidget() == this) BitTorrent::Session::instance()->increaseTorrentsQueuePos(extractIDs(getSelectedTorrents())); } void TransferListWidget::decreaseQueuePosSelectedTorrents() { qDebug() << Q_FUNC_INFO; - if (m_mainWindow->currentTabWidget() == this) + if (app()->mainWindow()->currentTabWidget() == this) BitTorrent::Session::instance()->decreaseTorrentsQueuePos(extractIDs(getSelectedTorrents())); } void TransferListWidget::topQueuePosSelectedTorrents() { - if (m_mainWindow->currentTabWidget() == this) + if (app()->mainWindow()->currentTabWidget() == this) BitTorrent::Session::instance()->topTorrentsQueuePos(extractIDs(getSelectedTorrents())); } void TransferListWidget::bottomQueuePosSelectedTorrents() { - if (m_mainWindow->currentTabWidget() == this) + if (app()->mainWindow()->currentTabWidget() == this) BitTorrent::Session::instance()->bottomTorrentsQueuePos(extractIDs(getSelectedTorrents())); } @@ -623,7 +632,7 @@ void TransferListWidget::previewSelectedTorrents() void TransferListWidget::setTorrentOptions() { - const QVector selectedTorrents = getSelectedTorrents(); + const QList selectedTorrents = getSelectedTorrents(); if (selectedTorrents.empty()) return; auto *dialog = new TorrentOptionsDialog {this, selectedTorrents}; @@ -753,15 +762,15 @@ void TransferListWidget::askNewCategoryForSelection() void TransferListWidget::askAddTagsForSelection() { - const TagSet tags = askTagsForSelection(tr("Add Tags")); + const TagSet tags = askTagsForSelection(tr("Add tags")); for (const Tag &tag : tags) addSelectionTag(tag); } void TransferListWidget::editTorrentTrackers() { - const QVector torrents = getSelectedTorrents(); - QVector commonTrackers; + const QList torrents = getSelectedTorrents(); + QList commonTrackers; if (!torrents.empty()) { @@ -804,7 +813,7 @@ void TransferListWidget::exportTorrent() fileDialog->setOptions(QFileDialog::ShowDirsOnly); connect(fileDialog, &QFileDialog::fileSelected, this, [this](const QString &dir) { - const QVector torrents = getSelectedTorrents(); + const QList torrents = getSelectedTorrents(); if (torrents.isEmpty()) return; @@ -1190,7 +1199,7 @@ void TransferListWidget::displayListMenu() const TagSet tags = BitTorrent::Session::instance()->tags(); for (const Tag &tag : asConst(tags)) { - auto *action = new TriStateAction(tag.toString(), tagsMenu); + auto *action = new TriStateAction(Utils::Gui::tagToWidgetText(tag), tagsMenu); action->setCloseOnInteraction(false); const Qt::CheckState initialState = tagsInAll.contains(tag) ? Qt::Checked @@ -1352,6 +1361,79 @@ bool TransferListWidget::loadSettings() return header()->restoreState(Preferences::instance()->getTransHeaderState()); } +void TransferListWidget::dragEnterEvent(QDragEnterEvent *event) +{ + if (const QMimeData *data = event->mimeData(); data->hasText() || data->hasUrls()) + { + event->setDropAction(Qt::CopyAction); + event->accept(); + } +} + +void TransferListWidget::dragMoveEvent(QDragMoveEvent *event) +{ + event->acceptProposedAction(); // required, otherwise we won't get `dropEvent` +} + +void TransferListWidget::dropEvent(QDropEvent *event) +{ + event->acceptProposedAction(); + // remove scheme + QStringList files; + if (const QMimeData *data = event->mimeData(); data->hasUrls()) + { + const QList urls = data->urls(); + files.reserve(urls.size()); + + for (const QUrl &url : urls) + { + if (url.isEmpty()) + continue; + + files.append(url.isLocalFile() + ? url.toLocalFile() + : url.toString()); + } + } + else + { + files = data->text().split(u'\n', Qt::SkipEmptyParts); + } + + // differentiate ".torrent" files/links & magnet links from others + QStringList torrentFiles, otherFiles; + torrentFiles.reserve(files.size()); + otherFiles.reserve(files.size()); + for (const QString &file : asConst(files)) + { + if (Utils::Misc::isTorrentLink(file)) + torrentFiles << file; + else + otherFiles << file; + } + + // Download torrents + if (!torrentFiles.isEmpty()) + { + for (const QString &file : asConst(torrentFiles)) + app()->addTorrentManager()->addTorrent(file); + + return; + } + + // Create torrent + for (const QString &file : asConst(otherFiles)) + { + auto torrentCreator = new TorrentCreatorDialog(this, Path(file)); + torrentCreator->setAttribute(Qt::WA_DeleteOnClose); + torrentCreator->show(); + + // currently only handle the first entry + // this is a stub that can be expanded later to create many torrents at once + break; + } +} + void TransferListWidget::wheelEvent(QWheelEvent *event) { if (event->modifiers() & Qt::ShiftModifier) diff --git a/src/gui/transferlistwidget.h b/src/gui/transferlistwidget.h index 257ffd7ab..c5b24ba24 100644 --- a/src/gui/transferlistwidget.h +++ b/src/gui/transferlistwidget.h @@ -35,9 +35,9 @@ #include #include "base/bittorrent/infohash.h" +#include "guiapplicationcomponent.h" #include "transferlistmodel.h" -class MainWindow; class Path; class TransferListSortModel; @@ -52,13 +52,13 @@ enum class CopyInfohashPolicy Version2 }; -class TransferListWidget final : public QTreeView +class TransferListWidget final : public GUIApplicationComponent { Q_OBJECT Q_DISABLE_COPY_MOVE(TransferListWidget) public: - TransferListWidget(QWidget *parent, MainWindow *mainWindow); + TransferListWidget(IGUIApplication *app, QWidget *parent); ~TransferListWidget() override; TransferListModel *getSourceModel() const; @@ -119,22 +119,24 @@ private slots: void saveSettings(); private: + void dragEnterEvent(QDragEnterEvent *event) override; + void dragMoveEvent(QDragMoveEvent *event) override; + void dropEvent(QDropEvent *event) override; void wheelEvent(QWheelEvent *event) override; QModelIndex mapToSource(const QModelIndex &index) const; QModelIndexList mapToSource(const QModelIndexList &indexes) const; QModelIndex mapFromSource(const QModelIndex &index) const; bool loadSettings(); - QVector getSelectedTorrents() const; + QList getSelectedTorrents() const; void askAddTagsForSelection(); void editTorrentTrackers(); void exportTorrent(); void confirmRemoveAllTagsForSelection(); TagSet askTagsForSelection(const QString &dialogTitle); void applyToSelectedTorrents(const std::function &fn); - QVector getVisibleTorrents() const; + QList getVisibleTorrents() const; int visibleColumnsCount() const; TransferListModel *m_listModel = nullptr; TransferListSortModel *m_sortFilterModel = nullptr; - MainWindow *m_mainWindow = nullptr; }; diff --git a/src/gui/uithemecommon.h b/src/gui/uithemecommon.h index 31ae5a456..9f1545fe6 100644 --- a/src/gui/uithemecommon.h +++ b/src/gui/uithemecommon.h @@ -80,7 +80,33 @@ inline QHash defaultUIThemeColors() {u"TransferList.StoppedUploading"_s, {Color::Primer::Light::doneFg, Color::Primer::Dark::doneFg}}, {u"TransferList.Moving"_s, {Color::Primer::Light::successFg, Color::Primer::Dark::successFg}}, {u"TransferList.MissingFiles"_s, {Color::Primer::Light::dangerFg, Color::Primer::Dark::dangerFg}}, - {u"TransferList.Error"_s, {Color::Primer::Light::dangerFg, Color::Primer::Dark::dangerFg}} + {u"TransferList.Error"_s, {Color::Primer::Light::dangerFg, Color::Primer::Dark::dangerFg}}, + + {u"Palette.Window"_s, {{}, {}}}, + {u"Palette.WindowText"_s, {{}, {}}}, + {u"Palette.Base"_s, {{}, {}}}, + {u"Palette.AlternateBase"_s, {{}, {}}}, + {u"Palette.Text"_s, {{}, {}}}, + {u"Palette.ToolTipBase"_s, {{}, {}}}, + {u"Palette.ToolTipText"_s, {{}, {}}}, + {u"Palette.BrightText"_s, {{}, {}}}, + {u"Palette.Highlight"_s, {{}, {}}}, + {u"Palette.HighlightedText"_s, {{}, {}}}, + {u"Palette.Button"_s, {{}, {}}}, + {u"Palette.ButtonText"_s, {{}, {}}}, + {u"Palette.Link"_s, {{}, {}}}, + {u"Palette.LinkVisited"_s, {{}, {}}}, + {u"Palette.Light"_s, {{}, {}}}, + {u"Palette.Midlight"_s, {{}, {}}}, + {u"Palette.Mid"_s, {{}, {}}}, + {u"Palette.Dark"_s, {{}, {}}}, + {u"Palette.Shadow"_s, {{}, {}}}, + {u"Palette.WindowTextDisabled"_s, {{}, {}}}, + {u"Palette.TextDisabled"_s, {{}, {}}}, + {u"Palette.ToolTipTextDisabled"_s, {{}, {}}}, + {u"Palette.BrightTextDisabled"_s, {{}, {}}}, + {u"Palette.HighlightedTextDisabled"_s, {{}, {}}}, + {u"Palette.ButtonTextDisabled"_s, {{}, {}}} }; } diff --git a/src/gui/uithemedialog.cpp b/src/gui/uithemedialog.cpp index ff3980542..24ee381da 100644 --- a/src/gui/uithemedialog.cpp +++ b/src/gui/uithemedialog.cpp @@ -75,7 +75,7 @@ public: , m_defaultColor {defaultColor} , m_currentColor {currentColor} { - setObjectName(u"colorWidget"_s); + setObjectName("colorWidget"); setFrameShape(QFrame::Box); setFrameShadow(QFrame::Plain); setAlignment(Qt::AlignCenter); @@ -159,7 +159,7 @@ public: : QLabel(parent) , m_defaultPath {defaultPath} { - setObjectName(u"iconWidget"_s); + setObjectName("iconWidget"); setAlignment(Qt::AlignCenter); setCurrentPath(currentPath); diff --git a/src/gui/uithemedialog.ui b/src/gui/uithemedialog.ui index 067905456..c2de159d0 100644 --- a/src/gui/uithemedialog.ui +++ b/src/gui/uithemedialog.ui @@ -54,10 +54,10 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame - QAbstractScrollArea::AdjustToContentsOnFirstShow + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContentsOnFirstShow true @@ -115,7 +115,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -157,10 +157,10 @@ - QFrame::NoFrame + QFrame::Shape::NoFrame - QAbstractScrollArea::AdjustToContentsOnFirstShow + QAbstractScrollArea::SizeAdjustPolicy::AdjustToContentsOnFirstShow true @@ -218,7 +218,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -239,10 +239,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/gui/uithememanager.cpp b/src/gui/uithememanager.cpp index d27a91c78..b8cd31fb9 100644 --- a/src/gui/uithememanager.cpp +++ b/src/gui/uithememanager.cpp @@ -47,16 +47,9 @@ namespace { bool isDarkTheme() { - switch (qApp->styleHints()->colorScheme()) - { - case Qt::ColorScheme::Dark: - return true; - case Qt::ColorScheme::Light: - return false; - default: - // fallback to custom method - return (qApp->palette().color(QPalette::Active, QPalette::Base).lightness() < 127); - } + const QPalette palette = qApp->palette(); + const QColor &color = palette.color(QPalette::Active, QPalette::Base); + return (color.lightness() < 127); } } @@ -76,10 +69,25 @@ void UIThemeManager::initInstance() UIThemeManager::UIThemeManager() : m_useCustomTheme {Preferences::instance()->useCustomUITheme()} +#ifdef QBT_HAS_COLORSCHEME_OPTION + , m_colorSchemeSetting {u"Appearance/ColorScheme"_s} +#endif #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) , m_useSystemIcons {Preferences::instance()->useSystemIcons()} #endif { +#ifdef Q_OS_WIN + if (const QString styleName = Preferences::instance()->getStyle(); styleName.compare(u"system", Qt::CaseInsensitive) != 0) + { + if (!QApplication::setStyle(styleName.isEmpty() ? u"Fusion"_s : styleName)) + LogMsg(tr("Set app style failed. Unknown style: \"%1\"").arg(styleName), Log::WARNING); + } +#endif + +#ifdef QBT_HAS_COLORSCHEME_OPTION + applyColorScheme(); +#endif + // NOTE: Qt::QueuedConnection can be omitted as soon as support for Qt 6.5 is dropped connect(QApplication::styleHints(), &QStyleHints::colorSchemeChanged, this, &UIThemeManager::onColorSchemeChanged, Qt::QueuedConnection); @@ -115,6 +123,38 @@ UIThemeManager *UIThemeManager::instance() return m_instance; } +#ifdef QBT_HAS_COLORSCHEME_OPTION +ColorScheme UIThemeManager::colorScheme() const +{ + return m_colorSchemeSetting.get(ColorScheme::System); +} + +void UIThemeManager::setColorScheme(const ColorScheme value) +{ + if (value == colorScheme()) + return; + + m_colorSchemeSetting = value; +} + +void UIThemeManager::applyColorScheme() const +{ + switch (colorScheme()) + { + case ColorScheme::System: + default: + qApp->styleHints()->unsetColorScheme(); + break; + case ColorScheme::Light: + qApp->styleHints()->setColorScheme(Qt::ColorScheme::Light); + break; + case ColorScheme::Dark: + qApp->styleHints()->setColorScheme(Qt::ColorScheme::Dark); + break; + } +} +#endif + void UIThemeManager::applyStyleSheet() const { qApp->setStyleSheet(QString::fromUtf8(m_themeSource->readStyleSheet())); @@ -159,8 +199,8 @@ QIcon UIThemeManager::getFlagIcon(const QString &countryIsoCode) const return {}; const QString key = countryIsoCode.toLower(); - const auto iter = m_flags.find(key); - if (iter != m_flags.end()) + const auto iter = m_flags.constFind(key); + if (iter != m_flags.cend()) return *iter; const QIcon icon {u":/icons/flags/" + key + u".svg"}; diff --git a/src/gui/uithememanager.h b/src/gui/uithememanager.h index 8c82424a4..3a2f9ad95 100644 --- a/src/gui/uithememanager.h +++ b/src/gui/uithememanager.h @@ -31,6 +31,7 @@ #pragma once #include +#include #include #include #include @@ -40,6 +41,15 @@ #include "uithemesource.h" +#if (QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)) && defined(Q_OS_WIN) +#define QBT_HAS_COLORSCHEME_OPTION +#endif + +#ifdef QBT_HAS_COLORSCHEME_OPTION +#include "base/settingvalue.h" +#include "colorscheme.h" +#endif + class UIThemeManager final : public QObject { Q_OBJECT @@ -50,6 +60,11 @@ public: static void freeInstance(); static UIThemeManager *instance(); +#ifdef QBT_HAS_COLORSCHEME_OPTION + ColorScheme colorScheme() const; + void setColorScheme(ColorScheme value); +#endif + QIcon getIcon(const QString &iconId, const QString &fallback = {}) const; QIcon getFlagIcon(const QString &countryIsoCode) const; QPixmap getScaledPixmap(const QString &iconId, int height) const; @@ -66,8 +81,15 @@ private: void applyStyleSheet() const; void onColorSchemeChanged(); +#ifdef QBT_HAS_COLORSCHEME_OPTION + void applyColorScheme() const; +#endif + static UIThemeManager *m_instance; const bool m_useCustomTheme; +#ifdef QBT_HAS_COLORSCHEME_OPTION + SettingValue m_colorSchemeSetting; +#endif #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) const bool m_useSystemIcons; #endif diff --git a/src/gui/uithemesource.cpp b/src/gui/uithemesource.cpp index be0138ee0..c3908b0b8 100644 --- a/src/gui/uithemesource.cpp +++ b/src/gui/uithemesource.cpp @@ -175,7 +175,7 @@ void DefaultThemeSource::loadColors() const QHash lightModeColorOverrides = colorsFromJSON(config.value(KEY_COLORS_LIGHT).toObject()); for (auto overridesIt = lightModeColorOverrides.cbegin(); overridesIt != lightModeColorOverrides.cend(); ++overridesIt) { - auto it = m_colors.find(overridesIt.key()); + const auto it = m_colors.find(overridesIt.key()); if (it != m_colors.end()) it.value().light = overridesIt.value(); } @@ -183,7 +183,7 @@ void DefaultThemeSource::loadColors() const QHash darkModeColorOverrides = colorsFromJSON(config.value(KEY_COLORS_DARK).toObject()); for (auto overridesIt = darkModeColorOverrides.cbegin(); overridesIt != darkModeColorOverrides.cend(); ++overridesIt) { - auto it = m_colors.find(overridesIt.key()); + const auto it = m_colors.find(overridesIt.key()); if (it != m_colors.end()) it.value().dark = overridesIt.value(); } diff --git a/src/gui/utils.cpp b/src/gui/utils.cpp index c7c1f24c4..ac5d922dc 100644 --- a/src/gui/utils.cpp +++ b/src/gui/utils.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2017 Mike Tzou * * This program is free software; you can redistribute it and/or @@ -38,7 +39,6 @@ #include #include -#include #include #include #include @@ -54,16 +54,10 @@ #include "base/global.h" #include "base/path.h" +#include "base/tag.h" #include "base/utils/fs.h" #include "base/utils/version.h" -QPixmap Utils::Gui::scaledPixmap(const QIcon &icon, const int height) -{ - Q_ASSERT(height > 0); - - return icon.pixmap(height); -} - QPixmap Utils::Gui::scaledPixmap(const Path &path, const int height) { Q_ASSERT(height >= 0); @@ -140,6 +134,7 @@ void Utils::Gui::openPath(const Path &path) ::CoUninitialize(); } }); + thread->setObjectName("Utils::Gui::openPath thread"); QObject::connect(thread, &QThread::finished, thread, &QObject::deleteLater); thread->start(); #else @@ -174,12 +169,16 @@ void Utils::Gui::openFolderSelect(const Path &path) ::CoUninitialize(); } }); + thread->setObjectName("Utils::Gui::openFolderSelect thread"); QObject::connect(thread, &QThread::finished, thread, &QObject::deleteLater); thread->start(); #elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) const int lineMaxLength = 64; QProcess proc; +#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + proc.setUnixProcessParameters(QProcess::UnixProcessFlag::CloseFileDescriptors); +#endif proc.start(u"xdg-mime"_s, {u"query"_s, u"default"_s, u"inode/directory"_s}); proc.waitForFinished(); const auto output = QString::fromLocal8Bit(proc.readLine(lineMaxLength).simplified()); @@ -207,6 +206,10 @@ void Utils::Gui::openFolderSelect(const Path &path) { proc.startDetached(u"konqueror"_s, {u"--select"_s, path.toString()}); } + else if (output == u"thunar.desktop") + { + proc.startDetached(u"thunar"_s, {path.toString()}); + } else { // "caja" manager can't pinpoint the file, see: https://github.com/qbittorrent/qBittorrent/issues/5003 @@ -216,3 +219,29 @@ void Utils::Gui::openFolderSelect(const Path &path) openPath(path.parentPath()); #endif } + +QString Utils::Gui::tagToWidgetText(const Tag &tag) +{ + return tag.toString().replace(u'&', u"&&"_s); +} + +Tag Utils::Gui::widgetTextToTag(const QString &text) +{ + // replace pairs of '&' with single '&' and remove non-paired occurrences of '&' + QString cleanedText; + cleanedText.reserve(text.size()); + bool amp = false; + for (const QChar c : text) + { + if (c == u'&') + { + amp = !amp; + if (amp) + continue; + } + + cleanedText.append(c); + } + + return Tag(cleanedText); +} diff --git a/src/gui/utils.h b/src/gui/utils.h index c633cb45d..4d994815b 100644 --- a/src/gui/utils.h +++ b/src/gui/utils.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Vladimir Golovnev * Copyright (C) 2017 Mike Tzou * * This program is free software; you can redistribute it and/or @@ -30,17 +31,18 @@ #include "base/pathfwd.h" -class QIcon; class QPixmap; class QPoint; class QSize; +class QString; class QWidget; +class Tag; + namespace Utils::Gui { bool isDarkTheme(); - QPixmap scaledPixmap(const QIcon &icon, int height); QPixmap scaledPixmap(const Path &path, int height = 0); QSize smallIconSize(const QWidget *widget = nullptr); @@ -51,4 +53,7 @@ namespace Utils::Gui void openPath(const Path &path); void openFolderSelect(const Path &path); + + QString tagToWidgetText(const Tag &tag); + Tag widgetTextToTag(const QString &text); } diff --git a/src/gui/utils/keysequence.cpp b/src/gui/utils/keysequence.cpp new file mode 100644 index 000000000..53fa5041f --- /dev/null +++ b/src/gui/utils/keysequence.cpp @@ -0,0 +1,41 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * + * 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 "keysequence.h" + +#include +#include + +QKeySequence Utils::KeySequence::deleteItem() +{ +#ifdef Q_OS_MACOS + return Qt::CTRL | Qt::Key_Backspace; +#else + return QKeySequence::Delete; +#endif +} diff --git a/src/gui/utils/keysequence.h b/src/gui/utils/keysequence.h new file mode 100644 index 000000000..b89dd2d7f --- /dev/null +++ b/src/gui/utils/keysequence.h @@ -0,0 +1,38 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2025 Mike Tzou (Chocobo1) + * + * 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. + */ + +#pragma once + +class QKeySequence; + +namespace Utils::KeySequence +{ + // QKeySequence variable cannot be initialized at compile time. It will crash at startup. + + QKeySequence deleteItem(); +} diff --git a/src/gui/watchedfolderoptionsdialog.ui b/src/gui/watchedfolderoptionsdialog.ui index 92a1a5a17..4c32920fb 100644 --- a/src/gui/watchedfolderoptionsdialog.ui +++ b/src/gui/watchedfolderoptionsdialog.ui @@ -29,7 +29,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -65,7 +65,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -80,7 +80,7 @@ - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/icons/flags/ad.svg b/src/icons/flags/ad.svg index 3793d99aa..067ab772f 100644 --- a/src/icons/flags/ad.svg +++ b/src/icons/flags/ad.svg @@ -2,16 +2,16 @@ - + - + - + @@ -96,11 +96,11 @@ - + - + @@ -110,17 +110,17 @@ - - - + + + - + - - - + + + @@ -128,21 +128,21 @@ - + - + - + - + - + diff --git a/src/icons/flags/ae.svg b/src/icons/flags/ae.svg index b7acdbdb3..651ac8523 100644 --- a/src/icons/flags/ae.svg +++ b/src/icons/flags/ae.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/af.svg b/src/icons/flags/af.svg index 417dd0476..521ac4cfd 100644 --- a/src/icons/flags/af.svg +++ b/src/icons/flags/af.svg @@ -1,29 +1,29 @@ - + - + - + - - + + - - + + - + - + - - - - + + + + @@ -59,23 +59,23 @@ - + - + - - - - - - - - - + + + + + + + + + - - + + diff --git a/src/icons/flags/ag.svg b/src/icons/flags/ag.svg index 250b50126..243c3d8f9 100644 --- a/src/icons/flags/ag.svg +++ b/src/icons/flags/ag.svg @@ -4,11 +4,11 @@ - - - - - - + + + + + + diff --git a/src/icons/flags/ai.svg b/src/icons/flags/ai.svg index 81a857d5b..628ad9be9 100644 --- a/src/icons/flags/ai.svg +++ b/src/icons/flags/ai.svg @@ -1,17 +1,17 @@ - + - + - + - - + + @@ -25,5 +25,5 @@ - + diff --git a/src/icons/flags/al.svg b/src/icons/flags/al.svg index b69ae195d..1135b4b80 100644 --- a/src/icons/flags/al.svg +++ b/src/icons/flags/al.svg @@ -1,5 +1,5 @@ - + diff --git a/src/icons/flags/ao.svg b/src/icons/flags/ao.svg index 4dc39f6aa..b1863bd0f 100644 --- a/src/icons/flags/ao.svg +++ b/src/icons/flags/ao.svg @@ -1,12 +1,12 @@ - + - - - - + + + + diff --git a/src/icons/flags/ar.svg b/src/icons/flags/ar.svg index 364fca8ff..d20cbbdcd 100644 --- a/src/icons/flags/ar.svg +++ b/src/icons/flags/ar.svg @@ -1,7 +1,7 @@ - + @@ -20,13 +20,13 @@ - - - - + + + + - + - + diff --git a/src/icons/flags/arab.svg b/src/icons/flags/arab.svg index c45e3d207..96d27157e 100644 --- a/src/icons/flags/arab.svg +++ b/src/icons/flags/arab.svg @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/src/icons/flags/as.svg b/src/icons/flags/as.svg index b974013ac..354355672 100644 --- a/src/icons/flags/as.svg +++ b/src/icons/flags/as.svg @@ -6,67 +6,67 @@ - + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - - - + + + + - + - - + + - - - - - - - + + + + + + + - + diff --git a/src/icons/flags/at.svg b/src/icons/flags/at.svg index c28250887..9d2775c08 100644 --- a/src/icons/flags/at.svg +++ b/src/icons/flags/at.svg @@ -1,6 +1,4 @@ - - - - + + diff --git a/src/icons/flags/au.svg b/src/icons/flags/au.svg index 407fef43d..96e80768b 100644 --- a/src/icons/flags/au.svg +++ b/src/icons/flags/au.svg @@ -2,7 +2,7 @@ - + - + diff --git a/src/icons/flags/aw.svg b/src/icons/flags/aw.svg index 32cabd545..413b7c45b 100644 --- a/src/icons/flags/aw.svg +++ b/src/icons/flags/aw.svg @@ -5,182 +5,182 @@ - - + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/flags/az.svg b/src/icons/flags/az.svg index 8e56ef53c..355752211 100644 --- a/src/icons/flags/az.svg +++ b/src/icons/flags/az.svg @@ -4,5 +4,5 @@ - + diff --git a/src/icons/flags/ba.svg b/src/icons/flags/ba.svg index fcd18914a..93bd9cf93 100644 --- a/src/icons/flags/ba.svg +++ b/src/icons/flags/ba.svg @@ -4,9 +4,9 @@ - - - - + + + + diff --git a/src/icons/flags/bb.svg b/src/icons/flags/bb.svg index 263bdec05..cecd5cc33 100644 --- a/src/icons/flags/bb.svg +++ b/src/icons/flags/bb.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/be.svg b/src/icons/flags/be.svg index 327f28fa2..ac706a0b5 100644 --- a/src/icons/flags/be.svg +++ b/src/icons/flags/be.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/bg.svg b/src/icons/flags/bg.svg index b100dd0dc..af2d0d07c 100644 --- a/src/icons/flags/bg.svg +++ b/src/icons/flags/bg.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/icons/flags/bi.svg b/src/icons/flags/bi.svg index 1050838bc..a4434a955 100644 --- a/src/icons/flags/bi.svg +++ b/src/icons/flags/bi.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/bl.svg b/src/icons/flags/bl.svg index 819afc111..f84cbbaeb 100644 --- a/src/icons/flags/bl.svg +++ b/src/icons/flags/bl.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/bm.svg b/src/icons/flags/bm.svg index a4dbc728f..bab3e0abe 100644 --- a/src/icons/flags/bm.svg +++ b/src/icons/flags/bm.svg @@ -8,18 +8,18 @@ - + - + - + @@ -57,38 +57,38 @@ - + - + - + - + - + - + - + - - + + - - + + - + diff --git a/src/icons/flags/bn.svg b/src/icons/flags/bn.svg index f906abfeb..4b416ebb7 100644 --- a/src/icons/flags/bn.svg +++ b/src/icons/flags/bn.svg @@ -1,36 +1,36 @@ - - - + + + - + - - - - + + + + - - - - + + + + - + - + - - - - - - + + + + + + diff --git a/src/icons/flags/bo.svg b/src/icons/flags/bo.svg index 17a0a0c12..46dc76735 100644 --- a/src/icons/flags/bo.svg +++ b/src/icons/flags/bo.svg @@ -73,10 +73,10 @@ - + - + @@ -101,19 +101,19 @@ - + - - - - + + + + - + @@ -139,16 +139,16 @@ - - - - + + + + - + - + @@ -157,21 +157,21 @@ - + - + - + - + @@ -183,24 +183,24 @@ - + - + - + - + - + - + - + @@ -299,28 +299,28 @@ - - - - - - - - + + + + + + + + - - + + - - - - + + + + @@ -330,157 +330,155 @@ - + - + - - - + - + - + - + - - + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - - - - - - + + + + + + + - + - - - + + + - - - - + + + + - - + + - - - + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - + + - - - + + + - - - - - - + + + + + + - - + + @@ -491,18 +489,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -510,41 +508,41 @@ - - + + - + - + - + - - - - + + + + - - - - - - + + + + + + - + @@ -558,7 +556,7 @@ - + @@ -566,33 +564,33 @@ - - - + + + - + - - - - + + + + - + - - - - - + + + + + - - + + @@ -600,19 +598,19 @@ - + - - + + - + @@ -620,54 +618,54 @@ - + - - + + - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - - - + + + - + - + diff --git a/src/icons/flags/br.svg b/src/icons/flags/br.svg index 354a7013f..22c908e7e 100644 --- a/src/icons/flags/br.svg +++ b/src/icons/flags/br.svg @@ -1,45 +1,45 @@ - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + diff --git a/src/icons/flags/bs.svg b/src/icons/flags/bs.svg index 513be43ac..5cc918e5a 100644 --- a/src/icons/flags/bs.svg +++ b/src/icons/flags/bs.svg @@ -8,6 +8,6 @@ - + diff --git a/src/icons/flags/bt.svg b/src/icons/flags/bt.svg index cea6006c1..798c79b38 100644 --- a/src/icons/flags/bt.svg +++ b/src/icons/flags/bt.svg @@ -3,25 +3,25 @@ - - - - - - - - - + + + + + + + + + - - - - + + + + - + @@ -60,7 +60,7 @@ - + @@ -68,7 +68,7 @@ - + diff --git a/src/icons/flags/bw.svg b/src/icons/flags/bw.svg index a1c8db0af..3435608d6 100644 --- a/src/icons/flags/bw.svg +++ b/src/icons/flags/bw.svg @@ -2,6 +2,6 @@ - + diff --git a/src/icons/flags/by.svg b/src/icons/flags/by.svg index 8d25ee3c1..7e90ff255 100644 --- a/src/icons/flags/by.svg +++ b/src/icons/flags/by.svg @@ -1,20 +1,18 @@ - + - + - - - - - - - - - - - + + + + + + + + + diff --git a/src/icons/flags/bz.svg b/src/icons/flags/bz.svg index 08d3579de..25386a51a 100644 --- a/src/icons/flags/bz.svg +++ b/src/icons/flags/bz.svg @@ -17,16 +17,16 @@ - - + + - - + + - + - + @@ -40,7 +40,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -60,9 +60,9 @@ - + - + @@ -70,21 +70,21 @@ - + - + - + - + @@ -92,7 +92,7 @@ - + @@ -104,42 +104,42 @@ - + - + - + - + - + - + - + - + - + diff --git a/src/icons/flags/ca.svg b/src/icons/flags/ca.svg index f1b2c968a..89da5b7b5 100644 --- a/src/icons/flags/ca.svg +++ b/src/icons/flags/ca.svg @@ -1,4 +1,4 @@ - + diff --git a/src/icons/flags/cc.svg b/src/icons/flags/cc.svg index 93025bd2d..ddfd18038 100644 --- a/src/icons/flags/cc.svg +++ b/src/icons/flags/cc.svg @@ -8,8 +8,8 @@ - - + + diff --git a/src/icons/flags/cd.svg b/src/icons/flags/cd.svg index e106ddd53..b9cf52894 100644 --- a/src/icons/flags/cd.svg +++ b/src/icons/flags/cd.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/cg.svg b/src/icons/flags/cg.svg index 9128715f6..f5a0e42d4 100644 --- a/src/icons/flags/cg.svg +++ b/src/icons/flags/cg.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/icons/flags/cl.svg b/src/icons/flags/cl.svg index 01766fefd..5b3c72fa7 100644 --- a/src/icons/flags/cl.svg +++ b/src/icons/flags/cl.svg @@ -7,7 +7,7 @@ - + diff --git a/src/icons/flags/cm.svg b/src/icons/flags/cm.svg index 389b66277..70adc8b68 100644 --- a/src/icons/flags/cm.svg +++ b/src/icons/flags/cm.svg @@ -2,7 +2,7 @@ - + diff --git a/src/icons/flags/cp.svg b/src/icons/flags/cp.svg index b3efb0742..b8aa9cfd6 100644 --- a/src/icons/flags/cp.svg +++ b/src/icons/flags/cp.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/icons/flags/cu.svg b/src/icons/flags/cu.svg index 6464f8eba..053c9ee3a 100644 --- a/src/icons/flags/cu.svg +++ b/src/icons/flags/cu.svg @@ -4,10 +4,10 @@ - + - - + + diff --git a/src/icons/flags/cv.svg b/src/icons/flags/cv.svg index 5c251da2a..aec899490 100644 --- a/src/icons/flags/cv.svg +++ b/src/icons/flags/cv.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/cx.svg b/src/icons/flags/cx.svg index 6803b3b66..374ff2dab 100644 --- a/src/icons/flags/cx.svg +++ b/src/icons/flags/cx.svg @@ -2,11 +2,11 @@ - + - + - + diff --git a/src/icons/flags/cy.svg b/src/icons/flags/cy.svg index 2f69bf79f..7e3d883da 100644 --- a/src/icons/flags/cy.svg +++ b/src/icons/flags/cy.svg @@ -1,6 +1,6 @@ - + - + diff --git a/src/icons/flags/de.svg b/src/icons/flags/de.svg index b08334b62..71aa2d2c3 100644 --- a/src/icons/flags/de.svg +++ b/src/icons/flags/de.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/src/icons/flags/dg.svg b/src/icons/flags/dg.svg index b9f99a99d..f163caf94 100644 --- a/src/icons/flags/dg.svg +++ b/src/icons/flags/dg.svg @@ -30,7 +30,7 @@ - + @@ -104,8 +104,8 @@ - - + + @@ -120,7 +120,7 @@ - + diff --git a/src/icons/flags/dj.svg b/src/icons/flags/dj.svg index ebf2fc66f..9b00a8205 100644 --- a/src/icons/flags/dj.svg +++ b/src/icons/flags/dj.svg @@ -4,10 +4,10 @@ - + - + diff --git a/src/icons/flags/dm.svg b/src/icons/flags/dm.svg index 60457b796..f692094dd 100644 --- a/src/icons/flags/dm.svg +++ b/src/icons/flags/dm.svg @@ -4,66 +4,66 @@ - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - - + + - + - + - + diff --git a/src/icons/flags/do.svg b/src/icons/flags/do.svg index d83769005..b1be393ed 100644 --- a/src/icons/flags/do.svg +++ b/src/icons/flags/do.svg @@ -2,64 +2,64 @@ - + - - - + + + - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + - + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - + @@ -67,20 +67,20 @@ - - - - - + + + + + - + - + @@ -101,7 +101,7 @@ - + @@ -110,12 +110,12 @@ - + - + - - + + diff --git a/src/icons/flags/eac.svg b/src/icons/flags/eac.svg index 25a09a132..aaf8133f3 100644 --- a/src/icons/flags/eac.svg +++ b/src/icons/flags/eac.svg @@ -4,45 +4,45 @@ - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + - - + + diff --git a/src/icons/flags/ec.svg b/src/icons/flags/ec.svg index 65b78858a..397bfd982 100644 --- a/src/icons/flags/ec.svg +++ b/src/icons/flags/ec.svg @@ -5,15 +5,15 @@ - - - + + + - - - - - + + + + + @@ -40,9 +40,9 @@ - - - + + + @@ -50,15 +50,15 @@ - - - + + + - - - - + + + + @@ -73,10 +73,10 @@ - - - - + + + + @@ -86,53 +86,53 @@ - - - - + + + + - - - - + + + + - + - + - - - + + + - - + + - + - + - + - + - - + + - + diff --git a/src/icons/flags/ee.svg b/src/icons/flags/ee.svg index 36ea288ca..8b98c2c42 100644 --- a/src/icons/flags/ee.svg +++ b/src/icons/flags/ee.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/icons/flags/eg.svg b/src/icons/flags/eg.svg index 58c943c23..00d1fa59e 100644 --- a/src/icons/flags/eg.svg +++ b/src/icons/flags/eg.svg @@ -1,37 +1,37 @@ - + - - - + + + - + - - - - + + + + - - + + - + - + diff --git a/src/icons/flags/eh.svg b/src/icons/flags/eh.svg index 2c9525bd0..6aec72883 100644 --- a/src/icons/flags/eh.svg +++ b/src/icons/flags/eh.svg @@ -4,8 +4,8 @@ - - + + diff --git a/src/icons/flags/er.svg b/src/icons/flags/er.svg index 2705295f2..3f4f3f292 100644 --- a/src/icons/flags/er.svg +++ b/src/icons/flags/er.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/icons/flags/es-ga.svg b/src/icons/flags/es-ga.svg index a91ffed06..31657813e 100644 --- a/src/icons/flags/es-ga.svg +++ b/src/icons/flags/es-ga.svg @@ -1,7 +1,7 @@ - + @@ -10,27 +10,27 @@ - + - + - + - + - + @@ -124,7 +124,7 @@ - + @@ -136,11 +136,11 @@ - + - - + + @@ -150,7 +150,7 @@ - + @@ -181,7 +181,7 @@ - + diff --git a/src/icons/flags/es.svg b/src/icons/flags/es.svg index 815e0f846..acdf927f2 100644 --- a/src/icons/flags/es.svg +++ b/src/icons/flags/es.svg @@ -8,20 +8,20 @@ - + - + - - + + - + - - + + @@ -30,15 +30,15 @@ - + - + - + - + @@ -46,33 +46,33 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -82,54 +82,54 @@ - - + + - - + + - - - + + + - + - + - - + + - - + + - + - + - + @@ -153,49 +153,49 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -206,16 +206,16 @@ - - + + - - + + - - + + @@ -232,25 +232,25 @@ - - + + - - + + - + - + - + @@ -276,24 +276,24 @@ - + - + - - + + - + - + - - + + @@ -309,65 +309,65 @@ - + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + - + - - + + - - - - + + + + - - + + @@ -462,78 +462,78 @@ - - - - + + + + - - + + - - + + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - - - + + + - + - + - + - + - + - - - + + + - - + + diff --git a/src/icons/flags/et.svg b/src/icons/flags/et.svg index a3378fd95..3f99be486 100644 --- a/src/icons/flags/et.svg +++ b/src/icons/flags/et.svg @@ -4,11 +4,11 @@ - + - + diff --git a/src/icons/flags/eu.svg b/src/icons/flags/eu.svg index bbfefd6b4..b0874c1ed 100644 --- a/src/icons/flags/eu.svg +++ b/src/icons/flags/eu.svg @@ -13,7 +13,7 @@ - + diff --git a/src/icons/flags/fj.svg b/src/icons/flags/fj.svg index 2d7cd980c..23fbe57a8 100644 --- a/src/icons/flags/fj.svg +++ b/src/icons/flags/fj.svg @@ -1,11 +1,11 @@ - + - + @@ -13,41 +13,41 @@ - - + + - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + - + - + - + @@ -56,17 +56,17 @@ - + - + - + - + @@ -75,25 +75,25 @@ - - - - + + + + - - + + - - - - - + + + + + - + @@ -101,15 +101,15 @@ - + - - - - - + + + + + diff --git a/src/icons/flags/fk.svg b/src/icons/flags/fk.svg index b4935a55e..c65bf96de 100644 --- a/src/icons/flags/fk.svg +++ b/src/icons/flags/fk.svg @@ -21,27 +21,27 @@ - + - + - - - + + + - - + + - + @@ -56,13 +56,13 @@ - + - + diff --git a/src/icons/flags/fm.svg b/src/icons/flags/fm.svg index 85f4f47ec..c1b7c9778 100644 --- a/src/icons/flags/fm.svg +++ b/src/icons/flags/fm.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/fo.svg b/src/icons/flags/fo.svg index 717ee20b8..f802d285a 100644 --- a/src/icons/flags/fo.svg +++ b/src/icons/flags/fo.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/icons/flags/fr.svg b/src/icons/flags/fr.svg index 79689fe94..4110e59e4 100644 --- a/src/icons/flags/fr.svg +++ b/src/icons/flags/fr.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/gb-nir.svg b/src/icons/flags/gb-nir.svg index c9510f30c..e6be8dbc2 100644 --- a/src/icons/flags/gb-nir.svg +++ b/src/icons/flags/gb-nir.svg @@ -5,10 +5,10 @@ - + - + @@ -19,20 +19,20 @@ - + - + - + - + - + @@ -40,30 +40,30 @@ - + - + - + - + - + - + @@ -72,56 +72,56 @@ - + - + - + - + - + - + - - + + - - - + + + - + - + - + - - + + - + - + diff --git a/src/icons/flags/gb.svg b/src/icons/flags/gb.svg index dbac25eae..799138319 100644 --- a/src/icons/flags/gb.svg +++ b/src/icons/flags/gb.svg @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/src/icons/flags/gd.svg b/src/icons/flags/gd.svg index f44e83913..cb51e9618 100644 --- a/src/icons/flags/gd.svg +++ b/src/icons/flags/gd.svg @@ -15,13 +15,13 @@ - + - + - - + + - + diff --git a/src/icons/flags/gf.svg b/src/icons/flags/gf.svg index 734934266..f8fe94c65 100644 --- a/src/icons/flags/gf.svg +++ b/src/icons/flags/gf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/gh.svg b/src/icons/flags/gh.svg index a6497de88..5c3e3e69a 100644 --- a/src/icons/flags/gh.svg +++ b/src/icons/flags/gh.svg @@ -2,5 +2,5 @@ - + diff --git a/src/icons/flags/gi.svg b/src/icons/flags/gi.svg index 92496be6b..e2b590afe 100644 --- a/src/icons/flags/gi.svg +++ b/src/icons/flags/gi.svg @@ -1,18 +1,18 @@ - + - + - + - + @@ -20,10 +20,10 @@ - + - + diff --git a/src/icons/flags/gp.svg b/src/icons/flags/gp.svg index 528e554f0..ee55c4bcd 100644 --- a/src/icons/flags/gp.svg +++ b/src/icons/flags/gp.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/gq.svg b/src/icons/flags/gq.svg index ba2acf28d..134e44217 100644 --- a/src/icons/flags/gq.svg +++ b/src/icons/flags/gq.svg @@ -4,7 +4,7 @@ - + @@ -16,8 +16,8 @@ - + - + diff --git a/src/icons/flags/gs.svg b/src/icons/flags/gs.svg index 2e045dfdd..1536e073e 100644 --- a/src/icons/flags/gs.svg +++ b/src/icons/flags/gs.svg @@ -27,27 +27,27 @@ - + - - + + - + - - + + - + - + @@ -65,7 +65,7 @@ - + @@ -96,14 +96,14 @@ - + - + @@ -113,7 +113,7 @@ - + @@ -124,7 +124,7 @@ - + diff --git a/src/icons/flags/gt.svg b/src/icons/flags/gt.svg index 9b3471244..f7cffbdc7 100644 --- a/src/icons/flags/gt.svg +++ b/src/icons/flags/gt.svg @@ -118,27 +118,27 @@ - - - - - + + + + + - + - + - + - + - + @@ -148,53 +148,53 @@ - + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + diff --git a/src/icons/flags/gu.svg b/src/icons/flags/gu.svg index a5584ffd4..0d66e1bfa 100644 --- a/src/icons/flags/gu.svg +++ b/src/icons/flags/gu.svg @@ -2,22 +2,22 @@ - - + + - - - G - U - A - M - + + + G + U + A + M + - - - - - + + + + + diff --git a/src/icons/flags/gw.svg b/src/icons/flags/gw.svg index b8d566a2a..d470bac9f 100644 --- a/src/icons/flags/gw.svg +++ b/src/icons/flags/gw.svg @@ -3,7 +3,7 @@ - + diff --git a/src/icons/flags/gy.svg b/src/icons/flags/gy.svg index f4d9b8ab2..569fb5627 100644 --- a/src/icons/flags/gy.svg +++ b/src/icons/flags/gy.svg @@ -1,9 +1,9 @@ - + - + diff --git a/src/icons/flags/hk.svg b/src/icons/flags/hk.svg index ec40b5fed..4fd55bc14 100644 --- a/src/icons/flags/hk.svg +++ b/src/icons/flags/hk.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/hm.svg b/src/icons/flags/hm.svg index c0748d3be..815c48208 100644 --- a/src/icons/flags/hm.svg +++ b/src/icons/flags/hm.svg @@ -2,7 +2,7 @@ - + - + diff --git a/src/icons/flags/hn.svg b/src/icons/flags/hn.svg index 1c166dc46..11fde67db 100644 --- a/src/icons/flags/hn.svg +++ b/src/icons/flags/hn.svg @@ -1,7 +1,7 @@ - + diff --git a/src/icons/flags/hr.svg b/src/icons/flags/hr.svg index febbc2400..44fed27d5 100644 --- a/src/icons/flags/hr.svg +++ b/src/icons/flags/hr.svg @@ -4,55 +4,55 @@ - - + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - - - - + + + + diff --git a/src/icons/flags/ht.svg b/src/icons/flags/ht.svg index 4cd4470f4..5d48eb93b 100644 --- a/src/icons/flags/ht.svg +++ b/src/icons/flags/ht.svg @@ -4,37 +4,37 @@ - + - + - - - + + + - - - + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - + + @@ -44,36 +44,36 @@ - - - - - + + + + + - + - + - - - - - + + + + + - - - - - + + + + + - + @@ -88,29 +88,29 @@ - + - + - + - + - - - + + + - + diff --git a/src/icons/flags/il.svg b/src/icons/flags/il.svg index 724cf8bf3..f43be7e8e 100644 --- a/src/icons/flags/il.svg +++ b/src/icons/flags/il.svg @@ -4,11 +4,11 @@ - + - - - - + + + + diff --git a/src/icons/flags/im.svg b/src/icons/flags/im.svg index 3d597a14b..f06f3d6fe 100644 --- a/src/icons/flags/im.svg +++ b/src/icons/flags/im.svg @@ -4,11 +4,11 @@ - + - + @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/src/icons/flags/in.svg b/src/icons/flags/in.svg index c634f68ac..bc47d7491 100644 --- a/src/icons/flags/in.svg +++ b/src/icons/flags/in.svg @@ -11,7 +11,7 @@ - + diff --git a/src/icons/flags/io.svg b/src/icons/flags/io.svg index b04c46f5e..77016679e 100644 --- a/src/icons/flags/io.svg +++ b/src/icons/flags/io.svg @@ -30,7 +30,7 @@ - + @@ -104,8 +104,8 @@ - - + + @@ -120,7 +120,7 @@ - + diff --git a/src/icons/flags/iq.svg b/src/icons/flags/iq.svg index 689178537..259da9adc 100644 --- a/src/icons/flags/iq.svg +++ b/src/icons/flags/iq.svg @@ -1,10 +1,10 @@ - - - + + + - + diff --git a/src/icons/flags/ir.svg b/src/icons/flags/ir.svg index 5c9609eff..8c6d51621 100644 --- a/src/icons/flags/ir.svg +++ b/src/icons/flags/ir.svg @@ -4,7 +4,7 @@ - + @@ -209,11 +209,11 @@ - - - - - + + + + + diff --git a/src/icons/flags/is.svg b/src/icons/flags/is.svg index 56cc97787..a6588afae 100644 --- a/src/icons/flags/is.svg +++ b/src/icons/flags/is.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/icons/flags/je.svg b/src/icons/flags/je.svg index e69e4f465..611180d42 100644 --- a/src/icons/flags/je.svg +++ b/src/icons/flags/je.svg @@ -1,45 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/flags/jm.svg b/src/icons/flags/jm.svg index e03a3422a..269df0383 100644 --- a/src/icons/flags/jm.svg +++ b/src/icons/flags/jm.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/jo.svg b/src/icons/flags/jo.svg index 50802915e..d6f927d44 100644 --- a/src/icons/flags/jo.svg +++ b/src/icons/flags/jo.svg @@ -4,12 +4,12 @@ - + - + - + diff --git a/src/icons/flags/jp.svg b/src/icons/flags/jp.svg index cd03a339d..cc1c181ce 100644 --- a/src/icons/flags/jp.svg +++ b/src/icons/flags/jp.svg @@ -6,6 +6,6 @@ - + diff --git a/src/icons/flags/ke.svg b/src/icons/flags/ke.svg index 5b3779370..3a67ca3cc 100644 --- a/src/icons/flags/ke.svg +++ b/src/icons/flags/ke.svg @@ -3,14 +3,14 @@ - + - + diff --git a/src/icons/flags/kg.svg b/src/icons/flags/kg.svg index 626af14da..68c210b1c 100644 --- a/src/icons/flags/kg.svg +++ b/src/icons/flags/kg.svg @@ -4,12 +4,12 @@ - + - - + + diff --git a/src/icons/flags/ki.svg b/src/icons/flags/ki.svg index 1697ffe8b..0c8032807 100644 --- a/src/icons/flags/ki.svg +++ b/src/icons/flags/ki.svg @@ -4,28 +4,28 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + diff --git a/src/icons/flags/km.svg b/src/icons/flags/km.svg index 56d62c32e..414d65e47 100644 --- a/src/icons/flags/km.svg +++ b/src/icons/flags/km.svg @@ -9,7 +9,7 @@ - + diff --git a/src/icons/flags/kn.svg b/src/icons/flags/kn.svg index 01a3a0a2a..47fe64d61 100644 --- a/src/icons/flags/kn.svg +++ b/src/icons/flags/kn.svg @@ -4,11 +4,11 @@ - + - - - + + + diff --git a/src/icons/flags/kp.svg b/src/icons/flags/kp.svg index 94bc8e1ed..4d1dbab24 100644 --- a/src/icons/flags/kp.svg +++ b/src/icons/flags/kp.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/kr.svg b/src/icons/flags/kr.svg index 44b51e251..6947eab2b 100644 --- a/src/icons/flags/kr.svg +++ b/src/icons/flags/kr.svg @@ -4,11 +4,11 @@ - + - + - + @@ -16,7 +16,7 @@ - + diff --git a/src/icons/flags/kw.svg b/src/icons/flags/kw.svg index 7ff91a845..3dd89e996 100644 --- a/src/icons/flags/kw.svg +++ b/src/icons/flags/kw.svg @@ -8,6 +8,6 @@ - + diff --git a/src/icons/flags/ky.svg b/src/icons/flags/ky.svg index d6e567b59..74a2fea2a 100644 --- a/src/icons/flags/ky.svg +++ b/src/icons/flags/ky.svg @@ -5,7 +5,7 @@ - + @@ -14,20 +14,20 @@ - + - - - - + + + + - + @@ -60,22 +60,22 @@ - + - + - + - + @@ -89,8 +89,8 @@ - - + + diff --git a/src/icons/flags/kz.svg b/src/icons/flags/kz.svg index a69ba7a3b..04a47f53e 100644 --- a/src/icons/flags/kz.svg +++ b/src/icons/flags/kz.svg @@ -5,7 +5,7 @@ - + @@ -16,8 +16,8 @@ - - + + diff --git a/src/icons/flags/la.svg b/src/icons/flags/la.svg index 9723a781a..6aea6b72b 100644 --- a/src/icons/flags/la.svg +++ b/src/icons/flags/la.svg @@ -7,6 +7,6 @@ - + diff --git a/src/icons/flags/lb.svg b/src/icons/flags/lb.svg index 49650ad85..8619f2410 100644 --- a/src/icons/flags/lb.svg +++ b/src/icons/flags/lb.svg @@ -4,12 +4,12 @@ - + - + diff --git a/src/icons/flags/lc.svg b/src/icons/flags/lc.svg index 46bbc6cc7..bb256541c 100644 --- a/src/icons/flags/lc.svg +++ b/src/icons/flags/lc.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/icons/flags/li.svg b/src/icons/flags/li.svg index a08a05acd..68ea26fa3 100644 --- a/src/icons/flags/li.svg +++ b/src/icons/flags/li.svg @@ -3,10 +3,10 @@ - + - + @@ -20,23 +20,23 @@ - + - + - + - + - + diff --git a/src/icons/flags/lk.svg b/src/icons/flags/lk.svg index 24c6559b7..2c5cdbe09 100644 --- a/src/icons/flags/lk.svg +++ b/src/icons/flags/lk.svg @@ -11,12 +11,12 @@ - - - - - - + + + + + + diff --git a/src/icons/flags/lr.svg b/src/icons/flags/lr.svg index a31377f97..e482ab9d7 100644 --- a/src/icons/flags/lr.svg +++ b/src/icons/flags/lr.svg @@ -9,6 +9,6 @@ - + diff --git a/src/icons/flags/ls.svg b/src/icons/flags/ls.svg index e70165028..a7c01a98f 100644 --- a/src/icons/flags/ls.svg +++ b/src/icons/flags/ls.svg @@ -4,5 +4,5 @@ - + diff --git a/src/icons/flags/lu.svg b/src/icons/flags/lu.svg index c31d2bfa2..cc1220681 100644 --- a/src/icons/flags/lu.svg +++ b/src/icons/flags/lu.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/ly.svg b/src/icons/flags/ly.svg index 14abcb243..1eaa51e46 100644 --- a/src/icons/flags/ly.svg +++ b/src/icons/flags/ly.svg @@ -6,7 +6,7 @@ - + diff --git a/src/icons/flags/md.svg b/src/icons/flags/md.svg index a806572c2..6dc441e17 100644 --- a/src/icons/flags/md.svg +++ b/src/icons/flags/md.svg @@ -7,7 +7,7 @@ - + @@ -32,17 +32,17 @@ - + - + - - + + @@ -51,19 +51,19 @@ - + - - + + - - + + - + diff --git a/src/icons/flags/me.svg b/src/icons/flags/me.svg index b56cce094..d89189074 100644 --- a/src/icons/flags/me.svg +++ b/src/icons/flags/me.svg @@ -1,28 +1,28 @@ - - + + - - - + + + - + - + - - - - - - + + + + + + @@ -32,43 +32,43 @@ - - - - - + + + + + - - - - + + + + - + - + - + - - + + - - + + - + - - - - - - + + + + + + @@ -81,36 +81,36 @@ - - + + - - + + - - - + + + - + - + - + - + - + - - - + + + - + diff --git a/src/icons/flags/mf.svg b/src/icons/flags/mf.svg index a53ce5012..6305edc1c 100644 --- a/src/icons/flags/mf.svg +++ b/src/icons/flags/mf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/mh.svg b/src/icons/flags/mh.svg index 46351e541..7b9f49075 100644 --- a/src/icons/flags/mh.svg +++ b/src/icons/flags/mh.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/icons/flags/mm.svg b/src/icons/flags/mm.svg index 8ed5e6ac2..42b4dee2b 100644 --- a/src/icons/flags/mm.svg +++ b/src/icons/flags/mm.svg @@ -2,7 +2,7 @@ - + diff --git a/src/icons/flags/mn.svg b/src/icons/flags/mn.svg index 56cb0729b..152c2fcb0 100644 --- a/src/icons/flags/mn.svg +++ b/src/icons/flags/mn.svg @@ -4,9 +4,9 @@ - + - + diff --git a/src/icons/flags/mo.svg b/src/icons/flags/mo.svg index 257faed69..d39985d05 100644 --- a/src/icons/flags/mo.svg +++ b/src/icons/flags/mo.svg @@ -2,7 +2,7 @@ - + diff --git a/src/icons/flags/mp.svg b/src/icons/flags/mp.svg index 6696fdb83..ff59ebf87 100644 --- a/src/icons/flags/mp.svg +++ b/src/icons/flags/mp.svg @@ -7,7 +7,7 @@ - + @@ -52,27 +52,27 @@ - + - - - + + + - + - + - - + + - + diff --git a/src/icons/flags/mr.svg b/src/icons/flags/mr.svg index 3f0a62645..7558234cb 100644 --- a/src/icons/flags/mr.svg +++ b/src/icons/flags/mr.svg @@ -1,6 +1,6 @@ - + diff --git a/src/icons/flags/ms.svg b/src/icons/flags/ms.svg index 58641240c..faf07b07f 100644 --- a/src/icons/flags/ms.svg +++ b/src/icons/flags/ms.svg @@ -1,16 +1,16 @@ - - - + + + - + - + diff --git a/src/icons/flags/mt.svg b/src/icons/flags/mt.svg index 676e801c5..c597266c3 100644 --- a/src/icons/flags/mt.svg +++ b/src/icons/flags/mt.svg @@ -1,49 +1,58 @@ - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + diff --git a/src/icons/flags/mw.svg b/src/icons/flags/mw.svg index 113aae543..d83ddb217 100644 --- a/src/icons/flags/mw.svg +++ b/src/icons/flags/mw.svg @@ -2,9 +2,9 @@ - - - + + + diff --git a/src/icons/flags/mx.svg b/src/icons/flags/mx.svg index bb305b8d1..f98a89e17 100644 --- a/src/icons/flags/mx.svg +++ b/src/icons/flags/mx.svg @@ -39,87 +39,87 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + @@ -127,88 +127,88 @@ - - - - + + + + - - + + - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - + + - - + + - - - + + + - - + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -216,167 +216,167 @@ - - - - + + + + - + - - + + - - + + - - + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - - + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + - + - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - - - - + + + + + - - + + - - + + - - + + - - - + + + diff --git a/src/icons/flags/my.svg b/src/icons/flags/my.svg index 264f48aef..89576f69e 100644 --- a/src/icons/flags/my.svg +++ b/src/icons/flags/my.svg @@ -1,6 +1,6 @@ - + @@ -15,8 +15,8 @@ - - + + diff --git a/src/icons/flags/mz.svg b/src/icons/flags/mz.svg index eb020058b..2ee6ec14b 100644 --- a/src/icons/flags/mz.svg +++ b/src/icons/flags/mz.svg @@ -7,15 +7,15 @@ - + - + - + - + diff --git a/src/icons/flags/na.svg b/src/icons/flags/na.svg index 799702e8c..35b9f783e 100644 --- a/src/icons/flags/na.svg +++ b/src/icons/flags/na.svg @@ -6,11 +6,11 @@ - + - - + + diff --git a/src/icons/flags/nc.svg b/src/icons/flags/nc.svg index 96795408c..068f0c69a 100644 --- a/src/icons/flags/nc.svg +++ b/src/icons/flags/nc.svg @@ -4,10 +4,10 @@ - - - - - - + + + + + + diff --git a/src/icons/flags/nf.svg b/src/icons/flags/nf.svg index ecdb4a3bd..c8b30938d 100644 --- a/src/icons/flags/nf.svg +++ b/src/icons/flags/nf.svg @@ -2,8 +2,8 @@ - - + + diff --git a/src/icons/flags/ni.svg b/src/icons/flags/ni.svg index e16e77ae4..6dcdc9a80 100644 --- a/src/icons/flags/ni.svg +++ b/src/icons/flags/ni.svg @@ -38,13 +38,13 @@ - - - + + + - + @@ -59,62 +59,62 @@ - - - + + + - + - - + + - - - + + + - + - + - - - + + + - + - - - - + + + + - + - + - + - + @@ -125,5 +125,5 @@ - + diff --git a/src/icons/flags/nl.svg b/src/icons/flags/nl.svg index 4faaf498e..e90f5b035 100644 --- a/src/icons/flags/nl.svg +++ b/src/icons/flags/nl.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/np.svg b/src/icons/flags/np.svg index fead9402c..8d71d106b 100644 --- a/src/icons/flags/np.svg +++ b/src/icons/flags/np.svg @@ -4,10 +4,10 @@ - + - + diff --git a/src/icons/flags/nr.svg b/src/icons/flags/nr.svg index e71ddcd8d..ff394c411 100644 --- a/src/icons/flags/nr.svg +++ b/src/icons/flags/nr.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/nz.svg b/src/icons/flags/nz.svg index a0028fb2f..935d8a749 100644 --- a/src/icons/flags/nz.svg +++ b/src/icons/flags/nz.svg @@ -8,24 +8,24 @@ - + - - + + - - - + + + - - - + + + - - + + diff --git a/src/icons/flags/om.svg b/src/icons/flags/om.svg index 1c7621799..c003f86e4 100644 --- a/src/icons/flags/om.svg +++ b/src/icons/flags/om.svg @@ -12,14 +12,14 @@ - + - + @@ -34,10 +34,10 @@ - + - - + + @@ -52,10 +52,10 @@ - + - - + + @@ -84,7 +84,7 @@ - + @@ -95,7 +95,7 @@ - + diff --git a/src/icons/flags/pc.svg b/src/icons/flags/pc.svg new file mode 100644 index 000000000..882197da6 --- /dev/null +++ b/src/icons/flags/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/flags/pf.svg b/src/icons/flags/pf.svg index 16374f362..e06b236e8 100644 --- a/src/icons/flags/pf.svg +++ b/src/icons/flags/pf.svg @@ -8,12 +8,12 @@ - + - + - + diff --git a/src/icons/flags/pg.svg b/src/icons/flags/pg.svg index 1080add5b..237cb6eee 100644 --- a/src/icons/flags/pg.svg +++ b/src/icons/flags/pg.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/icons/flags/pk.svg b/src/icons/flags/pk.svg index fa02f6a8f..491e58ab1 100644 --- a/src/icons/flags/pk.svg +++ b/src/icons/flags/pk.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/pm.svg b/src/icons/flags/pm.svg index 401139f7a..19a9330a3 100644 --- a/src/icons/flags/pm.svg +++ b/src/icons/flags/pm.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/pn.svg b/src/icons/flags/pn.svg index 9788c9cc1..07958aca1 100644 --- a/src/icons/flags/pn.svg +++ b/src/icons/flags/pn.svg @@ -46,8 +46,8 @@ - - - + + + diff --git a/src/icons/flags/pr.svg b/src/icons/flags/pr.svg index 3cb403b5c..ec51831dc 100644 --- a/src/icons/flags/pr.svg +++ b/src/icons/flags/pr.svg @@ -4,10 +4,10 @@ - + - - + + diff --git a/src/icons/flags/ps.svg b/src/icons/flags/ps.svg index 82031486a..b33824a5d 100644 --- a/src/icons/flags/ps.svg +++ b/src/icons/flags/ps.svg @@ -4,12 +4,12 @@ - + - + - + diff --git a/src/icons/flags/pt.svg b/src/icons/flags/pt.svg index 2f36b7ee7..445cf7f53 100644 --- a/src/icons/flags/pt.svg +++ b/src/icons/flags/pt.svg @@ -2,38 +2,38 @@ - - + + - - + + - - - + + + - + - - - + + + - + - - - + + + - - - - + + + + - + - - + + @@ -42,7 +42,7 @@ - + diff --git a/src/icons/flags/pw.svg b/src/icons/flags/pw.svg index 089cbceea..9f89c5f14 100644 --- a/src/icons/flags/pw.svg +++ b/src/icons/flags/pw.svg @@ -6,6 +6,6 @@ - + diff --git a/src/icons/flags/py.svg b/src/icons/flags/py.svg index bfbf01f1f..38e2051eb 100644 --- a/src/icons/flags/py.svg +++ b/src/icons/flags/py.svg @@ -2,24 +2,24 @@ - + - + - + - + @@ -146,12 +146,12 @@ - - + + - + - + diff --git a/src/icons/flags/qa.svg b/src/icons/flags/qa.svg index bd493c381..901f3fa76 100644 --- a/src/icons/flags/qa.svg +++ b/src/icons/flags/qa.svg @@ -1,4 +1,4 @@ - + diff --git a/src/icons/flags/re.svg b/src/icons/flags/re.svg index 3225dddf2..64e788e01 100644 --- a/src/icons/flags/re.svg +++ b/src/icons/flags/re.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/rs.svg b/src/icons/flags/rs.svg index 120293ab0..2f971025b 100644 --- a/src/icons/flags/rs.svg +++ b/src/icons/flags/rs.svg @@ -4,146 +4,146 @@ - + - + - + - - + + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + @@ -154,23 +154,23 @@ - + - + - + - + - + - + @@ -180,21 +180,21 @@ - + - + - + - - + + - - + + - - + + @@ -205,88 +205,88 @@ - - + + - + - + - - - + + + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - - - + + + - - + + - + - + - + diff --git a/src/icons/flags/ru.svg b/src/icons/flags/ru.svg index f4d27efc9..cf243011a 100644 --- a/src/icons/flags/ru.svg +++ b/src/icons/flags/ru.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/icons/flags/rw.svg b/src/icons/flags/rw.svg index 6cc669ed2..06e26ae44 100644 --- a/src/icons/flags/rw.svg +++ b/src/icons/flags/rw.svg @@ -2,7 +2,7 @@ - + diff --git a/src/icons/flags/sa.svg b/src/icons/flags/sa.svg index 660396a70..c0a148663 100644 --- a/src/icons/flags/sa.svg +++ b/src/icons/flags/sa.svg @@ -4,22 +4,22 @@ - + - - - - + + + + - - - - - - - - + + + + + + + + diff --git a/src/icons/flags/sb.svg b/src/icons/flags/sb.svg index a011360d5..6066f94cd 100644 --- a/src/icons/flags/sb.svg +++ b/src/icons/flags/sb.svg @@ -5,9 +5,9 @@ - - - + + + diff --git a/src/icons/flags/sd.svg b/src/icons/flags/sd.svg index b8e4b9735..12818b411 100644 --- a/src/icons/flags/sd.svg +++ b/src/icons/flags/sd.svg @@ -5,9 +5,9 @@ - + - + diff --git a/src/icons/flags/se.svg b/src/icons/flags/se.svg index 0e41780ef..8ba745aca 100644 --- a/src/icons/flags/se.svg +++ b/src/icons/flags/se.svg @@ -1,4 +1,4 @@ - + diff --git a/src/webui/www/private/images/flags/ac.svg b/src/icons/flags/sh-ac.svg similarity index 61% rename from src/webui/www/private/images/flags/ac.svg rename to src/icons/flags/sh-ac.svg index b1ae9ac52..22b365832 100644 --- a/src/webui/www/private/images/flags/ac.svg +++ b/src/icons/flags/sh-ac.svg @@ -1,90 +1,90 @@ - + - + - + - + - + - + - - - - + + + + - - - + + + - + - + - - + + - + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - + - - - - - - - + + + + + + + - + - + @@ -100,68 +100,68 @@ - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - - - - - + + + + + - + - - + + - + - + - - + + - - + + - + @@ -171,51 +171,51 @@ - + - + - + - - + + - + - + - + - + - - + + - - - + + + - - + + - + - - - - + + + + - - - + + + @@ -223,10 +223,10 @@ - + - - + + @@ -251,10 +251,10 @@ - + - + @@ -271,7 +271,7 @@ - + @@ -337,198 +337,198 @@ - + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - - - + + + - + - + - + - + - - - - + + + + - - + + - - + + - - + + - + - - + + - - - + + + - + - + - - + + @@ -538,134 +538,134 @@ - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - + - - + + - + - - - + + + - + - - + + - + - + - + - + - - - - + + + + - - + + - - - + + + - - + + - + - - + + - - - + + + - + - + - - + + @@ -675,8 +675,8 @@ - - + + diff --git a/src/icons/flags/sh-hl.svg b/src/icons/flags/sh-hl.svg new file mode 100644 index 000000000..b92e703f2 --- /dev/null +++ b/src/icons/flags/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webui/www/private/images/flags/ta.svg b/src/icons/flags/sh-ta.svg similarity index 81% rename from src/webui/www/private/images/flags/ta.svg rename to src/icons/flags/sh-ta.svg index b68ad23c6..a103aac05 100644 --- a/src/webui/www/private/images/flags/ta.svg +++ b/src/icons/flags/sh-ta.svg @@ -1,38 +1,38 @@ - - + + - - + + - + - + - + - - + + - - - - + + + + - + - - + + @@ -40,10 +40,10 @@ - - + + - + @@ -51,22 +51,22 @@ - - + + - + - - - + + + - - + + - + - + diff --git a/src/icons/flags/sh.svg b/src/icons/flags/sh.svg index 353915d3e..7aba0aec8 100644 --- a/src/icons/flags/sh.svg +++ b/src/icons/flags/sh.svg @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/src/icons/flags/si.svg b/src/icons/flags/si.svg index f2aea0168..66a390dcd 100644 --- a/src/icons/flags/si.svg +++ b/src/icons/flags/si.svg @@ -4,15 +4,15 @@ - + - + - - - - + + + + diff --git a/src/icons/flags/sk.svg b/src/icons/flags/sk.svg index a1953fa67..81476940e 100644 --- a/src/icons/flags/sk.svg +++ b/src/icons/flags/sk.svg @@ -2,8 +2,8 @@ - - + + - + diff --git a/src/icons/flags/sm.svg b/src/icons/flags/sm.svg index 0892990b2..00e9286c4 100644 --- a/src/icons/flags/sm.svg +++ b/src/icons/flags/sm.svg @@ -5,10 +5,10 @@ - - - - + + + + @@ -23,19 +23,19 @@ - - + + - - + + - - - - + + + + @@ -50,21 +50,21 @@ - - + + - + - + - + diff --git a/src/icons/flags/so.svg b/src/icons/flags/so.svg index ae582f198..a581ac63c 100644 --- a/src/icons/flags/so.svg +++ b/src/icons/flags/so.svg @@ -4,8 +4,8 @@ - + - + diff --git a/src/icons/flags/ss.svg b/src/icons/flags/ss.svg index 73804d80d..b257aa0b3 100644 --- a/src/icons/flags/ss.svg +++ b/src/icons/flags/ss.svg @@ -1,7 +1,7 @@ - + diff --git a/src/icons/flags/st.svg b/src/icons/flags/st.svg index f2e75c141..1294bcb70 100644 --- a/src/icons/flags/st.svg +++ b/src/icons/flags/st.svg @@ -2,9 +2,9 @@ - + - + diff --git a/src/icons/flags/sv.svg b/src/icons/flags/sv.svg index 3a63913d0..c811e912f 100644 --- a/src/icons/flags/sv.svg +++ b/src/icons/flags/sv.svg @@ -1,30 +1,30 @@ - + - + - - - - - + + + + + - + - + - + - + @@ -33,14 +33,14 @@ - + - + - + @@ -48,23 +48,23 @@ - - - + + + - - - - + + + + - + - - - - + + + + @@ -74,11 +74,11 @@ - + - - + + @@ -96,10 +96,10 @@ - - - - + + + + @@ -477,7 +477,7 @@ - + @@ -533,21 +533,21 @@ - + - - - - + + + + - - + + - + @@ -562,33 +562,33 @@ - + - - + + - + - - - - - - + + + + + + - + - + - - - - - + + + + + diff --git a/src/icons/flags/sx.svg b/src/icons/flags/sx.svg index 84844e0f2..18f7a1397 100644 --- a/src/icons/flags/sx.svg +++ b/src/icons/flags/sx.svg @@ -5,36 +5,36 @@ - - - - - - + + + + + + - - + + - + - - + + - + - + @@ -44,7 +44,7 @@ - + diff --git a/src/icons/flags/sy.svg b/src/icons/flags/sy.svg index 29636ae06..522555052 100644 --- a/src/icons/flags/sy.svg +++ b/src/icons/flags/sy.svg @@ -1,5 +1,5 @@ - + diff --git a/src/icons/flags/sz.svg b/src/icons/flags/sz.svg index 5eef69140..294a2cc1a 100644 --- a/src/icons/flags/sz.svg +++ b/src/icons/flags/sz.svg @@ -2,7 +2,7 @@ - + @@ -13,7 +13,7 @@ - + @@ -22,13 +22,13 @@ - + - + - + - + diff --git a/src/icons/flags/tc.svg b/src/icons/flags/tc.svg index 89d29bbf8..63f13c359 100644 --- a/src/icons/flags/tc.svg +++ b/src/icons/flags/tc.svg @@ -1,14 +1,14 @@ - + - - + + - + @@ -27,7 +27,7 @@ - + @@ -35,10 +35,10 @@ - + - - + + diff --git a/src/icons/flags/tf.svg b/src/icons/flags/tf.svg index 88323d2cd..fba233563 100644 --- a/src/icons/flags/tf.svg +++ b/src/icons/flags/tf.svg @@ -6,7 +6,7 @@ - + diff --git a/src/icons/flags/tg.svg b/src/icons/flags/tg.svg index e20f40d8d..c63a6d1a9 100644 --- a/src/icons/flags/tg.svg +++ b/src/icons/flags/tg.svg @@ -8,7 +8,7 @@ - + diff --git a/src/icons/flags/tj.svg b/src/icons/flags/tj.svg index d2ba73338..9fba246cd 100644 --- a/src/icons/flags/tj.svg +++ b/src/icons/flags/tj.svg @@ -10,10 +10,10 @@ - + - + diff --git a/src/icons/flags/tk.svg b/src/icons/flags/tk.svg index 65bab1372..05d3e86ce 100644 --- a/src/icons/flags/tk.svg +++ b/src/icons/flags/tk.svg @@ -1,5 +1,5 @@ - + diff --git a/src/icons/flags/tl.svg b/src/icons/flags/tl.svg index bcfc1612d..3d0701a2c 100644 --- a/src/icons/flags/tl.svg +++ b/src/icons/flags/tl.svg @@ -6,8 +6,8 @@ - - + + diff --git a/src/icons/flags/tm.svg b/src/icons/flags/tm.svg index 07c1a2f6c..8b656cc2b 100644 --- a/src/icons/flags/tm.svg +++ b/src/icons/flags/tm.svg @@ -34,7 +34,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -200,5 +200,5 @@ - + diff --git a/src/icons/flags/tn.svg b/src/icons/flags/tn.svg index 6a1989b4f..5735c1984 100644 --- a/src/icons/flags/tn.svg +++ b/src/icons/flags/tn.svg @@ -1,4 +1,4 @@ - + diff --git a/src/icons/flags/tr.svg b/src/icons/flags/tr.svg index a92804f88..b96da21f0 100644 --- a/src/icons/flags/tr.svg +++ b/src/icons/flags/tr.svg @@ -1,7 +1,7 @@ - + diff --git a/src/icons/flags/tt.svg b/src/icons/flags/tt.svg index 14adbe041..bc24938cf 100644 --- a/src/icons/flags/tt.svg +++ b/src/icons/flags/tt.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/tz.svg b/src/icons/flags/tz.svg index 751c16720..a2cfbca42 100644 --- a/src/icons/flags/tz.svg +++ b/src/icons/flags/tz.svg @@ -6,8 +6,8 @@ - - - + + + diff --git a/src/icons/flags/ug.svg b/src/icons/flags/ug.svg index 78252a42d..737eb2ce1 100644 --- a/src/icons/flags/ug.svg +++ b/src/icons/flags/ug.svg @@ -4,26 +4,26 @@ - + - + - + - - - - + + + + - + - - + + - - + + diff --git a/src/icons/flags/um.svg b/src/icons/flags/um.svg index e04159498..9e9eddaa4 100644 --- a/src/icons/flags/um.svg +++ b/src/icons/flags/um.svg @@ -5,5 +5,5 @@ - + diff --git a/src/icons/flags/un.svg b/src/icons/flags/un.svg index e47533703..e57793bc7 100644 --- a/src/icons/flags/un.svg +++ b/src/icons/flags/un.svg @@ -1,16 +1,16 @@ - - + + - - - - + + + + - - + + diff --git a/src/icons/flags/us.svg b/src/icons/flags/us.svg index 615946d4b..9cfd0c927 100644 --- a/src/icons/flags/us.svg +++ b/src/icons/flags/us.svg @@ -5,5 +5,5 @@ - + diff --git a/src/icons/flags/uy.svg b/src/icons/flags/uy.svg index 4a54b857a..62c36f8e5 100644 --- a/src/icons/flags/uy.svg +++ b/src/icons/flags/uy.svg @@ -1,7 +1,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/src/icons/flags/uz.svg b/src/icons/flags/uz.svg index aaf9382a4..0ccca1b1b 100644 --- a/src/icons/flags/uz.svg +++ b/src/icons/flags/uz.svg @@ -5,7 +5,7 @@ - + diff --git a/src/icons/flags/va.svg b/src/icons/flags/va.svg index 25e6a9756..87e0fbbdc 100644 --- a/src/icons/flags/va.svg +++ b/src/icons/flags/va.svg @@ -2,23 +2,23 @@ - + - - + + - - - - + + + + - + @@ -52,7 +52,7 @@ - + @@ -174,13 +174,13 @@ - + - + diff --git a/src/icons/flags/vc.svg b/src/icons/flags/vc.svg index 450f6f0a2..f26c2d8da 100644 --- a/src/icons/flags/vc.svg +++ b/src/icons/flags/vc.svg @@ -3,6 +3,6 @@ - + diff --git a/src/icons/flags/vg.svg b/src/icons/flags/vg.svg index 4d2c3976e..0ee90fb28 100644 --- a/src/icons/flags/vg.svg +++ b/src/icons/flags/vg.svg @@ -11,15 +11,15 @@ - - - + + + - + @@ -34,10 +34,10 @@ - - + + - + @@ -54,6 +54,6 @@ - + diff --git a/src/icons/flags/vi.svg b/src/icons/flags/vi.svg index 3a64338e8..427025779 100644 --- a/src/icons/flags/vi.svg +++ b/src/icons/flags/vi.svg @@ -8,11 +8,11 @@ - - + + - - + + @@ -21,8 +21,8 @@ - + - - + + diff --git a/src/icons/flags/vn.svg b/src/icons/flags/vn.svg index 24bedc503..7e4bac8f4 100644 --- a/src/icons/flags/vn.svg +++ b/src/icons/flags/vn.svg @@ -4,7 +4,7 @@ - + diff --git a/src/icons/flags/vu.svg b/src/icons/flags/vu.svg index efcff8954..91e1236a0 100644 --- a/src/icons/flags/vu.svg +++ b/src/icons/flags/vu.svg @@ -10,11 +10,11 @@ - + - + diff --git a/src/icons/flags/wf.svg b/src/icons/flags/wf.svg index 57feb3a59..054c57df9 100644 --- a/src/icons/flags/wf.svg +++ b/src/icons/flags/wf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/xk.svg b/src/icons/flags/xk.svg index de6ef4da2..551e7a414 100644 --- a/src/icons/flags/xk.svg +++ b/src/icons/flags/xk.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/ye.svg b/src/icons/flags/ye.svg index 61f0ed610..1c9e6d639 100644 --- a/src/icons/flags/ye.svg +++ b/src/icons/flags/ye.svg @@ -2,6 +2,6 @@ - + diff --git a/src/icons/flags/yt.svg b/src/icons/flags/yt.svg index 5ea2f648c..e7776b307 100644 --- a/src/icons/flags/yt.svg +++ b/src/icons/flags/yt.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/icons/flags/za.svg b/src/icons/flags/za.svg index aa54beb87..d563adb90 100644 --- a/src/icons/flags/za.svg +++ b/src/icons/flags/za.svg @@ -4,14 +4,14 @@ - + - + - - + + - + diff --git a/src/icons/flags/zm.svg b/src/icons/flags/zm.svg index b8fdd63cb..13239f5e2 100644 --- a/src/icons/flags/zm.svg +++ b/src/icons/flags/zm.svg @@ -4,17 +4,17 @@ - + - + - - + + diff --git a/src/icons/flags/zw.svg b/src/icons/flags/zw.svg index 5c1974693..6399ab4ab 100644 --- a/src/icons/flags/zw.svg +++ b/src/icons/flags/zw.svg @@ -8,14 +8,14 @@ - + - - + + - + diff --git a/src/icons/icons.qrc b/src/icons/icons.qrc index 6200dd68f..5e22aadc6 100644 --- a/src/icons/icons.qrc +++ b/src/icons/icons.qrc @@ -24,7 +24,6 @@ filter-inactive.svg filter-stalled.svg firewalled.svg - flags/ac.svg flags/ad.svg flags/ae.svg flags/af.svg @@ -212,6 +211,7 @@ flags/nz.svg flags/om.svg flags/pa.svg + flags/pc.svg flags/pe.svg flags/pf.svg flags/pg.svg @@ -237,6 +237,9 @@ flags/sd.svg flags/se.svg flags/sg.svg + flags/sh-ac.svg + flags/sh-hl.svg + flags/sh-ta.svg flags/sh.svg flags/si.svg flags/sj.svg @@ -252,7 +255,6 @@ flags/sx.svg flags/sy.svg flags/sz.svg - flags/ta.svg flags/tc.svg flags/td.svg flags/tf.svg diff --git a/src/icons/slow.svg b/src/icons/slow.svg index f721bd639..68aa27b32 100644 --- a/src/icons/slow.svg +++ b/src/icons/slow.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/icons/slow_off.svg b/src/icons/slow_off.svg index ce913cd61..fe6ca9b1f 100644 --- a/src/icons/slow_off.svg +++ b/src/icons/slow_off.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/icons/speedometer.svg b/src/icons/speedometer.svg index 4b56c1658..628a2dbb7 100644 --- a/src/icons/speedometer.svg +++ b/src/icons/speedometer.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/lang/qbittorrent_ar.ts b/src/lang/qbittorrent_ar.ts index e26d39e24..645213f8a 100644 --- a/src/lang/qbittorrent_ar.ts +++ b/src/lang/qbittorrent_ar.ts @@ -14,75 +14,75 @@ حَول - + Authors المؤلفون - + Current maintainer مسؤول التطوير الحالي - + Greece اليونان - - + + Nationality: الجنسية: - - + + E-mail: البريد الإلكتروني: - - + + Name: الاسم: - + Original author الكاتب الأصلي - + France فرنسا - + Special Thanks شكر خاص - + Translators المترجمون - + License الرخصة - + Software Used البرمجيات المستخدمة - + qBittorrent was built with the following libraries: كيوبت‎تورنت مبني على المكتبات البرمجية التالية: - + Copy to clipboard أنسخ إلى الحافظة @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - حقوق النشر %1 2006-2024 مشروع كيوبت‎تورنت + Copyright %1 2006-2025 The qBittorrent project + حقوق النشر %1 2006-2025 مشروع كيوبت‎تورنت @@ -166,15 +166,10 @@ حفظ في - + Never show again لا تعرض مرة أخرى - - - Torrent settings - إعدادات التورنت - Set as default category @@ -191,12 +186,12 @@ بدء التورنت - + Torrent information معلومات التورنت - + Skip hash check تخطي التحقق من البيانات @@ -205,6 +200,11 @@ Use another path for incomplete torrent استخدم مسارًا آخر للتورنت غير المكتمل + + + Torrent options + خيارات التورنت + Tags: @@ -231,75 +231,75 @@ شرط التوقف: - - + + None بدون - - + + Metadata received استلمت البيانات الوصفية - + Torrents that have metadata initially will be added as stopped. - + ستتم إضافة التورينت التي تحتوي على بيانات وصفية في البداية على أنها متوقفة. - - + + Files checked فُحصت الملفات - + Add to top of queue أضفه إلى قمة الصف - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog في حالة الاختيار, ملف torrent. لن يتم حذفه بغض النظر عن إعدادات التنزيل. - + Content layout: تخطيط المحتوى: - + Original الأصلي - + Create subfolder إنشاء مجلد فرعي - + Don't create subfolder لا تقم بإنشاء مجلد فرعي - + Info hash v1: معلومات التحقق من البيانات (الهاش) الإصدار 1: - + Size: الحجم: - + Comment: التعليق: - + Date: التاريخ: @@ -329,151 +329,147 @@ تذكّر آخر مسار حفظ تم استخدامه - + Do not delete .torrent file لا تقم بحذف ملف بامتداد torrent. - + Download in sequential order تنزيل بترتيب تسلسلي - + Download first and last pieces first تنزيل أول وأخر قطعة أولًا - + Info hash v2: معلومات التحقق من البيانات (الهاش) الإصدار 2: - + Select All تحديد الكل - + Select None لا تحدد شيء - + Save as .torrent file... أحفظ كملف تورنت... - + I/O Error خطأ إدخال/إخراج - + Not Available This comment is unavailable غير متوفر - + Not Available This date is unavailable غير متوفر - + Not available غير متوفر - + Magnet link رابط مغناطيسي - + Retrieving metadata... يجلب البيانات الوصفية... - - + + Choose save path اختر مسار الحفظ - + No stop condition is set. لم يتم وضع شرط للتوقف - + Torrent will stop after metadata is received. سيتوقف التورنت بعد استقبال البيانات الوصفية - Torrents that have metadata initially aren't affected. - التورنت الذي يحتوي على بيانات وصفية ابتدائية لن يتأثر - - - + Torrent will stop after files are initially checked. سيتوقف التورنت بعد الملفات التي تم فحصحها - + This will also download metadata if it wasn't there initially. سيؤدي هذا أيضًا إلى تنزيل البيانات الوصفية إذا لم تكن موجودة في البداية. - - + + N/A لا يوجد - + %1 (Free space on disk: %2) %1 (المساحة الخالية من القرص: %2) - + Not available This size is unavailable. غير متوفر - + Torrent file (*%1) ملف تورنت (*%1) - + Save as torrent file أحفظ كملف تورنت - + Couldn't export torrent metadata file '%1'. Reason: %2. تعذر تصدير ملف بيانات التعريف للتورنت '%1'. السبب: %2. - + Cannot create v2 torrent until its data is fully downloaded. لا يمكن إنشاء إصدار 2 للتورنت حتى يتم تنزيل بياناته بالكامل. - + Filter files... تصفية الملفات... - + Parsing metadata... يحلّل البيانات الوصفية... - + Metadata retrieval complete اكتمل جلب البيانات الوصفية @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" تحميل التورنت... المصدر: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" فشل أضافة التورنت. المصدر: "%1". السبب: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + تم تعطيل دمج التتبع - + Trackers cannot be merged because it is a private torrent - + لا يمكن دمج التتبع بسبب ان التورينت خاص - + Trackers are merged from new source + تم دمج التتبع من مصدر جديد + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -596,7 +592,7 @@ Torrent share limits - حدود مشاركة التورنت + حدود مشاركة التورنت @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB م.بايت - + Recheck torrents on completion إعادة تأكيد البيانات بعد اكتمال التنزيل - - + + ms milliseconds ملي ثانية - + Setting الخيار - + Value Value set for this setting القيمة - + (disabled) (مُعطّل) - + (auto) (آلي) - + + min minutes دقيقة - + All addresses جميع العناوين - + qBittorrent Section قسم كيوبت‎تورنت - - + + Open documentation فتح التعليمات - + All IPv4 addresses جميع عناوين IPv4 - + All IPv6 addresses جميع عناوين IPv6 - + libtorrent Section قسم libtorrent - + Fastresume files ملفات Fastresume - + SQLite database (experimental) قاعدة بيانات SQLite (تجريبية) - + Resume data storage type (requires restart) استئناف نوع تخزين البيانات (يتطلب إعادة التشغيل) - + Normal عادي - + Below normal أقل من المعتاد - + Medium متوسط - + Low منخفض - + Very low منخفض جدًا - + Physical memory (RAM) usage limit حد استخدام الذاكرة الفعلية (RAM). - + Asynchronous I/O threads مواضيع الإدخال/الإخراج غير متزامنة - + Hashing threads تجزئة المواضيع - + File pool size حجم تجمع الملفات - + Outstanding memory when checking torrents ذاكرة مميزة عند فحص التورنتات - + Disk cache ذاكرة التخزين المؤقت على القرص - - - - + + + + + s seconds ث - + Disk cache expiry interval مدة بقاء الذاكرة المؤقتة للقرص - + Disk queue size حجم صف القرص - - + + Enable OS cache مكّن النظام من خاصية الـcache - + Coalesce reads & writes اندماج القراءة والكتابة - + Use piece extent affinity استخدم مدى تقارب القطعة - + Send upload piece suggestions إرسال اقتراحات للقطع المُراد رفعها - - - - + + + + + 0 (disabled) 0 (معطَّل) - + Save resume data interval [0: disabled] How often the fastresume file is saved. حفظ الفاصل الزمني للاستئناف [0: معطل] - + Outgoing ports (Min) [0: disabled] المنافذ الصادرة (الحد الأدنى) [0: معطلة] - + Outgoing ports (Max) [0: disabled] المنافذ الصادرة (الحد الأقصى) [0: معطلة] - + 0 (permanent lease) 0 (إيجار دائم) - + UPnP lease duration [0: permanent lease] مدة تأجير UPnP [0: عقد إيجار دائم] - + Stop tracker timeout [0: disabled] إيقاف مهلة التتبع [0: معطل] - + Notification timeout [0: infinite, -1: system default] مهلة الإشعار [0: لا نهائي، -1: النظام الافتراضي] - + Maximum outstanding requests to a single peer الحد الأقصى للطلبات للقرين الواحد - - - - - + + + + + KiB ك.بايت - + (infinite) لا نهائي - + (system default) (الوضع الافتراضي للنظام) - + + Delete files permanently + حذف الملفات نهائيا + + + + Move files to trash (if possible) + نقل الملفات إلى سلة المهملات (إذا كان ذلك ممكنا) + + + + Torrent content removing mode + وضعية إزالة محتوى التورنت + + + This option is less effective on Linux هذا الخيار أقل فعالية على لينكس - + Process memory priority - + أولوية ذاكرة العملية - + Bdecode depth limit حد عمق Bdecode - + Bdecode token limit حد رمز Bdecode - + Default الوضع الإفتراضي - + Memory mapped files ملفات الذاكرة المعينة - + POSIX-compliant متوافق مع POSIX - + + Simple pread/pwrite + pread/pwrite بسيطة + + + Disk IO type (requires restart) نوع إدخال القرص Disk IO (يتطلب إعادة التشغيل) - - + + Disable OS cache تعطيل ذاكرة التخزين المؤقت لنظام التشغيل - + Disk IO read mode وضع قراءة إدخال القرص Disk IO - + Write-through الكتابة من خلال - + Disk IO write mode وضع الكتابة إدخال القرص Disk IO - + Send buffer watermark إرسال علامة مائية المخزن المؤقت - + Send buffer low watermark إرسال علامة مائية منخفضة المخزن المؤقت - + Send buffer watermark factor إرسال عامل العلامة المائية المخزن المؤقت - + Outgoing connections per second الاتصالات الصادرة في الثانية - - + + 0 (system default) 0 (افتراضي للنظام) - + Socket send buffer size [0: system default] حجم المخزن المؤقت لإرسال المقبس [0: النظام الافتراضي] - + Socket receive buffer size [0: system default] يتلقى المقبس حجم المخزن المؤقت [0: النظام الافتراضي] - + Socket backlog size حجم تراكم مأخذ التوصيل - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + الفاصل الزمني لحفظ الإحصائيات [0: معطل] + + + .torrent file size limit الحد الأقصى لحجم ملف torrent. - + Type of service (ToS) for connections to peers نوع الخدمة (ToS) للاتصالات مع الأقران - + Prefer TCP أفضل TCP - + Peer proportional (throttles TCP) القرين المتناسب (سرّع TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) دعم اسم نطاق الإنترنت الدولي (IDN) - + Allow multiple connections from the same IP address السماح باتصالات متعددة من نفس عنوان الآي بي - + Validate HTTPS tracker certificates تحقق من صحة شهادات متتبع HTTPS - + Server-side request forgery (SSRF) mitigation التخفيف من تزوير الطلب من جانب الخادم (SSRF) - + Disallow connection to peers on privileged ports عدم السماح بالاتصال بالقرناء على المنافذ ذات الامتيازات - + It appends the text to the window title to help distinguish qBittorent instances - + يقوم بإلحاق النص بعنوان النافذة للمساعدة في التمييز بين مثيلات qBittorent - + Customize application instance name - + تخصيص اسم مثيل التطبيق - + It controls the internal state update interval which in turn will affect UI updates فهو يتحكم في الفاصل الزمني لتحديث الحالة الداخلية والذي سيؤثر بدوره على تحديثات واجهة المستخدم - + Refresh interval الفاصل الزمني للتحديث - + Resolve peer host names اظهار اسم الجهاز للقرين - + IP address reported to trackers (requires restart) تم الإبلاغ عن عنوان IP للمتتبعين (يتطلب إعادة التشغيل) - + + Port reported to trackers (requires restart) [0: listening port] + تم الإبلاغ عن المنفذ إلى المتتبعين (يتطلب إعادة التشغيل) [0: منفذ الاستماع] + + + Reannounce to all trackers when IP or port changed إعادة الاتصال بجميع المتتبعات عند تغيير IP أو المنفذ - + Enable icons in menus تفعيل الرموز في القوائم - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker تفعيل إعادة توجيه المنفذ لتتبع المضمن - + Enable quarantine for downloaded files - + تمكين العزل للملفات التي تم تنزيلها - + Enable Mark-of-the-Web (MOTW) for downloaded files - + تمكين Mark-of-the-Web (MOTW) للملفات التي تم تنزيلها - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + يؤثر على التحقق من الشهادات وأنشطة البروتوكولات غير المتعلقة بالتورنت (مثل خلاصات RSS، تحديثات البرامج، ملفات التورنت، قاعدة بيانات geoip، إلخ). + + + + Ignore SSL errors + تجاهل أخطاء SSL + + + (Auto detect if empty) - + (الكشف التلقائي إذا كان فارغًا) - + Python executable path (may require restart) - + مسار بايثون القابل للتنفيذ (قد يتطلب إعادة التشغيل) - + + Start BitTorrent session in paused state + بدء جلسة BitTorrent في حالة الإيقاف المؤقت + + + + sec + seconds + ث + + + + -1 (unlimited) + -1 (غير محدود) + + + + BitTorrent session shutdown timeout [-1: unlimited] + مهلة إيقاف جلسة BitTorrent [-1: غير محدود] + + + Confirm removal of tracker from all torrents - + تأكيد إزالة المتتبع (التراكر) من جميع التورينتات - + Peer turnover disconnect percentage النسبة المئوية لفصل دوران الأقران - + Peer turnover threshold percentage النسبة المئوية لبداية دوران الأقران - + Peer turnover disconnect interval الفترة الزمنية لفصل دوران الأقران - + Resets to default if empty - + يعيد التعيين إلى الوضع الافتراضي إذا كان فارغًا - + DHT bootstrap nodes - + عقد التمهيد DHT - + I2P inbound quantity I2P الكمية الواردة - + I2P outbound quantity الكمية الصادرة I2P - + I2P inbound length طول I2P الوارد - + I2P outbound length طول I2P الصادر - + Display notifications عرض الإشعارات - + Display notifications for added torrents عرض الإشعارات للتورنت المضافة. - + Download tracker's favicon تنزيل ايقونة التراكر - + Save path history length طول سجل مسار الحفظ - + Enable speed graphs تفعيل الرسم البياني لسرعة النقل - + Fixed slots فتحات ثابتة - + Upload rate based معدل الرفع على أساس - + Upload slots behavior سلوك فتحات الرفع - + Round-robin القرين الآلي الذي لا يبذر - + Fastest upload أسرع رفع - + Anti-leech مكافحة المُستهلكين - + Upload choking algorithm رفع خوارزمية الاختناق - + Confirm torrent recheck تأكيد إعادة التحقق من التورنت - + Confirm removal of all tags تأكيد إزالة جميع العلامات - + Always announce to all trackers in a tier أعلن دائمًا لجميع المتتبعات في المستوى - + Always announce to all tiers أعلن دائما لجميع المستويات - + Any interface i.e. Any network interface أي واجهة - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm خوارزمية الوضع المختلط %1-TCP - + Resolve peer countries اظهار أعلام الدول للقرناء - + Network interface واجهة الشبكة - + Optional IP address to bind to عنوان آي بي اختياري للربط به - + Max concurrent HTTP announces يعلن أقصى HTTP متزامن - + Enable embedded tracker تمكين المتتبع الداخلي - + Embedded tracker port منفذ المتتبع الداخلي + + AppController + + + + Invalid directory path + مسار المجلد غير صحيح + + + + Directory does not exist + المجلد غير موجود + + + + Invalid mode, allowed values: %1 + وضع غير صالح، القيم المسموح بها: %1 + + + + cookies must be array + يجب أن تكون ملفات تعريف الارتباط مصفوفة. + + Application - + Running in portable mode. Auto detected profile folder at: %1 يعمل في الوضع المحمول. مجلد ملف التعريف المكتشف تلقائيًا في: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. اكتشاف علامة سطر أوامر متكررة: "%1". يشير الوضع المحمول إلى استئناف سريع نسبي. - + Using config directory: %1 استخدام دليل التكوين: %1 - + 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. شكرا لاستخدامك كيوبت‎تورنت. - + Torrent: %1, sending mail notification التورنت: %1، يرسل إشعار البريد الإلكتروني - + Add torrent failed - + فشل إضافة تورنت - + Couldn't add torrent '%1', reason: %2. - + تعذّر إضافة التورنت '%1'، السبب: %2. - + The WebUI administrator username is: %1 - + اسم المستخدم لمسؤول واجهة الويب هو: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + لم يتم تعيين كلمة مرور لمسؤول واجهة الويب. تم تعيين كلمة مرور مؤقتة لهذه الجلسة: %1 - + You should set your own password in program preferences. - + يجب عليك تعيين كلمة مرور خاصة بك في إعدادات البرنامج. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + واجهة الويب للمستخدم معطلة! لتفعيل واجهة الويب للمستخدم، قم بتحرير ملف الإعدادات يدويًا. - + Running external program. Torrent: "%1". Command: `%2` تشغيل برنامج خارجي تورنت: "%1". الأمر: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` فشل في تشغيل برنامج خارجي. تورنت: "%1". الأمر: `%2` - + Torrent "%1" has finished downloading انتهى تنزيل التورنت "%1". - + WebUI will be started shortly after internal preparations. Please wait... سيتم بدء تشغيل WebUI بعد وقت قصير من الاستعدادات الداخلية. انتظر من فضلك... - - + + Loading torrents... جارِ تحميل التورنت... - + E&xit &خروج - + I/O Error i.e: Input/Output Error خطأ إدخال/إخراج - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ السبب: %2 - + Torrent added تمت إضافة تورنت - + '%1' was added. e.g: xxx.avi was added. تم إضافة '%1' - + Download completed انتهى التحميل - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + تم بدء %1 من qbittorrent. معرف العملية: %2 - + + This is a test email. + هذا بريد إلكتروني اختباري. + + + + Test email + بريد إلكتروني اختباري + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. انتهى تنزيل '%1'. - + Information معلومات - + To fix the error, you may need to edit the config file manually. - + لإصلاح الخطأ، قد تحتاج إلى تعديل ملف الإعدادات يدويًا. - + To control qBittorrent, access the WebUI at: %1 للتحكم في كيوبت‎تورنت، افتح واجهة الوِب الرسومية على: %1 - + Exit خروج - + Recursive download confirmation تأكيد متكرر للتنزيل - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? يحتوي ملف التورنت '%1' على ملفات .torrent، هل تريد متابعة تنزيلاتها؟ - + Never أبدًا - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" تنزيل متكرر لملف .torren. داخل التورنت. تورنت المصدر: "%1". الملف: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" فشل في تعيين حد استخدام الذاكرة الفعلية (RAM). رمز الخطأ: %1. رسالة الخطأ: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" فشل في تعيين الحد الأقصى لاستخدام الذاكرة الفعلية (RAM). الحجم المطلوب: %1. الحد الأقصى للنظام: %2. رمز الخطأ: %3. رسالة الخطأ: "%4" - + qBittorrent termination initiated بدأ إنهاء qBittorrent - + qBittorrent is shutting down... كيوبت‎تورنت قيد الإغلاق ... - + Saving torrent progress... حفظ تقدم التورنت... - + qBittorrent is now ready to exit qBittorrent جاهز الآن للخروج @@ -1609,12 +1715,12 @@ أولوية: - + Must Not Contain: يجب ألا تحتوي: - + Episode Filter: مُصفّي الحلقات: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ت&صدير... - + 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 رقم الموسم يجب ألا يكون قيمة صفرية - + 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 من الموسم الأول - + Episode number is a mandatory positive value رقم الحلقة يجب أن يكون قيمة موجبة - + Rules القواعد - + Rules (legacy) القواعد (الموروثة) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons المدى اللانهائي: <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 تأكيد حذف القاعدة - + Invalid action إجراء غير صالح - + The list is empty, there is nothing to export. القائمة فارغة، لا يوجد شيء لاستخراجه. - + Export RSS rules استخراج قواعد تغذية RSS - + I/O Error خطأ في الإدخال/الإخراج - + Failed to create the destination file. Reason: %1 فشل في إنشاء الملف الهدف. السبب: %1 - + Import RSS rules استيراد قواعد تغذية RSS - + Failed to import the selected rules file. Reason: %1 فشل في استيراد ملف القواعد المُختار. السبب: %1 - + Add new rule... اضافة قاعدة جديدة... - + Delete rule حذف القاعدة - + Rename rule... تغيير تسمية القاعدة... - + Delete selected rules حذف القواعد المختارة - + Clear downloaded episodes... مسح الحلقات المُنزّلة... - + Rule renaming تغيير تسمية القاعدة - + Please type the new rule name اكتب اسم القاعدة الجديدة - + Clear downloaded episodes مسح الحلقات المُنزّلة - + Are you sure you want to clear the list of downloaded episodes for the selected rule? هل أنت متأكد من رغبتك في مسح قائمة الحلقات التي تم تنزيلها للقاعدة المُختارة؟ - + Regex mode: use Perl-compatible regular expressions وضع Regex: استخدم التعبيرات العادية المتوافقة مع Perl - - + + Position %1: %2 مكان %1: %2 - + Wildcard mode: you can use وضع البدل: يمكنك استخدام - - + + Import error خطأ في الاستيراد - + Failed to read the file. %1 فشل في قراءة الملف. %1 - + ? to match any single character ؟ لتتناسب مع أي حرف واحد - + * to match zero or more of any characters * لتناسب صفر أو أكثر من أي حرف - + Whitespaces count as AND operators (all words, any order) تعتبر المسافات البيضاء عوامل تشغيل AND (كل الكلمات ، أي ترتيب) - + | is used as OR operator | يستخدم كعامل OR - + If word order is important use * instead of whitespace. إذا كان ترتيب الكلمات مهمًا ، استخدم * بدلاً من المسافات البيضاء. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) تعبير بجملة %1 فارغة (مثل %2) - + will match all articles. سيطابق جميع المقالات. - + will exclude all articles. سيستبعد جميع المقالات. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" لا يمكن إنشاء مجلد استئناف التورنت: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also لا يمكن تحليل بيانات الاستئناف: التنسيق غير صالح - - + + Cannot parse torrent info: %1 لا يمكن تحليل معلومات التورنت: %1 - + Cannot parse torrent info: invalid format لا يمكن تحليل معلومات التورنت: التنسيق غير صالح - + Mismatching info-hash detected in resume data + تم اكتشاف تجزئة معلومات غير متطابقة في بيانات الاستئناف. + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. تعذر حفظ بيانات التعريف للتورنت في '%1'. خطأ: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. تعذر حفظ بيانات الاستئناف للتورنت في '%1'. خطأ: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 لا يمكن تحليل بيانات الاستئناف: %1 - + Resume data is invalid: neither metadata nor info-hash was found بيانات الاستئناف غير صالحة: لم يتم العثور على البيانات الوصفية ولا تجزئة المعلومات - + Couldn't save data to '%1'. Error: %2 تعذر حفظ البيانات في '%1'. خطأ: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. غير موجود. - + Couldn't load resume data of torrent '%1'. Error: %2 تعذر تحميل بيانات الاستئناف للتورنت '%1'. خطأ: %2 - - + + Database is corrupted. قاعدة البيانات تالفة. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. تعذر تمكين وضع تسجيل دفتر اليومية (WAL) لتسجيل الدخول. الخطأ: %1. - + Couldn't obtain query result. تعذر الحصول على نتيجة الاستعلام. - + WAL mode is probably unsupported due to filesystem limitations. ربما يكون وضع WAL غير مدعوم بسبب قيود نظام الملفات. - + + + Cannot parse resume data: %1 + لا يمكن تحليل بيانات الاستئناف: %1 + + + + + Cannot parse torrent info: %1 + لا يمكن تحليل معلومات التورنت: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 تعذر بدء المعاملة. الخطأ: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. تعذر حفظ بيانات التعريف للتورنت. خطأ: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 تعذر تخزين بيانات الاستئناف للتورنت '%1'. خطأ: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 تعذر حذف بيانات الاستئناف للتورنت '%1'. خطأ: %2 - + Couldn't store torrents queue positions. Error: %1 تعذر تخزين موضع صف التورنتات. خطأ: %1 @@ -2086,457 +2225,504 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 دعم جدول التجزئة الموزع (DHT): %1 - - - - - - - - - + + + + + + + + + ON يعمل - - - - - - - - - + + + + + + + + + OFF متوقف - - + + Local Peer Discovery support: %1 دعم اكتشاف الأقران المحليين: %1 - + Restart is required to toggle Peer Exchange (PeX) support يلزم إعادة التشغيل لتبديل دعم Peer Exchange (PeX). - + Failed to resume torrent. Torrent: "%1". Reason: "%2" فشل في استئناف التورنت. تورنت: "%1". السبب: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" فشل استئناف التورنت: تم اكتشاف معرف تورنت غير متناسق. تورنت: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" تم اكتشاف بيانات غير متناسقة: الفئة مفقودة من ملف التضبيط. سيتم استرداد الفئة ولكن سيتم إعادة ضبط إعداداتها على الوضع الافتراضي. تورنت: "%1". الفئة: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" تم اكتشاف بيانات غير متناسقة: فئة غير صالحة. تورنت: "%1". الفئة: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" تم اكتشاف عدم تطابق بين مسارات الحفظ للفئة المستردة ومسار الحفظ الحالي للتورنت. تم الآن تحويل التورنت إلى الوضع اليدوي. تورنت: "%1". الفئة: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" تم اكتشاف بيانات غير متناسقة: العلامة مفقودة من ملف التضبيط. سيتم استرداد العلامة. تورنت: "%1". العلامة: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" تم اكتشاف بيانات غير متناسقة: وسم غير صالح. تورنت: "%1". العلامة: "%2" - + System wake-up event detected. Re-announcing to all the trackers... تم اكتشاف حدث تنبيه النظام .جارِ إعادة إعلان إلى كافة المتتبعين... - + Peer ID: "%1" معرّف النظير: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 دعم تبادل الأقران (PeX): %1 - - + + Anonymous mode: %1 الوضع المجهول: %1 - - + + Encryption support: %1 دعم التشفير: %1 - - + + FORCED مُجبر - + Could not find GUID of network interface. Interface: "%1" تعذر العثور على GUID لواجهة الشبكة. الواجهة: "%1" - + Trying to listen on the following list of IP addresses: "%1" محاولة الاستماع إلى قائمة عناوين IP التالية: "%1" - + Torrent reached the share ratio limit. وصل تورنت إلى الحد الأقصى لنسبة المشاركة. - - - + Torrent: "%1". تورنت: "%1". - - - - Removed torrent. - تمت إزالة التورنت. - - - - - - Removed torrent and deleted its content. - تمت إزالة التورنت وحذف محتواه. - - - - - - Torrent paused. - توقف التورنت مؤقتًا. - - - - - + Super seeding enabled. تم تفعيل البذر الفائق. - + Torrent reached the seeding time limit. وصل التورنت إلى حد زمني البذر. - + Torrent reached the inactive seeding time limit. وصل التورنت إلى حد زمني للنشر الغير نشط. - + Failed to load torrent. Reason: "%1" فشل تحميل التورنت. السبب: "%1" - + I2P error. Message: "%1". - + خطأ I2P. الرسالة: "%1". - + UPnP/NAT-PMP support: ON دعم UPnP/NAT-PMP: مشغّل - + + Saving resume data completed. + حفظ فترة استئناف البيانات +  + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + حذف التورنت + + + + Removing torrent and deleting its content. + إزالة التورنت وحذف محتواه. + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + تم تعطيل دمج التتبع + + + + Trackers cannot be merged because it is a private torrent + لا يمكن دمج التتبع بسبب ان التورينت خاص + + + + Trackers are merged from new source + تم دمج التتبع من مصدر جديد + + + UPnP/NAT-PMP support: OFF دعم UPnP/NAT-PMP: متوقف - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" فشل تصدير تورنت. تورنت: "%1". الوجهة: "%2". السبب: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 تم إحباط حفظ بيانات الاستئناف. عدد التورنت المعلقة: %1 - + The configured network address is invalid. Address: "%1" عنوان الشبكة الذي تم تضبيطه غير صالح. العنوان %1" - - + + Failed to find the configured network address to listen on. Address: "%1" فشل العثور على عنوان الشبكة الذي تم تضبيطه للاستماع إليه. العنوان "%1" - + The configured network interface is invalid. Interface: "%1" واجهة الشبكة التي تم تضبيطها غير صالحة. الواجهة: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" تم رفض عنوان IP غير صالح أثناء تطبيق قائمة عناوين IP المحظورة. عنوان IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" تمت إضافة تتبع إلى تورنت. تورنت: "%1". المتعقب: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" تمت إزالة المتتبع من التورنت. تورنت: "%1". المتعقب: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" تمت إضافة بذور URL إلى التورنت. تورنت: "%1". عنوان URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" تمت إزالة بذور URL من التورنت. تورنت: "%1". عنوان URL: "%2" - - Torrent paused. Torrent: "%1" - توقف التورنت مؤقتًا. تورنت: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" استئنف التورنت. تورنت: "%1" - + Torrent download finished. Torrent: "%1" انتهى تحميل التورنت. تورنت: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" تم إلغاء حركة التورنت. تورنت: "%1". المصدر: "%2". الوجهة: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination فشل في إدراج نقل التورنت. تورنت: "%1". المصدر: "%2". الوجهة: "%3". السبب: ينتقل التورنت حاليًا إلى الوجهة - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location فشل في إدراج نقل التورنت. تورنت: "%1". المصدر: "%2" الوجهة: "%3". السبب: كلا المسارين يشيران إلى نفس الموقع - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" تحرك سيل في الصف. تورنت: "%1". المصدر: "%2". الوجهة: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" ابدأ في تحريك التورنت. تورنت: "%1". الوجهة: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" فشل حفظ تضبيط الفئات. الملف: "%1". خطأ: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" فشل في تحليل تضبيط الفئات. الملف: "%1". خطأ: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 تم تحليل ملف مرشح IP بنجاح. عدد القواعد المطبقة: %1 - + Failed to parse the IP filter file فشل في تحليل ملف مرشح IP - + Restored torrent. Torrent: "%1" استُعيدت التورنت. تورنت: "%1" - + Added new torrent. Torrent: "%1" تمت إضافة تورنت جديد. تورنت: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" خطأ في التورنت. تورنت: "%1". خطأ: "%2" - - - Removed torrent. Torrent: "%1" - أُزيلت التورنت. تورنت: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - أُزيلت التورنت وحُذفت محتواه. تورنت: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + يفتقر التورنت إلى إعدادات SSL. التورنت: "%1". الرسالة: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" تنبيه خطأ في الملف. تورنت: "%1". الملف: "%2". السبب: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" فشل تعيين منفذ UPnP/NAT-PMP. الرسالة: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" نجح تعيين منفذ UPnP/NAT-PMP. الرسالة: "%1" - + IP filter this peer was blocked. Reason: IP filter. تصفية الآي بي - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). المنفذ المتصفي (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). المنفذ المميز (%1) - - BitTorrent session encountered a serious error. Reason: "%1" + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" - + + BitTorrent session encountered a serious error. Reason: "%1" + واجهت جلسة BitTorrent خطأ خطيرًا. السبب: "%1" + + + SOCKS5 proxy error. Address: %1. Message: "%2". خطأ وكيل SOCKS5. العنوان: %1. الرسالة: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 قيود الوضع المختلط - + Failed to load Categories. %1 فشل تحميل الفئات. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" فشل تحميل تضبيط الفئات. الملف: "%1". خطأ: "تنسيق البيانات غير صالح" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - أُزيلت التورنت ولكن فشل في حذف محتواه و/أو ملفه الجزئي. تورنت: "%1". خطأ: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 مُعطّل - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 مُعطّل - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - فشل البحث عن DNS لبذرة عنوان URL. تورنت: "%1". URL: "%2". خطأ: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" تم تلقي رسالة خطأ من بذرة URL. تورنت: "%1". URL: "%2". الرسالة: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" تم الاستماع بنجاح على IP. عنوان IP: "%1". المنفذ: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" فشل الاستماع على IP. عنوان IP: "%1". المنفذ: "%2/%3". السبب: "%4" - + Detected external IP. IP: "%1" تم اكتشاف IP خارجي. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" خطأ: قائمة انتظار التنبيهات الداخلية ممتلئة وتم إسقاط التنبيهات، وقد ترى انخفاضًا في الأداء. نوع التنبيه المسقط: "%1". الرسالة: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" تم النقل بالتورنت بنجاح تورنت: "%1". الوجهة: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" فشل في التورنت. تورنت: "%1". المصدر: "%2". الوجهة: "%3". السبب: "%4" @@ -2546,19 +2732,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + فشل في بدء التوزيع. BitTorrent::TorrentCreator - + Operation aborted تم إحباط العملية - - + + Create new torrent file failed. Reason: %1. فشل في إنشاء ملف تورنت جديد. السبب: %1. @@ -2566,67 +2752,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 فشل إضافة القرين "%1" إلى التورنت "%2". السبب: %3 - + Peer "%1" is added to torrent "%2" تم إضافة القرين '%1' إلى التورنت '%2' - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. تم اكتشاف بيانات غير متوقعة. تورنت: %1. البيانات: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. لا يمكن الكتابة إلى الملف. السبب: "%1". أصبح التورنت الآن في وضع "الرفع فقط". - + Download first and last piece first: %1, torrent: '%2' تنزيل أول وآخر قطعة أولًا: %1، التورنت: '%2' - + On مُفعل - + Off مُعطل - + Failed to reload torrent. Torrent: %1. Reason: %2 - + فشل إعادة تحميل التورنت. التورنت: %1. السبب: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" فشل إنشاء بيانات الاستئناف. تورنت: "%1". السبب: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" فشل في استعادة التورنت. ربما تم نقل الملفات أو لا يمكن الوصول إلى مساحة التخزين. تورنت: "%1". السبب: "%2" - + Missing metadata البيانات الوصفية مفقودة - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" فشل إعادة تسمية الملف. التورنت: "%1"، الملف: "%2"، السبب: "%3" - + Performance alert: %1. More info: %2 تنبيه الأداء: %1. مزيد من المعلومات: %2 @@ -2647,189 +2833,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' يجب أن يتبع المعلمة '%1' بناء الجملة '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' يجب أن يتبع المعلمة '%1' بناء الجملة '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' رقم صحيح متوقع في متغير المحيط '%1'، لكن تم الحصول على '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - يجب أن يتبع المعلمة '%1' بناء الجملة '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' تم توقع %1 في متغير المحيط '%2'، ولكن تم الحصول على '%3' - - + + %1 must specify a valid port (1 to 65535). يجب أن يحدد %1 منفذًا صالحًا (من 1 إلى 65535). - + Usage: الاستخدام: - + [options] [(<filename> | <url>)...] [خيارات][(<filename> | <url>)...] - + Options: خيارات: - + Display program version and exit عرض إصدار البرنامج والخروج - + Display this help message and exit عرض رسالة المساعدة هذه والخروج - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + يجب أن يتبع المعلمة '%1' بناء الجملة '%1=%2' - - + + Confirm the legal notice + تأكيد الإشعار القانوني + + + + port المنفذ - + Change the WebUI port - + تغيير منفذ واجهة الويب - + Change the torrenting port قم بتغيير منفذ التورنت - + Disable splash screen تعطيل شاشة البداية - + Run in daemon-mode (background) التشغيل في الوضع الخفي (في الخلفية) - + dir Use appropriate short form or abbreviation of "directory" دليل - + Store configuration files in <dir> تخزين ملفات التضبيط في <dir> - - + + name الاسم - + Store configuration files in directories qBittorrent_<name> تخزين ملفات التضبيط في الدلائل qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory اخترق ملفات libtorrent fastresume وعمل مسارات للملفات ذات صلة بدليل الملف الشخصي - + files or URLs الملفات أو الروابط - + Download the torrents passed by the user تنزيل ملفات التورنت التي مر بها المستخدم - + Options when adding new torrents: الخيارات عند إضافة التورنتات الجديدة: - + path المسار - + Torrent save path مسار حفظ التورنت - - Add torrents as started or paused - أضف التورنت كـ تم بدؤه أو متوقف + + Add torrents as running or stopped + - + Skip hash check تخطي التحقق من البيانات (الهاش) - + Assign torrents to category. If the category doesn't exist, it will be created. تعيين التورنتات إلى فئة. وإذا كانت الفئة غير موجودة، سيتم إنشائها. - + Download files in sequential order تنزيل الملفات بترتيب تسلسلي - + Download first and last pieces first تنزيل أول وآخر قطعة أولًا - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. حدد ما إذا كان سيتم فتح مربع حوار "إضافة تورنت جديد" عند إضافة تورنت. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: يمكن توفير قيم الخيار عبر متغيرات المحيط. بالنسبة للخيار المسمى "parameter-name"، اسم متغير المحيط هو 'QBT_PARAMETER_NAME' (في الحالة العلوية، تم استبدال "-" بـ "_") لتمرير قيم العَلم ، اضبط المتغير على "1" أو "TRUE". فمثلا، لتعطيل شاشة البداية: - + Command line parameters take precedence over environment variables معلمات سطر الأوامر لها الأسبقية على المتغيرات المحيطة - + Help مساعدة @@ -2881,13 +3067,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - استئناف التورنتات + Start torrents + - Pause torrents - إيقاف مؤقت التورنتات + Stop torrents + @@ -2898,15 +3084,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... تحرير... - + Reset إعادة تعيين + + + System + + CookiesDialog @@ -2947,12 +3138,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 فشل تحميل ورقة أنماط السمة المخصصة. %1 - + Failed to load custom theme colors. %1 فشل تحميل ألوان السمات المخصصة. %1 @@ -2960,7 +3151,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 فشل تحميل ألوان السمة الافتراضية. %1 @@ -2979,23 +3170,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - أيضًا احذف الملفات نهائيًا + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? هل أنت متأكد أنك تريد إزالة '%1' من قائمة النقل؟ - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? هل أنت متأكد من رغبتك في إزالة ملفات التورنت %1 هذه من قائمة النقل؟ - + Remove إزالة @@ -3008,12 +3199,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also تنزيل من روابط - + Add torrent links إضافة روابط تورنت - + One link per line (HTTP links, Magnet links and info-hashes are supported) رابط واحد لكل سطر (روابط HTTP ، والروابط الممغنطة ومعلومات التجزئة مدعومة) @@ -3023,12 +3214,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also تنزيل - + No URL entered لم يتم إدخال روابط - + Please type at least one URL. برجاء إدخال رابط واحد على الأقل. @@ -3187,25 +3378,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also خطأ في التحليل: ملف عامل التصفية ليس ملف PeerGuardian P2B صالح. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" تحميل التورنت... من المصدر: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present التورنت موجود مسبقا بالفعل - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? التورنت '%1' موجود بالفعل في قائمة النقل. هل تريد دمج المتتبعات من مصدر الجديد؟ @@ -3213,38 +3427,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 إصدار آي بي غير مدعوم: %1 - + Unsupported record size: %1 حجم تسجيل غير مدعوم: %1 - + Database corrupted: no data section found. قاعدة بيانات تالفة: لم يُعثر على أي مقطع بيانات. @@ -3252,17 +3466,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 يتجاوز حجم طلب Http الحد ، إغلاق مأخذ التوصيل. الحد: %1، الآي بي: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" طريقة طلب Http غير صالحة، إغلاق المقبس. عنوان IP: %1. الطريقة: "%2" - + Bad Http request, closing socket. IP: %1 طلب Http غير صالح ، إغلاق مأخذ التوصيل. الآي بي: %1 @@ -3303,26 +3517,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... استعرض... - + Reset إعادة تعيين - + Select icon حدد الايقونة - + Supported image files ملفات الصور المدعومة + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3343,24 +3591,24 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + إذا كنت قد قرأت الإشعار القانوني، يمكنك استخدام خيار سطر الأوامر `--confirm-legal-notice` لإخفاء هذه الرسالة. Press 'Enter' key to continue... - + اضغط على مفتاح "Enter" للاستمرار LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. تم حظر %1. السبب: %2. - + %1 was banned 0.0.0.0 was banned تم حظر %1 @@ -3369,62 +3617,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 معلمة سطر الأوامر الفردية. - + Run application with -h option to read about command line parameters. قم بتشغيل التطبيق بخيار -h لقراءة معلمات سطر الأوامر. - + Bad command line سطر أوامر تالف - + Bad command line: سطر أوامر تالف: - + An unrecoverable error occurred. - + حدث خطأ غير قابل للإصلاح. + - qBittorrent has encountered an unrecoverable error. - + لقد واجه برنامج qBittorrent خطأً غير قابل للإصلاح. - + You cannot use %1: qBittorrent is already running. - + لا يمكنك استخدام %1: qBittorrent هو قيد التشغيل بالفعل. - + Another qBittorrent instance is already running. - + هناك نسخة أخرى من qBittorrent تعمل بالفعل. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + تم العثور على مثيل غير متوقع لـ qBittorrent. جاري الخروج من هذا المثيل. معرف العملية الحالية: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + خطأ عند تشغيل البرنامج في الخلفية. السبب: "%1". رمز الخطأ: %2. @@ -3435,609 +3683,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ت&حرير - + &Tools أ&دوات - + &File &ملف - + &Help م&ساعدة - + On Downloads &Done عند انت&هاء التنزيلات - + &View &عرض - + &Options... &خيارات... - - &Resume - ا&ستئناف - - - + &Remove &إزالة - + Torrent &Creator مُ&نشيء التورنت - - + + Alternative Speed Limits حدود السرعات البديلة - + &Top Toolbar شريط الأدوات ال&علوي - + Display Top Toolbar عرض شريط الأدوات العلوي - + Status &Bar &شريط الحالة - + Filters Sidebar تصفيات الشريط الجانبي - + S&peed in Title Bar ال&سرعة في شريط العنوان - + Show Transfer Speed in Title Bar عرض السرعة في شريط العنوان - + &RSS Reader &قارئ RSS - + Search &Engine مُ&حرك البحث - + L&ock qBittorrent &قفل واجهة البرنامج - + Do&nate! ت&برع! - + + Sh&utdown System + + + + &Do nothing &لا تفعل شيئا - + Close Window إغلاق النافذة - - R&esume All - اس&تئناف الكل - - - + Manage Cookies... إدارة الكعكات... - + Manage stored network cookies إدارة كعكات الشبكة المُخزّنة - + Normal Messages رسائل عادية - + Information Messages رسائل معلومات - + Warning Messages رسائل تحذيرية - + Critical Messages رسائل حرجة - + &Log ال&سجل - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... تعيين حدود السرعة العامة... - + Bottom of Queue أسفل الصف - + Move to the bottom of the queue انتقل إلى أسفل الصف - + Top of Queue قمة الصف - + Move to the top of the queue انتقل إلى قمة الصف - + Move Down Queue انتقل أسفل في الصف - + Move down in the queue انتقل في أسفل الصف - + Move Up Queue انتقل أعلى في الصف - + Move up in the queue انتقل في أعلى الصف - + &Exit qBittorrent إ&غلاق البرنامج - + &Suspend System ت&عليق النظام - + &Hibernate System إ&لباث النظام - - S&hutdown System - إ&طفاء تشغيل الجهاز - - - + &Statistics الإ&حصائات - + Check for Updates البحث عن تحديثات - + Check for Program Updates التحقق من وجود تحديثات للتطبيق - + &About &عن - - &Pause - إ&لباث - - - - P&ause All - إل&باث الكل - - - + &Add Torrent File... إ&ضافة ملف تورنت... - + Open فتح - + E&xit &خروج - + Open URL فتح الرابط - + &Documentation الت&عليمات - + Lock أوصد - - - + + + Show أظهر - + Check for program updates التحقق من وجود تحديثات للتطبيق - + Add Torrent &Link... إضافة &رابط تورنت... - + If you like qBittorrent, please donate! إذا أعجبك كيوبت‎تورنت، رجاءً تبرع! - - + + Execution Log السجل - + Clear the password إزالة كلمة السر - + &Set Password ت&عيين كلمة سر - + Preferences التفضيلات - + &Clear Password &مسح كلمة السر - + Transfers النقل - - + + qBittorrent is minimized to tray كيوبت‎تورنت مُصغّر في جوار الساعة - - - + + + This behavior can be changed in the settings. You won't be reminded again. هذا السلوك يمكن تغييره من الإعدادات. لن يتم تذكيرك مرة أخرى. - + Icons Only أيقونات فقط - + Text Only نص فقط - + Text Alongside Icons النص بجانب الأيقونات - + Text Under Icons النص أسفل الأيقونات - + Follow System Style اتباع شكل النظام - - + + UI lock password كلمة سر قفل الواجهة - - + + Please type the UI lock password: اكتب كلمة سر قفل الواجهة: - + Are you sure you want to clear the password? هل ترغب حقا في إزالة كلمة السر؟ - + Use regular expressions استخدم التعبيرات العادية - + + + Search Engine + مُحرك البحث + + + + Search has failed + فشلت عملية البحث + + + + Search has finished + انتهى البحث + + + Search البحث - + Transfers (%1) النقل (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. تم تحديث كيوبت‎تورنت للتو ويحتاج لإعادة تشغيله لتصبح التغييرات فعّالة. - + qBittorrent is closed to tray تم إغلاق كيوبت‎تورنت إلى جوار الساعة - + Some files are currently transferring. بعض الملفات تنقل حاليا. - + Are you sure you want to quit qBittorrent? هل أنت متأكد من رغبتك في إغلاق كيوبت‎تورنت؟ - + &No &لا - + &Yes &نعم - + &Always Yes نعم &دائما - + Options saved. تم حفظ الخيارات. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title + + [PAUSED] %1 + %1 is the rest of the window title - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Python Runtime مفقود - + qBittorrent Update Available يوجد تحديث متاح - + 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. كيوبت تورنت بحاجة لبايثون ليتمكن من تشغيل محرك البحث، ولكن على ما يبدو أن بايثون غير مثبّت على جهازك. - - + + Old Python Runtime إصدار بايثون قديم - + A new version is available. إصدار جديد متاح. - + Do you want to download %1? هل ترغب بتنزيل %1؟ - + Open changelog... فتح سجل التغييرات ... - + No updates available. You are already using the latest version. لا تحديثات متاحة. أنت تستخدم أحدث إصدار. - + &Check for Updates &فحص وجود تحديثات - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? إصدار بايثون لديك قديم (%1). والإصدار المتطلب يجب أن يكون %2 على الأقل. هل ترغب بتثبيت الإصدار الأحدث الآن؟ - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. إصدار بايثون لديك (%1) قديم. يرجى الترقية إلى أحدث إصدار حتى تعمل محركات البحث. أدنى إصدار ممكن: %2. - + + Paused + مُلبث + + + Checking for Updates... يتفقد وجود تحديثات... - + Already checking for program updates in the background يتحقق من وجود تحديثات للتطبيق في الخلفية - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error خطأ في التنزيل - - Python setup could not be downloaded, reason: %1. -Please install it manually. - تعذّر تنزيل مُثبّت بايثون، والسبب: %1. -يرجى تثبيته يدويا. - - - - + + Invalid password كلمة سرّ خاطئة - + Filter torrents... تصفية التورنت.. - + Filter by: صنف بواسطة: - + The password must be at least 3 characters long يجب أن تتكون كلمة المرور من 3 أحرف على الأقل - - - + + + RSS (%1) RSS (%1) - + 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 - - - + Hide إخفاء - + Exiting qBittorrent إغلاق البرنامج - + Open Torrent Files فتح ملف تورنت - + Torrent Files ملفات التورنت @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" تجاهل خطأ SSL ، الرابط: "%1"، الأخطاء: "%2" @@ -5527,47 +5851,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 فشل الاتصال، الرد غير معروف: %1 - + Authentication failed, msg: %1 فشلت المصادقة، الرسالة: %1 - + <mail from> was rejected by server, msg: %1 <mail from> تم رفضه من قبل الخادم، الرسالة: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> تم رفضه من قبل الخادم، الرسالة: %1 - + <data> was rejected by server, msg: %1 <data> تم رفضه من قبل الخادم، الرسالة: %1 - + Message was rejected by the server, error: %1 تم رفض الرسالة من قبل الخادم، الخطأ: %1 - + Both EHLO and HELO failed, msg: %1 فشل كل من EHLO وHELO، الرسالة: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 يبدو أن خادم SMTP لا يدعم أيًا من أوضاع المصادقة التي ندعمها [CRAM-MD5|PLAIN|LOGIN]، ويتخطى المصادقة، مع العلم أنه من المحتمل أن تفشل... أوضاع مصادقة الخادم: %1 - + Email Notification Error: %1 خطأ في إشعار البريد الإلكتروني: %1 @@ -5605,299 +5929,283 @@ Please install it manually. بت تورنت - + RSS RSS - - Web UI - واجهة الوِب الرسومية - - - + Advanced متقدم - + Customize UI Theme... تخصيص سمة واجهة المستخدم... - + Transfer List قائمة النقل - + Confirm when deleting torrents التأكيد عند حذف التورنتات - - Shows a confirmation dialog upon pausing/resuming all the torrents - يعرض مربع حوار التأكيد عند الإيقاف المؤقت/استئناف كافة ملفات التورنت - - - - Confirm "Pause/Resume all" actions - قم بتأكيد إجراءات "الإيقاف المؤقت/استئناف الكل". - - - + Use alternating row colors In table elements, every other row will have a grey background. استخدام ألوان متضادة للأسطر - + Hide zero and infinity values إخفاء قيم الصفر واللانهاية - + Always دائما - - Paused torrents only - التورنتات المٌقفة مؤقتًا فقط - - - + Action on double-click الإجراء عند النقر المزدوج - + Downloading torrents: أثناء تنزيل التورنتات: - - - Start / Stop Torrent - تشغيل / إيقاف التورنت - - - - + + Open destination folder فتح المجلد الحاوي - - + + No action دون إجراء - + Completed torrents: التورنتات المكتملة: - + Auto hide zero status filters إخفاء مرشحات الحالة الصفرية تلقائيًا - + Desktop سطح الكتب - + Start qBittorrent on Windows start up ابدأ كيوبت‎تورنت عند بدء تشغيل ويندوز - + Show splash screen on start up إظهار شاشة البدء عند بدء البرنامج - + Confirmation on exit when torrents are active تأكيد الإغلاق عند وجود تورنتات نشطة - + Confirmation on auto-exit when downloads finish تأكيد الإغلاق التلقائي عند انتهاء التنزيلات - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB ك.بايت - + + Show free disk space in status bar + + + + Torrent content layout: تخطيط محتوى التورنت: - + Original الأصلي - + Create subfolder إنشاء مجلد فرعي - + Don't create subfolder لا تقم بإنشاء مجلد فرعي - + The torrent will be added to the top of the download queue ستتم إضافة التورنت إلى أعلى صف التنزيل - + Add to top of queue The torrent will be added to the top of the download queue أضفه إلى قمة الصف - + When duplicate torrent is being added عندما يتم إضافة تورنت مكررة - + Merge trackers to existing torrent دمج المتتبعات في التورنت الموجودة - + Keep unselected files in ".unwanted" folder - + Add... إضافة... - + Options.. خيارات... - + Remove إزالة - + Email notification &upon download completion إرسال تنبيه عبر البريد الإلكتروني عند اكتمال التنزيل - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: بروتوكول اتصال القرين: - + Any أي - + I2P (experimental) I2P (تجريبي) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>إذا كان &quot;الوضع المختلط&quot; تم تفعيل تورنتات I2P، كما يُسمح لها بالحصول على أقران من مصادر أخرى غير المتتبع، والاتصال بعناوين IP العادية، دون توفير أي إخفاء للهوية. قد يكون هذا مفيدًا إذا لم يكن المستخدم مهتمًا بإخفاء هوية I2P، ولكنه لا يزال يريد أن يكون قادرًا على الاتصال بأقران I2P. - - - + Mixed mode وضع مختلط - - Some options are incompatible with the chosen proxy type! - بعض الخيارات غير متوافقة مع نوع الوكيل الذي تم اختياره! - - - + If checked, hostname lookups are done via the proxy إذا تم تحديده، فسيتم إجراء عمليات البحث عن اسم المضيف (hostname) عبر الوكيل - + Perform hostname lookup via proxy إجراء بحث عن اسم المضيف عبر الوكيل - + Use proxy for BitTorrent purposes استخدم الوكيل لأغراض BitTorrent - + RSS feeds will use proxy سوف تستخدم مواجز RSS الوكيل - + Use proxy for RSS purposes استخدم الوكيل لأغراض RSS - + Search engine, software updates or anything else will use proxy سيستخدم محرك البحث أو تحديثات البرامج أو أي شيء آخر الوكيل - + Use proxy for general purposes استخدم الوكيل للأغراض العامة - + IP Fi&ltering تصفية الآي بي - + Schedule &the use of alternative rate limits جدولة واستخدام المعدل البديل - + From: From start time من: - + To: To end time إلى: - + Find peers on the DHT network ابحث عن القرناء على شبكة DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5906,145 +6214,190 @@ Disable encryption: Only connect to peers without protocol encryption تعطيل التشفير: اتصل بالقرناء فقط بدون تشفير البروتوكول - + Allow encryption السماح بالتشفير - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">لمعلومات أكثر</a>) - + Maximum active checking torrents: الحد الأقصى التحقق النشطة لتورنت: - + &Torrent Queueing &انتظار التورنت - + When total seeding time reaches عندما يصل وقت البذر الكلي - + When inactive seeding time reaches عندما يصل وقت البذر غير النشط - - A&utomatically add these trackers to new downloads: - إضافة هذه المتتبعات تلقائيًا إلى التنزيلات الجديدة: - - - + RSS Reader قارئ RSS - + Enable fetching RSS feeds تفعيل جلب مواجز RSS - + Feeds refresh interval: الفاصل الزمني لتحديث المواجز: - + Same host request delay: - + Maximum number of articles per feed: أقصى عدد من المقالات لكل موجز: - - - + + + min minutes د - + Seeding Limits حدود البذر - - Pause torrent - إيقاف مؤقت التورنت - - - + Remove torrent إزالة التورنت - + Remove torrent and its files إزالة التورنت وملفاته - + Enable super seeding for torrent تفعيل البذر الخارق للتورنت - + When ratio reaches عندما تصل النسبة - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + الرابط: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader منزّل التورنت التلقائي من تغذية RSS - + Enable auto downloading of RSS torrents تفعيل التنزيل التلقائي لتورنتات RSS - + Edit auto downloading rules... تحرير قواعد التنزيل التلقائي... - + RSS Smart Episode Filter RSS مُصفّي الحلقات الذكي - + Download REPACK/PROPER episodes تنزيل REPACK/PROPER الحلقات - + Filters: تصفيات: - + Web User Interface (Remote control) واجهة مستخدم الويب (التحكم عن بُعد) - + IP address: عنوان الآي بي: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6053,42 +6406,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv "::" لأي عنوان IPv6 ، أو "*" لكلا IPv4 و IPv6. - + Ban client after consecutive failures: حظر العميل بعد إخفاقات متتالية: - + Never أبدًا - + ban for: حظر لـ: - + Session timeout: مهلة الجلسة: - + Disabled مُعطّل - - Enable cookie Secure flag (requires HTTPS) - تفعيل علامة تأمين ملفات تعريف الارتباط (يتطلب HTTPS) - - - + Server domains: نطاقات الخادم: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6101,442 +6449,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP استخدام HTTPS بدلًا من HTTP - + Bypass authentication for clients on localhost تجاوز المصادقة للعملاء على المضيف المحلي - + Bypass authentication for clients in whitelisted IP subnets تجاوز المصادقة للعملاء في شبكات الآي بي الفرعية المدرجة في القائمة البيضاء - + IP subnet whitelist... القائمة البيضاء للشبكة الفرعية للآي بي ... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. حدد عناوين IP للوكيل العكسي (أو الشبكات الفرعية، على سبيل المثال 0.0.0.0/24) لاستخدام عنوان العميل المُعاد توجيهه (رأس X-Forwarded-For). يستخدم '؛' لتقسيم إدخالات متعددة. - + Upda&te my dynamic domain name تحديث اسم النطاق الديناميكي الخاص بي - + Minimize qBittorrent to notification area تصغير كيوبت‎تورنت إلى جوار الساعة - + + Search + البحث + + + + WebUI + + + + Interface الواجهة - + Language: اللغة: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: مظهر الأيقونة في جوار الساعة: - - + + Normal عادي - + File association ارتباط الملف - + Use qBittorrent for .torrent files استخدام كيوبت‎تورنت لفتح ملفات .torrent - + Use qBittorrent for magnet links استخدام كيوبت‎تورنت لفتح الروابط المغناطيسية - + Check for program updates التحقق من وجود تحديثات للبرنامج - + Power Management إدارة الطاقة - + + &Log Files + + + + Save path: مسار الحفظ: - + Backup the log file after: قم بعمل نسخة احتياطية من ملف السجل بعد: - + Delete backup logs older than: حذف سجلات النسخ الاحتياطي الأقدم من: - + + Show external IP in status bar + + + + When adding a torrent عند إضافة تورنت - + Bring torrent dialog to the front إحضار نافذة التورنت إلى الأمام - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled احذف أيضًا ملفات .torrent التي تم إلغاء إضافتها - + Also when addition is cancelled أيضا عندما يتم إلغاء الإضافة - + Warning! Data loss possible! تحذير! فقدان البيانات ممكن! - + Saving Management إدارة التوفير - + Default Torrent Management Mode: نمط إدارة التورنت الافتراضي: - + Manual يدوي - + Automatic آلي - + When Torrent Category changed: عند تغيير فئة التورنت: - + Relocate torrent نقل التورنت - + Switch torrent to Manual Mode تبديل التورنت إلى الوضع اليدوي - - + + Relocate affected torrents نقل التورنتات المتضررة - - + + Switch affected torrents to Manual Mode تبديل التورنتات المتضررة إلى الوضع اليدوي - + Use Subcategories استخدام فئات فرعية - + Default Save Path: مسار الحفظ الافتراضي: - + Copy .torrent files to: نسخ ملفات torrent. إلى: - + Show &qBittorrent in notification area إظهار كيوبت‎تورنت بجوار الساعة - - &Log file - ملف السجل - - - + Display &torrent content and some options عرض محتويات التورنت وبعض الخيارات - + De&lete .torrent files afterwards حذف ملفات .torrent بعد ذلك - + Copy .torrent files for finished downloads to: نسخ ملفات .torrent للتنزيلات المنتهية إلى: - + Pre-allocate disk space for all files تخصيص مسبق لمساحة القرص لجميع الملفات - + Use custom UI Theme استخدم سمة واجهة مستخدم مخصصة - + UI Theme file: ملف سمة واجهة المستخدم الرسومية: - + Changing Interface settings requires application restart يتطلب تغيير إعدادات الواجهة إعادة تشغيل التطبيق - + Shows a confirmation dialog upon torrent deletion عرض مربع حوار لتأكيد حذف التورنت - - + + Preview file, otherwise open destination folder معاينة الملف، وإلا افتح مجلد الوجهة - - - Show torrent options - عرض خيارات التورنت - - - + Shows a confirmation dialog when exiting with active torrents عرض مربع حوار لتأكيد الخروج عند وجود تورنتات نشطة - + When minimizing, the main window is closed and must be reopened from the systray icon عند التصغير، يتم إغلاق النافذة الرئيسية ويجب إعادة فتحها من جوار الساعة - + The systray icon will still be visible when closing the main window ستظل أيقونة البرنامج بجوار الساعة عند إغلاق النافذة الرئيسية - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window أغلق كيوبت‎تورنت إلى جوار الساعة - + Monochrome (for dark theme) أحادي اللون (للمظهر الداكن) - + Monochrome (for light theme) أحادي اللون (للمظهر الفاتح) - + Inhibit system sleep when torrents are downloading منع النظام من السُبات عند تنزيل ملفات التورنت - + Inhibit system sleep when torrents are seeding منع النظام من السُبات عندما يتم بذر التورنتات - + Creates an additional log file after the log file reaches the specified file size إنشاء ملف سجل إضافي بعد أن يصل ملف السجل إلى حجم الملف المحدد - + days Delete backup logs older than 10 days أيام - + months Delete backup logs older than 10 months شهور - + years Delete backup logs older than 10 years أعوام - + Log performance warnings سجل تحذيرات الأداء - - The torrent will be added to download list in a paused state - ستتم إضافة التورنت إلى قائمة التنزيل في حالة الإيقاف المؤقت - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state عدم بدء التنزيل بشكل تلقائي - + Whether the .torrent file should be deleted after adding it ما إذا كان يجب حذف ملف .torrent بعد إضافته - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. تخصيص أحجام الملفات الكاملة على القرص قبل بدء التنزيلات لتقليل التجزئة. مفيد فقط لمحركات الأقراص الصلبة. - + Append .!qB extension to incomplete files إضافة امتداد !qB. للملفات غير المنتهية - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it عند تنزيل ملف تورنت ، اعرض إضافة التورنتات من أي ملفات .torrent موجودة بداخله - + Enable recursive download dialog تفعيل مربع حوار التنزيل المتكرر - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually تلقائي: سيتم تحديد خصائص التورنت المختلفة (مثل مسار الحفظ) من خلال الفئة المرتبطة يدوي: يجب تعيين خصائص التورنت المختلفة (مثل مسار الحفظ) يدويًا - + When Default Save/Incomplete Path changed: عند تغيير مسار الحفظ/غير الكامل الافتراضي: - + When Category Save Path changed: عند تغيير مسار حفظ الفئة: - + Use Category paths in Manual Mode استخدم مسارات الفئات في الوضع اليدوي - + Resolve relative Save Path against appropriate Category path instead of Default one حل مسار الحفظ النسبي مقابل مسار الفئة المناسب بدلاً من المسار الافتراضي - + Use icons from system theme استخدم الأيقونات من سمة النظام - + Window state on start up: حالة النافذة عند بدء التشغيل: - + qBittorrent window state on start up qBittorrent حالة النافذة عند بدء التشغيل - + Torrent stop condition: شرط توقف التورنت: - - + + None بدون - - + + Metadata received تم استلام البيانات الوصفية - - + + Files checked تم فحص الملف - + Ask for merging trackers when torrent is being added manually اطلب دمج المتتبعات عند إضافة التورنت يدويًا - + Use another path for incomplete torrents: استخدم مسارًا آخر للتورنتات غير المكتملة: - + Automatically add torrents from: إضافة التورنتات تلقائيًا من: - + Excluded file names أسماء الملفات المستبعدة - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6565,770 +6954,811 @@ readme.txt: تصفية اسم الملف الدقيق. الملف التمهيدي [0-9].txt: قم بتصفية "readme1.txt" و"readme2.txt" ولكن ليس "readme10.txt". - + Receiver المتلقي - + To: To receiver إلى: - + SMTP server: خادم SMTP: - + Sender مُرسل - + From: From sender من: - + This server requires a secure connection (SSL) يتطلب هذا الخادم اتصالًا آمنًا (SSL) - - + + Authentication المصادقة - - - - + + + + Username: اسم المستخدم: - - - - + + + + Password: كلمة المرور: - + Run external program تشغيل برنامج خارجي - - Run on torrent added - التشغيل على التورنت مضافة - - - - Run on torrent finished - تشغيل على التورنت انتهى - - - + Show console window عرض نافذة وحدة التحكم - + TCP and μTP TCP و μTP - + Listening Port منفذ الاستماع - + Port used for incoming connections: المنفذ المستخدم للاتصالات الواردة: - + Set to 0 to let your system pick an unused port قم بالتعيين إلى 0 للسماح للنظام الخاص بك باختيار منفذ غير مستخدم - + Random عشوائي - + Use UPnP / NAT-PMP port forwarding from my router استخدام UPnP / NAT-PMP لفتح المنافذ تلقائيا - + Connections Limits حدود الاتصالات - + Maximum number of connections per torrent: أقصى عدد من الاتصالات لكل تورنت: - + Global maximum number of connections: أقصى عدد من الاتصالات العامة: - + Maximum number of upload slots per torrent: أقصى عدد من فتحات الرفع لكل تورنت: - + Global maximum number of upload slots: أقصى عدد من فتحات الرفع العامة: - + Proxy Server خادم البروكسي - + Type: النوع: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: المضيف: - - - + + + Port: المنفذ: - + Otherwise, the proxy server is only used for tracker connections خلاف ذلك، خادم البروكسي سيستخدم على اتصالات المتتبعات فقط - + Use proxy for peer connections استخدام البروكسي على اتصالات القرناء - + A&uthentication المصادقة - - Info: The password is saved unencrypted - معلومة: كلمة السر يتم حفظها بشكل غير مشفّر - - - + Filter path (.dat, .p2p, .p2b): مسار الفلتر (.dat, .p2p, .p2b): - + Reload the filter تحديث الفلاتر - + Manually banned IP addresses... عناوين الآي بي المحجوبة يدويًا ... - + Apply to trackers التطبيق على المتتبعات - + Global Rate Limits حدود المعدل العام - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s ك.بايت/ث - - + + Upload: الرفع: - - + + Download: التنزيل: - + Alternative Rate Limits حدود المعدل البديل - + Start time وقت البدء - + End time وقت النهاية - + When: عندما: - + Every day كل يوم - + Weekdays نهاية اليوم - + Weekends نهاية الأسبوع - + Rate Limits Settings إعدادات حدود المعدل - + Apply rate limit to peers on LAN تطبيق حد المعدل على القرناء الموجودين على الشبكة المحلية - + Apply rate limit to transport overhead تطبيق حد المعدل على النقل الزائد - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol تطبيق حد المعدل على بروتوكول µTP - + Privacy الخصوصية - + Enable DHT (decentralized network) to find more peers تفعيل DHT (الشبكة اللامركزية) للعثور على المزيد من القرناء - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) استبدال القرناء بعملاء بت تورنت متوافقين (µTorrent، Vuze، ...) - + Enable Peer Exchange (PeX) to find more peers تفعيل تبادل القرناء (PeX) للعثور على المزيد من الأقران - + Look for peers on your local network إيجاد القرناء على شبكتك المحلية - + Enable Local Peer Discovery to find more peers تفعيل اكتشاف القرناء المحليين للعثور على المزيد من الأقران - + Encryption mode: نمط التشفير: - + Require encryption طلب التشفير - + Disable encryption تعطيل التشفير - + Enable when using a proxy or a VPN connection تفعيل عند استخدام اتصال بروكسي أو VPN - + Enable anonymous mode تفعيل الوضع المجهول - + Maximum active downloads: أقصى عدد للتنزيلات النشطة: - + Maximum active uploads: أقصى عدد للمرفوعات النشطة: - + Maximum active torrents: أقصى عدد للتورنتات النشطة: - + Do not count slow torrents in these limits عدم حساب التورنتات البطيئة في هذه الحدود - + Upload rate threshold: حد معدل الرفع: - + Download rate threshold: حد معدل التنزيل: - - - - + + + + sec seconds ث - + Torrent inactivity timer: مؤقت عدم نشاط التورنت: - + then ثم - + Use UPnP / NAT-PMP to forward the port from my router استخدام UPnP / NAT-PMP لفتح المنافذ تلقائيًا - + Certificate: الشهادة: - + Key: المفتاح: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>معلومات عن الشهادات</a> - + Change current password تغيير كلمة المرور الحالية - - Use alternative Web UI - استخدم واجهة وِب رسومية بديلة - - - + Files location: مكان الملفات: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security الأمان - + Enable clickjacking protection تفعيل الحماية من الاختراق - + Enable Cross-Site Request Forgery (CSRF) protection تفعيل الحماية عبر الموقع لطلب التزوير (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation تفعيل التحقق من صحة رأس المضيف - + Add custom HTTP headers أضف رؤوس HTTP مخصصة - + Header: value pairs, one per line الرأس: أهمية مزدوجة، واحد لكل سطر - + Enable reverse proxy support تفعيل دعم البروكسي العكسي - + Trusted proxies list: قائمة البروكسي الموثوق بهم: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: الخدمة: - + Register تسجيل - + Domain name: اسم النطاق: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! من خلال تمكين هذه الخيارات ، يمكنك أن <strong>تفقد</strong> ملفات .torrent الخاصة بك بشكل نهائي! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog إذا قمت بتفعيل الخيار الثاني ("أيضًا عند إلغاء الإضافة") ، ملف torrent. <strong>سيتم حذفه</strong> حتى لو ضغطت على " <strong>إلغاء</strong> "في مربع حوار "إضافة تورنت" - + Select qBittorrent UI Theme file حدد ملف سمة واجهة مستخدم رسومية كيوبت‎تورنت - + Choose Alternative UI files location اختر موقع ملفات واجهة المستخدم البديلة - + Supported parameters (case sensitive): المعلمات المدعومة (حساس لحالة الأحرف): - + Minimized مصغر - + Hidden مخفي - + Disabled due to failed to detect system tray presence مُعطل بسبب الفشل في اكتشاف وجود علبة النظام (system tray) - + No stop condition is set. لم يتم وضع شرط للتوقف - + Torrent will stop after metadata is received. سيتوقف التورنت بعد استقبال البيانات الوصفية - Torrents that have metadata initially aren't affected. - التورنت الذي يحتوي على بيانات وصفية ابتدائية لن يتأثر - - - + Torrent will stop after files are initially checked. سيتوقف التورنت بعد الملفات التي تم فحصحها - + This will also download metadata if it wasn't there initially. سيؤدي هذا أيضًا إلى تنزيل البيانات الوصفية إذا لم تكن موجودة في البداية. - + %N: Torrent name %N: اسم التورنت - + %L: Category %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: المتتبع الحالي - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") نصيحة: غلف المعلمات بعلامات اقتباس لتجنب قطع النص عند مسافة بيضاء (على سبيل المثال، "%N") - + + Test email + بريد إلكتروني اختباري + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (لا شيء) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds سيتم اعتبار التورنت بطيئًا إذا ظلت معدلات التنزيل والتحميل أقل من هذه القيم لثواني "مؤقت عدم نشاط التورنت" - + Certificate الشهادة - + Select certificate حدد الشهادة - + Private key المفتاح الخاص - + Select private key حدد المفتاح الخاص - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor حدد المجلد المراد مراقبته - + Adding entry failed فشل إضافة الإدخال - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error خطأ في المكان - - + + Choose export directory اختر مكان التصدير - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well عندما يتم تفعيل هذه الخيارات، سيقوم كيوبت‎تورنت <strong>بحذف</strong> ملفات torrent. بعد إضافتها بنجاح (الخيار الأول) أو عدم إضافتها (الخيار الثاني) إلى قائمة انتظار التنزيل الخاصة به. سيتم تطبيق هذا<strong>ليس فقط</strong> إلى الملفات التي تم فتحها عبر إجراء قائمة "إضافة تورنت" ولكن لتلك التي تم فتحها عبر <strong>اقتران نوع الملف</strong> كذلك - + qBittorrent UI Theme file (*.qbtheme config.json) ملف سمة واجهة رسومية كيوبت‎تورنت (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: وسوم (مفصولة بفاصلة) - + %I: Info hash v1 (or '-' if unavailable) %I: معلومات التحقق من البيانات (الهاش) الإصدار 1 (أو '-' إذا لم تكن متوفرة) - + %J: Info hash v2 (or '-' if unavailable) %J: معلومات التحقق من البيانات (الهاش) الإصدار 2 (أو '-' إذا لم تكن متوفرة) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: معرف التورنت (إما تجزئة معلومات sha-1 للإصدار 1 للتورنت أو تجزئة معلومات sha-256 المقطوعة للإصدار 2 / التورنت المختلط) - - - + + + Choose a save directory اختر مكان الحفظ - + Torrents that have metadata initially will be added as stopped. - + ستتم إضافة التورينت التي تحتوي على بيانات وصفية في البداية على أنها متوقفة. - + Choose an IP filter file اختر ملف تصفية آي بي - + All supported filters جميع التصفيات المدعومة - + The alternative WebUI files location cannot be blank. - + 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 تم تحليل عامل تصفية الآي بي المقدم بنجاح: تم تطبيق %1 قواعد. - + Preferences التفضيلات - + Time Error خطأ في الوقت - + The start time and the end time can't be the same. لا يمكن أن يكون وقت البدء مطابق لوقت الانتهاء. - - + + Length Error خطأ في الطول @@ -7336,241 +7766,246 @@ readme.txt: تصفية اسم الملف الدقيق. PeerInfo - + Unknown غير معروف - + Interested (local) and choked (peer) مهتم (محلي) ومختنق (قرين) - + Interested (local) and unchoked (peer) مهتم (محلي) وغير مختنق (قرين) - + Interested (peer) and choked (local) مهتم (قرين) وغير مختنق (محلي) - + Interested (peer) and unchoked (local) مهتم (قرين) وغير مختنق (محلي) - + Not interested (local) and unchoked (peer) غير مهتم (محلي) وغير مختنق (قرين) - + Not interested (peer) and unchoked (local) غير مهتم (قرين) وغير مختنق (محلي) - + Optimistic unchoke متفائل غير مختنق - + Peer snubbed تجاهل القرين - + Incoming connection الاتصالات الواردة - + Peer from DHT قرين من DHT - + Peer from PEX قرين من PEX - + Peer from LSD قرين من LSD - + Encrypted traffic حركة مرور مشفرة - + Encrypted handshake مصافحة مشفرة + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region الدولة/المنطقة - + IP/Address IP/العنوان - + Port المنفذ - + Flags أعلام - + Connection الاتصال - + Client i.e.: Client application العميل - + Peer ID Client i.e.: Client resolved from Peer ID عميل معرف النظير - + 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. الصلة - + Files i.e. files that are being downloaded right now الملفات - + Column visibility وضوح العامود - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها - + Add peers... إضافة قرناء ... - - + + Adding peers إضافة قرناء - + Some peers cannot be added. Check the Log for details. لا يمكن إضافة بعض القرناء. تحقق من السجل للحصول على التفاصيل. - + Peers are added to this torrent. تمت إضافة القرناء إلى هذا التورنت. - - + + Ban peer permanently حظر القرين نهائيا - + Cannot add peers to a private torrent لا يمكن إضافة قرناء إلى تورنت خاص - + Cannot add peers when the torrent is checking لا يمكن إضافة قرناء أثناء فحص التورنت - + Cannot add peers when the torrent is queued لا يمكن إضافة قرناء عندما يكون التورنت في الصف - + No peer was selected لم يتم اختيار أي قرين - + Are you sure you want to permanently ban the selected peers? هل أنت متأكد من رغبتك في حظر القرناء المحددين نهائيًا؟ - + Peer "%1" is manually banned تم حظر القرين "%1" يدويًا - + N/A لا يوجد - + Copy IP:port نسخ آي بي: المنفذ @@ -7588,7 +8023,7 @@ readme.txt: تصفية اسم الملف الدقيق. قائمة القرناء المراد إضافتهم (عنوان آي بي واحد لكل سطر): - + Format: IPv4:port / [IPv6]:port التنسيق: IPv4: المنفذ / [IPv6]: المنفذ @@ -7629,27 +8064,27 @@ readme.txt: تصفية اسم الملف الدقيق. PiecesBar - + Files in this piece: الملفات في هذا الجزء: - + File in this piece: الملف في هذه القطعة: - + File in these pieces: الملف في هذه القطع: - + Wait until metadata become available to see detailed information انتظر حتى تصبح البيانات الوصفية متاحة لرؤية المعلومات التفصيلية - + Hold Shift key for detailed information اضغط مع الاستمرار على مفتاح Shift للحصول على معلومات مفصلة @@ -7662,58 +8097,58 @@ readme.txt: تصفية اسم الملف الدقيق. ملحقات البحث - + Installed search plugins: ملحقات البحث المثبتة: - + Name الاسم - + Version الإصدار - + Url الرابط - - + + Enabled مُفعّل - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. تحذير: تأكد من الامتثال لقوانين حقوق الطبع والنشر في بلدك عند تنزيل التورنت من أي من محركات البحث هذه. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> يمكنك الحصول على المكونات الإضافية الجديدة لمحرك البحث هنا: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one تثبيت واحد جديد - + Check for updates تحقق من وجود تحديثات - + Close أغلق - + Uninstall إلغاء التثبيت @@ -7833,98 +8268,65 @@ Those plugins were disabled. مصدر الملحقة - + Search plugin source: مصدر ملحق البحث: - + Local file ملف محلي - + Web link رابط موقع - - PowerManagement - - - qBittorrent is active - كيوبت‎تورنت نشط - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: الملفات التالية من التورنت "%1" تدعم المعاينة ، يرجى تحديد واحد منهم: - + Preview الاستعراض - + Name الاسم - + Size الحجم - + Progress التقدّم - + Preview impossible لايمكن الاستعراض - + Sorry, we can't preview this file: "%1". عذرًا ، لا يمكننا معاينة هذا الملف: "%1". - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها @@ -7937,27 +8339,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist المسار غير موجود - + Path does not point to a directory المسار لا يشير إلى الدليل - + Path does not point to a file المسار لا يشير إلى ملف - + Don't have read permission to path ليس لديك إذن القراءة للمسار - + Don't have write permission to path ليس لديك إذن الكتابة إلى المسار @@ -7998,12 +8400,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: تم تنزيل: - + Availability: التوافر: @@ -8018,53 +8420,53 @@ Those plugins were disabled. النقل - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) فترة النشاط - + ETA: الوقت المتبقي: - + Uploaded: تم رفع: - + Seeds: البذور: - + Download Speed: سرعة التنزيل: - + Upload Speed: سرعة الرفع: - + Peers: القرناء: - + Download Limit: حد التنزيل: - + Upload Limit: حد الرفع: - + Wasted: تم تضييع: @@ -8074,193 +8476,220 @@ Those plugins were disabled. الاتصالات: - + Information المعلومات - + Info Hash v1: معلومات التحقق من البيانات (الهاش) الإصدار 1: - + Info Hash v2: معلومات التحقق من البيانات (الهاش) الإصدار 2: - + Comment: التعليق: - + Select All اختيار الكل - + Select None اختيار لا شئ - + Share Ratio: نسبة المشاركة: - + Reannounce In: إعادة الإعلان خلال: - + Last Seen Complete: آخر إكمال شوهِد في: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: إجمالي الحجم: - + Pieces: القطع: - + Created By: أنشئ باستخدام: - + Added On: تاريخ الإضافة: - + Completed On: تاريخ الاكتمال: - + Created On: تاريخ الإنشاء: - + + Private: + + + + Save Path: مسار الحفظ: - + Never أبدًا - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (لديك %3) - - + + %1 (%2 this session) %1 (%2 هذه الجلسة) - - + + + N/A غير متاح - + + Yes + نعم + + + + No + لا + + + %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) - - New Web seed - رابط للقرين عبر الويب + + Add web seed + Add HTTP source + - - Remove Web seed - ازالة رابط القرين عبر الويب + + Add web seed: + - - Copy Web seed URL - نسخ رابط القرين عبر الويب + + + This web seed is already in the list. + - - Edit Web seed URL - تعديل رابط القرين عبر الويب - - - + Filter files... تصفية الملفات... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled تم تعطيل الرسوم البيانية للسرعة - + You can enable it in Advanced Options يمكنك تفعيله في الخيارات المتقدمة - - 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: رابط القرين عبر الويب: @@ -8268,33 +8697,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. تنسيق البيانات غير صالح. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 تعذر حفظ بيانات التنزيل التلقائي لـ RSS في %1. خطأ: %2 - + Invalid data format تنسيق البيانات غير صالح - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... تم قبول مقالة RSS '%1' بواسطة القاعدة '%2'. جارِ محاولة إضافة تورنت... - + Failed to read RSS AutoDownloader rules. %1 فشل في قراءة قواعد RSS AutoDownloader %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 تعذر تحميل قواعد التنزيل التلقائي لـ RSS. السبب: %1 @@ -8302,22 +8731,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 فشل تحميل موجز RSS في '%1'. السبب: %2 - + RSS feed at '%1' updated. Added %2 new articles. تم تحديث موجز RSS في '%1'. تمت إضافة %2 مقالة جديدة. - + Failed to parse RSS feed at '%1'. Reason: %2 فشل تحليل موجز RSS في '%1'. السبب: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. تم تحميل موجز RSS في '%1' بنجاح. البدء في تحليلها. @@ -8353,12 +8782,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. موجز RSS غير صالح. - + %1 (line: %2, column: %3, offset: %4). %1 (السطر: %2, عمود: %3, الإزاحة: %4). @@ -8366,103 +8795,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" تعذر حفظ تضبيط جلسة RSS. الملف: "%1". خطأ: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" تعذر حفظ بيانات جلسة RSS. الملف: "%1". خطأ: "%2" - - + + RSS feed with given URL already exists: %1. موجز RSS بالرابط المحدد موجود بالفعل: %1. - + Feed doesn't exist: %1. الموجز غير موجود: %1. - + Cannot move root folder. لا يمكن نقل المجلد الجذر. - - + + Item doesn't exist: %1. العنصر غير موجود: %1. - - Couldn't move folder into itself. - تعذر نقل المجلد إلى نفسه. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. لا يمكن حذف المجلد الجذر. - + Failed to read RSS session data. %1 فشل في قراءة بيانات جلسة RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" فشل في تحليل بيانات جلسة RSS. الملف: "%1". خطأ: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." فشل تحميل بيانات جلسة RSS. الملف: "%1". خطأ: "تنسيق البيانات غير صالح." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. تعذر تحميل موجز RSS. موجز: "%1". السبب: عنوان URL مطلوب. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. تعذر تحميل موجز RSS. موجز: "%1". السبب: UID غير صالح. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. تم العثور على موجز RSS مكرر .UID المعرف الفريد : "%1". خطأ: يبدو أن التضبيط تالف. - + Couldn't load RSS item. Item: "%1". Invalid data format. تعذر تحميل عنصر RSS. البند 1". تنسيق البيانات غير صالح. - + Corrupted RSS list, not loading it. قائمة RSS تالفة، ولا يتم تحميلها. - + Incorrect RSS Item path: %1. مسار عنصر RSS غير صحيح: %1. - + RSS item with given path already exists: %1. عنصر RSS بالمسار المحدد موجود بالفعل: %1. - + Parent folder doesn't exist: %1. المجلد الأصلي غير موجود: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + الموجز غير موجود: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + الرابط: + + + + Refresh interval: + + + + + sec + ث + + + + Default + إهمال + + RSSWidget @@ -8482,8 +8952,8 @@ Those plugins were disabled. - - + + Mark items read ميّزة العناصر كمقروءة @@ -8508,132 +8978,115 @@ Those plugins were disabled. التورنتات: (انقر مزدوجًا للتنزيل) - - + + Delete حذف - + Rename... إعادة التسمية... - + Rename إعادة التسمية - - + + Update تحديث - + New subscription... اشتراك جديد... - - + + Update all feeds تحديث جميع المواجز - + Download torrent تنزيل التورنت - + Open news URL افتح URL الأخبار - + Copy feed URL نسخ رابط الموجز - + New folder... مجلد جديد... - - Edit feed URL... - تحرير رابط الموجز... + + Feed options... + - - Edit feed URL - تحرير رابط الموجز - - - + Please choose a folder name يرجى اختيار اسم المجلد - + Folder name: اسم المجلد: - + New folder مجلد جديد - - - Please type a RSS feed URL - يرجى كتابة رابط موجز RSS - - - - - Feed URL: - رابط الموجز: - - - + 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: اسم الموجز الجديد: - + Rename failed فشل إعادة التسمية - + Date: التاريخ: - + Feed: - + Author: المؤلف: @@ -8641,38 +9094,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - يجب تثبيت بيثون (Python) لاستخدام محرك البحث. + يجب تثبيت "بيثون" لاستخدام محرك البحث. - + Unable to create more than %1 concurrent searches. تعذر إنشاء أكثر من %1 عملية بحث متزامنة. - - + + Offset is out of range الإزاحة خارج النطاق - + All plugins are already up to date. جميع الملحقات محدّثة. - + Updating %1 plugins تحديث %1 ملحقات - + Updating plugin %1 تحديث ملحق %1 - + Failed to check for plugin updates: %1 فشل البحث عن تحديثات الملحقات: %1 @@ -8747,132 +9200,142 @@ Those plugins were disabled. الحجم: - + 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 - محرّك البحث - - - + Filter search results... تصفية نتائج البحث... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results النتائج (يظهر %1 من إجمالي %2): - + Torrent names only أسماء التورنتات فقط - + Everywhere في كل مكان - + Use regular expressions استخدام التعبيرات العادية - + Open download window افتح نافذة التنزيل - + Download تنزيل - + Open description page افتح صفحة الوصف - + Copy نسخ - + Name الاسم - + Download link رابط التنزيل - + Description page URL URL صفحة الوصف - + Searching... يبحث... - + Search has finished انتهى البحث - + Search aborted تم إلغاء البحث - + An error occurred during search... حدث خطأ أثناء البحث... - + Search returned no results البحث لم يسفر عن أي نتائج - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility وضوح العامود - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها @@ -8880,104 +9343,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. تنسيق ملحق محرك البحث غير معروف. - + Plugin already at version %1, which is greater than %2 الملحق موجود بالفعل في الإصدار %1، وهو أكبر من %2 - + A more recent version of this plugin is already installed. تم بالفعل تثبيت إصدار أحدث من هذا الملحق. - + Plugin %1 is not supported. الملحقة %1 غير مدعومة. - - + + Plugin is not supported. المُلحقة غير مدعومة. - + Plugin %1 has been successfully updated. تم تحديث المُلحقة %1 بنجاح. - + All categories كل الفئات - + Movies أفلام - + TV shows برامج تلفزيونية - + Music موسيقى - + Games ألعاب - + Anime رسوم متحركة - + Software برمجيات - + Pictures صور - + Books كتب - + Update server is temporarily unavailable. %1 خادوم التحديث غير متاح مؤقتا. %1 - - + + Failed to download the plugin file. %1 فشل في تنزيل ملف المُلحقة. %1 - + Plugin "%1" is outdated, updating to version %2 الملحق "%1" قديم ، ويتم التحديث إلى الإصدار %2 - + Incorrect update info received for %1 out of %2 plugins. تلقي معلومات تحديث غير صحيحة لـ %1 من %2 ملحق. - + Search plugin '%1' contains invalid version string ('%2') يحتوي ملحق البحث '%1' على سلسلة إصدار غير صالح ('%2') @@ -8987,114 +9450,145 @@ Those plugins were disabled. - - - - Search البحث - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. لا توجد أي مُلحقات بحث مثبتة. انقر فوق زر "مُلحقات البحث..." في الجزء السفلي الأيسر من النافذة لتثبيت البعض. - + Search plugins... مُلحقات البحث... - + A phrase to search for. عبارة للبحث عنها. - + Spaces in a search term may be protected by double quotes. يمكن حماية المسافات في مصطلح البحث بعلامات اقتباس مزدوجة. - + Example: Search phrase example المثال: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>"السلام عليكم"</b>: يبحث عن<b>السلام عليكم</b> - + All plugins جميع الملحقات - + Only enabled المُفعلة فقط - + + + Invalid data format. + تنسيق البيانات غير صالح. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>السلام عليكم</b>: يبحث عن<b>السلام</b>و<b>عليكم</b> - + + Refresh + + + + Close tab إغلاق علامة التبويب - + Close all tabs أغلق كل علامات التبويب - + Select... اختر... - - - + + Search Engine مُحرك البحث - + + Please install Python to use the Search Engine. برجاء تثبيت Python لاستخدام محرك البحث. - + Empty search pattern نمط البحث فارغ - + Please type a search pattern first الرجاء كتابة نمط البحث اولا - + + Stop أوقف + + + SearchWidget::DataStorage - - Search has finished - اكتمل البحث + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - فشلت عملية البحث + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9102,22 +9596,22 @@ Click the "Search plugins..." button at the bottom right of the window Detected unclean program exit. Using fallback file to restore settings: %1 - تم الكشف عن خروج برنامج غير نظيف. استخدام الملف الاحتياطي لاستعادة الإعدادات: %1 + تم اكتشاف خروج غير سليم للبرنامج. استخدام الملف الاحتياطي لاستعادة الإعدادات: %1 An access error occurred while trying to write the configuration file. - حدث خطأ في الوصول أثناء محاولة كتابة ملف التكوين. + حدث خطأ في الوصول أثناء محاولة كتابة ملف الإعدادات. A format error occurred while trying to write the configuration file. - حدث خطأ في التنسيق أثناء محاولة كتابة ملف التضبيط. + حدث خطأ في التنسيق أثناء محاولة كتابة ملف الإعدادات. An unknown error occurred while trying to write the configuration file. - حدث خطأ غير معروف أثناء محاولة كتابة ملف التضبيط. + حدث خطأ غير معروف أثناء محاولة كتابة ملف الإعدادات. @@ -9207,34 +9701,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: الرفع: - - - + + + - - - + + + KiB/s ك.ب/ث - - + + Download: التنزيل: - + Alternative speed limits حدود السرعة البديلة @@ -9426,32 +9920,32 @@ Click the "Search plugins..." button at the bottom right of the window متوسط الوقت في الصف: - + Connected peers: القرناء المتصلون: - + All-time share ratio: إجمالي نسبة المشاركة كل الوقت: - + All-time download: إجمالي التنزيل كل الوقت: - + Session waste: هدر الجلسة: - + All-time upload: إجمالي الرفع كل الوقت: - + Total buffer size: إجمالي حجم التخزين المؤقت: @@ -9466,12 +9960,12 @@ Click the "Search plugins..." button at the bottom right of the window وظائف الإدخال/الإخراج في الصف: - + Write cache overload: مخبأة الكتابة الزائدة: - + Read cache overload: مخبأة القراءة الزائدة: @@ -9490,51 +9984,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: حالة الاتصال: - - + + No direct connections. This may indicate network configuration problems. لا اتصالات مباشرة. قد يشير هذا إلى وجود مشاكل في إعداد الشبكة. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nodes - + qBittorrent needs to be restarted! يحتاج كيوبت‎تورنت لإعادة تشغيله! - - - + + + Connection Status: حالة الاتصال: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. غير متصل. قد تعود المشكلة إلى فشل البرنامج في الاستماع إلى المنفذ المختار للاتصالات القادمة. - + Online متصل - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits انقر للتبديل إلى حدود السرعات البديلة - + Click to switch to regular speed limits انقر للتبديل إلى حدود السرعات العادية @@ -9564,13 +10084,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - المُستأنف (0) + Running (0) + - Paused (0) - المُلبث (0) + Stopped (0) + @@ -9632,36 +10152,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) المُكتمل (%1) + + + Running (%1) + + - Paused (%1) - المُلبث (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) نقل (%1) - - - Resume torrents - استئناف التورنتات - - - - Pause torrents - إلباث التورنتات - Remove torrents إزالة التورنت - - - Resumed (%1) - المُستأنف (%1) - Active (%1) @@ -9733,31 +10253,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags إزالة الوسوم غير المستخدمة - - - Resume torrents - استئناف التورنتات - - - - Pause torrents - إلباث التورنتات - Remove torrents إزالة التورنت - - New Tag - وسم جديد + + Start torrents + + + + + Stop torrents + Tag: الوسم: + + + Add tag + + Invalid tag name @@ -9794,7 +10314,7 @@ Click the "Search plugins..." button at the bottom right of the window Save path for incomplete torrents: - حفظ المسار للتورنتات غير المكتملة: + حفظ مسار التورنتات غير المكتملة: @@ -9844,7 +10364,7 @@ Click the "Search plugins..." button at the bottom right of the window Invalid category name - اسم الفئة غير صالحة + اسم الفئة غير صالح @@ -9904,32 +10424,32 @@ Please choose a different name and try again. TorrentContentModel - + Name الاسم - + Progress التقدّم - + Download Priority أولوية التنزيل - + Remaining إعادة التسمية - + Availability التوافر - + Total Size الحجم الكلي @@ -9974,98 +10494,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error خطأ في إعادة التسمية - + Renaming إعادة التسمية - + New name: الاسم الجديد: - + Column visibility وضوح الصفوف - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها - + Open فتح - + Open containing folder افتح محتوى الملف - + Rename... إعادة التسمية... - + Priority الأولوية - - + + Do not download لا تنزّل - + Normal عادي - + High مرتفع - + Maximum الحد الأقصى - + By shown file order حسب ترتيب الملف الموضح - + Normal priority الأولوية العادية - + High priority ذا أهيمة عليا - + Maximum priority الأولوية القصوى - + Priority by shown file order الأولوية حسب ترتيب الملف المعروض @@ -10073,17 +10593,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10112,13 +10632,13 @@ Please choose a different name and try again. - + Select file اختر ملفا - + Select folder اختر مجلدا @@ -10193,87 +10713,83 @@ Please choose a different name and try again. الحقول - + You can separate tracker tiers / groups with an empty line. يمكنك فصل طبقات/مجموعات المتتبعات بسطر فارغ. - + Web seed URLs: روابط وِب البذر: - + Tracker URLs: روابط المتتبعات: - + Comments: التعليقات: - + Source: المصدر: - + Progress: التقدم: - + Create Torrent إنشاء التورنت - - + + Torrent creation failed فشل إنشاء التورنت - + Reason: Path to file/folder is not readable. السبب: مسار الملف أو المجلد غير قابل للقراءة. - + Select where to save the new torrent حدد مكان حفظ التورنت الجديد - + Torrent Files (*.torrent) ملفات التورنت (torrent.*) - Reason: %1 - السبب: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + فشل إضافة تورنت - + Torrent creator مُنشئ التورنت - + Torrent created: التورنت المُنشئ: @@ -10281,32 +10797,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 فشل تحميل تضبيط المجلدات المراقبة. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" فشل تحليل تضبيط المجلدات المراقبة من %1. خطأ: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." فشل تحميل تكوين المجلدات المراقبة من %1. خطأ: "تنسيق البيانات غير صالح." - + Couldn't store Watched Folders configuration to %1. Error: %2 تعذر تخزين تضبيط "المجلدات المراقبة" إلى %1. خطأ: %2 - + Watched folder Path cannot be empty. لا يمكن أن يكون مسار المجلد المراقب فارغًا. - + Watched folder Path cannot be relative. لا يمكن أن يكون مسار المجلد المراقب نسبيًا. @@ -10314,44 +10830,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 ملف المغناطيس كبير جدًا. الملف: %1 - + Failed to open magnet file: %1 فشل فتح ملف المغناطيس: %1 - + Rejecting failed torrent file: %1 رفض ملف التورنت الفاشل: %1 - + Watching folder: "%1" مراقبة مجلد: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - فشل في تخصيص الذاكرة عند قراءة الملف. الملف: "%1". خطأ: "%2" - - - - Invalid metadata - بيانات وصفية خاطئة - - TorrentOptionsDialog @@ -10380,173 +10883,161 @@ Please choose a different name and try again. استخدم مسارًا آخر للتورنت غير المكتمل - + Category: الفئة: - - Torrent speed limits - حدود سرعة التورنت + + Torrent Share Limits + - + Download: التنزيل: - - + + - - + + Torrent Speed Limits + + + + + KiB/s ك.بايت/ث - + These will not exceed the global limits هذه لن تتجاوز الحدود العامة - + Upload: الرفع: - - Torrent share limits - حدود مشاركة التورنت - - - - Use global share limit - استخدام حد المشاركة العامة - - - - Set no share limit - تعيين بدون حد مشاركة - - - - Set share limit to - تعيين حد المشاركة إلى - - - - ratio - النسبة - - - - total minutes - إجمالي الدقائق - - - - inactive minutes - دقائق غير نشطة - - - + Disable DHT for this torrent تعطيل DHT لهذا التورنت - + Download in sequential order تنزيل بترتيب تسلسلي - + Disable PeX for this torrent تعطيل PeX لهذا التورنت - + Download first and last pieces first تنزيل أول وآخر قطعة أولًا - + Disable LSD for this torrent تعطيل LSD لهذا التورنت - + Currently used categories الفئات المستخدمة حاليا - - + + Choose save path اختر مسار الحفظ - + Not applicable to private torrents لا ينطبق على التورنتات الخاصة - - - No share limit method selected - لم يتم تحديد طريقة حد المشاركة - - - - Please select a limit method first - الرجاء تحديد طريقة الحد أولا - TorrentShareLimitsWidget - - - + + + + Default - + إهمال - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + د - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + إزالة التورنت + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + تفعيل البذر الخارق للتورنت + + + Ratio: @@ -10559,32 +11050,32 @@ Please choose a different name and try again. وسوم تورنت - - New Tag - وسم جديد + + Add tag + - + Tag: الوسم: - + Invalid tag name اسم وسم غير سليم - + Tag name '%1' is invalid. وسم '%1' غير صالح. - + Tag exists الوسم موجود - + Tag name already exists. اسم الوسم موجود بالفعل. @@ -10592,115 +11083,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. خطأ: ملف التورنت '%1' غير صالح. - + Priority must be an integer يجب أن تكون الأولوية عددًا صحيحًا - + Priority is not valid الأولوية غير صالحة - + Torrent's metadata has not yet downloaded البيانات الوصفية للتورنت لم تنزل بعد - + File IDs must be integers يجب أن تكون معرفات الملفات أعدادًا صحيحة - + File ID is not valid معرف الملف غير صالح - - - - + + + + Torrent queueing must be enabled يجب تفعيل قائمة اصطفاف التورنت - - + + Save path cannot be empty مسار الحفظ لا يمكن أن يكون فارغا - - + + Cannot create target directory لا يمكن إنشاء الدليل الهدف - - + + Category cannot be empty لا يمكن أن يكون الفئة فارغة - + Unable to create category تعذّر إنشاء الفئة - + Unable to edit category تعذّر تعديل الفئة - + Unable to export torrent file. Error: %1 غير قادر على تصدير ملف تورنت. الخطأ: %1 - + Cannot make save path تعذّر إنشاء مسار الحفظ - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid معلمة "sort" غير صالح - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" ليس فهرس ملف صالح. - + Index %1 is out of bounds. الفهرس %1 خارج الحدود. - - + + Cannot write to directory تعذّر الكتابة إلى المجلد - + WebUI Set location: moving "%1", from "%2" to "%3" تعيين وجهة واجهة الوِب الرسومية: ينقل "%1" من "%2" إلى "%3" - + Incorrect torrent name اسم تورنت غير صحيح - - + + Incorrect category name اسم الفئة غير صحيحة @@ -10730,196 +11236,191 @@ Please choose a different name and try again. TrackerListModel - + Working يعمل - + Disabled مُعطّل - + Disabled for this torrent معطل لهذا التورنت - + This torrent is private هذا التورنت خاص - + N/A لا يوجد - + Updating... يُحدّث... - + Not working لا يعمل - + Tracker error - + Unreachable - + Not contacted yet لم يتصل بعد - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - مستوى - - - - Protocol + URL/Announce Endpoint - Status - الحالة - - - - Peers - القرناء - - - - Seeds - البذور - - - - Leeches - المُحمّلِين - - - - Times Downloaded - مرات التنزيل - - - - Message - الرسالة - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + مستوى + + + + Status + الحالة + + + + Peers + القرناء + + + + Seeds + البذور + + + + Leeches + المُحمّلِين + + + + Times Downloaded + مرات التنزيل + + + + Message + الرسالة + TrackerListWidget - + This torrent is private هذا التورنت خاص - + Tracker editing تعديل المتتبع - + Tracker URL: رابط المتتبع: - - + + Tracker editing failed فشل تعديل المتتبع - + The tracker URL entered is invalid. رابط المتتبع الذي أدخلته غير صالح. - + The tracker URL already exists. رابط المتتبع موجود بالفعل. - + Edit tracker URL... تعديل رابط المتتبع... - + Remove tracker إزالة المتتبع - + Copy tracker URL نسخ رابط المتتبع - + Force reannounce to selected trackers إجبار إعادة الإعلان للمتتبعات المحددة - + Force reannounce to all trackers إجبار إعادة الإعلان لجميع المتتبعات - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها - + Add trackers... إضافة متتبعات... - + Column visibility وضوح العامود @@ -10937,37 +11438,37 @@ Please choose a different name and try again. قائمة المتتبعات المراد إضافتها (واحد لكل سطر): - + µTorrent compatible list URL: رابط قائمة يوتورنت المتوافقة: - + Download trackers list تحميل قائمة المتتبعات - + Add إضافة - + Trackers list URL error خطأ في عنوان URL لقائمة المتتبعات - + The trackers list URL cannot be empty لا يمكن أن يكون عنوان URL لقائمة المتتبعات فارغًا - + Download trackers list error تنزيل خطأ قائمة المتتبعات - + Error occurred when downloading the trackers list. Reason: "%1" حدث خطأ أثناء تنزيل قائمة المتتبعات. السبب: "%1" @@ -10975,62 +11476,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) تحذير (%1) - + Trackerless (%1) بدون متتبعات (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker إزالة المتتبع - - Resume torrents - استئناف التورنتات + + Start torrents + - - Pause torrents - إلباث التورنتات + + Stop torrents + - + Remove torrents إزالة التورنت - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter الكل (%1) @@ -11039,7 +11540,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument "الوضع": وسيطة غير صالحة @@ -11131,11 +11632,6 @@ Please choose a different name and try again. 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. يتحقق من بيانات الاستئناف - - - Paused - مُلبث - Completed @@ -11159,220 +11655,252 @@ Please choose a different name and try again. خطأ - + Name i.e: torrent name الاسم - + Size i.e: torrent size الحجم - + Progress % Done التقدّم - + + Stopped + متوقف + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) الحالة - + Seeds i.e. full sources (often untranslated) البذور - + Peers i.e. partial sources (often untranslated) القرناء - + Down Speed i.e: Download speed سرعة التنزيل - + Up Speed i.e: Upload speed سرعة الرفع - + Ratio Share ratio النسبة - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left الوقت المتبقي - + Category الفئة - + Tags الوسوم - + Added On Torrent was added to transfer list on 01/01/2010 08:00 أُضيف في - + Completed On Torrent was completed on 01/01/2010 08:00 أكتمل في - + Tracker المتتبع - + Down Limit i.e: Download limit حدّ التنزيل - + Up Limit i.e: Upload limit حدّ الرفع - + Downloaded Amount of data downloaded (e.g. in MB) تم تنزيله - + Uploaded Amount of data uploaded (e.g. in MB) رُفعت - + 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) رفع الجلسة - + Remaining Amount of data left to download (e.g. in MB) المتبقي - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) فترة النشاط - + + Yes + نعم + + + + No + لا + + + Save Path Torrent save path حفظ المسار - + Incomplete Save Path Torrent incomplete save path مسار الحفظ غير مكتمل - + Completed Amount of data completed (e.g. in MB) تم تنزيل - + Ratio Limit Upload share ratio limit حد نسبة المشاركة - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole آخر إكمال شوهِد في - + Last Activity Time passed since a chunk was downloaded/uploaded آخر نشاط - + Total Size i.e. Size including unwanted data الحجم الكلي - + Availability The number of distributed copies of the torrent التوافر - + Info Hash v1 i.e: torrent info hash v1 تجزئة المعلومات v1 - + Info Hash v2 i.e: torrent info hash v2 تجزئة المعلومات v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A لا يوجد - + %1 ago e.g.: 1h 20m ago قبل %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (بذرت لـ %2) @@ -11381,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility وضوح الصفوف - + Recheck confirmation اعادة التأكد - + Are you sure you want to recheck the selected torrent(s)? هل أنت متأكد من رغبتك في اعادة التأكد من الملفات المختارة؟ - + Rename تغيير التسمية - + New name: الاسم الجديد: - + Choose save path اختر مسار الحفظ - - Confirm pause - تأكيد الإيقاف المؤقت - - - - Would you like to pause all torrents? - هل ترغب في إيقاف جميع ملفات التورنت مؤقتًا؟ - - - - Confirm resume - تأكيد الاستئناف - - - - Would you like to resume all torrents? - هل ترغب في استئناف جميع ملفات التورنت؟ - - - + Unable to preview غير قادر على المعاينة - + The selected torrent "%1" does not contain previewable files لا يحتوي التورنت المحدد "%1" على ملفات قابلة للمعاينة - + Resize columns تغيير حجم الأعمدة - + Resize all non-hidden columns to the size of their contents قم بتغيير حجم جميع الأعمدة غير المخفية إلى حجم محتوياتها - + Enable automatic torrent management تفعيل الإدارة التلقائية للتورنت - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. هل أنت متأكد من أنك تريد تفعيل الإدارة التلقائية للتورنت المحدد؟ قد يتم نقلهم. - - Add Tags - إضافة وسوم - - - + Choose folder to save exported .torrent files اختر مجلدًا لحفظ ملفات torrent. المصدرة - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" فشل تصدير ملف .torrent. تورنت: "%1". حفظ المسار: "%2". السبب: "%3" - + A file with the same name already exists يوجد ملف بنفس الاسم بالفعل - + Export .torrent file error خطأ في تصدير ملف torrent. - + Remove All Tags إزالة جميع الوسوم - + Remove all tags from selected torrents? إزالة جميع الوسوم من التورنتات المُختارة؟ - + Comma-separated tags: وسوم مفصولة بفواصل: - + Invalid tag وسم غير صالح - + Tag name: '%1' is invalid اسم الوسم: '%1' غير صالح - - &Resume - Resume/start the torrent - ا&ستئناف - - - - &Pause - Pause the torrent - إ&لباث - - - - Force Resu&me - Force Resume/start the torrent - فرض الا&ستئناف - - - + Pre&view file... م&عاينة الملف... - + Torrent &options... &خيارات التورنت... - + Open destination &folder فتح وج&هة المجلد - + Move &up i.e. move up in the queue &حرّك لأعلى - + Move &down i.e. Move down in the queue حرّك لأس&فل - + Move to &top i.e. Move to top of the queue حرّك لأقمة - + Move to &bottom i.e. Move to bottom of the queue انتق&ل لأسفل - + Set loc&ation... تحديد المك&ان... - + Force rec&heck فرض إعا&دة التحقق - + Force r&eannounce فر&ض الإعلان - + &Magnet link &رابط المغناطيس - + Torrent &ID مع&رف التورنت - + &Comment - + &Name ا&سم - + Info &hash v1 ت&جزئة المعلومات v1 - + Info h&ash v2 ت&جزئة المعلومات v2 - + Re&name... &غيّر الاسم - + Edit trac&kers... تحر&ير التتبع... - + E&xport .torrent... &تصدير .torrent... - + Categor&y ال&فئة - + &New... New category... جدي&د... - + &Reset Reset category إعادة ت&عيين - + Ta&gs الوس&وم - + &Add... Add / assign multiple tags... إ&ضافة... - + &Remove All Remove all tags إزالة الك&ل - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &صف - + &Copy ن&سخ - + Exported torrent is not necessarily the same as the imported التورنت المُصدَّر ليس بالضرورة نفس المستورد - + Download in sequential order تنزيل بترتيب تسلسلي - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. حدثت أخطاء عند تصدير ملفات .torrent. تحقق من سجل التنفيذ للحصول على التفاصيل. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &إزالة - + Download first and last pieces first تنزيل أول وآخر قطعة أولًا - + Automatic Torrent Management إدارة ذاتية للتورنت - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category الوضع التلقائي يعني أن العديد من خصائص التورنت (مثل مسار الحفظ) سيتم تحديده عن طريق الفئة المرتبطة بها - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - لا يمكن فرض إعادة الإعلان إذا كان التورنت متوقفًا مؤقتًا/في الصف/خطأ/جارٍ التحقق - - - + Super seeding mode نمط البذر الخارق @@ -11758,28 +12266,28 @@ Please choose a different name and try again. معرف الأيقونة - + UI Theme Configuration. تضبيط سمة واجهة المستخدم - + The UI Theme changes could not be fully applied. The details can be found in the Log. لا يمكن تطبيق تغييرات سمة واجهة المستخدم بشكل كامل. يمكن العثور على التفاصيل في السجل. - + Couldn't save UI Theme configuration. Reason: %1 تعذر حفظ تضبيط سمة واجهة المستخدم. السبب: %1 - - + + Couldn't remove icon file. File: %1. لا يمكن إزالة ملف الأيقونة. الملف: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. لا يمكن نسخ ملف الأيقونة. المصدر: %1. الوجهة: %2. @@ -11787,7 +12295,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" فشل تحميل سمة الواجهة الرسومية من الملف: "%1" @@ -11818,20 +12331,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" فشل ترحيل التفضيلات: واجهة الوِب الرسومية https ، الملف: "%1"، الخطأ: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" التفضيلات التي تم ترحيلها: واجهة الوِب الرسومية https ، البيانات المصدرة إلى ملف: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". تم العثور على قيمة غير صالحة في ملف التكوين ، وإعادتها إلى الوضع الافتراضي. المفتاح: "%1". قيمة غير صالحة: "%2". @@ -11839,32 +12353,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11956,72 +12470,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. تم تحديد اسم كعكات الجلسة غير المقبول: '%1'. يتم استخدام واحد افتراضي. - + Unacceptable file type, only regular file is allowed. نوع ملف غير مقبول، الملفات الاعتيادية فقط هي المسموح بها. - + Symlinks inside alternative UI folder are forbidden. الروابط الرمزية الموجودة داخل مجلد واجهة المستخدم البديلة ممنوعة. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" فاصل ':' مفقودة في رأس HTTP المخصص لواجهة الوِب الرسومية: "%1" - + Web server error. %1 خطأ في خادم الويب. %1 - + Web server error. Unknown error. خطأ في خادم الويب. خطأ غير معروف. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' واجهة الوِب الرسومية: رأس الأصل وعدم تطابق أصل الهدف! آي بي المصدر: '%1'. رأس الأصل: '%2'. أصل الهدف: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' واجهة الوِب الرسومية: رأس المُحيل وعدم تطابق أصل الهدف! آي بي المصدر: '%1'. رأس المُحيل: '%2'. أصل الهدف: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' واجهة الوِب الرسومية: رأس مضيف غير صالح، عدم تطابق المنفذ. طلب الآي بي المصدر: '%1'. منفذ الخادم: '%2'. رأس المضيف المتلقى: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' واجهة الوِب الرسومية: رأس مضيف غير صالح. طلب آي بي المصدر: '%1'. رأس المضيف المتلقى: '%2' @@ -12029,125 +12543,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + خطأ غير معروف + + misc - + B bytes ب - + KiB kibibytes (1024 bytes) ك.ب - + MiB mebibytes (1024 kibibytes) م.ب - + GiB gibibytes (1024 mibibytes) ج.ب - + TiB tebibytes (1024 gibibytes) ت.ب - + PiB pebibytes (1024 tebibytes) ب.ب - + EiB exbibytes (1024 pebibytes) إ.ب - + /s per second - + %1s e.g: 10 seconds - %1د {1s?} + - + %1m e.g: 10 minutes %1د - + %1h %2m e.g: 3 hours 5 minutes %1س %2د - + %1d %2h e.g: 2 days 10 hours %1ي %2س - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) غير معروف - + qBittorrent will shutdown the computer now because all downloads are complete. سيتم إطفاء تشغيل الحاسوب الآن لأن جميع التنزيلات اكتملت. - + < 1m < 1 minute < د diff --git a/src/lang/qbittorrent_az@latin.ts b/src/lang/qbittorrent_az@latin.ts index eeaf15052..18898bbfc 100644 --- a/src/lang/qbittorrent_az@latin.ts +++ b/src/lang/qbittorrent_az@latin.ts @@ -12,75 +12,75 @@ Haqqında - + Authors Müəlliflər - + Current maintainer Cari tərtibatçı - + Greece Yunanıstan - - + + Nationality: Milliyət: - - + + E-mail: E-poçt: - - + + Name: Adı: - + Original author Orijinal müəllifi - + France Fransa - + Special Thanks Xüsusi təşəkkürlər - + Translators Tərcüməçilər - + License Lisenziya - + Software Used İstifadə olunan proqram təminatı - + qBittorrent was built with the following libraries: qBittorrent aşağıdakı kitabxanalar ilə hazılandı: - + Copy to clipboard Mübadilə yaddaşına kopyalayın @@ -91,8 +91,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Müəllif Hüquqları: %1 2006-2024 qBittorrent layihəsi + Copyright %1 2006-2025 The qBittorrent project + Müəllif Hüquqları: %1 2006-2025 qBittorrent layihəsi @@ -164,15 +164,10 @@ Saxlama yeri - + Never show again Bir daha göstərmə - - - Torrent settings - Torrent parametrləri - Set as default category @@ -189,12 +184,12 @@ Torrenti başlat - + Torrent information Torrent məlumatı - + Skip hash check Heş yoxlamasını ötürmək @@ -203,6 +198,11 @@ Use another path for incomplete torrent Tamamlanmamış torrentlər üçün başqa yoldan istifadə edin + + + Torrent options + Torrent seçimləri + Tags: @@ -226,73 +226,78 @@ Stop condition: - Dayandma vəziyyəti: + Dayanma vəziyyəti: - - + + None Heç nə - - + + Metadata received Meta məlumatları alındı - - + + Torrents that have metadata initially will be added as stopped. + Öncədən meta məlumatlara malik olan torrentlər dayandırılmış kimi əılavə ediləcək. + + + + Files checked Fayllar yoxlanıldı - + Add to top of queue Növbənin ən üst sırasına əlavə et - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Əgər bu xana işarələnərsə, seçimlər pəncərəsindəki "Yükləmə" səhifəsinin ayarlarına baxmayaraq .torrent faylı silinməyəcək - + Content layout: Məzmun maketi: - + Original Orijinal - + Create subfolder Alt qovluq yarat - + Don't create subfolder Alt qovluq yaratmamaq - + Info hash v1: məlumat heş'i v1 - + Size: Ölçü: - + Comment: Şərh: - + Date: Tarix: @@ -322,152 +327,147 @@ Son istifadə olunan saxlama yolunu xatırla - + Do not delete .torrent file .torrent faylını silməmək - + Download in sequential order Ardıcıl şəkildə yüklə - + Download first and last pieces first İlk öncə birinci və sonuncu parçaları yükləmək - + Info hash v2: Məlumat heş'i v2: - + Select All Hamısını seçin - + Select None Heç birini seçməyin - + Save as .torrent file... .torrent faylı kimi saxla... - + I/O Error Giriş/Çıxış Xətası - + Not Available This comment is unavailable Mövcud Deyil - + Not Available This date is unavailable Mövcud Deyil - + Not available Mövcud Deyil - + Magnet link Magnet linki - + Retrieving metadata... Meta məlumatlar alınır... - - + + Choose save path Saxlama yolunu seçin - + No stop condition is set. Dayanma vəziyyəti təyin edilməyib. - + Torrent will stop after metadata is received. Meta məlumatları alındıqdan sonra torrent dayanacaq. - - Torrents that have metadata initially aren't affected. - İlkin meta məlumatları olan torrentlər dəyişilməz qalır. - - - + Torrent will stop after files are initially checked. Faylların ilkin yoxlanışından sonra torrrent daynacaq. - + This will also download metadata if it wasn't there initially. Əgər başlanğıcda meta məlumatlar olmasa onlar da yüklənəcək. - - + + N/A Əlçatmaz - + %1 (Free space on disk: %2) %1 (Diskin boş sahəsi: %2) - + Not available This size is unavailable. Mövcud deyil - + Torrent file (*%1) Torrent fayl (*%1) - + Save as torrent file Torrent faylı kimi saxlamaq - + Couldn't export torrent metadata file '%1'. Reason: %2. '%1' meta verilənləri faylı ixrac edilə bilmədi. Səbəb: %2. - + Cannot create v2 torrent until its data is fully downloaded. Tam verilənləri endirilməyənədək v2 torrent yaradıla bilməz. - + Filter files... Faylları süzgəclə... - + Parsing metadata... Meta məlumatlarının analizi... - + Metadata retrieval complete Meta məlumatlarının alınması başa çatdı @@ -475,35 +475,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrent endirilir... Mənbə: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Torrent əlavə edilə bilmədi. Mənbə: "%1", Səbəb: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Torrentin dublikatının əlavə edilməsinə cəhd aşkarlandı. Mənbə: %1. Mövcud torrent: %2. Nəticə: %3 - - - + Merging of trackers is disabled İzləyicilərin birləşdirilməsi söndürülüb - + Trackers cannot be merged because it is a private torrent izləyicilər birləşdirilə bilməz, çünki bu fərdi torrentdir - + Trackers are merged from new source Yeni torrentdən izləyicilər birləşdirildi + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -575,7 +575,7 @@ Stop condition: - Dayandma vəziyyəti: + Dayanma vəziyyəti: @@ -587,6 +587,11 @@ Skip hash check Heş yoxlamasını ötürün + + + Torrent share limits + Torrent paylaşım limitləri + @@ -661,753 +666,863 @@ AdvancedSettings - - - - + + + + MiB MB - + Recheck torrents on completion Yüklənmə tamamlandıqdan sonra torrentləri yoxlamaq - - + + ms milliseconds msan - + Setting Ayarlar - + Value Value set for this setting Dəyər - + (disabled) (söndürülüb) - + (auto) (avtomatik) - + + min minutes dəq - + All addresses Bütün ünvanlar - + qBittorrent Section qBittorrent Bölməsi - - + + Open documentation Sənədləri açmaq - + All IPv4 addresses Bütün İPv4 ünvanları - + All IPv6 addresses Bütün İPv6 ünvanları - + libtorrent Section libtorrent bölməsi - + Fastresume files Tez bərpa olunan fayllar - + SQLite database (experimental) SQLite verilənlər bazası (təcrübi) - + Resume data storage type (requires restart) Verilənləri saxlama növünü davam etdirin (yenidən başlatmaq tələb olunur) - + Normal Normal - + Below normal Normadan aşağı - + Medium Orta - + Low Aşağı - + Very low Çox aşağı - + Physical memory (RAM) usage limit Fiziki yaddaş (RAM) istifadəsi limiti - + Asynchronous I/O threads Zamanla bir birinə uzlaşmayan Giriş/Çıxış axınları - + Hashing threads Ünvanlanan axınlar - + File pool size Dinamik yaddaş ehtiyatı faylının ölçüsü - + Outstanding memory when checking torrents Torrentləri yoxlayarkən icrası gözlənilən yaddaş - + Disk cache Disk keşi - - - - + + + + + s seconds san - + Disk cache expiry interval Disk keşinin sona çatma müddəti - + Disk queue size Disk növbəsi ölçüsü - - + + Enable OS cache ƏS keşini aktiv etmək - + Coalesce reads & writes Oxuma, yazma əməliyyatlarını birləşdirmək - + Use piece extent affinity Hissələrin yaxınlıq dərəcəsindən istifadə etmək - + Send upload piece suggestions Göndərmə parçası təkliflərini göndərmək - - - - + + + + + 0 (disabled) 0 (söndürülüb) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Davametmə məlumatlarının saxlanılması aralığı (0: söndürülüb) - + Outgoing ports (Min) [0: disabled] Çıxış portları (Ən az)[0: söndürülüb] - + Outgoing ports (Max) [0: disabled] Çıxış portları (Ən çox) [0: söndürülüb] - + 0 (permanent lease) 0 (daimi icarə) - + UPnP lease duration [0: permanent lease] UPnP icarə müddəti [0: daimi icarə] - + Stop tracker timeout [0: disabled] İzləyici vaxtını dayandır [0: söndürülb] - + Notification timeout [0: infinite, -1: system default] Bildirişin bitmə vaxtı [0: sonsuz, -1: sistemdəki standart] - + Maximum outstanding requests to a single peer Hər iştirakçıya düşən ən çox icra olunmamış sorğu - - - - - + + + + + KiB KB - + (infinite) (sonsuz) - + (system default) (sistemdəki standart) - + + Delete files permanently + Faylları həmişəlik silmək + + + + Move files to trash (if possible) + Faylları səbətə atmaq (mümkün olduqda) + + + + Torrent content removing mode + Torrent məzmununun silinməsi rejimi + + + This option is less effective on Linux Bu seçim Linuxda az effektlidir - + Process memory priority Proses yaddaşının üstünlüyü - + Bdecode depth limit Bdecode dərinliyi həddi - + Bdecode token limit Bdecode tokenləri həddi - + Default Standart - + Memory mapped files Yaddaş ilə əlaqəli fayllar - + POSIX-compliant POSİX ilə uyğun - + + Simple pread/pwrite + Sadə oxuma/yazma + + + Disk IO type (requires restart) Disk giriş/çıxış növü (yenidən başladılmalıdır) - - + + Disable OS cache ƏS keşini söndür - + Disk IO read mode Diskin giriş/çıxışının oxu rejimi - + Write-through Başdan sona yazma - + Disk IO write mode Diskin giriş/çıxışının yazı rejimi - + Send buffer watermark Buferin su nişanını göndərmək - + Send buffer low watermark Buferin zəif su nişanını göndərin - + Send buffer watermark factor Bufer su nişanı əmsalını göndərmək - + Outgoing connections per second Hər saniyədə sərf olunan bağlantı - - + + 0 (system default) 0 (sistemdəki standart) - + Socket send buffer size [0: system default] Soket göndərmə bufer ölçüsü [0: sistemdəki standart] - + Socket receive buffer size [0: system default] Soket qəbul etmə bufer ölçüsü [0: sistemdəki standart] - + Socket backlog size Soket yığma ölçüsü - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Statistik intervalı saxlamaq [0: sönülü] + + + .torrent file size limit .torrent faylı ölçüsünün həddi - + Type of service (ToS) for connections to peers Iştirakçılarla bağlantı üçün xidmət növü (ToS) - + Prefer TCP TCP tərcihi - + Peer proportional (throttles TCP) İştirakçılarla mütənasib (TCP'ni məhdudlaşdırır) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Beynəlxalq domen adı (İDN) dəstəkləmək - + Allow multiple connections from the same IP address Eyni İP ünvanından çoxsaylı bağlantılara icazə vermək - + Validate HTTPS tracker certificates HTTPS izləyici sertifikatlarını təsdiq etmək - + Server-side request forgery (SSRF) mitigation Server tərəfindən saxta sorğulardan (SSRF) qorunma - + Disallow connection to peers on privileged ports İmtiyazlı portlarda iştirakçılara qoşulmanı qadağan etmək - + + It appends the text to the window title to help distinguish qBittorent instances + O, qBittorent nümunələrini fərqləndirmək üçün pəncərə başlığına mətn əlavə edir. + + + + Customize application instance name + Tətbiq nümunəsi adının dəyişdirilməsi + + + It controls the internal state update interval which in turn will affect UI updates Bu yenilənmə tezliyinin daxili vəziyətini idarə edir, bu da öz növəsində İİ yenilənmələrinə təsir edəcək - + Refresh interval Yenilənmə aralığı - + Resolve peer host names İştirakçıların host adlarını müəyyən etmək - + IP address reported to trackers (requires restart) İP ünvanı izləyicilərə bildirildi (yenidən başladılmalıdır) - + + Port reported to trackers (requires restart) [0: listening port] + Port izləyicilərə məlumat verdi (yenidən başladaılmalı) [0: dinləmə portu] + + + Reannounce to all trackers when IP or port changed İP və ya port dəyişdirildiyi zaman təkrar bildirmək - + Enable icons in menus Menyudakı nişanları aktiv edin - + + Attach "Add new torrent" dialog to main window + Əsas pəncərəyə "Yeni torrent əlavə edin" dialoqunu əlavə edin + + + Enable port forwarding for embedded tracker Daxildə olan izləyicilər üçün port yönləndirməsini aktiv et. - + Enable quarantine for downloaded files Endirilmiş fayllar üçün qarantini aktiv edin - + Enable Mark-of-the-Web (MOTW) for downloaded files Endirilmiş fayllar üçün veb markasını (Mark-of-the-Web - MOTW) aktiv edin - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Sertifikatın doğrulanmasına və qeyri-torrent protokol fəaliyyətlərinə təsir göstərir (məs., RSS lentləri, proqram yenilənmələri, torrent faylları, GeoİP məlumatları, və sair) + + + + Ignore SSL errors + SSL xətalarını gözardı etmək + + + (Auto detect if empty) (Boş olmasının avtomatik aşkarlanması) - + Python executable path (may require restart) Python icra faylı yolu (yenidən başlatmaq tələb oluna bilər) - + + Start BitTorrent session in paused state + BitTorrent sesiyasını fasilə vəziyyətində başlatmaq + + + + sec + seconds + san + + + + -1 (unlimited) + -1 (limitsiz) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent sesiyasının sönmə vaxtı [-1: limitsiz] + + + Confirm removal of tracker from all torrents Bütün torrentlərdən izləyicilərin kənarlaşdırılmasını təsdiq etmək - + Peer turnover disconnect percentage İştirakçı axınının kəsilməsi faizi - + Peer turnover threshold percentage İştirakçı axını həddinin faizi - + Peer turnover disconnect interval İştirakçı axınının kəsilmə müddəti - + Resets to default if empty Boş olduqda ilkin vəziyyətinə qaytarmaq - + DHT bootstrap nodes DHT özüyükləmə qovşaqları - + I2P inbound quantity I2P daxilolma miqdarı - + I2P outbound quantity I2P çıxma miqdarı - + I2P inbound length I2P daxilolma uzunluğu - + I2P outbound length I2P çıxma uzunluğu - + Display notifications Bildirişləri göstərmək - + Display notifications for added torrents Əlavə edilmiş torrentlər üçün bildirişləri göstərmək - + Download tracker's favicon İzləyici nişanlarını yükləmək - + Save path history length Saxlama yolunun tarixçəsinin uzunluğu - + Enable speed graphs Sürət qrafikini aktiv etmək - + Fixed slots Sabitləşdirilmiş yuvalar - + Upload rate based Yükləmə sürəti əsasında - + Upload slots behavior Göndərmə yuvalarının davranışı - + Round-robin Dairəvi - + Fastest upload Ən sürətli yükləmə - + Anti-leech Sui-istifadəni əngəlləmək - + Upload choking algorithm Göndərmənin məhdudlaşdırılması alqoritmi - + Confirm torrent recheck Torrentin yenidən yoxlanılmasını təsdiqləmək - + Confirm removal of all tags Bütün yarlıqların silinməsini təsdiq etmək - + Always announce to all trackers in a tier Bir səviyyədəki bütün iştirakçılara həmişə bildirmək - + Always announce to all tiers Bütün səviyyələrə həmişə bildirmək - + Any interface i.e. Any network interface İstənilən interfeys - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Qarışıq %1-TCP rejimi alqoritmi - + Resolve peer countries İştirakçıların ölkələrini müəyyən etmək - + Network interface Şəbəkə interfeysi - + Optional IP address to bind to Qoşulmaq üçün ixtiyari İP ünvanı - + Max concurrent HTTP announces Ən çox paralel HTTP elanıları - + Enable embedded tracker Yerləşdirilmiş izləyicini aktiv etmək - + Embedded tracker port Yerləşdirilmiş izləyici portu + + AppController + + + + Invalid directory path + Səhv kataloq yolu + + + + Directory does not exist + Kataloq mövcud deyil + + + + Invalid mode, allowed values: %1 + Səhv rejim, icazə verilən dəyərlər: %1 + + + + cookies must be array + kukilər massiv olmalıdır + + Application - + Running in portable mode. Auto detected profile folder at: %1 Portativ rejimdə işləyir. Burada avtomatik profil qovluğu aşkar edildi: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Lazımsız əmr sətri bayrağı aşkarlandı: "%1". Portativ rejim işin nisbətən daha tez bərpa olunması anlamına gəlir. - + Using config directory: %1 Bu ayarlar qovluğu istifadə olunur: %1 - + Torrent name: %1 Torrentin adı: %1 - + Torrent size: %1 Torrentin ölçüsü: %1 - + Save path: %1 Saxlama yolu: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent %1 qovluğuna yükləndi. - + + Thank you for using qBittorrent. qBittorrent istifadə etdiyiniz üçün sizə təşəkkür edirik. - + Torrent: %1, sending mail notification Torrent: %1, poçt bildirişi göndərmək - + Add torrent failed Torrent əlavə edilməsi baş tutmadı - + Couldn't add torrent '%1', reason: %2. "%1" torrentini əlavə etmək mümkün olmadı, səbəb: %2 - + The WebUI administrator username is: %1 Veb istfadəçi interfeysi inzibatçısının istifadəçi adı: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Veb istifadəçi interfeysi inzibatçı şifrəsi təyin edilməyib. Bu sesiya üçün müvəqqəti şifrə təqdim olunur: %1 - + You should set your own password in program preferences. Öz şifrənizi proramın ayarlarında təyin etməlisiniz. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Veb istifadəçi interfeysi söndürülüb. Onu aktiv etmək üçün tənzimləmə faylınında dəyişiklik edin. - + Running external program. Torrent: "%1". Command: `%2` Xarici proqram işə düşür. Torrent: "%1". Əmr: "%2" - + Failed to run external program. Torrent: "%1". Command: `%2` Xarici proqramı başlatmaq mümkün olmadı. Torrent: "%1". Əmr: "%2" - + Torrent "%1" has finished downloading "%1" torrenti yükləməni başa çatdırdı - + WebUI will be started shortly after internal preparations. Please wait... Veb İİ daxili hazırlıqdan sonra qısa zamanda başladılacaqdır. Lütfən gözləyin... - - + + Loading torrents... Torrentlər yüklənir... - + E&xit Çı&xış - + I/O Error i.e: Input/Output Error Giriş/Çıxış xətası - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1416,100 +1531,110 @@ Səbəb: %2 - + Torrent added Torrent əlavə edildi - + '%1' was added. e.g: xxx.avi was added. "%1" əlavə edildi. - + Download completed Endirmə tamamlandı - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 başladıldı. Proses İD-si: %2 - + + This is a test email. + Bu slnaq e-poçtudur. + + + + Test email + E-poçtu sınamaq + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. "%1" endirməni tamamladı. - + Information Məlumat - + To fix the error, you may need to edit the config file manually. Xətanı aradan qaldırmaq üçün tənzimləmə faylında dəyişiklik etməniz lazımdır. - + To control qBittorrent, access the WebUI at: %1 qBittorrent'i idarə etmək üçün, bu ünvandan Veb istifadəçi interfeysinə daxil olun: %1 - + Exit Çıxış - + Recursive download confirmation Rekursiv endirmənin təsdiqi - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? "%1" torrenti torrent fayllarından ibarətdir, endirilməsinə davam etmək istəyirsinizmi? - + Never Heç vaxt - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Torrentdən .torrent faylnın rekursiv endirilməsi. Torrentin mənbəyi: "%1". Fayl: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Fiziki yaddaş (RAM) limitini təyin etmək mümkün olmadı. Xəta kodu: %1. Xəta bildirişi: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Fiziki yaddaşın (RAM) ciddi limitini təyin etmək mümkün olmadı. Tələb olunan ölçü: %1. Sistemin ciddi limiti: %2. Xəta kodu: %3. Xəta ismarıcı: "%4" - + qBittorrent termination initiated qBittorrent-in bağlanması başladıldı - + qBittorrent is shutting down... qBittorrent söndürülür... - + Saving torrent progress... Torrentin vəziyyəti saxlanılır... - + qBittorrent is now ready to exit qBittorrent indi çıxışa hazırdır @@ -1517,7 +1642,7 @@ AsyncFileStorage - + Could not create directory '%1'. "%1" qovluğu yaradıla bilmədi. @@ -1588,12 +1713,12 @@ Üstünlük: - + Must Not Contain: İbarət olmamalıdır - + Episode Filter: Bölüm filtri: @@ -1646,263 +1771,263 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin İx&rac... - + Matches articles based on episode filter. Bölüm süzgəcinə əsaslanan oxşar məqalələr - + Example: Nümunə: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match sezonun 2, 5, 8 - 15, 30 və sonrakı epizodları ilə eyniləşəcək - + Episode filter rules: Bölüm filtri qaydaları: - + Season number is a mandatory non-zero value Sezonun nömrəsi mütləq sıfırdan fərqli dəyər olmalıdır - + Filter must end with semicolon Filtr nöqtəli vergül ilə bitməlidir - + Three range types for episodes are supported: Bölümlər üçün, üç aralıq növü dəstəklənir: - + Single number: <b>1x25;</b> matches episode 25 of season one Tək nömrə: <b>1x25;</b> birinci sezonun 25-ci bölümü deməkdir - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normal aralıq: <b>1x25-40;</b> birinci sezonun 25-ci ilə 40-cı arasındakı bölümləri göstərir - + Episode number is a mandatory positive value Bölümün nömrəsi, mütləq müsbət dəyər olmalıdır - + Rules Qaydalar - + Rules (legacy) Qaydalar (köhnəlmiş) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Sonsuz aralıq: <b>1x25-;</b> birinci sezonun 25-ci ilə ondan yuxarı bölümləri və sonrakı sezonun bütün bölümlərini göstərir - + Last Match: %1 days ago Sonuncu oxşar: %1 gün əvvəl - + Last Match: Unknown Sonuncu oxşar: Naməlum - + New rule name Yeni qaydanın adı - + Please type the name of the new download rule. Lütfən, yeni endirmə qaydasının adını yazın. - - + + Rule name conflict Qaydanın adında ziddiyyət - - + + A rule with this name already exists, please choose another name. Bu adla qayda adı artıq mövcuddur, lütfən başqa ad seçin. - + Are you sure you want to remove the download rule named '%1'? Siz, "%1" adlı qaydanı silmək istədiyinizə əminsiniz? - + Are you sure you want to remove the selected download rules? Siz, seçilmiş endirmə qaydalarını silmək istədiyinizə əminsiniz? - + Rule deletion confirmation Qaydanın silinməsinin təsdiq edilməsi - + Invalid action Yalnız əməl - + The list is empty, there is nothing to export. Siyahı boşdur, ixrac edilməcək heç nə yoxdur. - + Export RSS rules RSS qaydalarının ixracı - + I/O Error Giriş/Çıxış xətası - + Failed to create the destination file. Reason: %1 Təyinat faylı yaradıla bilmədi. Səbəb: %1 - + Import RSS rules RSS qaydalarının idxalı - + Failed to import the selected rules file. Reason: %1 Seçilmiş qaydalar faylı idxalı edilə bilmədi. Səbəbi: %1 - + Add new rule... Yeni qayda əlavə edin... - + Delete rule Qaydanı silmək - + Rename rule... Qaydanın adını dəyişin... - + Delete selected rules Seçilmiş qaydaları silmək - + Clear downloaded episodes... Endirilmiş bölümləri silin... - + Rule renaming Qaydanın adının dəyişdirilməsi - + Please type the new rule name Lütfən, qayda adı yazın - + Clear downloaded episodes Endirilmiş bölümləri silmək - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Seçilmiş qayda üçün endirilmiş bölümlərin siyahısını silmək istədiyinizə əminsiniz? - + Regex mode: use Perl-compatible regular expressions Regex rejimi: Perl üslubunda müntəzəm ifadələrdən istifadə edin - - + + Position %1: %2 Mövqe: %1: %2 - + Wildcard mode: you can use Əvəzedici işarə rejimi: istifadə edə bilərsiniz - - + + Import error İdxaletmə xətası - + Failed to read the file. %1 Faylı oxumaq mümkün olmadı. %1 - + ? to match any single character «?» istənilən tək simvola uyğundur - + * to match zero or more of any characters «*» sıfıra və ya bir çox istənilən simvollara uyğundur - + Whitespaces count as AND operators (all words, any order) Boşluqlar VƏ əməlləri kimi hesab edilir (bütün sözlər, istənilən sıra) - + | is used as OR operator «|», VƏ YA əməli kimi istifadə olunur - + If word order is important use * instead of whitespace. Əgər sözlərin sıralanmasının istifadəsi vacibdirsə boşluq əvəzinə «*» istifadə edin. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) %1 şərti ilə boş ifadə (məs., %2) - + will match all articles. bütün məqalələrlə oxşar olacaq - + will exclude all articles. bütün məqalələri istisna olunacaq @@ -1944,58 +2069,69 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Torrenti davam etdirmək üçün qovluq yaradıla bilmir: "%1" - + Cannot parse resume data: invalid format Davam etmək üçün verilənlər təmin edilmədi: torrent formatı səhvdir - - + + Cannot parse torrent info: %1 Torrent məlumatı təmin edilə bilmədi: %1 - + Cannot parse torrent info: invalid format Torrent təhlil edilə bilmədi: format səhvdir - + Mismatching info-hash detected in resume data Bərpaetmə verilənlərində heş daxili uyğunsuzluq aşkarlandı - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Torrent meta verilənləri "%1"-də/da saxılanıla bilmədi. Xəta: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Torrentin bərpası üçün verilənlər '%1'-də/da saxlanıla bilmədi. Xəta: %2. - + Couldn't load torrents queue: %1 Torrent növbəsini yükləmək mümkün olmadı: %1 - + + Cannot parse resume data: %1 Davam etmək üçün verilənlər təmin edilmədi: %1 - + Resume data is invalid: neither metadata nor info-hash was found Davam etdirmək üçün verilənlər səhvdir: nə meta verilənləri nə də heş-məlumat tapılmadı - + Couldn't save data to '%1'. Error: %2 Verilənləri "%1"-də/da saxlamaq mümkün olmadı. Xəta: %2 @@ -2003,38 +2139,60 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin BitTorrent::DBResumeDataStorage - + Not found. Tapılmadı - + Couldn't load resume data of torrent '%1'. Error: %2 "%1" torentinin bərpa üçün məlumatlarını göndərmək mümkün olmadı. Xəta: %2 - - + + Database is corrupted. Verilənlər bazası zədələnib. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Öncədən Yazma Gündəliyi (ing. - WAL) jurnallama rejimi. Xəta: %1 - + Couldn't obtain query result. Sorğu nəticələrini əldə etmək mümkün olmadı. - + WAL mode is probably unsupported due to filesystem limitations. Öncədən Yazma Gündəliyi rejimi, ehtimal ki, fayl sistemindəki məhdudiyyət səbəbindən dəstəklənmir. - + + + Cannot parse resume data: %1 + Davam etmək üçün verilənlər təmin edilmədi: %1 + + + + + Cannot parse torrent info: %1 + Torrent məlumatı təmin edilə bilmədi: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Köçürməni başlatmaq mümkün olmadı. Xəta: %1 @@ -2042,22 +2200,22 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Torrent meta verilənləri saxlanıla bilmədi. Xəta: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 "%1" torrenti üçün bərpa məlumatlarını saxlamaq mümkün olmadı. Xəta: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 "%1" torentinin bərpa üçün məlumatlarını silmək mümkün olmadı. Xəta: %2 - + Couldn't store torrents queue positions. Error: %1 Torrentin növbədəki yerini saxlamaq mümkün olmadı. Xəta: %1 @@ -2065,466 +2223,525 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Bölüşdürülən heş cədvəli (DHT) cədvəli: %1 - - - - - - - - - + + + + + + + + + ON AÇIQ - - - - - - - - - + + + + + + + + + OFF BAĞLI - - + + Local Peer Discovery support: %1 Yerli iştirakçəların aşkarlanması: %1 - + Restart is required to toggle Peer Exchange (PeX) support İştirakçı mübadiləsi (PeX) dəstəklənməsini aktiv etmək üçün yenidən başlatmaq tələb olunur - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrenti davam etdirmək mümkün olmadı: "%1". Səbəb: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrenti davam etdirmək mümkün olmadı: ziddiyyətli torrent İD aşkarlandı. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Zİddiyyətli məluymat aşkarlandı: tənzimləmə faylında kateqoriya çatışmır. Kateqoriya bərpa olunacaq, lakin onun ayarları ilkin vəziyyətə sıfırlanacaq. Torrent: "%1". Kateqoriya: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Ziddiyyətli məlumat aşkarlandı: kateqoriya səhvdir. Torrent: "%1". Kateqoriya: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Bərpa olunmuş kateqoriyanın saxlanma yolları və hazırkı torrentin saxlama yolu araında uyğunsuzluq aşkarlandı. Torrent indi əl ilə ayarlama rejiminə dəyişdirildi. Torrent: "%1". Kateqorya: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Tutarsız verilənlər aşkarlandı: tənzimləmə faylında etiketlər çatımır. Etiket bərpa olunacaqdır. Torrent: "%1". Etiket: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Tutarsız verilənlər aşkarlandı: etiket səhvdir. Torrent: "%1". Etiket: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Sistemin oyanması hadisəsi aşkar edildi. Bütün izləyicilərə yenidən bildirilir... - + Peer ID: "%1" İştirakçı İD-si: "%1" - + HTTP User-Agent: "%1" HTTP İstifadəçi Tanıtımı: "%1" - + Peer Exchange (PeX) support: %1 İştirakçı mübadiləsi (PeX) dəstəkkənməsi: %1 - - + + Anonymous mode: %1 Anonim rejim: %1 - - + + Encryption support: %1 Şifrələmə dəstəyi: %1 - - + + FORCED MƏCBURİ - + Could not find GUID of network interface. Interface: "%1" Şəbəkə interfeysinə aid GUİD tapılmadı: İnterfeys: "%1" - + Trying to listen on the following list of IP addresses: "%1" Aşağıdakı İP ünvanları siyahısını dinləməyə cəhd edilir: "%1" - + Torrent reached the share ratio limit. Torrent paylaşım nisbəti həddinə çatdı. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent silinib. - - - - - - Removed torrent and deleted its content. - Torrent və onun tərkibləri silinib. - - - - - - Torrent paused. - Torrent fasilədədir. - - - - - + Super seeding enabled. Super göndərmə aktiv edildi. - + Torrent reached the seeding time limit. Torrent göndərmə vaxtı limitinə çatdı. - + Torrent reached the inactive seeding time limit. Torrent qeyri-aktiv göndərmə vaxtı həddinə çatdı. - + Failed to load torrent. Reason: "%1" Torrent yüklənə bimədi. Səbəb: "%1" - + I2P error. Message: "%1". I2P xətası. Bildiriş: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP dəstəkləməsi: AÇIQ - + + Saving resume data completed. + Bərpa verilənlərinin saxlanılması tamamlandı. + + + + BitTorrent session successfully finished. + BitTorrent sesiyası uğurla tamamlandı. + + + + Session shutdown timed out. + Sesiaynın sönmə vaxtı sona çatdı. + + + + Removing torrent. + Torrentin silinməsi. + + + + Removing torrent and deleting its content. + Torrent və tərkibləri silinir. + + + + Torrent stopped. + Torrent dayandırıldı. + + + + Torrent content removed. Torrent: "%1" + Torrentin məzmunu silindi. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Torrentin məzmununu silmək ümkün olmadı. Torrent: "%1". Xəta: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent silindi. Torrent: "%1" + + + + Merging of trackers is disabled + İzləyicilərin birləşdirilməsi söndürülüb + + + + Trackers cannot be merged because it is a private torrent + izləyicilər birləşdirilə bilməz, çünki bu fərdi torrentdir + + + + Trackers are merged from new source + Yeni torrentdən izləyicilər birləşdirildi + + + UPnP/NAT-PMP support: OFF UPnP / NAT-PMP dəstəklənməsi: BAĞLI - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrent ixrac edilmədi. Torrent: "%1". Təyinat: "%2". Səbəb: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Davam etdirmə məlumatları ləğv edildi. İcra olunmamış torrentlərin sayı: %1 - + The configured network address is invalid. Address: "%1" Ayarlanmış şəbəkə ünvanı səhvdir. Ünvan: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Dinləmək üçün ayarlanmış şəbəkə ünvanını tapmaq mümkün olmadı. Ünvan: "%1" - + The configured network interface is invalid. Interface: "%1" Ayarlanmış şəbəkə ünvanı interfeysi səhvdir. İnterfeys: "%1" - + + Tracker list updated + İzləyici siyahısı yeniləndi + + + + Failed to update tracker list. Reason: "%1" + İzləyici siyahısını yeniləmək mümkün olmadı. Səbəb: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Qadağan olunmuş İP ünvanları siyahısını tətbiq edərkən səhv İP ünvanları rədd edildi. İP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrentə izləyici əlavə olundu. Torrent: "%1". İzləyici: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" İzləyici torrentdən çıxarıldı. Torrent: "%1". İzləyici: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Torrent URL göndərişi əlavə olundu. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL göndərişi torrentdən çıxarıldı. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent fasilədədir. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Fayl hissəsini silmək mümkün olmadı. Torrent: "%1". Səbəb:"%2". - + Torrent resumed. Torrent: "%1" Torrent davam etdirildi: Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent endirilməsi başa çatdı. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrentin köçürülməsi ləğv edildi. Torrent: "%1". Mənbə: "%2". Təyinat: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent dayandırıldı. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Torrentin köçürülməsini növbələmək mümkün olmadı. Torrent: "%1". Mənbə; "%2". Təyinat: "%3". Səbəb: torrent hal-hazırda təyinat yerinə köçürülür - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Torrentin köçürülməsini növbələmək mümkün olmadı. Torrent: "%1". Mənbə; "%2". Təyinat: "%3". Səbəb: hər iki yol eyni məkanı göstərir - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrentin köçürülməsi növbəyə qoyuıdu. Torrent: "%1". Mənbə: "%2". Təyinat: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrent köçürülməsini başladın. Torrent: "%1". Təyinat: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Kateqoriyalar tənzimləmələrini saxlamaq mümkün olmadı. Fayl: "%1". Xəta: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Kateoriya tənzimləmələrini təhlil etmək mümkün olmadı. Fayl: "%1". Xəta: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 İP filter faylı təhlili uğurlu oldu. Tətbiq olunmuş qaydaların sayı: %1 - + Failed to parse the IP filter file İP filter faylının təhlili uğursuz oldu - + Restored torrent. Torrent: "%1" Bərpa olunmuş torrent. Torrent; "%1" - + Added new torrent. Torrent: "%1" Əlavə olunmuş yeni torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Xətalı torrent. Torrent: "%1". Xəta: "%2" - - - Removed torrent. Torrent: "%1" - Ləğv edilmiş torrent. Torrent; "%1" + + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" + Torrentdə SSL parametrləri çatışmır. Torrent: "%1". İsmarıc: "%2" - - Removed torrent and deleted its content. Torrent: "%1" - Ləğv edilmiş və tərkibləri silinmiş torrent. Torrent: "%1" - - - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Fayldakı xəta bildirişi. Torrent: "%1". Fayl: "%2". Səbəb: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP: Portun palanması uğursuz oldu. Bildiriş: %1 - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP: Portun palanması uğurlu oldu. Bildiriş: %1 - + IP filter this peer was blocked. Reason: IP filter. İP filtr - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrlənmiş port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). imtiyazlı port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + İştirakçı URL ünvanı ilə bağlantı alınmadı. Torrent: "%1". URL ünvanı: "%2". Xəta: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent sesiyası bir sıra xətalarla qarşılaşdı. Səbəb: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proksi xətası. Ünvan: %1. İsmarıc: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 qarışıq rejimi məhdudiyyətləri - + Failed to load Categories. %1 Kateqoriyaları yükləmək mümkün olmadı. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Kateqoriya tənzimləmələrini yükləmək mümkün olmadı. Fayl: "%1". Xəta: "Səhv verilən formatı" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Ləğv edilmiş, lakin tərkiblərinin silinməsi mümkün olmayan və/və ya yarımçıq torrent faylı. Torrent: "%1". Xəta: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 söndürülüb - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 söndürülüb - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - İştirakçı ünvanının DNS-də axtarışı uğursuz oldu. Torrent: "%1". URL: "%2". Xəta: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" İştirakçının ünvanından xəta haqqında bildiriş alındı. Torrent: "%1". URL: "%2". Bildiriş: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" İP uöurla dinlənilir. İP: "%1". port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" İP-nin dinlənilməsi uğursuz oldu. İP: "%1". port: "%2/%3". Səbəb: "%4" - + Detected external IP. IP: "%1" Kənar İP aşkarlandı. İP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Xəta: Daxili xəbərdarlıq sırası doludur və xəbərdarlıq bildirişlər kənarlaşdırıldı, sistemin işinin zəiflədiyini görə bilərsiniz. Kənarlaşdırılan xəbərdarlıq növləri: %1. Bildiriş: %2 - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent uğurla köçürüldü. Torrent: "%1". Təyinat: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrentin köçürülməsi uğursuz oldu. Torrent: "%1". Mənbə: "%2". Təyinat: "%3". Səbəb: "%4" + + BitTorrent::TorrentCreationTask + + + Failed to start seeding. + Paylamanı başlatmaq uğursuz oldu. + + BitTorrent::TorrentCreator - + Operation aborted Əməliyyat ləğv edildi - - + + Create new torrent file failed. Reason: %1. Yeni torrent faylın yaradılması baş tutmadı. Səbəb: %1. @@ -2532,67 +2749,67 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 "%1" iştirakçının "%2" teorrentinə əlavə edilməsi alınmadı. Səbəb: %3 - + Peer "%1" is added to torrent "%2" "%1" iştirakçısı "%2" torrentinə əlavə edildi - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Gözlənilməyən verilən aşkarlandı. Torrent: %1. Verilən: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Fayla yazıla bilmir. Səbəb: "%1" Torrent indi "yalnız göndərmək" rejimindədir. - + Download first and last piece first: %1, torrent: '%2' Öncə ilk və son hissəni endirmək: %1, torrent: "%2" - + On Açıq - + Off Bağlı - + Failed to reload torrent. Torrent: %1. Reason: %2 Torrenti yenidən başlatmaq mümkün olmadı. Torrent: %1. Səbəb: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Torrenti davam etdirmək üçün məlumatlar yaradıla bilmədi: "%1". Səbəb: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrent bərpa oluna bilmədi. Güman ki, fayl köçürülüb və ya yaddaşa giriş əlçatmazdır. Torrent: "%1". Səbəb: "%2" - + Missing metadata Meta verilənləri çatışmır - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Faylın adı dəyişdirilmədi. Torrent: "%1", fayl: "%2", səbəb: "%3" - + Performance alert: %1. More info: %2 Performans xəbərdarlığı: %1. Daha çox məlumat: %2 @@ -2613,189 +2830,189 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' "%1" parametri '%1=%2' sintaksisin ilə uzlaşmalıdır - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' "%1" parametri '%1=%2' sintaksisin ilə uzlaşmalıdır - + Expected integer number in environment variable '%1', but got '%2' Dəyişən mühitdə "%1" gözlənilən tam ədəddir, lakin "%2" alındı - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - "%1" parametri '%1=%2' sintaksisin ilə uzlaşmalıdır - - - + Expected %1 in environment variable '%2', but got '%3' "%2" dəyişən mühitində "%1" gözlənilir, lakin "%3" alındı - - + + %1 must specify a valid port (1 to 65535). "%1" düzgün port təyin etməlidir (1 ilə 65535 arası) - + Usage: İstifadəsi: - + [options] [(<filename> | <url>)...] [seçimlər] [(<filename> | <url>)...] - + Options: Seçimlər: - + Display program version and exit Proqramın versiyasını göstərmək və çıxmaq - + Display this help message and exit Bu kömək bildirişini göstərmək və çıxmaq - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + "%1" parametri '%1=%2' sintaksisin ilə uzlaşmalıdır + + + Confirm the legal notice Rəsmi bildirişin təsdiq edilməsi - - + + port port - + Change the WebUI port Veb istifadəçi interfeysi portunu dəyişin - + Change the torrenting port Torrent portunu dəyiş - + Disable splash screen Salamlama ekranını söndürmək - + Run in daemon-mode (background) Xidmət rejimində işə salmaq (arxa fon) - + dir Use appropriate short form or abbreviation of "directory" qovluq - + Store configuration files in <dir> Tənzimləmə fayllarını <dir> daxilində saxlamaq - - + + name ad - + Store configuration files in directories qBittorrent_<name> Tənzimləmə fayllarını qBittorrent_<name> qovluqlarında saxlamaq - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Davam etdirməni cəld başlatmaq üçün libtorrent fayllarını sındırmaq və fayl yollarını profil qovluğuna nisbətən yaratmaq - + files or URLs fayllar və ya URL'lar - + Download the torrents passed by the user İstifadəçi tərəfindən təyin edilən torrentləri endirmək - + Options when adding new torrents: Yeni torrent əlavə edilmə seçimləri: - + path yol - + Torrent save path Torrent saxlama yolu - - Add torrents as started or paused - Torrentləri başladılan və ya fasilədə olan kimi əlavə etmək + + Add torrents as running or stopped + Torrenti başladılmış və ya dayandırılmış kimi əlavə etmək - + Skip hash check Heş yoxlamasını ötürün - + Assign torrents to category. If the category doesn't exist, it will be created. Torrentləri qovluğa təyin etmək. Əgər belə qovluq yoxdursa o yaradılacaq. - + Download files in sequential order Faylları növbə ardıcıllığı ilə endirmək - + Download first and last pieces first Öncə İlk və son hissələri endirmək - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Torrent əlavə edilərkən "Yeni torrent əlavə edin" dialoqunun aşılıb aşımayacağını qeyd etmək - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Seçim dəyərləri mühit dəyişənləri tərəfindən təchiz edilə bilər. "Parametr adı" adlı seçim üçün mühit dəyişəni adı 'QBT_PARAMETER_NAME'-dir (böyük hərfdə «-», «_» ilə əvəz edilmişdir). İşarələmə göstəricisi vermək üçün dəyişəni "1" və "TRUE" təyin edin. Misal üçün, salamlama ekranını söndürmək üçün: - + Command line parameters take precedence over environment variables Əmr sətri parametrləri mühit dəyişənləri üzərində üstünlük əldə edir - + Help Kömək @@ -2847,13 +3064,13 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin - Resume torrents - Torrentləri davam etdirmək + Start torrents + Torrentləri başlatmaq - Pause torrents - Torrentlərə fasilə + Stop torrents + Torrentləri dayandırmaq @@ -2864,15 +3081,20 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin ColorWidget - + Edit... Düzəliş et... - + Reset Sıfırlamaq + + + System + Sistem + CookiesDialog @@ -2913,12 +3135,12 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin CustomThemeSource - + Failed to load custom theme style sheet. %1 Fərdi mövzu cədvəlini yükləməkl mümkün olmadı. %1 - + Failed to load custom theme colors. %1 Fərdi mövzu rənglərini yükləmək mümkün olmadı. %1 @@ -2926,7 +3148,7 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin DefaultThemeSource - + Failed to load default theme colors. %1 Standart mövzu rənglərini yükləmək mümkün olmadı. %1 @@ -2945,23 +3167,23 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin - Also permanently delete the files - Həmçinin bu faylı birdəfəlik silin + Also remove the content files + Həmçinin məzmun fayllarını silmək - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? "%1" faylını köçürmə sayahısından silmək istədiyinizə əminsiz? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? %1 torrentlərini köçürmə siyasından silmək istədiyinizə əminsiniz? - + Remove Silin @@ -2974,12 +3196,12 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin URL-lardan endirmək - + Add torrent links Toorent keçidləri əlavə etmək - + One link per line (HTTP links, Magnet links and info-hashes are supported) Hər sətirə bir keçid (HTTP keçidləri, maqnit keçidləri və İnfo-heş'lər dəstəklənir) @@ -2989,12 +3211,12 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin Endirmək - + No URL entered URL daxil edilməyib - + Please type at least one URL. Lütfən, ən azı bir URL daxil edin @@ -3153,25 +3375,48 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin Təhlil xətası: Filtr faylı, düzgün PeerGuardian P2B faylı deyil. + + FilterPatternFormatMenu + + + Pattern Format + Nümunə formatı + + + + Plain text + Sadə mətn + + + + Wildcards + Şablon nümunəsi + + + + Regular expression + Müntəzəm ifadə + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrent endirilir... Mənbə: "%1" - - Trackers cannot be merged because it is a private torrent - izləyicilər birləşdirilə bilməz, çünki bu fərdi torrentdir - - - + Torrent is already present Torrent artıq mövcuddur - + + Trackers cannot be merged because it is a private torrent. + İzləyicilər birləşdirilə bilməz, çünki bu məxfi torrentdir. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' artıq köçürülmə siyahısındadır. Mənbədən izləyiciləri birləçdirmək istəyirsiniz? @@ -3179,38 +3424,38 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin GeoIPDatabase - - + + Unsupported database file size. Dəstəklənməyən verilənlər bazasl faylının ölçüsü. - + Metadata error: '%1' entry not found. Meta məlumatları xətası: %1 daxil ediləni tapılmadı. - + Metadata error: '%1' entry has invalid type. Meta məlumatları xətası: "%1" daxil ediləni növü yararsızdır. - + Unsupported database version: %1.%2 Dəstəklənməyən verilənlər bazası versiyası: %1.%2 - + Unsupported IP version: %1 Dəstəklənməyən İP versiyası: %1 - + Unsupported record size: %1 Dəstəklənməyən yazılma ölçüsü: %1 - + Database corrupted: no data section found. Verilənlər bazası pozulub: verilənlər bölməsi tapılmadı. @@ -3218,17 +3463,17 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Tələb olunan Http ölçüsü limiti aşır, socket bağlanır. Limit: %1, İP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Səhv Http sorğu üsulu, soket bağlanır. İP: %1. Üsul: "%2" - + Bad Http request, closing socket. IP: %1 Səhv Http tələbi, socket bağlanır. İP: %1 @@ -3269,26 +3514,60 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin IconWidget - + Browse... Baxmaq... - + Reset Sıfırlamaq - + Select icon Nişan seç - + Supported image files Dəstəklənən şəkil faylları + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Elektrik qidalanması idarəetmə vasitəsi uyğun D-Bus interfeysi tapdı. İnterfeys: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Elektrik qidalanması idarəetməsi xətası. Əməl: %1. Xəta: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Elektrik qidalanması idarəetməsində gözlənilməz xəta baş verdi. Vəziyyət: %1. Xəta: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3320,13 +3599,13 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 bloklandı. Səbəb: %2. - + %1 was banned 0.0.0.0 was banned %1 qadağan edildi @@ -3335,60 +3614,60 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1, naməlum əmr sətiri parametridir. - - + + %1 must be the single command line parameter. %1, tək əmr sətri parametri olmalıdır. - + Run application with -h option to read about command line parameters. Əmr sətri parametrləri haqqında oxumaq üçün tətbiqi -h seçimi ilə başladın. - + Bad command line Xətalı əmr sətri - + Bad command line: Xətalı əmr sətri: - + An unrecoverable error occurred. Sazlana bilməyən xəta baş verdi. + - qBittorrent has encountered an unrecoverable error. qBittorrent sazlana bilməyən bir xəta ilə qarşılaşdı. - + You cannot use %1: qBittorrent is already running. Siz %1 istifadə edə bilməzsiniz: qBittorrent artıq işləkdir. - + Another qBittorrent instance is already running. Başqa bir qBittorrent nümunəsi artıq işləkdir. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Gözlənilməz qBittorent nüsxəsi tapıldı. Bu nüsxədən çıxılır. Cari proses İD-si: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Demonizasiya zamanı xəta. Səbəb: "%1". Xəta kodu: %2 @@ -3401,604 +3680,681 @@ Bu formatlar dəstəklənir: S01E01, 1x1, 2017.12.31 və 31.12.2017 (Həmçinin &Düzəliş etmək - + &Tools Alə&tlər - + &File &Fayl - + &Help &Kömək - + On Downloads &Done Endirmələr başa çat&dıqda - + &View &Baxış - + &Options... &Seçimlər... - - &Resume - Davam etdi&rmək - - - + &Remove Silin - + Torrent &Creator Torrent Yaradı&cı - - + + Alternative Speed Limits Alternativ sürət hədləri - + &Top Toolbar Üs&t alətlər paneli - + Display Top Toolbar Üst alətlər panelini göstərmək - + Status &Bar Vəziyyət çu&buğu - + Filters Sidebar Filtrlər yan paneli - + S&peed in Title Bar Sürət başlıq &panelində - + Show Transfer Speed in Title Bar Köçürmə sürətini başlıq panelində göstərmək - + &RSS Reader &RSS oxuyucu - + Search &Engine Axtarış &vasitəsi - + L&ock qBittorrent qBittorrent'i kilidləmək - + Do&nate! İa&nə vermək! - + + Sh&utdown System + Siste&mi söndürmək + + + &Do nothing &Heç nə etməmək - + Close Window Pəncərəni bağlamaq - - R&esume All - Hamısına dava&m - - - + Manage Cookies... Kikilər Meneceri... - + Manage stored network cookies Saxlanılmış şəbəkə kukilərini idarə etmək - + Normal Messages Normal Bildirişlər - + Information Messages Məlumat Bildirişləri - + Warning Messages Xəbərdarlıq Bildirişlər - + Critical Messages Kritik Bildirişlər - + &Log Jurna&l - + + Sta&rt + &Başlatmaq + + + + Sto&p + &Dayandırmaq + + + + R&esume Session + S&esiyanı bərpa etmək + + + + Pau&se Session + Sesiyaya fa&silə + + + Set Global Speed Limits... Ümumi sürət limitlərini təyin edin... - + Bottom of Queue Növbənin sonu - + Move to the bottom of the queue Növbənin sonuna köçürmək - + Top of Queue Növbənin əvvəli - + Move to the top of the queue Növbənin əvvəlinə köçürmək - + Move Down Queue Növbəni aşağı köçürmək - + Move down in the queue Növbənin aşağısına doğru - + Move Up Queue Növbəni yuxarı köçürmək - + Move up in the queue Növbənin yuxarısına doğru - + &Exit qBittorrent qBittorrent'dən çıxma&q - + &Suspend System &Sistemi dayandırmaq - + &Hibernate System &Yuxu rejimi - - S&hutdown System - Sistemi sö&ndürmək - - - + &Statistics &Statistikalar - + Check for Updates Yenilənmələri yoxlamaq - + Check for Program Updates Proqram yenilənmələrini yoxlamaq - + &About H&aqqında - - &Pause - &Fasilə - - - - P&ause All - Hamısına F&asilə - - - + &Add Torrent File... Torrent faylı əl&avə edin... - + Open Açmaq - + E&xit Çı&xış - + Open URL URL açmaq - + &Documentation Sənə&dləşmə - + Lock Kilidləmək - - - + + + Show Göstərmək - + Check for program updates Proqram yenilənmələrini yoxlamaq - + Add Torrent &Link... Torrent keçidi ə&lavə edin... - + If you like qBittorrent, please donate! qBittorrent'i bəyənirsinizsə ianə edin! - - + + Execution Log İcra jurnalı - + Clear the password Şifrəni silmək - + &Set Password Şifrə &təyin etmək - + Preferences Tərcihlər - + &Clear Password Şifrəni silmə&k - + Transfers Köçürmələr - - + + qBittorrent is minimized to tray qBittorent treyə yığıldı - - - + + + This behavior can be changed in the settings. You won't be reminded again. Bu davranış ayarlarda dəyişdirilə bilər. Sizə bir daha xatırladılmayacaq. - + Icons Only Yalnız Nişanlar - + Text Only Yalnlız Mətn - + Text Alongside Icons Nişanlar yanında mətn - + Text Under Icons Nişanlar altında mətn - + Follow System Style Sistem üslubuna uyğun - - + + UI lock password İİ-nin kilid şifrəsi - - + + Please type the UI lock password: Lütfən, İİ-nin kilid şifrəsini yazın - + Are you sure you want to clear the password? Şifrəni silmək istədiyinizə əminsiniz? - + Use regular expressions Müntəzəm ifadədən istifadə etmək - + + + Search Engine + Axtarış sistemi + + + + Search has failed + Axtarış alınmadı + + + + Search has finished + Axtarış sona çatdı + + + Search Axtarış - + Transfers (%1) Köçürmələr (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent indicə yeniləndi və dəyişikliklərin qüvvəyə minməsi üçün yenidən başladılmalıdır. - + qBittorrent is closed to tray qBittorrent treyə yığıldı - + Some files are currently transferring. Hazırda bəzi fayllar ötürülür - + Are you sure you want to quit qBittorrent? qBittorent'dən çıxmaq istədiyinizə əminsiniz? - + &No &Xeyr - + &Yes &Bəli - + &Always Yes &Həmişə bəli - + Options saved. Parametrlər saxlanıldı. - - + + [PAUSED] %1 + %1 is the rest of the window title + [FASİLƏDƏ] %1 + + + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python quraşdırıcısı endirilə bilməz. Xəta: %1. +Onu əllə quraşdırın. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Python quraşdırıcısının adını dəyişmək mümkün olmadı. Mənbə: "%1". Hədəf: "%2". + + + + Python installation success. + Python quraşdırılması uğurlu oldu. + + + + Exit code: %1. + Çıxış kodu: %1 + + + + Reason: installer crashed. + Səbəb: Quraşdırılmada qəza baş verdi. + + + + Python installation failed. + Python quraşdırılması baş tutmadı. + + + + Launching Python installer. File: "%1". + Python quraşdırılması başlayır. Fayl: "%1". + + + + Missing Python Runtime Python icraçısı çatışmır - + qBittorrent Update Available qBittorrent yenilənməsi mövcuddur - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python axtarş vasitəsindən istifadə etməyi tələb edir, lakin, belə görünür ki, bu vasitə quraşdırılmayıb. Bunu indi quraşdırmaq istəyirsiniz? - + Python is required to use the search engine but it does not seem to be installed. Python axtarış vasitəsi istifadə etməyi tələb edir, lakin belə görünür ki, o quraşdırılmayıb. - - + + Old Python Runtime Köhnə Python iş mühiti - + A new version is available. Yeni versiya mövcuddur. - + Do you want to download %1? %1 yükləmək istəyirsiniz? - + Open changelog... Dəyişikliklər jurnalını açın... - + No updates available. You are already using the latest version. Yenilənmələr yoxdur. Siz artıq sonuncu versiyadan istifadə edirsiniz. - + &Check for Updates Yenilənmələri yo&xlamaq - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Sizin Python versiyanız (%1) köhnədir. Minimum tələb olunan versiya: %2. Yeni versiyanı quraşdırmaq istəyirsiniz? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Sizin Python versiyanız (%1) köhnədir. Lütfən axtarış vasitələrinin işləməsi üçün son versiyaya yeniləyin. Minimum tələb olunan versiya: %2. - + + Paused + Fasilədə + + + Checking for Updates... Yenilənmələr yoxlanılır... - + Already checking for program updates in the background Proqramın yenilənmələri, artıq arxa planda yoxlanılır - + + Python installation in progress... + Python quraşdırılması davam edir... + + + + Failed to open Python installer. File: "%1". + Python quraşdırıcısını açmaq mümkün olmadı. Fayl: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python quraşdırıcısının MD5 heş yoxlaması mümkün olmadı. Fayl: "%1". Alınan heş: "%2". Gözlənilən heş: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python quraşdırıcısının SHA3-512 heş yoxlaması mümkün olmadı. Fayl: "%1". Alınan heş: "%2". Gözlənilən heş: "%3". + + + Download error Endirilmə xətası - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python quraşdırmasını yükləmək mümkün olmadı: %1 -Lütfən, əl ilə qyraşdırın. - - - - + + Invalid password Səhv şifrə - + Filter torrents... Torrentləri süzgəclə... - + Filter by: Buna görə süzgəclə: - + The password must be at least 3 characters long Şifrə ən az 3 işarədən ibarət olmalıdır - - - + + + RSS (%1) RSS (%1) - + The password is invalid Şifrə səhvdir - + DL speed: %1 e.g: Download speed: 10 KiB/s EN sürəti: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s GN sürəti: %1 - - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [E: %1, G: %2] qBittorrent %3 - - - + Hide Gizlətmək - + Exiting qBittorrent qBittorrentü'dən çıxılır - + Open Torrent Files Torrent faylları açmaq - + Torrent Files Torrent faylları @@ -4059,133 +4415,133 @@ Lütfən, əl ilə qyraşdırın. Net::DownloadHandlerImpl - - + + I/O Error: %1 Giriş/Çıxış xətası: %1 - + The file size (%1) exceeds the download limit (%2) Fayl ölçüsü (%1), endirmə limitini (%2) aşır - + Exceeded max redirections (%1) Maksimum yönləndirmə həddini aşdı (% 1) - + Redirected to magnet URI Maqnit URI-yə yönləndirildi - + The remote host name was not found (invalid hostname) Uzaq host adı tapılmadı (səhv host adı) - + The operation was canceled Əməliyyat ləğv edildi - + The remote server closed the connection prematurely, before the entire reply was received and processed Bütün cavablar alınmadan və işlənmədən uzaq server bağlantını vaxtından əvvəl kəsdi - + The connection to the remote server timed out Uzaq serverə bağlantının gözləmə vaxtı sona çatdı - + SSL/TLS handshake failed SSl/TLS bağlantısı alınmadı - + The remote server refused the connection Uzaq server bağlantıdan imtina etdi - + The connection to the proxy server was refused Proksi serverə bağlantı rədd edildi - + The proxy server closed the connection prematurely Proksi server bağlantını vaxtından əvvəl kəsdi - + The proxy host name was not found Proksi host adı tapılmadı - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Proksi serverə bağlantının vaxtı sona çatdı və ya proksi göndərilən tələbə vaxtında cavab vermədi - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proxy, bu tələbi yerinə yetirmək üçün doğrulama tələb edir, lakin təqdim olunan hər hansı bir istifadəçi adı və şifrəni qəbul etməyib - + The access to the remote content was denied (401) Uzaq serverdəki tərkiblərə giriş qadağan edildi (401) - + The operation requested on the remote content is not permitted Uzaq serverdəki tərkiblər üzərində tətləb olunan əməliyyata icazə verilmədi - + The remote content was not found at the server (404) Uzaq tərkiblər serverdə tapılmadı (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Uzaq server tərkiblər üzərində işləmək üçün kimlik doğrulaması tələb edir, lakin, verilən istifadəçi adı və şifrəni qəbul etmir. - + The Network Access API cannot honor the request because the protocol is not known Şəbəkəyə Giriş APİ-si, protokol naməlum olduğu üçün tələbi yerinə yetirə bilmir - + The requested operation is invalid for this protocol Bu protokol üçün tələb olunan əməliyyat səhvdir - + An unknown network-related error was detected Şəbəkə ilə əlaqəli naməlum bir xəta aşkar edildi - + An unknown proxy-related error was detected Proksi ilə əlaqəli naməlum bir xəta aşkarlandı - + An unknown error related to the remote content was detected Uzaq tərkiblərlə əlaqəli naməlum xəta aşkarlandı - + A breakdown in protocol was detected Protokolda nasazlıq aşkar edildi - + Unknown error Naməlum xəta @@ -4193,7 +4549,12 @@ Lütfən, əl ilə qyraşdırın. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL xətası, URL: "%1", xətalar: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL xətasını nəzərə almadan, URL: !%1", xəta: "%2" @@ -5487,47 +5848,47 @@ Lütfən, əl ilə qyraşdırın. Net::Smtp - + Connection failed, unrecognized reply: %1 Bağlantı uğursuz oldu, naməlum cavab: %1 - + Authentication failed, msg: %1 Kimlik doğrulaması uğursuz oldu, bild: %1 - + <mail from> was rejected by server, msg: %1 <mail from>, server tərəfindən rədd edildi, bild: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>, server tərəfindən rədd edildi, bild: %1 - + <data> was rejected by server, msg: %1 <data>, server tərəfindən rədd edildi, bild: %1 - + Message was rejected by the server, error: %1 Bildiriş server tərəfindən rədd edildi, bild: %1 - + Both EHLO and HELO failed, msg: %1 Hər iki, EHLO və HELO əmrləri uğursuz oldu, bild: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Belə görünür ki, SMTP serveri bizim dəstəklədiyimiz kimlik doğrulaması rejimlərini [CRAM-MD5|PLAIN|LOGIN] dəstəkləmir. Kimlik doğrulamasının uğursuz olaçağı məlum olduğundan o ötürülür... Server doğrulama rejimləri: %1 - + Email Notification Error: %1 E-poçt bildiriş xətası: %1 @@ -5565,299 +5926,283 @@ Lütfən, əl ilə qyraşdırın. BitTorrent - + RSS RSS - - Web UI - Veb İİ - - - + Advanced Əlavə - + Customize UI Theme... Fərdi İİ mövzusu... - + Transfer List Köçürmə siyahısı - + Confirm when deleting torrents Torrentlərin silinməsinin təsdiq edilməsi - - Shows a confirmation dialog upon pausing/resuming all the torrents - Bütün torrentlərin dayandırılması/davam etdirilməsi üzərində təsdiqlənmə dialoqunu göstərir - - - - Confirm "Pause/Resume all" actions - "Hamısını Dayandırın/Davam etdirin" əməlləri - - - + Use alternating row colors In table elements, every other row will have a grey background. Alternativ sıra rənglərindən istifadə edin - + Hide zero and infinity values Sıfır və sonsuzluq göstəricilərini gizlətmək - + Always Həmişə - - Paused torrents only - Yalnız fasilədəki torrentlər - - - + Action on double-click İki dəfə klik əməli - + Downloading torrents: Torrentlər yüklənir: - - - Start / Stop Torrent - Torrenti Başlatmaq / Dayandırmaq - - - - + + Open destination folder Təyinat qovluğunu açmaq - - + + No action Əməl yoxdur - + Completed torrents: Tamamlanmış torrentlər - + Auto hide zero status filters Sıfır süzgəc nəticələrini avtomatik gizlətmək - + Desktop İş Masası - + Start qBittorrent on Windows start up ƏS işə düşdükdə qBittorrent'i başlatmaq - + Show splash screen on start up Başlanğıcda qarşılama ekranını göstərmək - + Confirmation on exit when torrents are active Aktiv torrenlər olduqda çıxarkən təsdiq etmək - + Confirmation on auto-exit when downloads finish Endirmələr sona çatdıqda avtomtik çıxışı təsdiq etmək - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><body><p>qBitttorenti, .torrent faylları və/vəya Magnet keçidləri<br/>üçün standart proqram kimi, <span style=" font-weight:600;">Standart proqramlar</span> dialoquna <span style=" font-weight:600;">İdarəetmə paneli bölməsindən</span> daxil olaraq təyin edə bilərsiniz.</p></body><head/></html> - + KiB KB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent məzmunu maketi: - + Original Orijinal - + Create subfolder Alt qovluq yaratmaq - + Don't create subfolder Alt qovluq yaratmamaq - + The torrent will be added to the top of the download queue Torrent, fasilə vəziyyətində yükləmə siyahısına əlavə ediləcək - + Add to top of queue The torrent will be added to the top of the download queue Növbənin ən üst sırasına əlavə et - + When duplicate torrent is being added Torrentin təkrar nüsxəsi əlavə olunduqda - + Merge trackers to existing torrent İzləyiciləri mövcud torrentdə birləşdirin - + Keep unselected files in ".unwanted" folder Seçilməmiş faylları "baxılmamışlar" qovluğunda saxlamaq - + Add... Əlavə edin... - + Options.. Seçimlər... - + Remove Silin - + Email notification &upon download completion Endirilmə başa çatdıqdan so&nra e-poçt bildirişi - + + Send test email + Yoxlamaq üçün e-poçt göndərmək + + + + Run on torrent added: + Torrent əlavə edildikdə başlatmaq: + + + + Run on torrent finished: + Torrent tmamlandıqda başlatmaq: + + + Peer connection protocol: İştirakçı bağlantı protokolu - + Any Hər hansı - + I2P (experimental) I2P (təcrübə üçün) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Əgər &quot;qarışıq rejim&quot; aktiv edilərsə I2P torrentlərə izləyicidən başqa digər mənbələrdən iştirakçılar əldə etməyə və heç bir anonimləşdirmə təmin etməyən adi IP-lərə qoşulmağa icazə verilir. Bu, istifadəçiyə I2P-nin anonimləşdirilmə maraqlı deyilsə, lakin yenə də I2P iştirakçılarına qoşulmaq istədiyi halda faydalı ola bilər.</p></body></html> - - - + Mixed mode Qarışıq rejim - - Some options are incompatible with the chosen proxy type! - Bəzi parametrlıər seçilmiş proksi növü ilə uyğun gəlmir! - - - + If checked, hostname lookups are done via the proxy Əgər işarələnərsə, host adı axtarışı proksi ilə icra olunur. - + Perform hostname lookup via proxy Proksi vasitəsilə host adı axtarışını icra etmək - + Use proxy for BitTorrent purposes Proksini BitTorrent məqsədləri üçün istifadə et - + RSS feeds will use proxy RSS xəbər lentləri proksi istifadə edəcək - + Use proxy for RSS purposes RSS məqsədləri üçün proksi istifadə et - + Search engine, software updates or anything else will use proxy Axtarış mühərriki, proqram təminatı yenilənmələri və başqaları proksi istifdə edəcək - + Use proxy for general purposes Əsas məqsədlər üçün proksi istifadə et - + IP Fi&ltering İP fi&ltirləmə - + Schedule &the use of alternative rate limits Alternativ sürət limitinin istifadəsini planlaşdırmaq - + From: From start time Bu vaxtdan: - + To: To end time Bu vaxta: - + Find peers on the DHT network DHT şəbəkəsindəki iştirakçıları tapmaq - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5866,140 +6211,190 @@ Disable encryption: Only connect to peers without protocol encryption Şifrələməni söndürmək: İştirakşılara yalnız şifrələmə protokolu olmadan qoşulmaq - + Allow encryption Şifrələməyə icazə vermək - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Daha ətraflı</a>) - + Maximum active checking torrents: Maksimum aktiv torrent yoxlamaları: - + &Torrent Queueing &Torrent növbələnməsi - + When total seeding time reaches Ümumi göndərmə həddinə çatdıqda - + When inactive seeding time reaches Qeyri-aktiv göndərmə həddinə çatdıqda - - A&utomatically add these trackers to new downloads: - Bu izləyiciləri a&vtomatik yükləmələrə əlavə edin: - - - + RSS Reader RSS Oxuyucu - + Enable fetching RSS feeds RSS lentlərinin alınmasını aktiv etmək - + Feeds refresh interval: Lentlərin yenilənmə intervalı: - + + Same host request delay: + Eyni host tələbi gecikməsi: + + + Maximum number of articles per feed: Hər iştirakçıya ən çox məqalə sayı: - - - + + + min minutes dəq - + Seeding Limits Paylaşım limitləri - - Pause torrent - Torrentə fasilə - - - + Remove torrent Torrenti silmək - + Remove torrent and its files Torrenti ə fayllarını silmək - + Enable super seeding for torrent Torrent üçün super göndərişi aktivləşdirmək - + When ratio reaches Göstəricini aşdıqda - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Torrenti dayandırmaq + + + + A&utomatically append these trackers to new downloads: + Bu izləyiciləri yeni endirmələrə a&vtomatik əlavə etmək: + + + + Automatically append trackers from URL to new downloads: + URL-dakı izləyiciləri avtomatik yeni endirmələrə əlavə etmək: + + + + URL: + URL: + + + + Fetched trackers + İzləyicilər alındı + + + + Search UI + Axtarış interfeysi + + + + Store opened tabs + Açıq vərəqləri saxlamaq + + + + Also store search results + Həmçinin axtarış nəticələrini saxlamaq + + + + History length + Tarixçənin uzunluğu + + + RSS Torrent Auto Downloader RSS torrent avto yükləyici - + Enable auto downloading of RSS torrents RSS torrentlərinin avtomatik yüklənməsini aktiv etmək - + Edit auto downloading rules... Avtomatik yükləmə qaydalarına düzəliş... - + RSS Smart Episode Filter RSS Ağıllı Bölmə Filtri - + Download REPACK/PROPER episodes REPACK/PROPER bölümlərini endirmək - + Filters: Filtrlər: - + Web User Interface (Remote control) Veb İstifadəçi İnterfeysi (Uzaqdan idarəetmə) - + IP address: İP ünvanları: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6007,490 +6402,526 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv İPv4 və ya İPv6 ünvanı göstərin. Siz hər hansı İPv4 ünvanı üçün "0.0.0.0", hər hansı İPv6 ünvanı üçün "::", və ya İPv4 və İPv6-lərin hər ikisi üçün "*" göstərə bilərsiniz. - + Ban client after consecutive failures: Belə ardıcıl xətalardan sonra müştərini bloklamaq: - + Never Heç vaxt - + ban for: bundan sonra bloklamaq: - + Session timeout: Sessiya bitmə vaxtı: - + Disabled Söndürülüb - - Enable cookie Secure flag (requires HTTPS) - Kukilərin təhlükəsizliyini aktiv etmək (HTTPS tələb olunur) - - - + Server domains: Server domenləri: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. Use ';' to split multiple entries. Can use wildcard '*'. HTTP Host başlıqlarının göstəricilərini filtrləmək üçün ağ siyahı. -DNS ilə təkrar bağlantı hücumundan qorunmaq üçün WebUI +DNS ilə təkrar bağlantı hücumundan qorunmaq üçün WebUI serveri tərəfindən istifadə olunan domen adını göstərməlisiniz. Çoxsaylı elementləri bölmək üçün ';' istifadə edin. '*' ümumi nişanından istifadə edə bilərsiniz - + &Use HTTPS instead of HTTP HTTP əvəzinə HTTPS &istifadə edin - + Bypass authentication for clients on localhost Locahosst-da müştəri üçün kimlik doğrulamasını ötürmək - + Bypass authentication for clients in whitelisted IP subnets İP alt şəbəkələri ağ siyahısında müştəri üçün kimlik doğrulamasını ötürmək - + IP subnet whitelist... İP al şəbəkəsi ağ siyahısı... - + + Use alternative WebUI + Alternativ WebUI istifadə edin + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Yönləndirilmiş müştəri ünvanından (X-Forwarded-For header) istifadə etmək üçün əks proxy IP-lərini (və ya alt şəbəkələri, məs., 0.0.0.0/24) göstərin. Birdən çox girişi bölmək üçün ';' işarəsindən istifadə edin. - + Upda&te my dynamic domain name Dinamik domen adını &yeniləmək - + Minimize qBittorrent to notification area qBittorrent-i bildiriş çubuğuna endirmək - + + Search + Axtarış + + + + WebUI + Veb istifadəçi interfeysi + + + Interface İnterfeys - + Language: Dil: - + + Style: + Üslüb: + + + + Color scheme: + Rəng sxemi: + + + + Stopped torrents only + Yalnız dayandırılmış torrentlər + + + + + Start / stop torrent + Torrenti başlatmaq / dayandırmaq + + + + + Open torrent options dialog + Torrent seçimləri dialoqunu açmaq + + + Tray icon style: Trey nişanı tərzi: - - + + Normal Normal - + File association Fayl əlaqələri - + Use qBittorrent for .torrent files Torrent faylları üçün qBittorrent-i istifadə etmək - + Use qBittorrent for magnet links Maqnit keçidlər üçün qBittorrent-i istifadə etmək - + Check for program updates Proqramın yeni versiyasını yoxlamaq - + Power Management Enerjiyə Nəzarət - + + &Log Files + Jurna&l faylları + + + Save path: Saxlama yolu: - + Backup the log file after: Bundan sonra jurnal faylını yedəkləmək: - + Delete backup logs older than: Bundan köhnə jurnal fayllarını silmək: - + + Show external IP in status bar + Xarici İP-ni vəziyyət çubuğunda göstərmək + + + When adding a torrent Torrent əlavə edildikdə: - + Bring torrent dialog to the front Torrent dialoqunu ön plana çıxarmaq - + + The torrent will be added to download list in a stopped state + Torrent, endirmə siyahısına dayandırılmış vəziyyətdə əlavə ediləcək + + + Also delete .torrent files whose addition was cancelled Həmçinin əlavə edilməsi ləğv olunan .torrent fayllarını silmək - + Also when addition is cancelled Həmçinin əlavə edilməsi ləğv edildikdə - + Warning! Data loss possible! Xəbərdarlıq! Verilənlərin itirilə bilər! - + Saving Management Yaddaşa yazılmanın idarə edilməsi - + Default Torrent Management Mode: Standart Torrent İdarəetmə Rejimi: - + Manual Əl ilə - + Automatic Avtomatik - + When Torrent Category changed: Torrent Kateqoriyaları dəyişdirildikdə: - + Relocate torrent Torrentin yerini dəyişmək - + Switch torrent to Manual Mode Torrenti əl ilə idarə rrejiminə keçirmək - - + + Relocate affected torrents Təsirə məruz qalan torrentlərin yerini dəyişmək - - + + Switch affected torrents to Manual Mode Təsirə məruz qalan torrentləri əl ilə idarə rejiminə keçirmək - + Use Subcategories Alt kateqoriyaları istifadə etmək - + Default Save Path: Standart saxlama yolu: - + Copy .torrent files to: Torrent fayllarını buraya kopyalamaq: - + Show &qBittorrent in notification area &qBittorrenti bu bildiriş sahəsində göstərmək: - - &Log file - Jurna&l faylı - - - + Display &torrent content and some options &Torrent tərkibini və bəzi seçimləri göstərmək - + De&lete .torrent files afterwards Əlavə edildikdən sonra torrent fayllarını si&lmək - + Copy .torrent files for finished downloads to: Bitmiş yükləmələr üçün .torrent fayllarını buraya kopyalamq: - + Pre-allocate disk space for all files Bütün fayllar üçün əvvəlcədən yer ayırmaq - + Use custom UI Theme Başqa İstifadəçi interfeysi mövzusu istifadə etmək - + UI Theme file: İİ mövzusu faylı: - + Changing Interface settings requires application restart İnterfeys ayarlarının dəyişdirilməsi tətbiqi yenidən başlatmağı tələb edir - + Shows a confirmation dialog upon torrent deletion Torrentin silinməsinin təsdiq edilməsi dialoqunu göstərir - - + + Preview file, otherwise open destination folder Fayla öncədən baxış, əksa halda təyinat qovluğunu açmaq - - - Show torrent options - Torrent parametrlərini göstərmək - - - + Shows a confirmation dialog when exiting with active torrents Aktiv torrentlər olduqda tətbiqdən çıxarkən, çıxışı təsdiq etmək - + When minimizing, the main window is closed and must be reopened from the systray icon Yığıldıqda əsas pəncərə bağlanır və onu sistem treyindən yenidən açmaq olar - + The systray icon will still be visible when closing the main window Əsas pəncərə bağlandıqda treydəki nişanı hələ də görünəcəkdir - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrent-i bildiriş çubuğuna endirmək - + Monochrome (for dark theme) Monoxrom (qara mövzu üçün) - + Monochrome (for light theme) Monoxrom (işıqlı mövzu üçün) - + Inhibit system sleep when torrents are downloading Torrentlər endirilən zaman komputerin yuxu rejiminə keçməsini əngəlləmək - + Inhibit system sleep when torrents are seeding Torrentlər paylaşılarkən komputerin yuxu rejiminə keçməsini əngəlləmək - + Creates an additional log file after the log file reaches the specified file size Jurnal faylı göstərilmiş ölçüyə çatdıqda sonra əlavə jurnal faylı yaradılır - + days Delete backup logs older than 10 days günlər - + months Delete backup logs older than 10 months aylar - + years Delete backup logs older than 10 years illər - + Log performance warnings Performans xəbərdarlıqlarını qeydə alamaq - - The torrent will be added to download list in a paused state - Torrent, fasilə vəziyyətində yükləmə siyahısına əlavə ediləcək - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Endirməni avtomatik başlatmamaq - + Whether the .torrent file should be deleted after adding it Əlavə edildikdən sonra .torrent faylın silinib silinməməsi - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Daha çox hissələrə bölünmənin qarşısını almaq üçün diskdə tam fayl ölçüsündə yer ayrılır. Yalnız HDD-lər (Sərt Disklər) üçün yararlıdır. - + Append .!qB extension to incomplete files Tamamlanmamış fayllara .!qB uzantısı əlavə etmək - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Torrent endirilən zaman onun daxilindəki .torrent fayllarını endirməyi təklif etmək - + Enable recursive download dialog Təkrarlanan yükləmə dialoqunu aktiv etmək - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Avtomatik: Müxtəlif torrent xüsusiyyətləri (məs., saxlama yolu) əlaqəli kateqoriyalar tərəfindən təyin ediləcəkdir. Əl ilə: Müxtəlif torrent xüsusiyyətləri (məs., saxlama yolu) əl ilə daxil edilməlidir - + When Default Save/Incomplete Path changed: Standart saxlam/tamamlanmamış yolu dəyişdirildiyi zaman: - + When Category Save Path changed: Saxlama Yolu Kateqoriyası dəyişdirildiyində: - + Use Category paths in Manual Mode Kateqoriya yollarını Əl ilə Rejimində istifadə edin - + Resolve relative Save Path against appropriate Category path instead of Default one Nisbi saxlama yolunu, standarta yola görə deyil, uyğun kateqriya yoluna görə təyin edin - + Use icons from system theme Sistem mövzusundakı nişandan istifadə etmək. - + Window state on start up: Sistem açıldıqda pəncərnin vəziyyəti: - + qBittorrent window state on start up Sistemin açılışında qBittorrent pəncərəsinin vəziyyəti - + Torrent stop condition: Torrentin dayanma vəziyyəti: - - + + None Heç nə - - + + Metadata received Meta məlumatları alındı - - + + Files checked Fayllar yoxlanıldı - + Ask for merging trackers when torrent is being added manually Torrent əl ilə əlavə olunduqda izləyicilərin birləşdirilməsini soruşmaq - + Use another path for incomplete torrents: Tamamlanmamış torrentlər üçün başqa yoldan istifadə edin: - + Automatically add torrents from: Torrenti buradan avtomatik əlavə etmək: - + Excluded file names Fayl adları istisna edilir - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6520,765 +6951,811 @@ readme.txt: dəqiq fayl adını seçir. readme[0-9].txt: "readme1ştxt", "readme2ştxt"-ni seçir, lakin "readme10.txt"-ni seçmir. - + Receiver Qəbuledici - + To: To receiver Buraya: - + SMTP server: SMTP server: - + Sender Göndərən - + From: From sender Buradan: - + This server requires a secure connection (SSL) Bu server təhlükəsiz bağlantı (SSL) tələb edir - - + + Authentication Kimlik doğrulaması - - - - + + + + Username: İstifadəçi adı: - - - - + + + + Password: Şifrə: - + Run external program Xarici proqramı başladın - - Run on torrent added - Torrent əlavə edildikdə başlatmaq - - - - Run on torrent finished - Torrent tamamlandlqda başlatmaq - - - + Show console window Konsol pəncərəsini göstərmək - + TCP and μTP TCP və μTP - + Listening Port Dinlənilən port - + Port used for incoming connections: Daxil olan bağlantılar üçün istifadə olunan port - + Set to 0 to let your system pick an unused port Dəyəri 0 təyin edin ki, sistem istifadə olunmayan portu seçsin - + Random Təsadüfi - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP portlarının yönləndirməsi üçün routerimdən istifadə etmək - + Connections Limits Bağlantı limiti - + Maximum number of connections per torrent: Hər torrent üçün ən çox bağlantı limiti: - + Global maximum number of connections: Ən çox ümumi bağlantı sayı: - + Maximum number of upload slots per torrent: Hər torrent üçün ən çox göndərmə yuvası sayı: - + Global maximum number of upload slots: Ən çox ümumi göndərmə yuvaları sayı: - + Proxy Server Proksi server: - + Type: Növ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Əks halda proksi server yalnız izləyici bağlantıları üçün istifadə olunur - + Use proxy for peer connections Proksi serveri, iştirakçı bağlantıları üçün istifadə etmək - + A&uthentication Kimlik doğr&ulaması - - Info: The password is saved unencrypted - Məlumat: Parol, şifrələnməmiş şəkildə saxlanıldı - - - + Filter path (.dat, .p2p, .p2b): Filtr yolu (.dat, .p2p, .p2b): - + Reload the filter Filtri təkrarlamaq - + Manually banned IP addresses... İstifadəçinin qadağan etdiyi İP ünvanları... - + Apply to trackers İzləyicilərə tətbiq etmək - + Global Rate Limits Ümumi sürət limitləri - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KB/san - - + + Upload: Göndərmə: - - + + Download: Yükləmə: - + Alternative Rate Limits Alternativ sürət limitləri - + Start time Başlama vaxtı - + End time Bitmə tarixi - + When: Nə zaman: - + Every day Hər gün - + Weekdays Həftəiçi: - + Weekends Həstə sonları: - + Rate Limits Settings Sürət limitləri ayarları - + Apply rate limit to peers on LAN Sürət limitini LAN şəbəkəsindəki hər iştirakçıya tətbiq etmək - + Apply rate limit to transport overhead Sürət limitini trafik mübadiləsinə tətbiq etmək - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Əgər "qarışıq rejim" aktiv edilərsə I2P torrentlər izləyicilərdən başqa digər mənbələrdən iştirakçılar əldə etməyə və heç bir anonimləşdirmə təqdim etmədən müntəzəm İP-lərə qoşulmağa icazə verir. Bu, əgər istifadəçi üçün I2P anonimləşdirilməsi maraqlı deyilsə və o, hələ də I2P iştirakçılarına qoşulmaq istədiyi halda faydalı ola bilər, </p></body></html> + + + Apply rate limit to µTP protocol Sürət limitini µTP protokoluna tətbiq etmək - + Privacy Məxfi - + Enable DHT (decentralized network) to find more peers Daha çox iştirakçılar tapmaq üçün DHT (mərkəzləşməmiş şəbəkə) aktiv etmək - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) İştirakçıları uyğun qBittorrent müştəriləri ilə əvəzləmək (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Daha çox iştirakçılar tapmaq üçün İştirakçı mübadiləsini (PeX) aktiv etmək - + Look for peers on your local network Yerli şəbəkədəki iştirakçıları axtarmaq - + Enable Local Peer Discovery to find more peers Daha çox iştirakçılar tapmaq üçün Yerli İştirakçı Axtarışını aktiv etmək - + Encryption mode: Şifrələmə rejimi: - + Require encryption Şifrələmə tələbi - + Disable encryption Şifrələməni söndürmək: - + Enable when using a proxy or a VPN connection Proksi və ya VPN bağlantıları istifadə oluduqda - + Enable anonymous mode Anonim rejimi aktiv etmək - + Maximum active downloads: Ən çox aktiv yükləmələr: - + Maximum active uploads: Ən çox aktiv göndərmələr: - + Maximum active torrents: Ən çox aktiv torrentlər: - + Do not count slow torrents in these limits Bu limitlərdə yavaş torrentləri saymamaq - + Upload rate threshold: Göndərmə sürəti həddi: - + Download rate threshold: Yükləmə sürəti həddi: - - - + + + + sec seconds san - + Torrent inactivity timer: Torrent boşdayanma zamanlayıcısı: - + then sonra - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP portlarının yönləndirməsi üçün routerimdən istifadə etmək - + Certificate: Sertifikat: - + Key: Açar: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>sertifikatlar haqqında məlumat</a> - + Change current password Hazırkı şifrəni dəyişmək - - Use alternative Web UI - Alternativ Web İstifadəçi İnterfeysindən istifadə etmək - - - + Files location: Fayl yerləşməsi: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Alternativ Veb İİ siyahısı</a> + + + Security Təhlükəsizlik - + Enable clickjacking protection Klikdən sui-istifadənin qarşısının alınmasını aktiv etnək - + Enable Cross-Site Request Forgery (CSRF) protection Saytlar arası sorğuların saxtalaşdırılmasından (CSRF) mühafizəni aktiv etmək - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Kuk təhlükəsizliyi bayrağını aktiv etmək (HTTPS və ya yerli host bağlantısı tələb olunur) + + + Enable Host header validation Host başlığı doğrulamasını aktiv etmək - + Add custom HTTP headers Başqa HTTP başlıqları əlavə etmək - + Header: value pairs, one per line Başlıq: hər sətir başına bir dəyər cütü - + Enable reverse proxy support Əks proksi dəstəklənməsini açın - + Trusted proxies list: Etibarlı proksilər siyahısı: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Əks proksi quraşdırma nümunələri</a> + + + Service: Xidmət: - + Register Qeydiyyat - + Domain name: Domen adı: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Bu seçimi aktiv etmək torrent fayllarınızı <strong>birdəfəlik itirmək</strong> ilə nəticələnə bilər! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog İkinci seçimi aktiv etdikdə (&ldquo;Həmçinin əlavə edilmə ləğv edildikdə&rdquo;) torrent faylları hətta &ldquo;Torrent əlavə etmək&rdquo; dialoqunda &ldquo;<strong>İmtina</strong>&rdquo; vurduqda belə <strong>silinəcəkdir</strong> - + Select qBittorrent UI Theme file qBittorrent İstifadəçi İnterfeysi mövzusu faylını seçmək - + Choose Alternative UI files location Alternativ İİ faylları yerini seçmək - + Supported parameters (case sensitive): Dəstəklnən parametrlər (böyük-kiçik hərflərə həssas) - + Minimized Yığılmış - + Hidden Gizli - + Disabled due to failed to detect system tray presence Sistem çəkməcəsinin mövcudluğunu aşkar edə bilmədiyinə görə söndürüldü - + No stop condition is set. Dayanma vəziyyəti təyin edilməyib. - + Torrent will stop after metadata is received. Meta məlumatları alındıqdan sonra torrent dayanacaq. - - Torrents that have metadata initially aren't affected. - İlkin meta məlumatları olan torrentlər dəyişilməz qalır. - - - + Torrent will stop after files are initially checked. Faylların ilkin yoxlanışından sonra torrrent daynacaq. - + This will also download metadata if it wasn't there initially. Əgər başlanğıcda meta məlumatlar olmasa onlar da yüklənəcək. - + %N: Torrent name %N: Torrentin adı - + %L: Category %L: Kateqoriyası - + %F: Content path (same as root path for multifile torrent) %F: Məzmun yolu (çoxsaylı torrentlər üçün kök (root) yolu kimi) - + %R: Root path (first torrent subdirectory path) %R: Kök (root) yolu (ilk torrent alt qovluqları yolu) - + %D: Save path %D: Saxlama yolu - + %C: Number of files %C: Faylların sayı - + %Z: Torrent size (bytes) %Z: Torrentin ölçüsü (bayt) - + %T: Current tracker %T: Cari izləyici - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Növ: Mətni, ara boşluğunda kəsilmələrndən qorumaq üçün parametrləri dırnaq işarəsinə alın (məs., "%N") - + + Test email + E-poçtu sınamaq + + + + Attempted to send email. Check your inbox to confirm success + E-poçt göndərməyə cəhd edildi. Uğurlu olduğunu təsdiqləmək üçün poçtunuzu yoxlayın. + + + (None) (Heç nə) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Bir torrent endirmə və göndərmə sürəti, "Torrent boşdayanma zamanlayıcısı"nın saniyələrlə dəyərindən az olarsa, o, yavaş torrent hesab olunacaq - + Certificate Sertifikat - + Select certificate Sertifakatı seçin - + Private key Məxfi açar - + Select private key Məxfi açarı seçin - + WebUI configuration failed. Reason: %1 Veb İİ tənzimləməsini dəyişmək mümkün olmadı. Səbəb: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Windows qaranlıq rejimi ilə daha yaxşı uyğunluq üçün %1 tövsiyyə olunur + + + + System + System default Qt style + Sistem + + + + Let Qt decide the style for this system + Qt-yə bu sistem üçün üslub seçməyə icazə vermək + + + + Dark + Dark color scheme + Qaranlıq + + + + Light + Light color scheme + İşıqlı + + + + System + System color scheme + Sistem + + + Select folder to monitor İzləmək üçün qovluğu seçin - + Adding entry failed Girişin əlavə edilməsi alınmadı - + The WebUI username must be at least 3 characters long. Veb İİ istifadəçi adı ən az 3 işarədən ibarət olmalıdır. - + The WebUI password must be at least 6 characters long. Veb İİ şifrəsi ən az 6 işarədən ibarət olmalıdır. - + Location Error Yerləşmə xətası - - + + Choose export directory İxrac qovluğunu seçmək - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Bu seçim aktiv olduqda qBittorrent, yükləmə növbəsinə uğurla əlavə olunduqdan (ilk seçim) və ya olunmadıqdan (ikinci seçim) sonra, .torrent fayllarını <strong>siləcək</strong>. Bu sadəcə &ldquo;Torrent əlavə etmək&rdquo; menyusu vasitəsi ilə açılmış fayllara <strong>deyil</strong>, həmçinin, <strong>fayl növü əlaqələri</strong> vasitəsi ilə açılanlara da tətbiq ediləcəkdir - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent İİ mövzusu faylı (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiketlər (vergüllə ayrılmış) - + %I: Info hash v1 (or '-' if unavailable) %I: Məlumat heş'i v1 (və ya əgər əlçatmazdırsa '-') - + %J: Info hash v2 (or '-' if unavailable) %J: məlumat heş'i v2 (və ya əgər əlçatmazdırsa '-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent İD-si (ya məlumat heş'i sha-1 v1 üçün və ya v2/hibrid torrenti üçün qısaldılmış sha-256 məlumat heş' i) - - - + + + Choose a save directory Saxlama qovluğunu seçmək - + + Torrents that have metadata initially will be added as stopped. + Əvvəlcədən meta məlumatlara malik olan torrentlər dayandırılmış kimi əılavə ediləcək. + + + Choose an IP filter file İP filtri faylını seçmək - + All supported filters Bütün dəstəklənən filtrlər - + The alternative WebUI files location cannot be blank. Alternativ Veb İİ faylları üçün boş ola bilməz. - + Parsing error Təhlil xətası - + Failed to parse the provided IP filter Təqdim olunan İP filtrinin təhlil baş tutmadı - + Successfully refreshed Uğurla təzələndi - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Təqdim olunan İP filtri uğurla təhlil olundu: %1 qayda tətbiq olundu. - + Preferences Tərcihlər - + Time Error Vaxt xətası - + The start time and the end time can't be the same. Başlama və bitmə vaxtı eyni ola bilməz. - - + + Length Error Ölçü xətası @@ -7286,241 +7763,246 @@ readme[0-9].txt: "readme1ştxt", "readme2ştxt"-ni seçir, l PeerInfo - + Unknown Naməlum - + Interested (local) and choked (peer) Maraqlanan (müştəri) və məşğul (iştirakçı) - + Interested (local) and unchoked (peer) Maraqlanmır (müştəri) və məğul deyil (iştirakçı) - + Interested (peer) and choked (local) Maraqlanan (iştirakçı) və məşğuldur (müştəri) - + Interested (peer) and unchoked (local) Maraqlanmır (iştirakçı) və məşğul deyil (müştəri) - + Not interested (local) and unchoked (peer) Maraqlanmır (müştəri) və məşğul deyil (iştirakçı) - + Not interested (peer) and unchoked (local) Maraqlanmır (iştirakşı) və məşğul deyil (müştəri) - + Optimistic unchoke Tezliklə endirilməyə başlanacaq - + Peer snubbed İştirakçıya irad tutuldu - + Incoming connection Daxil olan bağlantı - + Peer from DHT DHT-dən iştirakçı - + Peer from PEX PEX-dən iştirakçı - + Peer from LSD LSD-dən iştirakçı - + Encrypted traffic Şifrələnmiş trafik - + Encrypted handshake Şifrələnmiş görüşmə + + + Peer is using NAT hole punching + İştirakçı NAT tunellərindən istifadə edir + PeerListWidget - + Country/Region Ölkə/Bölgə - + IP/Address İP/Ünvanlar - + Port Port - + Flags Bayraqlar - + Connection Bağlantı - + Client i.e.: Client application Müştəri - + Peer ID Client i.e.: Client resolved from Peer ID İştirakçının İD müştərisi - + Progress i.e: % downloaded İrəliləyiş - + Down Speed i.e: Download speed Endirmə sürəti - + Up Speed i.e: Upload speed Göndərmə sürəti - + Downloaded i.e: total data downloaded Endirildi - + Uploaded i.e: total data uploaded Göndərildi - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Uyğunluq - + Files i.e. files that are being downloaded right now Fayllar - + Column visibility Sütunun görünməsi - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək - + Add peers... İştirakçı əlavə edin... - - + + Adding peers İştirakçılar əlavə edilir - + Some peers cannot be added. Check the Log for details. Bəzi iştirakçılar əlavə edilə bilməz. Təfsilatı üçün Jurnal faylına baxın. - + Peers are added to this torrent. İştirakçılar bi torrentə əlavə edildilər. - - + + Ban peer permanently İştirakçını birdəfəlik əngəlləmək - + Cannot add peers to a private torrent Məxfi torrentə iştirakçı əlavə edilə bilməz - + Cannot add peers when the torrent is checking Torrent yoxlanılan zaman iştirakçı əlavə edilə bilməz - + Cannot add peers when the torrent is queued Torrent növbədə olduqda iştirakçı əlavə edilə bilməz - + No peer was selected İştirakçı seçilməyib - + Are you sure you want to permanently ban the selected peers? Siz seçilmiş iştirakçını birdəfəlik əngəlləmək istədiyinizə əminsiniz? - + Peer "%1" is manually banned İştirakçı "%1" həmişəlik əngəlləndi - + N/A Ə/D - + Copy IP:port İP portunu kopyalamaq @@ -7538,7 +8020,7 @@ readme[0-9].txt: "readme1ştxt", "readme2ştxt"-ni seçir, l İştirakçılar siyahısı əlavə edildi (hər sətirə bir İP): - + Format: IPv4:port / [IPv6]:port İPv4 portu formatı / [IPv6]:portu @@ -7579,27 +8061,27 @@ readme[0-9].txt: "readme1ştxt", "readme2ştxt"-ni seçir, l PiecesBar - + Files in this piece: Bu hissədəki fayllar: - + File in this piece: Bu hissədəki fayl: - + File in these pieces: Bu hissələrdəki fayl: - + Wait until metadata become available to see detailed information Ətraflı məlumatı görmək üçün meta verilənlərinin daxil olmasını gözləyin - + Hold Shift key for detailed information Ətraflı məlumat üçün Shift düyməsini basıb saxlayın @@ -7612,58 +8094,58 @@ readme[0-9].txt: "readme1ştxt", "readme2ştxt"-ni seçir, l Axtarış qoşmaları - + Installed search plugins: Quraşdırılmış axtarış qoşmaları - + Name Adı - + Version Versiyası - + Url Url - - + + Enabled Aktiv edildi - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Xəbərdarlıq: Bu axtarış sistemlərinin hər hansı birindən istifadə edərək torrentləri yükləyərkən, mütləq ölkənizin müəllif hüquqları haqqında qanununa rəayət edin. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Yeni axtarış mühərriki qoşmalarını buradan əldə edə bilərsiniz: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Yeni birini quraşdırın - + Check for updates Yenilənmələri yoxlamaq - + Close Bağlamaq - + Uninstall Silmək @@ -7783,98 +8265,65 @@ Bu qoşmalar söndürülüb. Qoşmanın mənbəyi - + Search plugin source: Axtarış qoşmasının mənbəyi: - + Local file Yerli fayl - + Web link Veb keçidi - - PowerManagement - - - qBittorrent is active - qBittorrent aktivdir - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Elektrik qidalanması idarəetmə vasitəsi uyğun D-Bus interfeysi tapdı. İnterfeys: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Elektrik qidalanması idarəetməsi xətası. Uyğun D-Bus interfeysi tapılmadı. - - - - - - Power management error. Action: %1. Error: %2 - Elektrik qidalanması idarəetməsi xətası. Əməl: %1. Xəta: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Elektrik qidalanması idarəetməsində gözlənilməz xəta baş verdi. Vəziyyət: %1. Xəta: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Aşağıdakı "%1" torrentindəki fayllar öncədən baxışı dəstəkləyir, onlardan birini seçin: - + Preview Öncədən baxış - + Name Adı - + Size Ölçüsü - + Progress İrəliləyiş - + Preview impossible Öncədən baxış mümkün deyil - + Sorry, we can't preview this file: "%1". Təəssüf ki, bu faylı öncədən göstərə bilmirik: "%1" - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək @@ -7887,27 +8336,27 @@ Bu qoşmalar söndürülüb. Private::FileLineEdit - + Path does not exist Yol mövcud deyil - + Path does not point to a directory Yol qovluğu göstərmir - + Path does not point to a file Yol fayla aparmır - + Don't have read permission to path Yol üçün oxumaq icazəsi yoxdur - + Don't have write permission to path Yol üçün yazmaq icazəsi yoxdur @@ -7948,12 +8397,12 @@ Bu qoşmalar söndürülüb. PropertiesWidget - + Downloaded: Endirilən: - + Availability: Mövcud: @@ -7968,53 +8417,53 @@ Bu qoşmalar söndürülüb. Köçürmə - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivlik müddəti: - + ETA: Qalan Vaxt: - + Uploaded: Göndərilən: - + Seeds: Göndərənlər: - + Download Speed: Endirmə sürəti: - + Upload Speed: Göndərmə sürəti: - + Peers: İştirakçılar: - + Download Limit: Endirmə limiti: - + Upload Limit: Göndərmə limiti: - + Wasted: İtirilən: @@ -8024,193 +8473,220 @@ Bu qoşmalar söndürülüb. Bağlantılar - + Information Məlumat - + Info Hash v1: Məlumat heş'i v1: - + Info Hash v2: Məlumat heş'i v2: - + Comment: Şərh: - + Select All Hamısını seçmək - + Select None Heç birini seçməmək - + Share Ratio: Paylaşım nisbəti: - + Reannounce In: Növbəti anons: - + Last Seen Complete: Son görünən tamamlanmış: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Nisbət / vaxt aktivliyi (aylar ərzində) torrentlərin nə qədər populyar olduğunu göstərir + + + + Popularity: + Populyarlıq: + + + Total Size: Ümumi ölçüsü: - + Pieces: Hissələr: - + Created By: Yaradan: - + Added On: Əlavə edilib: - + Completed On: Tamamlanıb: - + Created On: Yaradılıb: - + + Private: + Gizli: + + + Save Path: Saxlama yolu: - + Never Heç zaman - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3 var) - - + + %1 (%2 this session) %1 (%2 bu sesiyada) - - + + + N/A Əlçatmaz - + + Yes + Bəli + + + + No + Xeyr + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (%2 üçün göndərilmə) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 ən çox) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 ümumi) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 orta.) - - New Web seed - Yeni veb göndərimi + + Add web seed + Add HTTP source + Veb iştirakçı əlavə etmək - - Remove Web seed - Veb göndərimini silmək + + Add web seed: + Veb iştirakçı əlavə etmək: - - Copy Web seed URL - Veb göndərim keçidini kopyalamaq + + + This web seed is already in the list. + Bu veb iştirakçı artıq siyahıdadır. - - Edit Web seed URL - Veb göndərim keçidinə düzəliş - - - + Filter files... Faylları filtrləmək... - + + Add web seed... + Veb iştirakçı əlavə etmək... + + + + Remove web seed + Veb iştirakçını silmək + + + + Copy web seed URL + Veb iştirakçı ünvanını kopyalamaq + + + + Edit web seed URL... + Veb iştirakçı ünvanına düzəliş etmək... + + + Speed graphs are disabled Tezlik qrafiki söndürülüb - + You can enable it in Advanced Options Siz bunu Əlavə Seçimlər-də aktiv edə bilərsiniz - - New URL seed - New HTTP source - Yeni URL göndərimi - - - - New URL seed: - Yeni URL göndərimi: - - - - - This URL seed is already in the list. - Bu YRL göndərimi artıq bu siyahıdadır. - - - + Web seed editing Veb göndəriminə düzəliş edilir - + Web seed URL: Veb göndərim URL-u: @@ -8218,33 +8694,33 @@ Bu qoşmalar söndürülüb. RSS::AutoDownloader - - + + Invalid data format. Səhv tarix formatı - + Couldn't save RSS AutoDownloader data in %1. Error: %2 RSS avtomatik yükləmə tarixini %1 daxilində saxlamaq mümkün olmadı:. Xəta: %2 - + Invalid data format Səhv tarix formatı - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... "%1" RSS məqaləsi "%2" qaydası tərəfindən qəbul edildi. Torrent əlavə edilməyə cəhd edilir... - + Failed to read RSS AutoDownloader rules. %1 RSS avtomatik yükləmə qaydalarını oxumaq mümkün olmadı. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS avtomatik yükləmə qaydaları yüklənə bilmədi. Səbəb: %1 @@ -8252,22 +8728,22 @@ Bu qoşmalar söndürülüb. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 RSS lentini "%1"-də/da yükləmək baş tutmadı. Səbəb: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS lenti "%1"-də/da yeniləndi. %2 yeni məqalə əlavə edildi. - + Failed to parse RSS feed at '%1'. Reason: %2 RSS lentini "%1"-də/da analiz etmək baş alınmadı. Səbəb: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS lenti "%1"-də/da uğurla yükləndi. Təhlili başlayır. @@ -8303,12 +8779,12 @@ Bu qoşmalar söndürülüb. RSS::Private::Parser - + Invalid RSS feed. Səhv RSS lenti. - + %1 (line: %2, column: %3, offset: %4). %1 (sətir: %2, sütun: %3, sürüşmə: %4). @@ -8316,103 +8792,144 @@ Bu qoşmalar söndürülüb. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" RSS sessiyası tənzimləməsi saxlanıla bilmədi. Fayl: "%1". Xəta:"%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" RSS sessiyası verilənləri saxlanıla bilmədi. Fayl: "%1". Xəta: "%2" - - + + RSS feed with given URL already exists: %1. Verilmiş URL ilə RSS lenti artıq mövcuddur: %1 - + Feed doesn't exist: %1. Xəbər lenti mövcud deyil: %1 - + Cannot move root folder. Kök (root) qovluğu köçürülə bilmir. - - + + Item doesn't exist: %1. Element tapılmadı: %1. - - Couldn't move folder into itself. - Qovluğu öz daxilinə köçürmək mümkün deyil + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Kök qovluğu silinə bilmir. - + Failed to read RSS session data. %1 RSS sesiya verilənlərini oxumaq mümkün olmadı. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" RSS sesiya verilənlərini həll etmək mümkün olmadı. Fayl: "%1". Xəta: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." RSS sesiya verilənlərini yükləmək mümkün olmadı. Fayl: "%1". Xəta: "Səhv verilənlər formatı." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. RSS xəbər lenti yüklənə bilmədi. Xəbər lenti: "%1". Səbəb: URL tələb olunur. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. RSS xəbər lentini yükləmək alınmadı. Xəbər lenti: "%1". Səbəb: UİD səhvdir. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. RSS xəbər lentinin təkrarı aşkarlandı. UİD: "%1". Xəta: Belə görünür ki, tənzimləmə pozulub. - + Couldn't load RSS item. Item: "%1". Invalid data format. RSS elemntlərini yüləmək mümkün olmadı. Element: "%1". Verilənlər formatı səhvdir. - + Corrupted RSS list, not loading it. RSS siyahısı pozulub, o, yüklənmir. - + Incorrect RSS Item path: %1. Düzgün olmayan RSS elementi yolu: %1 - + RSS item with given path already exists: %1. Verilmiş yol ilə RSS elementi artıq mövcuddur: %1 - + Parent folder doesn't exist: %1. Ana qovluq yoxdur; %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Xəbər lenti mövcud deyil: %1 + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Təzələnmə aralığı: + + + + sec + san + + + + Default + Standart + + RSSWidget @@ -8432,8 +8949,8 @@ Bu qoşmalar söndürülüb. - - + + Mark items read Elementləri oxunmuş kimi işarələmək @@ -8458,132 +8975,115 @@ Bu qoşmalar söndürülüb. Torrentlər: (endirmək üçün iki dəfə vurun) - - + + Delete Silmək - + Rename... Adını dəyişmək... - + Rename Adını dəyişmək - - + + Update Yeniləmək - + New subscription... Yeni abunəlik... - - + + Update all feeds Bütün lentləri yeniləmək - + Download torrent Torrenti endirmək - + Open news URL Yeni URL açın - + Copy feed URL Lent URL-nu kopyalamaq - + New folder... Yeni qovluq... - - Edit feed URL... - Xəbər lenti ünvanına düzəliş et... + + Feed options... + - - Edit feed URL - Xəbər lenti ünvanına düzəliş et - - - + Please choose a folder name Qovluğu ad verin - + Folder name: Qovluğun adı: - + New folder Yeni qovluq - - - Please type a RSS feed URL - RSS lenti URL-nu yazın - - - - - Feed URL: - Lent URL-u: - - - + Deletion confirmation Silinmənin təsdiqlənməsi - + Are you sure you want to delete the selected RSS feeds? Seçilmiş RSS lentlərini silmək istədiyinizə əminsiniz? - + Please choose a new name for this RSS feed RSS lenti üçün yeni ad seçin - + New feed name: Yeni lent adı: - + Rename failed Adı dəyişdirilə bilmədi - + Date: Tarix: - + Feed: Lent: - + Author: Müəllif: @@ -8591,38 +9091,38 @@ Bu qoşmalar söndürülüb. SearchController - + Python must be installed to use the Search Engine. Axtarış sistemini istifadə etmək üçün Python quraşdırılmalıdır. - + Unable to create more than %1 concurrent searches. %1-dən/dan çox paralel axtarışlar yaratmaq mümkün deyil. - - + + Offset is out of range Sürüşmə əhatə dairəsindən kənardadır - + All plugins are already up to date. Bütün qoşmalar artıq yenilənib. - + Updating %1 plugins %1 qoşmaları yenilənir - + Updating plugin %1 %1 qoşması yenilənir - + Failed to check for plugin updates: %1 Qoşmanın yenilənməsini yoxlamaq baş tutmadı: %1 @@ -8697,132 +9197,142 @@ Bu qoşmalar söndürülüb. Ölçüsü: - + Name i.e: file name Adı - + Size i.e: file size Ölçüsü - + Seeders i.e: Number of full sources Göndəricilər - + Leechers i.e: Number of partial sources İstismar edənlər - - Search engine - Axtarış vasitəsi - - - + Filter search results... Axtarış nəticələrini filtrləmək... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Nəticələr (<i>%2</i>dən/dan <i>%1</i> göstərmək): - + Torrent names only Torrent adı yalnız - + Everywhere Hər yerdə - + Use regular expressions Müntəzəm ifadələri istiadə etmək - + Open download window Endirmə pəncrəsini açın - + Download Endirmək - + Open description page Tanıtma səhifəsini açmaq - + Copy Kopyalamaq - + Name Adı - + Download link Endirmə keçidi - + Description page URL Tanıtma səhifəsi URL-u - + Searching... Axtarılır... - + Search has finished Axtarış sona çatdı - + Search aborted Axtarış ləğv edildi - + An error occurred during search... Axtarış zamanı xəta baş verdi... - + Search returned no results Axtarış nəticə vermədi - + + Engine + Mühərrik + + + + Engine URL + Mühərrikin ünvanı + + + + Published On + Yayımlandığı yer + + + Column visibility Sütunun görünməsi - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək @@ -8830,104 +9340,104 @@ Bu qoşmalar söndürülüb. SearchPluginManager - + Unknown search engine plugin file format. Naməlum axtarış vasitəsi qoşması fayl formatı. - + Plugin already at version %1, which is greater than %2 Qoşma artıq %2 versiyasından böyük olan %1 versiyasındadır - + A more recent version of this plugin is already installed. Bu qoşmanın artıq ən son versiyası quraşdırılıb. - + Plugin %1 is not supported. %1 qoşması dəstəklənmir. - - + + Plugin is not supported. Qoşma dəstəklənmir. - + Plugin %1 has been successfully updated. %1 qoşması uğurla yeniləndi. - + All categories Bütün kateqoriyalar - + Movies Filmlər - + TV shows TV verilişləri - + Music Musiqi - + Games Oyun - + Anime Cizgi filmləri - + Software Proqram təminatı - + Pictures Şəkillər - + Books Kitablar - + Update server is temporarily unavailable. %1 Yeniləmə serveri müvəqqəti işləmir. %1 - - + + Failed to download the plugin file. %1 Qoşma faylının endrilməsi alınmadı. %1 - + Plugin "%1" is outdated, updating to version %2 "%1" qoşmasının bersiyası köhnədir, %2 versiyasına yenilənir - + Incorrect update info received for %1 out of %2 plugins. %2 qoşmalarından %1 yenilənməsi haqqında səhv məlumatı alındı. - + Search plugin '%1' contains invalid version string ('%2') '%1' axtarış qoşması versiyası ('%2') səhv sətirlərdən ibarətdir @@ -8937,114 +9447,145 @@ Bu qoşmalar söndürülüb. - - - - Search Axtarış - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Quraşdırılmış axtarış qoşması yoxdur. Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı "Axtarış qoşmaları..." düyməsinə vurun. - + Search plugins... Axtarış qoşmaları... - + A phrase to search for. Axtarış ifadəsi. - + Spaces in a search term may be protected by double quotes. Axtarış sorğusundakı boşluq cüt dırnaq işarəsi ilə qorunur. - + Example: Search phrase example Nümunə: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: <b>foo bar</b> axtarmaq üçün - + All plugins Bütün qoşmalar - + Only enabled Yalnız aktiv edilənlər - + + + Invalid data format. + Səhv tarix formatı + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: <b>foo</b> və <b>bar</b> axtarmaq üçün - + + Refresh + Təzələmək + + + Close tab Vərəqi bağlayın - + Close all tabs Bütün vərəqləri bağlayın - + Select... Seçin... - - - + + Search Engine Axtarış sistemi - + + Please install Python to use the Search Engine. Axtarış sistemini istifadə etmək üçün Python quraşdırın. - + Empty search pattern Boş axtarış nümunəsi - + Please type a search pattern first Öncə axtarış nümunəsini daxil edin - + + Stop Dayandırmaq + + + SearchWidget::DataStorage - - Search has finished - Axtarış sona çatdı + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Axtarış İİ-nin saxlanılması vəziyyəti haqqında məlumatı yükləmək mümkün olmadı. Fayl: "%1". Xəta: "%2" - - Search has failed - Axtarış alınmadı + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Saxlanılmış axtarış nəticələrini yükləmək mümkün olmadı. Vərəq: "%1". Fayl: "%2". Xəta: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Axtarıç İİ vəziyyətini saxlamaq mümüknü olmadı. Fayl: "%1". Xəta: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Axtarış nəticələrini saxlamaq mümkün olmadı: Vərəq: "%1". Fayl: "%2". Xəta: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Axtarış İİ tarixçəsini yükləmək mümkün olmadı. Fayl: "%1". Xəta: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Axtarış tarixçəsini saxlamaq mümkün olmadı. Fayl: "%1". Xəta: "%2" @@ -9157,34 +9698,34 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı - + Upload: Göndərmə: - - - + + + - - - + + + KiB/s KB/san - - + + Download: Yükləmə: - + Alternative speed limits Alternativ sürət hədləri @@ -9376,32 +9917,32 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı Növbədəki orta vaxt: - + Connected peers: Qoşulmuş iştirakçılar: - + All-time share ratio: Ümumi paylaşım nisbəti: - + All-time download: İndiyədək yüklənən: - + Session waste: Sesiyada itirilən: - + All-time upload: İndiyədək göndərilən: - + Total buffer size: Ümumi bufer ölçüsü: @@ -9416,12 +9957,12 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı Növbədəki Giriş/Çıxış əməliyyatları: - + Write cache overload: Yazı keşinin :artıq yüklənməsi: - + Read cache overload: Oxuma keşinin artıq yüklənməsi:: @@ -9440,51 +9981,77 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı StatusBar - + Connection status: Bağlantının vəziyyəti: - - + + No direct connections. This may indicate network configuration problems. Birbaşa bağlantılar yoxdur. Bu şəbəkə bağlantısı probleminə işarədir. - - + + Free space: N/A + + + + + + External IP: N/A + Xarici İP: Ə/D + + + + DHT: %1 nodes DHT: %1 qovşaqlar - + qBittorrent needs to be restarted! qBittorrenti yenidən başlatmaq lazımdır! - - - + + + Connection Status: Bağlantının vəziyyəti: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Şəbəkədən kənar: Bu, adətən o deməkdir ki, qBittorrent-in daxil olan bağlantılar üçün seçilmiş portları dinləməsi baş tutmadı - + Online Şəbəkədə - + + Free space: + + + + + External IPs: %1, %2 + Xarici İP-lər: %1, %2 + + + + External IP: %1%2 + Xarici İP: %1%2 + + + Click to switch to alternative speed limits Alternativ sürət limitlərinə keçmək üçün vurun - + Click to switch to regular speed limits Müntəzəm sürət limitlərinə keçmək üçün vurun @@ -9514,13 +10081,13 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı - Resumed (0) - Davm etdirilən (0) + Running (0) + Başladılır (0) - Paused (0) - Fasilədə (0) + Stopped (0) + Dyandırıldı (0) @@ -9582,36 +10149,36 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı Completed (%1) Başa çatdı (%1) + + + Running (%1) + Başlayır (%1) + - Paused (%1) - Fasilədə (%1) + Stopped (%1) + Dayandırıldı (%1) + + + + Start torrents + Torrentləri başlatmaq + + + + Stop torrents + Torrentləri dayandırmaq Moving (%1) Köçürülür (%1) - - - Resume torrents - Torrentləri davam etdirmək - - - - Pause torrents - Torrentlərə fasilə - Remove torrents Torrentləri silin - - - Resumed (%1) - Davam etdirilən (%1) - Active (%1) @@ -9683,31 +10250,31 @@ Onlardan bəzilərini quraşdırmaq üçün pəncərənin aşağı-sağındakı Remove unused tags İstifadəsiz etiketləri silmək - - - Resume torrents - Torrentləri davam etdirmək - - - - Pause torrents - Torrentlərə fasilə - Remove torrents Torrentləri silin - - New Tag - Yeni etiket + + Start torrents + Torrentləri başlatmaq + + + + Stop torrents + Torrentləri dayandırmaq Tag: Etiket: + + + Add tag + Etiket əlavə etmək + Invalid tag name @@ -9854,32 +10421,32 @@ Başqa ad verin və yenidən cəhd edin. TorrentContentModel - + Name Ad - + Progress Gedişat - + Download Priority Endirmə üstünlüyü - + Remaining Qalır - + Availability Mövcuddur - + Total Size Ümumi ölçü @@ -9924,102 +10491,120 @@ Başqa ad verin və yenidən cəhd edin. TorrentContentWidget - + Rename error Ad dəyişmədə xəta - + Renaming Adı dəyişdirilir - + New name: Yeni ad: - + Column visibility Sütunun görünməsi - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək - + Open Açın - + Open containing folder Bu tərkibli qovluğu aç - + Rename... Adını dəyişin.. - + Priority Üstünlük - - + + Do not download Endirməyin - + Normal Normal - + High Yüksək - + Maximum Ən çox - + By shown file order Göstərilən fayl sırasına görə - + Normal priority Adi üstünlük - + High priority Yüksək üstünlük - + Maximum priority Ən yüksək üstünlük - + Priority by shown file order Göstərilən fayl sırasına görə üstünlük + + TorrentCreatorController + + + Too many active tasks + Həddindən çox aktiv tapşırıqlar + + + + Torrent creation is still unfinished. + Torrent yaradılması hələ başa çatmayıb. + + + + Torrent creation failed. + Torrent yaradılması uğursuz oldu + + TorrentCreatorDialog @@ -10044,13 +10629,13 @@ Başqa ad verin və yenidən cəhd edin. - + Select file Faylı seçmək - + Select folder Qovluğu seçmək @@ -10075,7 +10660,7 @@ Başqa ad verin və yenidən cəhd edin. Hissənin ölçüsü: - + Auto Avtomatik @@ -10125,88 +10710,83 @@ Başqa ad verin və yenidən cəhd edin. Sahələr - + You can separate tracker tiers / groups with an empty line. İzləyici səviyyələrini/qruplarını boş bir sətirlə ayırmaq olar. - + Web seed URLs: Veb göndərişi URL-ları: - + Tracker URLs: İzləyici URL-ları: - + Comments: Şərhlər: - + Source: Mənbə: - + Progress: Gedişat: - + Create Torrent Torrent yaratmaq - - + + Torrent creation failed Torrent yaratmaq alınmadı - + Reason: Path to file/folder is not readable. Səbəbi: Fayla/qovluğa yol oxuna bilən deyil. - + Select where to save the new torrent Yeni torrenti harada saxlayacağınızı seçin - + Torrent Files (*.torrent) Torrent faylları (*.torrent) - - Reason: %1 - Səbəbi: %1 - - - + Add torrent to transfer list failed. Köçürmə siyahısına torrent əlavə etmək baş tutmadı. - + Reason: "%1" Səbəb: "%1" - + Add torrent failed Torrent əlavə edilməsi baş tutmadı - + Torrent creator Torrent yaradıcı - + Torrent created: Yaradılan torrent: @@ -10214,32 +10794,32 @@ Başqa ad verin və yenidən cəhd edin. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Baxılmış qovluqların tənzimləməsini yükləmək mümkün olmadı. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" %1-dən baxılmış qovluqların tənzimləməsini həll etmək mümkün olmadı. Xəta: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." %1-dən baxılmış qovluqların tənzimləməsini yükləmək mükün olmadı. Xəta: "Səhv verilənlər formatı". - + Couldn't store Watched Folders configuration to %1. Error: %2 İzlənilən qovluq tənzilmləməsi %1-ə/a yazıla bilmədi. Xəta: %2 - + Watched folder Path cannot be empty. İzlənilən qovluq yolu boş ola bilməz. - + Watched folder Path cannot be relative. İzlənilən qovluq yolu nisbi ola bilməz. @@ -10247,44 +10827,31 @@ Başqa ad verin və yenidən cəhd edin. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Xətalı Magnet keçidi. Keçid ünvanı: %1. Səbəb: %2 - + Magnet file too big. File: %1 Maqnit fayl çox böyükdür. Fayl: %1 - + Failed to open magnet file: %1 Maqnit faylı açıla bilmədi: %1 - + Rejecting failed torrent file: %1 Uğursuz torrent faylından imtina edilir: %1 - + Watching folder: "%1" İzlənilən qovluq: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Faylın oxunması zamanı yaddaş ayırmaq mümkün olmadı. Fayl: "%1". Xəta: "%2" - - - - Invalid metadata - Səhv meta verilənləri - - TorrentOptionsDialog @@ -10313,127 +10880,163 @@ Başqa ad verin və yenidən cəhd edin. Tamamlanmamış torrentlər üçün başqa yoldan istifadə edin - + Category: Kateqoriya: - - Torrent speed limits - Torrent sürət limitləri + + Torrent Share Limits + Torrenti paylamaq limitləri - + Download: Yükləmə: - - + + - - + + Torrent Speed Limits + Torrrent sürəti limiti + + + + KiB/s KB/san - + These will not exceed the global limits Bunlar ümumi hədləri keçməyəcək - + Upload: Göndərmə: - - Torrent share limits - Torrent paylaşım limitləri - - - - Use global share limit - Ümumi paylaşım limitindən istifadə edin - - - - Set no share limit - Paylaşma limiti təyin etməyin - - - - Set share limit to - Paylaşma limiti təyin etmək - - - - ratio - nisbət - - - - total minutes - ümumi dəqiqələr - - - - inactive minutes - qeyri-aktiv dəqiqlələr - - - + Disable DHT for this torrent Bu torrent üçün DHT-ni söndürmək - + Download in sequential order Ardıcıl şəkildə yükləmək - + Disable PeX for this torrent Bu torrent üçün PeX-i söndürmək - + Download first and last pieces first Öncə İlk və son hissələri endirmək - + Disable LSD for this torrent Bu torrent üçün LSD-ni söndürmək - + Currently used categories Hazırda istifadə olunan kateqoriyalar - - + + Choose save path Saxlama yolunu seçin - + Not applicable to private torrents Şəxsi torrentlərə tətbiq olunmur + + + TorrentShareLimitsWidget - - No share limit method selected - Paylaşma limiti üsulu seçilməyib + + + + + Default + Standart - - Please select a limit method first - Öncə paylaşma limitini seçin + + + + Unlimited + Limitsiz + + + + + + Set to + Təyin edin + + + + Seeding time: + Paylama vaxtı: + + + + + + + + + min + minutes + dəq + + + + Inactive seeding time: + Qeyri-aktiv paylama vaxtı: + + + + Action when the limit is reached: + Limitə çatdlıqda fəaliyyət: + + + + Stop torrent + Torrenti dayandırmaq + + + + Remove torrent + Torrenti silmək + + + + Remove torrent and its content + Torrenti və onun tərkiblərini silmək + + + + Enable super seeding for torrent + Torrent üçün super göndərişi aktivləşdirmək + + + + Ratio: + Nisbət: @@ -10444,32 +11047,32 @@ Başqa ad verin və yenidən cəhd edin. Torrent etiketləri - - New Tag - Yeni etiket + + Add tag + Etiket əlavə etməkEtiket əlavə etmək - + Tag: Etiket: - + Invalid tag name Səhv etiket adı - + Tag name '%1' is invalid. "%1" etiket adı qəbul edilmir - + Tag exists Etiket mövcuddur - + Tag name already exists. Etiket adı artıq mövcuddur. @@ -10477,115 +11080,130 @@ Başqa ad verin və yenidən cəhd edin. TorrentsController - + Error: '%1' is not a valid torrent file. Xəta: '%1' torrent faylı düzgün deyil. - + Priority must be an integer Üstünlük tam ədəd olmalıdır - + Priority is not valid Üstünlük etibarsızdır - + Torrent's metadata has not yet downloaded Torrent meta verilənləri hələlik yüklənməyib - + File IDs must be integers Fayl İD-ləri uyğunlaşdırılmalıdır - + File ID is not valid Fayl İD-ləri etibarlı deyil - - - - + + + + Torrent queueing must be enabled Torrent növbələnməsi aktiv edilməlidir - - + + Save path cannot be empty Saxlama yolu boş ola bilməz - - + + Cannot create target directory Hədəf kataloqu yaradıla bilmir - - + + Category cannot be empty Kateqoriya boş ola bilməz - + Unable to create category Kateqoriya yaratmaq mümkün olmadı - + Unable to edit category Kateqoriyaya düzəliş etmək mümkün olmadı - + Unable to export torrent file. Error: %1 Torrent faylın ixracı mümkün deyil. Xəta: %1 - + Cannot make save path Saxlama yolu yaradıla bilmədi - + + "%1" is not a valid URL + "%1" etibarlı URL deyil + + + + URL scheme must be one of [%1] + URL sxemi bunlardan biri olmalıdır: [%1] + + + 'sort' parameter is invalid 'çeşid' parametri səhvdir - + + "%1" is not an existing URL + "%1" mövcud URL deyil + + + "%1" is not a valid file index. "%1" düzgün indeks faylı deyil. - + Index %1 is out of bounds. %1 indeksi hüdülardan kənardadır. - - + + Cannot write to directory Qovluğa yazmaq mümkün olmadı - + WebUI Set location: moving "%1", from "%2" to "%3" Veb İİ, yerdəyişmə: "%1" "%2"-dən/dan "%3"-ə\a - + Incorrect torrent name Səhv torrent adı - - + + Incorrect category name Səhv kateqoriya adı @@ -10616,196 +11234,191 @@ Başqa ad verin və yenidən cəhd edin. TrackerListModel - + Working İşləyir - + Disabled Söndürülüb - + Disabled for this torrent Bu torrent söndürülüb - + This torrent is private Bu torrent məxfidir - + N/A Əlçatmaz - + Updating... Yenilənir... - + Not working İşləmir - + Tracker error İzləyici xətası - + Unreachable Əlçatmaz - + Not contacted yet Hələ qoşulmayıb - - Invalid status! + + Invalid state! Xətalı vəziyyət! - - URL/Announce endpoint - Keçid ünvanını/son nöqtəni elan edin + + URL/Announce Endpoint + URL/Anons son nöqtəsi - + + BT Protocol + BitTorrent protokolu + + + + Next Announce + Növbəti anons + + + + Min Announce + Ən az anons + + + Tier Səviyyə - - Protocol - Protokol - - - + Status Vəziyyəti - + Peers İştirakçılar - + Seeds Göndəricilər - + Leeches Sui-istifadə edənlər - + Times Downloaded Endirilmə sayı - + Message İsmarıc - - - Next announce - Növbəti anons - - - - Min announce - Ən az anons - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Bu torrent məxfidir - + Tracker editing İzləyicilərə düzəliş edilir - + Tracker URL: İzləyici URL-u: - - + + Tracker editing failed İzləyicilərə düzəliş alınmadı - + The tracker URL entered is invalid. Daxil edilən izləyici URL-u səhvdir - + The tracker URL already exists. İzləyici URL-u artıq mövcuddur. - + Edit tracker URL... İzləyici URL-na düzəliş edin... - + Remove tracker İzləyicini silmək - + Copy tracker URL İzləyici URL-nu kopyalamaq - + Force reannounce to selected trackers Seçilmiş izləyicilərə məcburi təkrar anons etmək - + Force reannounce to all trackers Bütün izləyicilərə məcburi təkrar anons etmək - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək - + Add trackers... İzləyicilər əlavə edin... - + Column visibility Sütunun görünməsi @@ -10823,37 +11436,37 @@ Başqa ad verin və yenidən cəhd edin. Əlavə ediləcək izləyicilərin siyahısı (hər sətirə bir) - + µTorrent compatible list URL: µTorrent ilə uyğun siyahı URL-u: - + Download trackers list İzləyici siyahısını endirin - + Add Əlavə edin - + Trackers list URL error İzləyici siyahısı ünvanı səhvdir - + The trackers list URL cannot be empty İzləyici siyahısı ünvanı boş ola bilməz - + Download trackers list error İzləyici siyahısını endirilməsində xəta - + Error occurred when downloading the trackers list. Reason: "%1" İzləyici siyahısı endirilən zaman xəta baş verdi. Səbəb: "%1" @@ -10861,62 +11474,62 @@ Başqa ad verin və yenidən cəhd edin. TrackersFilterWidget - + Warning (%1) Xəbərdarlıq (%1) - + Trackerless (%1) İzləyicilərsiz (%1) - + Tracker error (%1) İzləyici xətası (%1) - + Other error (%1) Başqa xəta (%1) - + Remove tracker İzləyicini silmək - - Resume torrents - Torrentləri davam etdirmək + + Start torrents + Torrentləri başlatmaq - - Pause torrents - Torrentlərə fasilə + + Stop torrents + Torrentləri dayandırmaq - + Remove torrents Torrentləri silin - + Removal confirmation Silinmənin təsdiqi - + Are you sure you want to remove tracker "%1" from all torrents? "%1" izləyicisini bütün torrentlərdən silmək istədiyinizə əminisiniz? - + Don't ask me again. Bir daha soruşmamaq. - + All (%1) this is for the tracker filter Hamısı (%1) @@ -10925,7 +11538,7 @@ Başqa ad verin və yenidən cəhd edin. TransferController - + 'mode': invalid argument "mode": səhv arqument @@ -11017,11 +11630,6 @@ Başqa ad verin və yenidən cəhd edin. 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. Bərpa olunma tarixi yoxlanılır - - - Paused - Fasilədə - Completed @@ -11045,220 +11653,252 @@ Başqa ad verin və yenidən cəhd edin. Xətalı - + Name i.e: torrent name Ad - + Size i.e: torrent size Ölçü - + Progress % Done Gedişat - + + Stopped + Dayandırılıb + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Vəziyyət - + Seeds i.e. full sources (often untranslated) Göndəricilər - + Peers i.e. partial sources (often untranslated) İştirakçılar - + Down Speed i.e: Download speed Endirmə sürəti - + Up Speed i.e: Upload speed Göndərmə sürəti - + Ratio Share ratio Reytinq - + + Popularity + Populyarlıq + + + ETA i.e: Estimated Time of Arrival / Time left Qalan Vaxt - + Category Kateqoriya - + Tags Etiketlər - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Əlavə edilib - + Completed On Torrent was completed on 01/01/2010 08:00 Tamamlanıb - + Tracker İzləyici - + Down Limit i.e: Download limit Endirmə limiti - + Up Limit i.e: Upload limit Göndərmə limiti - + Downloaded Amount of data downloaded (e.g. in MB) Endirildi - + Uploaded Amount of data uploaded (e.g. in MB) Göndərildi - + Session Download Amount of data downloaded since program open (e.g. in MB) Sesiyada yüklənən - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sesiyada göndərilən - + Remaining Amount of data left to download (e.g. in MB) Qalır - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivlik müddəti - + + Yes + Bəli + + + + No + Xeyr + + + Save Path Torrent save path Yolu saxla - + Incomplete Save Path Torrent incomplete save path Tamamlanmayanların saxlama yolu - + Completed Amount of data completed (e.g. in MB) Başa çatdı - + Ratio Limit Upload share ratio limit Nisbət həddi - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Son görünən tamamlanmış - + Last Activity Time passed since a chunk was downloaded/uploaded Sonuncu aktiv - + Total Size i.e. Size including unwanted data Ümumi ölçü - + Availability The number of distributed copies of the torrent Mövcud - + Info Hash v1 i.e: torrent info hash v1 Məlumat heş-i v1 - + Info Hash v2 i.e: torrent info hash v2 Məlumat heş-i v2 - + Reannounce In Indicates the time until next trackers reannounce Növbəti anons vaxtı - - + + Private + Flags private torrents + Məxfi + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Nisbət / vaxt aktivliyi (aylar ərzində) torrentlərin nə qədər populyar olduğunu göstərir + + + + + N/A Ə/D - + %1 ago e.g.: 1h 20m ago %1 əvvəl - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (%2 üçün göndərildi) @@ -11267,339 +11907,319 @@ Başqa ad verin və yenidən cəhd edin. TransferListWidget - + Column visibility Sütunun görünməsi - + Recheck confirmation Yenidən yoxlamanı təsdiq etmək - + Are you sure you want to recheck the selected torrent(s)? Seçilmiş torrent(lər)i yenidən yoxlamaq istədiyinizə əminsiniz? - + Rename Adını dəyişmək - + New name: Yeni ad: - + Choose save path Saxlama yolunu seçmək - - Confirm pause - Fasiləni təsdiq et - - - - Would you like to pause all torrents? - Bütün torrenlərə fasilə verilsin? - - - - Confirm resume - Davam etdirməni təsdiqlə - - - - Would you like to resume all torrents? - Bütün torrentlər davam etdirilsin? - - - + Unable to preview Öncədən baxış alınmadı - + The selected torrent "%1" does not contain previewable files "%1" seçilmiş torrent öncədən baxıla bilən fayllardan ibarət deyil - + Resize columns Sütunların ölçüsünü dəyişin - + Resize all non-hidden columns to the size of their contents Bütün gizli olmayan sütunların ölçüsünü tərkiblərinin ölçüsünə görə dəyişmək - + Enable automatic torrent management Avtomatik Torrent İdarəetməsini aktiv edin - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Seçilmiş torrent(lər) üçün avtomatik torrent idarəetməsini aktiv etmək istədiyinizə əminsiniz? Torrentlər başqa yerə köçürülə bilər. - - Add Tags - Etiketlər əlavə etmək - - - + Choose folder to save exported .torrent files İxrac edilmiş .torrent fayllarının saxlanılması üçün qovluq seçin - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" ştorrent faylın ixracı baş tutmadı. Torrent: "%1". Saxlama yolu: "%2". Səbəb: "%3" - + A file with the same name already exists Eyni adlı fayl artıq mövcuddur - + Export .torrent file error .torrent faylın ixracı xətası - + Remove All Tags Bütün etiketləri silmək - + Remove all tags from selected torrents? Seçilmiş torrentlərdən bütün etiketlər silinsin? - + Comma-separated tags: Vergüllə ayrılan etiketlər: - + Invalid tag Yalnış etiket - + Tag name: '%1' is invalid Etiket adı: "%1" səhvdir - - &Resume - Resume/start the torrent - Davam etdi&rin - - - - &Pause - Pause the torrent - &Fasilə - - - - Force Resu&me - Force Resume/start the torrent - &Məcburi davam etdirin - - - + Pre&view file... &Fayla öncədən baxış... - + Torrent &options... T&orrent seçimləri... - + Open destination &folder Təyinat &qovluğunu açın - + Move &up i.e. move up in the queue Y&uxarı köçürün - + Move &down i.e. Move down in the queue &Aşağı köçürün - + Move to &top i.e. Move to top of the queue Ən üs&tə köçürün - + Move to &bottom i.e. Move to bottom of the queue Ən aşağı&ya köçürün - + Set loc&ation... Y&er təyin edin... - + Force rec&heck Məcburi tə&krar yoxlayın - + Force r&eannounce Məcburi təkrar anons &edin - + &Magnet link &Maqnit keçid - + Torrent &ID Torrent &İD-si - + &Comment &Şərh - + &Name A&d - + Info &hash v1 Məlumat &heşi v1 - + Info h&ash v2 Məlum&at heşi v2 - + Re&name... Adı&nı dəyişin... - + Edit trac&kers... İz&ləyicilərə düzəliş... - + E&xport .torrent... .torrent faylı i&xrac edin... - + Categor&y Kateqori&ya - + &New... New category... Ye&ni... - + &Reset Reset category Sıfı&rlayın - + Ta&gs Etike&tlər - + &Add... Add / assign multiple tags... Əl&avə edin... - + &Remove All Remove all tags &Hamısını silin - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Fasilədə/Növbədə/Xətalı/Yoxlamada olduqda torrent təkrar məcburi anons etmək mümkün deyil + + + &Queue &Növbə - + &Copy &Kopyalayın - + Exported torrent is not necessarily the same as the imported İxrac edilən torrent idxal edilən torrent kimi vacib deyil - + Download in sequential order Ardıcıl şəkildə yükləmək - + + Add tags + Etiket əlavə etmək + + + Errors occurred when exporting .torrent files. Check execution log for details. Torrent faylı ixrac olunarkən xətalar baş verdi. Ətraflı məlumat üçün icra olunma jurnalına baxın. - + + &Start + Resume/start the torrent + &Başlatmaq + + + + Sto&p + Stop the torrent + &Dayandırmaq + + + + Force Star&t + Force Resume/start the torrent + Məcburi başla&tmaq + + + &Remove Remove the torrent &Silin - + Download first and last pieces first Öncə İlk və son hissələri endirmək - + Automatic Torrent Management Avtomatik Torrent İdarəetməsi - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Avtomatik rejim o deməkdir ki, müxtəlif torrent xüsusiyyətləri (məs., saxlama yolu) uyğun kateqoriyalara görə müəyyən ediləcəkdir - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Fasilədə/Növbədə/Xətalı/Yoxlamada olduqda torrent təkrar məcburi anons edilə bilməz - - - + Super seeding mode Super göndərmə rejimi @@ -11644,28 +12264,28 @@ Başqa ad verin və yenidən cəhd edin. Nişan İD-si - + UI Theme Configuration. İİ mövzusu tənzimləməsi. - + The UI Theme changes could not be fully applied. The details can be found in the Log. İİ mövzusu dəyişikliklərini tam olaraq tətbiq etmək mümkün olmadı. Ətraflı məlumat üçün Jurnala bax. - + Couldn't save UI Theme configuration. Reason: %1 İİ mövzusu tənzimləməsini saxlamaq mümkün olmadı. Səbəb: %1 - - + + Couldn't remove icon file. File: %1. Nişan faylını silmək mümkün olmadı. Fayl: %1 - + Couldn't copy icon file. Source: %1. Destination: %2. Nişan faylını kopyalamaq mümkün olmadı. Mənbə: %1. Hədəf: %2 @@ -11673,7 +12293,12 @@ Başqa ad verin və yenidən cəhd edin. UIThemeManager - + + Set app style failed. Unknown style: "%1" + TTətbiq üslubunu təyin etmək mümkün olmadı: "%1" + + + Failed to load UI theme from file: "%1" İİ mövzusunu fayldan yükləmək alınmadı: "%1" @@ -11704,20 +12329,21 @@ Başqa ad verin və yenidən cəhd edin. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Miqrasiya tərcihləri uğursuz oldu: WebUI https, fayl: "%1", xəta: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Miqrasiya tərcihləri: WebUI https, fayla ixrac tarixi: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Tənzimləmə faylında səhv dəyər tapıldı, ilkin vəziyyətinə qaytarılır. Açar: "%1". Səhv dəyər: "%2". @@ -11725,32 +12351,32 @@ Başqa ad verin və yenidən cəhd edin. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Python icra faylı tapıldı. Adı:"%1". Versiya: "%2" - + Failed to find Python executable. Path: "%1". Python icra faylını tapmaq mümkün olmadı. Yol: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" PATH mühit dəyişənində `python3` icra faylını tapmaq mümkün olmadı. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" `python` icra faylını PATH mühit dəyişənində tapmaq mümkün olmadı. PATH: "%1" - + Failed to find `python` executable in Windows Registry. `python` icra faylını Windows registrində tapmaq mümkün olmadı. - + Failed to find Python executable Python icra faylını tapmaq mükün olmadı @@ -11758,27 +12384,27 @@ Başqa ad verin və yenidən cəhd edin. Utils::IO - + File open error. File: "%1". Error: "%2" Faylın açılması xətası. Fayl: "%1". Xəta: "%2" - + File size exceeds limit. File: "%1". File size: %2. Size limit: %3 Fayl ölçüsü limiti aşır. Fayl: "%1". Faylın ölçüsü: %2. Ölçünün limiti: %3 - + File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 Faylın ölçüsü verilənlər ölçüsünün limitini aşır. Fayl: "%1". Faylın ölçüsü: "%2" Massiv limiti: "%3" - + File read error. File: "%1". Error: "%2" Faylın oxunması xətası. Fayl: "%1". Xəta: "%2" - + Read size mismatch. File: "%1". Expected: %2. Actual: %3 Ölçü uyğunsuzluğunu oxuyun. Fayl: "%1". Gözlənilən: %2. Aktual: %3 @@ -11847,67 +12473,67 @@ Başqa ad verin və yenidən cəhd edin. Sessiya kuki faylına verilmiş bu ad qəbuledilməzdir: "%1". Standart bir ad istifadə edildi. - + Unacceptable file type, only regular file is allowed. Qəbuledilməz fayl növü, yalnız müntəzəm fayllar qəbul edilir. - + Symlinks inside alternative UI folder are forbidden. Alternativ İstifadəçi İnterfeysi daxilində simvolik bağlantılar qadağandır. - + Using built-in WebUI. Daxili Veb İİ istifadə edilir. - + Using custom WebUI. Location: "%1". Xüsusi Veb İİ-nin istifadəsi. Yeri: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Seçilmiş məkan (%1) üçün Veb İİ tərcüməsi uğurla yükləndi. - + Couldn't load WebUI translation for selected locale (%1). Seçilmiş məkan (%1) üçün Veb İİ tərcüməsini yükləmək mümkün olmadı. - + Missing ':' separator in WebUI custom HTTP header: "%1" Veb İİ fərdi HTTP başlığında ":" ayırıcısı çatışmır: "%1" - + Web server error. %1 Veb server xətası. %1 - + Web server error. Unknown error. Veb server xətası. Naməlum xəta. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Veb İİ: Mənbə başlığı və Hədəf Mənbəyi uyğun gəlmir! İP mənbəyi: "%1". Orojonal başlıq: "%2". Hədəf mənbəyi: "%3" - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Veb İİ: İstinad başllğı və Hədəf mənşəyi uyğun gəlmir! İP mənbəyi: "%1". İstinad başlığı: "%2". Hədəf mənşəyi: "%3" - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Veb İİ: Səhv host başlığı və port uyğun gəlmir. Tələb olunan İP mənbəyi: "%1". Server portu: "%2". Alınan host başlığı: "%3" - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Veb İİ səhv host başlığı. Tələb olunan İP mənbəyi: "%1". Alınan host başlığı: "%2" @@ -11915,125 +12541,133 @@ Başqa ad verin və yenidən cəhd edin. WebUI - + Credentials are not set İstifaəçi hesabı məlumatları göstərilməyib - + WebUI: HTTPS setup successful Veb İİ: HTTPS quraşdırıldı - + WebUI: HTTPS setup failed, fallback to HTTP Veb İİ: HTTPS quraşdırmaq baş tutmadı, HTTP-yə qaytarmaq - + WebUI: Now listening on IP: %1, port: %2 Veb İİ: İndi dinlənilən İP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Bağlantı alınmayan İP: %1, port: %2. Səbəb: %3 + + fs + + + Unknown error + Naməlum xəta + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) QB - + TiB tebibytes (1024 gibibytes) TB - + PiB pebibytes (1024 tebibytes) PB - + EiB exbibytes (1024 pebibytes) EB - + /s per second /san - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1dəq - + %1h %2m e.g: 3 hours 5 minutes %1s %2 d - + %1d %2h e.g: 2 days 10 hours %1g %2s - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) Naməlum - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent, komputeri indi söndürəcəkdir, çünki bütün torrentlərin endirilməsi başa çatdı. - + < 1m < 1 minute < 1dəq diff --git a/src/lang/qbittorrent_be.ts b/src/lang/qbittorrent_be.ts index 5faaba0fe..fc2eb1404 100644 --- a/src/lang/qbittorrent_be.ts +++ b/src/lang/qbittorrent_be.ts @@ -11,78 +11,78 @@ About - Пра праґраму + Аб праграме - + Authors Аўтары - + Current maintainer Суправаджэнне коду - + Greece Грэцыя - - + + Nationality: - Грамадзянства: + Краіна: - - + + E-mail: Эл. пошта: - - + + Name: Імя: - + Original author Зыходны аўтар - + France Францыя - + Special Thanks Падзяка - + Translators - Перакладнікі + Перакладчыкі - + License Ліцэнзія - + Software Used Выкарыстанае ПЗ - + qBittorrent was built with the following libraries: - qBittorrent быў сабраны з гэтымі бібліятэкамі: + qBittorrent сабраны з выкарыстаннем наступных бібліятэк: - + Copy to clipboard Скапіяваць у буфер абмену @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Аўтарскае права %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Аўтарскае права %1 2006-2025 The qBittorrent project @@ -123,19 +123,19 @@ The old path is invalid: '%1'. - Стары шлях памылковы: '%1'. + Стары шлях памылковы: «%1». The new path is invalid: '%1'. - Новы шлях памылковы: '%1'. + Новы шлях памылковы: «%1». Absolute path isn't allowed: '%1'. - Абсалютны шлях не дазволены: '%1'. + Абсалютны шлях не дазволены: «%1». @@ -166,15 +166,10 @@ Захаваць у - + Never show again Больш ніколі не паказваць - - - Torrent settings - Налады торэнта - Set as default category @@ -191,12 +186,12 @@ Запусціць торэнт - + Torrent information Інфармацыя пра торэнт - + Skip hash check Прапусціць праверку хэшу @@ -205,6 +200,11 @@ Use another path for incomplete torrent Выкарыстоўваць іншы шлях для незавершанага торэнта + + + Torrent options + Параметры торэнта + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - Націсніце [...] кнопку, каб дадаць/выдаліць тэгі. + Націсніце кнопку [...], каб дадаць/выдаліць тэгі. @@ -231,75 +231,75 @@ Умова спынення: - - + + None - Нічога + Няма - - + + Metadata received Метаданыя атрыманы - + Torrents that have metadata initially will be added as stopped. - + Торэнты, якія адпачатку ўтрымліваюць метаданыя, будуць дададзеныя як спыненыя. - - + + Files checked Файлы правераны - + Add to top of queue Дадаць у пачатак чаргі - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - Калі сцяжок усталяваны, файл .torrent не будзе выдалены незалежна ад налад на старонцы "Спампоўка" дыялогавага акна Параметры + Калі сцяжок стаіць, файл .torrent не будзе выдаляцца незалежна ад налад на старонцы «Спампоўванні» дыялогавага акна Параметры - + Content layout: - Макет кантэнту: + Структура змесціва: - + Original - Арыгінал + Зыходная - + Create subfolder Стварыць падпапку - + Don't create subfolder Не ствараць падпапку - + Info hash v1: Хэш v1: - + Size: Памер: - + Comment: Каментарый: - + Date: Дата: @@ -329,151 +329,147 @@ Запомніць апошні шлях захавання - + Do not delete .torrent file - Не выдаляць торэнт-файл + Не выдаляць файл .torrent - + Download in sequential order Спампоўваць паслядоўна - + Download first and last pieces first Спачатку пампаваць першую і апошнюю часткі - + Info hash v2: Хэш v2: - + Select All Выбраць усе - + Select None - Зняць усё + Зняць выбар - + Save as .torrent file... Захаваць як файл .torrent... - + I/O Error Памылка ўводу/вываду - + Not Available This comment is unavailable Недаступны - + Not Available This date is unavailable Недаступна - + Not available Недаступна - + Magnet link Magnet-спасылка - + Retrieving metadata... Атрыманне метаданых... - - + + Choose save path - Абярыце лякацыю захаваньня + Выберыце шлях захавання - + No stop condition is set. Умова спынення не зададзена. - + Torrent will stop after metadata is received. Торэнт спыніцца пасля атрымання метаданых. - Torrents that have metadata initially aren't affected. - Торэнты, якія першапачаткова маюць метаданыя, не закранаюцца. - - - + Torrent will stop after files are initially checked. Торэнт спыніцца пасля першапачатковай праверкі файлаў. - + This will also download metadata if it wasn't there initially. Гэта таксама спампуе метаданыя, калі іх не было першапачаткова. - - + + N/A Н/Д - + %1 (Free space on disk: %2) %1 (на дыску вольна: %2) - + Not available This size is unavailable. Недаступна - + Torrent file (*%1) Торэнт-файл (*%1) - + Save as torrent file Захаваць як файл торэнт - + Couldn't export torrent metadata file '%1'. Reason: %2. - Не ўдалося экспартаваць метаданыя торэнта '%1' з прычыны: %2 + Не ўдалося экспартаваць метаданыя торэнта «%1» з прычыны: %2 - + Cannot create v2 torrent until its data is fully downloaded. - Немагчыма стварыць торэнт v2, пакуль яго дадзеныя не будуць цалкам загружаны. + Немагчыма стварыць торэнт v2, пакуль яго даныя не будуць спампаваны цалкам. - + Filter files... - Фільтраваць файлы... + Фільтр файлаў... - + Parsing metadata... Аналіз метаданых... - + Metadata retrieval complete Атрыманне метаданых скончана @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Спампоўванне торэнта... Крыніца: «%1» - + Failed to add torrent. Source: "%1". Reason: "%2" Не ўдалося дадаць торэнт. Крыніца: "%1". Прычына: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Выяўленая спроба паўторнага даданьня існага торэнта. Крыніца: %1. Існы торэнт: %2. Вынік: %3 - - - + Merging of trackers is disabled Аб'яднанне трэкераў адключана - + Trackers cannot be merged because it is a private torrent Немагчыма дадаць трэкеры, бо гэта прыватны торэнт - + Trackers are merged from new source Трэкеры з новай крыніцы дададзены + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -536,7 +532,7 @@ Note: the current defaults are displayed for reference. - Нататка: бягучыя значэнні па змаўчанні адлюстроўваюцца для даведкі. + Заўвага: бягучыя значэнні па змаўчанні паказваюцца для даведкі. @@ -556,7 +552,7 @@ Click [...] button to add/remove tags. - Націсніце [...] кнопку, каб дадаць/выдаліць тэгі. + Націсніце кнопку [...], каб дадаць/выдаліць тэгі. @@ -591,18 +587,18 @@ Skip hash check - Прапусціць праверку хэша + Прапусціць праверку хэшу Torrent share limits - Абмежаванні раздачы торэнта + Абмежаванні раздачы торэнта Choose save path - Пазначце шлях захавання + Выберыце шлях захавання @@ -656,7 +652,7 @@ None - Нічога + Няма @@ -672,865 +668,975 @@ AdvancedSettings - - - - + + + + MiB МБ - + Recheck torrents on completion Пераправераць торэнты пасля спампоўвання - - + + ms milliseconds мс - + Setting Параметр - + Value Value set for this setting Значэнне - + (disabled) (адключана) - + (auto) (аўта) - + + min minutes - хв +  хв - + All addresses Усе адрасы - + qBittorrent Section Раздзел qBittorrent - - + + Open documentation Адкрыць дакументацыю - + All IPv4 addresses Усе адрасы IPv4 - + All IPv6 addresses Усе адрасы IPv6 - + libtorrent Section Раздзел libtorrent - + Fastresume files Хуткае аднаўленне файлаў - + SQLite database (experimental) База даных SQLite (эксперыментальная) - + Resume data storage type (requires restart) - Працягнуць тып захавання даных (патрабуецца перазапуск) + Тып захавання даных узнаўлення (патрабуецца перазапуск) - + Normal Звычайны - + Below normal Ніжэй звычайнага - + Medium Сярэдні - + Low Нізкі - + Very low Вельмі нізкі - + Physical memory (RAM) usage limit - Ліміт выкарыстання фізічнай памяці (RAM). + Абмежаванне выкарыстання фізічнай памяці (RAM) - + Asynchronous I/O threads Патокі асінхроннага ўводу/вываду - + Hashing threads Патокі хэшавання - + File pool size Памер пула файлаў - + Outstanding memory when checking torrents Дадатковая памяць пры праверцы торэнтаў - + Disk cache Кэш дыска - - - - + + + + + s seconds с - + Disk cache expiry interval Інтэрвал ачысткі дыскавага кэшу - + Disk queue size Памер чаргі дыска - - + + Enable OS cache Уключыць кэш АС - + Coalesce reads & writes Узбуйненне чытання і запісу - + Use piece extent affinity - Use piece extent affinity + Групаваць змежныя часткі - + Send upload piece suggestions Адпраўляць прапановы частак раздачы - - - - + + + + + 0 (disabled) 0 (адключана) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - Інтэрвал захавання даных аднаўлення [0: адключана] + Інтэрвал захавання даных узнаўлення [0: адключана] - + Outgoing ports (Min) [0: disabled] Выходныя парты (мін) [0: адключана] - + Outgoing ports (Max) [0: disabled] Выходныя парты (макс) [0: адключана] - + 0 (permanent lease) 0 (пастаянная арэнда) - + UPnP lease duration [0: permanent lease] Працягласць арэнды UPnP [0: пастаянная арэнда] - + Stop tracker timeout [0: disabled] - Таймаўт прыпынку трэкера [0: адключана] + Час чакання спынення трэкера [0: адключана] - + Notification timeout [0: infinite, -1: system default] - Перапынак ў паведамленнях [0: бясконца, -1: сістэмнае значэнне] + Час чакання паведамлення [0: бясконца, -1: сістэмнае значэнне] - + Maximum outstanding requests to a single peer Максімальная колькасць невыкананых запытаў да аднаго піра - - - - - + + + + + KiB КБ - + (infinite) (бясконца) - + (system default) (сістэмнае значэнне) - - This option is less effective on Linux - Гэты варыянт меней эфектыўны ў Linux. + + Delete files permanently + Выдаляць файлы незваротна - + + Move files to trash (if possible) + Перамяшчаць файлы ў сметніцу (калі магчыма) + + + + Torrent content removing mode + Рэжым выдалення змесціва торэнта + + + + This option is less effective on Linux + Гэты параметр менш эфектыўны ў Linux. + + + Process memory priority Прыярытэт памяці працэсу - + Bdecode depth limit - Абмежаваньне глыбіні Bdecode + Абмежаванне глыбіні Bdecode - + Bdecode token limit - Абмежаваньне токена Bdecode + Абмежаванне токена Bdecode - + Default Па змаўчанні - + Memory mapped files Файлы размешчаныя у памяці - + POSIX-compliant POSIX-сумяшчальны - - Disk IO type (requires restart) - Тып дыскавага ўводу-вываду (патрабуецца перазагрузка) + + Simple pread/pwrite + - - + + Disk IO type (requires restart) + Тып дыскавага ўводу-вываду (патрабуецца перазапуск) + + + + Disable OS cache Адключыць кэш АС - + Disk IO read mode Рэжым чытання дыскавага ўводу-вываду - + Write-through Скразны запіс - + Disk IO write mode Рэжым запісу дыскавага ўводу-вываду - + Send buffer watermark - Адправіць вадзяны знак буфера + Адзнака буфера адпраўкі - + Send buffer low watermark - Адправіць нізкі вадзяны знак буфера + Ніжняя адзнака буфера адпраўкі - + Send buffer watermark factor - Адправіць фактар вадзянога знака буфера + Каэфіцыент адзнакі буфера адпраўкі - + Outgoing connections per second Выходныя злучэнні ў секунду - - + + 0 (system default) 0 (сістэмнае значэнне) - + Socket send buffer size [0: system default] Памер буфера адпраўлення сокета [0: сістэмнае значэнне] - + Socket receive buffer size [0: system default] Памер буфера прыёму сокета [0: сістэмнае значэнне] - + Socket backlog size - Socket backlog size + Памер чаргі сокета - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Інтэрвал захавання статыстыкі [0: адключана] + + + .torrent file size limit Абмежаванне памеру файла .torrent - + Type of service (ToS) for connections to peers - Type of service (ToS) for connections to peers + Тып абслугоўвання (ToS) для злучэння з пірамі - + Prefer TCP Перавага за TCP - + Peer proportional (throttles TCP) Прапарцыянальна пірам (рэгулюе TCP) - - Support internationalized domain name (IDN) - Support internationalized domain name (IDN) + + Internal hostname resolver cache expiry interval + - + + Support internationalized domain name (IDN) + Падтрымліваць інтэрнацыянальныя імёны даменаў (IDN) + + + Allow multiple connections from the same IP address Дазволіць некалькі злучэнняў з аднаго IP-адраса - + Validate HTTPS tracker certificates - Validate HTTPS tracker certificates + Правяраць сертыфікаты трэкераў HTTPS - + Server-side request forgery (SSRF) mitigation - Server-side request forgery (SSRF) mitigation + Папярэджваць серверную падробку запыту (SSRF) - + Disallow connection to peers on privileged ports - Disallow connection to peers on privileged ports + Забараніць злучэнне з пірамі на прывілеяваных партах - + It appends the text to the window title to help distinguish qBittorent instances - + Дадае тэкст да загалоўка акна з мэтай адрознення экзэмпляраў qBittorent - + Customize application instance name - + Дапоўніць назву гэтага экзэмпляра праграмы - + It controls the internal state update interval which in turn will affect UI updates - It controls the internal state update interval which in turn will affect UI updates + Кіруе інтэрвалам абнаўлення ўнутранага стану, які ўплывае на абнаўленне інтэрфейсу - + Refresh interval Інтэрвал абнаўлення - + Resolve peer host names - Вызначыць назву хоста піра + Вызначаць імя хоста піра - + IP address reported to trackers (requires restart) Паведамляць трэкерам гэты IP-адрас (патрабуецца перазапуск) - - Reannounce to all trackers when IP or port changed - Reannounce to all trackers when IP or port changed + + Port reported to trackers (requires restart) [0: listening port] + Паведамляць трэкерам гэты порт (патрабуецца перазапуск) [0: праслухванне порта] - + + Reannounce to all trackers when IP or port changed + Пераанансаваць на ўсе трэкеры пры змене IP або порта + + + Enable icons in menus Уключыць значкі ў меню - + + Attach "Add new torrent" dialog to main window + Прымацаваць акно дадавання торэнта да галоўнага + + + Enable port forwarding for embedded tracker - Enable port forwarding for embedded tracker + Уключыць пракід партоў для ўбудаванага трэкера - + Enable quarantine for downloaded files - Увамкнуць карантын для сьцягнутых файлаў + Уключыць каранцін для спампаваных файлаў - + Enable Mark-of-the-Web (MOTW) for downloaded files + Ставіць вэб-пазнаку (MOTW) на спампаваныя файлы + + + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) - - (Auto detect if empty) - (Аўтавызначаць, калі пуста) + + Ignore SSL errors + Ігнараваць памылкі SSL - + + (Auto detect if empty) + (Аўтавызначэнне, калі пуста) + + + Python executable path (may require restart) Шлях да выконвальнага файла Python (можа спатрэбіцца перазапуск) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - Peer turnover disconnect percentage - - - - Peer turnover threshold percentage - Peer turnover threshold percentage - - - - Peer turnover disconnect interval - Peer turnover disconnect interval - - - - Resets to default if empty - + + Start BitTorrent session in paused state + Запускаць сеанс qBittorrent спыненым + sec + seconds + с + + + + -1 (unlimited) + -1 (неабмежавана) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Час чакання адключэння сеанса BitTorrent [-1: неабмежавана] + + + + Confirm removal of tracker from all torrents + Пацвярджаць выдаленне трэкера з усіх торэнтаў + + + + Peer turnover disconnect percentage + Працэнт адключэння для абароту піраў + + + + Peer turnover threshold percentage + Працэнт абмежавання для абароту піраў + + + + Peer turnover disconnect interval + Інтэрвал адключэння для абароту піраў + + + + Resets to default if empty + Скінуць на значэнне па змаўчанні, калі пуста + + + DHT bootstrap nodes - Вузлы заладаваньня DHT + Вузлы самазагрузкі DHT - + I2P inbound quantity - Колькасьць ўваходных паведамленьняў I2P + Колькасць уваходных паведамленняў I2P - + I2P outbound quantity - Колькасьць выходных паведамленьняў I2P + Колькасць выходных паведамленняў I2P - + I2P inbound length - Даўжыня ўваходных паведамленьняў I2P + Даўжыня ўваходных паведамленняў I2P - + I2P outbound length - Даўжыня выходных паведамленьняў I2P + Даўжыня выходных паведамленняў I2P - + Display notifications Паказваць апавяшчэнні - + Display notifications for added torrents - Паказваць апавяшчэнні для даданых торэнтаў + Паказваць апавяшчэнні для дададзеных торэнтаў - + Download tracker's favicon Загружаць значкі трэкераў - + Save path history length - Глыбіня гісторыя шляхоў захаваньня + Гісторыя шляхоў захавання (колькасць) - + Enable speed graphs Уключыць графікі хуткасці - + Fixed slots Фіксаваныя слоты - + Upload rate based На аснове хуткасці раздачы - + Upload slots behavior Паводзіны слотаў раздачы - + Round-robin Кругавы - + Fastest upload Хутчэйшая раздача - + Anti-leech Анты-ліч - + Upload choking algorithm Алгарытм прыглушэння раздачы - + Confirm torrent recheck Пацвярджаць пераправерку торэнта - + Confirm removal of all tags Пацвярджаць выдаленне ўсіх тэгаў - + Always announce to all trackers in a tier Заўсёды анансаваць на ўсе трэкеры ва ўзроўні - + Always announce to all tiers Заўсёды анансаваць на ўсе ўзроўні - + Any interface i.e. Any network interface Любы інтэрфейс - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Алгарытм змешанага %1-TCP рэжыму - + Resolve peer countries Вызначаць краіну піра - + Network interface Сеткавы інтэрфэйс - + Optional IP address to bind to - Optional IP address to bind to + Неабавязковы IP-адрас для прывязкі - + Max concurrent HTTP announces - Max concurrent HTTP announces + Максімум адначасовых анонсаў HTTP - + Enable embedded tracker Задзейнічаць убудаваны трэкер - + Embedded tracker port Порт убудаванага трэкеру + + AppController + + + + Invalid directory path + Недапушчальны шлях каталога + + + + Directory does not exist + Каталог не існуе + + + + Invalid mode, allowed values: %1 + Недапушчальны рэжым, магчымыя значэнні: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - Running in portable mode. Auto detected profile folder at: %1 + Выконваецца ў партатыўным рэжыме. Аўтаматычна вызначаная папка профілю: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - Redundant command line flag detected: "%1". Portable mode implies relative fastresume. + - + Using config directory: %1 - Using config directory: %1 + Выкарыстоўваецца каталог налад: %1 - + 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. - + Torrent: %1, sending mail notification Торэнт: %1, адпраўка апавяшчэння на пошту - + Add torrent failed Не ўдалося дадаць торэнт - + Couldn't add torrent '%1', reason: %2. Не ўдалося дадаць торэнт «%1» з прычыны: %2. - + The WebUI administrator username is: %1 - Імя адміністратара вэб-інтэрфейса: %1 + Імя адміністратара вэб-інтэрфейсу: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - Пароль адміністратара вэб-інтэрфейса не быў зададзены. Для гэтага сеанса дадзены часовы пароль: %1 + Пароль адміністратара вэб-інтэрфейсу не быў зададзены. Для гэтага сеанса дадзены часовы пароль: %1 - + You should set your own password in program preferences. - Вам варта ўсталяваць уласны пароль у наладах праґрамы. + Вам варта задаць уласны пароль у наладах праграмы. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Вэб-інтэрфейс адключаны! Каб уключыць вэб-інтэрфейс, адрэдагуйце файл канфігурацыі ўручную. - + Running external program. Torrent: "%1". Command: `%2` Запуск знешняй праграмы. Торэнт: «%1». Каманда: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Не ўдалося запусціць знешнюю праграму. Торэнт: «%1». Каманда: `%2` - + Torrent "%1" has finished downloading - Спампоўванне торэнта '%1' завершана + Спампоўванне торэнта «%1» завершана - + WebUI will be started shortly after internal preparations. Please wait... Вэб-інтэрфейс хутка запусціцца пасля ўнутраннай падрыхтоўкі, Пачакайце... - - + + Loading torrents... Загрузка торэнтаў... - + E&xit В&ыйсці - + I/O Error i.e: Input/Output Error Памылка ўводу/вываду - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - Памылка ўводу/вываду для торэнта '%1'. + Памылка ўводу/вываду для торэнта «%1». Прычына: %2 - + Torrent added Торэнт дададзены - + '%1' was added. e.g: xxx.avi was added. - '%1' дададзены. + «%1» дададзены. - + Download completed Спампоўванне завершана - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 запушчаны. Ідэнтыфікатар працэсу: %2 - - '%1' has finished downloading. - e.g: xxx.avi has finished downloading. - Спампоўванне '%1' завершана. + + This is a test email. + Гэта праверачны электронны ліст. - + + Test email + Праверыць эл. пошту + + + + '%1' has finished downloading. + e.g: xxx.avi has finished downloading. + Спампоўванне «%1» завершана. + + + Information Інфармацыя - + To fix the error, you may need to edit the config file manually. - Для выпраўленьня памылкі Вам, відаць, спатрэбіцца ўласнаруч адрэдаґаваць канфігурацыйны файл. + Каб выправіць памылку, можа спатрэбіцца адрэдагаваць файл канфігурацыі ўручную. - + To control qBittorrent, access the WebUI at: %1 Увайдзіце ў вэб-інтэрфейс для кіравання qBittorrent: %1 - + Exit Выйсці - + Recursive download confirmation Пацвярджэнне рэкурсіўнага спампоўвання - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - Торэнт '%1' змяшчае файлы .torrent, хочаце працягнуць спампоўванне з іх? + Торэнт «%1» змяшчае файлы .torrent, хочаце працягнуць спампоўванне з іх? - + Never Ніколі - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Рэкурсіўнае спампоўванне файла .torrent з торэнта. Зыходны торэнт: «%1». Файл: «%2» - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Не ўдалося задаць абмежаванне на выкарыстанне фізічнай памяці (RAM). Код памылкі: %1. Тэкст памылкі: «%2» - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Не ўдалося задаць жорсткае абмежаванне на выкарыстанне фізічнай памяці (RAM). Запытаны памер: %1. Жорсткае абмежаванне сістэмы: %2. Код памылкі: %3. Тэкст памылкі: «%4» - + qBittorrent termination initiated Пачалося завяршэнне працы qBittorrent - + qBittorrent is shutting down... Завяршэнне працы qBittorrent... - + Saving torrent progress... Захаванне стану торэнта... - + qBittorrent is now ready to exit Цяпер qBittorrent гатовы да выхаду @@ -1540,7 +1646,7 @@ Could not create directory '%1'. - Немагчыма стварыць каталог '%1'. + Немагчыма стварыць каталог «%1». @@ -1548,7 +1654,7 @@ WebAPI login failure. Reason: IP has been banned, IP: %1, username: %2 - WebAPI login failure. Reason: IP has been banned, IP: %1, username: %2 + Не ўдалося ўвайсці ў WebAPI. Прычына: IP быў забаронены, IP: %1, імя карыстальніка: %2 @@ -1558,7 +1664,7 @@ WebAPI login success. IP: %1 - WebAPI login success. IP: %1 + Паспяховы ўваход у WebAPI. IP: %1 @@ -1596,12 +1702,12 @@ Auto downloading of RSS torrents is currently disabled. You can enable it in application settings. - Аўтаспампоўванне торэнтаў з RSS на дадзены момант адключанае. Вы можаце ўключыць яго ў наладах праграмы. + Аўтаспампоўванне торэнтаў з RSS у бягучы момант адключана. Вы можаце ўключыць яго ў наладах праграмы. Rename selected rule. You can also use the F2 hotkey to rename. - Зьмена назвы абранага правіла. Для пераназваньня Вы таксама можаце выкарыстоўваць клявішу F2. + Перайменаванне выбранага правіла. Вы таксама можаце выкарыстоўваць клавішу F2. @@ -1609,12 +1715,12 @@ Прыярытэт: - + Must Not Contain: Не павінен змяшчаць: - + Episode Filter: Фільтр эпізодаў: @@ -1634,17 +1740,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Ignore Subsequent Matches for (0 to Disable) ... X days - Ігнараваць наступныя супадзенні цягам (0 - адключана) + Ігнараваць наступныя супадзенні (0 - адключана) Disabled - Адключаны + Адключана days - дзён + дні/дзён @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Экспарт... - + 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 Нумар сезона абавязкова павінен быць ненулявым значэннем - + 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-ы - + Episode number is a mandatory positive value - Нумар выпуску абавязкова павінен быць дадатным значэннем + Нумар эпізоду абавязкова павінен мець дадатнае значэнне - + Rules Правілы - + Rules (legacy) Правілы (састарэлыя) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Бясконцы дыяпазон: <b>1x25-;</b> адпавядае эпізодам першага сезона з 25-га далей, а таксама ўсім эпізодам з наступных сезонаў - + Last Match: %1 days ago - Апошні вынік: %1 дзён таму + Апошняе супадзенне: %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 Пацвярджэнне выдалення правіла - + Invalid action Памылковае дзеянне - + The list is empty, there is nothing to export. Спіс пусты, няма чаго экспартаваць. - + Export RSS rules Экспартаваць правілы RSS - + I/O Error Памылка ўводу/вываду - + Failed to create the destination file. Reason: %1 Не ўдалося стварыць файл прызначэння. Прычына: %1 - + Import RSS rules Імпартаваць правілы RSS - + Failed to import the selected rules file. Reason: %1 Не ўдалося імпартаваць выбраны файл правіл. Прычына: %1 - + Add new rule... Дадаць новае правіла... - + Delete rule Выдаліць правіла - + Rename rule... Перайменаваць правіла... - + Delete selected rules Выдаліць вылучаныя правілы - + Clear downloaded episodes... Ачысціць спампаваныя эпізоды... - + Rule renaming Перайменаванне правіла - + Please type the new rule name Дайце назву новаму правілу - + Clear downloaded episodes Ачысціць спампаваныя эпізоды - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Сапраўды ачысціць спіс спампаваных эпізодаў для выбранага правіла? - + Regex mode: use Perl-compatible regular expressions - Regex mode: use Perl-compatible regular expressions + Рэжым Regex: выкарыстоўваце рэгулярныя выразы як у Perl - - + + Position %1: %2 Пазіцыя %1: %2 - + Wildcard mode: you can use - Wildcard mode: you can use + - - + + Import error Памылка імпарту - + Failed to read the file. %1 Не ўдалося прачытаць файл. %1 - + ? to match any single character ? адпавядае аднаму любому сімвалу - + * to match zero or more of any characters * адпавядае нулю або некалькім любым сімвалам - + Whitespaces count as AND operators (all words, any order) - Whitespaces count as AND operators (all words, any order) + Прабелы лічацца аператарам «І» (усе словы, любы парадак) - + | is used as OR operator | выкарыстоўваецца як аператар АБО - + If word order is important use * instead of whitespace. - Калі важны парадак слоў, выкарыстоўвайце * замест прабелаў. + Калі парадак слоў важны, выкарыстоўвайце зорачку * замест прабелаў. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - An expression with an empty %1 clause (e.g. %2) + Выраз з пустым аператарам %1 (прыклад %2) - + will match all articles. будзе адпавядаць усім артыкулам. - + will exclude all articles. выключыць усе артыкулы. @@ -1965,578 +2071,657 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Не атрымалася стварыць папку аднаўлення торэнта: «%1» Cannot parse resume data: invalid format - Не ўдаецца праналізаваць даныя аднаўлення: памылковы фармат - - - - - Cannot parse torrent info: %1 - Cannot parse torrent info: %1 + Немагчыма прааналізаваць даныя ўзнаўлення: памылковы фармат + + Cannot parse torrent info: %1 + Не ўдаецца прааналізаваць звесткі пра торэнт: : %1 + + + Cannot parse torrent info: invalid format Не ўдаецца праналізаваць звесткі аб торэнце: памылковы фармат - + Mismatching info-hash detected in resume data - У дадзеных рэзюмэ выяўлены неадпаведны інфармацыйны хэш + У даных узнаўлення выяўлены неадпаведны хэш - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - Couldn't save torrent metadata to '%1'. Error: %2. + Не ўдалося захаваць метаданыя торэнта ў «%1». Памылка: %2 - + Couldn't save torrent resume data to '%1'. Error: %2. - Couldn't save torrent resume data to '%1'. Error: %2. + Не ўдалося захаваць даныя ўзнаўлення торэнта ў «%1». Памылка: %2 Couldn't load torrents queue: %1 - Couldn't load torrents queue: %1 + Не ўдалося загрузіць чаргу торэнтаў: %1 + Cannot parse resume data: %1 - Cannot parse resume data: %1 + Немагчыма прааналізаваць даныя ўзнаўлення: %1 - + Resume data is invalid: neither metadata nor info-hash was found - Даныя аднаўлення памылковыя: метаданыя або інфа-хэш не знойдзеныя + Памылковыя даныя ўзнаўлення: метаданыя або інфа-хэш не знойдзены - + Couldn't save data to '%1'. Error: %2 - Couldn't save data to '%1'. Error: %2 + Не ўдалося захаваць даныя ў «%1». Памылка: %2 BitTorrent::DBResumeDataStorage - + Not found. Не знойдзена. - + Couldn't load resume data of torrent '%1'. Error: %2 - Couldn't load resume data of torrent '%1'. Error: %2 + Не ўдалося загрузіць даныя ўзнаўлення торэнта «%1». Памылка: %2 - - + + Database is corrupted. База даных пашкоджана. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Не ўдалося ўключыць рэжым папераджальнай журналізацыі. Памылка: %1. - + Couldn't obtain query result. - Ня выйшла атрымаць вынік запыту. + Не ўдалося атрымаць вынік запыту. - + WAL mode is probably unsupported due to filesystem limitations. + Рэжым папераджальнай журналізацыі, імаверна, не падтрымліваецца праз абмежаванні файлавай сістэмы. + + + + + Cannot parse resume data: %1 + Немагчыма прааналізаваць даныя ўзнаўлення: %1 + + + + + Cannot parse torrent info: %1 + Не ўдаецца прааналізаваць звесткі пра торэнт: : %1 + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 - Немажліва пачаць транзакцыю. Памылка: %1 + Не ўдалося пачаць транзакцыю. Памылка: %1 BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - Couldn't save torrent metadata. Error: %1. + Не ўдалося захаваць метаданыя торэнта. Памылка: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - Couldn't store resume data for torrent '%1'. Error: %2 + Не ўдалося захаваць даныя ўзнаўлення торэнта «%1». Памылка: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - Couldn't delete resume data of torrent '%1'. Error: %2 + Не ўдалося выдаліць даныя ўзнаўлення торэнта «%1». Памылка: %2 - + Couldn't store torrents queue positions. Error: %1 - Couldn't store torrents queue positions. Error: %1 + Не ўдалося захаваць чарговасць торэнтаў. Памылка: %1 BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - Distributed Hash Table (DHT) support: %1 + Падтрымка DHT: %1 - - - - - - - - - + + + + + + + + + ON УКЛ - - - - - - - - - + + + + + + + + + OFF ВЫКЛ - - + + Local Peer Discovery support: %1 - Local Peer Discovery support: %1 + Падтрымка выяўлення лакальных піраў: %1 - + Restart is required to toggle Peer Exchange (PeX) support - Restart is required to toggle Peer Exchange (PeX) support + Змяненне стану PeX (абмен пірамі) патрабуе перазапуску - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Не ўдалося ўзнавіць торэнт. Торэнт: «%1». Прычына: «%2» - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" + Не ўдалося ўзнавіць торэнт: выяўлены няўзгоднены ідэнтыфікатар. Прычына: «%1» - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" + Выяўлены няўзгодненыя даныя: катэгорыя адсутнічае ў файле канфігурацыі. Катэгорыя будзе адноўлена, а яе налады скінуцца на прадвызначаныя. Торэнт: «%1». Катэгорыя: «%2» - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - Выяўленыя няўзгодненыя даныя: памылковая катэгорыя. Торэнт: «%1». Катэгорыя: «%2» + Выяўлены няўзгодненыя даныя: памылковая катэгорыя. Торэнт: «%1». Катэгорыя: «%2» - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" + - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" + Выяўлены няўзгодненыя даныя: тэг адсутнічае ў файле канфігурацыі. Тэг будзе адноўлены. Торэнт: «%1». Тэг: «%2» - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - Выяўленыя няўзгодненыя даныя: памылковы тэг. Торэнт: «%1». Катэгорыя: «%2» + Выяўлены няўзгодненыя даныя: памылковы тэг. Торэнт: «%1». Тэг: «%2» - + System wake-up event detected. Re-announcing to all the trackers... - Выяўленая падзея абуджэньня сыстэмы. Паўторная абвестка для ўсіх трэкераў... + Выяўлена падзея абуджэння сістэмы. Выконваецца паўторны анонс для ўсіх трэкераў... - + Peer ID: "%1" - Peer ID: "%1" + Ідэнтыфікатар піра: "%1" - + HTTP User-Agent: "%1" - HTTP User-Agent: "%1" + HTTP User-Agent: «%1» - + Peer Exchange (PeX) support: %1 - Peer Exchange (PeX) support: %1 + Падтрымка PeX (абмен пірамі): %1 - - + + Anonymous mode: %1 Ананімны рэжым: %1 - - + + Encryption support: %1 - Encryption support: %1 + Падтрымка шыфравання: %1 - - + + FORCED ПРЫМУСОВА - + Could not find GUID of network interface. Interface: "%1" - Could not find GUID of network interface. Interface: "%1" + Не ўдалося знайсці GUID сеткавага інтэрфейсу. Інтэрфейс: «%1» - + Trying to listen on the following list of IP addresses: "%1" - Trying to listen on the following list of IP addresses: "%1" + Спроба праслухоўвання наступнага спіса IP-адрасоў: «%1» - + Torrent reached the share ratio limit. Торэнт дасягнуў абмежавання рэйтынгу раздачы. - - - + Torrent: "%1". - Torrent: "%1". + Торэнт: «%1». - - - - Removed torrent. - Выдалены торэнт. - - - - - - Removed torrent and deleted its content. - Removed torrent and deleted its content. - - - - - - Torrent paused. - Торэнт спынены. - - - - - + Super seeding enabled. - Super seeding enabled. + Суперраздача ўключана. - + Torrent reached the seeding time limit. - Torrent reached the seeding time limit. + Торэнт дасягнуў абмежавання часу раздачы. - + Torrent reached the inactive seeding time limit. - + Торэнт дасягнуў абмежавання часу бяздзейнасці раздачы. - + Failed to load torrent. Reason: "%1" Не ўдалося загрузіць торэнт. Прычына «%1» - + I2P error. Message: "%1". Памылка I2P. Паведамленне: «%1». - + UPnP/NAT-PMP support: ON Падтрымка UPnP/ AT-PMP: Укл - + + Saving resume data completed. + Запіс даных аднаўлення завершаны. + + + + BitTorrent session successfully finished. + Сеанс BitTorrent паспяхова завершаны. + + + + Session shutdown timed out. + Скончыўся час чакання для завяршэння сеанса. + + + + Removing torrent. + Выдаленне торэнта. + + + + Removing torrent and deleting its content. + Выдаленне торэнта і яго змесціва. + + + + Torrent stopped. + Торэнт спынены. + + + + Torrent content removed. Torrent: "%1" + Змесціва торэнта выдалена. Торэнт: «%1» + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Не ўдалося выдаліць змесціва торэнта. Торэнт: «%1». Памылка: «%2» + + + + Torrent removed. Torrent: "%1" + Торэнт выдалены. Торэнт: «%1» + + + + Merging of trackers is disabled + Аб'яднанне трэкераў адключана + + + + Trackers cannot be merged because it is a private torrent + Немагчыма дадаць трэкеры, бо гэта прыватны торэнт + + + + Trackers are merged from new source + Трэкеры з новай крыніцы дададзены + + + UPnP/NAT-PMP support: OFF Падтрымка UPnP/ AT-PMP: Адкл - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Не ўдалося экспартаваць торэнт «%1». Месца прызначэння: «%2». Прычына: «%3» - + Aborted saving resume data. Number of outstanding torrents: %1 - Aborted saving resume data. Number of outstanding torrents: %1 + Запіс даных узнаўлення перарваны. Колькасць неапрацаваных торэнтаў: %1 - + The configured network address is invalid. Address: "%1" Наладжаны сеткавы адрас памылковы. Адрас: «%1» - - + + Failed to find the configured network address to listen on. Address: "%1" - Failed to find the configured network address to listen on. Address: "%1" + Не ўдалося знайсці наладжаны сеткавы адрас для праслухоўвання. Адрас: «%1» - + The configured network interface is invalid. Interface: "%1" Наладжаны сеткавы інтэрфейс памылковы. Інтэрфейс: «%1» - + + Tracker list updated + Спіс трэкераў абноўлены + + + + Failed to update tracker list. Reason: "%1" + Не ўдалося абнавіць спіс трэкераў. Прычына «%1» + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - Адхілены памылковы IP-адрас падчас ўжывання спісу забароненых IP-адрасоў. IP: «%1» + Адхілены памылковы IP-адрас падчас ужывання спіса забароненых IP-адрасоў. IP: «%1» - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - Added tracker to torrent. Torrent: "%1". Tracker: "%2" + Трэкер дададзены ў торэнт. Торэнт: «%1». Трэкер: «%2» - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - Removed tracker from torrent. Torrent: "%1". Tracker: "%2" + Трэкер выдалены з торэнта. Торэнт: «%1». Трэкер: «%2» - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - Added URL seed to torrent. Torrent: "%1". URL: "%2" + Дададзены адрас сіда ў торэнт. Торэнт: «%1». Адрас: «%2» - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - Removed URL seed from torrent. Torrent: "%1". URL: "%2" + Выдалены адрас сіда з торэнта. Торэнт: «%1». Адрас: «%2» - - Torrent paused. Torrent: "%1" - Торэнт спынены. Торэнт: «%1» + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Не ўдалося выдаліць часткова спампаваны файл. Торэнт: «%1». Прычына: «%2» - + Torrent resumed. Torrent: "%1" - Torrent resumed. Torrent: "%1" + Торэнт узноўлены. Торэнт: «%1» - + Torrent download finished. Torrent: "%1" - Torrent download finished. Torrent: "%1" + Спампоўванне торэнта завершана. Торэнт: «%1» - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Перамяшчэнне торэнта скасавана. Торэнт: «%1». Крыніца: «%2». Месца прызначэння: «%3» - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Торэнт спынены. Торэнт: «%1» + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Не ўдалося паставіць перамяшчэнне торэнта ў чаргу. Торэнт: «%1». Крыніца: «%2». Месца прызначэння: «%3». Прычына: торэнт зараз перамяшчаецца ў месца прызначэння - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Не ўдалося паставіць перамяшчэнне торэнта ў чаргу. Торэнт: «%1». Крыніца: «%2». Месца прызначэння: «%3». Прычына: абодва шляхі ўказваюць на адно размяшчэнне - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Перамяшчэнне торэнта пастаўлена ў чаргу. Торэнт: «%1». Крыніца: «%2». Месца прызначэння: «%3» - + Start moving torrent. Torrent: "%1". Destination: "%2" Пачалося перамяшчэнне торэнта. Торэнт: «%1». Месца прызначэння: «%2» - + Failed to save Categories configuration. File: "%1". Error: "%2" - Failed to save Categories configuration. File: "%1". Error: "%2" + Не ўдалося захаваць канфігурацыю катэгорый. Файл: «%1». Памылка: «%2» - + Failed to parse Categories configuration. File: "%1". Error: "%2" - Failed to parse Categories configuration. File: "%1". Error: "%2" + Не ўдалося прааналізаваць канфігурацыю катэгорый. Файл: «%1». Памылка: «%2» - + Successfully parsed the IP filter file. Number of rules applied: %1 - Successfully parsed the IP filter file. Number of rules applied: %1 + Файл IP-фільтра прааналізаваны. Колькасць ужытых правіл: %1 - + Failed to parse the IP filter file - Failed to parse the IP filter file + Не ўдалося прааналізаваць файл IP-фільтра - + Restored torrent. Torrent: "%1" - Restored torrent. Torrent: "%1" + Торэнт адноўлены. Торэнт: «%1» - + Added new torrent. Torrent: "%1" - Added new torrent. Torrent: "%1" + Дададзены новы торэнт. Торэнт: «%1» - + Torrent errored. Torrent: "%1". Error: "%2" - Torrent errored. Torrent: "%1". Error: "%2" + Памылка торэнта .Торэнт: «%1». Памылка: «%2» - - - Removed torrent. Torrent: "%1" - Removed torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Removed torrent and deleted its content. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + У торэнце прапушчаныя параметры SSL. Торэнт: «%1». Паведамленне: «%2» - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - File error alert. Torrent: "%1". File: "%2". Reason: "%3" + Папярэджанне пра памылку файла. Торэнт: «%1». Файл: «%2». Прычына: «%3» - + UPnP/NAT-PMP port mapping failed. Message: "%1" - UPnP/NAT-PMP port mapping failed. Message: "%1" + Не ўдалося перанакіраваць парты UPnP/NAT-PMP. Паведамленне: «%1» - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - UPnP/NAT-PMP port mapping succeeded. Message: "%1" + Перанакіраванне партоў UPnP/NAT-PMP выканана. Паведамленне: «%1» - + IP filter this peer was blocked. Reason: IP filter. IP-фільтр - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + адфільтраваны порт (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + прывілеяваны порт (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Не ўдалося злучыцца з URL-адрасам сіда. Торэнт: «%1». Адрас: «%2». Памылка: «%3» + + + BitTorrent session encountered a serious error. Reason: "%1" - У сэансе BitTorrent выявілася сур'ёзная памылка. Чыньнік: "%1" + У сеансе BitTorrent выявілася сур'ёзная памылка. Прычына: «%1» - + SOCKS5 proxy error. Address: %1. Message: "%2". - Памылка проксі SOCKS5. Адрас: %1. Паведамленьне: "%2". + Памылка проксі SOCKS5. Адрас: %1. Паведамленне: «%2». - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - %1 абмежаванні ў змешаным рэжыме + %1 абмежаванні ў змяшаным рэжыме - + Failed to load Categories. %1 Не ўдалося загрузіць катэгорыі. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Не ўдалося загрузіць канфігурацыю катэгорый. Файл: «%1». Памылка: «Памылковы фармат даных» - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 адключаны - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 адключаны - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" + Атрымана паведамленне пра памылку ад адраса сіда. Торэнт: «%1». Адрас: «%2». Паведамленне: «%3» - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - Successfully listening on IP. IP: "%1". Port: "%2/%3" + Паспяховае праслухоўванне IP. IP: «%1». Порт: «%2/%3» - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" + Не ўдалося праслухаць IP. IP: «%1». Порт: «%2/%3». Прычына: «%4» - + Detected external IP. IP: "%1" - Detected external IP. IP: "%1" + Выяўлены знешні IP. IP: «%1» - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" + - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Торэнт паспяхова перамяшчэнны. Торэнт: «%1». Месца прызначэння: «%2» - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Не ўдалося перамясціць торэнт; «%1». Крыніца: «%2». Месца прызначэння: «%3». Прычына: «%4» @@ -2546,89 +2731,89 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Не ўдалося запусціць раздачу. BitTorrent::TorrentCreator - + Operation aborted - Operation aborted + Аперацыя перапынена - - + + Create new torrent file failed. Reason: %1. - Create new torrent file failed. Reason: %1. + Не ўдалося стварыць новы торэнт. Прычына: %1. BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - Failed to add peer "%1" to torrent "%2". Reason: %3 + Не ўдалося дадаць пір «%1» у торэнт «%2». Прычына: %3 - + Peer "%1" is added to torrent "%2" - Peer "%1" is added to torrent "%2" + Пір «%1» дададзены ў торэнт «%2» - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Выяўлены нечаканыя даныя. Торэнт: %1. Даныя: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. + Не ўдалося запісаць у файл. Прычына: «%1». Торэнт цяпер у рэжыме «толькі аддача». - + Download first and last piece first: %1, torrent: '%2' - Спачатку пампаваць першую і апошнюю часткі: %1, торэнт: '%2' + Спачатку пампаваць першую і апошнюю часткі: %1, торэнт: «%2» - + On Укл. - + Off Выкл. - + Failed to reload torrent. Torrent: %1. Reason: %2 - Збой паўторнага заладаваньня торэнта. Торэнт: %1. Чыньнік: %2 + Збой паўторнай загрузкі торэнта. Торэнт: %1. Прычына: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - Generate resume data failed. Torrent: "%1". Reason: "%2" + Не ўдалося стварыць даныя ўзнаўлення. Торэнт: «%1». Прычына: «%2» - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" + Не ўдалося аднавіць торэнт. Магчыма, файлы перамешчаны або сховішча недаступна. Торэнт: «%1». Прычына: «%2» - + Missing metadata - Missing metadata + Адсутнічаюць метаданыя - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Не ўдалося перайменаваць файл. Торэнт: «%1», файл: «%2», прычына: «%3» - + Performance alert: %1. More info: %2 - Performance alert: %1. More info: %2 + Папярэджанне аб прадукцыйнасці: %1. Больш інфармацыі: %2 @@ -2636,200 +2821,200 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Embedded Tracker: Now listening on IP: %1, port: %2 - Embedded Tracker: Now listening on IP: %1, port: %2 + Убудаваны трэкер: зараз праслухоўваецца IP: %1, порт: %2 Embedded Tracker: Unable to bind to IP: %1, port: %2. Reason: %3 - Embedded Tracker: Unable to bind to IP: %1, port: %2. Reason: %3 + Убудаваны трэкер: немагчыма прывязаць IP: %1, порт: %2. Прычына: %3 CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - Параметр '%1' павінен прытрымлівацца сінтаксісу '%1=%2' + Параметр «%1» павінен прытрымлівацца сінтаксісу «%1=%2» - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - Параметр '%1' павінен прытрымлівацца сінтаксісу '%1=%2' + Параметр «%1» павінен прытрымлівацца сінтаксісу «%1=%2» - + Expected integer number in environment variable '%1', but got '%2' - Чакаўся цэлы лік у пераменнай асяроддзя − '%1', але атрымана '%2' + Чакаўся цэлы лік у пераменнай асяроддзя − «%1», але атрымана «%2» - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Параметр '%1' павінен прытрымлівацца сінтаксісу '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' - Чакалася '%1' у пераменнай асяроддзя '%2', але атрымана '%3' + Чакалася «%1» у пераменнай асяроддзя «%2», але атрымана «%3» - - + + %1 must specify a valid port (1 to 65535). %1 неабходна ўказаць сапраўдны порт (з 1 да 65535). - + Usage: Выкарыстанне: - + [options] [(<filename> | <url>)...] [параметры] [(<filename> | <url>)...] - + Options: Параметры: - + Display program version and exit Паказваць версію праграмы і выхад - + Display this help message and exit Паказваць гэтую даведку і выхад - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Параметр «%1» павінен прытрымлівацца сінтаксісу «%1=%2» - - + + Confirm the legal notice + Пацвердзіце афіцыйнае апавяшчэнне + + + + port порт - + Change the WebUI port - Змяніць порт вэб-інтэрфейса + Змяніць порт вэб-інтэрфейсу - + Change the torrenting port - Change the torrenting port + Змяніць порт торэнта - + Disable splash screen Адключыць застаўку - + Run in daemon-mode (background) Працаваць у рэжыме дэмана (у фоне) - + dir Use appropriate short form or abbreviation of "directory" папка - + Store configuration files in <dir> Захоўваць файлы канфігурацыі ў <dir> - - + + name назва - + Store configuration files in directories qBittorrent_<name> Захоўваць файлы канфігурацыі ў папках qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - Hack into libtorrent fastresume files and make file paths relative to the profile directory + - + files or URLs файлы або спасылкі - + Download the torrents passed by the user Спампоўваць торэнты, прынятыя карыстальнікам - + Options when adding new torrents: Параметры пры дадаванні новых торэнтаў: - + path шлях - + Torrent save path Шлях захавання торэнтаў - - Add torrents as started or paused + + Add torrents as running or stopped Дадаваць торэнты як запушчаныя або спыненыя - + Skip hash check - Прапусціць праверку хэша + Прапусціць праверку хэшу - + Assign torrents to category. If the category doesn't exist, it will be created. Прызначаць торэнтам катэгорыі. Калі катэгорыя не існуе, яна будзе створана. - + Download files in sequential order Спампоўваць файлы ў паслядоўнасці - + Download first and last pieces first Спачатку пампаваць першую і апошнюю часткі - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Пазначце, ці адкрываецца дыялогавае акно «Дадаць новы торэнт» пры дадаванні торэнта. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: + - + Command line parameters take precedence over environment variables Параметры каманднага радка маюць прыярытэт над пераменнымі асяроддзя - + Help Даведка @@ -2857,12 +3042,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Add category... - Дадаць катэґорыю... + Дадаць катэгорыю... Add subcategory... - Дадаць падкатэґорыю... + Дадаць падкатэгорыю... @@ -2881,12 +3066,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Узнавіць торэнты + Start torrents + Запусціць торэнты - Pause torrents + Stop torrents Спыніць торэнты @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - Рэдаґаваць... + Рэдагаваць... - + Reset Скінуць + + + System + Сістэма + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Не ўдалося загрузіць табліцу стыляў уласнай тэмы. %1 - + Failed to load custom theme colors. %1 Не ўдалося загрузіць уласныя колеры тэмы. %1 @@ -2960,9 +3150,9 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 - Не ўдалося загрузіць прадвызначаныя колеры тэмы. %1 + Не ўдалося загрузіць колеры тэмы па змаўчанні. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Таксама незваротна выдаліць файлы - - - - Are you sure you want to remove '%1' from the transfer list? - Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - Сапраўды хочаце выдаліць «%1» са спіса? + Also remove the content files + Таксама выдаліць спампаваныя файлы - Are you sure you want to remove these %1 torrents from the transfer list? - Are you sure you want to remove these 5 torrents from the transfer list? - Сапраўды хочаце выдаліць %1 торэнты(аў) са спісу? + Are you sure you want to remove '%1' from the transfer list? + Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? + Сапраўды выдаліць са спіса «%1»? - + + Are you sure you want to remove these %1 torrents from the transfer list? + Are you sure you want to remove these 5 torrents from the transfer list? + Сапраўды выдаліць са спіса %1 торэнты(аў)? + + + Remove Выдаліць @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Спампаваць па спасылках - + Add torrent links Дадаць спасылкі на торэнты - + One link per line (HTTP links, Magnet links and info-hashes are supported) Адна на радок (HTTP-спасылкі, Magnet-спасылкі і хэш-сумы) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Спампаваць - + No URL entered Няма URL адраса - + Please type at least one URL. Увядзіце хаця б адзін адрас URL. @@ -3066,7 +3256,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Copy - Капіяваць + Скапіяваць @@ -3135,45 +3325,45 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also I/O Error: Could not open IP filter file in read mode. - I/O Error: Could not open IP filter file in read mode. + Памылка ўводу/вываду: Не ўдалося адкрыць файл IP-фільтра ў рэжыме чытання. IP filter line %1 is malformed. - IP filter line %1 is malformed. + Радок IP-фільтра %1 мае няправільны фармат. IP filter line %1 is malformed. Start IP of the range is malformed. - IP filter line %1 is malformed. Start IP of the range is malformed. + Радок IP-фільтра %1 мае няправільны фармат. Няправільны фармат пачатковага IP у дыяпазоне адрасоў. IP filter line %1 is malformed. End IP of the range is malformed. - IP filter line %1 is malformed. End IP of the range is malformed. + Радок IP-фільтра %1 мае няправільны фармат. Няправільны фармат канцавога IP у дыяпазоне адрасоў. IP filter line %1 is malformed. One IP is IPv4 and the other is IPv6! - IP filter line %1 is malformed. One IP is IPv4 and the other is IPv6! + Радок IP-фільтра %1 мае няправільны фармат. Адзін IP-адрас у фармаце IPv4, а другі — у IPv6. IP filter exception thrown for line %1. Exception is: %2 - IP filter exception thrown for line %1. Exception is: %2 + %1 extra IP filter parsing errors occurred. 513 extra IP filter parsing errors occurred. - %1 extra IP filter parsing errors occurred. + @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Памылка разбору: Файл фільтра не з'яўляецца правільным файлам PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Фармат шаблона + + + + Plain text + Звычайны тэкст + + + + Wildcards + + + + + Regular expression + Рэгулярны выраз + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Спампоўванне торэнта... Крыніца: «%1» - - Trackers cannot be merged because it is a private torrent - Немагчыма дадаць трэкеры, бо гэта прыватны торэнт - - - + Torrent is already present Торэнт ужо існуе - + + Trackers cannot be merged because it is a private torrent. + Немагчыма дадаць трэкеры, бо гэта прыватны торэнт. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Торэнт «%1» ужо ёсць у спісе. Хочаце дадаць трэкеры з новай крыніцы? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Такі памер файла базы даных не падтрымліваецца. - - - Metadata error: '%1' entry not found. - Памылка метаданых: запіс '%1' не знойдзены. - - Metadata error: '%1' entry has invalid type. - Памылка метаданых: запіс '%1' мае памылковы тып. + 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 - + Database corrupted: no data section found. База даных пашкоджана: не знойдзена раздзела даных. @@ -3252,19 +3465,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 + Памер HTTP-запыту перавышае абмежаванне, сокет закрываецца. Абмежаванне: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - Хібны мэтад запыту Http, закрыцьцё сокета. IP: %1. Мэтад: "%2" + Хібны метад запыту Http, закрыццё сокета. IP: %1. Метад: «%2» - + Bad Http request, closing socket. IP: %1 - Bad Http request, closing socket. IP: %1 + Хібны запыт Http, закрыццё сокета. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Агляд... - + Reset Скінуць - + Select icon Выбраць значок - + Supported image files Файлы відарысаў, якія падтрымліваюцца + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Кіраванне сілкаваннем знайшло падыходны інтэрфейс D-Bus. Інтэрфейс: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Памылка кіравання энергаспажываннем. Дзеянне: %1. Памылка: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Нечаканая памылка кіравання энергаспажываннем. Стан: %1. Памылка: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3333,34 +3580,34 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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. - 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. + qBittorrent - гэта праграма для абмену файламі. Пры запуску торэнта, даныя з яго пачынаюць раздавацца і становяцца даступны іншым карыстальнікам. Вы несяце персанальную адказнасць за ўсё змесціва, якім дзеліцеся. No further notices will be issued. - No further notices will be issued. + Ніякіх дадатковых перасцярог паказвацца не будзе. If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + Калі вы прачыталі афіцыйную перасцярогу, можаце выкарыстоўваць параметр каманднага радка `--confirm-legal-notice`, каб адключыць гэтае паведамленне. Press 'Enter' key to continue... - Для працягу націсьніце "Enter"... + Каб працягнуць, націсніце «Enter»… LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - %1 was blocked. Reason: %2. + %1 заблакіраваны. Прычына: %2. - + %1 was banned 0.0.0.0 was banned %1 заблакаваны @@ -3369,62 +3616,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 павінна быць адзіным параметрам каманднага радка. - + Run application with -h option to read about command line parameters. Запусціце праграму з параметрам -h, каб атрымаць даведку па параметрах каманднага радка. - + Bad command line Праблемны камандны радок - + Bad command line: Праблемны камандны радок: - + An unrecoverable error occurred. - Узьнікла неадольная памылка. + Узнікла невырашальная памылка. + - qBittorrent has encountered an unrecoverable error. - qBittorrent выявіў неадольную памылку. + qBittorrent сутыкнуўся з невырашальнай памылкай. - + You cannot use %1: qBittorrent is already running. - Немажліва выкарыстаць %1: qBittorrent ужо запушчаны. + Немагчыма выкарыстаць %1: qBittorrent ужо запушчаны. - + Another qBittorrent instance is already running. - Іншы асобнік qBittorrent ужо запушчаны. + Іншы экзэмпляр qBittorrent ужо запушчаны. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Знойдзены нечаканы экзэмпляр qBittorrent. Гэты экзэмпляр будзе закрыты. Ідэнтыфікатар бягучага працэсу: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - Выяўлены нечаканы асобнік qBittorrent. Гэты асобнік будзе закрыты. Ідэнтыфікатар актыўнага працэсу:% 1. - - - Error when daemonizing. Reason: "%1". Error code: %2. - Памылка ў час ''дэманізацыі''. Чыньнік: "%1". Код памылкі: %2. + Памылка ў час дэманізацыі. Прычына: «%1». Код памылкі: %2. @@ -3432,612 +3679,683 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Edit - &Рэдаґаваць + &Кіраванне - + &Tools &Інструменты - + &File &Файл - + &Help &Даведка - + On Downloads &Done Па сканчэнні &спампоўванняў - + &View &Выгляд - + &Options... &Параметры... - - &Resume - &Узнавіць - - - + &Remove &Выдаліць - + Torrent &Creator Стварыць &торэнт - - + + Alternative Speed Limits Альтэрнатыўныя абмежаванні хуткасці - + &Top Toolbar Верхняя &панэль - + Display Top Toolbar Паказаць верхнюю панэль - + Status &Bar Панэль &стану - + Filters Sidebar Бакавая панэль - + S&peed in Title Bar Х&уткасць у загалоўку - + Show Transfer Speed in Title Bar Паказваць хуткасць перадачы ў загалоўку акна - + &RSS Reader Менеджар &RSS - + Search &Engine &Пошук - + L&ock qBittorrent З&аблакіраваць qBittorrent - + Do&nate! Ах&вяраваць! - + + Sh&utdown System + Вы&ключыць камп'ютар + + + &Do nothing &Нічога не рабіць - + Close Window Закрыць акно - - R&esume All - У&знавіць усё - - - + Manage Cookies... Кіраванне cookie... - + Manage stored network cookies Кіраванне захаванымі файламі cookie - + Normal Messages Звычайныя паведамленні - + Information Messages Інфармацыйныя паведамленні - + Warning Messages Папярэджанні - + Critical Messages Крытычныя паведамленні - + &Log &Журнал - - Set Global Speed Limits... - Set Global Speed Limits... + + Sta&rt + &Запусціць - + + Sto&p + &Спыніць + + + + R&esume Session + &Працягнуць сеанс + + + + Pau&se Session + П&рыпыніць сеанс + + + + Set Global Speed Limits... + Наладзіць хуткасць... + + + Bottom of Queue У канец чаргі - + Move to the bottom of the queue Перамясціць у канец чаргі - + Top of Queue У пачатак чаргі - + Move to the top of the queue Перамясціць у пачатак чаргі - + Move Down Queue Панізіць у чарзе - + Move down in the queue Перамясціць у чарзе ніжэй - + Move Up Queue Падняць у чарзе - + Move up in the queue Перамясціць у чарзе вышэй - + &Exit qBittorrent &Выйсці з qBittorrent - + &Suspend System &Прыпыніць камп'ютар - + &Hibernate System - &Усыпіць камп'ютар + Перайсці ў &гібернацыю - - S&hutdown System - А&дключыць камп'ютар - - - + &Statistics &Статыстыка - + Check for Updates Праверыць абнаўленні - + Check for Program Updates Праверыць абнаўленні праграмы - + &About &Пра qBittorrent - - &Pause - &Спыніць - - - - P&ause All - С&пыніць усе - - - + &Add Torrent File... &Дадаць торэнт-файл... - + Open Адкрыць - + E&xit В&ыйсці - + Open URL Адкрыць URL - + &Documentation - &Дакумэнтацыя + &Дакументацыя - + Lock Заблакіраваць - - - + + + Show Паказаць - + Check for program updates Праверыць абнаўленні праграмы - + Add Torrent &Link... Дадаць &спасылку на торэнт... - + If you like qBittorrent, please donate! Калі вам падабаецца qBittorrent, калі ласка, зрабіце ахвяраванне! - - + + Execution Log Журнал выканання - + Clear the password Прыбраць пароль - + &Set Password &Задаць пароль - + Preferences Налады - + &Clear Password &Прыбраць пароль - + Transfers Перадачы - - + + qBittorrent is minimized to tray qBittorrent згорнуты ў вобласць апавяшчэнняў - - - + + + This behavior can be changed in the settings. You won't be reminded again. - This behavior can be changed in the settings. You won't be reminded again. + - + Icons Only Толькі значкі - + Text Only Толькі тэкст - + Text Alongside Icons - Тэкст поруч са значкамі + Тэкст побач са значкамі - + Text Under Icons Тэкст пад значкамі - + Follow System Style Паводле сістэмнага стылю - - + + UI lock password Пароль блакіроўкі інтэрфейсу - - + + Please type the UI lock password: Увядзіце пароль, каб заблакіраваць інтэрфейс: - + Are you sure you want to clear the password? Сапраўды хочаце ачысціць пароль? - + Use regular expressions Выкарыстоўваць рэгулярныя выразы - + + + Search Engine + Пошукавая сістэма + + + + Search has failed + Памылка пошуку + + + + Search has finished + Пошук завершаны + + + Search Пошук - + Transfers (%1) Перадачы (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent абнавіўся і патрабуе перазапуску для актывацыі новых функцый. - + qBittorrent is closed to tray qBittorrent закрыты ў вобласць апавяшчэнняў - + Some files are currently transferring. Некаторыя файлы зараз перадаюцца. - + Are you sure you want to quit qBittorrent? Сапраўды хочаце выйсці з qBittorrent? - + &No &Не - + &Yes &Так - + &Always Yes &Заўсёды Так - + Options saved. Параметры захаваны. - + + [PAUSED] %1 + %1 is the rest of the window title + [ПРЫПЫНЕНЫ] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title + [С: %1, З: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Не ўдалося спампаваць праграму ўсталявання Python. Памылка: %1. +Усталюйце яго ўручную. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Не ўдалося перайменаваць файл усталявання Python. Крыніца: «%1». Месца прызначэння: «%2». + + + + Python installation success. + Усталяванне Python выканана. + + + + Exit code: %1. - - + + Reason: installer crashed. + Прычына: аварыйнае спыненне ўсталявання. + + + + Python installation failed. + Збой усталявання Python. + + + + Launching Python installer. File: "%1". + Запуск праграмы ўсталявання Python. Файл: «%1». + + + + Missing Python Runtime - Missing Python Runtime + Адсутнічае асяроддзе выканання Python - + qBittorrent Update Available - Ёсць абнаўленне для qBittorrent + Даступна абнаўленне qBittorrent - + 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, але падобна, што ён не ўсталяваны. - - + + Old Python Runtime - Old Python Runtime + Старое асяроддзе выканання Python - + A new version is available. Даступна новая версія. - + Do you want to download %1? Хочаце спампаваць %1? - + Open changelog... Адкрыць спіс змен... - + No updates available. You are already using the latest version. Няма абнаўленняў. Вы ўжо карыстаецеся апошняй версіяй. - + &Check for Updates &Праверыць абнаўленні - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Ваша версія Python (%1) састарэла. Патрабуецца мінімум: %2. Хочаце ўсталяваць навейшую версію? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. -Minimum requirement: %2. + У вас састарэлая версія Python (%1). Абнавіце яго да апошняй версіі, каб пошукавая сістэма працавала. Патрабуецца прынамсі %2 - + + Paused + Прыпынены + + + Checking for Updates... Праверка абнаўленняў... - + Already checking for program updates in the background У фоне ўжо ідзе праверка абнаўленняў праграмы - + + Python installation in progress... + Выконваецца ўсталяванне Python... + + + + Failed to open Python installer. File: "%1". + Не ўдалося адкрыць праграму ўсталявання Python. Файл: «%1». + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Файл праграмы ўсталявання Python не прайшоў праверку хэш-сумы MD5. Файл: «%1». Атрыманы хэш: «%2». Чаканы хэш: «%3». + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Файл праграмы ўсталявання Python не прайшоў праверку хэш-сумы SHA3-512. Файл: «%1». Атрыманы хэш: «%2». Чаканы хэш: «%3». + + + Download error Памылка спампоўвання - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Усталёўнік Python не можа быць спампаваны з прычыны: %1. -Усталюйце яго ўласнаручна. - - - - + + Invalid password Памылковы пароль - + Filter torrents... Фільтраваць торэнты... - + Filter by: - Фільтраваць паводле: + Фільтры - + The password must be at least 3 characters long Пароль павінен змяшчаць не менш за 3 сімвалы. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Адкрыць Torrent-файлы - + Torrent Files Torrent-файлы @@ -4062,17 +4380,17 @@ Please install it manually. Dynamic DNS error: Invalid username/password. - Памылка дынамічнага DNS: Памылковае імя карыстальніка ці пароль. + Памылка дынамічнага DNS: Памылковае імя карыстальніка або пароль. Dynamic DNS error: qBittorrent was blacklisted by the service, please submit a bug report at https://bugs.qbittorrent.org. - Памылка дынамічнага DNS: qBittorrent занесены ў чорны сьпіс, калі ласка, дашліце справаздачу пра памылку на https://bugs.qbittorrent.org. + Памылка дынамічнага DNS: qBittorrent занесены ў чорны спіс, адпраўце справаздачу пра памылку на https://bugs.qbittorrent.org. Dynamic DNS error: %1 was returned by the service, please submit a bug report at https://bugs.qbittorrent.org. - + Памылка дынамічнага DNS: служба вярнула %1. Паведамце пра памылку на https://bugs.qbittorrent.org. @@ -4106,12 +4424,12 @@ Please install it manually. The file size (%1) exceeds the download limit (%2) - The file size (%1) exceeds the download limit (%2) + Памер файла (%1) перавышае абмежаванне спампоўвання (%2) Exceeded max redirections (%1) - Exceeded max redirections (%1) + @@ -4131,7 +4449,7 @@ Please install it manually. The remote server closed the connection prematurely, before the entire reply was received and processed - Адлеглы сервер закрыў злучэнне перад тым, як увесь адказ быў атрыманы і апрацаваны + Аддаленны сервер закрыў злучэнне перад тым, як увесь адказ быў атрыманы і апрацаваны @@ -4232,9 +4550,14 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Памылка SSL, адрас: «%1», памылкі: «%2» + + + Ignoring SSL error, URL: "%1", errors: "%2" - Ignoring SSL error, URL: "%1", errors: "%2" + Ігнаруецца памылка SSL, адрас: «%1», памылкі: «%2» @@ -4242,7 +4565,7 @@ Please install it manually. Venezuela, Bolivarian Republic of - Венесуэла, Баліварыянская Рэспубліка + Венесуэла @@ -4259,13 +4582,13 @@ Please install it manually. IP geolocation database loaded. Type: %1. Build time: %2. - IP geolocation database loaded. Type: %1. Build time: %2. + База даных геалакацыі IP загружана. Тып: %1. Час зборкі: %2. Couldn't load IP geolocation database. Reason: %1 - Couldn't load IP geolocation database. Reason: %1 + Не ўдалося загрузіць базу даных геалакацыі IP. Прычына: %1 @@ -4390,7 +4713,7 @@ Please install it manually. Brunei Darussalam - Бруней-Даруссалам + Бруней-Дарусалам @@ -4440,7 +4763,7 @@ Please install it manually. Congo, The Democratic Republic of the - Конга, Дэмакратычная Рэспубліка + Дэмакратычная Рэспубліка Конга @@ -4495,7 +4818,7 @@ Please install it manually. Cape Verde - Каба-Вэрдэ + Каба-Вердэ @@ -4505,7 +4828,7 @@ Please install it manually. Christmas Island - Востраў Ражства + Востраў Каляд @@ -4515,7 +4838,7 @@ Please install it manually. Czech Republic - Чэшская Рэспубліка + Чэхія @@ -4595,17 +4918,17 @@ Please install it manually. Falkland Islands (Malvinas) - Фалкленскія выспы (Мальдзівы) + Фалклендскія астравы (Мальдывы) Micronesia, Federated States of - Мікранезія, Фэдэратыўныя Штаты + Мікранезія Faroe Islands - Фарэрскія выспы + Фарэрскія астравы @@ -4620,7 +4943,7 @@ Please install it manually. United Kingdom - Злучанае Каралеўства + Вялікабрытанія @@ -4680,7 +5003,7 @@ Please install it manually. South Georgia and the South Sandwich Islands - Паўднёвая Джорджыя і Паўднёвыя Сандвічавы выспы + Паўднёвая Георгія і Паўднёвыя Сандвічавы астравы @@ -4695,7 +5018,7 @@ Please install it manually. Guinea-Bissau - Гвінея-Бісаў + Гвінея-Бісау @@ -4710,7 +5033,7 @@ Please install it manually. Heard Island and McDonald Islands - Выспа Херд і выспы Макдональд + Востраў Херд і астравы Макдональд @@ -4765,7 +5088,7 @@ Please install it manually. Iran, Islamic Republic of - Іран, Ісламская Рэспубліка + Іран @@ -4815,7 +5138,7 @@ Please install it manually. Comoros - Каморскія выспы + Каморскія астравы @@ -4830,7 +5153,7 @@ Please install it manually. Korea, Republic of - Карэя, Рэспубліка + Паўднёвая Карэя @@ -4840,7 +5163,7 @@ Please install it manually. Cayman Islands - Кайманавы выспы + Кайманавы астравы @@ -4850,7 +5173,7 @@ Please install it manually. Lao People's Democratic Republic - Лаоская Народна-Дэмакратычная Рэспубліка + Лаос @@ -4860,7 +5183,7 @@ Please install it manually. Saint Lucia - Сэнт-Люсія + Сент-Люсія @@ -4870,7 +5193,7 @@ Please install it manually. Sri Lanka - Шры Ланка + Шры-Ланка @@ -4910,7 +5233,7 @@ Please install it manually. Moldova, Republic of - Малдова, Рэспубліка + Малдова @@ -4920,7 +5243,7 @@ Please install it manually. Marshall Islands - Маршалавы выспы + Маршалавы астравы @@ -4940,7 +5263,7 @@ Please install it manually. Northern Mariana Islands - Паўночныя Марыянскія выспы + Паўночныя Марыянскія астравы @@ -5010,7 +5333,7 @@ Please install it manually. Norfolk Island - Выспа Норфалк + Востраў Норфалк @@ -5110,7 +5433,7 @@ Please install it manually. Palau - Палаў + Палау @@ -5125,7 +5448,7 @@ Please install it manually. Reunion - Уз'яднанне + Рэюньён @@ -5135,7 +5458,7 @@ Please install it manually. Russian Federation - Расійская Федэрацыя + Расія @@ -5150,12 +5473,12 @@ Please install it manually. Solomon Islands - Саламонавы выспы + Саламонавы астравы Seychelles - Сейшэльскія выспы + Сейшэльскія астравы @@ -5180,7 +5503,7 @@ Please install it manually. Svalbard and Jan Mayen - Шпіцбэрген і Ян-Майен + Шпіцберген і Ян-Маен @@ -5215,7 +5538,7 @@ Please install it manually. Sao Tome and Principe - Сан-Томе і Прынсэп + Сан-Тамэ і Прынсіпі @@ -5225,7 +5548,7 @@ Please install it manually. Syrian Arab Republic - Сірыйская Арабская Рэспубліка + Сірыя @@ -5250,7 +5573,7 @@ Please install it manually. Togo - Таго + Тога @@ -5265,7 +5588,7 @@ Please install it manually. Tokelau - Такелаў + Такелау @@ -5290,22 +5613,22 @@ Please install it manually. Couldn't download IP geolocation database file. Reason: %1 - Couldn't download IP geolocation database file. Reason: %1 + Не ўдалося загрузіць файл базы даных геалакаці IP. Прычына: %1 Could not decompress IP geolocation database file. - Could not decompress IP geolocation database file. + Не ўдалося распакаваць файл базы даных геалакацыі IP. Couldn't save downloaded IP geolocation database file. Reason: %1 - Couldn't save downloaded IP geolocation database file. Reason: %1 + Не ўдалося загрузіць спампаваны файл базы даных геалакаці IP. Прычына: %1 Successfully updated IP geolocation database. - Successfully updated IP geolocation database. + База даных геалакацыі IP паспяхова абноўлена. @@ -5320,7 +5643,7 @@ Please install it manually. Bonaire, Sint Eustatius and Saba - Банайрэ, Сінт-Эстаціус і Саба + Банайрэ, Сінт-Эстатыус і Саба @@ -5335,7 +5658,7 @@ Please install it manually. Saint Martin (French part) - Святога Марціна, выспа (французская частка) + Сен Мартэн (Французская частка) @@ -5350,7 +5673,7 @@ Please install it manually. Pitcairn - Піткэрн, выспы + Піткэрн @@ -5360,7 +5683,7 @@ Please install it manually. Saint Helena, Ascension and Tristan da Cunha - Выспы Святой Алены, Ушэсця і Трыстан-да-Кунья + Святая Алена, востраў Узнясення і Трыстан-да-Кунья @@ -5370,7 +5693,7 @@ Please install it manually. Sint Maarten (Dutch part) - Святога Марціна, выспа (нідэрландская частка) + Сінт-Мартэн (Нідэрландская частка) @@ -5395,7 +5718,7 @@ Please install it manually. Tanzania, United Republic of - Танзанія, Аб'яднаная Рэспубліка + Танзанія @@ -5410,7 +5733,7 @@ Please install it manually. United States Minor Outlying Islands - Знешнія малыя выспы ЗША + Знешнія малыя астравы ЗША @@ -5430,22 +5753,22 @@ Please install it manually. Holy See (Vatican City State) - Святы Пасад (Дзяржава-горад Ватыкан) + Святы Прастол (Ватыкан) Saint Vincent and the Grenadines - Сэнт-Вінсэнт і Грэнадыны + Сент-Вінсент і Грэнадзіны Virgin Islands, British - Віргінскія выспы, Брытанскія + Брытанскія Віргінскія Астравы Virgin Islands, U.S. - Віргінскія выспы, ЗША + Віргінскія Астравы Злучаных Штатаў @@ -5500,17 +5823,17 @@ Please install it manually. Aland Islands - Аландскія выспы + Аландскія астравы Guernsey - Выспа Гернсі + Гернсі Isle of Man - Выспа Мэн + Востраў Мэн @@ -5526,49 +5849,49 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - Connection failed, unrecognized reply: %1 + Збой злучэння, нявызначаны адказ: %1 - + Authentication failed, msg: %1 - Authentication failed, msg: %1 + Збой аўтэнтыфікацыі, msg: %1 - + <mail from> was rejected by server, msg: %1 - <mail from> was rejected by server, msg: %1 + <mail from> адхілена серверам, паведамленне: %1 - + <Rcpt to> was rejected by server, msg: %1 - <Rcpt to> was rejected by server, msg: %1 + <Rcpt to> адхілена серверам, паведамленне: %1 - + <data> was rejected by server, msg: %1 - <data> was rejected by server, msg: %1 + <data>адхілена серверам, паведамленне: %1 - + Message was rejected by the server, error: %1 - Message was rejected by the server, error: %1 + Паведамленне адхілена серверам, памылка: %1 - + Both EHLO and HELO failed, msg: %1 - Both EHLO and HELO failed, msg: %1 + - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 + - + Email Notification Error: %1 - Email Notification Error: %1 + Памылка паведамлення на email: %1 @@ -5604,299 +5927,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Вэб-інтэрфейс - - - + Advanced Пашыраныя - + Customize UI Theme... Наладзіць тэму... - + Transfer List Спіс торэнтаў - + Confirm when deleting torrents Пацвярджаць выдаленне торэнтаў - - Shows a confirmation dialog upon pausing/resuming all the torrents - Паказвае дыялог пацвярджэння, перш чым спыніць/узнавіць усе торэнты - - - - Confirm "Pause/Resume all" actions - Пацвярджаць дзеянні «Спыніць/Узнавіць усе» - - - + Use alternating row colors In table elements, every other row will have a grey background. Выкарыстоўваць чаргаванне колеру радкоў - + Hide zero and infinity values Хаваць нулявыя і бясконцыя значэнні - + Always Заўсёды - - Paused torrents only - Толькі для спыненых - - - + Action on double-click Дзеянне для падвойнага націскання - + Downloading torrents: Торэнты, якія спампоўваюцца: - - - Start / Stop Torrent - Запусціць / спыніць торэнт - - - - + + Open destination folder Адкрыць папку прызначэння - - + + No action Няма дзеяння - + Completed torrents: Завершаныя торэнты: - + Auto hide zero status filters Аўтаматычна хаваць фільтры стану з нулявым значэннем - + Desktop Працоўны стол - + Start qBittorrent on Windows start up Запускаць qBittorrent разам з Windows - + Show splash screen on start up - Паказваць застаўку падчас запуску + Паказваць падчас запуску застаўку - + Confirmation on exit when torrents are active Пацвярджаць выхад пры наяўнасці актыўных торэнтаў - + Confirmation on auto-exit when downloads finish Пацвярджаць аўтавыхад пры завяршэнні спампоўванняў - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Каб задаць qBittorrent у якасці праграмы па змаўчанні для файлаў .torrent і/або Magnet-спасылак<br/>можна выкарыстоўваць акно <span style=" font-weight:600;">Праграмы па змаўчанні</span> ў <span style=" font-weight:600;">Панэлі кіравання</span>.</p></body></html> - + KiB КБ - + + Show free disk space in status bar + + + + Torrent content layout: Структура змесціва торэнта: - + Original Зыходная - + Create subfolder Стварыць падпапку - + Don't create subfolder Не ствараць падпапку - + The torrent will be added to the top of the download queue Торэнт будзе дададзены ў пачатак чаргі спампоўвання - + Add to top of queue The torrent will be added to the top of the download queue Дадаць у пачатак чаргі - + When duplicate torrent is being added - Калі дадаецца, дублікат торэнта + Пры паўторным дадаванні торэнта - + Merge trackers to existing torrent Дадаваць новыя трэкеры ў наяўны торэнт - + Keep unselected files in ".unwanted" folder - Захоўваць неабраныя файлы ў каталёзе ".unwanted". + Захоўваць нявыбраныя файлы ў папцы «.unwanted» - + Add... Дадаць... - + Options.. Параметры.. - + Remove Выдаліць - + Email notification &upon download completion Апавяшчэнне па электроннай пошце пасля &завяршэння спампоўвання - + + Send test email + Адправіць праверачны ліст + + + + Run on torrent added: + Запускаць пры дадаванні торэнта: + + + + Run on torrent finished: + Запускаць пры завяршэнні торэнта: + + + Peer connection protocol: Пратакол злучэння для піраў: - + Any Любы - + I2P (experimental) I2P (эксперыментальны) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Калі ўключаны «змешаны рэжым», торэнты I2P могуць атрымліваць піры і з іншых крыніц, акрамя трэкера, і падключацца да звычайных IP-адрасоў, без забеспячэння ананімнасці. Можа быць карысным, калі карыстальнік не зацікаўлены ў ананімнасці, але хоча мець магчымасць злучацца з пірамі I2P.</p></body></html> - - - + Mixed mode - Змешаны рэжым + Змяшаны рэжым - - Some options are incompatible with the chosen proxy type! - Некаторыя парамэтры несумяшчальныя з абраным тыпам проксі! - - - + If checked, hostname lookups are done via the proxy - + Калі пазначана, пошук назвы хоста выконваецца праз проксі - + Perform hostname lookup via proxy - + Выконваць пошук назвы хоста праз проксі - + Use proxy for BitTorrent purposes - Ужываць проксі для мэтаў BitTorrent + Выкарыстоўваць проксі для працы BitTorrent - + RSS feeds will use proxy RSS-каналы будуць выкарыстоўваць проксі - + Use proxy for RSS purposes Выкарыстоўваць проксі для мэт RSS - + Search engine, software updates or anything else will use proxy - Пошукавік, модуль абнаўленьня й іншыя кампанэнты будуць ужываць проксі + Пошукавік, модуль абнаўлення і іншыя кампаненты будуць выкарыстоўваць проксі - + Use proxy for general purposes - Ужываць проксі для агульных мэтаў + Выкарыстоўваць проксі для агульных задач - + IP Fi&ltering &Фільтрацыя па IP - + Schedule &the use of alternative rate limits &Запланаваць выкарыстанне альтэрнатыўных абмежаванняў хуткасці - + From: From start time З: - + To: To end time Да: - + Find peers on the DHT network Шукаць піры праз сетку DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Disable encryption: Only connect to peers without protocol encryption Адключыць шыфраванне: злучацца толькі з вузламі, якія НЕ выкарыстоўваюць шыфраванне пратаколу - + Allow encryption Дазволіць шыфраванне - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Больш інфармацыі</a>) - + Maximum active checking torrents: Максімальная колькасць торэнтаў, якія правяраюцца: - + &Torrent Queueing &Чарговасць торэнтаў - + When total seeding time reaches Калі агульны час раздачы дасягне - + When inactive seeding time reaches Калі неактыўны час раздачы дасягне - - A&utomatically add these trackers to new downloads: - Аўта&матычна дадаваць гэтыя трэкеры ў новыя спампоўванні: - - - + RSS Reader Менеджар RSS - + Enable fetching RSS feeds Уключыць атрыманне RSS-каналаў - + Feeds refresh interval: Інтэрвал абнаўлення каналаў: - + Same host request delay: - + Затрымка паўторнага запыту хоста: - + Maximum number of articles per feed: Максімальная колькасць артыкулаў на канал: - - - + + + min minutes - хв +  хв - + Seeding Limits Абмежаванне раздачы - - Pause torrent - Спыніць торэнт - - - + Remove torrent Выдаліць торэнт - + Remove torrent and its files Выдаліць торэнт і яго файлы - + Enable super seeding for torrent Уключыць для торэнта рэжым суперраздачы - + When ratio reaches Калі рэйтынг раздачы дасягне паказчыка - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Спыніць торэнт + + + + A&utomatically append these trackers to new downloads: + Аўта&матычна дадаваць гэтыя трэкеры ў новыя спампоўванні: + + + + Automatically append trackers from URL to new downloads: + Аўтаматычна дадаваць трэкеры з URL-адраса ў новыя спампоўванні: + + + + URL: + Адрас: + + + + Fetched trackers + Атрыманыя трэкеры + + + + Search UI + Інтэрфейс пошуку + + + + Store opened tabs + Захоўваць адкрытыя ўкладкі + + + + Also store search results + Таксама захоўваць вынікі пошуку + + + + History length + Даўжыня гісторыі (колькасць) + + + RSS Torrent Auto Downloader Аўтаспампоўванне торэнтаў з RSS - + Enable auto downloading of RSS torrents Уключыць аўтаспампоўванне торэнтаў з RSS - + Edit auto downloading rules... Рэдагаваць правілы аўтаспампоўвання... - + RSS Smart Episode Filter Разумны фільтр эпізодаў з RSS - + Download REPACK/PROPER episodes Спампоўваць эпізоды REPACK/PROPER - + Filters: Фільтры: - + Web User Interface (Remote control) Вэб-інтэрфейс (Аддаленае кіраванне) - + IP address: IP-адрас: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,490 +6404,527 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv «::» для любога IPv6-адраса або «*» для абодвух IPv4 і IPv6. - + Ban client after consecutive failures: Блакіраваць кліента пасля чарады збояў: - + Never Ніколі - + ban for: заблакіраваць на: - + Session timeout: - Прыпыніць сувязь на: + Час чакання сеанса: - + Disabled Адключана - - Enable cookie Secure flag (requires HTTPS) - Ужываць для cookie пазнаку Secure (патрабуецца HTTPS) - - - + Server domains: Дамены сервера: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. Use ';' to split multiple entries. Can use wildcard '*'. - Whitelist for filtering HTTP Host header values. -In order to defend against DNS rebinding attack, -you should put in domain names used by WebUI server. + Белы спіс фільтра загалоўкаў HTTP-хоста. +Каб прадухіліць атакі DNS, вы павінны задаць +даменныя імёны для сервера вэб-інтэрфейсу. -Use ';' to split multiple entries. Can use wildcard '*'. +Выкарыстоўвайце «;», каб раздзяліць некалькі +запісаў, даступны шаблоны накшталт «*». - + &Use HTTPS instead of HTTP &Выкарыстоўваць HTTPS замест HTTP - + Bypass authentication for clients on localhost Не выкарыстоўваць аўтэнтыфікацыю кліентаў для localhost - + Bypass authentication for clients in whitelisted IP subnets Не выкарыстоўваць аўтэнтыфікацыю кліентаў для дазволеных падсетак - + IP subnet whitelist... Дазволеныя падсеткі... - - Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. + + Use alternative WebUI + Выкарыстоўваць альтэрнатыўны вэб-інтэрфейс - + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. + + + + Upda&te my dynamic domain name А&бнаўляць мой дынамічны DNS - + Minimize qBittorrent to notification area Згортваць qBittorrent у вобласць апавяшчэнняў - + + Search + Пошук + + + + WebUI + Вэб-інтэрфейс + + + Interface Інтэрфейс - + Language: Мова: - + + Style: + Стыль: + + + + Color scheme: + Схема колераў: + + + + Stopped torrents only + Толькі для спыненых торэнтаў + + + + + Start / stop torrent + Запусціць / спыніць торэнт + + + + + Open torrent options dialog + Адкрыць акно параметраў торэнта + + + Tray icon style: Стыль значка ў трэі: - - + + Normal Звычайны - + File association Суаднясенні файлаў - + Use qBittorrent for .torrent files Выкарыстоўваць qBittorrent для торэнт-файлаў - + Use qBittorrent for magnet links Выкарыстоўваць qBittorrent для магнет-спасылак - + Check for program updates Праверыць абнаўленні праграмы - + Power Management Кіраванне сілкаваннем - + + &Log Files + &Файлы журнала + + + Save path: Шлях захавання: - + Backup the log file after: Ствараць рэзервоваю копію пасля: - + Delete backup logs older than: Выдаляць рэзервовыя копіі старэйшыя за: - + + Show external IP in status bar + Паказваць знешні IP у радку стану + + + When adding a torrent Пры дадаванні торэнта - + Bring torrent dialog to the front Паказваць акно дадавання торэнта па-над іншымі вокнамі - + + The torrent will be added to download list in a stopped state + Торэнт будзе дадавацца ў спіс спампоўвання спыненым + + + Also delete .torrent files whose addition was cancelled Таксама выдаляюцца файлы .torrent дадаванне якіх было скасавана - + Also when addition is cancelled У тым ліку, калі дадаванне скасоўваецца - + Warning! Data loss possible! Увага! Магчыма страта даных! - + Saving Management Кіраванне захаваннем - + Default Torrent Management Mode: Рэжым кіравання торэнтам па змаўчанні: - + Manual Ручны - + Automatic Аўтаматычны - + When Torrent Category changed: Пры змене катэгорыі торэнта: - + Relocate torrent Перамясціць торэнт - + Switch torrent to Manual Mode Пераключыць торэнт у Ручны рэжым - - + + Relocate affected torrents Перамясціць закранутыя торэнты - - + + Switch affected torrents to Manual Mode Пераключыць закранутыя торэнты ў Ручны рэжым - + Use Subcategories Выкарыстоўваць падкатэгорыі - + Default Save Path: Шлях захавання па змаўчанні: - + Copy .torrent files to: - Капіяваць .torrent файлы ў: + Капіяваць файлы .torrent у: - + Show &qBittorrent in notification area Паказваць &qBittorrent у вобласці апавяшчэнняў - - &Log file - &Файл журналу - - - + Display &torrent content and some options Паказваць змесціва &торэнта і некаторыя параметры - + De&lete .torrent files afterwards Выда&ляць файлы .torrent адразу пасля дадавання - + Copy .torrent files for finished downloads to: Капіяваць файлы .torrent завершаных спампоўванняў у: - + Pre-allocate disk space for all files Папярэдне рэзерваваць месца для ўсіх файлаў - + Use custom UI Theme Выкарыстоўваць уласную тэму інтэрфейсу - + UI Theme file: Файл тэмы: - + Changing Interface settings requires application restart Змяненне налад інтэрфейсу патрабуе перазапуску праграмы - + Shows a confirmation dialog upon torrent deletion Паказвае дыялог пацвярджэння, перш чым выдаліць торэнт - - + + Preview file, otherwise open destination folder Прагляд файла, інакш адкрыць папку прызначэння - - - Show torrent options - Паказаць параметры торэнта - - - + Shows a confirmation dialog when exiting with active torrents Пры наяўнасці актыўных торэнтаў, паказвае дыялог пацвярджэння, перш чым выйсці - + When minimizing, the main window is closed and must be reopened from the systray icon - When minimizing, the main window is closed and must be reopened from the systray icon + Пры згортванні, галоўнае акно праграмы закрываецца і можа быць зноў адкрыта праз значок у вобласці апавяшчэнняў - + The systray icon will still be visible when closing the main window - The systray icon will still be visible when closing the main window + Калі галоўнае акно закрываецца, значок у вобласці апавяшчэнняў будзе заставацца бачным - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Закрываць qBittorrent у вобласць апавяшчэнняў - + Monochrome (for dark theme) Манахромны (для цёмнай тэмы) - + Monochrome (for light theme) Манахромны (для светлай тэмы) - + Inhibit system sleep when torrents are downloading Забараніць рэжым сну падчас спампоўвання торэнтаў - + Inhibit system sleep when torrents are seeding Забараніць рэжым сну падчас раздачы торэнтаў - + Creates an additional log file after the log file reaches the specified file size - Creates an additional log file after the log file reaches the specified file size + - + days Delete backup logs older than 10 days дні/дзён - + months Delete backup logs older than 10 months месяц/месяцы - + years Delete backup logs older than 10 years год/гады - + Log performance warnings - Log performance warnings + - - The torrent will be added to download list in a paused state - Торэнт будзе дададзены ў спіс спампоўвання ў спыненым стане - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Не пачынаць спампоўванне аўтаматычна - + Whether the .torrent file should be deleted after adding it Ці патрэбна выдаляць файлы .torrent адразу ж пасля іх дадавання - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. + Каб паменшыць фрагментацыю, вылучаць на дыску ўсё патрэбнае месца да пачатку спампоўвання. Карысна толькі для цвёрдых дыскаў. - + Append .!qB extension to incomplete files Дадаваць пашырэнне .!qB да незавершаных файлаў - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - When a torrent is downloaded, offer to add torrents from any .torrent files found inside it + - + Enable recursive download dialog Уключыць акно рэкурсіўнага спампоўвання - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Аўтаматычны: пэўныя ўласцівасці торэнта (напр. шлях захавання) вызначаюцца ў залежнасці ад катэгорыі Ручны: пэўныя ўласцівасці торэнта (напр. шлях захавання) вызначаюцца ўручную - + When Default Save/Incomplete Path changed: - Калі змяніўся прадвызначаны шлях для захавання/незавершаных: + Калі змяніўся шлях па змаўчанні для захавання/незавершаных: - + When Category Save Path changed: Пры змене шляху захавання для катэгорыі: - + Use Category paths in Manual Mode - Use Category paths in Manual Mode + Выкарыстоўваць шляхі катэгорый у ручным рэжыме - + Resolve relative Save Path against appropriate Category path instead of Default one - Resolve relative Save Path against appropriate Category path instead of Default one + - + Use icons from system theme Выкарыстоўваць значкі з сістэмнай тэмы - + Window state on start up: Стан акна пры запуску: - + qBittorrent window state on start up Стан акна qBittorrent пры запуску - + Torrent stop condition: Умова спынення торэнта: - - + + None Нічога - - + + Metadata received Метаданыя атрыманы - - + + Files checked Файлы правераны - + Ask for merging trackers when torrent is being added manually Спытаць мяне, ці аб'ядноўваць трэкеры, калі торэнт дадаецца ўручную - + Use another path for incomplete torrents: Выкарыстоўваць іншы шлях для незавершаных торэнтаў: - + Automatically add torrents from: Аўтаматычна дадаваць торэнты з: - + Excluded file names - Excluded file names + Выключаць файлы з назвай - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6549,785 +6938,814 @@ Examples readme.txt: filter exact file name. ?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - Blacklist filtered file names from being downloaded from torrent(s). -Files matching any of the filters in this list will have their priority automatically set to "Do not download". - -Use newlines to separate multiple entries. Can use wildcards as outlined below. -*: matches zero or more of any characters. -?: matches any single character. -[...]: sets of characters can be represented in square brackets. - -Examples -*.exe: filter '.exe' file extension. -readme.txt: filter exact file name. -?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. -readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. + - + Receiver Атрымальнік - + To: To receiver Да: - + SMTP server: SMTP-сервер: - + Sender Адпраўшчык - + From: From sender З: - + This server requires a secure connection (SSL) Гэты сервер патрабуе бяспечнага злучэння (SSL) - - + + Authentication Аўтэнтыфікацыя - - - - + + + + Username: Імя карыстальніка: - - - - + + + + Password: Пароль: - + Run external program Запуск знешняй праграмы - - Run on torrent added - Запускаць пры дадаванні торэнта - - - - Run on torrent finished - Запускаць пры завяршэнні торэнта - - - + Show console window Паказваць акно кансолі - + TCP and μTP TCP і μTP - + Listening Port Порт які праслухоўваецца - + Port used for incoming connections: Порт для ўваходных злучэнняў: - + Set to 0 to let your system pick an unused port Задайце значэнне 0, каб сістэма сама выбірала незаняты порт - + Random Выпадковы - + Use UPnP / NAT-PMP port forwarding from my router - Выкарыстоўваць UPnP / NAT-PMP майго маршрутызатара + Выкарыстоўваць UPnP / NAT-PMP пракід партоў майго маршрутызатара - + Connections Limits Абмежаванні злучэнняў - + Maximum number of connections per torrent: Максімальная колькасць злучэнняў на торэнт: - + Global maximum number of connections: Максімальная колькасць злучэнняў: - + Maximum number of upload slots per torrent: Максімальная колькасць слотаў раздачы на торэнт: - + Global maximum number of upload slots: Максімальная колькасць слотаў раздач: - + Proxy Server Проксі-сервер - + Type: Тып: - + SOCKS4 SOCKS4 - + SOCKS5 - Сервер SOCKS5 + SOCKS5 - + HTTP HTTP - - + + Host: Хост: - - - + + + Port: Порт: - + Otherwise, the proxy server is only used for tracker connections У адваротным выпадку проксі-сервер выкарыстоўваецца толькі для злучэнняў з трэкерамі - + Use proxy for peer connections Выкарыстоўваць проксі для злучэння з пірамі - + A&uthentication &Аўтэнтыфікацыя - - Info: The password is saved unencrypted - Інфармацыя: пароль будзе захаваны ў незашыфраваным выглядзе - - - + Filter path (.dat, .p2p, .p2b): Шлях да фільтраў (.dat, .p2p, .p2b): - + Reload the filter Перазагрузіць фільтр - + Manually banned IP addresses... Адрасы IP, забароненыя ўручную… - + Apply to trackers Ужываць да трэкераў - + Global Rate Limits Агульныя абмежаванні хуткасці - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s КБ/с - - + + Upload: Раздача: - - + + Download: Спампоўванне: - + Alternative Rate Limits Альтэрнатыўныя абмежаванні хуткасці - + Start time Час запуску - + End time Час заканчэння - + When: Калі: - + Every day Кожны дзень - + Weekdays Будні - + Weekends Выхадныя - + Rate Limits Settings Налады абмежавання хуткасці - + Apply rate limit to peers on LAN Ужываць абмежаванне хуткасці да лакальных піраў LAN - + Apply rate limit to transport overhead Ужываць абмежаванне хуткасці да службовага трафіку - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Ужываць абмежаванне хуткасці да пратаколу µTP - + Privacy Канфідэнцыйнасць - + Enable DHT (decentralized network) to find more peers Уключыць DHT (дэцэнтралізаваную сетку), каб знайсці больш піраў - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Абмен пірамі з сумяшчальны кліентамі Bittorrent (µTorrent, Vuze, …) - + Enable Peer Exchange (PeX) to find more peers Уключыць абмен пірамі (PeX), каб знайсці больш піраў - + Look for peers on your local network Шукаць піры ў лакальнай сетцы - + Enable Local Peer Discovery to find more peers Уключыць выяўленне лакальных піраў, каб знайсці больш піраў - + Encryption mode: Рэжым шыфравання: - + Require encryption Патрабаваць шыфраванне - + Disable encryption Адключыць шыфраванне - + Enable when using a proxy or a VPN connection Уключыць, калі выкарыстоўваюцца злучэнні проксі альбо VPN - + Enable anonymous mode Уключыць ананімны рэжым - + Maximum active downloads: Максімальная колькасць актыўных спампоўванняў: - + Maximum active uploads: Максімальная колькасць актыўных раздач: - + Maximum active torrents: Максімальная колькасць актыўных торэнтаў: - + Do not count slow torrents in these limits Не ўлічваць колькасць павольных торэнтаў у гэтых абмежаваннях - + Upload rate threshold: Абмежаванне хуткасці раздачы: - + Download rate threshold: Абмежаванне хуткасці спампоўвання: - - - - + + + + sec seconds с - + Torrent inactivity timer: Таймер неактыўнасці торэнта: - + then затым - + Use UPnP / NAT-PMP to forward the port from my router Выкарыстоўваць UPnP / NAT-PMP для перанакіравання порта ад майго маршрутызатара - + Certificate: Сертыфікат: - + Key: Ключ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Інфармацыя аб сертыфікатах</a> - + Change current password Змяніць бягучы пароль - - Use alternative Web UI - Выкарыстоўваць альтэрнатыўны вэб-інтэрфейс - - - + Files location: Размяшчэнне файла: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Спіс альтэрнатыўных вэб-інтэрфейсаў</a> + + + Security Бяспека - + Enable clickjacking protection - Enable clickjacking protection + Уключыць абарону ад клікджэкінга - + Enable Cross-Site Request Forgery (CSRF) protection Уключыць абарону ад падробкі міжсайтавых запытаў (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Уключыць праверку Host загалоўкаў - + Add custom HTTP headers Дадаць ўласныя загалоўкі HTTP - + Header: value pairs, one per line - Загаловак: пары значэньняў, па адной на радок + Загаловак: пары значэнняў, па адной на радок - + Enable reverse proxy support Уключыць падтрымку reverse proxy - + Trusted proxies list: Спіс давераных проксі: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Прыклады налад адваротнага проксі</a> + + + Service: Сэрвіс: - + Register Рэгістрацыя - + Domain name: Даменнае імя: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Пасля ўключэння гэтага параметру вы можаце <strong>незваротна страціць</strong> свае torrent-файлы! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Калі ўключыць другі параметр (&ldquo;У тым ліку, калі дадаванне скасоўваецца&rdquo;) файл .torrent <strong>будзе выдалены,</strong> нават, калі націснуць &ldquo;<strong>Скасаваць</strong>&rdquo; у дыялогавым акне &ldquo;Дадаць торэнт&rdquo; - + Select qBittorrent UI Theme file Выберыце файл тэмы qBittorrent - + Choose Alternative UI files location Выбраць альтэрнатыўнае размяшчэнне для файлаў інтэрфейсу - + Supported parameters (case sensitive): Параметры якія падтрымліваюцца (з улікам рэгістру): - + Minimized Згорнута - + Hidden Схавана - + Disabled due to failed to detect system tray presence - Disabled due to failed to detect system tray presence + Адключана, бо не ўдалося выявіць наяўнасць вобласці апавяшчэнняў - + No stop condition is set. Умова спынення не зададзена. - + Torrent will stop after metadata is received. Торэнт спыніцца пасля атрымання метаданых. - Torrents that have metadata initially aren't affected. - Торэнты, якія першапачаткова маюць метаданыя, не закранаюцца. - - - + Torrent will stop after files are initially checked. Торэнт спыніцца пасля першапачатковай праверкі файлаў. - + This will also download metadata if it wasn't there initially. Гэта таксама спампуе метаданыя, калі іх не было першапачаткова. - + %N: Torrent name %N: Назва торэнта - + %L: Category %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: Бягучы трэкер - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - Падказка: уключыце параметр у двукоссі каб пазбегнуць абразання на прабелах (напр. "%N") + Падказка: вазьміце параметр у двукоссі, каб пазбегнуць абразання на прабелах (напр. "%N") - + + Test email + Праверыць эл. пошту + + + + Attempted to send email. Check your inbox to confirm success + Выканана спроба адправіць электронны ліст. Праверце ўваходную пошту, каб упэўніцца ў паспяховасці + + + (None) (Няма) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds + Торэнт будзе лічыцца павольным, калі яго хуткасць спампоўвання або раздачы застаецца меншай за пазначанае значэнне на «Час бяздзейнасці торэнта» - + Certificate Сертыфікат - + Select certificate Выберыце сертыфікат - + Private key Закрыты ключ - + Select private key Выберыце закрыты ключ - + WebUI configuration failed. Reason: %1 + Не ўдалася канфігурацыя вэб-інтэрфейсу. Прычына: %1 + + + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 найлепш адпавядае цёмнай тэме Windows + + + + System + System default Qt style + Сістэма + + + + Let Qt decide the style for this system - - Select folder to monitor - Выбраць папку для наглядання + + Dark + Dark color scheme + Цёмная - + + Light + Light color scheme + Светлая + + + + System + System color scheme + Сістэма + + + + Select folder to monitor + Выберыце папку для назірання + + + Adding entry failed Няўдалае дадаванне запісу - + The WebUI username must be at least 3 characters long. Імя карыстальніка вэб-інтэрфейсу павінна змяшчаць не менш за 3 сімвалы. - + The WebUI password must be at least 6 characters long. Пароль вэб-інтэрфейсу павінен змяшчаць не менш за 6 сімвалаў. - + Location Error Памылка размяшчэння - - + + Choose export directory Выберыце каталог для экспарту - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Калі гэты параметр уключаны, qBittorrent будзе <strong>выдаляць</strong> файлы .torrent пасля іх паспяховага (першы параметр) або не (другі параметр) дадавання ў чаргу спампоўвання. Ужываецца <strong>не толькі</strong> да файлаў, якія адкрываюцца праз меню «Дадаць торэнт», але і да адкрытых праз <strong>суаднесеныя тыпы файлаў</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) - qBittorrent UI Theme file (*.qbtheme config.json) + Файл тэмы qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Тэгі (раздзеленыя коскай) - + %I: Info hash v1 (or '-' if unavailable) - %I: Info hash v1 (or '-' if unavailable) + %I: Хэш v1 (або '-' калі недаступна) - + %J: Info hash v2 (or '-' if unavailable) - %J: Info hash v2 (or '-' if unavailable) + %J: Хэш v2 (або '-' калі недаступна) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) + %K: Ідэнтыфікатар торэнта (хэш sha-1 для торэнта v1 або ўсечаны хэш sha-256 для торэнта v2/гібрыда) - - - + + + Choose a save directory Выберыце каталог для захавання - + Torrents that have metadata initially will be added as stopped. - + Торэнты, якія адпачатку ўтрымліваюць метаданыя, будуць дададзеныя як спыненыя. - + Choose an IP filter file Выберыце файл IP фільтраў - + All supported filters Усе фільтры, якія падтрымліваюцца - + The alternative WebUI files location cannot be blank. - + Размяшчэнне файлаў альтэрнатыўнага вэб-інтэрфейсу не можа быць пустым. - + 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 правілаў. - + Preferences Налады - + Time Error Памылка часу - + The start time and the end time can't be the same. Час пачатку і завяршэння не можа быць аднолькавым. - - + + Length Error Памылка памеру @@ -7335,243 +7753,248 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Невядомы - + Interested (local) and choked (peer) Зацікаўлены (лакальны) і заглухлы (пір) - + Interested (local) and unchoked (peer) Зацікаўлены (лакальны) і ажыўшы (пір) - + Interested (peer) and choked (local) Зацікаўлены (пір) і заглухлы (лакальны) - + Interested (peer) and unchoked (local) Зацікаўлены (пір) і ажыўшы (лакальны) - + Not interested (local) and unchoked (peer) Незацікаўлены (лакальны) і ажыўшы (пір) - + Not interested (peer) and unchoked (local) Незацікаўлены (пір) і ажыўшы (лакальны) - + Optimistic unchoke Аптымістычнае ажыўленне - + Peer snubbed Грэблівы пір - + Incoming connection Уваходнае злучэнне - + Peer from DHT Пір з DHT - + Peer from PEX Пір з PEX - + Peer from LSD Пір з LSD - + Encrypted traffic Шыфраваны трафік - + Encrypted handshake Шыфраванае рукапацісканне + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Краіна/рэгіён - + IP/Address IP/Адрас - + Port Порт - + Flags Сцяжкі - + Connection Злучэнне - + Client i.e.: Client application Кліент - + Peer ID Client i.e.: Client resolved from Peer ID - Peer ID Client + ID кліента - + 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. Рэлевантнасць - + Files i.e. files that are being downloaded right now Файлы - + Column visibility - Адлюстраванне калонак + Бачнасць калонак - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва - + Add peers... Дадаць піры... - - + + Adding peers Дадаванне піраў - + Some peers cannot be added. Check the Log for details. Некаторыя піры нельга дадаць. Праверце журнал, каб атрымаць больш інфармацыі. - + Peers are added to this torrent. - Peers are added to this torrent. + Піры дададзены да торэнта. - - + + Ban peer permanently Заблакіраваць пір назаўсёды - + Cannot add peers to a private torrent Немагчыма дадаць піры да прыватнага торэнта - + Cannot add peers when the torrent is checking - Cannot add peers when the torrent is checking + Нельга дадаваць піроў, пакуль торэнт правяраецца - + Cannot add peers when the torrent is queued - Cannot add peers when the torrent is queued + Нельга дадаваць піры, пакуль торэнт у чарзе - + No peer was selected - No peer was selected + Пір не выбраны - + Are you sure you want to permanently ban the selected peers? Сапраўды хочаце назаўсёды заблакіраваць выбраныя піры? - + Peer "%1" is manually banned - Peer "%1" is manually banned + Пір «%1» заблакіраваны ўручную - + N/A Н/Д - + Copy IP:port - Капіяваць IP:порт + Скапіяваць IP:порт @@ -7587,7 +8010,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Спіс піраў на дадаванне (адзін IP на радок ): - + Format: IPv4:port / [IPv6]:port Фармат: IPv4:port / [IPv6]:port @@ -7628,27 +8051,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Файлы ў гэтай частцы: - + File in this piece: Файл у гэтай частцы: - + File in these pieces: Файл у гэтых частках: - + Wait until metadata become available to see detailed information Пачакайце даступнасці метаданых, каб убачыць інфармацыю - + Hold Shift key for detailed information Утрымлівайце Shift для больш падрабязнай інфармацыі @@ -7661,58 +8084,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Пошукавыя плагіны - + Installed search plugins: Усталяваныя пошукавыя плагіны: - + Name Назва - + Version Версія - + Url Спасылка - - + + Enabled Уключаны - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Увага! Пераканайцеся, што ў вашай краіне спампоўванне торэнтаў праз гэтыя пошукавыя сістэмы не парушае законаў аб аўтарскім праве. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Тут можна знайсці новыя пошукавыя плагіны: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - Усталяваць новую + Усталяваць новы - + Check for updates Праверыць абнаўленні - + Close Закрыць - + Uninstall Выдаліць @@ -7740,7 +8163,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 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. Можна выдаліць толькі дададзеныя вамі. Гэтыя плагіны будуць адключаныя. @@ -7832,98 +8255,65 @@ Those plugins were disabled. Крыніца плагіна - + Search plugin source: Крыніца пошукавага плагіна: - + Local file Лакальны файл - + Web link Web-спасылка - - PowerManagement - - - qBittorrent is active - qBittorrent актыўны - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - Памылка кіраваньня энэрґаспажываньнем. Дзеяньне: %1. Памылка: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Нечаканая памылка кіраваньня энэрґаспажываньнем. Стан: %1. Памылка: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - The following files from torrent "%1" support previewing, please select one of them: + Наступныя файлы з торэнта «%1» падтрымліваюць перадпрагляд, пазначце адзін з іх: - + Preview Перадпрагляд - + Name Назва - + Size Памер - + Progress Ход выканання - + Preview impossible Перадпрагляд немагчымы - + Sorry, we can't preview this file: "%1". Папярэдні прагляд гэтага файла немагчымы: «%1». - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва @@ -7936,27 +8326,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Шлях не існуе - + Path does not point to a directory Шлях не паказвае на каталог - + Path does not point to a file Шлях не паказвае на файл - + Don't have read permission to path Няма правоў на чытанне ў гэтым размяшчэнні - + Don't have write permission to path Няма правоў на запіс у гэтым размяшчэнні @@ -7997,12 +8387,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Спампавана: - + Availability: Даступна: @@ -8017,55 +8407,55 @@ Those plugins were disabled. Перадача - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Час актыўнасці: - + ETA: Часу засталося: - + Uploaded: Раздадзена: - + Seeds: Сіды: - + Download Speed: Хуткасць спампоўвання: - + Upload Speed: Хуткасць раздачы: - + Peers: Піры: - + Download Limit: Абмежаванне спампоўвання: - + Upload Limit: Абмежаванне раздачы: - + Wasted: - Згублена: + Страчана: @@ -8073,193 +8463,220 @@ Those plugins were disabled. Злучэнні: - + Information Інфармацыя - + Info Hash v1: Хэш v1: - + Info Hash v2: Хэш v2: - + Comment: Каментарый: - + Select All - Вылучыць усё + Выбраць усе - + Select None - Зняць усё + Зняць выбар - + Share Ratio: Рэйтынг раздачы: - + Reannounce In: - Пераабвяшчэнне праз: + Паўторны анонс праз: - + Last Seen Complete: Апошняя поўная прысутнасць: - - Total Size: - Поўны памер: + + + Ratio / Time Active (in months), indicates how popular the torrent is + Рэйтынг/ час актыўнасці (у месяцах), паказвае папулярнасць торэнта - + + Popularity: + Папулярнасць: + + + + Total Size: + Агульны памер: + + + Pieces: Часткі: - + Created By: Створаны ў: - + Added On: Дададзены: - + Completed On: Завершаны: - + Created On: Створаны: - + + Private: + Прыватны: + + + Save Path: Шлях захавання: - + 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 (%2 за гэты сеанс) - - + + + N/A Н/Д - + + Yes + Так + + + + No + Не + + + %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) - - New Web seed - Новы вэб-сід + + Add web seed + Add HTTP source + Дадаць вэб-сід - - Remove Web seed - Выдаліць вэб-сід + + Add web seed: + Дадаць вэб-сід: - - Copy Web seed URL - Капіяваць адрас вэб-сіда + + + This web seed is already in the list. + Гэты вэб-сід ужо ў спісе. - - Edit Web seed URL - Змяніць адрас вэб-сіда - - - + Filter files... Фільтр файлаў... - + + Add web seed... + Дадаць вэб-сід... + + + + Remove web seed + Выдаліць вэб-сід + + + + Copy web seed URL + Скапіяваць адрас вэб-сіда + + + + Edit web seed URL... + Змяніць адрас вэб-сіда... + + + Speed graphs are disabled Вывад графіка хуткасці адключаны - + You can enable it in Advanced Options Можна ўключыць яго праз Пашыраныя параметры - - 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: Адрас вэб-раздачы: @@ -8267,33 +8684,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Памылковы фармат даных. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Не ўдалося захаваць у %1 даныя Аўтаспампоўвання з RSS. Памылка: %2 - + Invalid data format Памылковы фармат даных - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-артыкул «%1» прынятын правілам «%2». Спроба дадаць торэнт... - + Failed to read RSS AutoDownloader rules. %1 Не ўдалося прачытаць правілы Аўтаспампоўвання з RSS. Прычына: %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Не ўдалося загрузіць правілы Аўтаспампоўвання з RSS. Прычына: %1 @@ -8301,22 +8718,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Не ўдалося спампаваць RSS-канал з «%1». Прычына: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-канал з «%1» абноўлены. Новыя артыкулы: %2. - + Failed to parse RSS feed at '%1'. Reason: %2 Не ўдалося прааналізаваць RSS-канал з «%1». Прычына: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-канал з «%1» паспяхова загружаны. Запушчаны яе аналіз. @@ -8352,116 +8769,157 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Памылковы RSS-канал. - + %1 (line: %2, column: %3, offset: %4). - %1 (лінія: %2, слупок: %3, зрух: %4). + %1 (радок: %2, слупок: %3, зрух: %4). RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Не ўдалося захаваць канфігурацыю сеанса RSS. Файл: «%1». Памылка: «%2» - + Couldn't save RSS session data. File: "%1". Error: "%2" Не ўдалося захаваць даныя сеанса RSS. Файл: «%1». Памылка: «%2» - - + + RSS feed with given URL already exists: %1. RSS канал з зададзеным URL ужо існуе: %1. - + Feed doesn't exist: %1. Канал не існуе: %1. - + Cannot move root folder. Немагчыма перамясціць каранёвую папку. - - + + Item doesn't exist: %1. Элемент не існуе: %1. - - Couldn't move folder into itself. - Немагчыма перамясціць папку саму ў сябе. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Немагчыма выдаліць каранёвую папку. - + Failed to read RSS session data. %1 Не ўдалося прачытаць даныя RSS-сеанса. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Не ўдалося прааналізаваць даныя сеанса RSS. Файл: «%1». Памылка: «%2» - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Не ўдалося загрузіць даныя сеанса RSS. Файл: «%1». Памылка: «памылковы фармат даных» - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Не ўдалося загрузіць RSS-канал. Канал: «%1». Прычына: патрабуецца URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Не ўдалося загрузіць RSS-канал. Канал: «%1». Прычына: памылковы UID. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Выяўлены дублікат RSS-канала. UID: «%1». Памылка: здаецца, канфігурацыя пашкоджаная. - + Couldn't load RSS item. Item: "%1". Invalid data format. Не ўдалося загрузіць RSS-элемент. Элемент: «%1». Памылковы фармат даных. - + Corrupted RSS list, not loading it. Пашкоджаны спіс RSS, ён не будзе загружаны. - + Incorrect RSS Item path: %1. Няправільны шлях RSS элемента: %1. - + RSS item with given path already exists: %1. RSS элемент з такім шляхам ужо існуе: %1. - + Parent folder doesn't exist: %1. Бацькоўская папка не існуе: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Канал не існуе: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Адрас: + + + + Refresh interval: + Інтэрвал абнаўлення: + + + + sec + с + + + + Default + Прадвызначана + + RSSWidget @@ -8472,7 +8930,7 @@ Those plugins were disabled. Fetching of RSS feeds is disabled now! You can enable it in application settings. - Загрузка RSS зараз адключана! Вы можаце ўключыць гэта ў наладах праграмы. + Атрыманне RSS-каналаў адключана! Вы можаце ўключыць яго ў наладах праграмы. @@ -8481,8 +8939,8 @@ Those plugins were disabled. - - + + Mark items read Пазначыць элементы як прачытаныя @@ -8507,132 +8965,115 @@ Those plugins were disabled. Торэнты: (падвойнае націсканне, каб спампаваць) - - + + Delete Выдаліць - + Rename... Перайменаваць... - + Rename Перайменаваць - - + + Update Абнавіць - + New subscription... Новая падпіска... - - + + Update all feeds Абнавіць усе каналы - + Download torrent Спампаваць торэнт - + Open news URL Адкрыць спасылку навін - + Copy feed URL - Капіяваць спасылку канала + Скапіяваць спасылку канала - + New folder... Новая папка... - - Edit feed URL... - Змяніць URL канала... + + Feed options... + - - Edit feed URL - Змяніць URL канала - - - + Please choose a folder name Выберыце назву папкі - + Folder name: Назва папкі: - + New folder Новая папка - - - Please type a RSS feed URL - Увядзіце адрас RSS-канала - - - - - Feed URL: - Адрас канала: - - - + 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: Новае імя канала: - + Rename failed Памылка перайменавання - + Date: Дата: - + Feed: Канал: - + Author: Аўтар: @@ -8640,38 +9081,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Для выкарыстання пошукавай сістэмы патрабуецца Python. - + Unable to create more than %1 concurrent searches. - Unable to create more than %1 concurrent searches. + Немагчыма адначасова стварыць больш за %1 пошукавых запытаў. - - + + Offset is out of range - Offset is out of range + Зрух па-за межамі дыяпазону - + All plugins are already up to date. Усе вашы плагіны ўжо абноўлены. - + Updating %1 plugins - Абнаўленне %1 плагіна(ў) + Абнаўленне %1 плагінаў - + Updating plugin %1 Абнаўленне плагіна %1 - + Failed to check for plugin updates: %1 Не атрымалася праверыць абнаўленні плагіна: %1 @@ -8691,7 +9132,7 @@ Those plugins were disabled. <html><head/><body><p>Some search engines search in torrent description and in torrent file names too. Whether such results will be shown in the list below is controlled by this mode.</p><p><span style=" font-weight:600;">Everywhere </span>disables filtering and shows everything returned by the search engines.</p><p><span style=" font-weight:600;">Torrent names only</span> shows only torrents whose names match the search query.</p></body></html> - <html><head/><body><p>Some search engines search in torrent description and in torrent file names too. Whether such results will be shown in the list below is controlled by this mode.</p><p><span style=" font-weight:600;">Everywhere </span>disables filtering and shows everything returned by the search engines.</p><p><span style=" font-weight:600;">Torrent names only</span> shows only torrents whose names match the search query.</p></body></html> + @@ -8746,132 +9187,142 @@ Those plugins were disabled. Памер: - + 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 - Пошукавая сістэма - - - + Filter search results... Фільтраваць вынікі пошуку... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Вынікі (паказваюцца <i>%1</i> з <i>%2</i>): - + Torrent names only Толькі назвы торэнтаў - + Everywhere Усюды - + Use regular expressions Выкарыстоўваць рэгулярныя выразы - + Open download window Адкрыць акно спампоўвання - + Download Спампаваць - + Open description page Адкрыць старонку з апісаннем - + Copy - Капіяваць + Скапіяваць - + Name Назву - + Download link Спасылку спампоўвання - + Description page URL URL старонкі з апісаннем - + Searching... Ідзе пошук... - + Search has finished - Пошук скончаны + Пошук завершаны - + Search aborted Пошук перарваны - + An error occurred during search... Падчас пошуку ўзнікла памылка... - + Search returned no results Пошук не даў вынікаў - + + Engine + Пошукавая сістэма + + + + Engine URL + Адрас пошукавай сістэмы + + + + Published On + Апублікавана + + + Column visibility - Адлюстраванне слупкоў + Бачнасць калонак - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва @@ -8879,104 +9330,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Невядомы фармат файла пошукавга плагіна. - + Plugin already at version %1, which is greater than %2 Версія плагіна %1 ўжо вышэй за версію %2 - + A more recent version of this plugin is already installed. Ужо ўсталявана больш новая версія плагіна. - + Plugin %1 is not supported. Плагін %1 не падтрымліваецца. - - + + Plugin is not supported. Плагін не падтрымліваецца. - + Plugin %1 has been successfully updated. Плагін %1 паспяхова абноўлены. - + All categories Усе катэгорыі - + Movies Фільмы - + TV shows Тэлеперадачы - + Music Музыка - + Games Гульні - + Anime Анімэ - + Software - Праґрамнае забесьпячэньне + Праграмнае забеспячэнне - + Pictures Выявы - + Books Кнігі - + Update server is temporarily unavailable. %1 Сервер абнаўленняў часова недаступны. %1 - - + + Failed to download the plugin file. %1 Памылка загрузкі файла плагіна. %1 - + Plugin "%1" is outdated, updating to version %2 Плагін «%1» састарэў, абнаўленне да версіі %2 - + Incorrect update info received for %1 out of %2 plugins. - Incorrect update info received for %1 out of %2 plugins. + - + Search plugin '%1' contains invalid version string ('%2') Пошукавы плагін «%1» змяшчае памылковы радок версіі («%2») @@ -8986,114 +9437,145 @@ Those plugins were disabled. - - - - Search Пошук - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - Адсутнічаюць усталяваныя пошукавыя плагіны -Націсніце "Пошукавыя плагіны..." у ніжняй правай частцы акна для ўсталявання. + Пошукавыя плагіны не ўсталяваны. +Націсніце «Пошукавыя плагіны...» у ніжняй правай частцы акна, каб ўсталяваць. - + Search plugins... Пошукавыя плагіны... - + A phrase to search for. Фраза для пошуку. - + Spaces in a search term may be protected by double quotes. Прабелы ў пошукавым запыце могуць быць абаронены двукоссямі. - + Example: Search phrase example Узор: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: пошук для <b>foo bar</b> - + All plugins Усе плагіны - + Only enabled Толькі ўключаныя - + + + Invalid data format. + Памылковы фармат даных. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: пошук для <b>foo</b> і <b>bar</b> - + + Refresh + Абнавіць + + + Close tab Закрыць укладку - + Close all tabs Закрыць усе ўкладкі - + Select... Выберыце… - - - + + Search Engine Пошукавая сістэма - + + Please install Python to use the Search Engine. Каб выкарыстоўваць пошукавую сістэму, усталюйце Python. - + Empty search pattern Ачысціць шаблон пошуку - + Please type a search pattern first Спачатку ўвядзіце шаблон пошуку - + + Stop Стоп + + + SearchWidget::DataStorage - - Search has finished - Пошук скончаны + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Памылка пошуку + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Не ўдалося захаваць вынікі пошуку. Укладка: «%1». Файл: «%2». Памылка: «%3» + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + Не ўдалося захаваць гісторыю пошуку. Файл: «%1». Памылка: «%2» @@ -9101,7 +9583,7 @@ Click the "Search plugins..." button at the bottom right of the window Detected unclean program exit. Using fallback file to restore settings: %1 - Detected unclean program exit. Using fallback file to restore settings: %1 + Выяўлены некарэктны выхад з праграмы. Выкарыстанне рэзервовага файла для аднаўлення налад: %1 @@ -9144,7 +9626,7 @@ Click the "Search plugins..." button at the bottom right of the window The computer is going to shutdown. - Камп'ютар завершыць працу. + Камп’ютар будзе выключаны. @@ -9174,17 +9656,17 @@ Click the "Search plugins..." button at the bottom right of the window The computer is going to enter hibernation mode. - Камп'ютар будзе ўсыплёны. + Камп'ютар будзе пераведзены ў рэжым гібернацыі. &Hibernate Now - &Усыпіць цяпер + Перавесці ў &гібернацыю Hibernate confirmation - Пацвярджэнне ўсыплення + Пацвярджэнне пераходу ў рэжым гібернацыі @@ -9206,34 +9688,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Раздача: - - - + + + - - - + + + KiB/s КБ/с - - + + Download: Спампоўванне: - + Alternative speed limits Альтэрнатыўныя абмежаванні хуткасці @@ -9243,12 +9725,12 @@ Click the "Search plugins..." button at the bottom right of the window Total Upload - Усяго раздадзена + Раздадзена агулам Total Download - Усяго спампавана + Спампавана агулам @@ -9321,12 +9803,12 @@ Click the "Search plugins..." button at the bottom right of the window Select Graphs - Выбраць графікі + Выбар графікаў Total Upload - Усяго раздадзена + Раздадзена агулам @@ -9346,7 +9828,7 @@ Click the "Search plugins..." button at the bottom right of the window Total Download - Усяго спампавана + Спампавана агулам @@ -9425,32 +9907,32 @@ Click the "Search plugins..." button at the bottom right of the window Сярэдні час прастою ў чарзе: - + Connected peers: Падлучаныя піры: - + All-time share ratio: Агульны рэйтынг раздачы: - + All-time download: Спампавана за ўвесь час: - + Session waste: - Згублена за севнс: + Страчана за сеанс: - + All-time upload: Раздадзена за ўвесь час: - + Total buffer size: Агульны памер буфера: @@ -9465,12 +9947,12 @@ Click the "Search plugins..." button at the bottom right of the window Аперацый уводу/вываду ў чарзе: - + Write cache overload: Перагрузка кэшу запісу: - + Read cache overload: Перагрузка кэшу чытання: @@ -9489,51 +9971,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Стан злучэння: - - + + No direct connections. This may indicate network configuration problems. Няма прамых злучэнняў. Гэта можа сведчыць аб праблемах канфігурацыі сеткі. - - + + Free space: N/A + + + + + + External IP: N/A + Знешні IP: Н/Д + + + + DHT: %1 nodes DHT: %1 вузлоў - + qBittorrent needs to be restarted! qBittorrent неабходна перазапусціць! - - - + + + Connection Status: Стан злучэння: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Адлучаны ад сеткі. Звычайна гэта значыць, што qBittorrent не змог праслухаць порт на ўваходныя злучэнні. - + Online У сетцы - + + Free space: + + + + + External IPs: %1, %2 + Знешнія IP: %1, %2 + + + + External IP: %1%2 + Знешні IP: %1%2 + + + Click to switch to alternative speed limits Націсніце для пераключэння на альтэрнатыўныя абмежаванні хуткасці - + Click to switch to regular speed limits Націсніце для пераключэння на звычайныя абмежаванні хуткасці @@ -9563,13 +10071,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Узноўленыя (0) + Running (0) + Запушчаны (0) - Paused (0) - Спыненыя (0) + Stopped (0) + Спынены (0) @@ -9631,36 +10139,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Завершаныя (%1) + + + Running (%1) + Запушчаны (%1) + - Paused (%1) - Спыненыя (%1) + Stopped (%1) + Спынены (%1) + + + + Start torrents + Запусціць торэнты + + + + Stop torrents + Спыніць торэнты Moving (%1) Перамяшчаецца (%1) - - - Resume torrents - Узнавіць торэнты - - - - Pause torrents - Спыніць торэнты - Remove torrents Выдаліць торэнты - - - Resumed (%1) - Узноўленыя (%1) - Active (%1) @@ -9732,31 +10240,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Выдаліць пустыя тэгі - - - Resume torrents - Узнавіць торэнты - - - - Pause torrents - Спыніць торэнты - Remove torrents Выдаліць торэнты - - New Tag - Новы тэг + + Start torrents + Запусціць торэнты + + + + Stop torrents + Спыніць торэнты Tag: Тэг: + + + Add tag + Дадаць тэг + Invalid tag name @@ -9828,7 +10336,7 @@ Click the "Search plugins..." button at the bottom right of the window Choose save path - Пазначце шлях захавання + Выберыце шлях захавання @@ -9897,38 +10405,38 @@ Please choose a different name and try again. Mixed Mixed (priorities) - Змешаны + Змяшаны TorrentContentModel - + Name Назва - + Progress Ход выканання - + Download Priority Прыярытэт спампоўвання - + Remaining Засталося - + Availability Даступнасць - + Total Size Агульны памер @@ -9939,7 +10447,7 @@ Please choose a different name and try again. Mixed Mixed (priorities - Змешаны + Змяшаны @@ -9973,98 +10481,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Памылка перайменавання - + Renaming Перайменаванне - + New name: Новая назва: - + Column visibility - Адлюстраванне слупкоў + Бачнасць калонак - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва - + Open Адкрыць - + Open containing folder Адкрыць папку з файлам - + Rename... Перайменаваць... - + Priority Прыярытэт - - + + Do not download Не спампоўваць - + Normal Звычайны - + High Высокі - + Maximum Максімальны - + By shown file order Па паказаным парадку файлаў - + Normal priority Нармальны прыярытэт - + High priority Высокі прыярытэт - + Maximum priority Максімальны прыярытэт - + Priority by shown file order Прыярытэт па паказаным парадку файлаў @@ -10072,19 +10580,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Занадта шмат актыўных заданняў - + Torrent creation is still unfinished. - + Стварэнне торэнта яшчэ не завершана. - + Torrent creation failed. - + Не ўдалося стварыць торэнт. @@ -10092,7 +10600,7 @@ Please choose a different name and try again. Torrent Creator - Стваральнік торэнта + Стварэнне торэнта @@ -10111,13 +10619,13 @@ Please choose a different name and try again. - + Select file Выбраць файл - + Select folder Выбраць папку @@ -10134,7 +10642,7 @@ Please choose a different name and try again. Hybrid - Hybrid + @@ -10192,87 +10700,83 @@ Please choose a different name and try again. Палі - + You can separate tracker tiers / groups with an empty line. Выкарыстоўвайце пустыя радкі для падзелу груп трэкераў. - + Web seed URLs: Адрасы вэб-сідаў: - + Tracker URLs: Адрасы трэкераў: - + Comments: Каментарыі: - + Source: Крыніца: - + Progress: Ход выканання: - + Create Torrent Стварыць торэнт - - + + Torrent creation failed Памылка стварэння торэнта - + Reason: Path to file/folder is not readable. Прычына: Шлях да файла/папкі немагчыма прачытаць. - + Select where to save the new torrent Выберыце новае месца для захавання торэнта - + Torrent Files (*.torrent) Торэнт-файлы (*.torrent) - Reason: %1 - Прычына: %1 - - - + Add torrent to transfer list failed. Не ўдалося дадаць торэнт у спіс. - + Reason: "%1" Прычына: «%1» - + Add torrent failed Не ўдалося дадаць торэнт - + Torrent creator - Стваральнік торэнта + Стварэнне торэнта - + Torrent created: Торэнт створаны: @@ -10280,77 +10784,64 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - Не ўдалося загрузіць канфігурацыю каталогаў, за якімі сачыць. %1 + Не ўдалося загрузіць канфігурацыю папак, за якімі трэба сачыць. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - Не ўдалося прааналізаваць канфігурацыю каталогаў, за якімі сачыць з %1. Памылка: %2 + Не ўдалося прааналізаваць канфігурацыю папак, за якімі трэба сачыць з %1. Памылка: %2 - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - Не ўдалося загрузіць з %1 канфігурацыю каталогаў, за якімі сачыць. Памылка: «Памылковы фармат даных». + Не ўдалося загрузіць з %1 канфігурацыю папак, за якімі трэба сачыць. Памылка: «Памылковы фармат даных». - + Couldn't store Watched Folders configuration to %1. Error: %2 - Не ўдалося захаваць у %1 канфігурацыю каталогаў, за якімі сачыць. Памылка: %2 + Не ўдалося захаваць у %1 канфігурацыю папак, за якімі трэба сачыць. Памылка: %2 - + Watched folder Path cannot be empty. - Шлях каталога, за якім трэба сачыць, не можа быць пустым. + Шлях папкі, за якой трэба сачыць, не можа быць пустым. - + Watched folder Path cannot be relative. - Шлях каталога, за якім трэба сачыць, не можа быць адносным. + Шлях папкі, за якой трэба сачыць, не можа быць адносным. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Памылковая magnet-спасылка. Спасылка: %1. Прычына: %2. - + Magnet file too big. File: %1 Magnet-файл занадта вялікі. Файл: %1 - + Failed to open magnet file: %1 Не ўдалося адкрыць magnet-файл: %1 - + Rejecting failed torrent file: %1 - Rejecting failed torrent file: %1 + - + Watching folder: "%1" Назіранне за папкай: «%1» - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Не ўдалося размеркаваць памяць падчас чытання файла. Файл: «%1». Памылка: «%2» - - - - Invalid metadata - Памылковыя метаданыя - - TorrentOptionsDialog @@ -10379,175 +10870,163 @@ Please choose a different name and try again. Выкарыстоўваць іншы шлях для незавершанага торэнта - + Category: Катэгорыя: - - Torrent speed limits - Абмежаванні хуткасці торэнта + + Torrent Share Limits + Абмежаванні раздачы торэнта - + Download: Спампоўванне: - - + + - - + + Torrent Speed Limits + Абмежаванні хуткасці торэнта + + + + KiB/s КБ/с - + These will not exceed the global limits - These will not exceed the global limits + Гэтыя абмежаванні не перавысяць агульныя - + Upload: Раздача: - - Torrent share limits - Абмежаванні раздачы торэнта - - - - Use global share limit - Выкарыстоўваць глабальнае абмежаванне раздачы - - - - Set no share limit - Прыбраць абмежаванне раздачы - - - - Set share limit to - Задаць абмежаванне раздачы - - - - ratio - рэйтынг - - - - total minutes - хвілін агулам - - - - inactive minutes - хвілін неактыўных - - - + Disable DHT for this torrent Адключыць для гэтага торэнта DHT - + Download in sequential order Спампоўваць паслядоўна - + Disable PeX for this torrent Адключыць для гэтага торэнта PeX - + Download first and last pieces first Спачатку пампаваць першую і апошнюю часткі - + Disable LSD for this torrent Адключыць для гэтага торэнта LSD - + Currently used categories Бягучыя выкарыстаныя катэгорыі - - + + Choose save path - Пазначце шлях захавання + Выберыце шлях захавання - + Not applicable to private torrents Немагчыма ўжыць да прыватных торэнтаў - - - No share limit method selected - Не абраны спосаб абмежавання раздачы - - - - Please select a limit method first - Выберыце спачатку спосаб абмежавання - TorrentShareLimitsWidget - - - + + + + Default - Па змаўчанні + Па змаўчанні + + + + + + Unlimited + Неабмежавана - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Задаць на + + + + Seeding time: + Час раздачы: + + + + + + + + min minutes - хв +  хв - + Inactive seeding time: - + Час неактыўнай раздачы: - + + Action when the limit is reached: + Дзеянне пры дасягненні абмежавання: + + + + Stop torrent + Спыніць торэнт + + + + Remove torrent + Выдаліць торэнт + + + + Remove torrent and its content + Выдаліць торэнт і яго змесціва + + + + Enable super seeding for torrent + Уключыць для торэнта рэжым суперраздачы + + + Ratio: - + Рэйтынг: @@ -10558,32 +11037,32 @@ Please choose a different name and try again. Тэгі торэнта - - New Tag - Новы тэг + + Add tag + Дадаць тэг - + Tag: Тэг: - + Invalid tag name Памылковая назва тэга - + Tag name '%1' is invalid. - Памылковая назва тэга «%1». + Недапушчальная назва тэга «%1». - + Tag exists Тэг існуе - + Tag name already exists. Назва тэга ўжо існуе. @@ -10591,115 +11070,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Памылка: «%1» гэта памылковы торэнт-файл. - + Priority must be an integer - Priority must be an integer + Прыярытэт павінен быць цэлым лікам - + Priority is not valid - Priority is not valid + Недапушчальны прыярытэт - + Torrent's metadata has not yet downloaded - Torrent's metadata has not yet downloaded + Метаданыя торэнта яшчэ не спампаваны - + File IDs must be integers - File IDs must be integers + Ідэнтыфікатары файлаў павінны быць цэлымі лікамі - + File ID is not valid - File ID is not valid + Няправільны ідэнтыфікатар файла - - - - + + + + Torrent queueing must be enabled - Torrent queueing must be enabled + - - + + Save path cannot be empty Шлях захавання не можа быць пустым - - + + Cannot create target directory Немагчыма стварыць каталог прызначэння - - + + Category cannot be empty Катэгорыя не можа быць пустой - + Unable to create category Не атрымалася стварыць катэгорыю - + Unable to edit category Не атрымалася змяніць катэгорыю - + Unable to export torrent file. Error: %1 Немагчыма экспартаваць torrent-файл. Памылка: %1 - + Cannot make save path Не атрымалася стварыць шлях захавання - + + "%1" is not a valid URL + «%1» — няправільны URL-адрас + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Параметр «sort» памылковы - + + "%1" is not an existing URL + «%1» — URL-адрас не існуе + + + "%1" is not a valid file index. - "%1" is not a valid file index. + «%1» — няправільны індэкс файла. - + Index %1 is out of bounds. - Index %1 is out of bounds. + Індэкс %1 па-за дапушчальнымі межамі. - - + + Cannot write to directory Запіс у каталог немагчымы - + WebUI Set location: moving "%1", from "%2" to "%3" Вэб-інтэрфейс, перамяшчэнне: «%1» перамяшчаецца з «%2» у «%3» - + Incorrect torrent name Няправільная назва торэнта - - + + Incorrect category name Няправільная назва катэгорыі @@ -10719,209 +11213,204 @@ Please choose a different name and try again. - All trackers within the same group will belong to the same tier. - The group on top will be tier 0, the next group tier 1 and so on. - Below will show the common subset of trackers of the selected torrents. - One tracker URL per line. + Адзін адрас трэкера на радок. -- You can split the trackers into groups by inserting blank lines. -- All trackers within the same group will belong to the same tier. -- The group on top will be tier 0, the next group tier 1 and so on. -- Below will show the common subset of trackers of the selected torrents. +- Пустымі радкамі можна раздзяляць трэкеры на групы. +- Усе трэкеры з адной групы належаць да аднаго ўзроўню. +- Група зверху належыць да ўзроўню 0, наступная група - да ўзроўню 1 і гэтак далей.. +- Ніжэй будзе паказана агульнае падмноства трэкераў для выбраных торэнтаў. TrackerListModel - + Working Працуе - + Disabled Адключана - + Disabled for this torrent Адключана для гэтага торэнта - + This torrent is private Гэты торэнт прыватны - + N/A Н/Д - + Updating... Абнаўленне... - + Not working Не працуе - + Tracker error Памылка трэкера - + Unreachable Недаступны - + Not contacted yet Пакуль не звязаўся - - Invalid status! + + Invalid state! Памылковы стан! - - URL/Announce endpoint - + + URL/Announce Endpoint + Атрымальнік спасылкі/анонса - + + BT Protocol + Пратакол BT + + + + Next Announce + Наступны анонс + + + + Min Announce + Мінімум анонса + + + Tier Узровень - - Protocol - Пратакол - - - + Status Стан - + Peers Піры - + Seeds Сіды - + Leeches Лічы - + Times Downloaded Усяго спампавана - + Message Паведамленне - - - Next announce - - - - - Min announce - - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Гэты торэнт прыватны - + Tracker editing Рэдагаванне трэкера - + Tracker URL: Адрас трэкера: - - + + Tracker editing failed Рэдагаванне трэкера не ўдалося - + The tracker URL entered is invalid. Уведзены адрас трэкера памылковы. - + The tracker URL already exists. Такі адрас трэкера ўжо існуе. - + Edit tracker URL... Рэдагаваць адрас трэкера... - + Remove tracker Выдаліць трэкер - + Copy tracker URL - Капіяваць адрас трэкера + Скапіяваць адрас трэкера - + Force reannounce to selected trackers Пераанансаваць на выбраныя трэкеры - + Force reannounce to all trackers Пераанансаваць на ўсе трэкеры - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва - + Add trackers... Дадаць трэкеры... - + Column visibility - Адлюстраванне слупкоў + Бачнасць калонак @@ -10934,40 +11423,40 @@ Please choose a different name and try again. List of trackers to add (one per line): - Спіс трэкераў для дадання (па аднаму на радок): + Спіс трэкераў для дадавання (па аднаму на радок): - + µTorrent compatible list URL: - Адрас сумяшчальнага з µTorrent спісу: + Адрас сумяшчальнага з µTorrent спіса: - + Download trackers list Спампаваць спіс трэкераў - + Add Дадаць - + Trackers list URL error - Trackers list URL error + Памылка URL-адраса спіса трэкераў - + The trackers list URL cannot be empty - The trackers list URL cannot be empty + URL-адрас спіса трэкераў не можа быць пустым - + Download trackers list error Памылка спампоўвання спіса трэкераў - + Error occurred when downloading the trackers list. Reason: "%1" Падчас спампоўвання спіса трэкераў адбылася памылка. Прычына «%1» @@ -10975,62 +11464,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) З папярэджаннямі (%1) - + Trackerless (%1) Без трэкера (%1) - + Tracker error (%1) Памылка трэкера (%1) - + Other error (%1) Іншая памылка (%1) - + Remove tracker Выдаліць трэкер - - Resume torrents - Узнавіць торэнты + + Start torrents + Запусціць торэнты - - Pause torrents + + Stop torrents Спыніць торэнты - + Remove torrents Выдаліць торэнты - + Removal confirmation Пацвярджэнне выдалення - + Are you sure you want to remove tracker "%1" from all torrents? Сапраўды выдаліць трэкер «%1» з усіх торэнтаў? - + Don't ask me again. Больш не пытаць. - + All (%1) this is for the tracker filter Усе (%1) @@ -11039,7 +11528,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument «mode»: памылковы аргумент @@ -11131,11 +11620,6 @@ Please choose a different name and try again. 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. Праверка даных узнаўлення - - - Paused - Прыпынены - Completed @@ -11159,220 +11643,252 @@ Please choose a different name and try again. З памылкамі - + Name i.e: torrent name Назва - + Size i.e: torrent size Памер - + Progress % Done Ход выканання - + + Stopped + Спынена + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Стан - + Seeds i.e. full sources (often untranslated) Сіды - + Peers i.e. partial sources (often untranslated) Піры - + Down Speed i.e: Download speed Спампоўванне - + Up Speed i.e: Upload speed Раздача - + Ratio Share ratio Рэйтынг - + + Popularity + Папулярнасць + + + ETA i.e: Estimated Time of Arrival / Time left Час - + Category Катэгорыя - + Tags Тэгі - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Дададзены - + Completed On Torrent was completed on 01/01/2010 08:00 Завершаны - + Tracker Трэкер - + Down Limit i.e: Download limit Абмеж. спампоўвання - + Up Limit i.e: Upload limit Абмеж. раздачы - + Downloaded Amount of data downloaded (e.g. in MB) Спампавана - + Uploaded Amount of data uploaded (e.g. in MB) Раздадзена - + 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) Раздадзена за сеанс - + Remaining Amount of data left to download (e.g. in MB) Засталося - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Час актыўнасці - + + Yes + Так + + + + No + Не + + + Save Path Torrent save path Шлях захавання - + Incomplete Save Path Torrent incomplete save path Шлях захавання для незавершаных - + Completed Amount of data completed (e.g. in MB) Завершана - + Ratio Limit Upload share ratio limit Абмеж. рэйтынгу - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Апошняя поўная прысутнасць - + Last Activity Time passed since a chunk was downloaded/uploaded Актыўнасць - + Total Size i.e. Size including unwanted data Агульны памер - + Availability The number of distributed copies of the torrent Даступнасць - + Info Hash v1 i.e: torrent info hash v1 - Інфармацыйны хэш v1 + Хэш v1 - + Info Hash v2 i.e: torrent info hash v2 - Інфармацыйны хэш v2 + Хэш v2 - + Reannounce In Indicates the time until next trackers reannounce - + Паўторны анонс праз - - + + Private + Flags private torrents + Прыватны + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Рэйтынг/ час актыўнасці (у месяцах), паказвае папулярнасць торэнта + + + + + N/A Н/Д - + %1 ago e.g.: 1h 20m ago - %1 таму + %1 таму - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (раздаецца %2) @@ -11381,339 +11897,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility - Адлюстраванне калонак + Бачнасць калонак - + Recheck confirmation Пацвярджэнне пераправеркі - + Are you sure you want to recheck the selected torrent(s)? Сапраўды хочаце пераправерыць выбраныя торэнты? - + Rename Перайменаваць - + New name: Новая назва: - + Choose save path - Пазначце шлях захавання + Выберыце шлях захавання - - Confirm pause - Пацвердзіць спыненне - - - - Would you like to pause all torrents? - Сапраўды спыніць усе торэнты? - - - - Confirm resume - Пацвердзіць узнаўленне - - - - Would you like to resume all torrents? - Сапраўды ўзнавіць усе торэнты? - - - + Unable to preview Немагчыма праглядзець - + The selected torrent "%1" does not contain previewable files Выбраны торэнт «%1» не змяшчае файлаў, якія можна праглядаць - + Resize columns - Змяніць памер калонак + Дапасаваць памер калонак - + Resize all non-hidden columns to the size of their contents Змяніць памер усіх несхаваных калонак да памеру іх змесціва - + Enable automatic torrent management Уключыць аўтаматычнае кіраванне торэнтамі - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Сапраўды хочаце ўключыць аўтаматычнае кіраванне для выбраных торэнтаў? Яны могуць перамясціцца. - - Add Tags - Дадаць тэгі - - - + Choose folder to save exported .torrent files Выберыце папку, каб захаваць экспартаваныя файлы .torrent - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Не ўдалося экспартаваць файл .torrent. торэнт: «%1». Шлях захавання: «%2». Прычына: «%3» - + A file with the same name already exists Файл з такім імем ужо існуе - + Export .torrent file error Памылка экспартавання файла .torrent - + Remove All Tags Выдаліць усе тэгі - + Remove all tags from selected torrents? Выдаліць усе тэгі для выбраных торэнтаў? - + Comma-separated tags: Тэгі, падзеленыя коскай: - + Invalid tag Памылковы тэг - + Tag name: '%1' is invalid Назва тэга: «%1» памылкова - - &Resume - Resume/start the torrent - &Узнавіць - - - - &Pause - Pause the torrent - &Спыніць - - - - Force Resu&me - Force Resume/start the torrent - Узнавіць &прымусова - - - + Pre&view file... П&ерадпрагляд файла... - + Torrent &options... &Параметры торэнта... - + Open destination &folder Адкрыць папку &прызначэння - + Move &up i.e. move up in the queue Перамясціць &вышэй - + Move &down i.e. Move down in the queue Перамясціць &ніжэй - + Move to &top i.e. Move to top of the queue У самы в&ерх - + Move to &bottom i.e. Move to bottom of the queue У самы н&із - + Set loc&ation... Задаць раз&мяшчэнне... - + Force rec&heck Пера&праверыць прымусова - + Force r&eannounce Пера&анансаваць прымусова - + &Magnet link Magnet-&спасылка - + Torrent &ID ID &торэнта - + &Comment - + &Каментарый - + &Name &Назва - + Info &hash v1 - Інфармацыйны &хэш v1 + &Хэш v1 - + Info h&ash v2 - Інфармацыйны х&эш v2 + Х&эш v2 - + Re&name... Пера&йменаваць... - + Edit trac&kers... Рэдагаваць трэ&керы... - + E&xport .torrent... Э&кспартаваць .torrent - + Categor&y Катэгор&ыя - + &New... New category... &Новая... - + &Reset Reset category &Скінуць - + Ta&gs Тэ&гі - + &Add... Add / assign multiple tags... &Дадаць... - + &Remove All Remove all tags &Выдаліць усе - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Нельга прымусова пераанансаваць, калі торэнт спынены, у чарзе, з памылкай або правяраецца + + + &Queue &Чарга - + &Copy - &Капіяваць + С&капіяваць - + Exported torrent is not necessarily the same as the imported Экспартаваны торэнт не павінен абавязкова супадаць з імпартаваным - + Download in sequential order Спампоўваць паслядоўна - + + Add tags + Дадаць тэгі + + + Errors occurred when exporting .torrent files. Check execution log for details. Адбылася памылка пры экспартаванні файлаў .torrent. Праверце журнал выканання праграмы, каб паглядзець звесткі. - + + &Start + Resume/start the torrent + Зап&усціць + + + + Sto&p + Stop the torrent + &Спыніць + + + + Force Star&t + Force Resume/start the torrent + Запусціць &прымусова + + + &Remove Remove the torrent &Выдаліць - + Download first and last pieces first Спачатку пампаваць першую і апошнюю часткі - + Automatic Torrent Management Аўтаматычнае кіраванне - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Аўтаматычны рэжым азначае, што пэўныя ўласцівасці торэнта (напр. шлях захавання) вызначаюцца ў залежнасці ад катэгорыі - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Рэжым суперраздачы @@ -11758,28 +12254,28 @@ Please choose a different name and try again. ID значка - + UI Theme Configuration. Канфігурацыя тэмы інтэрфейсу. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Не ўдалося цалкам ужыць змены тэмы абалонкі. Падрабязнасці можна знайсці ў журнале. - + Couldn't save UI Theme configuration. Reason: %1 Не ўдалося захаваць канфігурацыю тэмы. Прычына: %1 - - + + Couldn't remove icon file. File: %1. Не ўдалося выдаліць файл значка. Файл: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Не ўдалося скапіяваць файл значка. Крыніца: %1. Месца прызначэння: %2. @@ -11787,7 +12283,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Не ўдалося задаць стыль праграмы. Невядомы стыль: «%1» + + + Failed to load UI theme from file: "%1" Не ўдалося загрузіць тэму з файла: «%1» @@ -11818,55 +12319,56 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Не ўдалося перанесці налады: WebUI https, файл: «%1», памылка: «%2» - + Migrated preferences: WebUI https, exported data to file: "%1" Перанесеныя налады: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". - У файле канфігурацыі знойдзена недапушчальнае значэнне, вяртаецца прадвызначанае значэнне. Ключ: «%1». Недапушчальнае значэнне: «%2». + У файле канфігурацыі знойдзена недапушчальнае значэнне, вяртаецца значэнне па змаўчанні. Ключ: «%1». Недапушчальнае значэнне: «%2». Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - Знойдзены выконвальны файл Python. Назва: "%1". Вэрсія: "%2" + Знойдзены выконвальны файл Python. Назва: «%1». Версія: «%2» - + Failed to find Python executable. Path: "%1". - Ня выйшла знайсьці выконвальны файл Python. Шлях: "%1". + Не ўдалося знайсці выконвальны файл Python. Шлях: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Не ўдалося знайсці выконвальны файл «python3» у пераменнай асяроддзя PATH. PATH: «%1» - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - - - - - Failed to find `python` executable in Windows Registry. - Ня выйшла знайсьці запіс пра выконвальны файл `python` у рэґістры Windows. + Не ўдалося знайсці выконвальны файл «python» у пераменнай асяроддзя PATH. PATH: «%1» + Failed to find `python` executable in Windows Registry. + Не ўдалося знайсці ў рэестры Windows запіс пра выконвальны файл «python». + + + Failed to find Python executable - Ня выйшла знайсьці выконвальны файл Python. + Не ўдалося знайсці выконвальны файл Python. @@ -11874,27 +12376,27 @@ Please choose a different name and try again. File open error. File: "%1". Error: "%2" - Памылка адкрыцьця файла. Файл: "%1". Памылка: "%2" + Памылка адкрыцця файла. Файл: «%1». Памылка: «%2» File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - Памер файла перавышае абмежаваньне. Файл: "%1". Памер файла: %2. Абмежаваньне: %3 + Памер файла перавышае абмежаванне. Файл: «%1».. Памер файла: %2. Памер абмежавання: %3 File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + Памер файла перавышае абмежаванне памеру даных. Файл: «%1». Памер файла: %2. Абмежаванне масіва: %3 File read error. File: "%1". Error: "%2" - Памылка чытаньня файла. Файл: "%1". Памылка: "%2" + Памылка чытання файла. Файл: «%1». Памылка: «%2» Read size mismatch. File: "%1". Expected: %2. Actual: %3 - Неадпаведнасьць прачытанага памеру. Файл: "%1". Чаканы памер: %2. Фактычны памер: %3 + Неадпаведнасць прачытанага памеру. Файл: «%1». Чаканы памер: %2. Фактычны памер: %3 @@ -11902,12 +12404,12 @@ Please choose a different name and try again. Watched Folder Options - Параметры каталога, за якім трэба сачыць + Параметры папкі, за якой трэба сачыць <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> - + <html><head/><body><p>Будуць назірацца папка і ўсе яе падпапкі. У ручным рэжыме кіравання торэнтамі, да выбранага шляху захавання будзе таксама дадавацца назва падпапкі.</p></body></html> @@ -11950,78 +12452,78 @@ Please choose a different name and try again. Folder '%1' isn't readable. - Папка «%1» недаступная для чытання. + Папка «%1» недаступна для чытання. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - Пазначана непрымальная назва сэсійнага файла кукі: '%1'. Ужытая стандартная назва. + Пазначана непрымальная назва для файла cookie сеанса: «%1». Ужыта стандартная назва. - + Unacceptable file type, only regular file is allowed. Непрымальны тып файла, дазволены толькі звычайны файл. - + Symlinks inside alternative UI folder are forbidden. - Сымбальныя спасылкі ўнутры каталёґа альтэрнатыўнага інтэрфейсу забароненыя. + Сімвальныя спасылкі ўнутры каталога альтэрнатыўнага інтэрфейсу забароненыя. - + Using built-in WebUI. - + Выкарыстоўваецца ўбудаваны вэб-інтэрфейс. - + Using custom WebUI. Location: "%1". - + Выкарыстоўваецца уласны вэб-інтэрфейс. Месцазнаходжанне: «%1». - + WebUI translation for selected locale (%1) has been successfully loaded. - + Пераклад вэб-інтэрфейса для выбранай мовы (%1) паспяхова загружаны. - + Couldn't load WebUI translation for selected locale (%1). - + Не ўдалося загрузіць пераклад вэб-інтэрфейсу для выбранай мовы (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Прапушчаны раздзяляльнік «:» ва ўласным загалоўку HTTP вэб-інтэрфейса: «%1» - + Web server error. %1 Памылка вэб-сервера. %1 - + Web server error. Unknown error. Памылка вэб-сервера. Невядомая памылка. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + Вэб-інтэрфейс: Зыходны і мэтавы загалоўкі не супадаюць! IP крыніцы: «%1». Зыходны загаловак: «%2». Мэтавая крыніца: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + Вэб-інтэрфейс: Спасылачны і мэтавы загалоўкі не супадаюць! IP крыніцы: «%1». Загаловак спасылкі: «%2». Мэтавая крыніца: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Вэб-інтэрфейс: памылковы загаловак хоста, несупадзенне порта. Запыт IP крыніцы: «%1». Порт сервера: «%2». Атрыманы загаловак хоста: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Вэб-інтэрфейс: памылковы загаловак хоста. Запыт IP крыніцы: «%1». Атрыманы загаловак хоста: «%2» @@ -12029,128 +12531,136 @@ Please choose a different name and try again. WebUI - + Credentials are not set - Уліковыя дадзеныя не зададзеныя + Уліковыя даныя не зададзены - + WebUI: HTTPS setup successful - WebUI: наладка HTTPS выкананая пасьпяхова + WebUI: наладка HTTPS паспяхова выканана - + WebUI: HTTPS setup failed, fallback to HTTP - WebUI: збой наладкі HTTPS, вяртаньне да HTTP + Вэб-інтэрфейс: збой наладкі HTTPS, вяртанне да HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Вэб-інтэрфейс: Зараз праслухоўваецца IP: %1, порт: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - Немагчыма прывязацца да IP: %1, порт: %2. Чыньнік: %3 + Немагчыма прывязацца да IP: %1, порт: %2. Прычына: %3 + + + + fs + + + Unknown error + Невядомая памылка misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) ТБ - + PiB pebibytes (1024 tebibytes) ПБ - + EiB exbibytes (1024 pebibytes) ЭБ - + /s per second - + %1s e.g: 10 seconds - %1s + %1 с - + %1m e.g: 10 minutes %1 хв - + %1h %2m e.g: 3 hours 5 minutes - %1 гадз %2 хв + %1 гадз %2 хв - + %1d %2h e.g: 2 days 10 hours - %1 дз %2 гадз + %1 дз %2 гадз - + %1y %2d e.g: 2 years 10 days - %1 г. %2 дз + %1 г. %2 дз - - + + Unknown Unknown (size) Невядомы - + qBittorrent will shutdown the computer now because all downloads are complete. Зараз qBittorrent выключыць камп'ютар, бо ўсе спампоўванні завершаны. - + < 1m < 1 minute - < 1 хв + < 1 хв diff --git a/src/lang/qbittorrent_bg.ts b/src/lang/qbittorrent_bg.ts index 3743d0af4..172edd98c 100644 --- a/src/lang/qbittorrent_bg.ts +++ b/src/lang/qbittorrent_bg.ts @@ -14,75 +14,75 @@ За - + Authors Автори - + Current maintainer Настоящ разработчик - + Greece Гърция - - + + Nationality: Държава: - - + + E-mail: E-mail: - - + + Name: Име: - + Original author Автор на оригиналната версия - + France Франция - + Special Thanks Специални благодарности - + Translators Преводачи - + License Лиценз - + Software Used Използван софтуер - + qBittorrent was built with the following libraries: За qBittorrent са ползвани следните библиотеки: - + Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Авторско право %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Авторско право %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Съхрани на - + Never show again Не показвай никога повече - - - Torrent settings - Настройки на торента - Set as default category @@ -191,12 +186,12 @@ Стартирай торента - + Torrent information Торент информация - + Skip hash check Прескочи проверката на парчетата @@ -205,6 +200,11 @@ Use another path for incomplete torrent Използвай друг път за незавършен торент + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Условие за спиране: - - + + None Няма - - + + Metadata received Метаданни получени - + Torrents that have metadata initially will be added as stopped. - - + + Files checked Файлове проверени - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Когато е поставена отметка, .torrent файлът няма да бъде изтрит независимо от настройките на страницата „Изтегляне“ на диалоговия прозорец Опции - + Content layout: Оформление на съдържанието: - + Original Оригинал - + Create subfolder Създай подпапка - + Don't create subfolder Не създавай подпапка - + Info hash v1: Инфо хеш в1: - + Size: Размер: - + Comment: Коментар: - + Date: Дата: @@ -329,151 +329,147 @@ Запомни последното място за съхранение - + Do not delete .torrent file Без изтриване на .torrent файла - + Download in sequential order Сваляне в последователен ред - + Download first and last pieces first Първо изтеглете първата и последната част - + Info hash v2: Инфо хеш v2: - + Select All Избери всички - + Select None Не избирай - + Save as .torrent file... Запиши като .torrent файл... - + I/O Error Грешка на Вход/Изход - + Not Available This comment is unavailable Не е налично - + Not Available This date is unavailable Не е налично - + Not available Не е наличен - + Magnet link Магнитна връзка - + Retrieving metadata... Извличане на метаданни... - - + + Choose save path Избери път за съхранение - + No stop condition is set. Не е зададено условие за спиране. - + Torrent will stop after metadata is received. Торента ще спре след като метаданни са получени. - Torrents that have metadata initially aren't affected. - Торенти, които имат метаданни първоначално не са засегнати. - - - + Torrent will stop after files are initially checked. Торента ще спре след като файловете са първоначално проверени. - + This will also download metadata if it wasn't there initially. Това също ще свали метаданни, ако ги е нямало първоначално. - - + + N/A Не е налично - + %1 (Free space on disk: %2) %1 (Свободно място на диска: %2) - + Not available This size is unavailable. Недостъпен - + Torrent file (*%1) Торент файл (*%1) - + Save as torrent file Запиши като торент файл - + Couldn't export torrent metadata file '%1'. Reason: %2. Не може да се експортират метаданни от файл '%1'. Причина: %2. - + Cannot create v2 torrent until its data is fully downloaded. Не може да се създаде v2 торент, докато данните не бъдат напълно свалени. - + Filter files... Филтрирай файлове... - + Parsing metadata... Проверка на метаданните... - + Metadata retrieval complete Извличането на метаданни завърши @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Ограничения за споделяне на торент + Ограничения за споделяне на торент @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB МБ - + Recheck torrents on completion Провери торентите при завършване - - + + ms milliseconds мс - + Setting Настройка - + Value Value set for this setting Стойност - + (disabled) (изключено) - + (auto) (автоматично) - + + min minutes min - + All addresses Всички адреси - + qBittorrent Section qBittorrent Раздел - - + + Open documentation Отваряне на докумнтация - + All IPv4 addresses Всички IPv4 адреси - + All IPv6 addresses Всички IPv6 адреси - + libtorrent Section libtorrent Раздел - + Fastresume files Бързо възобновяване на файлове - + SQLite database (experimental) SQLite база данни (експериментално) - + Resume data storage type (requires restart) Възобновяване на типа съхранение на данни (изисква рестартиране) - + Normal Нормален - + Below normal Под нормален - + Medium Среден - + Low Нисък - + Very low Много нисък - + Physical memory (RAM) usage limit Ограничение на потреблението на физическата памет (RAM) - + Asynchronous I/O threads Асинхронни Входно/Изходни нишки - + Hashing threads Хеширане на нишки - + File pool size Размер на файловия пул - + Outstanding memory when checking torrents Оставаща памет при проверка на торентите - + Disk cache Дисков кеш - - - - + + + + + s seconds с - + Disk cache expiry interval Продължителност на дисковия кеш - + Disk queue size Размер на опашката на диска - - + + Enable OS cache Включи кеширане от ОС - + Coalesce reads & writes Обединяване на записванията и прочитанията - + Use piece extent affinity Използвай афинитет на размерите на парчета - + Send upload piece suggestions Изпращане на съвети за частите на качване - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer Максимален брой неизпълнени заявки към един участник - - - - - + + + + + KiB  KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux Тази опция е по-малко ефективна на Линукс - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default По подразбиране - + Memory mapped files Отбелязани в паметта файлове - + POSIX-compliant POSIX-съобразен - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Диск ВИ тип (изисква рестарт) - - + + Disable OS cache Забрани кеш на ОС - + Disk IO read mode Режим на четене на ВИ на диск - + Write-through Писане чрез - + Disk IO write mode Режим на писане на ВИ на диск - + Send buffer watermark Изпращане на буферен воден знак - + Send buffer low watermark Изпращане на нисък буферен воден знак - + Send buffer watermark factor Изпращане на фактор на буферния воден знак - + Outgoing connections per second Изходящи връзки в секунда - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Размер на задържане на сокет - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers Тип услуга (ToS) за връзки с пиъри - + Prefer TCP Предпочитане на TCP - + Peer proportional (throttles TCP) Пиър пропорционален (дроселиран TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Поддържа интернационализирано домейн име (IDN) - + Allow multiple connections from the same IP address Позволяване на множество връзки от един и същи IP адрес - + Validate HTTPS tracker certificates Проверявай сертификати на HTTPS тракер - + Server-side request forgery (SSRF) mitigation Подправяне на заявка от страна на сървъра (SSRF) смекчаване - + Disallow connection to peers on privileged ports Не разрешавай връзка към пиъри на привилегировани портове - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates Контролира интервала на обновяване на вътрешното състояние, което от своя страна засяга опреснявания на ПИ - + Refresh interval Интервал на опресняване - + Resolve peer host names Намиране името на хоста на участниците - + IP address reported to trackers (requires restart) IP адреси, докладвани на тракерите (изисква рестарт) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Повторно обявяване на всички тракери при промяна на IP или порт - + Enable icons in menus Разрешаване на икони в менюта - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Разреши пренасочване на портове за вграден тракер - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - Процент на прекъсване на оборота на участници - - - - Peer turnover threshold percentage - Процент на праг на оборота на участници - - - - Peer turnover disconnect interval - Интервал на прекъсване на партньорския оборот - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + сек + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + Процент на прекъсване на оборота на участници + + + + Peer turnover threshold percentage + Процент на праг на оборота на участници + + + + Peer turnover disconnect interval + Интервал на прекъсване на партньорския оборот + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Екранни уведомления - + Display notifications for added torrents Екранни уведомления за добавени торенти. - + Download tracker's favicon Сваляне на логото на тракера - + Save path history length Брой запазени последно използвани местоположения. - + Enable speed graphs Разреши графика на скоростта - + Fixed slots Фиксиран брой слотове - + Upload rate based Скорост на качване въз основа на - + Upload slots behavior Поведение на слотовете за качване - + Round-robin Кръгла система - + Fastest upload Най-бързо качване - + Anti-leech Анти-лийч - + Upload choking algorithm Задушаващ алгоритъм за качване - + Confirm torrent recheck Потвърждаване на проверка на торент - + Confirm removal of all tags Потвърдете изтриването на всички тагове - + Always announce to all trackers in a tier Винаги анонсирай до всички тракери в реда - + Always announce to all tiers Винаги анонсирай до всички тракер-редове - + Any interface i.e. Any network interface Произволен интерфейс - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP алгоритъм смесен режим - + Resolve peer countries Намиране държавата на участниците - + Network interface Мрежов интерфейс - + Optional IP address to bind to Опционален IP адрес за свързване - + Max concurrent HTTP announces Макс. едновременни HTTP анонси - + Enable embedded tracker Включи вградения тракер - + Embedded tracker port Вграден порт на тракер + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Работи в преносим режим. Автоматично открита папка с профил на адрес: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Открит е флаг за излишен команден ред: "%1". Преносимият режим предполага относително бързо възобновяване. - + Using config directory: %1 Използване на конфигурационна папка: %1 - + 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. - + Torrent: %1, sending mail notification Торент: %1, изпращане на уведомление по имейл. - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Изпълнение на външна програма. Торент "%1". Команда: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Торент "%1" завърши свалянето - + WebUI will be started shortly after internal preparations. Please wait... УебПИ ще бъде стартиран малко след вътрешни подготовки. Моля, изчакайте... - - + + Loading torrents... Зареждане на торенти... - + E&xit И&зход - + I/O Error i.e: Input/Output Error В/И грешка - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Причина: %2 - + Torrent added Торент добавен - + '%1' was added. e.g: xxx.avi was added. '%1' бе добавен. - + Download completed Сваляне приключено - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' завърши свалянето. - + Information Информация - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 За да контролирате qBittorrent, достъпете УебПИ при: %1 - + Exit Изход - + Recursive download confirmation Допълнително потвърждение за сваляне - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Торентът '%'1 съдържа .torrent файлове, искате ли да продължите с техните сваляния? - + Never Никога - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Рекурсивно сваляне на .torrent файл в торента. Торент-източник: "%1". Файл: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Неуспешно задаване на ограничение на потреблението на физическата памет (RAM). Код на грешка: %1. Съобщение на грешка: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated Прекратяване на qBittorrent започнато - + qBittorrent is shutting down... qBittorrent се изключва... - + Saving torrent progress... Прогрес на записване на торент... - + qBittorrent is now ready to exit qBittorrent сега е готов за изход @@ -1609,12 +1715,12 @@ - + Must Not Contain: Трябва Да Не Съдържа: - + Episode Filter: Филтър за Епизод: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Експортиране... - + 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 Номерът на сезона трябва да бъде със стойност, различна от нула - + 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 на първи сезон - + Episode number is a mandatory positive value Номерът на е епизода е задължително да е с позитивна стойност - + Rules Правила - + Rules (legacy) Правила (наследени) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Безкраен диапазон: <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 Потвърждение за изтриване на правилото - + Invalid action Невалидно действие - + The list is empty, there is nothing to export. Списъкът е празен, няма какво да експортирате. - + Export RSS rules Експорт на RSS правила - + I/O Error В/И Грешка - + Failed to create the destination file. Reason: %1 Неуспешно създаване на файл. Причина: %1 - + Import RSS rules Импорт на RSS правила - + Failed to import the selected rules file. Reason: %1 Неуспешно импортиране на избрания файл с правила. Причина: %1 - + Add new rule... Добави ново правило... - + Delete rule Изтрий правилото - + Rename rule... Преименувай правилото... - + Delete selected rules Изтрий избраните правила - + Clear downloaded episodes... Изчистване на изтеглените епизоди... - + Rule renaming Преименуване на правилото - + Please type the new rule name Моля напишете името на новото правило - + Clear downloaded episodes Изчистване на изтеглените епизоди - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Наистина ли искате да изчистите списъка с изтеглени епизоди за избраното правило? - + Regex mode: use Perl-compatible regular expressions Режим регулярни изрази: използвайте Perl-съвместими регулярни изрази - - + + Position %1: %2 Позиция %1: %2 - + Wildcard mode: you can use Режим на заместващи символи: можете да изпозвате - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? за съвпадане на един, какъвто и да е символ - + * to match zero or more of any characters * за съвпадане на нула или повече каквито и да са символи - + Whitespaces count as AND operators (all words, any order) Приеми празно пространствените символи като И оператори (всички думи, в независимо какъв ред) - + | is used as OR operator | се използва за ИЛИ оператор - + If word order is important use * instead of whitespace. Ако поредността на думите е важна, използвайте * вместо пауза. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Израз с празна %1 клауза (пр.: %2) - + will match all articles. ще съответства на всички артикули. - + will exclude all articles. ще изключи всички артикули. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Не може да се създаде папка за възобновяване на торент: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Не може да се анализират данни за продължение: невалиден формат - - + + Cannot parse torrent info: %1 Не може да се анализират данни за торент: %1 - + Cannot parse torrent info: invalid format Не може да се анализират данни за торент: невалиден формат - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Метаданните на торент не можаха да бъдат запазени '%1'. Грешка: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Не можа да се запишат данните за възобновяване на торента на '%1'. Грешка: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Не могат да се предадат данни за продължение: %1 - + Resume data is invalid: neither metadata nor info-hash was found Данни за продължение са невалидни: нито метаданни, нито инфо-хеш бяха намерени - + Couldn't save data to '%1'. Error: %2 Данните не можаха да бъдат запазени в '%1'. Грешка: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Не намерено. - + Couldn't load resume data of torrent '%1'. Error: %2 Данните за възобновяване на торент не можаха да се заредят '%1'. Грешка: %2 - - + + Database is corrupted. Базата данни е повредена. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Не могат да се предадат данни за продължение: %1 + + + + + Cannot parse torrent info: %1 + Не може да се анализират данни за торент: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Метаданните на торент не можаха да бъдат запазени. Грешка: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Данните за възобновяване не можаха да се съхранят за торент '%1'. Грешка: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Данните за възобновяване на торент не можаха да бъдат изтрити '%1'. Грешка: %2 - + Couldn't store torrents queue positions. Error: %1 Не можаха да се съхранят позициите на опашката на торенти. Грешка: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Поддръжка на разпределена хеш таблица (DHT): %1 - - - - - - - - - + + + + + + + + + ON ВКЛ - - - - - - - - - + + + + + + + + + OFF ИЗКЛ - - + + Local Peer Discovery support: %1 Поддръжка на откриване на местни участници: %1 - + Restart is required to toggle Peer Exchange (PeX) support Изисква се рестартиране за превключване на поддръжка на размяна на участници (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Неуспешно продължение на торент. Торент: "%1". Причина: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Неуспешно продължение на торент: непостоянен торент ИД е засечен. Торент: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Засечени непостоянни данни: категория липсва от конфигурационният файл. Категория ще бъде възстановена, но нейните настройки ще бъдат върнати към по-подразбиране. Торент: "%1". Категория: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Засечени непостоянни данни: невалидна категория. Торент: "%1". Категория: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Засечено несъответствие между пътищата на запазване на възстановената категория и текущият път на запазване на торента. Торента сега е превключен в ръчен режим. Торент: "%1". Категория: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Засечени непостоянни данни: категория липсва от конфигурационният файл. Категория ще бъде възстановена Торент: "%1". Категория: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Засечени непостоянни данни: невалидна категория. Торент: "%1". Категория: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" ID на участника: "%1" - + HTTP User-Agent: "%1" HTTP потребителски-агент: "%1" - + Peer Exchange (PeX) support: %1 Поддръжка на размяна на участници (PeX): %1 - - + + Anonymous mode: %1 Анонимен режим: %1 - - + + Encryption support: %1 Поддръжка на шифроване: %1 - - + + FORCED ПРИНУДЕНО - + Could not find GUID of network interface. Interface: "%1" Не можа да се намери GUID на мрежов интерфейс. Интерфейс: "%1" - + Trying to listen on the following list of IP addresses: "%1" Опит за прослушване на следният списък на ИП адреси: "%1" - + Torrent reached the share ratio limit. Торент достигна ограничението на съотношение за споделяне. - - - + Torrent: "%1". Торент: "%1". - - - - Removed torrent. - Премахнат торент. - - - - - - Removed torrent and deleted its content. - Премахнат торент и изтрито неговото съдържание. - - - - - - Torrent paused. - Торент в пауза. - - - - - + Super seeding enabled. Супер засяване разрешено. - + Torrent reached the seeding time limit. Торент достигна ограничението на време за засяване. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Неуспешно зареждане на торент. Причина: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP поддръжка: ВКЛ - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP поддръжка: ИЗКЛ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Неуспешно изнасяне на торент. Торент: "%1". Местонахождение: "%2". Причина: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Прекратено запазване на данните за продължение. Брой неизпълнени торенти: %1 - + The configured network address is invalid. Address: "%1" Конфигурираният мрежов адрес е невалиден. Адрес: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Неуспешно намиране на конфигурираният мрежов адрес за прослушване. Адрес: "%1" - + The configured network interface is invalid. Interface: "%1" Конфигурираният мрежов интерфейс е невалиден. Интерфейс: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Отхвърлен невалиден ИП адрес при прилагане на списъкът на забранени ИП адреси. ИП: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Добавен тракер към торент. Торент: "%1". Тракер: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Премахнат тракер от торент. Торент: "%1". Тракер: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Добавено URL семе към торент. Торент: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Премахнато URL семе от торент. Торент: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Торент в пауза. Торент: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Торент продължен. Торент: "%1" - + Torrent download finished. Torrent: "%1" Сваляне на торент приключено. Торент: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Преместване на торент прекратено. Торент: "%1". Източник: "%2". Местонахождение: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Неуспешно нареден на опашка за преместване торент. Торент: "%1". Източник "%2". Местонахождение: "%3". Причина: торента понастоящем се премества към местонахождението - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Неуспешно нареден на опашка за преместване торент. Торент: "%1". Източник "%2". Местонахождение: "%3". Причина: двете пътища сочат към същото местоположение - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Нареден на опашка за преместване торент. Торент: "%1". Източник "%2". Местонахождение: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Започнато преместване на торент. Торент: "%1". Местонахождение: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Не можа да се запази Категории конфигурация. Файл: "%1". Грешка: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Не можа да се анализира Категории конфигурация. Файл: "%1". Грешка: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Успешно анализиран файлът за ИП филтър. Брой на приложени правила: %1 - + Failed to parse the IP filter file Неуспешно анализиране на файлът за ИП филтър - + Restored torrent. Torrent: "%1" Възстановен торент. Торент: "%1" - + Added new torrent. Torrent: "%1" Добавен нов торент. Торент: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Грешка в торент. Торент: "%1". Грешка: "%2" - - - Removed torrent. Torrent: "%1" - Премахнат торент. Торент: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Премахнат торент и изтрито неговото съдържание. Торент: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Сигнал за грешка на файл. Торент: "%1". Файл: "%2". Причина: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP пренасочване на портовете неуспешно. Съобщение: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP пренасочването на портовете успешно. Съобщение: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP филтър - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 ограничения за смесен режим - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 е забранен - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 е забранен - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Търсенето на URL засяване неуспешно. Торент: "%1". URL: "%2". Грешка: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Получено съобщение за грешка от URL засяващ. Торент: "%1". URL: "%2". Съобщение: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Успешно прослушване на ИП. ИП: "%1". Порт: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Неуспешно прослушване на ИП. ИП: "%1". Порт: "%2/%3". Причина: "%4" - + Detected external IP. IP: "%1" Засечен външен ИП. ИП: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Грешка: Вътрешната опашка за тревоги е пълна и тревогите са отпаднали, можете да видите понижена производителност. Отпаднали типове на тревога: "%1". Съобщение: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Преместване на торент успешно. Торент: "%1". Местонахождение: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Неуспешно преместване на торент. Торент: "%1". Източник: "%2". Местонахождение: "%3". Причина: "%4" @@ -2552,13 +2737,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted Операция прекратена - - + + Create new torrent file failed. Reason: %1. Неуспешно създаване на нов торент файл. Причина: %1 @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Неуспешно добавяне на участник "%1" към торент "%2". Причина: %3 - + Peer "%1" is added to torrent "%2" Участник "%1" е добавен на торент "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Не можа да се запише към файл. Причина: "%1". Торента сега е в "само качване" режим. - + Download first and last piece first: %1, torrent: '%2' Изтеглете първо първото и последното парче: %1, торент: '%2' - + On Включено - + Off Изключено - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Генериране на данни за продължение неуспешно. Торент: "%1". Причина: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Неуспешно продължаване на торент. Файлове вероятно са преместени или съхранение не е достъпно. Торент: "%1". Причина: "%2". - + Missing metadata Липсващи метаданни - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Неуспешно преименуване на файл. Торент: "%1", файл: "%2", причина: "%3" - + Performance alert: %1. More info: %2 Сигнал за производителност: %1. Повече инфо: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Параметър '%1' трябва да следва синтаксиса '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Параметър '%1' трябва да следва синтаксиса '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Очаква се цяло число в променливата от средата '%1', но се получи '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Параметър '%1' трябва да следва синтаксиса '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Очаква се %1 променливата от средата '%2', но се получи '%3' - - + + %1 must specify a valid port (1 to 65535). %1 трябва да задава валиден порт (1 до 65535) - + Usage: Ползване: - + [options] [(<filename> | <url>)...] [опции] [(<filename> | <url>)...] - + Options: Настройки: - + Display program version and exit Показване на версията на програмата и изход - + Display this help message and exit Показване на това помощно съобщение и изход - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Параметър '%1' трябва да следва синтаксиса '%1=%2' + + + Confirm the legal notice - - + + port порт - + Change the WebUI port - + Change the torrenting port Смени портът на торентиране - + Disable splash screen Деактивиране на начален екран - + Run in daemon-mode (background) Стартиране в режим на услуга (фонов процес) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Съхранение на конфигурационните файлове в <dir> - - + + name име - + Store configuration files in directories qBittorrent_<name> Съхранение на конфигурационните файлове в директории qBittorent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Намеса във файловете за бързо подновяване на ЛибТорент и редактиране директориите като относителни към директорията на профила - + files or URLs файлове или URL-и - + Download the torrents passed by the user Сваля торентите дадени от потребителя. - + Options when adding new torrents: Опции, когато се добавят нови торенти: - + path път - + Torrent save path Път на запис на торент - - Add torrents as started or paused - Добавяне на торентите стартирани или в пауза. + + Add torrents as running or stopped + - + Skip hash check Пропусни хеш проверка - + Assign torrents to category. If the category doesn't exist, it will be created. Свързване на торенти към категория. Ако категорията не съществува ще бъде създадена. - + Download files in sequential order Сваляне в последователен ред - + Download first and last pieces first Сваляне първо на първото и последното парче - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Определяне дали диалога 'Добавяне на Нов Торент' се отваря, когато се добави торент. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Стойности могат да бъдат въведени и като променливи на средата. За опция с име 'parameter-name' променливата на средата би била 'QBT_PARAMETER_NAME' (всичко с главни букви и '_' вместо '-'). За отбелязване на флагове задайте променливата като '1' или 'TRUE'. Например за скриване на началния екран при стартиране: - + Command line parameters take precedence over environment variables Параметрите от командния ред са приоритетни пред променливите от средата - + Help Помощ @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Продължаване на торентите + Start torrents + - Pause torrents - Пауза на торентите + Stop torrents + @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset Нулиране + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Също изтрий за постоянно файловете + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Сигурни ли сте, че искате да изтриете '%1' от списъка за трансфер? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Сигурни ли сте, че искате да изтриете тези %1 торенти от списъка за трансфер? - + Remove Премахни @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Сваляне от URL - + Add torrent links Добави торент връзки - + One link per line (HTTP links, Magnet links and info-hashes are supported) По една връзка на ред (поддържат се HTTP връзки, магнитни връзки и инфо-хешове) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Изтегли - + No URL entered Няма въведен URL - + Please type at least one URL. Моля, въведете поне един URL @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Грешка при обработване: Файлът на филтъра не е валиден PeerGuardian P2B файл. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Торентът вече съществува - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Торент '%1' вече е в списъка за трансфер. Искате ли да обедините тракери от нов източник? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. Базата данни е развалена: няма намерена информационна секция. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http размера на заявка надхвърля ограничение, затваряне на гнездо. Ограничение: %1, ИП: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Лоша Http заявка, затваряне на гнездо. ИП: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Преглед... - + Reset Нулиране - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 бе блокиран. Причина: %2. - + %1 was banned 0.0.0.0 was banned %1 бе баннат @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 трябва да бъде единствен параметър на командния ред. - + Run application with -h option to read about command line parameters. Стартирайте програмата с параметър -h, за да получите информация за параметрите на командния ред. - + Bad command line Некоректен команден ред - + Bad command line: Некоректен команден ред: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Редактирай - + &Tools &Инструменти - + &File &Файл - + &Help &Помощ - + On Downloads &Done При &Приключване на Свалянията: - + &View &Оглед - + &Options... &Опции... - - &Resume - &Пауза - - - + &Remove &Премахни - + Torrent &Creator Торент &Създател - - + + Alternative Speed Limits Алтернативни Лимити за Скорост - + &Top Toolbar &Горна Лента с Инструменти - + Display Top Toolbar Показване на Горна Лента с Инструменти - + Status &Bar Статус &Лента - + Filters Sidebar Странична лента на филтри - + S&peed in Title Bar С&корост в Заглавната Лента - + Show Transfer Speed in Title Bar Показване на Скорост на Трансфер в Заглавната Лента - + &RSS Reader &RSS Четец - + Search &Engine Програма за &Търсене - + L&ock qBittorrent З&аключи qBittorrent - + Do&nate! Да&ри! - + + Sh&utdown System + + + + &Do nothing &Не прави нищо - + Close Window Затвори прозореца - - R&esume All - П&ауза Всички - - - + Manage Cookies... Управление на Бисквитките... - + Manage stored network cookies Управление на запазените мрежови бисквитки - + Normal Messages Нормални Съобщения - + Information Messages Информационни Съобщения - + Warning Messages Предупредителни Съобщения - + Critical Messages Критични Съобщения - + &Log &Журнал - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Задаване на глобални ограничения на скоростта... - + Bottom of Queue Най-отдолу в опашката - + Move to the bottom of the queue Премести в дъното на опашката - + Top of Queue Най-горната част на опашката - + Move to the top of the queue Преместети в началото на опашката - + Move Down Queue Премести надолу - + Move down in the queue Премести надолу в опашката - + Move Up Queue Премести нагоре - + Move up in the queue Преместване нагоре в опашката - + &Exit qBittorrent &Изход от qBittorrent - + &Suspend System &Приспиване на Системата - + &Hibernate System &Хибернация на Системата - - S&hutdown System - И&зклюване на Системата - - - + &Statistics &Статистики - + Check for Updates Проверка за Обновления - + Check for Program Updates Проверка за Обновяване на Програмата - + &About &Относно - - &Pause - &Пауза - - - - P&ause All - П&ауза Всички - - - + &Add Torrent File... &Добавяне Торент Файл... - + Open Отваряне - + E&xit И&зход - + Open URL Отваряне URL - + &Documentation &Документация - + Lock Заключване - - - + + + Show Покажи - + Check for program updates Проверка за обновления на програмата - + Add Torrent &Link... Добавяне &Линк на Торент - + If you like qBittorrent, please donate! Ако ви харесва qBittorrent, моля дарете! - - + + Execution Log Изпълнение на Запис - + Clear the password Изчистване на паролата - + &Set Password &Задаване на Парола - + Preferences Предпочитания - + &Clear Password &Изчистване на Парола - + Transfers Трансфери - - + + qBittorrent is minimized to tray qBittorrent е минимизиран в трея - - - + + + This behavior can be changed in the settings. You won't be reminded again. Това поведение може да се промени в настройките. Няма да ви се напомня отново. - + Icons Only Само Икони - + Text Only Само Текст - + Text Alongside Icons Текст Успоредно с Икони - + Text Under Icons Текст Под Икони - + Follow System Style Следване на Стила на Системата - - + + UI lock password Парола за потребителски интерфейс - - + + Please type the UI lock password: Моля въведете парола за заключване на потребителския интерфейс: - + Are you sure you want to clear the password? Наистина ли искате да изчистите паролата? - + Use regular expressions Ползване на регулярни изрази - + + + Search Engine + Търсачка + + + + Search has failed + Търсенето бе неуспешно + + + + Search has finished + Търсенето завърши + + + Search Търси - + Transfers (%1) Трансфери (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent току-що бе обновен и има нужда от рестарт, за да влязат в сила промените. - + qBittorrent is closed to tray qBittorrent е затворен в трея - + Some files are currently transferring. Няколко файлове в момента се прехвърлят. - + Are you sure you want to quit qBittorrent? Сигурни ли сте, че искате на излезете от qBittorent? - + &No &Не - + &Yes &Да - + &Always Yes &Винаги Да - + Options saved. Опциите са запазени. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Липсва Python Runtime - + qBittorrent Update Available Обновление на qBittorrent е Налично - + 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 е необходим за употребата на търсачката, но изглежда не е инсталиран. - - + + Old Python Runtime Остарял Python Runtime - + A new version is available. Налична е нова версия. - + Do you want to download %1? Искате ли да изтеглите %1? - + Open changelog... Отваряне списък с промените... - + No updates available. You are already using the latest version. Няма обновления. Вече използвате последната версия. - + &Check for Updates &Проверка за Обновление - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Вашата Python версия (%1) е остаряла. Минимално изискване: %2. Искате ли да инсталирате по-нова версия сега? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Вашата Python версия (%1) е остаряла. Моля надстройте до най-нова версия за да работят търсачките. Минимално изискване: %2. - + + Paused + Пауза + + + Checking for Updates... Проверяване за Обновление... - + Already checking for program updates in the background Проверката за обновления на програмата вече е извършена - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Грешка при сваляне - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Инсталаторът на Python не може да се свали, причина: %1. -Моля инсталирайте го ръчно. - - - - + + Invalid password Невалидна парола - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long Паролата трябва да бъде поне 3 символи дълга - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Отвори Торент Файлове - + Torrent Files Торент Файлове @@ -4232,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Пренебрегване SSL грешка, URL: "%1", грешки: "%2" @@ -5526,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Връзка неуспешна, неразпознат отговор: %1 - + Authentication failed, msg: %1 Удостоверяване неуспешно, съобщ.: %1 - + <mail from> was rejected by server, msg: %1 <mail from> бе отхвърлен от сървър, съобщ.: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> бе отхвърлен от сървър, съобщ.: %1 - + <data> was rejected by server, msg: %1 <data> бе отхвърлен от сървър, съобщ.: %1 - + Message was rejected by the server, error: %1 Съобщение бе отхвърлено от сървърът, грешка: %1 - + Both EHLO and HELO failed, msg: %1 И EHLO и HELO неуспешни, съобщ.: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP сървърът не изглежда да поддържа какъвто и да е от режимите за удостоверяване, каквито ние поддържаме [CRAM-MD5|PLAIN|LOGIN], прескачане на удостоверяване, знаейки, че е вероятно да се провали... Режими за удост. на сървъра: %1 - + Email Notification Error: %1 Грешка при известяване по имейл: %1 @@ -5604,299 +5927,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Уеб ПИ - - - + Advanced Разширени - + Customize UI Theme... - + Transfer List Трансферен Списък - + Confirm when deleting torrents Потвърждаване при изтриването на торенти - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Ползвай различно оцветени редове - + Hide zero and infinity values Скриване на нулата и безкрайните стойности - + Always Винаги - - Paused torrents only - Само торентите в пауза - - - + Action on double-click Действие при двойно щракване - + Downloading torrents: Сваляне на торенти: - - - Start / Stop Torrent - Пускане / Спиране Торент - - - - + + Open destination folder Отваряне на съдържащата директория - - + + No action Без действие - + Completed torrents: Завършени торенти: - + Auto hide zero status filters - + Desktop Десктоп - + Start qBittorrent on Windows start up Стартирай qBittorrent със стартирането на Windows - + Show splash screen on start up Покажи начален екран при стартиране - + Confirmation on exit when torrents are active Потвърждаване при изход, когато има активни торенти. - + Confirmation on auto-exit when downloads finish Потвърждение при авто-изход, когато свалящите се приключат - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KB - + + Show free disk space in status bar + + + + Torrent content layout: Оформление на съдържанието на торента: - + Original Оригинал - + Create subfolder Създай подпапка - + Don't create subfolder Не създавай подпапка - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Добавяне... - + Options.. Опции... - + Remove Премахни - + Email notification &upon download completion Уведомяване с имейл &при завършване на свалянето - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Протокол за връзка с участника: - + Any Всякакви - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP Фи&лтриране - + Schedule &the use of alternative rate limits График на &използването на алтернативни пределни скорости - + From: From start time От: - + To: To end time До: - + Find peers on the DHT network Намиране на пиъри в DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Disable encryption: Only connect to peers without protocol encryption Забрани шифроване: Свързвай се само с участници без шифроване на протокола - + Allow encryption Позволи криптиране - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Повече информация</a>) - + Maximum active checking torrents: Максимум активни проверки на торент: - + &Torrent Queueing &Нареждане на Oпашка на Торенти - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Автоматично добавяне на тези тракери към нови сваляния: - - - + RSS Reader RSS Четец - + Enable fetching RSS feeds Включване получаването от RSS канали. - + Feeds refresh interval: Интервал за опресняване на каналите: - + Same host request delay: - + Maximum number of articles per feed: Максимален брой на статии за канал: - - - + + + min minutes мин - + Seeding Limits Лимит за качване - - Pause torrent - Пауза на торент - - - + Remove torrent Премахни торент - + Remove torrent and its files Премахване на торент и неговите файлове - + Enable super seeding for torrent Разреши супер сийд за торент - + When ratio reaches Когато съотношението достигне - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Торентов Авто Сваляч - + Enable auto downloading of RSS torrents Включване на автоматичното сваляне на RSS торенти - + Edit auto downloading rules... Редактиране на правилата за автоматично сваляне... - + RSS Smart Episode Filter RSS Разумен Филтър на Епизоди - + Download REPACK/PROPER episodes Изтегли REPACK/PROPER епизоди - + Filters: Филтри: - + Web User Interface (Remote control) Потребителски Уеб Интерфейс (Отдалечен контрол) - + IP address: IP адрес: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv "::" за всеки IPv6 адрес, или "*" за двата IPv4 или IPv6. - + Ban client after consecutive failures: Банни клиент след последователни провали: - + Never Никога - + ban for: забрана за: - + Session timeout: Изтекла сесия: - + Disabled Забранено - - Enable cookie Secure flag (requires HTTPS) - Разреши флаг за сигурност на бисквитка (изисква HTTPS) - - - + Server domains: Сървърни домейни: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6096,442 +6443,483 @@ Use ';' to split multiple entries. Can use wildcard '*'.Списък с разрешени за филтриране стойности на HTTP хост хедъри. За защита срещу атака "ДНС повторно свързване" въведете тук домейните използвани от Уеб ПИ сървъра. Използвайте ';' за разделител. Може да се използва и заместител '*'. - + &Use HTTPS instead of HTTP &Използване на HTTPS вместо HTTP - + Bypass authentication for clients on localhost Заобиколи удостоверяването на клиенти от localhost - + Bypass authentication for clients in whitelisted IP subnets Заобиколи удостоверяването на клиенти от позволените IP подмрежи - + IP subnet whitelist... Позволени IP подмрежи... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Посочете ИП-та на обратно прокси (или подмрежи, напр. 0.0.0.0/24), за да използвате препратени клиент адреси (X-Препратени-За заглавка). Използвайте ';' да разделите множество вписвания. - + Upda&te my dynamic domain name Обнови моето динамично име на домейн - + Minimize qBittorrent to notification area Минимизиране на qBittorrent в зоната за уведомяване - + + Search + Търсене + + + + WebUI + + + + Interface Интерфейс - + Language: Език: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Стил на иконата в лентата: - - + + Normal Нормален - + File association Файлови асоциации - + Use qBittorrent for .torrent files Използване на qBittorrent за торент файлове - + Use qBittorrent for magnet links Използване на qBittorrent за магнитни връзки - + Check for program updates Проверка за обновления на програмата - + Power Management Управление на Енергията - + + &Log Files + + + + Save path: Местоположение за запис: - + Backup the log file after: Резервно копие на лог файла след: - + Delete backup logs older than: Изтриване на резервните копия на лог файловете по-стари от: - + + Show external IP in status bar + + + + When adding a torrent При добавяне на торент - + Bring torrent dialog to the front Изнасяне на диалога за добавяне на торент най-отпред - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Също изтриване на .torrent файловете, чието добавяне е било отказано - + Also when addition is cancelled Също, когато добавянето е отказано - + Warning! Data loss possible! Предупреждение! Загуба на информация е възможна! - + Saving Management Управление на Съхранението - + Default Torrent Management Mode: Торентов Режим на Управление по подразбиране: - + Manual Ръчно - + Automatic Автоматично - + When Torrent Category changed: Когато Категорията на Торента се промени: - + Relocate torrent Преместване на торента - + Switch torrent to Manual Mode Превключване на торента към Ръчен Режим - - + + Relocate affected torrents Преместване на засегнатите торенти - - + + Switch affected torrents to Manual Mode Превключване на засегнатите торенти в Ръчен Режим - + Use Subcategories Използване на Под-категории - + Default Save Path: Местоположение за Запис по подразбиране: - + Copy .torrent files to: Копирай .торент файловете в: - + Show &qBittorrent in notification area Показване на &qBittorrent в зоната за уведомяване - - &Log file - &Лог файл - - - + Display &torrent content and some options Показване съдържание на &торента и някои опции - + De&lete .torrent files afterwards Из&триване на .torrent файловете след това - + Copy .torrent files for finished downloads to: Копирай .torrent файловете от приключилите изтегляния в: - + Pre-allocate disk space for all files Преразпредели дисково пространство за всички файлове - + Use custom UI Theme Ползвай персонализирана ПИ тема - + UI Theme file: ПИ тема файл: - + Changing Interface settings requires application restart Смяната на интерфейсни настройки изисква рестартиране на приложение - + Shows a confirmation dialog upon torrent deletion Показва диалог за потвърждение при изтриването на торента - - + + Preview file, otherwise open destination folder Прегледай файл, иначе отвори папката на местонахождение - - - Show torrent options - Покажи торент опции - - - + Shows a confirmation dialog when exiting with active torrents Показва диалог за потвърждение, когато се излиза с активни торенти - + When minimizing, the main window is closed and must be reopened from the systray icon Когато се минимизира, главният прозорец е затворен и трябва да бъде отворен наново от систрей иконата - + The systray icon will still be visible when closing the main window Систрей иконата все още ще бъде видима, когато се затвори главният прозорец - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Затваряне на qBittorrent в зоната за уведомяване - + Monochrome (for dark theme) Едноцветно (Тъмна тема) - + Monochrome (for light theme) Едноцветно (Светла тема) - + Inhibit system sleep when torrents are downloading Попречи на системата да заспи, когато има изтеглящи се торенти - + Inhibit system sleep when torrents are seeding Попречи на системата да заспи, когато има споделящи се торенти - + Creates an additional log file after the log file reaches the specified file size Създава допълнителен лог файл, след като лог файлът достигне посочения файлов размер - + days Delete backup logs older than 10 days дни - + months Delete backup logs older than 10 months месеци - + years Delete backup logs older than 10 years години - + Log performance warnings Вписвай предупреждения за производителност - - The torrent will be added to download list in a paused state - Торентът ще бъде добавен към списъка за изтегляне в състояние на пауза - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Не стартирай свалянето автоматично - + Whether the .torrent file should be deleted after adding it Дали .torrent файлът трябва да бъде изтрит след добавянето му - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Задели пълните файлови размери на диск преди започване на изтегляния, да се минимизира фрагментацията. Полезно е само за HDD-та. - + Append .!qB extension to incomplete files Добави .!qB разширение към незавършени файлове - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it След като торент е изтеглен, предложи да се добавят торенти от всякакви .torrent файлове намерени вътре - + Enable recursive download dialog Разреши диалог за рекурсивно изтегляне - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Автоматичен: Разни торентни свойства (напр. пътя на запазване) ще бъде решен от асоциираната категория Ръчен: Разни торентни свойства (напр. пътя на запазване) трябва да бъдат възложени ръчно - + When Default Save/Incomplete Path changed: Когато местоположението за запис по-подразбиране/непълен път се промени: - + When Category Save Path changed: Когато пътя за запазване на категория се промени: - + Use Category paths in Manual Mode Използвай Категория пътища в ръчен режим - + Resolve relative Save Path against appropriate Category path instead of Default one Решавай относителен път на запазване срещу подходящ път на категория вместо такъв по подразбиране - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: Условие за спиране на торент: - - + + None Няма - - + + Metadata received Метаданни получени - - + + Files checked Файлове проверени - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Използвай друг път за незавършени торенти: - + Automatically add torrents from: Автоматично добави торенти от: - + Excluded file names Изключи файлови имена - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6560,770 +6948,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not прочетиме[0-9].txt: 'прочетиме1.txt', 'прочетиме2.txt' но не 'прочетиме10.txt'. - + Receiver Приемник - + To: To receiver До: - + SMTP server: SMTP сървър: - + Sender Изпращач - + From: From sender От: - + This server requires a secure connection (SSL) Този сървър изисква защитена връзка (SSL) - - + + Authentication Удостоверяване - - - - + + + + Username: Име на потребителя: - - - - + + + + Password: Парола: - + Run external program Изпълни външна програма - - Run on torrent added - Изпълни на добавен торент - - - - Run on torrent finished - Изпълни на приключен торент - - - + Show console window Покажи конзолен прозорец - + TCP and μTP TCP и μTP - + Listening Port Порт за слушане - + Port used for incoming connections: Порт ползван за входящи връзки: - + Set to 0 to let your system pick an unused port Задайте на 0, за да позволите на вашата система да избере неизползван порт - + Random Приблизително - + Use UPnP / NAT-PMP port forwarding from my router Използване на UPnP / NAT-PMP порт за препращане от моя рутер - + Connections Limits Ограничения на Връзките - + Maximum number of connections per torrent: Максимален брой връзки на торент: - + Global maximum number of connections: Общ максимален брой на връзки: - + Maximum number of upload slots per torrent: Максимален брой слотове за качване на торент: - + Global maximum number of upload slots: Глобален максимален брой слотове за качване: - + Proxy Server Прокси Сървър - + Type: Тип: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Хост: - - - + + + Port: Порт: - + Otherwise, the proxy server is only used for tracker connections В противен случай, прокси сървъра се използва само за връзки с тракера - + Use proxy for peer connections Използвайте прокси за свързване между участниците - + A&uthentication У&достоверяване - - Info: The password is saved unencrypted - Информация: Паролата е запазена некриптирана - - - + Filter path (.dat, .p2p, .p2b): Филтър път (.dat, .p2p, .p2b): - + Reload the filter Зареди повторно филтъра - + Manually banned IP addresses... Ръчно блокирани IP адреси... - + Apply to trackers Прилагане към тракери - + Global Rate Limits Общи Пределни Скорости - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s КиБ/с - - + + Upload: Качване: - - + + Download: Сваляне: - + Alternative Rate Limits Алтернативни Пределни Скорости - + Start time Начален час - + End time Крайно час - + When: Когато: - + Every day Всеки ден - + Weekdays Дни през седмицата - + Weekends Почивни дни - + Rate Limits Settings Настройки на Пределни Скорости - + Apply rate limit to peers on LAN Прилагане на пределна скорост за участници от локалната мрежа - + Apply rate limit to transport overhead Прилагане на пределна скорост за пренатоварено пренасяне - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Прилагане на пределна скорост за µTP протокола - + Privacy Дискретност - + Enable DHT (decentralized network) to find more peers Активиране на DHT (децентрализирана мрежа) за намиране на повече участници - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Обмени участници със съвместими Bittorrent клиенти (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Активиране на Обмяна на Участници (PeX) за намиране на повече участници - + Look for peers on your local network Търси участници в твоята локална мрежа - + Enable Local Peer Discovery to find more peers Включи Откриване на Локални Участници за намиране на повече връзки - + Encryption mode: Режим на кодиране: - + Require encryption Изискване на кодиране - + Disable encryption Изключване на кодиране - + Enable when using a proxy or a VPN connection Активиране при използване на прокси или VPN връзка - + Enable anonymous mode Включи анонимен режим - + Maximum active downloads: Максимум активни сваляния: - + Maximum active uploads: Максимум активни качвания: - + Maximum active torrents: Максимум активни торенти: - + Do not count slow torrents in these limits Не изчислявай бавни торенти в тези лимити - + Upload rate threshold: Праг на скоростта на качване: - + Download rate threshold: Праг на скоростта на изтегляне: - - - - + + + + sec seconds сек - + Torrent inactivity timer: Таймер за неактивност на торент: - + then тогава - + Use UPnP / NAT-PMP to forward the port from my router Изпозване на UPnP / NAT-PMP за препращане порта от моя рутер - + Certificate: Сертификат: - + Key: Ключ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Информация за сертификати</a> - + Change current password Промени текущата парола - - Use alternative Web UI - Ползвай алтернативен Уеб ПИ - - - + Files location: Местоположение на файловете: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Сигурност - + Enable clickjacking protection Разрежи защита от прихващане на щракване - + Enable Cross-Site Request Forgery (CSRF) protection Разреши Фалшифициране на заявки между сайтове (CSRF) защита - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Разреши потвърждаване на заглавната част на хоста - + Add custom HTTP headers Добави разширени HTTP заглавни части - + Header: value pairs, one per line Заглавна част: стойностни чифтове, един на ред - + Enable reverse proxy support Разреши поддръжка на обратно прокси - + Trusted proxies list: Списък на доверени прокси: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Услуга: - + Register Регистър - + Domain name: Домейн име: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Чрез активиране на тези опции, можете <strong>безвъзвратно да загубите</strong> вашите .torrent файлове! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Ако активирате втората опция (&ldquo;Също, когато добавянето е отказна&rdquo;) .torrent файлът <strong>ще бъде изтрит</strong> дори ако натиснете &ldquo;<strong>Отказ</strong>&rdquo; в диалога &ldquo;Добавяне торент&rdquo; - + Select qBittorrent UI Theme file Избиране на qBittorrent ПИ тема-файл - + Choose Alternative UI files location Избиране на алтернативно местоположение за ПИ файлове - + Supported parameters (case sensitive): Поддържани параметри (чувствителност към регистъра) - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence Забранен поради неуспех при засичане на присъствие на системен трей - + No stop condition is set. Не е зададено условие за спиране. - + Torrent will stop after metadata is received. Торента ще спре след като метаданни са получени. - Torrents that have metadata initially aren't affected. - Торенти, които имат метаданни първоначално не са засегнати. - - - + Torrent will stop after files are initially checked. Торента ще спре след като файловете са първоначално проверени. - + This will also download metadata if it wasn't there initially. Това също ще свали метаданни, ако ги е нямало първоначално. - + %N: Torrent name %N: Име на торент - + %L: Category %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: Сегашен тракер - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Подсказка: Обградете параметър с кавички за предотвратяваме орязването на текста при пауза (пр., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Без) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Торент ще бъде считан за бавен, ако скоростите му за изтегляне и качване стоят под тези стойности за "Таймер за неактивност на торент" секунди - + Certificate Сертификат - + Select certificate Избиране на сертификат - + Private key Частен ключ - + Select private key Избиране на частен ключ - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Избиране на директория за наблюдение - + Adding entry failed Добавянето на запис е неуспешно - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Грешка в местоположението - - + + Choose export directory Избиране на директория за експорт - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Когато тези опции са активирани, qBittorent ще <strong>изтрие</strong> .torrent файловете след като са били успешно (първата опция) или не (втората опция) добавени към тяхната опашка за сваляне. Това ще бъде приложено <strong>не само</strong> върху файловете отворени чрез &ldquo;Добави торент&rdquo; действието в менюто, но и също така върху тези отворени чрез <strong>асоцииране по файлов тип</strong>. - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent ПИ файл тема (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Тагове (разделени чрез запетая) - + %I: Info hash v1 (or '-' if unavailable) %I: Инфо хеш в1 (или '-', ако недостъпен) - + %J: Info hash v2 (or '-' if unavailable) %J: Инфо хеш в2 (или '-', ако недостъпен) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Торент ИД (или sha-1 инфо хеш за в1 торент или пресечен sha-256 инфо хеш за в2/хибриден торент) - - - + + + Choose a save directory Избиране на директория за запис - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Избиране файл на IP филтър - + All supported filters Всички подържани филтри - + The alternative WebUI files location cannot be blank. - + 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 правила бяха приложени. - + Preferences Предпочитания - + Time Error Времева грешка - + The start time and the end time can't be the same. Времето на стартиране и приключване не може да бъде едно и също. - - + + Length Error Дължинна Грешка @@ -7331,241 +7760,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Неизвестен - + Interested (local) and choked (peer) Заинтересуван (местен) и запушен (участник) - + Interested (local) and unchoked (peer) Заинтересуван (местен) и незапушен (участник) - + Interested (peer) and choked (local) Заинтересуван (участник) и запушен (местен) - + Interested (peer) and unchoked (local) Заинтересуван (участник) и незапушен (местен) - + Not interested (local) and unchoked (peer) Незаинтересуван (местен) и незапушен (участник) - + Not interested (peer) and unchoked (local) Незаинтересуван (участник) и незапушен (местен) - + Optimistic unchoke Оптимистично отпушване - + Peer snubbed Сгушен участник - + Incoming connection Входяща връзка - + Peer from DHT Участник от DHT - + Peer from PEX Участник от PEX - + Peer from LSD Участник от LSD - + Encrypted traffic Шифрован трафик - + Encrypted handshake Шифровано уговаряне + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Държава/Област - + IP/Address - + Port Порт - + Flags Флагове - + Connection Връзка - + Client i.e.: Client application Клиент - + Peer ID Client i.e.: Client resolved from Peer ID Клиент на участник ИД - + 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. Уместност - + Files i.e. files that are being downloaded right now Файлове - + Column visibility Видимост на колона - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания - + Add peers... Добави участници... - - + + Adding peers Добавяне на участници - + Some peers cannot be added. Check the Log for details. Някои участници не можаха да се добавят. Проверете Журнала за детайли. - + Peers are added to this torrent. Участниците бяха добавени към този торент. - - + + Ban peer permanently Блокиране на участника за постоянно - + Cannot add peers to a private torrent Не могат да се добавят участници към частен торент - + Cannot add peers when the torrent is checking Не могат да се добавят участници, когато торентът се проверява - + Cannot add peers when the torrent is queued Не могат да се добавят участници, когато торентът е в опашка - + No peer was selected Не е избран участник - + Are you sure you want to permanently ban the selected peers? Сигурни ли сте че искате да блокирате за постоянно избраните участници? - + Peer "%1" is manually banned Участник "%1" е ръчно блокиран - + N/A Няма - + Copy IP:port Копирай IP:порт @@ -7583,7 +8017,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Списък на участниците за добавяне (едно ИП на ред): - + Format: IPv4:port / [IPv6]:port Формат: IPv4:порт / [IPv6]:порт @@ -7624,27 +8058,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Файлове в това парче: - + File in this piece: Файл в това парче: - + File in these pieces: Файл в тези парчета: - + Wait until metadata become available to see detailed information Изчакайте, докато мета информацията стане налична, за да видите подробна информация - + Hold Shift key for detailed information Задържете клавиша Shift за подробна информация @@ -7657,58 +8091,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Търсене на добавки - + Installed search plugins: Инсталирани добавки за търсене: - + Name Име - + Version Версия - + Url Url - - + + Enabled Разрешено - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Предупреждение: Не забравяйте да спазвате законите за авторското право на вашата страна, когато изтегляте торенти от някоя от тези търсачки. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Инсталиране само на нови - + Check for updates Провери за обновяване - + Close Затвари - + Uninstall Деинсталирай @@ -7828,98 +8262,65 @@ Those plugins were disabled. Източник на приставката - + Search plugin source: Източник на приставка за търсене: - + Local file Локален файл - + Web link Уеб линк - - PowerManagement - - - qBittorrent is active - qBittorrent е активен - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Следните файлове от торент "%1" поддържат визуализация, моля изберете един от тях: - + Preview Преглед - + Name Име - + Size Размер - + Progress Напредък - + Preview impossible Прегледът е невъзможен - + Sorry, we can't preview this file: "%1". Съжаляваме, не можем да прегледаме този файл: "%1". - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания @@ -7932,27 +8333,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Път не съществува - + Path does not point to a directory Път не сочи към директория - + Path does not point to a file Път не сочи към файл - + Don't have read permission to path Няма права за четене към път - + Don't have write permission to path Няма права за писане към път @@ -7993,12 +8394,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Свалени: - + Availability: Наличност: @@ -8013,53 +8414,53 @@ Those plugins were disabled. Трансфер - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Време на активност: - + ETA: Оставащо време: - + Uploaded: Качени: - + Seeds: Споделящи: - + Download Speed: Скорост на Сваляне: - + Upload Speed: Скорост на Качване: - + Peers: Участници: - + Download Limit: Ограничение на Сваляне: - + Upload Limit: Ограничение на Качване: - + Wasted: Изгубени: @@ -8069,193 +8470,220 @@ Those plugins were disabled. Връзки: - + Information Информация - + Info Hash v1: Инфо хеш v1: - + Info Hash v2: Инфо хеш v2: - + Comment: Коментар: - + Select All Избери всички - + Select None Не избирай - + Share Ratio: Съотношение на Споделяне: - + Reannounce In: Повторно анонсиране В: - + Last Seen Complete: Последно Видян Приключен: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Общ Размер: - + Pieces: Части: - + Created By: Създаден От: - + Added On: Добавен На: - + Completed On: Завършен На: - + Created On: Създаден На: - + + Private: + + + + Save Path: Местоположение за Запис: - + Never Никога - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (средно %3) - - + + %1 (%2 this session) %1 (%2 тази сесия) - - + + + N/A Няма - + + Yes + Да + + + + No + Не + + + %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 средно) - - New Web seed - Ново Web споделяне + + Add web seed + Add HTTP source + - - Remove Web seed - Изтриване на Web споделяне + + Add web seed: + - - Copy Web seed URL - Копиране URL на Web споделяне + + + This web seed is already in the list. + - - Edit Web seed URL - Редактиране URL на Web споделяне - - - + Filter files... Филтриране на файловете... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Графиките на скоростта са изключени - + You can enable it in Advanced Options Можете да го разрешите в Разширени опции - - 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 споделяне: @@ -8263,33 +8691,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Невалиден формат на данни. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Запазване данни на RSS АвтоСваляч в %1 неуспешно. Грешка: %2 - + Invalid data format Невалиден формат на данни - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Зареждане данни на RSS АвтоСваляч неуспешно. Причина: %1 @@ -8297,22 +8725,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Не мога да сваля RSS поток от %1. Причина: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS потока '%1' е успешно обновен. Добавени са %2 нови статии. - + Failed to parse RSS feed at '%1'. Reason: %2 Не мога да прочета RSS поток от %1. Причина: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS потока '%1' е успешно свален. Започване на прочитането му. @@ -8348,12 +8776,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Невалиден RSS канал. - + %1 (line: %2, column: %3, offset: %4). %1 (ред: %2, колона: %3, отместване: %4). @@ -8361,103 +8789,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Не можа да се запази конфигурация на RSS сесия. Файл: "%1". Грешка: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Не можаха да се запазят данни на RSS сесия. Файл: "%1". Грешка: "%2" - - + + RSS feed with given URL already exists: %1. RSS канала със зададения URL вече съществува: %1 - + Feed doesn't exist: %1. - + Cannot move root folder. Не може да се премести коренната директория. - - + + Item doesn't exist: %1. Елементът не съществува: %1 - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Не може да се изтрие коренната директория. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Не можа да се зареди RSS поток. Поток: "%1". Причина: URL се изисква. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Не можа да се зареди RSS поток. Поток: "%1". Причина: UID е невалиден. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Дублиран RSS поток намерен. UID: "%1". Грешка: Конфигурацията изглежда е повредена. - + Couldn't load RSS item. Item: "%1". Invalid data format. Не можа да се зареди RSS предмет. Предмет: "%1". Невалиден формат на данните. - + Corrupted RSS list, not loading it. Повреден RSS списък, не се зарежда. - + Incorrect RSS Item path: %1. Неправилен път на RSS артикул: %1. - + RSS item with given path already exists: %1. RSS артикул със зададения път вече съществува: %1. - + Parent folder doesn't exist: %1. Родителската папка не съществува: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Интервал на опресняване: + + + + sec + сек + + + + Default + По подразбиране + + RSSWidget @@ -8477,8 +8946,8 @@ Those plugins were disabled. - - + + Mark items read Отбелязване на елементите като прочетени @@ -8503,132 +8972,115 @@ Those plugins were disabled. Торенти: (двойно кликване за сваляне) - - + + Delete Изтриване - + Rename... Преименуване... - + Rename Преименуване - - + + Update Обновяване - + New subscription... Нов абонамент... - - + + Update all feeds Обновяване на всички канали - + Download torrent Сваляне на торент - + Open news URL Отваряне на URL за новини - + Copy feed URL Копиране URL на канал - + New folder... Нова папка... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Моля изберете име на папка - + Folder name: Име на папка: - + New folder Нова папка - - - Please type a RSS feed URL - Моля въведете URL на RSS канал - - - - - Feed URL: - URL на канал: - - - + 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: Име на нов канал: - + Rename failed Преименуването неуспешно - + Date: Дата: - + Feed: - + Author: Автор: @@ -8636,38 +9088,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Python трябва да е инсталиран за да ползвате Търсачката. - + Unable to create more than %1 concurrent searches. Не може да се създаде повече от %1 едновременни търсения. - - + + Offset is out of range Отстъпа е извън обхват - + All plugins are already up to date. Всички ваши добавки са вече обновени. - + Updating %1 plugins Обновяване на %1 добавки - + Updating plugin %1 Обновяване на добавка %1 - + Failed to check for plugin updates: %1 Неуспешна проверка за обновявания на добавка: %1 @@ -8742,132 +9194,142 @@ Those plugins were disabled. Размер: - + 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 - Търсачка - - - + Filter search results... Филтрирай резултати на търсене... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Резултати (показва <i>%1</i> от <i>%2</i>): - + Torrent names only Само имена на торентите - + Everywhere Навсякъде - + Use regular expressions Ползване на регулярни изрази - + Open download window Отвори прозорец сваляне - + Download Свали - + Open description page Отиди в страницата с описанието - + Copy Копирай - + Name Име - + Download link Връзка за сваляне - + Description page URL URL на страница с описание - + Searching... Търсене... - + Search has finished Търсенето завърши - + Search aborted Търсенето е прекъснато - + An error occurred during search... Грешка възникна при търсене... - + Search returned no results Търсенето не даде резултати - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Видимост на колона - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания @@ -8875,104 +9337,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Непознат формат на файла за добавката за търсене. - + Plugin already at version %1, which is greater than %2 Добавката вече е на версия %1, която е по-голяма от %2 - + A more recent version of this plugin is already installed. По-нова версия на тази добавка е вече инсталирана. - + Plugin %1 is not supported. Добавката %1 не се поддържа. - - + + Plugin is not supported. Добавката не се поддържа. - + Plugin %1 has been successfully updated. %1 добавка на търсачката беше успешно обновена. - + All categories Всички категории - + Movies Филми - + TV shows TV предавания - + Music Музика - + Games Игри - + Anime Аниме - + Software Софтуер - + Pictures Картини - + Books Книги - + Update server is temporarily unavailable. %1 Сървърът за обновления е временно недостъпен. %1 - - + + Failed to download the plugin file. %1 Неуспешно сваляне на файла на добавката. %1 - + Plugin "%1" is outdated, updating to version %2 Добавката "%1" е остаряла, обновяване до версия %2 - + Incorrect update info received for %1 out of %2 plugins. Неправилна информация за обновление е получена за %1 от %2 добавки. - + Search plugin '%1' contains invalid version string ('%2') Добавката за търсене '%1' съдържа невалидна версия ('%2') @@ -8982,114 +9444,145 @@ Those plugins were disabled. - - - - Search Търсене - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Няма никакви инсталирани добавки за търсене. Кликнете бутона "Търсене на добавки..." в долния десен ъгъл на прозореца, за да инсталирате някоя. - + Search plugins... Търсене на добавки... - + A phrase to search for. Фраза за търсене. - + Spaces in a search term may be protected by double quotes. Паузите в фразата за търсене могат да бъдат предпазени с двойни кавички. - + Example: Search phrase example Пример: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: търси за - + All plugins Всички добавки - + Only enabled Само активиран - + + + Invalid data format. + Невалиден формат на данни. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: търси за <b>foo</b> и <b>bar</b> - + + Refresh + + + + Close tab Затваряне на раздел - + Close all tabs Затваряне на всички раздели - + Select... Избор... - - - + + Search Engine Търсачка - + + Please install Python to use the Search Engine. Моля инсталирайте Python, за да ползвате Търсачката. - + Empty search pattern Празен шаблон за търсене - + Please type a search pattern first Моля въведете първо шаблон за търсене - + + Stop Спиране + + + SearchWidget::DataStorage - - Search has finished - Търсенето завърши + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Търсенето бе неуспешно + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9202,34 +9695,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Качване: - - - + + + - - - + + + KiB/s КиБ/с - - + + Download: Сваляне: - + Alternative speed limits Други ограничения за скорост @@ -9421,32 +9914,32 @@ Click the "Search plugins..." button at the bottom right of the window Осреднено време на опашка: - + Connected peers: Свързани пиъри: - + All-time share ratio: Съотношение за споделяне за всичкото време: - + All-time download: Общо свалено: - + Session waste: Загуба на сесия: - + All-time upload: Общо качено: - + Total buffer size: Общ размер на буфера: @@ -9461,12 +9954,12 @@ Click the "Search plugins..." button at the bottom right of the window Наредени на опашка В/И задачи: - + Write cache overload: Запиши кеша при претоварване: - + Read cache overload: Прочети кеша при претоварване: @@ -9485,51 +9978,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Състояние на връзката: - - + + No direct connections. This may indicate network configuration problems. Няма директни връзки. Това може да е от проблеми в мрежовата настройка. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 възли - + qBittorrent needs to be restarted! qBittorrent се нуждае от рестарт - - - + + + Connection Status: Състояние на връзката: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Извън мрежа. Това обикновено означава, че qBittorrent не е успял да прослуша избрания порт за входни връзки. - + Online Онлайн - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Натисни за смяна към други ограничения за скорост - + Click to switch to regular speed limits Натисни за смяна към стандартни ограничения за скорост @@ -9559,13 +10078,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Продължени (0) + Running (0) + - Paused (0) - В пауза (0) + Stopped (0) + @@ -9627,36 +10146,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Приключени (%1) + + + Running (%1) + + - Paused (%1) - В Пауза (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) Преместване (%1) - - - Resume torrents - Продължи торентите - - - - Pause torrents - Пауза на торентите - Remove torrents Премахни торенти - - - Resumed (%1) - Продължени (%1) - Active (%1) @@ -9728,31 +10247,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Изтриване на неизползвани етикети - - - Resume torrents - Продължаване на торенти - - - - Pause torrents - Пауза на торентите - Remove torrents Премахни торенти - - New Tag - Нов Етикет + + Start torrents + + + + + Stop torrents + Tag: Етикет: + + + Add tag + + Invalid tag name @@ -9899,32 +10418,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Име - + Progress Изпълнение - + Download Priority Приоритет на Сваляне - + Remaining Остават - + Availability Наличност - + Total Size Общ размер @@ -9969,98 +10488,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Грешка при преименуване - + Renaming Преименуване - + New name: Ново име: - + Column visibility Видимост на колона - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания - + Open Отваряне - + Open containing folder Отваряне на съдържаща папка - + Rename... Преименувай... - + Priority Предимство - - + + Do not download Не сваляй - + Normal Нормален - + High Висок - + Maximum Максимален - + By shown file order По реда на показания файл - + Normal priority Нормален приоритет - + High priority Висок приоритет - + Maximum priority Максимален приоритет - + Priority by shown file order Приоритет според реда на показания файл @@ -10068,17 +10587,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10107,13 +10626,13 @@ Please choose a different name and try again. - + Select file Избери файл - + Select folder Избери папка @@ -10188,87 +10707,83 @@ Please choose a different name and try again. Полета - + You can separate tracker tiers / groups with an empty line. Можете да разделите тракер комплекти / групи с празен ред. - + Web seed URLs: Уеб сийд: - + Tracker URLs: Адрес на тракера: - + Comments: Коментари: - + Source: Източник: - + Progress: Напредък: - + Create Torrent Създай торент - - + + Torrent creation failed Създаването на торента се провали - + Reason: Path to file/folder is not readable. Причина: Пътят до файл/папка не може да се чете. - + Select where to save the new torrent Изберете къде да запазите новия торент - + Torrent Files (*.torrent) Торент файлове (*.torrent) - Reason: %1 - Причина: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Създаване на нов торент - + Torrent created: Торентът е създаден: @@ -10276,32 +10791,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 Не можа да се съхрани Наблюдавани папки конфигурация към %1. Грешка: %2 - + Watched folder Path cannot be empty. Пътя на наблюдаваната папка не може да бъде празен. - + Watched folder Path cannot be relative. Пътя на наблюдаваната папка не може да бъде относителен. @@ -10309,44 +10824,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 Неуспешно отваряне на магнитен файл: %1 - + Rejecting failed torrent file: %1 Отхвърляне на неуспешен торент файл: %1 - + Watching folder: "%1" Наблюдаване на папка: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Невалидни метаданни - - TorrentOptionsDialog @@ -10375,173 +10877,161 @@ Please choose a different name and try again. Използвай друг път за незавършен торент - + Category: Категория: - - Torrent speed limits - Ограничения за скорост на торент + + Torrent Share Limits + - + Download: Сваляне: - - + + - - + + Torrent Speed Limits + + + + + KiB/s КиБ/с - + These will not exceed the global limits Тези няма да надхвърлят глобалните ограничения - + Upload: Качване: - - Torrent share limits - Ограничения за споделяне на торент - - - - Use global share limit - Използвай глобално ограничение за споделяне - - - - Set no share limit - Задаване без ограничение на споделяне - - - - Set share limit to - Задаване на ограничение за споделяне на - - - - ratio - съотношение - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Забраняване DHT за този торент - + Download in sequential order Сваляне в последователен ред - + Disable PeX for this torrent Забраняване PeX за този торент - + Download first and last pieces first Сваляне на първите и последните парчета първо - + Disable LSD for this torrent Забраняване LSD за този торент - + Currently used categories Текущо използвани категории - - + + Choose save path Избери път на запазване - + Not applicable to private torrents Не приложимо за частни торенти - - - No share limit method selected - Няма избран метод на ограничение на споделяне - - - - Please select a limit method first - Моля първо изберете метод на ограничение първо - TorrentShareLimitsWidget - - - + + + + Default - По подразбиране + По подразбиране - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + мин - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Премахни торент + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Разреши супер засяване за торент + + + Ratio: @@ -10554,32 +11044,32 @@ Please choose a different name and try again. - - New Tag - Нов Етикет + + Add tag + - + Tag: Етикет: - + Invalid tag name Невалидно име на етикет - + Tag name '%1' is invalid. - + Tag exists Етикетът вече съществува - + Tag name already exists. Името на етикета вече съществува. @@ -10587,115 +11077,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Грешка: '%1' не е валиден торент файл. - + Priority must be an integer Приоритет трябва да е цяло число - + Priority is not valid Приоритет не е валиден - + Torrent's metadata has not yet downloaded Метаданни на торент все още не са свалени - + File IDs must be integers Файлови ИД-та трябва да са цели числа - + File ID is not valid Файлов ИД не е валиден - - - - + + + + Torrent queueing must be enabled Торентово нареждане на опашка трябва да бъде разрешено - - + + Save path cannot be empty Пътя на запазване не може да бъде празен - - + + Cannot create target directory Не може да се създаде целева директория - - + + Category cannot be empty Категория не може да бъде празна - + Unable to create category Не можа да се създаде категория - + Unable to edit category Не можа са се редактира категория - + Unable to export torrent file. Error: %1 Не може да се изнесе торент файл. Грешка: "%1". - + Cannot make save path Не може да се направи път на запазване - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 'сортиране' параметър е невалиден - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" не е валиден файлов индекс. - + Index %1 is out of bounds. Индекс %1 е извън граници. - - + + Cannot write to directory Не може да се запише в директория - + WebUI Set location: moving "%1", from "%2" to "%3" УебПИ Задаване на местоположение: преместване "%1", от "%2" в "%3" - + Incorrect torrent name Неправилно име на торент - - + + Incorrect category name Неправилно име на категория @@ -10726,196 +11231,191 @@ Please choose a different name and try again. TrackerListModel - + Working Работи - + Disabled Забранено - + Disabled for this torrent Забранено за този торент - + This torrent is private Този торент е частен - + N/A Няма - + Updating... Обновяване... - + Not working Не работи - + Tracker error - + Unreachable - + Not contacted yet Още не е свързан - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Ред - - - - Protocol + URL/Announce Endpoint - Status - Състояние - - - - Peers - Участници - - - - Seeds - Споделящи - - - - Leeches - Лийчове - - - - Times Downloaded - Пъти свалено - - - - Message - Съобщение - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Ред + + + + Status + Състояние + + + + Peers + Участници + + + + Seeds + Споделящи + + + + Leeches + Лийчове + + + + Times Downloaded + Пъти свалено + + + + Message + Съобщение + TrackerListWidget - + This torrent is private Този торент е частен - + Tracker editing Редактиране на тракера - + Tracker URL: URL адрес на тракера: - - + + Tracker editing failed Редактирането на тракера е неуспешно - + The tracker URL entered is invalid. Въведеният URL адрес на тракер е невалиден. - + The tracker URL already exists. URL адреса на тракера вече съществува. - + Edit tracker URL... Редактирай URL на тракера... - + Remove tracker Премахни тракер - + Copy tracker URL Копиране на URL на тракер - + Force reannounce to selected trackers Принудително повторно анонсиране към избраните тракери - + Force reannounce to all trackers Принудително анонсиране към всички тракери - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания - + Add trackers... Добави тракери... - + Column visibility Видимост на колона @@ -10933,37 +11433,37 @@ Please choose a different name and try again. Списък тракери за добавяне (по един на ред): - + µTorrent compatible list URL: µTorrent съвместим списък URL: - + Download trackers list Свали списък тракери - + Add Добави - + Trackers list URL error Грешка в списък URL на тракери - + The trackers list URL cannot be empty Списъкът URL на тракери не може да бъде празен - + Download trackers list error Грешка в сваляне списък тракери - + Error occurred when downloading the trackers list. Reason: "%1" Грешка възникна при сваляне на списъкът тракери. Причина: "%1" @@ -10971,62 +11471,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Внимание (%1) - + Trackerless (%1) Без тракери (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Премахни тракер - - Resume torrents - Продължи торентите + + Start torrents + - - Pause torrents - Пауза на торентите + + Stop torrents + - + Remove torrents Премахни торенти - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Всички (%1) @@ -11035,7 +11535,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'режим': невалиден аргумент @@ -11127,11 +11627,6 @@ Please choose a different name and try again. 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. Проверка на данните за продължаване - - - Paused - В Пауза - Completed @@ -11155,220 +11650,252 @@ Please choose a different name and try again. С грешки - + Name i.e: torrent name Име - + Size i.e: torrent size Размер - + Progress % Done Напредък - - Status - Torrent status (e.g. downloading, seeding, paused) - Статус + + Stopped + Спрян - + + Status + Torrent status (e.g. downloading, seeding, stopped) + Състояние + + + Seeds i.e. full sources (often untranslated) Споделящи - + Peers i.e. partial sources (often untranslated) Участници - + Down Speed i.e: Download speed Скорост теглене - + Up Speed i.e: Upload speed Скорост качване - + Ratio Share ratio Съотношение - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Оставащо време - + Category Категория - + Tags Етикети - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Добавен на - + Completed On Torrent was completed on 01/01/2010 08:00 Завършен на - + Tracker Тракер - + Down Limit i.e: Download limit Ограничение теглене - + Up Limit i.e: Upload limit Ограничение качване - + Downloaded Amount of data downloaded (e.g. in MB) Свалени - + Uploaded Amount of data uploaded (e.g. in MB) Качени - + 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) Качване в сесията - + Remaining Amount of data left to download (e.g. in MB) Оставащо - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Време активен - + + Yes + Да + + + + No + Не + + + Save Path Torrent save path Път на запазване - + Incomplete Save Path Torrent incomplete save path Непълен път на запазване - + Completed Amount of data completed (e.g. in MB) Приключено - + Ratio Limit Upload share ratio limit Ограничение на коефицента - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Последно видян приключен - + Last Activity Time passed since a chunk was downloaded/uploaded Последна активност - + Total Size i.e. Size including unwanted data Общ размер - + Availability The number of distributed copies of the torrent Наличност - + Info Hash v1 i.e: torrent info hash v1 Инфо хеш в1 - + Info Hash v2 i.e: torrent info hash v2 Инфо хеш в2: - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Няма - + %1 ago e.g.: 1h 20m ago преди %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (споделян за %2) @@ -11377,339 +11904,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Видимост на колона - + Recheck confirmation Потвърждение за повторна проверка - + Are you sure you want to recheck the selected torrent(s)? Сигурни ли сте, че искате повторно да проверите избрания торент(и)? - + Rename Преименувай - + New name: Ново име: - + Choose save path Избери път за съхранение - - Confirm pause - Потвърди пауза - - - - Would you like to pause all torrents? - Бихте ли искали да поставите на пауза всички торенти? - - - - Confirm resume - Потвърди продължение - - - - Would you like to resume all torrents? - Бихте ли искали да продължите всички торенти? - - - + Unable to preview Не може да се визуализира - + The selected torrent "%1" does not contain previewable files Избраният торент "%1" не съдържа файлове за визуализация - + Resize columns Преоразмери колони - + Resize all non-hidden columns to the size of their contents Преоразмери всички нескрити колони до размерът на техните съдържания - + Enable automatic torrent management Разреши автоматично управление на торент - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Сигурни ли сте, че искате да разрешите автоматично управление на торент за избраният/те торент(и)? Те могат да бъдат преместени. - - Add Tags - Добави Етикети - - - + Choose folder to save exported .torrent files Изберете папка за запазване на изнесени .torrent файлове - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Изнасяне на .torrent файл неуспешно. Торент "%1". Път на запазване: "%2". Причина: "%3" - + A file with the same name already exists Файл със същото име вече съществува - + Export .torrent file error Грешка при изнасяне на .torrent файл - + Remove All Tags Изтрий Всички Етикети - + Remove all tags from selected torrents? Изтриване на всички етикети от избраните торенти? - + Comma-separated tags: Етикети разделени чрез запетаи: - + Invalid tag Невалиден етикет - + Tag name: '%1' is invalid Името на етикета '%1' е невалидно - - &Resume - Resume/start the torrent - &Продължи - - - - &Pause - Pause the torrent - &Пауза - - - - Force Resu&me - Force Resume/start the torrent - Насилствено продъл&жи - - - + Pre&view file... Пре&гледай файл... - + Torrent &options... Торент &опции... - + Open destination &folder Отвори &папка на местонахождение - + Move &up i.e. move up in the queue Премести &нагоре - + Move &down i.e. Move down in the queue Премести &надолу - + Move to &top i.e. Move to top of the queue Премести на &върха - + Move to &bottom i.e. Move to bottom of the queue Премести на &дъното - + Set loc&ation... Задаване на мес&тоположение... - + Force rec&heck Принудително пре&провери - + Force r&eannounce Принудително р&еанонсирай - + &Magnet link &Магнитна връзка - + Torrent &ID Торент &ИД - + &Comment - + &Name &Име - + Info &hash v1 Инфо &хеш в1 - + Info h&ash v2 Инфо &хеш в2 - + Re&name... Пре&именувай... - + Edit trac&kers... Редактирай тра&кери... - + E&xport .torrent... И&знеси .torrent... - + Categor&y Категори&я - + &New... New category... &Нов... - + &Reset Reset category &Нулирай - + Ta&gs Та&гове - + &Add... Add / assign multiple tags... &Добави... - + &Remove All Remove all tags &Премахни всички - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Опашка - + &Copy &Копирай - + Exported torrent is not necessarily the same as the imported Изнесен торент е необезателно същият като внесения торент - + Download in sequential order Сваляне по азбучен ред - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Грешки възникнаха при изнасяне на .torrent файлове. Проверете дневника на изпълняване за подробности. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Премахни - + Download first and last pieces first Сваляне първо на първото и последното парче - + Automatic Torrent Management Автоматичен Торентов Режим на Управаление - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Автоматичен режим значи, че различни свойства на торент (н. пр. път на запазване) ще бъдат решени от асоциираната категория - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Не може да се принуди реанонсиране, ако торента е в пауза/опашка/грешка/проверка - - - + Super seeding mode Режим на супер-даване @@ -11754,28 +12261,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11783,7 +12290,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Неуспешно зареждане на UI тема от файл: "%1" @@ -11814,20 +12326,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Мигриране на предпочитанията се провали: УебПИ http-та, файл: "%1", грешка: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Мигрирани предпочитания: УебПИ http-та, изнесени данни във файл: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Невалидна стойност намерена в конфигурационен файл, връщане към по подразбиране. Ключ: "%1". Невалидна стойност: "%2". @@ -11835,32 +12348,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11952,72 +12465,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Неприемлив тип файл, разрешен е само обикновен файл. - + Symlinks inside alternative UI folder are forbidden. Символните връзки в алтернативната папка на потребителския интерфейс са забранени. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Липсва разделител ":" в WebUI потребителски HTTP заглавка: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Заглавната част на източника и целевия източник не съответстват. IP източник: '%1'. Заглавна част на източник: '%2'. Целеви източник: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Заглавната част на рефера и целевия източник не съвпадат! IP на източник: '%1'. Заглавна част на рефера: '%2. Целеви източник: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Невалидна заглавна част на хоста, несъвпадение на порт! Заявка на IP на източник: '%1'. Сървър порт: '%2. Получена заглавна част на хост: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Невалидна заглавна част на хост. Заявка на IP на източник: '%1'. Получена заглавна част на хост: '%2' @@ -12025,125 +12538,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Непозната грешка + + misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) ТБ - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second - + %1s e.g: 10 seconds - %1мин {1s?} + - + %1m e.g: 10 minutes %1мин - + %1h %2m e.g: 3 hours 5 minutes %1ч%2мин - + %1d %2h e.g: 2 days 10 hours %1д%2ч - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) Неизвестен - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent ще угаси компютъра, защото всички сваляния са завършени. - + < 1m < 1 minute < 1мин diff --git a/src/lang/qbittorrent_ca.ts b/src/lang/qbittorrent_ca.ts index d0dfd0f40..dddb742e0 100644 --- a/src/lang/qbittorrent_ca.ts +++ b/src/lang/qbittorrent_ca.ts @@ -14,75 +14,75 @@ Quant a - + Authors Autors - + Current maintainer Mantenidor actual - + Greece Grècia - - + + Nationality: Nacionalitat: - - + + E-mail: Correu electrònic: - - + + Name: Nom: - + Original author Autor original - + France França - + Special Thanks Agraïments especials - + Translators Traductors - + License Llicència - + Software Used Programari usat - + qBittorrent was built with the following libraries: El qBittorrent s'ha construït amb les biblioteques següents: - + Copy to clipboard Copia-ho al porta-retalls @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 El projecte qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 El projecte qBittorrent @@ -166,15 +166,10 @@ Desa a - + Never show again No ho tornis a mostrar. - - - Torrent settings - Configuració del torrent - Set as default category @@ -191,12 +186,12 @@ Inicia el torrent - + Torrent information Informació del torrent - + Skip hash check Omet la comprovació del resum @@ -205,6 +200,11 @@ Use another path for incomplete torrent Usa un altre camí per al torrent incomplet + + + Torrent options + Opcions del torrent + Tags: @@ -231,75 +231,75 @@ Condició d'aturada: - - + + None Cap - - + + Metadata received Metadades rebudes - + Torrents that have metadata initially will be added as stopped. - + Els torrents que tinguin metadades inicialment s'afegiran com a aturats. - - + + Files checked Fitxers comprovats - + Add to top of queue Afegeix al capdamunt de la cua - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Quan està marcat, el fitxer .torrent no se suprimirà independentment de la configuració de la pàgina Descarrega del diàleg Opcions. - + Content layout: Disposició del contingut: - + Original Original - + Create subfolder Crea una subcarpeta - + Don't create subfolder No creïs una subcarpeta - + Info hash v1: Informació de la funció resum v1: - + Size: Mida: - + Comment: Comentari: - + Date: Data: @@ -329,151 +329,147 @@ Recorda l'últim camí on desar-ho usat - + Do not delete .torrent file No suprimeixis el fitxer .torrent - + Download in sequential order Baixa en ordre seqüencial - + Download first and last pieces first Baixa primer els trossos del principi i del final - + Info hash v2: Informació de la funció resum v2: - + Select All Selecciona-ho tot - + Select None No seleccionis res - + Save as .torrent file... Desa com a fitxer .torrent... - + I/O Error Error d'entrada / sortida - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Magnet link Enllaç magnètic - + Retrieving metadata... Rebent les metadades... - - + + Choose save path Trieu el camí on desar-ho - + No stop condition is set. No s'ha establert cap condició d'aturada. - + Torrent will stop after metadata is received. El torrent s'aturarà després de rebre les metadades. - Torrents that have metadata initially aren't affected. - Els torrents que tinguin metadades inicialment no n'estan afectats. - - - + Torrent will stop after files are initially checked. El torrent s'aturarà després de la comprovació inicial dels fitxers. - + This will also download metadata if it wasn't there initially. Això també baixarà metadades si no n'hi havia inicialment. - - + + N/A N / D - + %1 (Free space on disk: %2) %1 (Espai lliure al disc: %2) - + Not available This size is unavailable. No disponible - + Torrent file (*%1) Fitxer torrent (*%1) - + Save as torrent file Desa com a fitxer torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. No s'ha pogut exportar el fitxer de metadades del torrent %1. Raó: %2. - + Cannot create v2 torrent until its data is fully downloaded. No es pot crear el torrent v2 fins que les seves dades estiguin totalment baixades. - + Filter files... Filtra els fitxers... - + Parsing metadata... Analitzant les metadades... - + Metadata retrieval complete S'ha completat la recuperació de metadades @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Es baixa el torrent... Font: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" No s'ha pogut afegir el torrent. Font: "%1". Raó: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - S'ha detectat un intent d'afegir un torrent duplicat. Font: %1. Torrent existent: %2. Resultat: %3 - - - + Merging of trackers is disabled La fusió de rastrejadors està desactivada. - + Trackers cannot be merged because it is a private torrent Els rastrejadors no es poden fusionar perquè és un torrent privat. - + Trackers are merged from new source Els rastrejadors es fusionen des de la font nova. + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Límits de compartició del torrent + Límits de compartició del torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torna a comprovar els torrents completats - - + + ms milliseconds ms - + Setting Configuració - + Value Value set for this setting Valor - + (disabled) (inhabilitat) - + (auto) (automàtic) - + + min minutes min - + All addresses Totes les adreces - + qBittorrent Section Secció de qBittorrent - - + + Open documentation Obre la documentació - + All IPv4 addresses Totes les adreces d'IPv4 - + All IPv6 addresses Totes les adreces d'IPv6 - + libtorrent Section Secció de libtorrent - + Fastresume files Fitxers de represa ràpida - + SQLite database (experimental) Base de dades SQLite (experimental) - + Resume data storage type (requires restart) Tipus d'emmagatzematge de dades de represa (requereix reiniciar) - + Normal Normal - + Below normal Inferior a normal - + Medium Mitjà - + Low Baix - + Very low Molt baix - + Physical memory (RAM) usage limit Límit d'ús de la memòria física (RAM). - + Asynchronous I/O threads Fils d'E/S asincrònics - + Hashing threads Fils de resum - + File pool size Mida de l'agrupació de fitxers - + Outstanding memory when checking torrents Memòria excepcional en comprovar torrents - + Disk cache Cau del disc - - - - + + + + + s seconds s - + Disk cache expiry interval Interval de caducitat de la memòria cau del disc - + Disk queue size Mida de la cua del disc - - + + Enable OS cache Habilita la memòria cau del sistema operatiu - + Coalesce reads & writes Fusiona les lectures i escriptures - + Use piece extent affinity Usa l'afinitat d'extensió de tros. - + Send upload piece suggestions Envia suggeriments de càrrega de trossos - - - - + + + + + 0 (disabled) 0 (desactivat) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Guardar l'interval de dades de continuació [0: desactivat] - + Outgoing ports (Min) [0: disabled] Ports de surtida (Min) [0: desactivat] - + Outgoing ports (Max) [0: disabled] Ports de sortida (Max) [0: desactivat] - + 0 (permanent lease) 0 (cessió permanent) - + UPnP lease duration [0: permanent lease] Duració de la cessió UPnP [0: cessió permanent] - + Stop tracker timeout [0: disabled] Aturar el comptador de tracker [0: desactivat] - + Notification timeout [0: infinite, -1: system default] Compte de notificació [0: infinit, -1: per defecte de sistema] - + Maximum outstanding requests to a single peer Màxim de sol·licituds pendents per a un sol client - - - - - + + + + + KiB KiB - + (infinite) (infinit) - + (system default) (per defecte de sistema) - + + Delete files permanently + Suprimeix fitxers permanentment + + + + Move files to trash (if possible) + Mou els fitxers a la paperera (si és possible) + + + + Torrent content removing mode + Mode de supressió de contingut del torrent + + + This option is less effective on Linux Aquesta opció és menys efectiva a Linux. - + Process memory priority Prioritat de memòria del procés - + Bdecode depth limit Bdecode: límit de profunditat - + Bdecode token limit Bdecode: límit de testimonis - + Default Per defecte - + Memory mapped files Fitxers assignats a la memòria - + POSIX-compliant Compatible amb POSIX - + + Simple pread/pwrite + Pread/pwrite simple + + + Disk IO type (requires restart) Tipus d'E / S del disc (requereix reinici) - - + + Disable OS cache Inhabilita la cau del SO - + Disk IO read mode Mode de lectura d'E/S del disc - + Write-through Escriu a través - + Disk IO write mode Mode d'escriptura d'E/S del disc - + Send buffer watermark Envia la marca d'aigua de la memòria intermèdia - + Send buffer low watermark Envia la marca d'aigua feble de la memòria intermèdia - + Send buffer watermark factor Envia el factor la marca d'aigua de la memòria intermèdia - + Outgoing connections per second Connexions sortints per segon - - + + 0 (system default) 0 (per defecte de sistema) - + Socket send buffer size [0: system default] Mida del buffer de socket d'enviament [0: per defecte de sistema] - + Socket receive buffer size [0: system default] Mida del buffer del socket de recepció [0: per defecte de sistema] - + Socket backlog size Mida del registre històric del sòcol - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Desa l'interval d'estadístiques [0: desactivat] + + + .torrent file size limit Límit de mida del fitxer .torrent - + Type of service (ToS) for connections to peers Tipus de servei (ToS) per a connexions amb clients - + Prefer TCP Prefereix TCP - + Peer proportional (throttles TCP) Proporcional als clients (acceleració de TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Admet el nom de domini internacionalitzat (IDN) - + Allow multiple connections from the same IP address Permet connexions múltiples des de la mateixa adreça IP - + Validate HTTPS tracker certificates Valida els certificats del rastrejador d'HTTPS - + Server-side request forgery (SSRF) mitigation Mitigació de falsificació de sol·licituds del costat del servidor (SSRF) - + Disallow connection to peers on privileged ports No permetis la connexió a clients en ports privilegiats - + It appends the text to the window title to help distinguish qBittorent instances - + Afegeix el text al títol de la finestra per ajudar a distingir les instàncies del qBittorent. - + Customize application instance name - + Personalitza el nom de la instància de l'aplicació - + It controls the internal state update interval which in turn will affect UI updates Controla l'interval d'actualització de l'estat intern que, al seu torn, afectarà les actualitzacions de la interfície d'usuari. - + Refresh interval Interval d'actualització - + Resolve peer host names Resol els noms d'amfitrió dels clients - + IP address reported to trackers (requires restart) Adreça IP informada als rastrejadors (requereix reinici) - + + Port reported to trackers (requires restart) [0: listening port] + Port informat als rastrejadors (requereix reinici) [0: port d'escolta] + + + Reannounce to all trackers when IP or port changed Torna a anunciar-ho a tots els rastrejadors quan es canviï d’IP o de port. - + Enable icons in menus Habilita icones als menús - + + Attach "Add new torrent" dialog to main window + Adjunta el diàleg "Afegeix un torrent nou" a la finestra principal. + + + Enable port forwarding for embedded tracker Habilita el reenviament de port per al rastrejador integrat. - + Enable quarantine for downloaded files Activa la quarantena per als fitxers baixats. - + Enable Mark-of-the-Web (MOTW) for downloaded files Habilita Mark-of-the-Web (MOTW) per als fitxers baixats. - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Afecta la validació de certificats i les activitats de protocol que no són de torrents (per exemple, fonts RSS, actualitzacions de programes, fitxers torrent, bases de dades geoip, etc.) + + + + Ignore SSL errors + Ignora els errors d'SSL + + + (Auto detect if empty) (Detecció automàtica si està buit) - + Python executable path (may require restart) Camí executable de Python (pot caldre reiniciar) - + + Start BitTorrent session in paused state + Inicia la sessió del BitTorrent en estat de pausa. + + + + sec + seconds + s + + + + -1 (unlimited) + -1 (sense límit) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Temps d'espera d'aturada de la sessió del BitTorrent [-1: sense límit] + + + Confirm removal of tracker from all torrents Confirmeu l'eliminació del rastrejador de tots els torrents. - + Peer turnover disconnect percentage Percentatge de desconnexió de la rotació de clients - + Peer turnover threshold percentage Percentatge del límit de la rotació de clients - + Peer turnover disconnect interval Interval de desconnexió de la rotació de clients - + Resets to default if empty Restableix els valors predeterminats si està buit. - + DHT bootstrap nodes Nodes d'arrencada de DHT - + I2P inbound quantity Quantitat d'entrada I2P - + I2P outbound quantity Quantitat de sortida I2P - + I2P inbound length Longitud d'entrada I2P - + I2P outbound length Longitud de sortida I2P - + Display notifications Mostra notificacions - + Display notifications for added torrents Mostra notificacions per als torrents afegits - + Download tracker's favicon Baixa la icona de web del rastrejador - + Save path history length Llargada de l'historial de camins on desar-ho - + Enable speed graphs Habilita els gràfics de velocitat - + Fixed slots Ranures fixes - + Upload rate based Segons la velocitat de pujada - + Upload slots behavior Comportament de les ranures de pujada - + Round-robin Algoritme Round-robin - + Fastest upload La pujada més ràpida - + Anti-leech Antisangoneres - + Upload choking algorithm Algorisme d'ofec de pujada - + Confirm torrent recheck Confirma la verificació del torrent - + Confirm removal of all tags Confirmació de supressió de totes les etiquetes - + Always announce to all trackers in a tier Anuncia sempre a tots els rastrejadors en un nivell - + Always announce to all tiers Anuncia sempre a tots els nivells - + Any interface i.e. Any network interface Qualsevol interfície - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algorisme de mode mixt %1-TCP - + Resolve peer countries Resol els països dels clients. - + Network interface Interfície de xarxa - + Optional IP address to bind to Adreça IP opcional per vincular-s'hi - + Max concurrent HTTP announces Màxim d'anuncis d'HTTP concurrents - + Enable embedded tracker Habilita el rastrejador integrat - + Embedded tracker port Port d'integració del rastrejador + + AppController + + + + Invalid directory path + Camí de directori no vàlid + + + + Directory does not exist + El directori ni existeix. + + + + Invalid mode, allowed values: %1 + Mode no vàlid, valors permesos: %1 + + + + cookies must be array + les galetes han de ser una matriu + + Application - + Running in portable mode. Auto detected profile folder at: %1 S'executa en mode portàtil. Carpeta de perfil detectada automàticament a %1. - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. S'ha detectat una bandera de línia d'ordres redundant: "%1". El mode portàtil implica una represa ràpida relativa. - + Using config directory: %1 S'usa el directori de configuració %1 - + Torrent name: %1 Nom del torrent: %1 - + Torrent size: %1 Mida del torrent: %1 - + Save path: %1 Camí on desar-ho: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds El torrent s'ha baixat: %1. - + + Thank you for using qBittorrent. Gràcies per utilitzar el qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, enviant notificació per e-mail - + Add torrent failed S'ha produït un error en afegir el torrent. - + Couldn't add torrent '%1', reason: %2. No s'ha pogut afegir el torrent %1. Raó: %2. - + The WebUI administrator username is: %1 El nom d'usuari d'administrador de la interfície web és %1. - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 La contrasenya de l'administrador de la interfície web no s'ha establert. Es proporciona una contrasenya temporal per a aquesta sessió: %1 - + You should set your own password in program preferences. Hauríeu d'establir la vostra contrasenya a les preferències del programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. La interfície web està desactivada! Per habilitar-la, editeu el fitxer de configuració manualment. - + Running external program. Torrent: "%1". Command: `%2` Execució de programa extern. Torrent: "%1". Ordre: %2 - + Failed to run external program. Torrent: "%1". Command: `%2` Ha fallat executar el programa extern. Torrent: "%1". Ordre: %2 - + Torrent "%1" has finished downloading El torrent "%1" s'ha acabat de baixar. - + WebUI will be started shortly after internal preparations. Please wait... La Interfície d'usuari web s'iniciarà poc després dels preparatius interns. Si us plau, espereu... - - + + Loading torrents... Es carreguen els torrents... - + E&xit S&urt - + I/O Error i.e: Input/Output Error Error d'entrada / sortida - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Raó: %2 - + Torrent added Torrent afegit - + '%1' was added. e.g: xxx.avi was added. S'ha afegit "%1". - + Download completed Baixada completa - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started El qBittorrent %1 s'ha iniciat. ID de procés: %2 - + + This is a test email. + Aquest és un correu electrònic de prova. + + + + Test email + Prova de correu electrònic + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. «%1» s'ha acabat de baixar. - + Information Informació - + To fix the error, you may need to edit the config file manually. Per corregir l'error, és possible que hàgiu d'editar el fitxer de configuració manualment. - + To control qBittorrent, access the WebUI at: %1 Per a controlar el qBittorrent, accediu a la interfície web a: %1 - + Exit Surt - + Recursive download confirmation Confirmació de baixades recursives - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? El torrent "%1" conté fitxers .torrent. En voleu continuar les baixades? - + Never Mai - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Baixada recursiva del fitxer .torrent dins del torrent. Torrent font: "%1". Fitxer: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" No s'ha pogut establir el límit d'ús de la memòria física (RAM). Codi d'error: %1. Missatge d'error: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" No s'ha pogut establir el límit dur d'ús de la memòria física (RAM). Mida sol·licitada: %1. Límit dur del sistema: %2. Codi d'error: %3. Missatge d'error: %4 - + qBittorrent termination initiated Terminació iniciada del qBittorrent - + qBittorrent is shutting down... El qBittorrent es tanca... - + Saving torrent progress... Desant el progrés del torrent... - + qBittorrent is now ready to exit El qBittorrent ja està a punt per sortir. @@ -1609,12 +1715,12 @@ Raó: %2 Prioritat: - + Must Not Contain: No ha de contenir: - + Episode Filter: Filtra l'episodi: @@ -1667,263 +1773,263 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb &Exportació... - + Matches articles based on episode filter. Articles coincidents amb 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 episodis següents 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. - + Filter must end with semicolon El filtre ha d'acabar en punt i coma. - + Three range types for episodes are supported: S'admeten tres tipus d'intervals per als episodis: - + Single number: <b>1x25;</b> matches episode 25 of season one Un únic número: <b>1x25;<b> coincideix amb l'episodi 25 de la temporada u. - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Interval normal: <b>1x25-40;<b> coincideix amb l'episodi 25 al 40 de la primera temporada. - + Episode number is a mandatory positive value El número d'episodi ha de ser un valor positiu. - + Rules Regles - + Rules (legacy) Regles (llegat) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Interval infinit: <b>1x25-;</b> coincideix amb 25 episodis i més enllà de la primera temporada, i tots els episodis de les darreres temporades. - + Last Match: %1 days ago Darrera coincidència: fa %1 dies - + Last Match: Unknown Darrera coincidència: desconeguda - + New rule name Nom de la 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 existeix una regla amb aquest nom. Trieu-ne un altre. - + Are you sure you want to remove the download rule named '%1'? Segur que voleu suprimir la regla de baixada anomenada «%1»? - + Are you sure you want to remove the selected download rules? Segur que voleu suprimir les regles de baixada seleccionades? - + Rule deletion confirmation Confirmació de supressió de la regla - + 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. - + Export RSS rules Exporta regles d'RSS - + I/O Error Error d'entrada / sortida - + Failed to create the destination file. Reason: %1 Ha fallat crear el fitxer de destinació. Raó: %1. - + Import RSS rules Importa regles d'RSS - + Failed to import the selected rules file. Reason: %1 Ha fallat importar el fitxer de regles seleccionat. Raó: %1. - + Add new rule... Afegeix una regla nova... - + Delete rule Suprimeix la regla - + Rename rule... Canvia el nom de la regla... - + Delete selected rules Suprimeix les regles seleccionades - + Clear downloaded episodes... Neteja els episodis baixats... - + Rule renaming Canvi de nom de la regla - + Please type the new rule name Escriviu el nou nom de la regla - + Clear downloaded episodes Neteja els episodis baixats - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Segur que voleu netejar la llista d'episodis baixats per a la regla seleccionada? - + Regex mode: use Perl-compatible regular expressions Mode d'expressió regular: usa expressions regulars compatibles amb Perl - - + + Position %1: %2 Posició: %1: %2 - + Wildcard mode: you can use Mode de comodí: podeu usar - - + + Import error Error d'importació - + Failed to read the file. %1 No s'ha pogut llegir el fitxer. %1 - + ? to match any single character ? per substituir qualsevol caràcter simple - + * to match zero or more of any characters * per substituir o bé res o bé qualsevol altre nombre de caràcters. - + Whitespaces count as AND operators (all words, any order) Els espais en blanc compten com a operadors I (totes les paraules, en qualsevol ordre) - + | is used as OR operator | s'usa com a operador OR - + If word order is important use * instead of whitespace. Si l'ordre de paraules és important, useu * en comptes de l'espai en blanc. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Una expressió amb una subordinada %1 buida (p. e. %2) - + will match all articles. coincidirà amb tots els articles. - + will exclude all articles. exclourà tots els articles. @@ -1965,7 +2071,7 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" No s'ha pogut crear la carpeta de represa de torrents: «%1» @@ -1975,28 +2081,38 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb No es poden analitzar les dades de la represa: format no vàlid. - - + + Cannot parse torrent info: %1 No es pot analitzar la informació del torrent: %1 - + Cannot parse torrent info: invalid format No es pot analitzar la informació del torrent: format no vàlid. - + Mismatching info-hash detected in resume data S'ha detectat un resum d'informació que no coincideix amb les dades de represa. - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. No s'han pogut desar les metadades del torrent a '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. No s'han pogut desar les dades del currículum de torrent a '% 1'. Error:% 2. @@ -2007,16 +2123,17 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb + Cannot parse resume data: %1 No es poden analitzar les dades de represa: %1 - + Resume data is invalid: neither metadata nor info-hash was found Les dades de la represa no són vàlides: no s'han trobat ni metadades ni resum d'informació. - + Couldn't save data to '%1'. Error: %2 No s'han pogut desar les dades a «%1». Error: %2 @@ -2024,38 +2141,60 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb BitTorrent::DBResumeDataStorage - + Not found. No s'ha trobat. - + Couldn't load resume data of torrent '%1'. Error: %2 No s'han pogut carregar les dades de represa del torrent «%1». Error: %2 - - + + Database is corrupted. La base de dades està malmesa. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. No s'ha pogut activar el mode de registre d'escriptura anticipada (WAL). Error: %1. - + Couldn't obtain query result. No s'ha pogut obtenir el resultat de la consulta. - + WAL mode is probably unsupported due to filesystem limitations. El mode WAL probablement no és compatible a causa de les limitacions del sistema de fitxers. - + + + Cannot parse resume data: %1 + No es poden analitzar les dades de represa: %1 + + + + + Cannot parse torrent info: %1 + No es pot analitzar la informació del torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 No s'ha pogut iniciar transació. Error: %1 @@ -2063,22 +2202,22 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. No s'han pogut desar les metadades del torrent. Error:% 1. - + Couldn't store resume data for torrent '%1'. Error: %2 No es poden emmagatzemar les dades de represa del torrent: «%1». Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 No s'han pogut suprimir les dades de represa del torrent «%1». Error: %2 - + Couldn't store torrents queue positions. Error: %1 No s'han pogut emmagatzemar les posicions de cua dels torrents. Error %1 @@ -2086,457 +2225,503 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Compatibilitat amb la taula de resum distribuïda (DHT): %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF NO - - + + Local Peer Discovery support: %1 Compatibilitat local per al descobriment de clients: %1 - + Restart is required to toggle Peer Exchange (PeX) support Cal reiniciar per canviar el suport de l'intercanvi de clients (PeX). - + Failed to resume torrent. Torrent: "%1". Reason: "%2" No s'ha pogut reprendre el torrent. Torrent: "%1". Raó: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" No s'ha pogut reprendre el torrent: s'ha detectat un ID de torrent inconsistent. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Dades incoherents detectades: falta una categoria al fitxer de configuració. Es recuperarà la categoria, però la configuració es restablirà al valor predeterminat. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Dades incoherents detectades: categoria no vàlida. Torrent: "%1". Categoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" S'ha detectat un manca de coincidència entre els camins de desament de la categoria recuperada i el camí on desar-ho actual del torrent. Ara el torrent ha canviat al mode manual. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" S'han detectat dades incoherents: falta l'etiqueta al fitxer de configuració. Es recuperarà l'etiqueta. Torrent: "%1". Etiqueta: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Dades incoherents detectades: etiqueta no vàlida. Torrent: "%1". Etiqueta: "%2" - + System wake-up event detected. Re-announcing to all the trackers... S'ha detectat un esdeveniment d'activació del sistema. Es torna a anunciar a tots els rastrejadors... - + Peer ID: "%1" ID del client: "%1" - + HTTP User-Agent: "%1" Agent d'usuari d'HTTP: "%1" - + Peer Exchange (PeX) support: %1 Suport per a l'intercanvi de clients (PeX): %1 - - + + Anonymous mode: %1 Mode anònim: %1 - - + + Encryption support: %1 Suport d'encriptació: %1 - - + + FORCED FORÇAT - + Could not find GUID of network interface. Interface: "%1" No s'ha pogut trobar el GUID de la interfície de xarxa. Interfície: "%1" - + Trying to listen on the following list of IP addresses: "%1" S'intenta escoltar la llista següent d'adreces IP: "%1" - + Torrent reached the share ratio limit. El torrent ha arribat al límit de la compartició. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - S'ha suprimit el torrent. - - - - - - Removed torrent and deleted its content. - S'ha suprimit el torrent i el seu contingut. - - - - - - Torrent paused. - Torrent interromput - - - - - + Super seeding enabled. Supersembra habilitada. - + Torrent reached the seeding time limit. El torrent ha arribat al límit de temps de sembra. - + Torrent reached the inactive seeding time limit. El torrent ha arribat al límit de temps de sembra inactiu. - + Failed to load torrent. Reason: "%1" No s'ha pogut carregar el torrent. Raó: "%1" - + I2P error. Message: "%1". Error d'I2P. Missatge: %1. - + UPnP/NAT-PMP support: ON Suport d'UPnP/NAT-PMP: ACTIU - + + Saving resume data completed. + S'ha completat desar les dades de represa. + + + + BitTorrent session successfully finished. + La sessió del BitTorrent ha acabat correctament. + + + + Session shutdown timed out. + S'ha esgotat el temps d'aturada de la sessió. + + + + Removing torrent. + Supressió del torrent + + + + Removing torrent and deleting its content. + Supressió del torrent i del contingut. + + + + Torrent stopped. + Torrent interromput + + + + Torrent content removed. Torrent: "%1" + Contingut del torrent suprimit. Torrent: %1 + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + No s'ha pogut suprimir el contingut del torrent. Torrent: %1. Error: %2 + + + + Torrent removed. Torrent: "%1" + Torrent suprimit. Torrent: %1 + + + + Merging of trackers is disabled + La fusió de rastrejadors està desactivada. + + + + Trackers cannot be merged because it is a private torrent + Els rastrejadors no es poden fusionar perquè és un torrent privat. + + + + Trackers are merged from new source + Els rastrejadors es fusionen des de la font nova. + + + UPnP/NAT-PMP support: OFF Suport d'UPnP/NAT-PMP: DESACTIVAT - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" No s'ha pogut exportar el torrent. Torrent: "%1". Destinació: "%2". Raó: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 S'ha avortat l'emmagatzematge de les dades de represa. Nombre de torrents pendents: %1 - + The configured network address is invalid. Address: "%1" L'adreça de xarxa configurada no és vàlida. Adreça: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" No s'ha pogut trobar l'adreça de xarxa configurada per escoltar. Adreça: "%1" - + The configured network interface is invalid. Interface: "%1" La interfície de xarxa configurada no és vàlida. Interfície: "%1" - + + Tracker list updated + S'ha actualitzat la llista de rastrejadors. + + + + Failed to update tracker list. Reason: "%1" + No s'ha pogut actualitzar la llista de rastrejadors. Raó: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" S'ha rebutjat l'adreça IP no vàlida mentre s'aplicava la llista d'adreces IP prohibides. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" S'ha afegit un rastrejador al torrent. Torrent: "%1". Rastrejador: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" S'ha suprimit el rastrejador del torrent. Torrent: "%1". Rastrejador: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" S'ha afegit una llavor d'URL al torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" S'ha suprimit la llavor d'URL del torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent interromput. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + No s'ha pogut suprimir la part del fitxer. Torrent: %1. Raó: %2. - + Torrent resumed. Torrent: "%1" Torrent reprès. Torrent: "%1" - + Torrent download finished. Torrent: "%1" S'ha acabat la baixada del torrent. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" S'ha cancel·lat el moviment del torrent. Torrent: "%1". Font: "%2". Destinació: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent interromput. Torrent: %1 + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination No s'ha pogut posar a la cua el moviment del torrent. Torrent: "%1". Font: "%2". Destinació: "%3". Raó: el torrent es mou actualment a la destinació - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location No s'ha pogut posar a la cua el moviment del torrent. Torrent: "%1". Font: "%2" Destinació: "%3". Raó: tots dos camins apunten al mateix lloc. - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Moviment de torrent a la cua. Torrent: "%1". Font: "%2". Destinació: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Es comença a moure el torrent. Torrent: "%1". Destinació: "% 2" - + Failed to save Categories configuration. File: "%1". Error: "%2" No s'ha pogut desar la configuració de categories. Fitxer: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" No s'ha pogut analitzar la configuració de categories. Fitxer: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 S'ha analitzat correctament el fitxer de filtre d'IP. Nombre de regles aplicades: %1 - + Failed to parse the IP filter file No s'ha pogut analitzar el fitxer del filtre d'IP. - + Restored torrent. Torrent: "%1" Torrent restaurat. Torrent: "%1" - + Added new torrent. Torrent: "%1" S'ha afegit un torrent nou. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" S'ha produït un error al torrent. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - S'ha suprimit el torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - S'ha suprimit el torrent i el seu contingut. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Al torrent falten paràmetres d'SSL. Torrent: %1. Missatge: %2 - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alerta d'error del fitxer. Torrent: "%1". Fitxer: "%2". Raó: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Ha fallat l'assignació de ports UPnP/NAT-PMP. Missatge: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" L'assignació de ports UPnP/NAT-PMP s'ha fet correctament. Missatge: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtre IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). port filtrat (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). port privilegiat (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + S'ha produït un error en la connexió de l'URL. Torrent: "%1". URL: "%2". Error: "% 3" + + + BitTorrent session encountered a serious error. Reason: "%1" La sessió de BitTorrent ha trobat un error greu. Raó: %1 - + SOCKS5 proxy error. Address: %1. Message: "%2". Error d'intermediari SOCKS5. Adreça: %1. Missatge: %2. - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restriccions de mode mixt - + Failed to load Categories. %1 No s'han pogut carregar les categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" No s'ha pogut carregar la configuració de les categories. Fitxer: %1. Error: format de dades no vàlid. - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent eliminat, però error al esborrar el contingut i/o fitxer de part. Torrent: "%1". Error: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 està inhabilitat - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 està inhabilitat - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - La cerca de DNS de llavors d'URL ha fallat. Torrent: "%1". URL: "%2". Error: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" S'ha rebut un missatge d'error de la llavor d'URL. Torrent: "%1". URL: "%2". Missatge: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" S'escolta correctament la IP. IP: "%1". Port: "%2 / %3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" No s'ha pogut escoltar la IP. IP: "%1". Port: "%2 / %3". Raó: "%4" - + Detected external IP. IP: "%1" S'ha detectat una IP externa. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Error: la cua d'alertes interna està plena i les alertes s'han suprimit. És possible que vegeu un rendiment degradat. S'ha suprimit el tipus d'alerta: "%1". Missatge: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" El torrent s'ha mogut correctament. Torrent: "%1". Destinació: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" No s'ha pogut moure el torrent. Torrent: "%1". Font: "%2". Destinació: "%3". Raó: "%4" @@ -2546,19 +2731,19 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Failed to start seeding. - + No s'ha pogut començar a sembrar. BitTorrent::TorrentCreator - + Operation aborted Operació avortada - - + + Create new torrent file failed. Reason: %1. No s'ha pogut crear el fitxer de torrent nou. Raó: %1. @@ -2566,67 +2751,67 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 No s'ha pogut afegir el client «%1» al torrent «%2». Raó: %3 - + Peer "%1" is added to torrent "%2" S'ha afegit el client «%1» al torrent «%2» - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. S'han detectat dades inesperades. Torrent: %1. Dades: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. No s'ha pogut escriure al fitxer. Raó: "%1". El torrent està ara en mode "només per pujar". - + Download first and last piece first: %1, torrent: '%2' Baixa primer els trossos del principi i del final: %1, torrent: «%2» - + On Activat - + Off Desactivat - + Failed to reload torrent. Torrent: %1. Reason: %2 No s'ha pogut tornar a carregar el torrent. Torrent: %1. Raó: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Ha fallat generar les dades de represa. Torrent: "%1". Raó: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" No s'ha pogut restaurar el torrent. Probablement els fitxers s'han mogut o l'emmagatzematge no és accessible. Torrent: "%1". Raó: "% 2" - + Missing metadata Falten metadades - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" No s'ha pogut canviar el nom del fitxer. «%1», fitxer: «%2», raó: «%3» - + Performance alert: %1. More info: %2 Alerta de rendiment: %1. Més informació: %2 @@ -2647,189 +2832,189 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' El paràmetre "%1" ha de seguir la sintaxi "%1=%2" - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' El paràmetre "%1" ha de seguir la sintaxi "%1=%2" - + Expected integer number in environment variable '%1', but got '%2' S'esperava un número enter a la variable d'entorn "%1", però s'ha obtingut "%2". - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - El paràmetre "%1" ha de seguir la sintaxi "%1=%2" - - - + Expected %1 in environment variable '%2', but got '%3' S'esperava %1 a la variable d'entorn "%2", però s'ha obtingut "%3". - - + + %1 must specify a valid port (1 to 65535). %1 ha d'especificar un port vàlid (d'1 a 65535). - + Usage: Utilització: - + [options] [(<filename> | <url>)...] [opcions] [(<filename> | <url>)...] - + Options: Opcions: - + Display program version and exit Mostra la versió del programa i surt. - + Display this help message and exit Mostra aquest missatge d'ajuda i surt. - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + El paràmetre "%1" ha de seguir la sintaxi "%1=%2" + + + Confirm the legal notice Confirmeu l'avís legal - - + + port port - + Change the WebUI port Canvieu el port de la interfície web - + Change the torrenting port Canvia el port del torrent - + Disable splash screen Desactiva finestra de benvinguda - + Run in daemon-mode (background) Executa en mode dimoni (segon terme) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Desa els fitxers de configuració a <dir> - - + + name nom - + Store configuration files in directories qBittorrent_<name> Desa els fitxers de configuració en directoris qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Entreu als fitxers de represa ràpida de libtorrent i feu els camins dels fitxers relatius al directori del perfil. - + files or URLs fitxers o URLs - + Download the torrents passed by the user Baixa els Torrents passats per l'usuari. - + Options when adding new torrents: Opcions en afegir torrents nous: - + path camí - + Torrent save path Camí per desar el torrent - - Add torrents as started or paused - Afegeix els torrents com a iniciats o interromputs + + Add torrents as running or stopped + Afegeix torrents com a iniciats o interromputs - + Skip hash check Omet la comprovació del resum - + Assign torrents to category. If the category doesn't exist, it will be created. Assignació de torrents a una categoria. Si la categoria no existeix, es crearà. - + Download files in sequential order Baixa fitxers en ordre seqüencial - + Download first and last pieces first Baixa primer els trossos del principi i del final - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Especifica si el diàleg "Afegeix un torrent nou" s'obre quan s'afegeixi un torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Els valors de les opcions es poden proporcionar a través de variables d'entorn. Per a l'opció anomenada "parameter-name", el nom de la variable d'entorn és "QBT_PARAMETER_NAME" (en majúscules, "-" reemplaçat per "_"). Per passar valors d'indicadors, establiu la variable a "1" o "TRUE". Per exemple, per inhabilitar la pantalla de benvinguda: - + Command line parameters take precedence over environment variables Els paràmetres de la línia d'ordres tenen prioritat per davant de les variables d'entorn. - + Help Ajuda @@ -2881,12 +3066,12 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb - Resume torrents - Reprèn els torrents + Start torrents + Inicia els torrents - Pause torrents + Stop torrents Interromp els torrents @@ -2898,15 +3083,20 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb ColorWidget - + Edit... Editar... - + Reset Restableix + + + System + Sistema + CookiesDialog @@ -2947,12 +3137,12 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb CustomThemeSource - + Failed to load custom theme style sheet. %1 No s'ha pogut carregar el full d'estil del tema personalitzat. %1 - + Failed to load custom theme colors. %1 No s'han pogut carregar els colors del tema personalitzat. %1 @@ -2960,7 +3150,7 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb DefaultThemeSource - + Failed to load default theme colors. %1 No s'han pogut carregar els colors del tema predeterminat. %1 @@ -2979,23 +3169,23 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb - Also permanently delete the files - També suprimeix permanentment els fitxers + Also remove the content files + Suprimeix també els fitxers de contingut - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Segur que voleu suprimir "%1" de la llista de transferències? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Segur que voleu suprimir aquests %1 torrents de la llista de transferència? - + Remove Suprimeix @@ -3008,12 +3198,12 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Baixa des d'URLs - + Add torrent links Afegeix enllaços torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Un enllaç per línia (es permeten enllaços d'HTTP, enllaços magnètics i informació de funcions de resum) @@ -3023,12 +3213,12 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Baixa - + No URL entered No s'ha escrit cap URL. - + Please type at least one URL. Escriviu almenys un URL. @@ -3187,25 +3377,48 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Error d'anàlisi: el fitxer de filtre no és un fitxer de PeerGuardian P2B vàlid. + + FilterPatternFormatMenu + + + Pattern Format + Format del patró + + + + Plain text + Test net + + + + Wildcards + Comodins + + + + Regular expression + Expressió regular + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Es baixa el torrent... Font: "%1" - - Trackers cannot be merged because it is a private torrent - Els rastrejadors no es poden fusionar perquè és un torrent privat. - - - + Torrent is already present El torrent ja hi és - + + Trackers cannot be merged because it is a private torrent. + Els rastrejadors no es poden fusionar perquè és un torrent privat. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? El torrent "%1" ja és a la llista de transferència. Voleu fuisionar els rastrejadors des d'una font nova? @@ -3213,38 +3426,38 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb GeoIPDatabase - - + + Unsupported database file size. La mida del fitxer 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 no và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 - + Database corrupted: no data section found. Base de dades corrupta: no s'ha trobat secció de dades. @@ -3252,17 +3465,17 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 La mida de la petició d'http excedeix el límit. Es tanca el sòcol. Límit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Mètode de sol·licitud d'Http incorrecte. Es tanca el sòcol. IP: %1. Mètode: %2 - + Bad Http request, closing socket. IP: %1 Petició d'Http errònia, es tanca el sòcol. IP: %1 @@ -3303,26 +3516,60 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb IconWidget - + Browse... Explora... - + Reset Restableix - + Select icon Selecciona icona - + Supported image files Fitxers d'imatge suportats + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + La gestió d'energia ha trobat la interfície D-Bus adequada. Interfície: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Error de gestió d'energia. Acció: %1. Error: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Error inesperat de gestió d'energia. Estat: %1. Error: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. S'ha blocat %1. Raó: %2 - + %1 was banned 0.0.0.0 was banned %1 s'ha prohibit. @@ -3369,60 +3616,60 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 és un parametre de comanda de línia no conegut. - - + + %1 must be the single command line parameter. %1 ha de ser un sol paràmetre de comanda de línia. - + Run application with -h option to read about command line parameters. Executa l'aplicació amb l'opció -h per a llegir quant als paràmetres de comandes de línia. - + Bad command line Comanda de línia errònia - + Bad command line: Comanda de línia errònia: - + An unrecoverable error occurred. S'ha produït un error irrecuperable. + - qBittorrent has encountered an unrecoverable error. El qBittorrent ha trobat un error irrecuperable. - + You cannot use %1: qBittorrent is already running. No podeu usar %1: el qBittorrent ja s'executa. - + Another qBittorrent instance is already running. Una altra instància del qBittorrent ja s'executa. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. S'ha trobat una instància de qBittorrent inesperada. Se surt d'aquesta instància. ID del procés actual: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Error en demonitzar. Raó: %1. Codi d'error: %2. @@ -3435,609 +3682,681 @@ Admet els formats S01E01, 1x1, 2017.12.31 i 31.12.2017 (Els formats de data tamb &Edita - + &Tools &Eines - + &File &Fitxer - + &Help &Ajuda - + On Downloads &Done En acabar les baixa&des... - + &View &Visualitza - + &Options... &Opcions... - - &Resume - &Reprèn - - - + &Remove Sup&rimeix - + Torrent &Creator &Creador de torrents - - + + Alternative Speed Limits Límits de velocitat alternativa - + &Top Toolbar Barra d'eines &superior - + Display Top Toolbar Mostra barra d'eines superior - + Status &Bar &Barra d'estat - + Filters Sidebar Barra lateral de filtres - + S&peed in Title Bar Mostra v&elocitat a la barra de títol - + Show Transfer Speed in Title Bar Mostra la velocitat de transferència a la barra de títol - + &RSS Reader Lector d'&RSS - + Search &Engine &Motor de cerca - + L&ock qBittorrent B&loca el qBittorrent - + Do&nate! Feu una do&nació! - + + Sh&utdown System + At&ura el sistema + + + &Do nothing &No facis res - + Close Window Tanca la finestra - - R&esume All - R&eprèn-ho tot - - - + Manage Cookies... Gestió de galetes... - + Manage stored network cookies Gestió de galetes de xarxa emmagatzemades - + Normal Messages Missatges normals - + Information Messages Missatges informatius - + Warning Messages Missatges d'advertència - + Critical Messages Missatges crítics - + &Log &Registre - + + Sta&rt + Inic&ia + + + + Sto&p + Interrom&p + + + + R&esume Session + R&eprèn la sessió + + + + Pau&se Session + Interromp la &sessió + + + Set Global Speed Limits... Estableix els límits de velocitat globals... - + Bottom of Queue Al capdavall de la cua - + Move to the bottom of the queue Mou al capdavall de la cua - + Top of Queue Al capdamunt de la cua - + Move to the top of the queue Mou al capdamunt de la cua - + Move Down Queue Mou cua avall - + Move down in the queue Mou cua avall - + Move Up Queue Mou cua amunt - + Move up in the queue Mou cua avall - + &Exit qBittorrent &Tanca el qBittorrent - + &Suspend System &Suspèn el sistema - + &Hibernate System &Hiberna el sistema - - S&hutdown System - A&paga el sistema - - - + &Statistics &Estadístiques - + Check for Updates Cerca actualitzacions - + Check for Program Updates Cerca actualitzacions del programa - + &About &Quant a - - &Pause - Interrom&p - - - - P&ause All - Interromp-ho tot - - - + &Add Torrent File... &Afegeix un fitxer torrent... - + Open Obre - + E&xit T&anca - + Open URL Obre un URL - + &Documentation &Documentació - + Lock Bloca - - - + + + Show Mostra - + Check for program updates Cerca actualitzacions del programa - + Add Torrent &Link... Afegeix un &enllaç torrent... - + If you like qBittorrent, please donate! Si us agrada el qBittorrent, feu una donació! - - + + Execution Log Registre d'execució - + Clear the password Esborra la contrasenya - + &Set Password &Estableix una contrasenya - + Preferences Preferències - + &Clear Password &Esborra la contrasenya - + Transfers Transferint - - + + qBittorrent is minimized to tray El qBittorrent està minimitzat a la safata. - - - + + + This behavior can be changed in the settings. You won't be reminded again. Aquest comportament es pot canviar a la configuració. No se us tornarà a recordar. - + 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 Segueix l'estil del sistema - - + + UI lock password Contrasenya de bloqueig - - + + Please type the UI lock password: Escriviu la contrasenya de bloqueig de la interfície: - + Are you sure you want to clear the password? Esteu segur que voleu esborrar la contrasenya? - + Use regular expressions Usa expressions regulars - + + + Search Engine + Motor de cerca + + + + Search has failed + La cerca ha fallat + + + + Search has finished + La cerca s'ha acabat. + + + Search Cerca - + Transfers (%1) Transferències (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. El qBittorrent s'ha actualitzat i s'ha de reiniciar perquè els canvis tinguin efecte. - + qBittorrent is closed to tray El qBittorrent està tancat a la safata. - + Some files are currently transferring. Ara es transfereixen alguns fitxers. - + Are you sure you want to quit qBittorrent? Segur que voleu sortir del qBittorrent? - + &No &No - + &Yes &Sí - + &Always Yes &Sempre sí - + Options saved. Opcions desades - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [EN PAUSA] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + No s'ha pogut baixar l'instal·lador de Python. Error: %1. +Instal·leu-lo manualment. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Ha fallat el canvi de nom de l'instal·lador de Python. Font: "%1". Destinació: "%2". + + + + Python installation success. + La instal·lació de Python és correcta. + + + + Exit code: %1. + Codi de sortida: %1. + + + + Reason: installer crashed. + Raó: l'instal·lador ha fallat. + + + + Python installation failed. + La instal·lació de Python ha fallat. + + + + Launching Python installer. File: "%1". + S'inicia l'instal·lador de Python. Fitxer: "%1". + + + + Missing Python Runtime Manca el temps d'execució de Python - + qBittorrent Update Available Actualització del qBittorrent disponible - + 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. - - + + Old Python Runtime Temps d'execució antic de Python - + A new version is available. Hi ha disponible una nova versió. - + Do you want to download %1? Voleu baixar %1? - + Open changelog... Obre el registre de canvis... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? La vostra versió de Python (%1) està obsoleta. Requisit mínim: %2. Voleu instal·lar-ne una versió més nova ara? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. La versió de Python (%1) està obsoleta. Actualitzeu-la a la darrera versió perquè funcionin els motors de cerca. Requisit mínim: %2. - + + Paused + Interromput + + + Checking for Updates... Cercant actualitzacions... - + Already checking for program updates in the background Ja se cerquen actualitzacions en segon terme. - + + Python installation in progress... + Instal·lació de Python en curs... + + + + Failed to open Python installer. File: "%1". + No s'ha pogut obrir l'instal·lador de Python. Fitxer: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + La comprovació d'MD5 ha fallat per a l'instal·lador de Python. Fitxer: "%1". Resum del resultat: "%2". Resum esperat: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + La comprovació de SHA3-512 ha fallat per a l'instal·lador de Python. Fitxer: "%1". Resum del resultat: "%2". Resum esperat: "%3". + + + 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 - + Filter torrents... Filtrar torrents... - + Filter by: Filtrar per: - + The password must be at least 3 characters long La contrasenya ha de tenir almenys 3 caràcters. - - - + + + RSS (%1) RSS (%1) - + 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 Se surt del qBittorrent - + Open Torrent Files Obre fitxers torrent - + Torrent Files Fitxers torrent @@ -4232,7 +4551,12 @@ Instal·leu-lo manualment. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Error d'SSL, URL: %1, errors: %2 + + + Ignoring SSL error, URL: "%1", errors: "%2" S'ignora un error SSL, URL: "%1", errors: "%2" @@ -5526,47 +5850,47 @@ Instal·leu-lo manualment. Net::Smtp - + Connection failed, unrecognized reply: %1 La connexió ha fallat, resposta no reconeguda: %1 - + Authentication failed, msg: %1 L'autenticació ha fallat, missatge: %1 - + <mail from> was rejected by server, msg: %1 <mail from>: rebutjat pel servidor, missatge: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>: rebutjat pel servidor, missatge: %1 - + <data> was rejected by server, msg: %1 <data>: rebutjat pel servidor, missatge: %1 - + Message was rejected by the server, error: %1 El missatge ha estat rebutjat pel servidor, error: %1 - + Both EHLO and HELO failed, msg: %1 Tant EHLO com HELO han fallat, missatge: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Sembla que el servidor SMTP no admet cap dels modes d'autenticació que admetem [CRAM-MD5|PLAIN|LOGIN]. S'omet l'autenticació, tot i que és probable que falli... Modes d'autenticació del servidor: %1 - + Email Notification Error: %1 Error de notificació per correu electrònic: %1 @@ -5604,299 +5928,283 @@ Instal·leu-lo manualment. Bittorrent - + RSS RSS - - Web UI - Interfície web - - - + Advanced Avançat - + Customize UI Theme... Personalitzar el tema de IU... - + Transfer List Llista de transferència - + Confirm when deleting torrents Demana confirmació per suprimir torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Mostra un diàleg de confirmació en interrompre / reprendre tots els torrents. - - - - Confirm "Pause/Resume all" actions - Confirmeu les accions "Interromp / Reprèn-ho tot". - - - + Use alternating row colors In table elements, every other row will have a grey background. Usa colors alterns a les files de la llista - + Hide zero and infinity values Amaga els valors zero i infinit - + Always Sempre - - Paused torrents only - Només els torrents interromputs - - - + Action on double-click Acció a fer amb un doble click - + Downloading torrents: Torrents de baixada: - - - Start / Stop Torrent - Iniciar / Aturar Torrent - - - - + + Open destination folder Obre la carpeta de destinació - - + + No action Sense acció - + Completed torrents: Torrents completats: - + Auto hide zero status filters Auto amagar filtres d'estat zero - + Desktop Escriptori - + Start qBittorrent on Windows start up Inicia el qBittorrent durant l'arrencada de Windows - + Show splash screen on start up Mostra la pantalla de benvinguda en iniciar - + Confirmation on exit when torrents are active Confirma el tancament quan hi hagi torrents actius. - + Confirmation on auto-exit when downloads finish Confirma el tancament automàtic quan les baixades acabin. - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Per establir el qBittorrent com a programa predeterminat per a fitxers .torrent i/o enllaços magnètics<br/>podeu fer servir el diàleg de <span style=" font-weight:600;">Programes per defecte </span>del <span style=" font-weight:600;">Centre de control</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Disposició del contingut del torrent: - + Original Original - + Create subfolder Crea una subcarpeta - + Don't create subfolder No creïs una subcarpeta - + The torrent will be added to the top of the download queue El torrent s'afegirà al capdamunt de la cua de baixades. - + Add to top of queue The torrent will be added to the top of the download queue Afegeix al capdamunt de la cua - + When duplicate torrent is being added Quan s'afegeix un torrent duplicat - + Merge trackers to existing torrent Fusiona els rastrejadors amb el torrent existent - + Keep unselected files in ".unwanted" folder Conserva els fitxers no seleccionats a la carpeta ".unwanted". - + Add... Afegeix... - + Options.. Opcions... - + Remove Suprimeix - + Email notification &upon download completion Notificació per corre&u electrònic de l'acabament de les descàrregues - + + Send test email + Envia un correu electrònic de prova + + + + Run on torrent added: + Executa en afegir un torrent: + + + + Run on torrent finished: + Executa en acabar un torrent: + + + Peer connection protocol: Protocol de connexió de clients: - + Any Qualsevol - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>si &quot;mode mixte&quot; està actiu als torrents I2P se'ls permet també obtenir parells d'altres fonts que el tracker, i connectar a IPs normals sense oferir anonimització. Això pot ser útil si l'usuari no està interessat en l'anonimització de I2P, però encara vol conectar a parells I2P.</p></body></html> - - - + Mixed mode Mode mixte - - Some options are incompatible with the chosen proxy type! - Algunes opcions són incompatibles amb el tipus d'intermediari triat! - - - + If checked, hostname lookups are done via the proxy Si es marca, les cerques de nom d'amfitrió es fan a través de l'intermediari. - + Perform hostname lookup via proxy Realitzar cerca de nom de host via proxy - + Use proxy for BitTorrent purposes Usa l'intermediari per a finalitats de BitTorrent. - + RSS feeds will use proxy Els canals d'RSS usaran l'intermediari. - + Use proxy for RSS purposes Usa l'intermediari per a finalitats d'RSS. - + Search engine, software updates or anything else will use proxy El motor de cerca, les actualitzacions de programari o qualsevol altra cosa usaran l'intermediari. - + Use proxy for general purposes Usa l'intermediari per a finalitats generals. - + IP Fi&ltering Fi&ltratge d'IP - + Schedule &the use of alternative rate limits Programació de l'ús de lími&ts de velocitat alternatius - + From: From start time Des de: - + To: To end time A: - + Find peers on the DHT network Troba clients a la xarxa DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Requereix l'encriptació: connecta només amb clients amb protocol d'e Inhabiliata l'encriptació: només es connecta amb clients sense protocol d'encriptació. - + Allow encryption Permet l'encriptació - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Més informació</a>) - + Maximum active checking torrents: Màxim de torrents de comprovació actius: - + &Torrent Queueing Cua de &torrents - + When total seeding time reaches Quan s'arriba al temps total de sembra - + When inactive seeding time reaches Quan s'arriba al temps de sembra inactiva - - A&utomatically add these trackers to new downloads: - Afegeix a&utomàticament aquests rastrejadors a les baixades noves: - - - + RSS Reader Lector d'RSS - + Enable fetching RSS feeds Habilita l'obtenció de canals d'RSS - + Feeds refresh interval: Interval d'actualització dels canals: - + Same host request delay: - + El mateix retard de sol·licitud d'amfitrió: - + Maximum number of articles per feed: Nombre màxim d'articles per canal: - - - + + + min minutes min. - + Seeding Limits Límits de sembra - - Pause torrent - Interromp el torrent - - - + Remove torrent Suprimeix el torrent - + Remove torrent and its files Suprimeix el torrent i els fitxers - + Enable super seeding for torrent Habilita la supersembra per al torrent - + When ratio reaches Quan la ràtio assoleixi - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Interromp el torrent + + + + A&utomatically append these trackers to new downloads: + Afegeix a&utomàticament aquests rastrejadors a les baixades noves: + + + + Automatically append trackers from URL to new downloads: + Afegeix automàticament els rastrejadors d'URL a les baixades noves: + + + + URL: + URL: + + + + Fetched trackers + Rastredors obtinguts + + + + Search UI + Cerca d'IU + + + + Store opened tabs + Desa les pestanyes obertes + + + + Also store search results + També desa els resultats de la cerca + + + + History length + Llargada de l'historial + + + RSS Torrent Auto Downloader Descarregador automàtic de torrents d'RSS - + Enable auto downloading of RSS torrents Habilita la baixada automàtica de torrents d'RSS - + Edit auto downloading rules... Edita les regles de baixada automàtica... - + RSS Smart Episode Filter Filtre d'episodis intel·ligents d'RSS - + Download REPACK/PROPER episodes Baixa els episodis REPACK / PROPER - + Filters: Filtres: - + Web User Interface (Remote control) Interfície d'usuari web (control remot) - + IP address: Adreça IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Especifiqueu una adreça IPv4 o IPv6. Podeu especificar "0.0.0.0" per "::" per a qualsevol adreça IPv6 o bé "*" per a IPv4 i IPv6. - + Ban client after consecutive failures: Prohibeix el client després de fallades consecutives: - + Never Mai - + ban for: prohibeix per a: - + Session timeout: Temps d'espera de la sessió: - + Disabled Inhabilitat - - Enable cookie Secure flag (requires HTTPS) - Habilita la galeta de bandera de seguretat (requereix HTTPS) - - - + Server domains: Dominis de servidor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ d'introduir noms de domini usats pel servidor d'interfície d'usu Useu ";" per separar les entrades. Podeu usar el comodí "*". - + &Use HTTPS instead of HTTP &Usa HTTPS en lloc d'HTTP - + Bypass authentication for clients on localhost Evita l'autenticació per als clients en l'amfitrió local - + Bypass authentication for clients in whitelisted IP subnets Evita l'autenticació per als clients en subxarxes en la llista blanca - + IP subnet whitelist... Llista blanca de subxarxes IP... - + + Use alternative WebUI + Usa la interfície web alternativa + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Especifiqueu les adreces IP del servidor invers (o subxarxes, per exemple, 0.0.0.0/24) per usar l'adreça de client reenviada (capçalera X-Forwarded-For). Useu ";" per dividir diverses entrades. - + Upda&te my dynamic domain name Actuali&tza el meu nom de domini dinàmic - + Minimize qBittorrent to notification area Minimitza el qBittorrent a l'àrea de notificació. - + + Search + Cerca + + + + WebUI + Interfície d'usuari web + + + Interface Interfície - + Language: Llengua: - + + Style: + Estil: + + + + Color scheme: + Esquema de color: + + + + Stopped torrents only + Només els torrents interromputs + + + + + Start / stop torrent + Inicia / atura el torrent + + + + + Open torrent options dialog + Obre el diàleg d'opcions del torrent + + + Tray icon style: Estil de la icona al plafó: - - + + Normal Normal - + File association Associació de fitxers - + Use qBittorrent for .torrent files Usa el qBittorrent per a obrir fitxers .torrent - + Use qBittorrent for magnet links Usa el qBittorrent per als enllaços magnètics - + Check for program updates Comprova si hi ha actualitzacions del programa. - + Power Management Gestió de la bateria - + + &Log Files + Fit&xers de registre + + + Save path: Camí on desar-ho: - + Backup the log file after: Fes una còpia del registre després de: - + Delete backup logs older than: Suprimeix registres de còpia de seguretat més antics de... - + + Show external IP in status bar + Mostra l'adreça IP externa a la barra d'estat + + + When adding a torrent En afegir un torrent - + Bring torrent dialog to the front Porta el diàleg del torrent al davant - + + The torrent will be added to download list in a stopped state + El torrent s’afegirà a la llista de baixades en estat interromput. + + + Also delete .torrent files whose addition was cancelled Suprimeix també els fitxers .torrent dels quals n'hàgiu cancel·lat l'addició. - + Also when addition is cancelled També quan hagi estat cancel·lada l'addició. - + Warning! Data loss possible! Atenció! Es poden perdre dades! - + Saving Management Gestió de l'acció de desar - + Default Torrent Management Mode: Mode de Gestió dels torrents predeterminat: - + Manual Manual - + Automatic Automàtic - + When Torrent Category changed: En canviar la categoria del torrent: - + Relocate torrent Realltogeu el torrent - + Switch torrent to Manual Mode Canvieu el torrent a Mode Manual - - + + Relocate affected torrents Reallotgeu els torrents afectats. - - + + Switch affected torrents to Manual Mode Canvieu els torrents afectats a Mode Manual. - + Use Subcategories Usa subcategories - + Default Save Path: Camí on desar-ho per defecte: - + Copy .torrent files to: Copia els fitxers torrent a: - + Show &qBittorrent in notification area Mostra el &qBittorrent a l'àrea de notificació. - - &Log file - Fit&xer de registre - - - + Display &torrent content and some options Mostra el contingut del &torrent i algunes opcions - + De&lete .torrent files afterwards Su&primeix els fitxers .torrent després. - + Copy .torrent files for finished downloads to: Copia els fitxers .torrent de les baixades acabades a: - + Pre-allocate disk space for all files Preassigna espai al disc per a tots els fitxers - + Use custom UI Theme Usa el tema d'IU personalitzat. - + UI Theme file: Fitxer de tema d'IU: - + Changing Interface settings requires application restart Canviar la configuració de la interfície requereix reiniciar l'aplicació. - + Shows a confirmation dialog upon torrent deletion Mostra un diàleg de confirmació en suprimir un torrent - - + + Preview file, otherwise open destination folder Previsualitza el fitxer; si no, obre la carpeta de destinació. - - - Show torrent options - Mostra les opcions del torrent - - - + Shows a confirmation dialog when exiting with active torrents Mostra un diàleg de confirmació en sortir amb torrents actius - + When minimizing, the main window is closed and must be reopened from the systray icon Quan es minimitza, la finestra principal es tanca i s’ha de tornar a obrir des de la icona de la safata de sistema. - + The systray icon will still be visible when closing the main window La icona de la safata de sistema encara serà visible en tancar la finestra principal. - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Tanca el qBittorrent a l'àrea de notificacions. - + Monochrome (for dark theme) Monocrom (per al tema fosc) - + Monochrome (for light theme) Monocrom (per al tema clar) - + Inhibit system sleep when torrents are downloading Inhibeix la suspensió del sistema quan es baixin torrents. - + Inhibit system sleep when torrents are seeding Inhibeix la suspensió del sistema quan els torrents sembrin. - + Creates an additional log file after the log file reaches the specified file size Crea un fitxer de registre addicional després que el fitxer de registre arribi a la mida de fitxer especificada - + days Delete backup logs older than 10 days dies - + months Delete backup logs older than 10 months mesos - + years Delete backup logs older than 10 years anys - + Log performance warnings Registra els avisos de rendiment - - The torrent will be added to download list in a paused state - El torrent s’afegirà a la llista de baixades en estat interromput. - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state No iniciïs la baixada automàticament. - + Whether the .torrent file should be deleted after adding it Si el fitxer .torrent s'ha de suprimir després d'afegir-lo. - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Assigna la mida completa del fitxer al disc abans d’iniciar la baixada, per minimitzar-ne la fragmentació. Únicament útil per a discs durs. - + Append .!qB extension to incomplete files Afegeix l'extensió .!qB a fitxers incomplets - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Quan es baixa un torrent, ofereix afegir torrents des de qualsevol fitxer .torrent que es trobi dins. - + Enable recursive download dialog Habilita el diàleg de baixada recursiva - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automàtic: la categoria associada decidirà diverses propietats del torrent (per exemple, el camí on desar-ho) Manual: s'han d'assignar manualment diverses propietats del torrent (per exemple, el camí on desar-ho) - + When Default Save/Incomplete Path changed: Quan s'ha canviat el camí on desar-ho / incomplet per defecte: - + When Category Save Path changed: En canviar la categoria del camí on desar-ho: - + Use Category paths in Manual Mode Usa els camins de la categoria en el mode manual - + Resolve relative Save Path against appropriate Category path instead of Default one Resol el camí on desar-ho relatiu segons el camí de categoria en comptes del predeterminat - + Use icons from system theme Usa les icones del tema del sistema - + Window state on start up: Estat de la finestra a l'inici: - + qBittorrent window state on start up Estat de la finestra del qBittorrent a l'inici - + Torrent stop condition: Condició d'aturada del torrent: - - + + None Cap - - + + Metadata received Metadades rebudes - - + + Files checked Fitxers comprovats - + Ask for merging trackers when torrent is being added manually Demana la fusió de rastrejadors quan s'afegeixi un torrent manualment. - + Use another path for incomplete torrents: Usa un altre camí per als torrents incomplets: - + Automatically add torrents from: Afegeix torrents automàticament des de: - + Excluded file names Noms de fitxers exclosos - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,812 @@ readme.txt: filtra el nom exacte del fitxer. readme[0-9].txt: filtra "readme1.txt", "readme2.txt" però no "readme10.txt". - + Receiver Receptor - + To: To receiver A: - + SMTP server: Servidor SMTP: - + Sender Remitent - + From: From sender Des de: - + This server requires a secure connection (SSL) El servidor requereix una connexió segura (SSL) - - + + Authentication Autentificació - - - - + + + + Username: Nom d'usuari: - - - - + + + + Password: Contrasenya: - + Run external program Executa un programa extern - - Run on torrent added - Executa en afegir un torrent. - - - - Run on torrent finished - Executa en acabar un torrent. - - - + Show console window Mostra la finestra de la consola - + TCP and μTP TCP i μTP - + Listening Port Port d'escolta - + Port used for incoming connections: Port utilitzat per a connexions entrants: - + Set to 0 to let your system pick an unused port Establiu-lo a 0 per deixar que el sistema triï un port no usat. - + Random Aleatori - + Use UPnP / NAT-PMP port forwarding from my router Utilitza UPnP / NAT-PMP reenviament de ports del router - + Connections Limits Límits de connexió - + Maximum number of connections per torrent: Nombre màxim de connexions per torrent: - + Global maximum number of connections: Nombre global màxim de connexions: - + Maximum number of upload slots per torrent: Nombre màxim de ranures de pujada per torrent: - + Global maximum number of upload slots: Nombre global màxim de ranures de pujada: - + Proxy Server Servidor intermediari - + Type: Tipus: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Amfitrió: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Per contra, el servidor intermediari s'utilitzarà només per les connexions tracker - + Use proxy for peer connections Usa un servidor intermediari per a connexions d'igual a igual. - + A&uthentication A&utenticació - - Info: The password is saved unencrypted - Informació: la contrasenya es desa sense encriptació. - - - + Filter path (.dat, .p2p, .p2b): Camí del filtre (.dat, .p2p, .p2b): - + Reload the filter Actualitza el filtre - + Manually banned IP addresses... Adreces IP prohibides manualment... - + Apply to trackers Aplica als rastrejadors - + Global Rate Limits Límits de velocitat globals - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Pujada: - - + + Download: Baixada: - + Alternative Rate Limits Límits de velocitat alternatius - + Start time Hora d'inici - + End time Hora de final - + When: Quan: - + Every day Cada dia - + Weekdays De dilluns a divendres - + Weekends Caps de setmana - + Rate Limits Settings Paràmetres dels límits de velocitat - + Apply rate limit to peers on LAN Aplica el límit de velocitat als clients amb LAN - + Apply rate limit to transport overhead Aplica el límit de velocitat a la sobrecàrrega - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Si el mode mixt està habilitat, els torrents I2P també poden obtenir clients d'altres fonts que no siguin el rastrejador i connectar-se a IPs normals, sense proporcionar cap anonimat. Això pot ser útil si l'usuari no està interessat en l'anonimització d'I2P, però encara vol poder connectar-se amb iguals I2P. +</p></body></html> + + + Apply rate limit to µTP protocol Aplica un límit de velocitat al protocol µTP - + Privacy Privacitat - + Enable DHT (decentralized network) to find more peers Habilita DHT (xarxa descentralitzada) per a trobar més clients - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Intercanvia clients amb gestors compatibles amb Bittorrent (µTorrent, Vuze...) - + Enable Peer Exchange (PeX) to find more peers Habilita l'intercanvi de clients (PeX) per a trobar-ne més. - + Look for peers on your local network Cerca clients a la xarxa local - + Enable Local Peer Discovery to find more peers Habilita el descobriment de clients locals per a trobar-ne més. - + Encryption mode: Mode d'encriptació: - + Require encryption Requereix l'encriptació - + Disable encryption Inhabilita l'encriptació - + Enable when using a proxy or a VPN connection Habilita quan utilitzi un servidor intermediari o una connexió VPN - + Enable anonymous mode Habilita el mode anònim - + Maximum active downloads: Màxim de baixades actives: - + Maximum active uploads: Màxim de pujades actives: - + Maximum active torrents: Màxim de torrent actius: - + Do not count slow torrents in these limits No comptis els torrents lents fora d'aquests límits - + Upload rate threshold: Llindar de la velocitat de pujada: - + Download rate threshold: Llindar de la velocitat de baixada: - - - - + + + + sec seconds s - + Torrent inactivity timer: Temporitzador d'inactivitat del torrent: - + then després - + Use UPnP / NAT-PMP to forward the port from my router Utilitza UPnP / NAT-PMP per reenviar el port des de l'encaminador - + Certificate: Certificat: - + Key: Clau: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informació sobre els certificats</a> - + Change current password Canvia la contrasenya actual - - Use alternative Web UI - Usa una interfície web alternativa - - - + Files location: Ubicació dels fitxers: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Llista d'interfície gràfica d'usuari alternativa</a> + + + Security Seguretat - + Enable clickjacking protection Habilita la protecció de segrest de clic. - + Enable Cross-Site Request Forgery (CSRF) protection Habilita protecció de la falsificació de peticions de llocs creuats (CSRF). - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Activa la marca de seguretat de la galeta (requereix una connexió HTTPS o d'amfitrió local) + + + Enable Host header validation Habilita la validació de la capçalera de l'amfitrió - + Add custom HTTP headers Afegeix capçaleres d'HTTP personalitzades - + Header: value pairs, one per line Capçalera: clients de valor, un per línia - + Enable reverse proxy support Habilita la compatibilitat amb el servidor intermediari invers - + Trusted proxies list: Llista d'intermediaris de confiança: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Exemples de configuració d'intermediari invers</a> + + + Service: Servei: - + Register Registre - + Domain name: Nom de domini: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Si s'habiliten aquestes opcions, podeu <strong>perdre irrevocablement</strong> els vostres fitxers .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Si habiliteu la segona opció (&ldquo;També quan l'addició es cancel·la&rdquo;) el fitxer .torrent <strong>se suprimirà</strong> fins i tot si premeu &ldquo;<strong>Cancel·la</strong>&rdquo; dins el diàleg &ldquo;Afegeix un torrent&rdquo; - + Select qBittorrent UI Theme file Seleccioneu el fitxer de tema de qBittorrent IU - + Choose Alternative UI files location Trieu una ubicació alternativa per als fitxers d'interfície d'usuari - + Supported parameters (case sensitive): Paràmetres admesos (sensible a majúscules): - + Minimized minimitzada - + Hidden amagada - + Disabled due to failed to detect system tray presence S'ha desactivat perquè no s'ha pogut detectar la presència de la safata del sistema. - + No stop condition is set. No s'ha establert cap condició d'aturada. - + Torrent will stop after metadata is received. El torrent s'aturarà després de rebre les metadades. - Torrents that have metadata initially aren't affected. - Els torrents que tinguin metadades inicialment no n'estan afectats. - - - + Torrent will stop after files are initially checked. El torrent s'aturarà després de la comprovació inicial dels fitxers. - + This will also download metadata if it wasn't there initially. Això també baixarà metadades si no n'hi havia inicialment. - + %N: Torrent name %N: nom del torrent - + %L: Category %L: categoria - + %F: Content path (same as root path for multifile torrent) %F: Camí del contingut (igual que el camí d'arrel per a torrents de fitxers múltiples) - + %R: Root path (first torrent subdirectory path) %R: camí d'arrel (camí del subdirectori del primer torrent) - + %D: Save path %D: camí on desar-ho - + %C: Number of files %C: nombre de fitxers - + %Z: Torrent size (bytes) %Z mida del torrent (bytes) - + %T: Current tracker %T: rastrejador actual - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: emmarqueu el paràmetre amb cometes per evitar que el text es talli a l'espai en blanc (p.e., "%N") - + + Test email + Correu electrònic de prova + + + + Attempted to send email. Check your inbox to confirm success + S'ha intentat enviar un correu electrònic. Comproveu la safata d'entrada per confirmar-ho. + + + (None) (Cap) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Es considerarà que un torrent és lent si les taxes de baixada i pujada es mantenen per sota d'aquests valors durant els segons del «Temporitzador d'inactivitat del torrent». - + Certificate Certificat: - + Select certificate Seleccioneu el certificat - + Private key Clau privada - + Select private key Seleccioneu la clau privada - + WebUI configuration failed. Reason: %1 La configuració de la interfície web ha fallat. Raó: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Es recomana %1 per la millor compatibilitat amb el mode fosc de Windows. + + + + System + System default Qt style + Sistema + + + + Let Qt decide the style for this system + Permet que Qt decideixi l'estil d'aquest sistema. + + + + Dark + Dark color scheme + fosc + + + + Light + Light color scheme + clar + + + + System + System color scheme + Sistema + + + Select folder to monitor Seleccioneu una carpeta per monitorar. - + Adding entry failed No s'ha pogut afegir l'entrada - + The WebUI username must be at least 3 characters long. El nom d'usuari de la interfície web ha de tenir almenys 3 caràcters. - + The WebUI password must be at least 6 characters long. La contrasenya de la interfície web ha de tenir almenys 6 caràcters. - + Location Error Error d'ubicació - - + + Choose export directory Trieu un directori d'exportació - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Quan aquestes opcions estan habilitades, el qBittorrent <strong>suprimirà</strong> fitxers .torrent després que s'hagin afegit correctament (la primera opció) o no (la segona) a la seva cua de baixada. Això s'aplicarà <strong>no només</strong> als fitxers oberts oberts a través de l'acció de menú &ldquo;Afegeix un torrent&rdquo; sinó també als oberts a través de l'<strong>associació de tipus de fitxer</strong>. - + qBittorrent UI Theme file (*.qbtheme config.json) Fitxer de tema de la IU de qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiquetes (separades per comes) - + %I: Info hash v1 (or '-' if unavailable) %I: informació de resum v1 (o '-' si no està disponible) - + %J: Info hash v2 (or '-' if unavailable) % J: hash d'informació v2 (o '-' si no està disponible) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Identificador del torrent (resum d'informació sha-1 per al torrent v1 o resum d'informació sha-256 truncat per al torrent v2 / híbrid) - - - + + + Choose a save directory Trieu un directori per desar - + Torrents that have metadata initially will be added as stopped. - + Els torrents que tinguin metadades inicialment s'afegiran com a aturats. - + Choose an IP filter file Trieu un fitxer de filtre IP - + All supported filters Tots els filtres suportats - + The alternative WebUI files location cannot be blank. La ubicació alternativa dels fitxers de la interfície web no pot estar en blanc. - + 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 S'ha analitzat satisfactòriament el filtre IP proporcionat: s'han aplicat %1 regles. - + Preferences Preferències - + Time Error Error de temps - + The start time and the end time can't be the same. Els temps d'inici i d'acabament no poden ser els mateixos. - - + + Length Error Error de longitud @@ -7335,241 +7766,246 @@ readme[0-9].txt: filtra "readme1.txt", "readme2.txt" però n PeerInfo - + Unknown Desconegut - + Interested (local) and choked (peer) Interessat (local) i mut (client) - + Interested (local) and unchoked (peer) Interessat (local) i no mut (client) - + Interested (peer) and choked (local) Interessat (client) i mut (local) - + Interested (peer) and unchoked (local) Interessat (client) i no mut (local) - + Not interested (local) and unchoked (peer) No interessat (local) i no mut (client) - + Not interested (peer) and unchoked (local) No interessat (client) i no mut (local) - + Optimistic unchoke No mut optimista - + Peer snubbed Client rebutjat - + Incoming connection Connexió d'entrada - + Peer from DHT Client de DHT - + Peer from PEX Client de PEX - + Peer from LSD Client d'LSD - + Encrypted traffic Trànsit encriptat - + Encrypted handshake Salutació encriptada + + + Peer is using NAT hole punching + El client usa la perforació de forats NAT. + PeerListWidget - + Country/Region País / regió - + IP/Address Adreça IP - + Port Port - + Flags Marques - + Connection Connexió - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID ID del 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 Baixat - + 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. Rellevància - + Files i.e. files that are being downloaded right now Fitxers - + Column visibility Visibilitat de les columnes - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut - + Add peers... Afegeix clients... - - + + Adding peers Addició de clients - + Some peers cannot be added. Check the Log for details. No s'han pogut afegir alguns clients. Consulteu el registre per a més detalls. - + Peers are added to this torrent. S'afegeixen clients a aquest torrent - - + + Ban peer permanently Prohibeix el client permanentment - + Cannot add peers to a private torrent No es poden afegir clients a un torrent privat. - + Cannot add peers when the torrent is checking No es poden afegir clients quan el torrent es comprova. - + Cannot add peers when the torrent is queued No es poden afegir clients quan el torrent és a la cua. - + No peer was selected No s'ha seleccionat cap client. - + Are you sure you want to permanently ban the selected peers? Segur que voleu prohibir permanentment els clients seleccionats? - + Peer "%1" is manually banned El client "%1" està prohibit manualment. - + N/A N / D - + Copy IP:port Copia IP:port @@ -7587,7 +8023,7 @@ readme[0-9].txt: filtra "readme1.txt", "readme2.txt" però n Llista de clients per afegir (una IP per línia): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7628,27 +8064,27 @@ readme[0-9].txt: filtra "readme1.txt", "readme2.txt" però n PiecesBar - + Files in this piece: Fitxers en aquest tros: - + File in this piece: Fitxer en aquest tros: - + File in these pieces: Fitxer en aquests trossos: - + Wait until metadata become available to see detailed information Espera fins que les metadades estiguin disponibles per veure'n la informació detallada. - + Hold Shift key for detailed information Mantingueu premuda la tecla de majúscules per veure'n la informació detallada @@ -7661,59 +8097,59 @@ readme[0-9].txt: filtra "readme1.txt", "readme2.txt" però n Connectors de cerca - + Installed search plugins: Connectors de cerca instal·lats: - + Name Nom - + Version Versió - + Url URL - - + + Enabled Habilitat - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Avís: assegureu-vos que compliu les lleis de dret de còpia del vostre país quan baixeu torrents des de qualsevol d'aquests motors de cerca. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Podeu obtenir nous connectors de motors de cerca aquí: <a href="https://plugins.qbittorrent.org"> https://plugins.qbittorrent.org</a> - + Install a new one Instal·la'n un de nou - + Check for updates Comprova si hi ha actualitzacions - + Close Tanca - + Uninstall Desinstal·la @@ -7833,98 +8269,65 @@ Aquests connectors s'han inhabilitat. Font del connector - + Search plugin source: Font del connector de cerca: - + Local file Fitxer local - + Web link Enllaç web - - PowerManagement - - - qBittorrent is active - El qBittorrent està actiu. - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - La gestió d'energia ha trobat la interfície D-Bus adequada. Interfície: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Error de gestió d'energia. No s'ha trobat la interfície D-Bus adequada. - - - - - - Power management error. Action: %1. Error: %2 - Error de gestió d'energia. Acció: %1. Error: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Error inesperat de gestió d'energia. Estat: %1. Error: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Els fitxers següents del torrent «%1» permeten la previsualització. Seleccioneu-ne un: - + Preview Vista prèvia - + Name Nom - + Size Mida - + Progress Progrés - + Preview impossible Vista prèvia impossible - + Sorry, we can't preview this file: "%1". Perdoneu. No es pot mostrar una previsualització d'aquest fitxer: "%1". - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut @@ -7937,27 +8340,27 @@ Aquests connectors s'han inhabilitat. Private::FileLineEdit - + Path does not exist El camí no existeix. - + Path does not point to a directory El camí no apunta cap a un directori. - + Path does not point to a file El camí no apunta cap a un fitxer. - + Don't have read permission to path No teniu permís de lectura al camí. - + Don't have write permission to path No teniu permís d'escriptura al camí. @@ -7998,12 +8401,12 @@ Aquests connectors s'han inhabilitat. PropertiesWidget - + Downloaded: Baixat: - + Availability: Disponibilitat: @@ -8018,53 +8421,53 @@ Aquests connectors s'han inhabilitat. Transferència - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Temps actiu: - + ETA: Temps estimat: - + Uploaded: Pujada: - + Seeds: Llavors: - + Download Speed: Velocitat de baixada: - + Upload Speed: Velocitat de pujada: - + Peers: Clients: - + Download Limit: Límit de baixada: - + Upload Limit: Límit de pujada: - + Wasted: Perdut: @@ -8074,193 +8477,220 @@ Aquests connectors s'han inhabilitat. Connexions: - + Information Informació - + Info Hash v1: Informació de la funció resum v1: - + Info Hash v2: Informació de la funció resum v2: - + Comment: Comentari: - + Select All Selecciona-ho tot - + Select None Treure Seleccions - + Share Ratio: Ràtio de compartició: - + Reannounce In: Es tornarà a anunciar en: - + Last Seen Complete: Vist per última vegada complet: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + La ràtio / el temps d'activitat (en mesos), indica la popularitat del torrent. + + + + Popularity: + Popularitat: + + + Total Size: Mida total: - + Pieces: Trossos: - + Created By: Creat per: - + Added On: Afegit el: - + Completed On: Completat el: - + Created On: Creat el: - + + Private: + Privat: + + + Save Path: Camí on desar-ho: - + Never Mai - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (té %3) - - + + %1 (%2 this session) %1 (%2 en aquesta sessió) - - + + + N/A N / D - + + Yes + + + + + No + No + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sembrat durant %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 mitjana) - - New Web seed - Llavor web nova + + Add web seed + Add HTTP source + Afegeix una llavor web - - Remove Web seed - Suprimeix la llavor web + + Add web seed: + Afegeix una llavor web: - - Copy Web seed URL - Copia l'URL de la llavor web + + + This web seed is already in the list. + Aquesta llavor web ja és a la llista. - - Edit Web seed URL - Edita l'URL de la llavor web - - - + Filter files... Filtra els fitxers... - + + Add web seed... + Afegeix una llavor web... + + + + Remove web seed + Suprimeix la llavor web + + + + Copy web seed URL + Copia l'URL de llavor web + + + + Edit web seed URL... + Edita l'URL de la llavor web... + + + Speed graphs are disabled Els gràfics de velocitat estan desactivats. - + You can enable it in Advanced Options Podeu activar-lo a Opcions avançades. - - New URL seed - New HTTP source - Llavor d'URL nova - - - - New URL seed: - Llavor d'URL nova: - - - - - This URL seed is already in the list. - Aquesta llavor d'URL ja és a la llista. - - - + Web seed editing Edició de la llavor web - + Web seed URL: URL de la llavor web: @@ -8268,33 +8698,33 @@ Aquests connectors s'han inhabilitat. RSS::AutoDownloader - - + + Invalid data format. Format de dades no vàlid. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 No s'han pogut desar les dades del Descarregador automàtic d'RSS a %1: Error: %2 - + Invalid data format Format de dades no vàlid - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... L'article d'RSS %1 és acceptat per la regla %2. S'intenta afegir el torrent... - + Failed to read RSS AutoDownloader rules. %1 No s'han pogut llegir les regles de baixada automàtica d'RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 No s'han pogut carregar les regles del Descarregador automàtic d'RSS. Raó: %1 @@ -8302,22 +8732,22 @@ Aquests connectors s'han inhabilitat. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Ha fallat baixar el contingut del canal d'RSS a %1. Raó: %2 - + RSS feed at '%1' updated. Added %2 new articles. S'ha actualitzat el canal d'RSS %1. S'han afegit %2 articles nous. - + Failed to parse RSS feed at '%1'. Reason: %2 Ha fallat analitzar el canal d'RSS a 1%. Raó: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. S'ha baixat correctament el contingut del canal d'RSS a %1. Es comença a analitzar. @@ -8353,12 +8783,12 @@ Aquests connectors s'han inhabilitat. RSS::Private::Parser - + Invalid RSS feed. Canal d'RSS no vàlid. - + %1 (line: %2, column: %3, offset: %4). %1 (línia: %2, columna: %3, desplaçament: %4). @@ -8366,103 +8796,144 @@ Aquests connectors s'han inhabilitat. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" No s'ha pogut desar la configuració de la sessió d'RSS. Fitxer: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" No s'han pogut desar les dades de la sessió d'RSS. Fitxer: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. El canal d'RSS amb l'URL proporcionat ja existeix: %1. - + Feed doesn't exist: %1. Feed no existeix: %1. - + Cannot move root folder. No es pot moure la carpeta d'arrel. - - + + Item doesn't exist: %1. No existeix l'element %1. - - Couldn't move folder into itself. - No s'ha pogut moure la carpeta a si mateixa. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. No es pot suprimir la carpeta d'arrel. - + Failed to read RSS session data. %1 No s'han pogut llegir les dades de la sessió d'RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" No s'han pogut analitzar les dades de la sessió d'RSS. Fitxer: %1. Error: %2 - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." No s'han pogut carregar les dades de la sessió d'RSS. Fitxer: %1. Error: format de dades no vàlid. - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. No s'ha pogut carregar el canal d'RSS. Canal: "%1". Raó: l'URL és obligatori. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. No s'ha pogut carregar el canal d'RSS. Canal: "%1". Raó: l'UID no és vàlid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. S'ha trobat un canal d'RSS duplicat. UID: "%1". Error: la configuració sembla malmesa. - + Couldn't load RSS item. Item: "%1". Invalid data format. No s'ha pogut carregar l'element d'RSS. Element: "%1". Format de dades no vàlid. - + Corrupted RSS list, not loading it. Llista d'RSS danyada. No es carrega. - + Incorrect RSS Item path: %1. Camí a l'element d'RSS incorrecte: %1. - + RSS item with given path already exists: %1. L'element d'RSS amb el camí proporcionat ja existeix: %1. - + Parent folder doesn't exist: %1. No existeix la carpeta mare %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed no existeix: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Interval d'actualització: + + + + sec + s + + + + Default + Per defecte + + RSSWidget @@ -8482,8 +8953,8 @@ Aquests connectors s'han inhabilitat. - - + + Mark items read Marca els elements llegits @@ -8508,132 +8979,115 @@ Aquests connectors s'han inhabilitat. Torrents: (doble clic per a baixar-los) - - + + Delete Suprimeix - + Rename... Canvia'n el nom... - + Rename Canvia'n el nom - - + + Update Actualitza - + New subscription... Subscripció nova... - - + + Update all feeds Actualitza tots els canals - + Download torrent Baixa el torrent - + Open news URL Obre l'URL de notícies - + Copy feed URL Copia l'URL del canal - + New folder... Carpeta nova... - - Edit feed URL... - Editar URL de feed... + + Feed options... + - - Edit feed URL - Editar URL de feed - - - + Please choose a folder name Trieu un nom de carpeta. - + Folder name: Nom de la carpeta: - + New folder Carpeta nova - - - Please type a RSS feed URL - Escriviu l'URL d'un canal d'RSS - - - - - Feed URL: - URL del canal: - - - + Deletion confirmation Confirmació de supressió - + Are you sure you want to delete the selected RSS feeds? Segur que voleu suprimir els canals d'RSS seleccionats? - + Please choose a new name for this RSS feed Trieu un nou nom per a aquest canal d'RSS - + New feed name: Nom del canal nou: - + Rename failed El canvi de nom ha fallat. - + Date: Data: - + Feed: Canal: - + Author: Autor: @@ -8641,38 +9095,38 @@ Aquests connectors s'han inhabilitat. SearchController - + Python must be installed to use the Search Engine. S'ha d'instal·lar Python per usar el motor de cerca. - + Unable to create more than %1 concurrent searches. No es poden crear més de %1 cerques concurrents. - - + + Offset is out of range Desplaçament fora de l'abast - + All plugins are already up to date. Tots els connectors ja estan actualitzats. - + Updating %1 plugins S'actualitzen %1 connectors - + Updating plugin %1 S'actualitza el connector %1 - + Failed to check for plugin updates: %1 Ha fallat comprovar les actualitzacions dels connectors: %1 @@ -8747,132 +9201,142 @@ Aquests connectors s'han inhabilitat. Mida: - + Name i.e: file name Nom - + Size i.e: file size Mida - + Seeders i.e: Number of full sources Sembradors - + Leechers i.e: Number of partial sources Sangoneres - - Search engine - Motor de cerca - - - + Filter search results... Filtra els resultats de la cerca... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultats (se'n mostren <i>%1</i> d'un total de <i>%2</i>): - + Torrent names only Només noms de torrents - + Everywhere Arreu - + Use regular expressions Usa expressions regulars - + Open download window Obre la finestra de baixades - + Download Baixa - + Open description page Obre la pàgina de descripció - + Copy Copia - + Name Nom - + Download link Enllaç de baixada - + Description page URL URL de la pàgina de descripció - + Searching... Cercant.. - + Search has finished La cerca s'ha acabat. - + Search aborted Cerca avortada - + An error occurred during search... S'ha produït un error durant la cerca... - + Search returned no results La cerca no ha trobat cap resultat. - + + Engine + Motor + + + + Engine URL + URL del motor + + + + Published On + Publicat el + + + Column visibility Visibilitat de les columnes - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut @@ -8880,104 +9344,104 @@ Aquests connectors s'han inhabilitat. SearchPluginManager - + Unknown search engine plugin file format. El format de fitxer del connector de motor de cerca és desconegut. - + Plugin already at version %1, which is greater than %2 El connector ja té la versió %1, que és més avançada que %2. - + A more recent version of this plugin is already installed. Ja hi ha instal·lada una versió més recent d'aquest connector. - + Plugin %1 is not supported. El connector %1 no s'admet. - - + + Plugin is not supported. El connector no està suportat. - + Plugin %1 has been successfully updated. El connector %1 s'ha actualitzat correctament. - + All categories Totes les categories - + Movies Pel·lícules - + TV shows Programes de TV - + Music Música - + Games Jocs - + Anime Anime - + Software Programari - + Pictures Imatges - + Books Llibres - + Update server is temporarily unavailable. %1 El servidor d'actualitzacions és temporalment fora de servei. %1 - - + + Failed to download the plugin file. %1 No s'ha pogut baixar el fitxer del connector: %1 - + Plugin "%1" is outdated, updating to version %2 El connector "%1" és antic. S'actualitza a la versió %2. - + Incorrect update info received for %1 out of %2 plugins. S'ha rebut informació d'actualització incorrecta per a %1 de %2 connectors. - + Search plugin '%1' contains invalid version string ('%2') El connector de cerca «%1» conté una cadena de versió no vàlida («%2») @@ -8987,114 +9451,145 @@ Aquests connectors s'han inhabilitat. - - - - Search Cerca - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. No hi ha connectors de cerca instal·lats. Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dreta de la finestra per instal·lar-ne. - + Search plugins... Cerca connectors... - + A phrase to search for. Una frase per cercar.. - + Spaces in a search term may be protected by double quotes. Els espais als termes de cerca es poden protegir amb cometes dobles. - + Example: Search phrase example Exemple: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: cerca <b>foo bar</b> - + All plugins Tots els connectors - + Only enabled Només habilitat - + + + Invalid data format. + Format de dades no vàlid. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: cerca <b>foo</b> i <b>bar</b> - + + Refresh + Refresca + + + Close tab Tanca la pestanya - + Close all tabs Tanca totes les pestanyes - + Select... Selecció... - - - + + Search Engine Motor de cerca - + + Please install Python to use the Search Engine. Instal·leu Python per fer servir el motor de cerca. - + Empty search pattern Patró de recerca buit - + Please type a search pattern first Escriviu primer un patró de cerca - + + Stop Atura't + + + SearchWidget::DataStorage - - Search has finished - La cerca s'ha acabat. + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + No s'han pogut carregar les dades d'estat desades de la IU de cerca. Fitxer: "%1". Error: "%2" - - Search has failed - La cerca ha fallat + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + No s'han pogut carregar els resultats de la cerca desats. Pestanya: "%1". Fitxer: "%2". Error: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + No s'ha pogut desar l'estat de la IU de cerca. Fitxer: "%1". Error: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + No s'han pogut desar els resultats de la cerca. Pestanya: "%1". Fitxer: "%2". Error: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + No s'ha pogut carregar l'historial de la IU de cerca. Fitxer: "%1". Error: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + No s'ha pogut desar l'historial de cerques. Fitxer: "%1". Error: "%2" @@ -9207,34 +9702,34 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret - + Upload: Pujada: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Baixada: - + Alternative speed limits Límits de velocitat alternatius @@ -9426,32 +9921,32 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret Mitjana de temps a la cua: - + Connected peers: Clients connectats: - + All-time share ratio: Ràtio de compartició de sempre: - + All-time download: Baixada de sempre: - + Session waste: Sessió malgastada: - + All-time upload: Pujada de sempre: - + Total buffer size: Mida total de la memòria intermèdia: @@ -9466,12 +9961,12 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret Ordres d'entrada / sortida a la cua: - + Write cache overload: Escriure memòria cau sobrecarregada: - + Read cache overload: Llegir memòria cau sobrecarregada: @@ -9490,51 +9985,77 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret StatusBar - + Connection status: Estat de la connexió: - - + + No direct connections. This may indicate network configuration problems. No hi ha connexions directes. Això pot indicar problemes en la configuració de la xarxa. - - + + Free space: N/A + + + + + + External IP: N/A + IP externa: N/A + + + + DHT: %1 nodes DHT: %1 nodes - + qBittorrent needs to be restarted! El qBittorrent s'ha de reiniciar! - - - + + + Connection Status: Estat de la connexió: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Fora de línia. Això normalment significa que el qBittorrent no pot contactar al port seleccionat per a les connexions entrants. - + Online En línea - + + Free space: + + + + + External IPs: %1, %2 + IP externes: %1, %2 + + + + External IP: %1%2 + IP externa: %1%2 + + + Click to switch to alternative speed limits Cliqueu per canviar als límits de velocitat alternativa - + Click to switch to regular speed limits Cliqueu per canviar als límits de velocitat normal @@ -9564,12 +10085,12 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret - Resumed (0) - Represos (0) + Running (0) + Actius (0) - Paused (0) + Stopped (0) Interromputs (0) @@ -9632,36 +10153,36 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret Completed (%1) Completats (%1) + + + Running (%1) + Actius (%1) + - Paused (%1) + Stopped (%1) Interromputs (%1) + + + Start torrents + Inicia els torrents + + + + Stop torrents + Interromp els torrents + Moving (%1) Es mou (%1) - - - Resume torrents - Reprèn els torrents - - - - Pause torrents - Interromp els torrents - Remove torrents Suprimeix els torrents - - - Resumed (%1) - Represos (%1) - Active (%1) @@ -9733,31 +10254,31 @@ Cliqueu al botó "Connectors de cerca..." del cantó de baix a la dret Remove unused tags Suprimeix les etiquetes no usades - - - Resume torrents - Reprèn els torrents - - - - Pause torrents - Interromp els torrents - Remove torrents Suprimeix els torrents - - New Tag - Etiqueta nova + + Start torrents + Inicia els torrents + + + + Stop torrents + Interromp els torrents Tag: Etiqueta: + + + Add tag + Afegeix una etiqueta + Invalid tag name @@ -9904,32 +10425,32 @@ Trieu-ne un altre i torneu-ho a provar. TorrentContentModel - + Name Nom - + Progress Progrés - + Download Priority Prioritat de baixada - + Remaining Restant - + Availability Disponibilitat - + Total Size Mida total @@ -9974,98 +10495,98 @@ Trieu-ne un altre i torneu-ho a provar. TorrentContentWidget - + Rename error Error de canvi de nom - + Renaming Canvi de nom - + New name: Nom nou: - + Column visibility Visibilitat de les columnes - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut. - + Open Obre - + Open containing folder Obre la carpeta que ho conté - + Rename... Canvia'n el nom... - + Priority Prioritat - - + + Do not download No ho baixis - + Normal Normal - + High Alta - + Maximum Màxima - + By shown file order Per l'ordre de fitxer mostrat - + Normal priority Prioritat normal - + High priority Prioritat alta - + Maximum priority Prioritat màxima - + Priority by shown file order Prioritat per ordre de fitxer mostrat @@ -10073,19 +10594,19 @@ Trieu-ne un altre i torneu-ho a provar. TorrentCreatorController - + Too many active tasks - + Massa tasques actives - + Torrent creation is still unfinished. - + La creació del torrent encara està inacabada. - + Torrent creation failed. - + La creació del torrent ha fallat. @@ -10112,13 +10633,13 @@ Trieu-ne un altre i torneu-ho a provar. - + Select file Seleccioneu un fitxer - + Select folder Seleccioneu una carpeta @@ -10193,87 +10714,83 @@ Trieu-ne un altre i torneu-ho a provar. Camps - + You can separate tracker tiers / groups with an empty line. Podeu separar els nivells de rastrejadors o grups amb una línia en blanc. - + Web seed URLs: URLs de llavor web: - + Tracker URLs: URLs de rastrejador: - + Comments: Comentaris: - + Source: Font: - + Progress: Progrés: - + Create Torrent Crea un torrent - - + + Torrent creation failed Ha fallat la creació del torrent. - + Reason: Path to file/folder is not readable. Raó: el camí al fitxer o la carpeta no és llegible. - + Select where to save the new torrent Seleccioneu on desar el torrent nou. - + Torrent Files (*.torrent) Fitxers torrent (*.torrent) - Reason: %1 - Raó: %1 - - - + Add torrent to transfer list failed. S'ha produït un error en afegir torrent a la llista de transferències. - + Reason: "%1" Raó: %1 - + Add torrent failed S'ha produït un error en afegir el torrent. - + Torrent creator Creador del torrent - + Torrent created: Creació del torrent: @@ -10281,32 +10798,32 @@ Trieu-ne un altre i torneu-ho a provar. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 No s'ha pogut carregar la configuració de les carpetes vigilades. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" No s'ha pogut analitzar la configuració de les carpetes vigilades de %1. Error: %2 - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." No s'ha pogut carregar la configuració de les carpetes vigilades des de %1. Error: format de dades no vàlid. - + Couldn't store Watched Folders configuration to %1. Error: %2 No s'ha pogut desar la configuració de les carpetes vigilades de %1. Error: %2 - + Watched folder Path cannot be empty. El camí de la carpeta vigilada no pot estar buit. - + Watched folder Path cannot be relative. El camí de la carpeta vigilada no pot ser relatiu. @@ -10314,44 +10831,31 @@ Trieu-ne un altre i torneu-ho a provar. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 URI d'enllaç magnètic no vàlid. URI: %1. Raó: %2 - + Magnet file too big. File: %1 El fitxer magnètic és massa gros. Fitxer: %1 - + Failed to open magnet file: %1 No s'ha pogut obrir el fitxer magnet: % 1 - + Rejecting failed torrent file: %1 Rebutjant el fitxer de torrent fallit: %1 - + Watching folder: "%1" Supervisió de la carpeta: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - No s'ha pogut assignar memòria en llegir el fitxer. Fitxer: %1. Error: %2 - - - - Invalid metadata - Metadades no vàlides - - TorrentOptionsDialog @@ -10380,175 +10884,163 @@ Trieu-ne un altre i torneu-ho a provar. Usa un altre camí per al torrent incomplet. - + Category: Categoria: - - Torrent speed limits - Límits de velocitat del torrent + + Torrent Share Limits + Límits de compartició del torrent - + Download: Baixada: - - + + - - + + Torrent Speed Limits + Límits de velocitat del torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Això no excedirà els límits globals - + Upload: Pujada: - - Torrent share limits - Límits de compartició del torrent - - - - Use global share limit - Usa el límit de compartició global - - - - Set no share limit - Sense cap límit de compartició - - - - Set share limit to - Estableix el límit de compartició a - - - - ratio - ràtio - - - - total minutes - minuts totals - - - - inactive minutes - minuts d'inacció - - - + Disable DHT for this torrent Desactiva DHT per a aquest torrent - + Download in sequential order Baixa en ordre seqüencial - + Disable PeX for this torrent Desactiva PeX per a aquest torrent - + Download first and last pieces first Baixa primer els trossos del principi i del final - + Disable LSD for this torrent Desactiva LSD per a aquest torrent - + Currently used categories Categories usades actualment - - + + Choose save path Trieu el camí on desar-ho - + Not applicable to private torrents No s'aplica als torrents privats - - - No share limit method selected - No s'ha seleccionat cap mètode de limitació de compartició - - - - Please select a limit method first - Seleccioneu primer un mètode de limitació - TorrentShareLimitsWidget - - - + + + + Default - Per defecte + Per defecte + + + + + + Unlimited + Sense límit - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Establert a + + + + Seeding time: + Temps de sembra: + + + + + + + + min minutes - + min. - + Inactive seeding time: - + Temps de sembra inactiu: - + + Action when the limit is reached: + Acció quan s'arriba al límit: + + + + Stop torrent + Interromp el torrent + + + + Remove torrent + Suprimeix el torrent + + + + Remove torrent and its content + Suprimeix el torrent i el contingut + + + + Enable super seeding for torrent + Habilita la supersembra per al torrent + + + Ratio: - + Ràtio @@ -10559,32 +11051,32 @@ Trieu-ne un altre i torneu-ho a provar. Etiquetes de Torrent - - New Tag - Etiqueta nova + + Add tag + Afegeix una etiqueta - + Tag: Etiqueta: - + Invalid tag name Nom d'etiqueta no vàlid - + Tag name '%1' is invalid. El nom d'etiqueta '%1' és invàlid. - + Tag exists L'etiqueta ja existeix. - + Tag name already exists. El nom d'etiqueta ja existeix. @@ -10592,115 +11084,130 @@ Trieu-ne un altre i torneu-ho a provar. TorrentsController - + Error: '%1' is not a valid torrent file. Error: «%1« no és un fitxer torrent vàlid. - + Priority must be an integer La prioritat ha de ser un nombre enter. - + Priority is not valid La prioritat no és vàlida. - + Torrent's metadata has not yet downloaded Encara no s'han baixat les metadades del torrent. - + File IDs must be integers Els indicadors del fitxer han de ser nombres enters. - + File ID is not valid L'identificador del fitxer no és vàlid. - - - - + + + + Torrent queueing must be enabled Cal que habiliteu la cua d'operacions dels torrent - - + + Save path cannot be empty El camí on desar-ho no pot estar en blanc. - - + + Cannot create target directory No es pot crear el directori de destinació. - - + + Category cannot be empty La categoria no pot estar en blanc. - + Unable to create category No s'ha pogut crear la categoria - + Unable to edit category No s'ha pogut editar la categoria - + Unable to export torrent file. Error: %1 No es pot exportar el fitxer de torrent. Error: %1 - + Cannot make save path No es pot fer el camí on desar-ho. - + + "%1" is not a valid URL + "%1" no és un URL vàlid + + + + URL scheme must be one of [%1] + L'esquema d'URL ha de ser un de [%1] + + + 'sort' parameter is invalid El paràmetre d'ordenació no és vàlid - + + "%1" is not an existing URL + "%1" no és un URL existent + + + "%1" is not a valid file index. «%1» no és un índex de fitxer vàlid. - + Index %1 is out of bounds. L'índex %1 és fora dels límits. - - + + Cannot write to directory No es pot escriure al directori. - + WebUI Set location: moving "%1", from "%2" to "%3" Ubicació de la interfície d'usuari de xarxa: es mou «%1», de «%2» a «%3» - + Incorrect torrent name Nom de torrent incorrecte - - + + Incorrect category name Nom de categoria incorrecte @@ -10731,196 +11238,191 @@ Trieu-ne un altre i torneu-ho a provar. TrackerListModel - + Working Operatiu - + Disabled Inhabilitat - + Disabled for this torrent S'ha desactivat per a aquest torrent - + This torrent is private Aquest torrent és privat. - + N/A N / D - + Updating... Actualitzant... - + Not working No funciona - + Tracker error Error del rastrejador - + Unreachable Inabastable - + Not contacted yet Encara no s'hi ha contactat. - - Invalid status! + + Invalid state! Estat no vàlid! - - URL/Announce endpoint + + URL/Announce Endpoint URL / Anunci del punt final - + + BT Protocol + Protocol de BT + + + + Next Announce + Anunci següent + + + + Min Announce + Anunci min. + + + Tier Nivell - - Protocol - Protocol - - - + Status Estat - + Peers Clients - + Seeds Llavors - + Leeches Sangoneres - + Times Downloaded Cops descarregat - + Message Missatge - - - Next announce - Anunci següent - - - - Min announce - Anunciar mínim - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Aquest torrent és privat. - + Tracker editing Edició del rastrejador - + Tracker URL: URL del rastrejador: - - + + Tracker editing failed Ha fallat l'edició del rastrejador. - + The tracker URL entered is invalid. L'URL del rastrejador introduït no és vàlid. - + The tracker URL already exists. L'URL del rastrejador ja existeix. - + Edit tracker URL... Edita l'URL del rastrejador... - + Remove tracker Suprimeix el rastrejador - + Copy tracker URL Copia l'URL del rastrejador - + Force reannounce to selected trackers Força el reanunci als rastrejadors seleccionats - + Force reannounce to all trackers Forca el reanunci a tots els rastrejadors - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut - + Add trackers... Afegeix rastrejadors... - + Column visibility Visibilitat de les columnes @@ -10938,37 +11440,37 @@ Trieu-ne un altre i torneu-ho a provar. Llista de rastrejadors per afegir (un per línia): - + µTorrent compatible list URL: Llista d'URL de µTorrent compatibles: - + Download trackers list Baixa la llista de rastrejadors - + Add Afegeix - + Trackers list URL error Error d'URL a la llista de rastrejadors - + The trackers list URL cannot be empty L'URL de la llista de rastrejadors no pot estar buit. - + Download trackers list error Error de la llista de rastrejadors de baixada - + Error occurred when downloading the trackers list. Reason: "%1" S'ha produït un error en baixar la llista de rastrejadors. Raó: "%1" @@ -10976,62 +11478,62 @@ Trieu-ne un altre i torneu-ho a provar. TrackersFilterWidget - + Warning (%1) Advertències (%1) - + Trackerless (%1) Sense rastrejadors (%1) - + Tracker error (%1) Error del rastrejador (%1) - + Other error (%1) Altres errors (%1) - + Remove tracker Suprimeix el rastrejador - - Resume torrents - Reprèn els torrents + + Start torrents + Inicia els torrents - - Pause torrents + + Stop torrents Interromp els torrents - + Remove torrents Suprimeix els torrents - + Removal confirmation Confirmació de supressió - + Are you sure you want to remove tracker "%1" from all torrents? Segur que voleu suprimir el rastrejador %1 de tots els torrents? - + Don't ask me again. No m'ho tornis a preguntar. - + All (%1) this is for the tracker filter Tots (%1) @@ -11040,7 +11542,7 @@ Trieu-ne un altre i torneu-ho a provar. TransferController - + 'mode': invalid argument "mode": argument no vàlid @@ -11132,11 +11634,6 @@ Trieu-ne un altre i torneu-ho a provar. 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. Comprovant les dades de represa - - - Paused - Interromput - Completed @@ -11160,220 +11657,252 @@ Trieu-ne un altre i torneu-ho a provar. Amb errors - + Name i.e: torrent name Nom - + Size i.e: torrent size Mida - + Progress % Done Progrés - + + Stopped + Aturat + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Estat - + Seeds i.e. full sources (often untranslated) Llavors - + Peers i.e. partial sources (often untranslated) Clients - + Down Speed i.e: Download speed Velocitat de baixada - + Up Speed i.e: Upload speed Velocitat de pujada - + Ratio Share ratio Ràtio - + + Popularity + Popularitat + + + ETA i.e: Estimated Time of Arrival / Time left Temps estimat - + Category Categoria - + Tags Etiquetes - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Afegit el - + Completed On Torrent was completed on 01/01/2010 08:00 Completat el - + Tracker Rastrejador - + Down Limit i.e: Download limit Límit de baixada - + Up Limit i.e: Upload limit Límit de pujada - + Downloaded Amount of data downloaded (e.g. in MB) Baixat - + Uploaded Amount of data uploaded (e.g. in MB) Pujat - + Session Download Amount of data downloaded since program open (e.g. in MB) Baixada de la sessió - + Session Upload Amount of data uploaded since program open (e.g. in MB) Pujada de la sessió - + Remaining Amount of data left to download (e.g. in MB) Restant - + Time Active - Time (duration) the torrent is active (not paused) - Temps d'activitat + Time (duration) the torrent is active (not stopped) + Temps actiu - + + Yes + + + + + No + No + + + Save Path Torrent save path Camí on desar-ho - + Incomplete Save Path Torrent incomplete save path Camí on desar-ho incomplet - + Completed Amount of data completed (e.g. in MB) Completat - + Ratio Limit Upload share ratio limit Límit de ràtio - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Vist per última vegada complet - + Last Activity Time passed since a chunk was downloaded/uploaded Darrera activitat - + Total Size i.e. Size including unwanted data Mida total - + Availability The number of distributed copies of the torrent Disponibilitat - + Info Hash v1 i.e: torrent info hash v1 Informació de la funció resum v1 - + Info Hash v2 i.e: torrent info hash v2 Informació de la funció resum v2 - + Reannounce In Indicates the time until next trackers reannounce Es torna a anunciar d'aquí a - - + + Private + Flags private torrents + Privat + + + + Ratio / Time Active (in months), indicates how popular the torrent is + La ràtio / el temps d'activitat (en mesos), indica la popularitat del torrent. + + + + + N/A N / D - + %1 ago e.g.: 1h 20m ago fa %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sembrat durant %2) @@ -11382,339 +11911,319 @@ Trieu-ne un altre i torneu-ho a provar. TransferListWidget - + Column visibility Visibilitat de columnes - + Recheck confirmation Confirmació de la verificació - + Are you sure you want to recheck the selected torrent(s)? Segur que voleu tornar a comprovar els torrents seleccionats? - + Rename Canvia'n el nom - + New name: Nou nom: - + Choose save path Trieu el camí on desar-ho - - Confirm pause - Confirmeu la interrupció - - - - Would you like to pause all torrents? - Voleu interrompre tots els torrents? - - - - Confirm resume - Confirmeu la represa - - - - Would you like to resume all torrents? - Voleu reprendre tots els torrents? - - - + Unable to preview No es pot previsualitzar. - + The selected torrent "%1" does not contain previewable files El torrent seleccionat "%1" no conté fitxers que es puguin previsualitzar. - + Resize columns Canvia l'amplada de les columnes - + Resize all non-hidden columns to the size of their contents Canvia l'amplada de totes les columnes visibles a la mida del contingut - + Enable automatic torrent management Permet la gestió automàtica dels torrents - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Esteu segur que voleu activar la gestió automàtica dels torrents per als torrents seleccionats? Potser es canvien d'ubicació. - - Add Tags - Afegeix etiquetes - - - + Choose folder to save exported .torrent files Trieu la carpeta per desar els fitxers .torrent exportats. - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Ha fallat l'exportació del fitxer .torrent. Torrent: "%1". Desa el camí: "%2". Raó: "% 3" - + A file with the same name already exists Ja existeix un fitxer amb el mateix nom. - + Export .torrent file error Error d'exportació del fitxer .torrent - + Remove All Tags Suprimeix totes les etiquetes - + Remove all tags from selected torrents? Voleu suprimir totes les etiquetes dels torrents seleccionats? - + Comma-separated tags: Etiquetes separades per comes: - + Invalid tag Etiqueta no vàlida - + Tag name: '%1' is invalid El nom d'etiqueta "%1" no és vàlid. - - &Resume - Resume/start the torrent - &Reprèn - - - - &Pause - Pause the torrent - Interrom&p - - - - Force Resu&me - Force Resume/start the torrent - Força'n la re&presa - - - + Pre&view file... Pre&visualitza el fitxer... - + Torrent &options... Opci&ons del torrent... - + Open destination &folder Obre la carpe&ta de destinació - + Move &up i.e. move up in the queue Mou am&unt - + Move &down i.e. Move down in the queue Mou a&vall - + Move to &top i.e. Move to top of the queue Mou al &principi - + Move to &bottom i.e. Move to bottom of the queue Mou al capdava&ll - + Set loc&ation... Estableix la ubic&ació... - + Force rec&heck Força'n la ve&rificació - + Force r&eannounce Força'n el r&eanunci - + &Magnet link Enllaç &magnètic - + Torrent &ID &ID del torrent - + &Comment &Comentari - + &Name &Nom - + Info &hash v1 Informació de la &funció resum v1 - + Info h&ash v2 Informació de la funció resu&m v2 - + Re&name... Canvia'n el &nom... - + Edit trac&kers... Edita els rastre&jadors... - + E&xport .torrent... E&xporta el .torrent... - + Categor&y Categor&ia - + &New... New category... &Nou... - + &Reset Reset category &Restableix - + Ta&gs Eti&quetes - + &Add... Add / assign multiple tags... &Afegeix... - + &Remove All Remove all tags Sup&rimeix-les totes - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + No es pot forçar el reanunci si el torrent està interromput / és a la cua / té errors / es comprova. + + + &Queue &Posa a la cua - + &Copy &Copia - + Exported torrent is not necessarily the same as the imported El torrent exportat no és necessàriament el mateix que l'importat. - + Download in sequential order Baixa en ordre seqüencial - + + Add tags + Afegeix etiquetes + + + Errors occurred when exporting .torrent files. Check execution log for details. S'han produït errors en exportar fitxers .torrent. Consulteu el registre d'execució per obtenir més informació. - + + &Start + Resume/start the torrent + &Inicia + + + + Sto&p + Stop the torrent + Interrom&p + + + + Force Star&t + Force Resume/start the torrent + &Força'n l'inici + + + &Remove Remove the torrent Sup&rimeix - + Download first and last pieces first Baixa primer els trossos del principi i del final - + Automatic Torrent Management Gestió automàtica del torrents - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category El mode automàtic significa que diverses propietats dels torrents (p. ex. el camí on desar-los) es decidiran segons la categoria associada. - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - No es pot forçar el reanunci si el torrent està interromput / a la cua / té error / es comprova. - - - + Super seeding mode Mode de supersembra @@ -11759,28 +12268,28 @@ Trieu-ne un altre i torneu-ho a provar. ID de icona - + UI Theme Configuration. Configuració del tema d'IU. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Els canvis al tema d'IU no han pogut aplicar-se completament. Els detalls poden trobar-se al Log. - + Couldn't save UI Theme configuration. Reason: %1 No s'ha pogut guardar la configuració del tema d'IU. Motiu: %1 - - + + Couldn't remove icon file. File: %1. No s'ha pogut esborrar el fitxer d'icona. Fitxer: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. No s'ha pogut copiar el fitxer d'icona. Origen %1. Destí: %2. @@ -11788,7 +12297,12 @@ Trieu-ne un altre i torneu-ho a provar. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Ha fallat establir l'estil de l'aplicació. Estil desconegut: %1 + + + Failed to load UI theme from file: "%1" Ha fallat carregar el tema de la interfície d'usuari des del fitxer: "%1" @@ -11819,20 +12333,21 @@ Trieu-ne un altre i torneu-ho a provar. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Ha fallat migrar les preferències: interfície d'usuari de xarxa https, fitxer: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Preferències migrades: interfície d'usuari de xarxa https, dades exportades al fitxer: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". S'ha trobat un valor no vàlid al fitxer de configuració i es torna al valor predeterminat. Clau: %1. Valor no vàlid: %2. @@ -11840,32 +12355,32 @@ Trieu-ne un altre i torneu-ho a provar. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" S'ha trobat l'executable de Python. Nom: %1. Versió: %2 - + Failed to find Python executable. Path: "%1". No s'ha pogut trobar l'executable de Python. Camí: %1. - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" No s'ha pogut trobar l'executable de python3 a la variable d'entorn PATH. CAMÍ: %1 - + Failed to find `python` executable in PATH environment variable. PATH: "%1" No s'ha pogut trobar l'executable de python a la variable d'entorn PATH. CAMÍ: %1 - + Failed to find `python` executable in Windows Registry. No s'ha pogut trobar l'executable de python al registre de Windows. - + Failed to find Python executable No s'ha pogut trobar l'executable de Python. @@ -11957,72 +12472,72 @@ Trieu-ne un altre i torneu-ho a provar. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. S'ha especificat un nom de galeta de sessió inacceptable: %1. S'usa el valor predeterminat. - + Unacceptable file type, only regular file is allowed. El tipus de fitxer no és acceptable, només s'admeten fitxers normals. - + Symlinks inside alternative UI folder are forbidden. No es permeten els enllaços simbòlics a les carpetes d'interfície d'usuari alternativa. - + Using built-in WebUI. S'usa la interfície web integrada. - + Using custom WebUI. Location: "%1". S'usa la interfície d'usuari web personalitzada. Ubicació: %1. - + WebUI translation for selected locale (%1) has been successfully loaded. La traducció de la interfície web per a la configuració regional seleccionada (%1) s'ha carregat correctament. - + Couldn't load WebUI translation for selected locale (%1). No s'ha pogut carregar la traducció de la interfície web per a la configuració regional seleccionada (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Falta el separador ":" de la capçalera HTTP personalitzada de la interfície d'usuari de xarxa: "%1" - + Web server error. %1 Error del servidor web. %1 - + Web server error. Unknown error. Error del servidor web. Error desconegut. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Interfície d'usuari de xarxa: la capçalera d'origen i l'origen de destinació no coincideixen! IP d'origen: «%1». Capçalera d'origen «%2». Origen de destinació: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Interfície d'usuari de xarxa: la capçalera de referència i l'origen de destinació no coincideixen! IP d'origen: «%1». Capçalera de referència «%2». Origen de destinació: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Interfície d'usuari de xarxa: capçalera d'amfitrió, el port no coincideix. IP origen de la petició: «%1». Port del servidor: «%2». Capçalera d'amfitrió rebuda: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Interfície d'usuari de xarxa: capçalera d'amfitrió no vàlida. IP origen de la petició: «%1». Capçalera d'amfitrió rebuda: «%2» @@ -12030,125 +12545,133 @@ Trieu-ne un altre i torneu-ho a provar. WebUI - + Credentials are not set Les credencials no estan establertes. - + WebUI: HTTPS setup successful Interfície web: s'ha configurat HTTPS correctament. - + WebUI: HTTPS setup failed, fallback to HTTP Interfície web: la configuració d'HTTPS ha fallat, es torna a HTTP. - + WebUI: Now listening on IP: %1, port: %2 Interfície web: ara s'escolta la IP %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 No es pot enllaçar amb la IP %1, port: %2. Raó: %3 + + fs + + + Unknown error + Error desconegut + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) Desconegut - + qBittorrent will shutdown the computer now because all downloads are complete. El qBittorrent tancarà l'ordinador ara, perquè s'han completat totes les baixades. - + < 1m < 1 minute <1m diff --git a/src/lang/qbittorrent_cs.ts b/src/lang/qbittorrent_cs.ts index e9bc2f672..779e32bbe 100644 --- a/src/lang/qbittorrent_cs.ts +++ b/src/lang/qbittorrent_cs.ts @@ -14,75 +14,75 @@ O - + Authors Autoři - + Current maintainer Aktuální správce - + Greece Řecko - - + + Nationality: Národnost: - - + + E-mail: E-mail: - - + + Name: Jméno: - + Original author Původní autor - + France Francie - + Special Thanks Zvláštní poděkování - + Translators Překladatelé - + License Licence - + Software Used Použitý software - + qBittorrent was built with the following libraries: qBittorrent byl vytvořen s následujícími knihovnami: - + Copy to clipboard Kopírovat do schránky @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Uložit jako - + Never show again Už nikdy nezobrazovat - - - Torrent settings - Nastavení torrentu - Set as default category @@ -191,12 +186,12 @@ Spustit torrent - + Torrent information Info o torrentu - + Skip hash check Přeskočit kontrolu hashe @@ -205,6 +200,11 @@ Use another path for incomplete torrent Použít jinou cestu pro nedokončený torrent + + + Torrent options + Možnosti torrentu + Tags: @@ -231,75 +231,75 @@ Podmínka zastavení: - - + + None Žádná - - + + Metadata received Metadata stažena - + Torrents that have metadata initially will be added as stopped. - + Torrenty s metadaty budou přidány jako zastavené. - - + + Files checked Soubory zkontrolovány - + Add to top of queue Přidat na začátek fronty - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Je-li zaškrtnuto, soubor .torrent nebude smazán bez ohledu na nastavení na stránce "Stáhnout" v dialogovém okně Možnosti - + Content layout: Rozvržení obsahu: - + Original Originál - + Create subfolder Vytvořit podsložku - + Don't create subfolder Nevytvářet podsložku - + Info hash v1: Info hash v1: - + Size: Velikost: - + Comment: Komentář: - + Date: Datum: @@ -329,151 +329,147 @@ Zapamatovat si naposledy použitou cestu - + Do not delete .torrent file Nemazat soubor .torrent - + Download in sequential order Stáhnout v sekvenčním pořadí - + Download first and last pieces first Nejprve si stáhněte první a poslední části - + Info hash v2: Info hash v2: - + Select All Vybrat vše - + Select None Zrušit výběr - + Save as .torrent file... Uložit jako .torrent soubor... - + I/O Error Chyba I/O - + Not Available This comment is unavailable Není k dispozici - + Not Available This date is unavailable Není k dispozici - + Not available Není k dispozici - + Magnet link Magnet link - + Retrieving metadata... Získávám metadata... - - + + Choose save path Vyberte cestu pro uložení - + No stop condition is set. Podmínka zastavení není vybrána. - + Torrent will stop after metadata is received. Torrent se zastaví po stažení metadat. - Torrents that have metadata initially aren't affected. - Torrenty, které obsahovaly metadata, nejsou ovlivněny. - - - + Torrent will stop after files are initially checked. Torrent se zastaví po počáteční kontrole souborů. - + This will also download metadata if it wasn't there initially. Toto stáhne také metadata, pokud nebyla součástí. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Volné místo na disku: %2) - + Not available This size is unavailable. Není k dispozici - + Torrent file (*%1) Torrent soubor (*%1) - + Save as torrent file Uložit jako torrent soubor - + Couldn't export torrent metadata file '%1'. Reason: %2. Nebylo možné exportovat soubor '%1' metadat torrentu. Důvod: %2. - + Cannot create v2 torrent until its data is fully downloaded. Nelze vytvořit v2 torrent, než jsou jeho data zcela stažena. - + Filter files... Filtrovat soubory... - + Parsing metadata... Parsování metadat... - + Metadata retrieval complete Načítání metadat dokončeno @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Stahování torrentu... Zdroj: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Selhalo přidání torrentu. Zdroj: "%1". Důvod: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Rozpoznán pokus o přidání duplicitního torrentu. Zdroj: %1. Stávající torrent: %2. Výsledek: %3 - - - + Merging of trackers is disabled Slučování trackerů je vypnuto - + Trackers cannot be merged because it is a private torrent Trackery nemohou být sloučeny, protože jde o soukromý torrent - + Trackers are merged from new source Trackery jsou sloučeny z nového zdroje + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Limity sdílení torrentu + Limity sdílení torrentu @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Při dokončení překontrolovat torrenty - - + + ms milliseconds ms - + Setting Nastavení - + Value Value set for this setting Hodnota - + (disabled) (vypnuto) - + (auto) (auto) - + + min minutes min - + All addresses Všechny adresy - + qBittorrent Section Sekce qBittorrentu - - + + Open documentation Otevřít dokumentaci - + All IPv4 addresses Všechny adresy IPv4 - + All IPv6 addresses Všechny adresy IPv6 - + libtorrent Section Sekce libtorrentu - + Fastresume files Soubory rychlého obnovení - + SQLite database (experimental) SQLite databáze (experimental) - + Resume data storage type (requires restart) Typ úložiště dat obnovení (vyžaduje restart) - + Normal Normální - + Below normal Pod normálem - + Medium Střední - + Low Malé - + Very low Velmi malé - + Physical memory (RAM) usage limit Limit využití fyzické paměti (RAM) - + Asynchronous I/O threads Asynchronní I/O vlákna - + Hashing threads Hashovací vlákna - + File pool size Velikost souborového zásobníku - + Outstanding memory when checking torrents Mimořádná paměť při kontrole torrentů - + Disk cache Disková cache - - - - + + + + + s seconds s - + Disk cache expiry interval Interval vypršení diskové cache - + Disk queue size Velikost diskové fronty - - + + Enable OS cache Zapnout vyrovnávací paměť systému - + Coalesce reads & writes Sloučení čtecích & zapisovacích operací - + Use piece extent affinity Rozšíření o příbuzné části - + Send upload piece suggestions Doporučení pro odeslání částí uploadu - - - - + + + + + 0 (disabled) 0 (vypnuto) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Interval ukládání dat obnovení [0: vypnuto] - + Outgoing ports (Min) [0: disabled] Odchozí porty (Min) [0: vypnuto] - + Outgoing ports (Max) [0: disabled] Odchozí porty (Max) [0: vypnuto] - + 0 (permanent lease) 0 (trvalé propůjčení) - + UPnP lease duration [0: permanent lease] Doba UPnP propůjčení [0: trvalé propůjčení] - + Stop tracker timeout [0: disabled] Stop tracker timeout [0: vypnuto] - + Notification timeout [0: infinite, -1: system default] Timeout upozornění [0: nekonečně, -1: výchozí systému] - + Maximum outstanding requests to a single peer Maximum nezpracovaných požadavků na jeden peer - - - - - + + + + + KiB KiB - + (infinite) (nekonečně) - + (system default) (výchozí systému) - + + Delete files permanently + Smazat soubory trvale + + + + Move files to trash (if possible) + Přesunout soubory do koše (pokud možno) + + + + Torrent content removing mode + Režim odebrání obsahu torrentu + + + This option is less effective on Linux Tato volba je na Linuxu méně efektivní - + Process memory priority Priorita paměti procesu - + Bdecode depth limit Bdecode omezení hloubky - + Bdecode token limit Bdecode omezení tokenu - + Default Výchozí - + Memory mapped files Soubory mapované v paměti - + POSIX-compliant POSIX-vyhovující - + + Simple pread/pwrite + Jednoduché pread/pwrite + + + Disk IO type (requires restart) Disk IO typ (vyžaduje restart) - - + + Disable OS cache Vypnout vyrovnávací paměť systému: - + Disk IO read mode Režim IO čtení disku - + Write-through Write-through - + Disk IO write mode Režim IO zápisu na disk - + Send buffer watermark Send buffer watermark - + Send buffer low watermark Send buffer low watermark - + Send buffer watermark factor Send buffer watermark faktor - + Outgoing connections per second Odchozí spojení za sekundu - - + + 0 (system default) 0 (výchozí systému) - + Socket send buffer size [0: system default] Velikost socket send bufferu [0: výchozí systému] - + Socket receive buffer size [0: system default] Velikost socket receive bufferu [0: výchozí systému] - + Socket backlog size Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Interval uložení statistik [0: vypnuto] + + + .torrent file size limit omezení velikosti .torrent souboru - + Type of service (ToS) for connections to peers Typ služby (ToS) pro připojování k peerům - + Prefer TCP Upřednostnit TCP - + Peer proportional (throttles TCP) Peer proportional (omezit TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Podporovat domény obsahující speciální znaky (IDN) - + Allow multiple connections from the same IP address Povolit více spojení ze stejné IP adresy - + Validate HTTPS tracker certificates Ověřovat HTTPS certifikáty trackerů - + Server-side request forgery (SSRF) mitigation Zamezení falšování požadavků na straně serveru (SSRF) - + Disallow connection to peers on privileged ports Nepovolit připojení k peerům na privilegovaných portech - + It appends the text to the window title to help distinguish qBittorent instances - + Přidává text na konec titulku okna pro odlišení od ostatních instancí qBittorrentu - + Customize application instance name - + Přizpůsobte název instance aplikace - + It controls the internal state update interval which in turn will affect UI updates Řídí interval aktualizace vnitřního stavu, který zase ovlivní aktualizace uživatelského rozhraní - + Refresh interval Interval obnovení - + Resolve peer host names Zjišťovat síťové názvy peerů - + IP address reported to trackers (requires restart) IP adresa hlášená trackerům (vyžaduje restart) - + + Port reported to trackers (requires restart) [0: listening port] + Port oznamovaný trackerům (vyžaduje restart) [0: port naslouchání] + + + Reannounce to all trackers when IP or port changed Znovu oznámit všem trackerům při změne IP nebo portu - + Enable icons in menus Povolit ikony v menu - + + Attach "Add new torrent" dialog to main window + Připojit dialog "Přidat nový torrent" k hlavnímu oknu + + + Enable port forwarding for embedded tracker Zapněte přesměrování portu pro vestavěný tracker - + Enable quarantine for downloaded files Zapnout karanténu pro stažené soubory - + Enable Mark-of-the-Web (MOTW) for downloaded files Zapnout Mark-of-the-Web (MOTW) pro stažené soubory - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Má vliv na ověření certifikátu a aktivity protokolů jiných než je bittorrent (např. RSS kanály, aktualizace programu, soubory torrentů, GEOIP databáze, atd.) + + + + Ignore SSL errors + Ignorovat chyby SSL + + + (Auto detect if empty) (Automaticky rozpoznat pokud je prázdné) - + Python executable path (may require restart) Cesta odkud se spouští Python (může vyžadovat restart) - + + Start BitTorrent session in paused state + Spustit relaci BitTorrentu v pozastavené stavu + + + + sec + seconds + sec + + + + -1 (unlimited) + -1 (neomezeně) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Timeout vypnutí relace BitTorrent [-1: neomezeně] + + + Confirm removal of tracker from all torrents Potvrďte odebrání trackeru ze všech torrentů - + Peer turnover disconnect percentage Procento odpojení při peer turnover - + Peer turnover threshold percentage Procento limitu pro peer turnover - + Peer turnover disconnect interval Interval odpojení při peer turnover - + Resets to default if empty Resetuje se na výchozí pokud je prázdné - + DHT bootstrap nodes DHT bootstrap uzly - + I2P inbound quantity I2P příchozí množství - + I2P outbound quantity I2P odchozí množství - + I2P inbound length I2P příchozí délka - + I2P outbound length I2P odchozí délka - + Display notifications Zobrazit notifikace - + Display notifications for added torrents Zobrazit oznámení o přidaných torrentech - + Download tracker's favicon Stáhnout logo trackeru - + Save path history length Uložit délku historie cesty - + Enable speed graphs Zapnout graf rychlosti - + Fixed slots Pevné sloty - + Upload rate based Dle rychlosti uploadu - + Upload slots behavior Chování upload slotů - + Round-robin Poměrné rozdělení - + Fastest upload Nejrychlejší upload - + Anti-leech Priorita pro začínající a končící leechery - + Upload choking algorithm Škrtící algoritmus pro upload - + Confirm torrent recheck Potvrdit překontrolování torrentu - + Confirm removal of all tags Potvrdit odebrání všech štítků - + Always announce to all trackers in a tier Vždy oznamovat všem trackerům ve třídě - + Always announce to all tiers Vždy oznamovat všem třídám - + Any interface i.e. Any network interface Jakékoli rozhraní - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP mixed mode algoritmus - + Resolve peer countries Zjišťovat zemi původu peerů - + Network interface Síťové rozhraní - + Optional IP address to bind to Volitelná přidružená IP adresa - + Max concurrent HTTP announces Maximum souběžných HTTP oznámení - + Enable embedded tracker Zapnout vestavěný tracker - + Embedded tracker port Port vestavěného trackeru + + AppController + + + + Invalid directory path + Neplatná cesta adresáře + + + + Directory does not exist + Adresář neexistuje + + + + Invalid mode, allowed values: %1 + Neplatný režim, povolené hodnoty: %1 + + + + cookies must be array + cookies musí být sadou + + Application - + Running in portable mode. Auto detected profile folder at: %1 Spuštěno v portable režimu. Automaticky detekovan adresář s profilem: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Detekován nadbytečný parametr příkazového řádku: "%1". Portable režim již zahrnuje relativní fastresume. - + Using config directory: %1 Používá se adresář s konfigurací: %1 - + Torrent name: %1 Název torrentu: %1 - + Torrent size: %1 Velikost torrentu: %1 - + Save path: %1 Cesta pro uložení: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent byl stažen do %1. - + + Thank you for using qBittorrent. Děkujeme, že používáte qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, odeslání emailového oznámení - + Add torrent failed Přidání torrentu selhalo - + Couldn't add torrent '%1', reason: %2. Nebylo možné přidat torrent '%1', důvod: %2. - + The WebUI administrator username is: %1 Uživatelské jméno správce WebUI je: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Heslo správce WebUI nebylo nastaveno. Dočasné heslo je přiřazeno této relaci: %1 - + You should set your own password in program preferences. Měli byste nastavit své vlastní heslo v nastavení programu. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI je vypnuto! Pro zapnutí WebUI ručně upravte soubor konfigurace. - + Running external program. Torrent: "%1". Command: `%2` Spuštění externího programu. Torrent: "%1". Příkaz: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Spuštění externího programu selhalo. Torrent: "%1". Příkaz: `%2` - + Torrent "%1" has finished downloading Torrent "%1" dokončil stahování - + WebUI will be started shortly after internal preparations. Please wait... WebUI bude spuštěno brzy po vnitřních přípravách. Prosím čekejte... - - + + Loading torrents... Načítání torrentů... - + E&xit &Ukončit - + I/O Error i.e: Input/Output Error Chyba I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Důvod: %2 - + Torrent added Torrent přidán - + '%1' was added. e.g: xxx.avi was added. '%1' byl přidán. - + Download completed Stahování dokončeno. - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 spuštěn. ID procesu: %2 - + + This is a test email. + Toto je testovací e-mail. + + + + Test email + Testovací e-mail + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Stahování '%1' bylo dokončeno. - + Information Informace - + To fix the error, you may need to edit the config file manually. Pro opravu chyby může být potřeba ručně upravit konfigurační soubor. - + To control qBittorrent, access the WebUI at: %1 Pro ovládání qBittorrentu otevřete webové rozhraní na: %1 - + Exit Ukončit - + Recursive download confirmation Potvrzení rekurzivního stahování - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' obsahuje soubory .torrent, chcete je také stáhnout? - + Never Nikdy - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekurzivní stažení .torrent souboru v rámci torrentu. Zdrojový torrent: "%1". Soubor: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Selhalo nastavení omezení fyzické paměti (RAM). Chybový kód: %1. Chybová zpráva: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Selhalo nastavení tvrdého limitu využití fyzické paměti (RAM). Velikost požadavku: %1. Tvrdý systémový limit: %2. Chybový kód: %3. Chybová zpráva: "%4" - + qBittorrent termination initiated zahájeno ukončení qBittorrentu - + qBittorrent is shutting down... qBittorrent se vypíná... - + Saving torrent progress... Průběh ukládání torrentu... - + qBittorrent is now ready to exit qBittorrent je připraven k ukončení @@ -1609,12 +1715,12 @@ Důvod: %2 Priorita: - + Must Not Contain: Nesmí obsahovat: - + Episode Filter: Filtr epizod: @@ -1667,263 +1773,263 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod &Export... - + 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 - + 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 - + Episode number is a mandatory positive value Číslo epizody je povinná kladná hodnota - + Rules Pravidla - + Rules (legacy) Pravidla (původní) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Neukončený rozsah: <b>1x25-;</b> zahrnuje epizody 25 a výše z první sezóny a všechny epizody pozdějších sérií - + Last Match: %1 days ago Poslední shoda: %1 dny nazpět - + Last Match: Unknown Poslední shoda: Neznámá - + 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í. - - + + 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 jiný název, prosím. - + Are you sure you want to remove the download rule named '%1'? Opravdu chcete odstranit pravidlo s názvem '%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 - + Invalid action Neplatná akce - + The list is empty, there is nothing to export. Seznam je prázdný, nic není k exportu. - + Export RSS rules Export RSS pravidel - + I/O Error Chyba I/O - + Failed to create the destination file. Reason: %1 Nepodařilo se vytvořit cílový soubor. Důvod: % 1 - + Import RSS rules Import RSS pravidel - + Failed to import the selected rules file. Reason: %1 Nepodařilo se importovat vybraný soubor pravidel. Důvod: % 1 - + Add new rule... Přidat nové pravidlo... - + Delete rule Smazat pravidlo - + Rename rule... Přejmenovat pravidlo... - + Delete selected rules Smazat označená pravidla - + Clear downloaded episodes... Odstranit stažené epizody... - + Rule renaming Přejmenování pravidla - + Please type the new rule name Napište název nového pravidla, prosím - + Clear downloaded episodes Odstranit stažené epizody - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Opravdu chcete vymazat seznam stažených epizod pro vybrané pravidlo? - + Regex mode: use Perl-compatible regular expressions Regex mód: použijte regulární výraz komatibilní s Perlem - - + + Position %1: %2 Pozice %1: %2 - + Wildcard mode: you can use Mód zástupných znaků: můžete použít - - + + Import error Chyba importu - + Failed to read the file. %1 Selhalo čtení souboru. %1 - + ? to match any single character ? pro shodu s libovolným jediným znakem - + * to match zero or more of any characters * pro shodu se žádným nebo více jakýmikoliv znaky - + Whitespaces count as AND operators (all words, any order) Mezera slouží jako operátor AND (všechna slova v jakémkoliv pořadí) - + | is used as OR operator | slouží jako operátor OR - + If word order is important use * instead of whitespace. Je-li důležité pořadí slov, použijte * místo mezery. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Výraz s prázdným %1 obsahem (např. %2) - + will match all articles. zahrne všechny položky. - + will exclude all articles. vyloučí všechny položky. @@ -1965,7 +2071,7 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nelze vytvořit složku pro obnovení torrentu: "%1" @@ -1975,28 +2081,38 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Data obnovení nelze analyzovat: neplatný formát - - + + Cannot parse torrent info: %1 Info torrentu nelze analyzovat: %1 - + Cannot parse torrent info: invalid format Info torrentu nelze analyzovat: neplatný formát - + Mismatching info-hash detected in resume data V datech obnovení byl rozpoznán nesprávný info-hash - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Nebylo možné uložit metadata torrentu do '%1'. Chyba: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Nepodařilo se uložit data obnovení torrentu do '%1'. Chyba: %2 @@ -2007,16 +2123,17 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod + Cannot parse resume data: %1 Data obnovení nelze analyzovat: %1 - + Resume data is invalid: neither metadata nor info-hash was found Data obnovení jsou neplatná: metadata nebo info-hash nebyly nalezeny - + Couldn't save data to '%1'. Error: %2 Nepodařilo se uložit data do '%1'. Chyba: %2 @@ -2024,38 +2141,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod BitTorrent::DBResumeDataStorage - + Not found. Nenalezeno. - + Couldn't load resume data of torrent '%1'. Error: %2 Nepodařilo se načíst data obnovení torrentu '%1'. Chyba: %2 - - + + Database is corrupted. Databáze je poškozena. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Nebylo možné zapnout Write-Ahead Logging (WAL) režim žurnálu. Chyba: %1. - + Couldn't obtain query result. Nebylo možné získat výsledek dotazu. - + WAL mode is probably unsupported due to filesystem limitations. WAL režim pravděpodobně není podporován kvůli omezením souborového systému. - + + + Cannot parse resume data: %1 + Data obnovení nelze analyzovat: %1 + + + + + Cannot parse torrent info: %1 + Info torrentu nelze analyzovat: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Nebylo možné začít transakci. Chyba: %1 @@ -2063,22 +2202,22 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Nepodařilo se uložit metadata torrentu. Chyba: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nepodařilo se uložit data obnovení torrentu '%1'. Chyba: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nepodařilo se smazat data obnovení torrentu '%1'. Chyba: %2 - + Couldn't store torrents queue positions. Error: %1 Nelze uložit pozice ve frontě torrentů. Chyba: %1 @@ -2086,457 +2225,503 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Podpora Distribuované hash tabulky (DHT): %1 - - - - - - - - - + + + + + + + + + ON ZAPNUTO - - - - - - - - - + + + + + + + + + OFF VYPNUTO - - + + Local Peer Discovery support: %1 Podpora hledání místních peerů: %1 - + Restart is required to toggle Peer Exchange (PeX) support - Kvůli přepnutí podpory Výměny protějšků (PEX) je nutný restart + Kvůli přepnutí podpory Výměny peerů (PEX) je nutný restart - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Selhalo obnovení torrentu. Torrent: "%1". Důvod: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Selhalo obnovení/spuštění torrentu: Rozpoznáno nekonzistentní ID torrentu. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Rozpoznána nekonzistentní data: chybí kategorie v konfiguračním souboru. Kategorie bude obnovena ale její nastavení budou resetována do výchozího stavu. Torrent: "%1". Kategorie: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Rozpoznána nekonzistentní data: neplatná kategorie. Torrent: "%1". Kategorie: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Rozpoznán nesoulad mezi cílovou cestou uložení obnovované kategorie a současnou cílovou cestou uložení torrentu. Torrent je nyní přepnut do Ručního módu. Torrent: "%1". Kategorie: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Rozpoznána nekonzistentní data: chybí štítek v konfiguračním souboru. Štítek bude obnoven. Torrent: "%1". Štítek: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Rozpoznána nekonzistentní data: neplatný štítek. Torrent: "%1". Štítek: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Rozpoznána událost probuzení systému. Oznamování všem trackerům... - + Peer ID: "%1" - ID Peera: "%1" + ID peera: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Podpora Výměny peerů (PeX): %1 - - + + Anonymous mode: %1 Anonymní režim: %1 - - + + Encryption support: %1 Podpora šifrování: %1 - - + + FORCED VYNUCENO - + Could not find GUID of network interface. Interface: "%1" Nebylo možné najít GUID síťového rozhraní. Rozhraní: "%1" - + Trying to listen on the following list of IP addresses: "%1" Zkouším naslouchat na těchto IP adresách: "%1" - + Torrent reached the share ratio limit. Torrent dosáhl stanoveného ratia. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Odebrán torrent. - - - - - - Removed torrent and deleted its content. - Odebrán torrent a smazány stažené soubory. - - - - - - Torrent paused. - Torrent zastaven. - - - - - + Super seeding enabled. Super seeding zapnut. - + Torrent reached the seeding time limit. Torrent dosáhl maximální doby seedování. - + Torrent reached the inactive seeding time limit. Torrent dosáhl časového omezení doby neaktivního seedování. - + Failed to load torrent. Reason: "%1" Načtení torrentu selhalo. Důvod: "%1" - + I2P error. Message: "%1". I2P chyba. Zpráva: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP podpora: zapnuto - + + Saving resume data completed. + Ukládání dat obnovení dokončeno. + + + + BitTorrent session successfully finished. + Relace BitTorrentu úspěšně dokončena. + + + + Session shutdown timed out. + Vypnutí relace vypršel čas platnosti. + + + + Removing torrent. + Odebírání torrentu. + + + + Removing torrent and deleting its content. + Odebírání torrentu a mazání jeho obsahu. + + + + Torrent stopped. + Torrent zastaven. + + + + Torrent content removed. Torrent: "%1" + Obsah torrentu odebrán. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Selhalo odebrání obsahu torrentu. Torrent: "%1". Chyba: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent odebrán. Torrent: "%1" + + + + Merging of trackers is disabled + Slučování trackerů je vypnuto + + + + Trackers cannot be merged because it is a private torrent + Trackery nemohou být sloučeny, protože jde o soukromý torrent + + + + Trackers are merged from new source + Trackery jsou sloučeny z nového zdroje + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP podpora: vypnuto - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Export torrentu selhal. Torrent: "%1". Cíl: "%2". Důvod: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Ukládání souborů rychlého obnovení bylo zrušeno. Počet zbývajících torrentů: %1 - + The configured network address is invalid. Address: "%1" Nastavená síťová adresa není platná. Adresa: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Nebylo možné najít nastavenou síťovou adresu pro naslouchání. Adresa: "%1" - + The configured network interface is invalid. Interface: "%1" Nastavené síťové rozhraní není platné. Rozhraní: "%1" - + + Tracker list updated + Seznam trackerů aktualizován + + + + Failed to update tracker list. Reason: "%1" + Selhala aktualizace seznamu trackerů. Důvod: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Zamítnuta neplatná IP adresa při použití seznamu blokovaných IP adres. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Přidán tracker k torrentu. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Odebrán tracker z torrentu. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Přidán URL seeder k torrentu. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Odebrán URL seeder z torrentu. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent zastaven. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Selhalo odebrání partfile. Torrent: "%1". Důvod: "%2". - + Torrent resumed. Torrent: "%1" Torrent obnoven. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Stahování torrentu dokončeno. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Přesun Torrentu zrušen. Torrent: "%1". Zdroj: "%2". Cíl: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent zastaven. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Selhalo zařazení torrentu do fronty k přesunu. Torrent: "%1". Zdroj: "%2". Cíl: "%3". Důvod: torrent je právě přesouván do cíle - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Selhalo zařazení torrentu do fronty k přesunu. Torrent: "%1". Zdroj: "%2" Cíl: "%3". Důvod: obě cesty ukazují na stejné umístění - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Přesun torrentu zařazen do fronty. Torrent: "%1". Zdroj: "%2". Cíl: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Zahájení přesunu torrentu. Torrent: "%1". Cíl: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Selhalo uložení nastavení Kategorií. Soubor: "%1". Chyba: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Selhalo čtení nastavení Kategorií. Soubor: "%1". Chyba: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Úspěšně dokončeno načtení souboru IP filtru. Počet použitých pravidel: %1 - + Failed to parse the IP filter file Načítání pravidel IP filtru ze souboru se nezdařilo - + Restored torrent. Torrent: "%1" Obnoven torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Přidán nový torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent skončil chybou. Torrent: "%1". Chyba: "%2" - - - Removed torrent. Torrent: "%1" - Odebrán torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Odebrán torrent a smazána jeho data. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentu chybí parametry SSL. Torrent: "%1". Zpráva: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Chyba souboru. Torrent: "%1". Soubor: "%2". Důvod: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP port mapování selhalo. Zpráva: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP port mapování bylo úspěšné. Zpráva: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filtr - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrovaný port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privilegovaný port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Selhalo připojení URL seed. Torrent: "%1". URL: "%2". Chyba: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" V BitTorrent relaci došlo k vážné chybě. Důvod: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy chyba. Adresa: %1. Zpráva: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 omezení smíšeného módu - + Failed to load Categories. %1 Selhalo načítání kategorií. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Selhalo čtení nastavení kategorií. Soubor: "%1". Chyba: "Neplatný formát dat" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent odstraněn, ale nepodařilo se odstranit jeho obsah a/nebo jeho partfile. Torrent: "%1". Chyba: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 je vypnut - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 je vypnut - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL seed DNS hledání selhalo. Torrent: "%1". URL: "%2". Chyba: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Obdržena chybová zpráva od URL seedera. Torrent: "%1". URL: "%2". Zpráva: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Úspěšně naslouchám na IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Selhalo naslouchání na IP. IP: "%1". Port: "%2/%3". Důvod: "%4" - + Detected external IP. IP: "%1" Rozpoznána externí IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Chyba: Interní fronta varování je plná a varování nejsou dále zapisována, můžete pocítit snížení výkonu. Typ vynechaného varování: "%1". Zpráva: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Přesun torrentu byl úspěšný. Torrent: "%1". Cíl: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Přesun torrentu selhal. Torrent: "%1". Zdroj: "%2". Cíl: "%3". Důvod: "%4" @@ -2546,19 +2731,19 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Failed to start seeding. - + Selhalo zahájení seedování. BitTorrent::TorrentCreator - + Operation aborted Operace zrušena - - + + Create new torrent file failed. Reason: %1. Vytvoření nového torrent souboru selhalo. Důvod: %1. @@ -2566,67 +2751,67 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Selhalo přidání peeru "%1" do torrentu "%2". Příčina: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" je přidán k torrentu "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Rozpoznána neočekávaná data. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nebylo možné zapisovat do souboru. Důvod: "%1". Torrent je nyní v režimu "pouze upload". - + Download first and last piece first: %1, torrent: '%2' Stáhnout první a poslední část první: %1, torrent: '%2' - + On Zapnuto - + Off Vypnuto - + Failed to reload torrent. Torrent: %1. Reason: %2 Selhalo opětovné načtení torrentu. Torrent: %1. Důvod: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generování dat pro obnovení selhalo. Torrent: "%1". Důvod: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Selhala obnova torrentu. Soubory byly pravděpodobně přesunuty a nebo úložiště není dostupné. Torrent: "%1". Důvod: "%2" - + Missing metadata Chybějící metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Přejmenování souboru selhalo. Torrent: "%1", soubor: "%2", příčina: "%3" - + Performance alert: %1. More info: %2 Varování výkonu: %1. Detaily: %2 @@ -2647,189 +2832,189 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametr '%1' musí dodržovat syntaxi '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametr '%1' musí dodržovat syntaxi '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' V proměnné předpokládáno celé číslo '%1', ale obdrženo '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametr '%1' musí dodržovat syntaxi '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Předpokládáno %1 v proměnné '%2', ale obdrženo '%3' - - + + %1 must specify a valid port (1 to 65535). %1 musí určovat správný port (od 1 do 65535). - + Usage: Používání: - + [options] [(<filename> | <url>)...] [volby] [(<filename> | <url>)...] - + Options: Možnosti: - + Display program version and exit Zobrazit verzi programu a skončit - + Display this help message and exit Zobrazit nápovědu a skončit - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametr '%1' musí dodržovat syntaxi '%1=%2' + + + Confirm the legal notice Potvrďte právní upozornění - - + + port port - + Change the WebUI port Změnit port WebUI - + Change the torrenting port Změnit port pro torrent - + Disable splash screen Zakáže úvodní obrazovku - + Run in daemon-mode (background) Spustit na pozadí - + dir Use appropriate short form or abbreviation of "directory" adr - + Store configuration files in <dir> Uložit soubory konfigurace do <dir> - - + + name název - + Store configuration files in directories qBittorrent_<name> Uložit soubory konfigurace v adresářích qBittorrent_ <name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Vniknout do souborů libtorrent fastresume a vztáhnout cesty k souborům podle adresáře profilu - + files or URLs soubory nebo URL odkazy - + Download the torrents passed by the user Stáhnout soubory přidané uživatelem - + Options when adding new torrents: Volby při přidávání torrentů: - + path cesta - + Torrent save path Cesta uložení torrentu - - Add torrents as started or paused - Přidat torrenty jako spuštěné nebo zastavené + + Add torrents as running or stopped + Přidat torrenty jako běžící nebo zastavené - + Skip hash check Přeskočit kontrolu hashe - + Assign torrents to category. If the category doesn't exist, it will be created. Přiřadit torrenty do kategorie. Když kategorie neexistuje, bude vytvořena. - + Download files in sequential order Stahovat soubory v sekvenčním pořadí - + Download first and last pieces first Stáhnout nejprve první a poslední část - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Určit, zda se otevře dialog "Přidat nový torrent" když je torrent přidáván. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Hodnoty předvoleb mohou být zadány pomocí proměnných. Pro volt nazvanou 'parameter-name', je proměnná prostředí 'QBT_PARAMETER_NAME' (velkými písmeny, znak '-' je nahrazen znakem '_'). Pro předání stavové hodnoty nastavte proměnnou na '1' nebo 'TRUE'. Příklad vypnutí úvodní obrazovky: - + Command line parameters take precedence over environment variables Parametry příkazového řádku mají přednost před parametry proměnných prostředí - + Help Nápověda @@ -2881,12 +3066,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod - Resume torrents - Obnovit torrenty + Start torrents + Spustit torrenty - Pause torrents + Stop torrents Zastavit torrenty @@ -2898,15 +3083,20 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod ColorWidget - + Edit... Upravit... - + Reset Resetovat + + + System + Systém + CookiesDialog @@ -2947,12 +3137,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod CustomThemeSource - + Failed to load custom theme style sheet. %1 - Selhalo načtení stylu vlastního motivu. %1 + Selhalo načtení stylu vlastního stylu. %1 - + Failed to load custom theme colors. %1 Selhalo načtení barev vlastního motivu. %1 @@ -2960,7 +3150,7 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod DefaultThemeSource - + Failed to load default theme colors. %1 Selhalo načtení barev výchozího motivu. %1 @@ -2979,23 +3169,23 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod - Also permanently delete the files - Též trvale smazat soubory + Also remove the content files + Také odebrat soubory obsahu - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Opravdu chcete odebrat '%1' ze seznamu přenosů? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Opravdu chcete odebrat tyto %1 torrenty ze seznamu přenosů? - + Remove Odebrat @@ -3008,12 +3198,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Stahovat z URL - + Add torrent links Přidat odkazy torrentů - + One link per line (HTTP links, Magnet links and info-hashes are supported) Jeden odkaz na řádek (jsou podporovány odkazy HTTP, Magnet linky odkazy a info-hashes ) @@ -3023,12 +3213,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Stahování - + No URL entered Nebylo vloženo žádné URL - + Please type at least one URL. Prosím napište alespoň jedno URL. @@ -3187,25 +3377,48 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Chyba parsování: soubor s filtrem není validní PeerGuardian P2B soubor. + + FilterPatternFormatMenu + + + Pattern Format + Formát řetězce + + + + Plain text + Prostý text + + + + Wildcards + Zástupné znaky + + + + Regular expression + Regulární výraz + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Stahování torrentu... Zdroj: "%1" - - Trackers cannot be merged because it is a private torrent - Trackery nemohou být sloučeny, protože jde o soukromý torrent - - - + Torrent is already present Torrent už je přidán - + + Trackers cannot be merged because it is a private torrent. + Trackery nelze sloučit, protože jde o soukromý torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' již existuje v seznamu pro stažení. Přejete si sloučit trackery z nového zdroje? @@ -3213,38 +3426,38 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod GeoIPDatabase - - + + Unsupported database file size. Nepodporovaná velikost databázového souboru. - + Metadata error: '%1' entry not found. Chyba metadat: '%1' nenalezeno. - + Metadata error: '%1' entry has invalid type. Chyba metadat: '%1' je neplatný. - + Unsupported database version: %1.%2 Nepodporovaná verze databáze: %1.%2 - + Unsupported IP version: %1 Nepodporovaná verze IP: %1 - + Unsupported record size: %1 Nepodporovaná velikost záznamu: %1 - + Database corrupted: no data section found. Databáze poškozena: data nenalezena. @@ -3252,17 +3465,17 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Požadavek Http překračuje limit velikosti, zavírám socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Špatná metoda HTTP požadavku, zavírání socketu. IP: %1. Metoda: "%2" - + Bad Http request, closing socket. IP: %1 Vadný Http požadavek, zavírám socket. IP: %1 @@ -3303,26 +3516,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod IconWidget - + Browse... Procházet... - + Reset Resetovat - + Select icon Vybrat ikonu - + Supported image files Podporované soubory obrázků + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Správa napájení nalezla vyhovující rozhraní D-Bus. Rozhraní: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Chyba správy napájení. Akce: %1. Chyba: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Neočekávaný chyba správy napájení. Stav: %1. Chyba: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3333,7 +3580,7 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod 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. - qBittorrent je program pro sdílení souborů. Když spustíte torrent, jeho data bud zpřístupněna ostatním k uploadu. Sdílení jakéhokoliv obsahu je Vaše výhradní zodpovědnost. + qBittorrent je program pro sdílení souborů. Když spustíte torrent, jeho data budou zpřístupněna ostatním k uploadu. Sdílení jakéhokoliv obsahu je Vaše výhradní zodpovědnost. @@ -3354,13 +3601,13 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 byl zablokován. Příčina: %2. - + %1 was banned 0.0.0.0 was banned '%1' byl zablokován. @@ -3369,60 +3616,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 je neznámý parametr příkazové řádky. - - + + %1 must be the single command line parameter. %1 musí být jediný parametr příkazové řádky. - + Run application with -h option to read about command line parameters. Spusťte aplikaci s parametrem -h pro nápovědu příkazové řádky - + Bad command line Nesprávný příkaz z příkazové řádky - + Bad command line: Nesprávný příkaz z příkazové řádky: - + An unrecoverable error occurred. Došlo k chybě, kterou nešlo překonat. + - qBittorrent has encountered an unrecoverable error. V qBittorrentu došlo k chybě, kterou nešlo překonat. - + You cannot use %1: qBittorrent is already running. Nemůžete použít %1: qBittorrent je již spuštěn. - + Another qBittorrent instance is already running. Jiná relace qBittorrentu je již spuštěna. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Nalezena neočekávaná relace qBittorrentu. Současná relace bude ukončena. Aktuální ID procesu: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Chyba při přechodu do režimu na pozadí. Důvod: "%1". Kód chyby: %2. @@ -3435,609 +3682,681 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (Formáty dat také pod Ú&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... - - &Resume - &Obnovit - - - + &Remove &Odebrat - + Torrent &Creator &Vytvoření torrentu - - + + Alternative Speed Limits Alternativní limity rychlosti - + &Top Toolbar Horní panel nás&trojů - + Display Top Toolbar Zobrazit horní panel nástrojů - + Status &Bar Stavová lišta - + Filters Sidebar Filtry boční panel - + 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 - + Do&nate! Darujte! - + + Sh&utdown System + Vypno&ut systém + + + &Do nothing &Nedělat nic - + Close Window Zavřít okno - - R&esume All - Obnovit vš&e - - - + Manage Cookies... Spravovat cookies... - + Manage stored network cookies Spravovat uložené síťové cookies - + Normal Messages Normální sdělení - + Information Messages Informační sdělení - + Warning Messages Varovná sdělení - + Critical Messages Kritická sdělení - + &Log &Log - + + Sta&rt + &Spustit + + + + Sto&p + &Zastavit + + + + R&esume Session + Obnovit r&elaci + + + + Pau&se Session + &Pozastavit relaci + + + Set Global Speed Limits... Nastavit globální limity rychlosti... - + Bottom of Queue Konec fronty - + Move to the bottom of the queue Přesunout na konec fronty - + Top of Queue Začátek fronty - + Move to the top of the queue Přesunout na začátek fronty - + Move Down Queue Přesunout frontu níže - + Move down in the queue Přesunout níže ve frontě - + Move Up Queue Přesunout frontu výše - + Move up in the queue Přesunout výše ve frontě - + &Exit qBittorrent Ukončit qBittorr&ent - + &Suspend System U&spat počítač - + &Hibernate System &Režim spánku - - S&hutdown System - &Vypnout počítač - - - + &Statistics &Statistika - + Check for Updates Zkontrolovat aktualizace - + Check for Program Updates Zkontrolovat aktualizace programu - + &About O &aplikaci - - &Pause - Po&zastavit - - - - P&ause All - Zastavit vš&e - - - + &Add Torrent File... Přid&at torrent soubor... - + Open Otevřít - + E&xit &Konec - + Open URL Otevřít URL - + &Documentation &Dokumentace - + Lock Zamknout - - - + + + Show Ukázat - + Check for program updates Zkontrolovat aktualizace programu - + Add Torrent &Link... Přidat torrent link... - + If you like qBittorrent, please donate! Pokud se Vám qBittorrent líbí, prosím přispějte! - - + + Execution Log Záznamy programu (Log) - + Clear the password Vymazat heslo - + &Set Password Na&stavit heslo - + Preferences Předvolby - + &Clear Password Vyma&zat heslo - + Transfers Přenosy - - + + qBittorrent is minimized to tray qBittorrent je minimalizován do lišty - - - + + + This behavior can be changed in the settings. You won't be reminded again. Toto chování může být změněno v nastavení. Nebudete znovu upozorněni. - + 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: - + Are you sure you want to clear the password? Opravdu chcete vymazat heslo? - + Use regular expressions Používejte regulární výrazy - + + + Search Engine + Vyhledávač + + + + Search has failed + Hledání selhalo + + + + Search has finished + Hledání dokončeno + + + Search Hledat - + Transfers (%1) Přenosy (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent byl právě aktualizován a vyžaduje restart, aby se změny provedly. - + qBittorrent is closed to tray qBittorrent je zavřen do lišty - + Some files are currently transferring. Některé soubory jsou právě přenášeny. - + Are you sure you want to quit qBittorrent? Určitě chcete ukončit qBittorrent? - + &No &Ne - + &Yes &Ano - + &Always Yes Vžd&y - + Options saved. Volby uloženy. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [POZASTAVENO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [S: %1, O: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Instalátor Pythonu nemohl být stažen. Chyba: %1. +Prosím nainstalujte jej ručně. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Selhalo přejmenování instalátoru Python. Zdroj: "%1". Cíl: "%2". + + + + Python installation success. + Úspěšná instalace Python. + + + + Exit code: %1. + Kód ukončení: %1. + + + + Reason: installer crashed. + Důvod: instalátor havaroval. + + + + Python installation failed. + Instalátor Python selhal. + + + + Launching Python installer. File: "%1". + Spouštění instalátoru Python. Soubor: "%1". + + + + Missing Python Runtime Python Runtime není nainstalován - + qBittorrent Update Available qBittorrent aktualizace k dispozici - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Pro použití vyhledávačů je vyžadován Python, ten ale není nainstalován. Chcete jej nyní nainstalovat? - + Python is required to use the search engine but it does not seem to be installed. Pro použití vyhledávačů je vyžadován Python, ten ale není nainstalován. - - + + Old Python Runtime Zastaralý Python Runtime - + A new version is available. Je k dispozici nová verze. - + Do you want to download %1? Přejete si stáhnout %1? - + Open changelog... Otevřít seznam změn... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Vaše verze Pythonu (%1) je zastaralá. Minimální verze je: %2 Chcete teď nainstalovat novější verzi? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - Vaše verze Pythonu (%1) je zastaralá. Pro zprovoznění vyhledávačů aktualizujte na nejnovější verzi. + Vaše verze Pythonu (%1) je zastaralá. Pro zprovoznění vyhledávačů aktualizujte na nejnovější verzi. Minimální požadavky: %2 - + + Paused + Pozastaveno + + + Checking for Updates... Kontrolování aktualizací... - + Already checking for program updates in the background Kontrola aktualizací programu již probíha na pozadí - + + Python installation in progress... + Instalace Python probíhá... + + + + Failed to open Python installer. File: "%1". + Selhalo otevření instalátoru Python. Soubor: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Selhala kontrola MD5 hashe instalátoru Python. Soubor: "%1". Výsledný hash: "%2". Očekávaný hash: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Selhala kontrola SHA3-512 hashe instalátoru Python. Soubor: "%1". Výsledný hash: "%2". Očekávaný hash: "%3". + + + 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 - + Filter torrents... Filtrovat torrenty... - + Filter by: Filtrovat podle: - + The password must be at least 3 characters long Heslo musí být nejméně 3 znaky dlouhé. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Otevřít torrent soubory - + Torrent Files Torrent soubory @@ -4232,7 +4551,12 @@ Nainstalujte jej prosím ručně. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL chyba, URL: "%1", chyby: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoruji SSL chybu, URL: "%1", chyby: "%2" @@ -5526,47 +5850,47 @@ Nainstalujte jej prosím ručně. Net::Smtp - + Connection failed, unrecognized reply: %1 Připojení selhalo, neznámá odpověď: %1 - + Authentication failed, msg: %1 Ověření selhalo, zpráva: %1 - + <mail from> was rejected by server, msg: %1 <mail from> bylo zamítnuto serverem, zpráva: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> bylo zamítnuto serverem, zpráva: %1 - + <data> was rejected by server, msg: %1 <data> bylo zamítnuto serverem, zpráva: %1 - + Message was rejected by the server, error: %1 Zpráva byla zamítnuta serverem, chyba: %1 - + Both EHLO and HELO failed, msg: %1 EHLO a HELO selhalo, zpráva: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP server nepoužívá žádnou z podporovaných metod ověření [CRAM-MD5|PLAIN|LOGIN], přerušuji ověření, očekávám slehání... Server Auth režimy: %1 - + Email Notification Error: %1 Chyba e-mailového oznámení: %1 @@ -5604,299 +5928,283 @@ Nainstalujte jej prosím ručně. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Pokročilé - + Customize UI Theme... Přizpůsobit motiv UI... - + Transfer List Seznam přenosů - + Confirm when deleting torrents Potvrdit smazání torrentu - - Shows a confirmation dialog upon pausing/resuming all the torrents - Požadovat potvrzení při pozastavení/obnovení všech torrentů - - - - Confirm "Pause/Resume all" actions - Potvrzovat akce "Pozastavit/Obnovit vše" - - - + Use alternating row colors In table elements, every other row will have a grey background. Použít střídající se barvu řádků - + Hide zero and infinity values Skrýt nulové a nekonečné hodnoty - + Always Vždy - - Paused torrents only - Pouze zastavené torrenty - - - + Action on double-click Akce po dvojkliku - + Downloading torrents: Stahování torrentů: - - - Start / Stop Torrent - Spustit / Zastavit torrent - - - - + + Open destination folder Otevřít cílový adresář - - + + No action Žádná akce - + Completed torrents: Dokončené torrenty: - + Auto hide zero status filters Automaticky skrýt filtry s nulovým stavem - + Desktop Plocha - + Start qBittorrent on Windows start up Spustit qBittorrent po spuštění Windows - + Show splash screen on start up Zobrazit úvodní obrazovku při startu - + Confirmation on exit when torrents are active Potvrzení při ukončení, jsou-li torrenty aktivní - + Confirmation on auto-exit when downloads finish Potvrzení při automatickém ukončení, jsou-li torrenty dokončeny - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Pro nastavení qBittorrentu jako výchozího programu pro .torrent soubory a/nebo Magnet linky, <br/>můžete použít dialog <span style=" font-weight:600;">Výchozí programy</span> z <span style=" font-weight:600;">Ovládacích panelů</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Rozvržení obsahu torrentu: - + Original Originál - + Create subfolder Vytvořit podsložku - + Don't create subfolder Nevytvářet podsložku - + The torrent will be added to the top of the download queue Torrent bude přidán na začátek fronty stahování - + Add to top of queue The torrent will be added to the top of the download queue Přidat na začátek fronty - + When duplicate torrent is being added Když je přidáván duplicitní torrent - + Merge trackers to existing torrent Sloučit trackery do stávajícího torrentu - + Keep unselected files in ".unwanted" folder Zanechat nevybrané soubory ve složce ".unwanted" - + Add... Přidat... - + Options.. Možnosti.. - + Remove Odebrat - + Email notification &upon download completion Upozornění emailem při dokončení stahování - + + Send test email + Odeslat testovací e-mail + + + + Run on torrent added: + Spustit po přidání torrentu: + + + + Run on torrent finished: + Spustit po dokončení torrentu: + + + Peer connection protocol: Protokol připojení k peerům: - + Any Libovolný - + I2P (experimental) I2P (experimentální) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Pokud je zapnut smíšený režim &quot;mixed mode&quot; , I2P torrenty mají dovoleno získávat peery z jiných zdrojů, než je tracker a připojovat se k běžným IP adresám, což NEzajišťuje anonymitu. Toto může být užitečné pokud uživatel nemá zájem o anonymizaci I2P, ale stále chce mít možnost připojení k I2P peerům.</p></body></html> - - - + Mixed mode Smíšený režim - - Some options are incompatible with the chosen proxy type! - Některé volby se neslučují s vybraným typem proxy serveru! - - - + If checked, hostname lookups are done via the proxy Pokud je zaškrtnuto, zjištění názvu hostitele probíhá přes proxy server - + Perform hostname lookup via proxy Zjišťovat název hostitele pomocí proxy - + Use proxy for BitTorrent purposes Použít proxy pro účely BitTorrent - + RSS feeds will use proxy RSS kanály použijí proxy - + Use proxy for RSS purposes Použít proxy pro účely RSS - + Search engine, software updates or anything else will use proxy Vyhledávání, aktualizace software a další, využijí proxy server - + Use proxy for general purposes Použít proxy pro obecné účely - + IP Fi&ltering Filtrování IP - + Schedule &the use of alternative rate limits Plánovat použití alternativních omezení rychlosti - + From: From start time Od: - + To: To end time Do: - + Find peers on the DHT network Hledat peery v síti DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Vyžadovat šifrování: Připojí se pouze k peerům pomocí šifrování proto Zakázat šifrování: Připojí se pouze k peerům bez šifrování protokolu - + Allow encryption Povolit šifrování - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Více informací</a>) - + Maximum active checking torrents: Maximum souběžně kontrolovaných torrentů: - + &Torrent Queueing Řazení torrentů do fronty - + When total seeding time reaches Když celkový čas seedování dosáhne - + When inactive seeding time reaches Když čas neaktivního seedování dosáhne - - A&utomatically add these trackers to new downloads: - Automaticky přidat tyto trackery k novým stahováním: - - - + RSS Reader RSS čtečka - + Enable fetching RSS feeds Zapnout načítání RSS feedů - + Feeds refresh interval: Interval obnovení feedů: - + Same host request delay: - + Prodleva požadavku stejného hosta: - + Maximum number of articles per feed: Maximální počet článků na feed: - - - + + + min minutes min - + Seeding Limits Limity sdílení - - Pause torrent - Zastavit torrent - - - + Remove torrent Odstranit torrent - + Remove torrent and its files Odstranit torrent a jeho soubory - + Enable super seeding for torrent Zapnout super seeding pro torrent - + When ratio reaches Když je dosaženo ratio - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Zastavit torrent + + + + A&utomatically append these trackers to new downloads: + A&utomaticky přidat tyto trackery k novým torrentům: + + + + Automatically append trackers from URL to new downloads: + Automaticky přidat trackery z adresy URL do nových stahování: + + + + URL: + URL: + + + + Fetched trackers + Získané trackery + + + + Search UI + Vyhledávací rozhraní + + + + Store opened tabs + Uchovávat otevřené karty + + + + Also store search results + Také uchovávat výsledky hledání + + + + History length + Délka historie + + + RSS Torrent Auto Downloader Automatické RSS stahování torrentů - + Enable auto downloading of RSS torrents Zapnout automatické RSS stahování torrentů - + Edit auto downloading rules... Upravit pravidla automatického stahování... - + RSS Smart Episode Filter RSS inteligentní filtr epizod - + Download REPACK/PROPER episodes Stáhnout REPACK/PROPER epizody - + Filters: Filtry: - + Web User Interface (Remote control) Webové uživatelské rozhraní (vzdálená správa) - + IP address: IP adresa: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Zvolte IPv4 nebo IPv6 adresu. Můžete zadat "0.0.0.0" pro jakoukoliv "::" pro jakoukoliv IPv6 adresu, nebo "*" pro jakékoliv IPv4 nebo IPv6 adresy. - + Ban client after consecutive failures: Zakázat klienta po následných selháních: - + Never Nikdy - + ban for: ban pro: - + Session timeout: Časový limit relace: - + Disabled Zakázáno - - Enable cookie Secure flag (requires HTTPS) - Povolit příznak zabezpečení souborů cookie (vyžaduje HTTPS) - - - + Server domains: Domény serveru: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ best měli vložit doménové názvy použité pro WebUI server. Použijte ';' pro oddělení více položek. Můžete použít masku '*'. - + &Use HTTPS instead of HTTP Použít HTTPS místo HTTP - + Bypass authentication for clients on localhost Přeskočit ověření klientů na místní síti - + Bypass authentication for clients in whitelisted IP subnets Přeskočit ověření klientů na seznamu povolených IP podsítí - + IP subnet whitelist... Seznam povolených IP podsítí... - + + Use alternative WebUI + Použít alternativní WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Uveďte IP adresy (nebo podsítě, např. 0.0.0.0/24) reverzních proxy pro přeposlání adresy klienta (atribut X-Forwarded-For), použijte ';' pro rozdělení více položek. - + Upda&te my dynamic domain name Aktualizovat můj dynamické doménový název (DDNS) - + Minimize qBittorrent to notification area Minimalizovat qBittorrent do oznamovací oblasti - + + Search + Hledat + + + + WebUI + WebUI + + + Interface Rozhraní - + Language: Jazyk: - + + Style: + Styl: + + + + Color scheme: + Schéma barev: + + + + Stopped torrents only + Pouze zastavené torrenty + + + + + Start / stop torrent + Spustit / zastavit torrent + + + + + Open torrent options dialog + Otevřít dialog možností torrentu + + + Tray icon style: Styl ikony v oznamovací oblasti: - - + + Normal Normální - + File association Asociace souborů - + Use qBittorrent for .torrent files Použít qBittorent pro soubory .torrent - + Use qBittorrent for magnet links Použít qBittorent pro Magnet linky - + Check for program updates Zkontrolovat aktualizace programu - + Power Management Správa napájení - + + &Log Files + &Log soubory + + + Save path: Uložit do: - + Backup the log file after: Zálohovat log soubor po: - + Delete backup logs older than: Smazat log soubor starší než: - + + Show external IP in status bar + Zobrazit externí IP ve stavovém panelu + + + When adding a torrent Při přidání torrentu - + Bring torrent dialog to the front Dialog torrentu do popředí - + + The torrent will be added to download list in a stopped state + Torrent bude přidán do seznamu ke stažení v zastaveném stavu + + + Also delete .torrent files whose addition was cancelled Smazat i .torrent soubory, jejichž přidání bylo zrušeno - + Also when addition is cancelled Také pokud bylo přidání zrušeno - + Warning! Data loss possible! Varování! Možnost ztráty dat! - + Saving Management Správa ukládání - + Default Torrent Management Mode: Výchozí režim správy torrentu: - + Manual Manuální - + Automatic Automatický - + When Torrent Category changed: Když je kategorie torrentu změněna: - + Relocate torrent Přemístit torrent - + Switch torrent to Manual Mode Přepnout torrent do ručního módu - - + + Relocate affected torrents Přemístit dotčené torrenty - - + + Switch affected torrents to Manual Mode Přepnout dotčené torrenty do ručního módu - + Use Subcategories Použít podkategorie - + Default Save Path: Výchozí cesta pro uložení: - + Copy .torrent files to: Kopírovat .torrent soubory do: - + Show &qBittorrent in notification area Zobrazit qBittorrent v oznamovací oblasti - - &Log file - Soubor logů - - - + Display &torrent content and some options Zobrazit obsah torrentu a některé volby - + De&lete .torrent files afterwards Později smazat .torrent soubory - + Copy .torrent files for finished downloads to: Kopírovat .torrent soubory dokončených stahování do: - + Pre-allocate disk space for all files Předem vyhradit místo na disku pro všechny soubory - + Use custom UI Theme Použijte vlastní motiv uživatelského rozhraní - + UI Theme file: Soubor motivu uživatelského rozhraní: - + Changing Interface settings requires application restart Změna nastavení rozhraní vyžaduje restart aplikace - + Shows a confirmation dialog upon torrent deletion Zobrazí dialog pro potvrzení po odstranění torrentu - - + + Preview file, otherwise open destination folder Náhled souboru, jinak otevřít cílový adresář - - - Show torrent options - Zobraz možnosti torrentu - - - + Shows a confirmation dialog when exiting with active torrents Zobrazí dialogové okno s potvrzením při ukončení s aktivními torrenty - + When minimizing, the main window is closed and must be reopened from the systray icon Při minimalizaci je hlavní okno zavřeno a musí být znovu otevřeno z ikony systray - + The systray icon will still be visible when closing the main window Po zavření hlavního okna bude ikona systray stále viditelná - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Zavřete qBittorrent do oznamovací oblasti - + Monochrome (for dark theme) Monochromatický (Tmavý motiv) - + Monochrome (for light theme) Monochromatický (Světlý motiv) - + Inhibit system sleep when torrents are downloading Zakázat uspání počítače při stahování torrentů - + Inhibit system sleep when torrents are seeding Zakázat uspání počítače při odesílání torrentů - + Creates an additional log file after the log file reaches the specified file size Vytvoří další soubor protokolu poté, co soubor protokolu dosáhne zadané velikosti souboru - + days Delete backup logs older than 10 days dnů - + months Delete backup logs older than 10 months měsíců - + years Delete backup logs older than 10 years roky - + Log performance warnings Zaznamenávání událostí týkajících se výkonu - - The torrent will be added to download list in a paused state - Torrent bude přidán do seznamu stahování v zastaveném stavu - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nespouštět stahování automaticky - + Whether the .torrent file should be deleted after adding it Má být .torrent soubor po přidání smazán - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Před zahájením stahování vyhradí veškeré potřebné místo na disku, aby se minimalizovala fragmentace. Užitečné pouze pro HDD. - + Append .!qB extension to incomplete files Přidat příponu .!qB k nedokončeným souborům - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Po stažení torrentu nabídněte přidání torrentů ze všech .torrent souborů, které se v něm nacházejí - + Enable recursive download dialog Zapnout dialog rekurzivního downloadu - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automaticky: O různých vlastnostech torrentu (např. cesta uložení) rozhodne příslušná kategorie Ručně: Různé vlastnosti torrentu (např. cesta uložení) musí být přiřazeny ručně - + When Default Save/Incomplete Path changed: Při změně cesty uložení cílové i nekompletní: - + When Category Save Path changed: Při změně cesty pro uložení u kategorie: - + Use Category paths in Manual Mode Použít Kategorie cesty v Ručním módu - + Resolve relative Save Path against appropriate Category path instead of Default one Použít relativní cestu pro uložení podle Cesty kategorie namísto Výchozí cesty - + Use icons from system theme Použít ikony systémového motivu - + Window state on start up: Stav okna při startu: - + qBittorrent window state on start up Stav qBittorrent okna při startu - + Torrent stop condition: Podmínka zastavení torrentu: - - + + None Žádná - - + + Metadata received Metadata stažena - - + + Files checked Soubory zkontrolovány - + Ask for merging trackers when torrent is being added manually Zeptat se na sloučení trackerů při manuálním přidávání torrentu - + Use another path for incomplete torrents: Použij jiné umístění pro nedokončené torrenty: - + Automatically add torrents from: Automaticky přidávat .torrent soubory z: - + Excluded file names Vyloučené názvy souborů - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: filtruje přesný název souboru. readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale ne 'readme10.txt'. - + Receiver Příjemce - + To: To receiver Do: - + SMTP server: SMTP server: - + Sender Odesílatel - + From: From sender Od: - + This server requires a secure connection (SSL) Tento server vyžaduje zabezpečené připojení (SSL) - - + + Authentication Ověření - - - - + + + + Username: Uživatelské jméno: - - - - + + + + Password: Heslo: - + Run external program Spustit externí program - - Run on torrent added - Spustit při přidání torrentu - - - - Run on torrent finished - Spustit při dokončení torrentu - - - + Show console window Zobrazit okno konzoly - + TCP and μTP TCP a μTP - + Listening Port Naslouchací port - + Port used for incoming connections: Port použitý pro příchozí spojení: - + Set to 0 to let your system pick an unused port Nastav na 0 a systém vybere nevyužitý port - + Random Náhodný - + Use UPnP / NAT-PMP port forwarding from my router Použít přesměrování portů UPnP / NAT-PMP z mého routeru - + Connections Limits Limit spojení - + Maximum number of connections per torrent: Maximální počet spojení na torrent: - + Global maximum number of connections: Celkový maximální počet spojení: - + Maximum number of upload slots per torrent: Maximální počet odesílacích slotů na torrent: - + Global maximum number of upload slots: Celkový maximální počet odesílacích slotů: - + Proxy Server Proxy server - + Type: Typ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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 peerům - + A&uthentication Ověření - - Info: The password is saved unencrypted - Info: Heslo je uloženo nešifrované - - - + Filter path (.dat, .p2p, .p2b): Cesta k filtru (.dat, .p2p, .p2b): - + Reload the filter Znovunačíst filtr - + Manually banned IP addresses... Seznam ručně zakázaných IP adres... - + Apply to trackers Použít pro trackery - + Global Rate Limits Celkové limity rychlosti - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Odesílání: - - + + Download: Stahování: - + Alternative Rate Limits Alternativní limity rychlosti - + Start time Doba spuštění - + End time Doba ukončení - + When: Kdy: - + Every day Každý den - + Weekdays Pracovní dny - + Weekends Víkendy - + Rate Limits Settings Nastavení poměru sdílení - + Apply rate limit to peers on LAN Omezit poměr sdílení peerům na LAN - + Apply rate limit to transport overhead Použít limity rychlosti pro režijní provoz - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Pokud je zapnut "smíšený režim", I2P torrenty mají dovoleno získávat peery také z jiných zdrojů než z trackeru, a připojovat se k běžným IP adresám, neposkytujícím žádnou anonymitu. Toto může být užitečné pokud uživatel nemá zájem o anonymizaci I2P, ale chce mít možnost připojení k I2P peerům.</p></body></html> + + + Apply rate limit to µTP protocol Použít omezení rychlosti pro uTP připojení - + Privacy Soukromí - + Enable DHT (decentralized network) to find more peers Zapnout DHT síť (decentralizovaná síť) k nalezení většího počtu peerů - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vyměňovat peery s kompatibilními klienty Bittorrent (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Zapnout Peer Exchange (PeX) k nalezení většího počtu peerů - + Look for peers on your local network Hledat peery na lokální síti - + Enable Local Peer Discovery to find more peers Zapnout místní vyhledávání k nalezení většího počtu peerů - + Encryption mode: Režim šifrování: - + Require encryption Vyžadovat šifrování - + Disable encryption Vypnout šifrování - + Enable when using a proxy or a VPN connection Zapnout při použití proxy nebo VPN připojení - + Enable anonymous mode Zapnout anonymní režim - + 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ů: - + Do not count slow torrents in these limits Nezapočítávat pomalé torrenty do těchto limitů - + Upload rate threshold: Limit rychlosti odesílání: - + Download rate threshold: Limit rychlosti stahování: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Časovač nečinnosti torrentu: - + then potom - + 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 - + Certificate: Certifikát: - + Key: Klíč: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informace o certifikátech</a> - + Change current password Změnit současné heslo - - Use alternative Web UI - Použít alternativní Web UI - - - + Files location: Umístění souborů: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Seznam alternativních WebUI</a> + + + Security Bezpečnost - + Enable clickjacking protection Zapnout ochranu clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Zapnout ochranu Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Zapnout příznak cookie Secure (vyžaduje HTTPS nebo localhost připojení) + + + Enable Host header validation Zapnout ověřování hlavičky hostitele - + Add custom HTTP headers Přidat vlastní HTTP hlavičky - + Header: value pairs, one per line Hlavička: páry hodnot, jedna na řádek - + Enable reverse proxy support Zapnout podporu reverzní proxy - + Trusted proxies list: Seznam důvěryhodných proxy: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Příklady nastavení reverzní proxy</a> + + + Service: Služba: - + Register Registrovat - + Domain name: Doména: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Zapnutím těchto voleb můžete <strong>nevratně ztratit</strong> vaše .torrent soubory! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Pokud zapnete druhou volbu (&ldquo;Také, když je přidán zrušeno&rdquo;) .torrent soubor <strong>bude smazán</strong> i když stisknete &ldquo;<strong>Zrušit</strong>&rdquo; v dialogu &ldquo;Přidat torrent&rdquo; - + Select qBittorrent UI Theme file Vyberte soubor motivu uživatelského rozhraní qBittorrent - + Choose Alternative UI files location Vybrat umístění souborů Alternativního UI - + Supported parameters (case sensitive): Podporované parametry (citlivé na velikost znaků): - + Minimized Minimalizované - + Hidden Skryté - + Disabled due to failed to detect system tray presence Deaktivováno, protože se nepodařilo detekovat přítomnost systémové lišty - + No stop condition is set. Podmínka zastavení není zvolena. - + Torrent will stop after metadata is received. Torrent se zastaví po stažení metadat. - Torrents that have metadata initially aren't affected. - Torrenty, které obsahovaly metadata, nejsou ovlivněny. - - - + Torrent will stop after files are initially checked. Torrent se zastaví po počáteční kontrole souborů. - + This will also download metadata if it wasn't there initially. Toto stáhne také metadata, pokud nebyly součástí. - + %N: Torrent name %N: Název torrentu - + %L: Category %L: Kategorie - + %F: Content path (same as root path for multifile torrent) %F: Umístění obsahu (stejné jako zdrojová cesta u vícesouborového torrentu) - + %R: Root path (first torrent subdirectory path) %R: Zdrojová cesta (první podadresář torrentu) - + %D: Save path %D: Cesta pro uložení - + %C: Number of files %C: Počet souborů - + %Z: Torrent size (bytes) %Z: Velikost torrentu (v bytech) - + %T: Current tracker %T: Současný tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Ohraničit parametr uvozovkami, aby nedošlo k odstřižení textu za mezerou (např. "%N") - + + Test email + Testovací e-mail + + + + Attempted to send email. Check your inbox to confirm success + Proveden pokus o odeslání e-mailu. Zkontrolujte svou doručenou poštu + + + (None) (žádný) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent bude uznán pomalým jestliže rychlosti stahování a odesílání zůstanou pod těmito hodnotami "Časovače nečinnosti torrentu" v sekundách - + Certificate Certifikát - + Select certificate Vybrat certifikát - + Private key Privátní klíč - + Select private key Vybrat privátní klíč - + WebUI configuration failed. Reason: %1 Nastavení WebUI selhalo. Důvod: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 je doporučen pro nejlepší kompatibilitu s tmavým režimem Windows + + + + System + System default Qt style + Systém + + + + Let Qt decide the style for this system + Nechat Qt vybrat nejvhodnější styl tohoto systému + + + + Dark + Dark color scheme + Tmavé + + + + Light + Light color scheme + Světlé + + + + System + System color scheme + Systém + + + Select folder to monitor Vyberte sledovaný adresář - + Adding entry failed Přidání položky selhalo - + The WebUI username must be at least 3 characters long. Uživatelské jméno WebUI musí mít délku nejméně 3 znaky. - + The WebUI password must be at least 6 characters long. Heslo WebUI musí mít délku nejméně 6 znaků. - + Location Error Chyba umístění - - + + Choose export directory Vyberte adresář pro export - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Pokud jsou tyto volby zapnuty, qBittorrent <strong>smaže</strong> .torrent soubory poté, co byly úspěšně (první možnost) nebo neúspěšně (druhá možnost) přidány do fronty pro stažení. Toto nastane <strong>nejen</strong> u souborů otevřených pomocí volby menu &ldquo;Přidat torrent&rdquo;, ale také u souborů otevřených pomocí <strong>Asociace souborů</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Soubor Motivu uživatelského rozhraní qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Štítky (oddělené čárkou) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (nebo '-' pokud není dostupný) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (nebo '-' pokud není dostupný) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (buď sha-1 info hash pro torrent v1 nebo zkrácený sha-256 info hash pro v2/hybridní torrent) - - - + + + Choose a save directory Vyberte adresář pro ukládání - + Torrents that have metadata initially will be added as stopped. - + Torrenty s metadaty budou přidány jako zastavené. - + Choose an IP filter file Vyberte soubor s IP filtry - + All supported filters Všechny podporované filtry - + The alternative WebUI files location cannot be blank. Alternativní cestu umístění souborů WebUI musíte vyplnit. - + 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. - + Preferences Předvolby - + Time Error Chyba času - + The start time and the end time can't be the same. Časy zahájení a ukončení nemohou být stejné. - - + + Length Error Chyba délky @@ -7335,241 +7765,246 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PeerInfo - + Unknown Neznámé - + Interested (local) and choked (peer) Interested (místní) a přiškrcený (peer) - + Interested (local) and unchoked (peer) Interested (místní) a nepřiškrcený (peer) - + Interested (peer) and choked (local) Interested (peer) a přiškrcený (místní) - + Interested (peer) and unchoked (local) Interested (peer) a nepřiškrcený (místní) - + Not interested (local) and unchoked (peer) Not interested (místní) a nepřiškrcený (peer) - + Not interested (peer) and unchoked (local) Not interested (peer) a nepřiškrcený (místní) - + Optimistic unchoke Optimisticky nepřiškrcený - + Peer snubbed Odmítnutý peer - + Incoming connection Příchozí spojení - + Peer from DHT Peer z DHT - + Peer from PEX Peer z PEX - + Peer from LSD Peer z LSD - + Encrypted traffic Šifrovaný přenos - + Encrypted handshake Šifrovaný handshake + + + Peer is using NAT hole punching + Peer používá NAT hole punching + PeerListWidget - + Country/Region Země/Oblast - + IP/Address IP/Adresa - + Port Port - + Flags Vlajky - + Connection Připojení - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID klienta - + 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 - + Files i.e. files that are being downloaded right now Soubory - + Column visibility Viditelnost sloupců - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu - + Add peers... Přidání peerů... - - + + Adding peers Přidání peerů - + Some peers cannot be added. Check the Log for details. Některé peery nemohly být přidány. Více detailů najdete v logu. - + Peers are added to this torrent. Peery jsou přidány do tohoto torrentu. - - + + Ban peer permanently Natrvalo zakázat peer - + Cannot add peers to a private torrent Nelze přidat peery do privátního torrentu - + Cannot add peers when the torrent is checking Nelze přidat peery dokud se torrent kontroluje - + Cannot add peers when the torrent is queued Nelze přidat peery dokud je torrent ve frontě - + No peer was selected Nebyl vybrán žádný peer - + Are you sure you want to permanently ban the selected peers? Opravdu chcete natrvalo zakázat označené peery? - + Peer "%1" is manually banned Peer "%1" je ručně zablokován - + N/A Není k dispozici - + Copy IP:port Kopírovat IP:port @@ -7587,7 +8022,7 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Seznam peerů pro přidání (jedna IP na řádek): - + Format: IPv4:port / [IPv6]:port Formát: IPv4:port / [IPv6]:port @@ -7628,27 +8063,27 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PiecesBar - + Files in this piece: Soubory v této části: - + File in this piece: Soubory v této části: - + File in these pieces: Soubor v těchto částech - + Wait until metadata become available to see detailed information Vyčkejte než bude možné zobrazit metadata pro detailnější informace - + Hold Shift key for detailed information Držte klávesu Shift pro detailní informace @@ -7661,58 +8096,58 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Pluginy pro vyhledávání - + Installed search plugins: Nainstalované vyhledávací pluginy: - + Name Název - + Version Verze - + Url URL - - + + Enabled Zapnuto - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Varování: Ujistěte se, že dodržujete zákony Vaší země o ochraně duševního vlastnictví když stahujete torrenty z kteréhokoliv z těchto vyhledávačů. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Nové pluginy pro vyhledávání můžete získat zde: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Nainstalovat nový - + Check for updates Zkontrolovat aktualizace - + Close Zavřít - + Uninstall Odinstalovat @@ -7832,98 +8267,65 @@ Tyto pluginy byly vypnuty. Zdroj pluginu - + Search plugin source: Zdroj vyhledávacího pluginu: - + Local file Místní soubor - + Web link Webový odkaz - - PowerManagement - - - qBittorrent is active - qBittorrent je aktivní - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Správa napájení nalezla vyhovující rozhraní D-Bus. Rozhraní: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Chyba správy napájení. Nebylo nalezeno vyhovující rozhraní D-Bus. - - - - - - Power management error. Action: %1. Error: %2 - Chyba správy napájení. Akce: %1. Chyba: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Neočekávaný chyba správy napájení. Stav: %1. Chyba: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Následující soubory torrentu "%1" podporují náhled, vyberte prosím jeden z nich: - + Preview Náhled - + Name Název - + Size Velikost - + Progress Průběh - + Preview impossible Náhled není možný - + Sorry, we can't preview this file: "%1". Je nám líto, nemůžeme zobrazit náhled tohoto souboru: "%1". - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu @@ -7936,27 +8338,27 @@ Tyto pluginy byly vypnuty. Private::FileLineEdit - + Path does not exist Cesta neexistuje - + Path does not point to a directory Cesta nevede k adresáři - + Path does not point to a file Cesta nevede k souboru - + Don't have read permission to path Není oprávnění ke čtení pro cestu - + Don't have write permission to path Není oprávnění k zápisu pro cestu @@ -7997,12 +8399,12 @@ Tyto pluginy byly vypnuty. PropertiesWidget - + Downloaded: Staženo: - + Availability: Dostupnost: @@ -8017,53 +8419,53 @@ Tyto pluginy byly vypnuty. Přenos - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivní po dobu: - + ETA: Odh. čas: - + Uploaded: Odesláno: - + Seeds: Zdroje: - + Download Speed: Rychlost stahování: - + Upload Speed: Rychlost odesílání: - + Peers: Peery: - + Download Limit: Omezení stahování: - + Upload Limit: Omezení odesílání: - + Wasted: Zahozeno: @@ -8073,193 +8475,220 @@ Tyto pluginy byly vypnuty. Připojení: - + Information Informace - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Komentář: - + Select All Vybrat vše - + Select None Zrušit výběr - + Share Ratio: Poměr sdílení: - + Reannounce In: Znovu-oznámit za: - + Last Seen Complete: Poslední komplet zdroj: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Aktivní po dobu (v měsících), vyjadřuje úroveň popularity torrentu + + + + Popularity: + Popularita: + + + Total Size: Celková velikost: - + Pieces: Části: - + Created By: Vytvořil/a: - + Added On: Přidáno: - + Completed On: Dokončeno: - + Created On: Vytvořeno: - + + Private: + Soukromý: + + + Save Path: Uložit do: - + Never Nikdy - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (má %3) - - + + %1 (%2 this session) %1 (%2 toto sezení) - - + + + N/A N/A - + + Yes + Ano + + + + No + Ne + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sdíleno %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 celkem) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 prům.) - - New Web seed - Nový webový seed + + Add web seed + Add HTTP source + Přidat web seed - - Remove Web seed - Odstranit webový seed + + Add web seed: + Přidat web seed: - - Copy Web seed URL - Kopírovat URL webového zdroje + + + This web seed is already in the list. + Tento webový seeder je již na seznamu. - - Edit Web seed URL - Upravit URL webového zdroje - - - + Filter files... Filtrovat soubory... - + + Add web seed... + Přidat web seed... + + + + Remove web seed + Odebrat web seed + + + + Copy web seed URL + Kopírovat web seed URL + + + + Edit web seed URL... + Upravit web seed URL... + + + Speed graphs are disabled Grafy rychlosti jsou vypnuty - + You can enable it in Advanced Options Můžete to zapnout v Rozšířených nastaveních - - New URL seed - New HTTP source - Nový URL zdroj - - - - New URL seed: - Nový URL zdroj: - - - - - This URL seed is already in the list. - Tento URL zdroj už v seznamu existuje. - - - + Web seed editing Úpravy webového zdroje - + Web seed URL: URL webového zdroje: @@ -8267,33 +8696,33 @@ Tyto pluginy byly vypnuty. RSS::AutoDownloader - - + + Invalid data format. Neplatný formát dat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nelze uložit data AutoDownloaderu RSS v %1. Chyba: %2 - + Invalid data format Neplatný formát dat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS článek '%1' je přijat pravidlem '%2'. Pokus o přidání torrentu... - + Failed to read RSS AutoDownloader rules. %1 Selhalo čtení pravidel RSS AutoDownloaderu. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nelze načíst pravidla RSS AutoDownloader. Příčina: % 1 @@ -8301,22 +8730,22 @@ Tyto pluginy byly vypnuty. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Selhalo stažení RSS feedu u '%1'. Příčina '%2' - + RSS feed at '%1' updated. Added %2 new articles. RSS feed u '%1' úspěšně aktualizován. Přidány %2 nové články. - + Failed to parse RSS feed at '%1'. Reason: %2 Selhalo zpracování RSS feedu u '%1'. Příčina '%2' - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS feed u '%1' byl úspěšně stažen. Začínám ho zpracovávat. @@ -8352,12 +8781,12 @@ Tyto pluginy byly vypnuty. RSS::Private::Parser - + Invalid RSS feed. Neplatný RSS feed. - + %1 (line: %2, column: %3, offset: %4). %1 (řádek: %2, sloupec: %3, offset: %4). @@ -8365,103 +8794,144 @@ Tyto pluginy byly vypnuty. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nebylo možné uložit nastavení RSS relace. Soubor: "%1". Chyba: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Nebylo možné uložit data RSS relace. Soubor: "%1". Chyba: "%2" - - + + RSS feed with given URL already exists: %1. RSS feed se zadanou URL už už existuje: %1. - + Feed doesn't exist: %1. Feed neexistuje: %1. - + Cannot move root folder. Nelze přesunout kořenový adresář. - - + + Item doesn't exist: %1. Položka neexistuje: %1. - - Couldn't move folder into itself. - Nebylo možné přesunout adresář do sebe. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Nelze smazat kořenový adresář. - + Failed to read RSS session data. %1 Selhalo čtení dat RSS relace. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Selhal rozbor dat RSS relace. Soubor: "%1". Chyba: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Selhalo načtení dat RSS relace. Soubor: "%1". Chyba: "Neplatný formát dat." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nebylo možné načíst RSS kanál. Kanál: "%1". Důvod: URL je požadována. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Nebylo možné načíst RSS kanál. Kanál: "%1". Důvod: UID není platné. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Duplicitní RSS kanál nalezen. UID: "%1". Chyba: Nastavení není v pořádku. - + Couldn't load RSS item. Item: "%1". Invalid data format. Nebylo možné načíst RSS položku. Položka: "%1". Neplatná podoba dat. - + Corrupted RSS list, not loading it. Chybný seznam RSS, ruším jeho načítání. - + Incorrect RSS Item path: %1. Nesprávná cesta položky RSS: %1. - + RSS item with given path already exists: %1. žka RSS se zadanou cestou neexistuje: %1. - + Parent folder doesn't exist: %1. Nadřazený adresář neexistuje: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed neexistuje: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Interval obnovení: + + + + sec + sec + + + + Default + Výchozí + + RSSWidget @@ -8481,8 +8951,8 @@ Tyto pluginy byly vypnuty. - - + + Mark items read Označ jako přečtené. @@ -8507,132 +8977,115 @@ Tyto pluginy byly vypnuty. Torrenty: (dvojklik ke stažení) - - + + Delete Smazat - + Rename... Přejmenovat... - + Rename Přejmenovat - - + + Update Aktualizace - + New subscription... Nový odběr... - - + + Update all feeds Aktualizovat všechny feedy - + Download torrent Stáhnout torrent - + Open news URL Otevřít odkaz zpráv - + Copy feed URL Kopírovat odkaz feedů - + New folder... Nová složka... - - Edit feed URL... - Upravit adresu feedu... + + Feed options... + - - Edit feed URL - Upravit adresu feedu - - - + Please choose a folder name Vyberte název složky - + Folder name: Název složky: - + New folder Nová složka - - - Please type a RSS feed URL - Prosím vložte odkaz RSS feedu - - - - - Feed URL: - Odkaz feedu - - - + Deletion confirmation Smazat potvrzení - + Are you sure you want to delete the selected RSS feeds? Určitě chcete smazar označené RSS feedy? - + Please choose a new name for this RSS feed Zvolte název pro tento RSS feed, prosím - + New feed name: Nový název feedu: - + Rename failed Přejmenovaní neuspěšné - + Date: Datum: - + Feed: Feed: - + Author: Autor @@ -8640,38 +9093,38 @@ Tyto pluginy byly vypnuty. SearchController - + Python must be installed to use the Search Engine. Pro použití vyhledávače musí být nainstalován Python. - + Unable to create more than %1 concurrent searches. Nelze vytvořit více než %1 hledání současně. - - + + Offset is out of range Odchylka je mimo rozsah - + All plugins are already up to date. Všechny pluginy jsou aktuální. - + Updating %1 plugins Aktualizuji %1 pluginů - + Updating plugin %1 Aktualizuji plugin %1 - + Failed to check for plugin updates: %1 Chyba kontroly aktualizací pro tyto pluginy: %1 @@ -8746,132 +9199,142 @@ Tyto pluginy byly vypnuty. Velikost: - + 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č - - - + Filter search results... Filtrovat výsledky hledání... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Výsledky (zobrazuje <i>%1</i> z <i>%2</i>): - + Torrent names only Pouze názvy torrentů - + Everywhere Všude - + Use regular expressions Použijte regulární výrazy - + Open download window Otevřít okno stahování - + Download Stáhnout - + Open description page Otevřít stránku s popisem - + Copy Kopírovat - + Name Název - + Download link Download link - + Description page URL URL stránky s popisem - + Searching... Hledání... - + Search has finished Hledání dokončeno - + Search aborted Hledání zrušeno - + An error occurred during search... Během hledání nastala chyba... - + Search returned no results Nebyly nalezeny žádné výsledky - + + Engine + Vyhledávač + + + + Engine URL + URL vyhledávače + + + + Published On + Zveřejněno + + + Column visibility Viditelnost sloupců - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu @@ -8879,104 +9342,104 @@ Tyto pluginy byly vypnuty. SearchPluginManager - + Unknown search engine plugin file format. Neznámý formát souboru pluginu vyhledávače. - + Plugin already at version %1, which is greater than %2 Verze nainstalovaného pluginu %1 je vyšší než %2 - + A more recent version of this plugin is already installed. V systému je již nainstalována novější verze tohoto pluginu. - + Plugin %1 is not supported. Plugin %1 není podporován - - + + Plugin is not supported. Plugin není podporován. - + Plugin %1 has been successfully updated. Plugin %1 byl úspěšně aktualizován - + 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 - + Update server is temporarily unavailable. %1 Server s aktualizacemi je dočasně nedostupný. %1 - - + + Failed to download the plugin file. %1 Selhalo stažení plugin souboru. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" je zastaralý, aktualizuji na verzi %2 - + Incorrect update info received for %1 out of %2 plugins. Obdrženy nesprávné informace o aktualizaci pro %1 z %2 pluginů. - + Search plugin '%1' contains invalid version string ('%2') Vyhledávací plugin '%1' obsahuje neplatný řetezec verze ('%2') @@ -8986,114 +9449,145 @@ Tyto pluginy byly vypnuty. - - - - Search Hledat - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Žádné vyhledávací pluginy nejsou nainstalovány. Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okně, abyste nějaké nainstalovali. - + Search plugins... Pluginy pro vyhledávání - + A phrase to search for. Fráze k vyhledání - + Spaces in a search term may be protected by double quotes. Mezery v hledaném výrazu moho být chráněny uvozovkami. - + Example: Search phrase example Příklad: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: vyhledat <b>foo bar</b> - + All plugins Všechny pluginy - + Only enabled Pouze zapnuté - + + + Invalid data format. + Neplatný formát dat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: vyhledat <b>foo</b> a <b>bar</b> - + + Refresh + Obnovit + + + Close tab Zavřít kartu - + Close all tabs Zavřít všechny karty - + Select... Vybrat... - - - + + Search Engine Vyhledávač - + + Please install Python to use the Search Engine. Pro použití vyhledávače nainstalujte Python. - + Empty search pattern Prázdný hledaný řetězec - + Please type a search pattern first Nejdříve napište hledaný řetězec - + + Stop Zastavit + + + SearchWidget::DataStorage - - Search has finished - Hledání ukončeno + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Selhalo načtení uložených dat stavu vyhledávacího rozhraní. Soubor: "%1". Chyba: "%2" - - Search has failed - Hledání selhalo + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Selhalo načtení uložených výsledků hledání. Karta: "%1". Soubor: "%2". Chyba: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Selhalo uložení stavu vyhledávacího rozhraní. Soubor: "%1". Chyba: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Selhalo uložení výsledků hledání. Karta: "%1". Soubor: "%2". Chyba: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Selhalo načtení historie vyhledávacího rozhraní. Soubor: "%1". Chyba: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Selhalo uložení historie vyhledávání. Soubor: "%1". Chyba: "%2" @@ -9206,34 +9700,34 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn - + Upload: Odesílání: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Stahování: - + Alternative speed limits Alternativní limity rychlosti @@ -9425,32 +9919,32 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn Průměrná doba ve frontě: - + Connected peers: Připojení peerové: - + All-time share ratio: Celkový poměr sdílení: - + All-time download: Celkově staženo: - + Session waste: Zahozeno od spuštění: - + All-time upload: Celkově odesláno: - + Total buffer size: Celková velikost vyrovnávací paměti: @@ -9465,12 +9959,12 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn I/O úkoly ve frontě: - + Write cache overload: Přeplnění cache pro zápis: - + Read cache overload: Přetížení cache pro čtení: @@ -9489,51 +9983,77 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn StatusBar - + Connection status: Stav připojení: - - + + No direct connections. This may indicate network configuration problems. Žádná přímá spojení. To může značit problémy s nastavením sítě. - - + + Free space: N/A + + + + + + External IP: N/A + Externí IP: N/A + + + + DHT: %1 nodes DHT: %1 uzlů - + qBittorrent needs to be restarted! Je nutné restartovat qBittorrent! - - - + + + Connection Status: Stav připojení: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. To obvykle znamená, že qBittorrent nedokázal naslouchat na portu nastaveném pro příchozí spojení. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + Externí IPs: %1, %2 + + + + External IP: %1%2 + Externí IP: %1%2 + + + Click to switch to alternative speed limits Kliknutí přepne na alternativní limity rychlosti - + Click to switch to regular speed limits Kliknutím přepnete na normální limity rychlosti @@ -9563,12 +10083,12 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn - Resumed (0) - Obnoveno (0) + Running (0) + Běží (0) - Paused (0) + Stopped (0) Zastaveno (0) @@ -9631,36 +10151,36 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn Completed (%1) Dokončeno (%1) + + + Running (%1) + Běží (%1) + - Paused (%1) + Stopped (%1) Zastaveno (%1) + + + Start torrents + Spustit torrenty + + + + Stop torrents + Zastavit torrenty + Moving (%1) Přesouvání (%1) - - - Resume torrents - Obnovit torrenty - - - - Pause torrents - Zastavit torrenty - Remove torrents Odstranit torrenty - - - Resumed (%1) - Obnoveno (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Klikněte na tlačítko "Vyhledávácí pluginy..." dole vpravo v okn Remove unused tags Odebrat nepoužité štítky - - - Resume torrents - Pokračování torrentů - - - - Pause torrents - Zastavení torrentů - Remove torrents Odstranit torrenty - - New Tag - Nový štítek + + Start torrents + Spustit torrenty + + + + Stop torrents + Zastavit torrenty Tag: Štítek: + + + Add tag + Přidat štítek + Invalid tag name @@ -9903,32 +10423,32 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentContentModel - + Name Název - + Progress Průběh - + Download Priority Priorita stahování - + Remaining Zbývající - + Availability Dostupnost - + Total Size Velikost Celková @@ -9973,98 +10493,98 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentContentWidget - + Rename error Chyba přejmenování - + Renaming Přejmenovávám - + New name: Nový název: - + Column visibility Viditelnost sloupce - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu - + Open Otevřít - + Open containing folder Otevřít cílový adresář - + Rename... Přejmenovat... - + Priority Priorita - - + + Do not download Nestahovat - + Normal Normální - + High Vysoká - + Maximum Maximální - + By shown file order Podle zobrazeného pořadí souborů - + Normal priority Normální priorita - + High priority Vysoká priorita - + Maximum priority Maximální priorita - + Priority by shown file order Priorita podle zobrazeného pořadí souborů @@ -10072,19 +10592,19 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentCreatorController - + Too many active tasks - + Příliš mnoho aktivních úloh - + Torrent creation is still unfinished. - + Vytváření torrentu stále nebylo dokončeno. - + Torrent creation failed. - + Vytváření torrentu selhalo. @@ -10111,13 +10631,13 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. - + Select file Vyber soubor - + Select folder Vyber adresář @@ -10192,87 +10712,83 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Polia - + You can separate tracker tiers / groups with an empty line. Skupiny nebo třídy trackerů můžete oddělit prázdnou řádkou. - + Web seed URLs: URL odkazy pro webseed: - + Tracker URLs: URL trackeru: - + Comments: Komentáře: - + Source: Zdroj: - + Progress: Průběh: - + Create Torrent Vytvořit Torrent - - + + Torrent creation failed Vytvoření torentu selhalo - + Reason: Path to file/folder is not readable. Důvod: Cesta k adresáři/složce není čitelná. - + Select where to save the new torrent Vyberte adresář pro přidání do torrentu - + Torrent Files (*.torrent) Torrent soubory (*.torrent) - Reason: %1 - Důvod: %1 - - - + Add torrent to transfer list failed. Přidání torrentu do seznamu přenosů selhalo. - + Reason: "%1" Důvod: "%1" - + Add torrent failed Přidání torrentu selhalo - + Torrent creator Vytvoření torrentu - + Torrent created: Torrent vytvořen: @@ -10280,32 +10796,32 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Selhalo načtení nastavení Sledovaných Adresářů. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Selhal rozbor nastavení Sledovaných Adresářů z %1. Chyba: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Selhal načtení nastavení Sledovaných Adresářů z %1. Chyba: "Neplatný formát dat." - + Couldn't store Watched Folders configuration to %1. Error: %2 Nebylo možné uložit nastavení Sledovaných Adresářů do %1. Chyba: %2 - + Watched folder Path cannot be empty. Cesta sledovaného adresáře nemůže být prázdná. - + Watched folder Path cannot be relative. Cesta sledovaného adresáře nemůže být relativní. @@ -10313,44 +10829,31 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Neplatná Magnet URI. URI: %1. Důvod: %2 - + Magnet file too big. File: %1 Magnet soubor je příliš velký. Soubor: %1 - + Failed to open magnet file: %1 Selhalo otevření magnet souboru: %1 - + Rejecting failed torrent file: %1 Zamítnutí torrent souboru, který selhal: %1 - + Watching folder: "%1" Sledovaný adresář: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Selhalo přidělení paměti při čtení souboru. Soubor: "%1". Chyba: "%2" - - - - Invalid metadata - Neplatná metadata - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Použít jinou cestu pro uložení nedokončeného torrentu - + Category: Kategorie: - - Torrent speed limits - Limity rychlosti torrentu + + Torrent Share Limits + Limity sdílení torrentu - + Download: Stahování: - - + + - - + + Torrent Speed Limits + Limity rychlosti torrentu + + + + KiB/s KiB/s - + These will not exceed the global limits Toto nepřekročí globální limity - + Upload: Odesílání: - - Torrent share limits - Limity sdílení torrentu - - - - Use global share limit - Používat globální limit sdílení - - - - Set no share limit - Nastavit sdílení bez limitu - - - - Set share limit to - Nastavit limit sdílení na - - - - ratio - ratio - - - - total minutes - minut celkem - - - - inactive minutes - minut neaktivity - - - + Disable DHT for this torrent Zakázat DHT pro tento torrent - + Download in sequential order Stahovat postupně - + Disable PeX for this torrent Zakázat PeX pro tento torrent - + Download first and last pieces first Stáhnout nejdříve první a poslední část - + Disable LSD for this torrent Zakázat LSD pro tento torrent - + Currently used categories Právě používané kategorie - - + + Choose save path Vybrat cestu uložení - + Not applicable to private torrents Nelze použít u soukromých torrentů - - - No share limit method selected - Nevybrána žádná metoda omezování sdílení - - - - Please select a limit method first - Nejdříve, prosím, vyberte způsob omezování sdílení - TorrentShareLimitsWidget - - - + + + + Default - Výchozí + Výchozí + + + + + + Unlimited + Neomezeně - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Nastavit na + + + + Seeding time: + Čas seedování: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Čas neaktivního seedování: - + + Action when the limit is reached: + Akce při dosažení limitu: + + + + Stop torrent + Zastavit torrent + + + + Remove torrent + Odstranit torrent + + + + Remove torrent and its content + Odebrat torrent a jeho obsah + + + + Enable super seeding for torrent + Zapnout super seeding pro torrent + + + Ratio: - + Ratio: @@ -10558,32 +11049,32 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Štítky torrentu - - New Tag - Nový štítek + + Add tag + Přidat štítek - + Tag: Štítek: - + Invalid tag name Neplatný název štítku - + Tag name '%1' is invalid. Název štítku '%1' je neplatný. - + Tag exists Štítek existuje - + Tag name already exists. Název štítku již existuje. @@ -10591,115 +11082,130 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TorrentsController - + Error: '%1' is not a valid torrent file. Chyba: '%1' není platný torrent soubor. - + Priority must be an integer Priorita musí být celé číslo - + Priority is not valid Priorita není platná - + Torrent's metadata has not yet downloaded Metadata torrentu ještě nebyla stažena - + File IDs must be integers ID souboru musí být celá čísla - + File ID is not valid ID souboru není platné - - - - + + + + Torrent queueing must be enabled Řazení torrentů musí být zapnuto - - + + Save path cannot be empty Cesta pro uložení nesmí být prázdná - - + + Cannot create target directory Nelze vytvořit cílový adresář - - + + Category cannot be empty Kategorie nesmí být prázdná - + Unable to create category Nelze vytvořit kategorii - + Unable to edit category Nelze upravit kategorii - + Unable to export torrent file. Error: %1 Nebylo možné exportovat torrent soubor. Chyba: %1 - + Cannot make save path Nelze vytvořit cestu pro uložení - + + "%1" is not a valid URL + "%1" není platnou URL + + + + URL scheme must be one of [%1] + URL schéma musí být jedním z [%1] + + + 'sort' parameter is invalid parametr 'sort' je neplatný - + + "%1" is not an existing URL + "%1" není existující URL + + + "%1" is not a valid file index. "%1" není platný index souboru. - + Index %1 is out of bounds. Index %1 je mimo rozmezí. - - + + Cannot write to directory Nelze zapisovat do adresáře - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI Nastavit cestu: přesunout "%1", z "%2" do "%3" - + Incorrect torrent name Nesprávný název torrentu - - + + Incorrect category name Nesprávný název kategorie @@ -10730,196 +11236,191 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TrackerListModel - + Working Funkční - + Disabled Zakázáno - + Disabled for this torrent Zakázáno pro tento torrent - + This torrent is private Tento torrent je soukromý - + N/A není k dispozici - + Updating... Aktualizuji... - + Not working Nefunkční - + Tracker error Chyba trackeru - + Unreachable Nedosažitelné - + Not contacted yet Dosud nekontaktován - - Invalid status! + + Invalid state! Neplatný stav! - - URL/Announce endpoint + + URL/Announce Endpoint Koncový bod URL/Announce - + + BT Protocol + BT protokol + + + + Next Announce + Další oznámení + + + + Min Announce + Min. oznámení + + + Tier Tier - - Protocol - Protokol - - - + Status Stav - + Peers Peery - + Seeds Zdroje - + Leeches Leeches - + Times Downloaded Počet Stažení - + Message Zpráva - - - Next announce - Další announce - - - - Min announce - Min. announce - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Tento torrent je soukromý - + Tracker editing Upravit tracker - + Tracker URL: URL trackeru: - - + + Tracker editing failed Úprava trackeru selhala - + The tracker URL entered is invalid. Zadaná URL trackeru není platná. - + The tracker URL already exists. Tato URL trackeru již existuje. - + Edit tracker URL... Upravit URL trackeru - + Remove tracker Odstranit tracker - + Copy tracker URL Kopírovat URL trackeru - + Force reannounce to selected trackers Vynutit oznámení vybraným trackerům - + Force reannounce to all trackers Vynutit oznámení všem trackerům - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu - + Add trackers... Přidat trackery... - + Column visibility Zobrazení sloupců @@ -10937,37 +11438,37 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Seznam trackerů pro přidání (jeden na řádek): - + µTorrent compatible list URL: Seznam URL kompatibilní s µTorrent: - + Download trackers list Stáhnout seznam trackerů - + Add Přidat - + Trackers list URL error Chyba URL seznamu trackerů - + The trackers list URL cannot be empty Seznam trackerů nemůže být prázdný - + Download trackers list error Chyba stažení seznamu trackerů - + Error occurred when downloading the trackers list. Reason: "%1" Chyba při stažení seznamu trackerů. Důvod: "%1" @@ -10975,62 +11476,62 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TrackersFilterWidget - + Warning (%1) Varování (%1) - + Trackerless (%1) Bez trackeru (%1) - + Tracker error (%1) Chyba trackeru (%1) - + Other error (%1) Jiná chyba (%1) - + Remove tracker Odstranit tracker - - Resume torrents - Obnovit torrenty + + Start torrents + Spustit torrenty - - Pause torrents + + Stop torrents Zastavit torrenty - + Remove torrents Odstranit torrenty - + Removal confirmation Potvrzení odebrání - + Are you sure you want to remove tracker "%1" from all torrents? Jste si jisti, že chcete odebrat tracker "%1" ze všech torrentů? - + Don't ask me again. Znovu se neptejte. - + All (%1) this is for the tracker filter Vše (%1) @@ -11039,7 +11540,7 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TransferController - + 'mode': invalid argument 'režim': neplatný argument @@ -11131,11 +11632,6 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. 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. Kontrola dat pro obnovení - - - Paused - Zastaveno - Completed @@ -11159,220 +11655,252 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. S chybou - + Name i.e: torrent name Název - + Size i.e: torrent size Velikost - + Progress % Done Průběh - + + Stopped + Zastaveno + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stav - + Seeds i.e. full sources (often untranslated) Seedy - + Peers i.e. partial sources (often untranslated) Peery - + Down Speed i.e: Download speed Rychlost stahování - + Up Speed i.e: Upload speed Rychlost odesílání - + Ratio Share ratio Ratio - + + Popularity + Popularita + + + ETA i.e: Estimated Time of Arrival / Time left Odh. čas - + Category Kategorie - + Tags Štítky - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Přidáno - + Completed On Torrent was completed on 01/01/2010 08:00 Dokončeno - + Tracker Tracker - + Down Limit i.e: Download limit Limit stahování - + Up Limit i.e: Upload limit Limit odesílaní - + Downloaded Amount of data downloaded (e.g. in MB) Staženo - + Uploaded Amount of data uploaded (e.g. in MB) Odesláno - + Session Download Amount of data downloaded since program open (e.g. in MB) Staženo od spuštění - + Session Upload Amount of data uploaded since program open (e.g. in MB) Odesláno od spuštění - + Remaining Amount of data left to download (e.g. in MB) Zbývající - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivní po dobu - + + Yes + Ano + + + + No + Ne + + + Save Path Torrent save path Cesta uložení - + Incomplete Save Path Torrent incomplete save path Cesta uložení nekompletních - + Completed Amount of data completed (e.g. in MB) Dokončeno - + Ratio Limit Upload share ratio limit Omezení ratia - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Kompletní zdroj naposledy - + Last Activity Time passed since a chunk was downloaded/uploaded Poslední aktivita - + Total Size i.e. Size including unwanted data Celková velikost - + Availability The number of distributed copies of the torrent Dostupnost - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Znovu oznámit za - - + + Private + Flags private torrents + Soukromý + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Aktivní po dobu (v měsících), vyjadřuje úroveň popularity torrentu + + + + + N/A Není k dispozici - + %1 ago e.g.: 1h 20m ago před %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sdíleno %2) @@ -11381,339 +11909,319 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. TransferListWidget - + Column visibility Zobrazení sloupců - + Recheck confirmation Zkontrolovat potvrzení - + Are you sure you want to recheck the selected torrent(s)? Opravdu chcete znovu zkontrolovat označené torrenty? - + Rename Přejmenovat - + New name: Nový název: - + Choose save path Vybrat cestu uložení - - Confirm pause - Potvrdit pozastavení - - - - Would you like to pause all torrents? - Přejete si pozastavit všechny torrenty? - - - - Confirm resume - Potvrdit obnovení - - - - Would you like to resume all torrents? - Přejete si obnovit všechny torrenty? - - - + Unable to preview Nelze provést náhled souboru - + The selected torrent "%1" does not contain previewable files Vybraný torrent "%1" neobsahuje prohlédnutelné soubory - + Resize columns Změnit rozměry sloupců - + Resize all non-hidden columns to the size of their contents Změnit rozměry viditelných sloupců podle velikosti jejich obsahu - + Enable automatic torrent management Zapnout automatickou správu torrentů - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Jste si jistí že chcete zapnout Automatickou správu pro vybraný torrent(y)? Jejich data mohou být přemístěna. - - Add Tags - Přidat Štítek - - - + Choose folder to save exported .torrent files Vyberte složku pro uložení exportovaných .torrent souborů - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Export .torrent souboru selhal. Torrent: "%1". Cesta pro uložení: "%2". Důvod: "%3" - + A file with the same name already exists Soubor s tímto názvem již existuje - + Export .torrent file error Chyba exportu .torrent souboru - + Remove All Tags Odstranit všechny Štítky - + Remove all tags from selected torrents? Smazat všechny štítky z označených torrentů? - + Comma-separated tags: Čárkou oddelěné štítky: - + Invalid tag Neplatný štítek - + Tag name: '%1' is invalid Název štítku: '%1' je neplatný - - &Resume - Resume/start the torrent - &Obnovit - - - - &Pause - Pause the torrent - &Pozastavit - - - - Force Resu&me - Force Resume/start the torrent - Vynutit obno&vení - - - + Pre&view file... Náh&led souboru... - + Torrent &options... &Možnosti torrentu... - + Open destination &folder Otevřít cílovou &složku - + Move &up i.e. move up in the queue Přesunou &nahoru - + Move &down i.e. Move down in the queue Přesunout &dolů - + Move to &top i.e. Move to top of the queue Přesunout na &začátek - + Move to &bottom i.e. Move to bottom of the queue Přesunout na &konec - + Set loc&ation... Nastavit &umístění - + Force rec&heck Vynutit pře&kontrolování - + Force r&eannounce Vynutit &oznámení - + &Magnet link &Magnet odkaz - + Torrent &ID Torrent &ID - + &Comment &Komentář - + &Name &Název - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Přejme&novat... - + Edit trac&kers... Upravit trac&kery... - + E&xport .torrent... E&xportovat .torrent... - + Categor&y Kategorie - + &New... New category... &Nový... - + &Reset Reset category &Reset - + Ta&gs Štítky - + &Add... Add / assign multiple tags... Přidat... - + &Remove All Remove all tags Odstranit vše - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Nelze vynutit opětovné oznámení pokud je torrent ve stavu Zastaven/Ve frontě/S chybou/Kontroluji + + + &Queue &Fronta - + &Copy &Kopírovat - + Exported torrent is not necessarily the same as the imported Exportovaný torrent nemusí být nezbytně stejný jako importovaný - + Download in sequential order Stahovat postupně - + + Add tags + Přidat štítky + + + Errors occurred when exporting .torrent files. Check execution log for details. Objevily se chyby při exportu .torrent souborů. Zkontrolujte Záznamy programu - Log pro podrobnosti. - + + &Start + Resume/start the torrent + &Spustit + + + + Sto&p + Stop the torrent + &Zastavit + + + + Force Star&t + Force Resume/start the torrent + Vynutit spuš&tění + + + &Remove Remove the torrent &Odebrat - + Download first and last pieces first Stáhnout nejprve první a poslední část - + Automatic Torrent Management Automatická správa torrentu - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatický mód znamená, že různé vlastnosti torrentu (např. cesta pro uložení) se budou řídit podle příslušné kategorie - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Není možné vynutit oznámení trackeru u torrentu, který je zastavený/ve frontě/chybný/kontrolovaný - - - + Super seeding mode Mód super sdílení @@ -11758,28 +12266,28 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. ID ikony - + UI Theme Configuration. Nastavení motivu UI. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Změny v motivu UI nemohly být plně použity. Podrobnosti můžete najít v Logu. - + Couldn't save UI Theme configuration. Reason: %1 Nebylo možné uložit nastavení motivu UI. Důvod: %1 - - + + Couldn't remove icon file. File: %1. Nebylo možné odebrat soubor ikony. Soubor: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Nebylo možné zkopírovat soubor ikony. Zdroj: %1. Cíl: %2. @@ -11787,7 +12295,12 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Selhalo nastavení stylu aplikace. Neznámý styl: "%1" + + + Failed to load UI theme from file: "%1" Selhalo načtení vzhledu UI ze souboru: "%1" @@ -11818,20 +12331,21 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migrace předvoleb selhala: WebUI https, soubor: "%1", chyba: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrace předvoleb: WebUI https, data uložena do souboru: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". V konfiguračním souboru zaznamenána chybná hodnota, vrácena výchozí hodnota. Klíč: "%1". Chybná hodnota: "%2". @@ -11839,32 +12353,32 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Nalezen spustitelný Python. Název: "%1". Verze: "%2" - + Failed to find Python executable. Path: "%1". Selhal pokus o nalezení spustitelného Pythonu. Cesta: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Selhal pokus o nalezení spustitelného `python3` na cestě proměnné prostředí PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Selhal pokus o nalezení spustitelného `python` na cestě proměnné prostředí PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Selhal pokus o nalezení spustitelného `python` v registru Windows. - + Failed to find Python executable Selhal pokus o nalezení spustitelného Pythonu @@ -11956,72 +12470,72 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Byla specifikována nepřijatelná cookie relace: '%1'. Je použita výchozí. - + Unacceptable file type, only regular file is allowed. Nepřijatelný typ souboru, pouze správné soubory jsou povoleny. - + Symlinks inside alternative UI folder are forbidden. Symbolické linky jsou v alternativním UI zakázány. - + Using built-in WebUI. Použití vestavěného WebUI. - + Using custom WebUI. Location: "%1". Použití vlastního WebUI. Umístění: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. WebUI překlad vybraného prostředí locale (%1) byl úspěšně načten. - + Couldn't load WebUI translation for selected locale (%1). Nepodařilo se načíst překlad vybraného prostředí locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Chybějící ':' oddělovač ve vlastní HTTP hlavičce WebUI: "%1" - + Web server error. %1 Chyba webového serveru. %1 - + Web server error. Unknown error. Chyba webového serveru. Neznámá chyba. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Zdrojové záhlaví a cílový původ nesouhlasí! Zdrojová IP: '%1'. Původní záhlaví: '%2'. Cílový zdroj: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Záhlaví refereru a cílový původ nesouhlasí! Zdrojová IP: '%1'. Původní záhlaví: '%2'. Cílový zdroj: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Neplatné záhlaví hostitele, nesoulad portů. Požadavek zdroje IP: '%1'. Serverový port: '%2'. Obdrženo záhlaví hostitele: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Neplatné záhlaví hostitele. Požadavek zdroje IP: '%1'. Obdrženo záhlaví hostitele: '%2' @@ -12029,125 +12543,133 @@ Prosím zvolte jiný název kategorie a zkuste to znovu. WebUI - + Credentials are not set Přihlašovací údaje nejsou nastaveny - + WebUI: HTTPS setup successful WebUI: HTTPS nastavení bylo úspěšné - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS nastavení selhalo, přechod na HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Nyní naslouchá na IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Nepodařilo se přidružit k IP: %1, portu: %2. Důvod: %3 + + fs + + + Unknown error + Neznámá chyba + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1 s. - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) Neznámá - + qBittorrent will shutdown the computer now because all downloads are complete. Jsou staženy všechny torrenty, qBittorrent nyní vypne počítač. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_da.ts b/src/lang/qbittorrent_da.ts index c9ec0dc0c..d5947fe2a 100644 --- a/src/lang/qbittorrent_da.ts +++ b/src/lang/qbittorrent_da.ts @@ -14,75 +14,75 @@ Om - + Authors Forfattere - + Current maintainer Nuværende vedligeholder - + Greece Grækenland - - + + Nationality: Nationalitet: - - + + E-mail: E-mail: - - + + Name: Navn: - + Original author Oprindelig forfatter - + France Frankrig - + Special Thanks Særlig tak til - + Translators Oversættere - + License Licens - + Software Used Anvendt software - + qBittorrent was built with the following libraries: qBittorrent blev bygget med følgende biblioteker: - + Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Ophavsret %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Ophavsret %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Gem i - + Never show again Vis aldrig igen - - - Torrent settings - Torrent-indstillinger - Set as default category @@ -191,12 +186,12 @@ Start torrent - + Torrent information Torrent-information - + Skip hash check Spring hashtjek over @@ -205,6 +200,11 @@ Use another path for incomplete torrent Brug anden sti til ukomplet torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Når valgt, vil .torrent-filen ikke blive slettet, uanset indstillingerne i "Overførsel"-sidens valgmuligheders dialogboks - + Content layout: Indholdsopsætning: - + Original Original - + Create subfolder Opret undermappe - + Don't create subfolder Opret ikke undermappe - + Info hash v1: Info-hash v1: - + Size: Størrelse: - + Comment: Kommentar: - + Date: Dato: @@ -329,147 +329,147 @@ Husk sidste anvendte gemmesti - + Do not delete .torrent file Slet ikke .torrent-filen - + Download in sequential order Download i fortløbende rækkefølge - + Download first and last pieces first Download første og sidste stykker først - + Info hash v2: Info-hash v2: - + Select All Vælg Alt - + Select None Vælg Intet - + Save as .torrent file... Gem som .torrent-fil... - + I/O Error I/O-fejl - + Not Available This comment is unavailable Ikke tilgængelig - + Not Available This date is unavailable Ikke tilgængelig - + Not available Ikke tilgængelig - + Magnet link Magnet-link - + Retrieving metadata... Modtager metadata... - - + + Choose save path Vælg gemmesti - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A Ugyldig - + %1 (Free space on disk: %2) %1 (ledig plads på disk: %2) - + Not available This size is unavailable. Ikke tilgængelig - + Torrent file (*%1) Torrent-fil (*%1) - + Save as torrent file Gem som torrentfil - + Couldn't export torrent metadata file '%1'. Reason: %2. Kunne ikke eksportere torrent-metadata-fil '%1'. Begrundelse: %2. - + Cannot create v2 torrent until its data is fully downloaded. Kan ikke oprette v2-torrent, før dens er fuldt ud hentet. - + Filter files... Filtrere filer... - + Parsing metadata... Fortolker metadata... - + Metadata retrieval complete Modtagelse af metadata er færdig @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Gentjek torrents når de er færdige - - + + ms milliseconds ms - + Setting Indstilling - + Value Value set for this setting Værdi - + (disabled) (deaktiveret) - + (auto) (automatisk) - + + min minutes min - + All addresses Alle adresser - + qBittorrent Section qBittorrent-sektion - - + + Open documentation Åbn dokumentation - + All IPv4 addresses Alle IPv4-adresser - + All IPv6 addresses Alle IPv6-adresser - + libtorrent Section libtorrent-sektion - + Fastresume files - + SQLite database (experimental) SQLite database (eksperimental) - + Resume data storage type (requires restart) - + Normal Normal - + Below normal Under normal - + Medium Medium - + Low Lav - + Very low Meget lav - + Physical memory (RAM) usage limit Fysisk hukommelse (RAM) begrænsning - + Asynchronous I/O threads Asynkrone I/O-tråde - + Hashing threads Hashing tråde - + File pool size Filsamlingsstørrelse - + Outstanding memory when checking torrents Udestående hukommelse ved tjek af torrents - + Disk cache Diskmellemlager - - - - + + + + + s seconds s - + Disk cache expiry interval Udløbsinterval for diskmellemlager - + Disk queue size Disk kø størrelse - - + + Enable OS cache Aktivér OS-mellemlager - + Coalesce reads & writes Coalesce-læsninger og -skrivninger - + Use piece extent affinity Brug piece extent affinity - + Send upload piece suggestions Send forslag for upload-styk - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux Denne funktion er mindre effektiv på Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Standard - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Disk IO type (kræver genstart) - - + + Disable OS cache Deaktivere OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark Send vandmærke for buffer - + Send buffer low watermark Send vandmærke for lav buffer - + Send buffer watermark factor Send vandmærkefaktor for buffer - + Outgoing connections per second Udgående forbindelser per sekund - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Størrelse for sokkel baglog - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP Foretræk TCP - + Peer proportional (throttles TCP) Modpartsproportionel (drosler TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Supporter internationaliseret domæne navn (IDN) - + Allow multiple connections from the same IP address Tillad flere forbindelser fra den samme IP-adresse - + Validate HTTPS tracker certificates Valider HTTPS tracker certifikater - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names Oversæt modparters værtsnavne - + IP address reported to trackers (requires restart) IP-adresse der reporteres til tracker (kræver genstart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus Aktiver ikoner i menuerne - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + sek. + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Vis underretninger - + Display notifications for added torrents Vis underretninger for tilføjede torrents - + Download tracker's favicon Download trackerens favicon - + Save path history length Historiklængde for gemmesti - + Enable speed graphs Aktivér hastighedsgrafer - + Fixed slots Fastgjorte pladser - + Upload rate based Baseret på uploadhastighed - + Upload slots behavior Opførsel for uploadpladser - + Round-robin Round-robin - + Fastest upload Hurtigste upload - + Anti-leech Anti-leech - + Upload choking algorithm Upload choking-algoritme - + Confirm torrent recheck Bekræft gentjek af torrent - + Confirm removal of all tags Bekræft fjernelse af alle mærkater - + Always announce to all trackers in a tier Annoncér altid til alle trackere i en tier - + Always announce to all tiers Annoncér altid til alle tiers - + Any interface i.e. Any network interface Vilkårlig grænseflade - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP blandet-tilstand-algoritme - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Aktivér indlejret tracker - + Embedded tracker port Indlejret tracker-port + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Kører i transportabel tilstand. Automatisk registrering af profilmappe: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Overflødigt kommandolinjeflag registreret: "%1". Transportabel tilstand indebærer relativ hurtig genoptagelse. - + Using config directory: %1 Bruger konfigurationsmappe: %1 - + Torrent name: %1 Torrentnavn: %1 - + Torrent size: %1 Torrentstørrelse: %1 - + Save path: %1 Gemmesti: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrenten blev downloadet på %1. - + + Thank you for using qBittorrent. Tak fordi du bruger qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, sender underretning via e-mail - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit A&fslut - + I/O Error i.e: Input/Output Error I/O-fejl - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ Årsag: %2 - + Torrent added Torrent tilføjet - + '%1' was added. e.g: xxx.avi was added. '%1' blev tilføjet. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' er færdig med at downloade. - + Information Information - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit Afslut - + Recursive download confirmation Bekræftelse for rekursiv download - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Aldrig - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Gemmer torrentforløb... - + qBittorrent is now ready to exit @@ -1605,12 +1715,12 @@ - + Must Not Contain: Skal ikke indeholde: - + Episode Filter: Episodefilter: @@ -1662,263 +1772,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Eksportér... - + Matches articles based on episode filter. Matcher artikler baseret på episodefilter. - + Example: Eksempel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match matcher episode 2, 5, 8 op til 15, 30 og videre for sæson 1 - + Episode filter rules: Regler for episodefilter: - + Season number is a mandatory non-zero value Sæsonnummer er en obligatorisk ikke-nul-værdi - + Filter must end with semicolon Filter skal slutte med semikolon - + Three range types for episodes are supported: Der understøttes tre områdetyper for episoder: - + Single number: <b>1x25;</b> matches episode 25 of season one Ét nummer: <b>1x25;</b> matcher episode 25 for sæson 1 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normalt område: <b>1x25-40;</b> matcher episode 25 til 40 for sæson 1 - + Episode number is a mandatory positive value Episodenummer er en obligatorisk positiv værdi - + Rules Regler - + Rules (legacy) Regler (udgået) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Uendeligt område: <b>1x25-;</b> matcher episode 25 og op for sæson 1 og alle episoder for senere sæsoner - + Last Match: %1 days ago Sidste match: %1 dage siden - + Last Match: Unknown Sidste match: Ukendt - + New rule name Nyt regelnavn - + Please type the name of the new download rule. Skriv venligst navnet på den nye downloadregel. - - + + Rule name conflict Konflikt for regelnavn - - + + A rule with this name already exists, please choose another name. Der findes allerede en regel med dette navn, vælg venligst et andet navn. - + Are you sure you want to remove the download rule named '%1'? Er du sikker på, at du vil fjerne downloadreglen med navnet '%1'? - + Are you sure you want to remove the selected download rules? Er du sikker på, at du vil fjerne de valgte downloadregler? - + Rule deletion confirmation Bekræftelse for sletning af regel - + Invalid action Ugyldig handling - + The list is empty, there is nothing to export. Listen er tom. Der er intet at eksportere. - + Export RSS rules Eksportér RSS-regler - + I/O Error I/O-fejl - + Failed to create the destination file. Reason: %1 Kunne ikke oprette destinationsfilen. Årsag: %1 - + Import RSS rules Importér RSS-regler - + Failed to import the selected rules file. Reason: %1 Kunne ikke importere den valgte regelfil. Årsag: %1 - + Add new rule... Tilføj ny regel... - + Delete rule Slet regel - + Rename rule... Omdøb regel... - + Delete selected rules Slet valgte regler - + Clear downloaded episodes... Ryd downloadede episoder... - + Rule renaming Omdøbning af regel - + Please type the new rule name Skriv venligst det nye regelnavn - + Clear downloaded episodes Ryd downloadede episoder - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Er du sikker på, at du vil rydde listen over downloadede episoder for den valgte regel? - + Regex mode: use Perl-compatible regular expressions Regulært udtryk-tilstand: brug Perl-kompatible regulære udtryk - - + + Position %1: %2 Placering %1: %2 - + Wildcard mode: you can use Jokertegnstilstand: du kan bruge - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? for at matche ét tegn - + * to match zero or more of any characters * for at matche nul eller flere tegn - + Whitespaces count as AND operators (all words, any order) Blanktegn tæller som OG-operatører (alle ord, vilkårlig rækkefølge) - + | is used as OR operator | bruges som en ELLER-operatør - + If word order is important use * instead of whitespace. Hvis rækkefølgen på ord er vigtig, så brug * i stedet for blanktegn. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Et udtryk med et tomt %1-klausul (f.eks. %2) - + will match all articles. vil matche alle artikler. - + will exclude all articles. vil ekskludere alle artikler. @@ -1960,7 +2070,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1970,28 +2080,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2002,16 +2122,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2019,38 +2140,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2058,22 +2201,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2081,457 +2224,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON TIL - - - - - - - - - + + + + + + + + + OFF FRA - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED TVUNGET - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2547,13 +2736,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2561,67 +2750,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Kunne ikke tilføje modparten "%1" til torrenten "%2". Årsag: %3 - + Peer "%1" is added to torrent "%2" Modparten "%1" blev tilføjet til torrenten "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Download første og sidste stykker først: %1, torrent: '%2' - + On Tændt - + Off Slukket - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Filomdøbning mislykkedes. Torrent: "%1", fil: "%2", årsag: "%3" - + Performance alert: %1. More info: %2 @@ -2642,189 +2831,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameteren '%1' skal følge syntaksen '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameteren '%1' skal følge syntaksen '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Ventede heltalsnummer i miljøvariablen '%1', men fik '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameteren '%1' skal følge syntaksen '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Ventede %1 i miljøvariablen '%2', men fik '%3' - - + + %1 must specify a valid port (1 to 65535). %1 skal angive en gyldig port (1 til 65535). - + Usage: Anvendelse: - + [options] [(<filename> | <url>)...] - + Options: Tilvalg: - + Display program version and exit Vis programversion og afslut - + Display this help message and exit Vis denne hjælpemeddelelse og afslut - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameteren '%1' skal følge syntaksen '%1=%2' + + + Confirm the legal notice - - + + port port - + Change the WebUI port - + Change the torrenting port - + Disable splash screen Deaktivér splash-skærm - + Run in daemon-mode (background) Kør i dæmon-tilstand (i baggrunden) - + dir Use appropriate short form or abbreviation of "directory" mappe - + Store configuration files in <dir> Opbevar konfigurationsfiler i <dir> - - + + name navn - + Store configuration files in directories qBittorrent_<name> Opbevar konfigurationsfiler i mapper ved navn qBittorrent_<navn> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hack ind i libtorrent fastresume-filer og gør filstierne relative til profilmappen - + files or URLs filer eller URL'er - + Download the torrents passed by the user Download torrents som brugeren har givet - + Options when adding new torrents: Tilvalg når der tilføjes nye torrents: - + path sti - + Torrent save path Gemmesti til torrent - - Add torrents as started or paused - Tilføj torrents som startet eller sat på pause + + Add torrents as running or stopped + - + Skip hash check Spring hashtjek over - + Assign torrents to category. If the category doesn't exist, it will be created. Tildel torrents til kategori. Hvis kategorien ikke findes, så oprettes den. - + Download files in sequential order Download filer i fortløbende rækkefølge - + Download first and last pieces first Download første og sidste stykker først - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Angiv om "Tilføj ny torrent"-dialogen åbnes når der tilføjes en torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Tilvalgsværdier kan gives via miljøvariabler. For tilvalg ved navn 'parameterens-navn', er miljøvariablens navn 'QBT_PARAMETERENS_NAVN' (med store bogstaver, '-' erstattes med '_'). Sæt variablen til '1' eller 'TRUE', for at videregive flag-værdier. F.eks. for at deaktivere splash-skærmen: - + Command line parameters take precedence over environment variables Kommandolinjeparametre har forrang over miljøvariabler - + Help Hjælp @@ -2876,13 +3065,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Genoptag torrents + Start torrents + - Pause torrents - Sæt torrents på pause + Stop torrents + @@ -2893,15 +3082,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset Nulstil + + + System + + CookiesDialog @@ -2942,12 +3136,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2955,7 +3149,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2974,23 +3168,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove Fjern @@ -3003,12 +3197,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download fra URL'er - + Add torrent links Tilføj torrent-links - + One link per line (HTTP links, Magnet links and info-hashes are supported) Ét link pr. linje (understøtter HTTP-links, magnet-links og info-hashes) @@ -3018,12 +3212,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download - + No URL entered Der er ikke indtastet nogen URL - + Please type at least one URL. Skriv venligst mindst én URL. @@ -3182,25 +3376,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Fejl ved fortolkning: Filterfilen er ikke en gyldig PeerGuardian P2B-fil. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrent findes allerede - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrenten '%1' er allerede i overførselslisten. Vil du lægge trackere sammen fra den nye kilde? @@ -3208,38 +3425,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Databasens filstørrelse understøttes ikke. - + Metadata error: '%1' entry not found. Fejl ved metadata: '%1'-elementet blev ikke fundet. - + Metadata error: '%1' entry has invalid type. Fejl ved metadata: '%1'-elementet har ugyldig type. - + Unsupported database version: %1.%2 Databaseversionen understøttes ikke: %1.%2 - + Unsupported IP version: %1 IP-version understøttes ikke: %1 - + Unsupported record size: %1 Record-størrelse understøttes ikke: %1 - + Database corrupted: no data section found. Databasen er ødelagt: intet dataafsnit blev fundet. @@ -3247,17 +3464,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Dårlig Http-anmodning, lukker sokkel. IP: %1 @@ -3298,26 +3515,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Gennemse... - + Reset Nulstil - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3349,13 +3600,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned %1 blev udelukket @@ -3364,60 +3615,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 er en ukendt kommandolinjeparameter. - - + + %1 must be the single command line parameter. %1 skal være en enkelt kommandolinjeparameter. - + Run application with -h option to read about command line parameters. Kør programmet med tilvalget -h for at læse om kommandolinjeparametre. - + Bad command line Ugyldig kommandolinje - + Bad command line: Ugyldig kommandolinje: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3430,607 +3681,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Rediger - + &Tools &Værktøjer - + &File &Filer - + &Help &Hjælp - + On Downloads &Done Når downloads er &færdige - + &View &Vis - + &Options... &Indstillinger... - - &Resume - &Genoptag - - - + &Remove - + Torrent &Creator Torrent&opretter - - + + Alternative Speed Limits Alternative grænser for hastighed - + &Top Toolbar &Øverste værktøjslinje - + Display Top Toolbar Vis øverste værktøjslinje - + Status &Bar Status&linje - + Filters Sidebar - + S&peed in Title Bar &Hastighed i titellinjen - + Show Transfer Speed in Title Bar Vis overførselshastighed i titellinjen - + &RSS Reader &RSS-læser - + Search &Engine Søge&motor - + L&ock qBittorrent L&ås qBittorrent - + Do&nate! Do&nér! - + + Sh&utdown System + + + + &Do nothing - + Close Window Luk vindue - - R&esume All - G&enoptag alle - - - + Manage Cookies... Håndter cookies... - + Manage stored network cookies Håndter opbevarede netværkscookies - + Normal Messages Normale meddelelser - + Information Messages Informationsmeddelelser - + Warning Messages Advarselsmeddelelser - + Critical Messages Kritiske meddelelser - + &Log &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue Nederst i køen - + Move to the bottom of the queue Flyt nederst i køen - + Top of Queue Øverst i køen - + Move to the top of the queue Flyt øverst i køen - + Move Down Queue Flyt ned i køen - + Move down in the queue Flyt ned i køen - + Move Up Queue Flyt op i køen - + Move up in the queue Flyt op i køen - + &Exit qBittorrent &Afslut qBittorrent - + &Suspend System &Suspendér systemet - + &Hibernate System &Dvaletilstand - - S&hutdown System - &Luk ned - - - + &Statistics &Statistik - + Check for Updates Søg efter opdateringer - + Check for Program Updates Søg efter programopdateringer - + &About &Om - - &Pause - Sæt på &pause - - - - P&ause All - Sæt alle på p&ause - - - + &Add Torrent File... &Tilføj torrent-fil... - + Open Åbn - + E&xit &Afslut - + Open URL Åbn URL - + &Documentation &Dokumentation - + Lock Lås - - - + + + Show Vis - + Check for program updates Søg efter programopdateringer - + Add Torrent &Link... Tilføj torrent-&link... - + If you like qBittorrent, please donate! Hvis du kan lide qBittorrent, så donér venligst! - - + + Execution Log Eksekveringslog - + Clear the password Ryd adgangskoden - + &Set Password &Sæt adgangskode - + Preferences Præferencer - + &Clear Password &Ryd adgangskode - + Transfers Overførsler - - + + qBittorrent is minimized to tray qBittorrent er minimeret til bakke - - - + + + This behavior can be changed in the settings. You won't be reminded again. Opførslen kan ændres i indstillingerne. Du bliver ikke mindet om det igen. - + Icons Only Kun ikoner - + Text Only Kun tekst - + Text Alongside Icons Tekst ved siden af ikoner - + Text Under Icons Tekst under ikoner - + Follow System Style Følg systemets stil - - + + UI lock password Adgangskode til at låse brugerfladen - - + + Please type the UI lock password: Skriv venligst adgangskoden til at låse brugerfladen: - + Are you sure you want to clear the password? Er du sikker på, at du vil rydde adgangskoden? - + Use regular expressions Brug regulære udtryk - + + + Search Engine + Søgemotor + + + + Search has failed + Søgningen mislykkedes + + + + Search has finished + Søgningen er færdig + + + Search Søg - + Transfers (%1) Overførsler (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent er lige blevet opdateret og skal genstartes før ændringerne træder i kraft. - + qBittorrent is closed to tray qBittorrent er lukket til bakke - + Some files are currently transferring. Nogle filer er ved at blive overført. - + Are you sure you want to quit qBittorrent? Er du sikker på, at du vil afslutte qBittorrent? - + &No &Nej - + &Yes &Ja - + &Always Yes &Altid ja - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Manglende Python-runtime - + qBittorrent Update Available Der findes en opdatering til qBittorrent - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python kræves for at bruge søgemotoren, men lader ikke til at være installeret. Vil du installere den nu? - + Python is required to use the search engine but it does not seem to be installed. Python kræves for at bruge søgemotoren, men lader ikke til at være installeret. - - + + Old Python Runtime Gammel Python-runtime - + A new version is available. Der findes en ny version. - + Do you want to download %1? Vil du downloade %1? - + Open changelog... Åbn ændringslog... - + No updates available. You are already using the latest version. Der findes ingen opdateringer. Du bruger allerede den seneste version. - + &Check for Updates &Søg efter opdateringer - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Sat på pause + + + Checking for Updates... Søger efter opdateringer... - + Already checking for program updates in the background Søger allerede efter programopdateringer i baggrunden - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Fejl ved download - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python-opsætning kunne ikke downloades, årsag: %1. -Installer den venligst manuelt. - - - - + + Invalid password Ugyldig adgangskode - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid Adgangskoden er ugyldig - + DL speed: %1 e.g: Download speed: 10 KiB/s Downloadhastighed: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Uploadhastighed: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [D: %1/s, U: %2/s] qBittorrent %3 - - - + Hide Skjul - + Exiting qBittorrent Afslutter qBittorrent - + Open Torrent Files Åbn torrent-filer - + Torrent Files Torrent-filer @@ -4225,7 +4547,12 @@ Installer den venligst manuelt. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorerer SSL-fejl, URL: "%1", fejl: "%2" @@ -5519,47 +5846,47 @@ Installer den venligst manuelt. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5597,444 +5924,473 @@ Installer den venligst manuelt. BitTorrent - + RSS RSS - - Web UI - Webgrænseflade - - - + Advanced Avanceret - + Customize UI Theme... - + Transfer List Overførselsliste - + Confirm when deleting torrents Bekræft ved sletning af torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Brug alternative farver for rækker - + Hide zero and infinity values Skjul nul og uendelige værdier - + Always Altid - - Paused torrents only - Kun torrents som er sat på pause - - - + Action on double-click Handling ved dobbeltklik - + Downloading torrents: Downloader torrents: - - - Start / Stop Torrent - Start/stop torrent - - - - + + Open destination folder Åbn destinationsmappe - - + + No action Ingen handling - + Completed torrents: Færdige torrents: - + Auto hide zero status filters - + Desktop Skrivebord - + Start qBittorrent on Windows start up Start qBittorrent når Windows starter - + Show splash screen on start up Vis splash-skærm ved opstart - + Confirmation on exit when torrents are active Bekræftelse ved afslutning når der er aktive torrents - + Confirmation on auto-exit when downloads finish Bekræftelse ved automatisk afslutning når downloads er færdige - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original Original - + Create subfolder Opret undermappe - + Don't create subfolder Opret ikke undermappe - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Tilføj... - + Options.. - + Remove Fjern - + Email notification &upon download completion &Underretning via e-mail når download er færdig - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP-fi&ltrering - + Schedule &the use of alternative rate limits Planlæg brugen af &alternative grænser for hastighed - + From: From start time Fra: - + To: To end time Til: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption Tillad kryptering - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mere information</a>) - + Maximum active checking torrents: - + &Torrent Queueing &Torrent sat i kø - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Tilføj &automatisk disse trackere til nye downloads: - - - + RSS Reader RSS-læser - + Enable fetching RSS feeds Aktivér hentning af RSS-feeds - + Feeds refresh interval: Interval for genopfriskning af feeds: - + Same host request delay: - + Maximum number of articles per feed: Maksimum antal artikler pr. feed: - - - + + + min minutes min - + Seeding Limits Grænser for seeding - - Pause torrent - Sæt torrent på pause - - - + Remove torrent Fjern torrent - + Remove torrent and its files Fjern torrenten og dens filer - + Enable super seeding for torrent Aktivér superseeding for torrent - + When ratio reaches Når deleforhold når - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Automatisk download af RSS-torrent - + Enable auto downloading of RSS torrents Aktivér automatisk download af RSS-torrents - + Edit auto downloading rules... Rediger regler for automatisk download... - + RSS Smart Episode Filter RSS smart episodefilter - + Download REPACK/PROPER episodes Download REPACK/PROPER episoder - + Filters: Filtre: - + Web User Interface (Remote control) Webgrænseflade (fjernstyring) - + IP address: IP-adresse: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6043,42 +6399,37 @@ Angiv en IPv4- eller IPv6-adresse. Du kan angive "0.0.0.0" til enhver "::" til enhver IPv6-adresse eller "*" til både IPv4 og IPv6. - + Ban client after consecutive failures: - + Never Aldrig - + ban for: - + Session timeout: Sessiontimeout: - + Disabled Deaktiveret - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: Serverdomæner: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6091,441 +6442,482 @@ bør du putte domænenavne i som bruges af webgrænsefladens server. Brug ';' til af adskille flere indtastninger. Jokertegnet '*' kan bruges. - + &Use HTTPS instead of HTTP &Brug HTTPS i stedet for HTTP - + Bypass authentication for clients on localhost Tilsidesæt godkendelse for klienter på localhost - + Bypass authentication for clients in whitelisted IP subnets Tilsidesæt godkendelse for klienter i hvidlistede IP-undernet - + IP subnet whitelist... IP-undernet-hvidliste... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Opdater mit &dynamiske domænenavn - + Minimize qBittorrent to notification area Minimer qBittorrent til underretningsområdet - + + Search + Søg + + + + WebUI + + + + Interface Grænseflade - + Language: Sprog: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Stil for bakkeikon: - - + + Normal Normal - + File association Filtilknytning - + Use qBittorrent for .torrent files Brug qBittorrent til .torrent-filer - + Use qBittorrent for magnet links Brug qBittorrent til magnet-links - + Check for program updates Søg efter programopdateringer - + Power Management Strømstyring - + + &Log Files + + + + Save path: Gemmesti: - + Backup the log file after: Sikkerhedskopiér logfilen efter: - + Delete backup logs older than: Slet sikkerhedskopieret logge som er ældre end: - + + Show external IP in status bar + + + + When adding a torrent Når en torrent tilføjes - + Bring torrent dialog to the front Bring torrent-dialogen forrest - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Slet også .torrent-filer som fik deres tilføjelse annulleret - + Also when addition is cancelled Også når tilføjelse annulleres - + Warning! Data loss possible! Advarsel! Data kan gå tabt! - + Saving Management Gemmehåndtering - + Default Torrent Management Mode: Standardtilstand for håndtering af torrent: - + Manual Manuelt - + Automatic Automatisk - + When Torrent Category changed: Når torrentkategori ændres: - + Relocate torrent Flyt torrent til en anden placering - + Switch torrent to Manual Mode Skift torrent til manuel tilstand - - + + Relocate affected torrents Flyt påvirkede torrents til en anden placering - - + + Switch affected torrents to Manual Mode Skift påvirkede torrents til manuel tilstand - + Use Subcategories Brug underkategorier - + Default Save Path: Standardgemmesti: - + Copy .torrent files to: Kopiér .torrent-filer til: - + Show &qBittorrent in notification area Vis &qBittorrent i underretningsområdet - - &Log file - &Logfil - - - + Display &torrent content and some options Vis &torrent-indhold og nogle valgmuligheder - + De&lete .torrent files afterwards &Slet .torrent-filer bagefter - + Copy .torrent files for finished downloads to: Kopiér færdige .torrent downloads til: - + Pre-allocate disk space for all files Præ-allokér alle filer - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder Forhåndsvis fil, ellers åbn distinationsmappe - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Luk qBittorrent til underretningsområdet - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading Forhindr systemet i at gå i dvale når der downloades torrents - + Inhibit system sleep when torrents are seeding Forhindr systemet i at gå i dvale når der seedes torrents - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days dage - + months Delete backup logs older than 10 months måneder - + years Delete backup logs older than 10 years år - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Start ikke download automatisk - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Tilføj .!qB-endelse til slutningen af ufærdige filer - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog Aktivér rekursiv download-dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Når kategoriens gemmesti ændres: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: Tilføj automatisk torrents fra: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6542,766 +6934,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Modtager - + To: To receiver Til: - + SMTP server: SMTP-server: - + Sender Afsender - + From: From sender Fra: - + This server requires a secure connection (SSL) Denne server kræver en sikker forbindelse (SSL) - - + + Authentication Godkendelse - - - - + + + + Username: Brugernavn: - - - - + + + + Password: Adgangskode: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Vis konsolvindue - + TCP and μTP TCP og μTP - + Listening Port Lyttende port - + Port used for incoming connections: Port der bruges til indgående forbindelser: - + Set to 0 to let your system pick an unused port - + Random Tilfældig - + Use UPnP / NAT-PMP port forwarding from my router Brug UPnP/NAT-PMP port-viderestilling fra min router - + Connections Limits Grænser for forbindelser - + Maximum number of connections per torrent: Maksimum antal forbindelser pr. torrent: - + Global maximum number of connections: Global maksimum antal forbindelser: - + Maximum number of upload slots per torrent: Maksimum antal uploadpladser pr. torrent: - + Global maximum number of upload slots: Global maksimum antal uploadpladser: - + Proxy Server Proxyserver - + Type: Type: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Vært: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Ellers bruges proxyserveren kun til tracker-forbindelser - + Use proxy for peer connections Brug proxy til modpartsforbindelser - + A&uthentication &Godkendelse - - Info: The password is saved unencrypted - Info: Adgangskoden gemmes ukrypteret - - - + Filter path (.dat, .p2p, .p2b): Filtrer sti (.dat, .p2p, .p2b): - + Reload the filter Genindlæs filteret - + Manually banned IP addresses... Manuelt udelukkede IP-adresser... - + Apply to trackers Anvend på trackere - + Global Rate Limits Globale grænser for hastighed - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Upload: - - + + Download: Download: - + Alternative Rate Limits Alternative grænser for hastighed - + Start time - + End time - + When: Når: - + Every day Hver dag - + Weekdays Hverdage - + Weekends Weekender - + Rate Limits Settings Indstillinger for grænser for hastighed - + Apply rate limit to peers on LAN Anvend grænse for hastighed til modparter på LAN - + Apply rate limit to transport overhead Anvend grænse for hastighed til transport-overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Anvend grænse for hastighed til µTP-protokol - + Privacy Privatliv - + Enable DHT (decentralized network) to find more peers Aktivér DHT (decentraliseret netværk) for at finde flere modparter - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Udveksel modparter med kompatible Bittorrent-klienter (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Aktivér modpartsudveksling (PeX) for at finde flere modparter - + Look for peers on your local network Søg efter modparter på dit lokale netværk - + Enable Local Peer Discovery to find more peers Aktivér lokal modpartsopdagelse for at finde flere modparter - + Encryption mode: Krypteringstilstand: - + Require encryption Kræv kryptering - + Disable encryption Deaktivér kryptering - + Enable when using a proxy or a VPN connection Aktivér når der bruges en proxy eller en VPN-forbindelse - + Enable anonymous mode Aktivér anonym tilstand - + Maximum active downloads: Maksimum aktive downloads: - + Maximum active uploads: Maksimum aktive uploads: - + Maximum active torrents: Maksimum aktive torrents: - + Do not count slow torrents in these limits Tæl ikke langsomme torrents med i disse grænser - + Upload rate threshold: Grænse for uploadhastighed: - + Download rate threshold: Grænse for downloadhastighed: - - - - + + + + sec seconds sek. - + Torrent inactivity timer: Timer for torrent inaktivitet: - + then og så - + Use UPnP / NAT-PMP to forward the port from my router Brug UPnP/NAT-PMP til at viderestille porten fra min router - + Certificate: Certifikat: - + Key: Nøgle: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information om certifikater</a> - + Change current password Skift nuværende adgangskode - - Use alternative Web UI - Brug alternativ webgrænseflade - - - + Files location: Filplacering: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Sikkerhed - + Enable clickjacking protection Aktivér beskyttelse mod klikkidnapning - + Enable Cross-Site Request Forgery (CSRF) protection Aktivér beskyttelse mod Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Aktivér validering af værtsheader - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Tjeneste: - + Register Registrer - + Domain name: Domænenavn: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ved at aktivere disse valgmuligheder kan du <strong>uigenkaldeligt miste</strong> dine .torrent-filer! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Hvis du aktiverer den anden valgmulighed (&ldquo;Også når tilføjelse annulleres&rdquo;), <strong>så slettes .torrent-filen</strong>, selv hvis du trykker på &ldquo;<strong>Annuller</strong>&rdquo; i &ldquo;Tilføj torrent&rdquo;-dialogen - + Select qBittorrent UI Theme file - + Choose Alternative UI files location Vælg alternativ placering til brugefladefiler - + Supported parameters (case sensitive): Understøttede parametre (forskel på store og små bogstaver): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Torrentnavn - + %L: Category %L: Kategori - + %F: Content path (same as root path for multifile torrent) %F: Indholdssti (samme som rodsti til torrent med flere filer) - + %R: Root path (first torrent subdirectory path) %R: Rodsti (første torrent-undermappesti) - + %D: Save path %D: Gemmesti - + %C: Number of files %C: Antal filer - + %Z: Torrent size (bytes) %Z: Torrentstørrelse (bytes) - + %T: Current tracker %T: Nuværende tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Omslut parameter med citationstegn så teksten ikke bliver afkortet af blanktegn (f.eks. "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Ingen) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds En torrent betrages som værende langsom hvis dens download- og uploadhastighed forbliver under disse værdier for "Timer for torrent inaktivitet" sekunder - + Certificate Certifikat - + Select certificate Vælg certifikat - + Private key Privat nøgle - + Select private key Vælg privat nøgle - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Vælg mappe som skal overvåges - + Adding entry failed Tilføjelse af element mislykkedes - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Fejl ved placering - - + + Choose export directory Vælg eksportmappe - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Mærkatet (separeret af komma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Vælg en gemmemappe - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Vælg en IP-filterfil - + All supported filters Alle understøttede filtre - + The alternative WebUI files location cannot be blank. - + Parsing error Fejl ved fortolkning - + Failed to parse the provided IP filter Kunne ikke behandle det angivne IP-filter - + Successfully refreshed Genopfrisket - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Behandling af det angivne IP-filter lykkedes: %1 regler blev anvendt. - + Preferences Præferencer - + Time Error Fejl ved tid - + The start time and the end time can't be the same. Start- og slut-tiden må ikke være det samme. - - + + Length Error Fejl ved længde @@ -7309,241 +7746,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Ukendt - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port Port - + Flags Flag - + Connection Forbindelse - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Forløb - + Down Speed i.e: Download speed Downloadhastighed - + Up Speed i.e: Upload speed Uploadhastighed - + Downloaded i.e: total data downloaded Downloadet - + Uploaded i.e: total data uploaded Uploadet - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevans - + Files i.e. files that are being downloaded right now Filer - + Column visibility Synlighed for kolonne - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse - + Add peers... - - + + Adding peers Tilføjer modparter - + Some peers cannot be added. Check the Log for details. Nogle modparter kan ikke tilføjes. Tjek loggen for detaljer. - + Peers are added to this torrent. Der er tilføjet modparter til torrenten. - - + + Ban peer permanently Udeluk modpart permanent - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? Er du sikker på, at du vil udelukke de valgte modparter permanent? - + Peer "%1" is manually banned Modparten "%1" er blevet udelukket manuelt - + N/A - - + Copy IP:port Kopiér IP:port @@ -7561,7 +8003,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Liste over modparter som skal tilføjes (én IP pr. linje): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port/[IPv6]:port @@ -7602,27 +8044,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Filer i dette stykke: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information Vent med at se detaljeret information før metadata bliver tilgængelig - + Hold Shift key for detailed information Hold Skift-tasten nede for detaljeret information @@ -7635,58 +8077,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Søge-plugins - + Installed search plugins: Installerede søge-plugins: - + Name Navn - + Version Version - + Url Url - - + + Enabled Aktiveret - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Advarsel: Sørg for at overholde dit lands love om ophavsret når du downloader torrents fra søgemotorerne. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installer en ny - + Check for updates Søg efter opdateringer - + Close Luk - + Uninstall Afinstaller @@ -7806,98 +8248,65 @@ Pluginsne blev deaktiveret. Plugin-kilde - + Search plugin source: Søg efter plugin-kilde: - + Local file Lokal fil - + Web link Weblink - - PowerManagement - - - qBittorrent is active - qBittorrent er aktiv - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Følgende filer fra torrenten "%1" understøtter forhåndsvisning, vælg en af dem: - + Preview Forhåndsvis - + Name Navn - + Size Størrelse - + Progress Forløb - + Preview impossible Forhåndsvisning ikke muligt - + Sorry, we can't preview this file: "%1". Beklager, vi kan ikke forhåndsvise filen: "%1". - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse @@ -7910,27 +8319,27 @@ Pluginsne blev deaktiveret. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7971,12 +8380,12 @@ Pluginsne blev deaktiveret. PropertiesWidget - + Downloaded: Downloadet: - + Availability: Tilgængelighed: @@ -7991,53 +8400,53 @@ Pluginsne blev deaktiveret. Overførsel - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tid aktiv: - + ETA: ETA: - + Uploaded: Uploadet: - + Seeds: Seeds: - + Download Speed: Downloadhastighed: - + Upload Speed: Uploadhastighed: - + Peers: Modparter: - + Download Limit: Downloadgrænse: - + Upload Limit: Uploadgrænse: - + Wasted: Spildt: @@ -8047,193 +8456,220 @@ Pluginsne blev deaktiveret. Forbindelser: - + Information Information - + Info Hash v1: - + Info Hash v2: - + Comment: Kommentar: - + Select All Vælg alt - + Select None Vælg intet - + Share Ratio: Deleforhold: - + Reannounce In: Genannoncer om: - + Last Seen Complete: Sidst set færdige: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Samlet størrelse: - + Pieces: Stykker: - + Created By: Oprettet af: - + Added On: Tilføjet: - + Completed On: Færdig: - + Created On: Oprettet: - + + Private: + + + + Save Path: Gemmesti: - + Never Aldrig - + %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 session) - - + + + N/A - - + + Yes + Ja + + + + No + Nej + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedet 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 i alt) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 gns.) - - New Web seed - Nyt webseed + + Add web seed + Add HTTP source + - - Remove Web seed - Fjern webseed + + Add web seed: + - - Copy Web seed URL - Kopiér webseed-URL + + + This web seed is already in the list. + - - Edit Web seed URL - Rediger webseed-URL - - - + Filter files... Filterfiler... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Nyt URL-seed - - - - New URL seed: - Nyt URL-seed: - - - - - This URL seed is already in the list. - Dette URL-seed er allerede i listen. - - - + Web seed editing Redigering af webseed - + Web seed URL: Webseed-URL: @@ -8241,33 +8677,33 @@ Pluginsne blev deaktiveret. RSS::AutoDownloader - - + + Invalid data format. Ugyldigt dataformat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Kunne ikke gemme RSS AutoDownloader-data i %1. Fejl: %2 - + Invalid data format Ugyldigt dataformat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Kunne ikke læse RSS AutoDownloader-regler. Årsag: %1 @@ -8275,22 +8711,22 @@ Pluginsne blev deaktiveret. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Kunne ikke downloade RSS-feed på '%1'. Årsag: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-feed på '%1' opdateret. Tilføjede %2 nye artikler. - + Failed to parse RSS feed at '%1'. Reason: %2 Kunne ikke behandle RSS-feed på '%1'. Årsag: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-feed hos '%1' blev downloadet. Begynder på at fortolke den. @@ -8326,12 +8762,12 @@ Pluginsne blev deaktiveret. RSS::Private::Parser - + Invalid RSS feed. Ugyldigt RSS-feed. - + %1 (line: %2, column: %3, offset: %4). %1 (linje: %2, kolonne: %3, forskydning: %4). @@ -8339,103 +8775,144 @@ Pluginsne blev deaktiveret. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. RSS-feed med angivne URL findes allerede: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. Kan ikke flytte rodmappe. - - + + Item doesn't exist: %1. Element findes ikke: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Kan ikke slette rodmappe. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Ukorrekt RSS-elementsti: %1. - + RSS item with given path already exists: %1. RSS-element med angivne sti findes allerede: %1. - + Parent folder doesn't exist: %1. Forældermappe findes ikke: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + sek. + + + + Default + Standard + + RSSWidget @@ -8455,8 +8932,8 @@ Pluginsne blev deaktiveret. - - + + Mark items read Mærk elementer som læst @@ -8481,132 +8958,115 @@ Pluginsne blev deaktiveret. Torrents: (dobbeltklik for at downloade) - - + + Delete Slet - + Rename... Omdøb... - + Rename Omdøb - - + + Update Opdater - + New subscription... Nyt abonnement... - - + + Update all feeds Opdater alle feeds - + Download torrent Download torrent - + Open news URL Åbn nyheds-URL - + Copy feed URL Kopiér URL for feed - + New folder... Ny mappe... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Vælg venligst et mappenavn - + Folder name: Mappenavn: - + New folder Ny mappe - - - Please type a RSS feed URL - Skriv venligst en URL for RSS-feed - - - - - Feed URL: - URL for feed: - - - + Deletion confirmation Bekræftelse for sletning - + Are you sure you want to delete the selected RSS feeds? Er du sikker på, at du vil slette de valgte RSS-feeds? - + Please choose a new name for this RSS feed Vælg venligst et nyt navn til dette RSS-feed - + New feed name: Nyt feednavn: - + Rename failed Omdøbning mislykkedes - + Date: Dato: - + Feed: - + Author: Forfatter: @@ -8614,38 +9074,38 @@ Pluginsne blev deaktiveret. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range Forskydning er udenfor område - + All plugins are already up to date. Alle plugins er allerede af nyeste udgave. - + Updating %1 plugins Opdaterer %1 plugins - + Updating plugin %1 Opdaterer pluginet %1 - + Failed to check for plugin updates: %1 Kunne ikke søge efter plugin-opdateringer: %1 @@ -8720,132 +9180,142 @@ Pluginsne blev deaktiveret. Størrelse: - + 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øgemotor - - - + Filter search results... Filtrer søgeresultater... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultater (viser <i>%1</i> ud af <i>%2</i>): - + Torrent names only Kun torrentnavne - + Everywhere Alle steder - + Use regular expressions Brug regulære udtryk - + Open download window - + Download Download - + Open description page Åbn beskrivelsesside - + Copy Kopiér - + Name Navn - + Download link Downloadlink - + Description page URL URL for beskrivelsesside - + Searching... Søger... - + Search has finished Søgningen er færdig - + Search aborted Søgning afbrudt - + An error occurred during search... Der opstod en fejl under søgningen... - + Search returned no results Søgningen gav ingen resultater - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Synlighed for kolonne - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse @@ -8853,104 +9323,104 @@ Pluginsne blev deaktiveret. SearchPluginManager - + Unknown search engine plugin file format. Ukendt filformat for søgemotor-plugin. - + Plugin already at version %1, which is greater than %2 Pluginet er allerede version %1, hvilket er større end %2 - + A more recent version of this plugin is already installed. En nyere version af dette plugin er allerede installeret. - + Plugin %1 is not supported. Pluginet %1 understøttes ikke. - - + + Plugin is not supported. Plugin understøttes ikke. - + Plugin %1 has been successfully updated. Pluginet %1 blev opdateret. - + All categories Alle kategorier - + Movies Film - + TV shows TV-shows - + Music Musik - + Games Spil - + Anime Anime - + Software Software - + Pictures Billeder - + Books Bøger - + Update server is temporarily unavailable. %1 Opdateringsserveren er midlertidig utilgængelig. %1 - - + + Failed to download the plugin file. %1 Kunne ikke download plugin-filen. %1 - + Plugin "%1" is outdated, updating to version %2 Pluginet "%1" er forældet, opdaterer til version %2 - + Incorrect update info received for %1 out of %2 plugins. Ukorrekt opdateringsinformation modtaget til %1 ud af %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') Søge-pluginet '%1' indeholder ugyldig versionsstreng ('%2') @@ -8960,114 +9430,145 @@ Pluginsne blev deaktiveret. - - - - Search Søg - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Der er ikke installeret nogen søge-plugins. Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, for at installere nogen. - + Search plugins... Søge-plugins... - + A phrase to search for. Søg efter en frase. - + Spaces in a search term may be protected by double quotes. Mellemrum i søgetermner kan beskyttes med dobbelte anførselstegn. - + Example: Search phrase example Eksempel: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: søg efter <b>foo bar</b> - + All plugins Alle plugins - + Only enabled Kun aktiverede - + + + Invalid data format. + Ugyldigt dataformat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab Luk faneblad - + Close all tabs Luk alle faneblade - + Select... Vælg... - - - + + Search Engine Søgemotor - + + Please install Python to use the Search Engine. Installer venligst Python for at bruge søgemotoren. - + Empty search pattern Tomt søgemønster - + Please type a search pattern first Skriv venligst først et søgemønster - + + Stop Stop + + + SearchWidget::DataStorage - - Search has finished - Søgningen er færdig + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Søgningen mislykkedes + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9180,34 +9681,34 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, - + Upload: Upload: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Download: - + Alternative speed limits Alternative hastighedsgrænser @@ -9399,32 +9900,32 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, Gennemsnitlig tid i kø: - + Connected peers: Tilsluttede modparter: - + All-time share ratio: Deleforhold igennem tiden: - + All-time download: Download igennem tiden: - + Session waste: Sessionsspild: - + All-time upload: Upload igennem tiden: - + Total buffer size: Samlet bufferstørrelse: @@ -9439,12 +9940,12 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, I/O-jobs i kø: - + Write cache overload: Overbelastet skrivemellemlager: - + Read cache overload: Overbelastet læsemellemlager: @@ -9463,51 +9964,77 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, StatusBar - + Connection status: Forbindelsesstatus: - - + + No direct connections. This may indicate network configuration problems. Ingen direkte forbindelser. Dette kan indikere problemer med at konfigurere netværket. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 knudepunkter - + qBittorrent needs to be restarted! qBittorrent skal genstartes! - - - + + + Connection Status: Forbindelsesstatus: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. Dette betyder typisk at qBittorrent ikke kunne lytte efter indgående forbindelser på den valgte port. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klik for at skifte til alternative grænser for hastighed - + Click to switch to regular speed limits Klik for at skifte til normale grænser for hastighed @@ -9537,13 +10064,13 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, - Resumed (0) - Genoptaget (0) + Running (0) + - Paused (0) - Sat på pause (0) + Stopped (0) + @@ -9605,36 +10132,36 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, Completed (%1) Færdige (%1) + + + Running (%1) + + - Paused (%1) - Sat på pause (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - Genoptag torrents - - - - Pause torrents - Sæt torrents på pause - Remove torrents - - - Resumed (%1) - Genoptaget (%1) - Active (%1) @@ -9706,31 +10233,31 @@ Klik på "Søg efter plugins..."-knappen nederst til højre i vinduet, Remove unused tags Fjern ubrugte mærkater - - - Resume torrents - Genoptag torrents - - - - Pause torrents - Sæt torrents på pause - Remove torrents - - New Tag - Nyt mærkat + + Start torrents + + + + + Stop torrents + Tag: Mærkat: + + + Add tag + + Invalid tag name @@ -9877,32 +10404,32 @@ Vælg venligst et andet navn og prøv igen. TorrentContentModel - + Name Navn - + Progress Forløb - + Download Priority Downloadprioritet - + Remaining Tilbage - + Availability Tilgængelighed - + Total Size Samlet størrelse @@ -9947,98 +10474,98 @@ Vælg venligst et andet navn og prøv igen. TorrentContentWidget - + Rename error Fejl ved omdøbning - + Renaming Omdøber - + New name: Nyt navn: - + Column visibility Synlighed for kolonne - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse - + Open Åbn - + Open containing folder - + Rename... Omdøb... - + Priority Prioritet - - + + Do not download Download ikke - + Normal Normal - + High Høj - + Maximum Højeste - + By shown file order Efter vist fil-rækkefølge - + Normal priority Normal prioritet - + High priority Høj prioritet - + Maximum priority Højeste prioritet - + Priority by shown file order Prioritet efter vist fil-rækkefølge @@ -10046,17 +10573,17 @@ Vælg venligst et andet navn og prøv igen. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10085,13 +10612,13 @@ Vælg venligst et andet navn og prøv igen. - + Select file Vælg fil - + Select folder Vælg mappe @@ -10166,87 +10693,83 @@ Vælg venligst et andet navn og prøv igen. Felter - + You can separate tracker tiers / groups with an empty line. Du kan separere tracker-tiers/-grupper med en tom linje. - + Web seed URLs: Web seed-URL'er: - + Tracker URLs: Tracker-URL'er: - + Comments: Kommentarer: - + Source: Kilde: - + Progress: Forløb: - + Create Torrent Opret torrent - - + + Torrent creation failed Oprettelse af torrent mislykkedes - + Reason: Path to file/folder is not readable. Årsag: Sti til fil/mappe kan ikke læses. - + Select where to save the new torrent Vælg hvor den nye torrent skal gemmes - + Torrent Files (*.torrent) Torrent-filer (*.torrent) - Reason: %1 - Årsag: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Torrentopretter - + Torrent created: Torrent oprettet: @@ -10254,32 +10777,32 @@ Vælg venligst et andet navn og prøv igen. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10287,44 +10810,31 @@ Vælg venligst et andet navn og prøv igen. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Ugyldig metadata - - TorrentOptionsDialog @@ -10353,173 +10863,161 @@ Vælg venligst et andet navn og prøv igen. Brug anden sti til ukomplet torrent - + Category: Kategori: - - Torrent speed limits + + Torrent Share Limits - + Download: Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Upload: - - Torrent share limits - - - - - Use global share limit - Brug global delegrænse - - - - Set no share limit - Sæt ingen delegrænse - - - - Set share limit to - Sæt delegrænse til - - - - ratio - forhold - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Download i fortløbende rækkefølge - + Disable PeX for this torrent - + Download first and last pieces first Download første og sidste stykker først - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Vælg gemmesti - + Not applicable to private torrents - - - No share limit method selected - Ingen delegrænsemetode valgt - - - - Please select a limit method first - Vælg venligst først en grænsemetode - TorrentShareLimitsWidget - - - + + + + Default - Standard + Standard - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Fjern torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Aktivér superseeding for torrent + + + Ratio: @@ -10532,32 +11030,32 @@ Vælg venligst et andet navn og prøv igen. - - New Tag - Nyt mærkat + + Add tag + - + Tag: Mærkat: - + Invalid tag name Ugyldigt mærkatnavn - + Tag name '%1' is invalid. - + Tag exists Mærkatet findes - + Tag name already exists. Mærkatnavnet findes allerede. @@ -10565,115 +11063,130 @@ Vælg venligst et andet navn og prøv igen. TorrentsController - + Error: '%1' is not a valid torrent file. Fejl: '%1' er ikke en gyldig torrent-fil. - + Priority must be an integer Prioritet skal være et heltal - + Priority is not valid Prioritet er ikke gyldig - + Torrent's metadata has not yet downloaded Torrentens metadata er endnu ikke downloadet - + File IDs must be integers Fil-id'er skal være heltal - + File ID is not valid Fil-id er ikke gyldig - - - - + + + + Torrent queueing must be enabled Torrent-forespørgsel må ikke være aktiveret - - + + Save path cannot be empty Gemmesti må ikke være tom - - + + Cannot create target directory - - + + Category cannot be empty Kategori må ikke være tom - + Unable to create category Kan ikke oprette kategori - + Unable to edit category Kan ikke redigere kategori - + Unable to export torrent file. Error: %1 - + Cannot make save path Kan ikke oprette gemmesti - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Kan ikke skrive til mappe - + WebUI Set location: moving "%1", from "%2" to "%3" Webgrænseflade sæt placering: flytter "%1", fra "%2" til "%3" - + Incorrect torrent name Ukorrekt torrentnavn - - + + Incorrect category name Ukorrekt kategorinavn @@ -10704,196 +11217,191 @@ Vælg venligst et andet navn og prøv igen. TrackerListModel - + Working Arbejder - + Disabled Deaktiveret - + Disabled for this torrent - + This torrent is private Denne torrent er privat - + N/A - - + Updating... Opdaterer... - + Not working Arbejder ikke - + Tracker error - + Unreachable - + Not contacted yet Ikke kontaktet endnu - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Tier - - - - Protocol + URL/Announce Endpoint - Status - Status - - - - Peers - Modparter - - - - Seeds - Seeds - - - - Leeches - Leechere - - - - Times Downloaded - - - - - Message - Meddelelse - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Tier + + + + Status + Status + + + + Peers + Modparter + + + + Seeds + Seeds + + + + Leeches + Leechere + + + + Times Downloaded + + + + + Message + Meddelelse + TrackerListWidget - + This torrent is private Denne torrent er privat - + Tracker editing Redigering af tracker - + Tracker URL: Tracker-URL: - - + + Tracker editing failed Redigering af tracker mislykkedes - + The tracker URL entered is invalid. Den indtastede tracker-URL er ugyldig. - + The tracker URL already exists. Tracker-URL'en findes allerede. - + Edit tracker URL... Rediger tracker-URL... - + Remove tracker Fjern tracker - + Copy tracker URL Kopiér tracker-URL - + Force reannounce to selected trackers Tving genannoncering til valgte trackere - + Force reannounce to all trackers Tving genannoncering til alle trackere - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse - + Add trackers... - + Column visibility Synlighed for kolonne @@ -10911,37 +11419,37 @@ Vælg venligst et andet navn og prøv igen. Liste over trackere der skal tilføjes (en pr. linje): - + µTorrent compatible list URL: Liste-URL som er kompatibel med µTorrent: - + Download trackers list - + Add Tilføj - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10949,62 +11457,62 @@ Vælg venligst et andet navn og prøv igen. TrackersFilterWidget - + Warning (%1) Advarsel (%1) - + Trackerless (%1) Trackerløs (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Fjern tracker - - Resume torrents - Genoptag torrents + + Start torrents + - - Pause torrents - Sæt torrents på pause + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Alle (%1) @@ -11013,7 +11521,7 @@ Vælg venligst et andet navn og prøv igen. TransferController - + 'mode': invalid argument @@ -11105,11 +11613,6 @@ Vælg venligst et andet navn og prøv igen. 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. Tjekker genoptagelsesdata - - - Paused - Sat på pause - Completed @@ -11133,220 +11636,252 @@ Vælg venligst et andet navn og prøv igen. Fejlramte - + Name i.e: torrent name Navn - + Size i.e: torrent size Størrelse - + Progress % Done Forløb - + + Stopped + Stoppet + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Modparter - + Down Speed i.e: Download speed Downloadhastighed - + Up Speed i.e: Upload speed Uploadhastighed - + Ratio Share ratio Forhold - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Kategori - + Tags Mærkater - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Tilføjet den - + Completed On Torrent was completed on 01/01/2010 08:00 Færdig den - + Tracker Tracker - + Down Limit i.e: Download limit Downloadgrænse - + Up Limit i.e: Upload limit Uploadgrænse - + Downloaded Amount of data downloaded (e.g. in MB) Downloadet - + Uploaded Amount of data uploaded (e.g. in MB) Uploadet - + Session Download Amount of data downloaded since program open (e.g. in MB) Downloadet i session - + Session Upload Amount of data uploaded since program open (e.g. in MB) Uploadet i session - + Remaining Amount of data left to download (e.g. in MB) Tilbage - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tid aktiv - + + Yes + Ja + + + + No + Nej + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Færdig - + Ratio Limit Upload share ratio limit Grænse for forhold - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Sidst set færdige - + Last Activity Time passed since a chunk was downloaded/uploaded Sidste aktivitet - + Total Size i.e. Size including unwanted data Samlet størrelse - + Availability The number of distributed copies of the torrent Tilgængelighed - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A - - + %1 ago e.g.: 1h 20m ago %1 siden - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedet i %2) @@ -11355,339 +11890,319 @@ Vælg venligst et andet navn og prøv igen. TransferListWidget - + Column visibility Synlighed for kolonne - + Recheck confirmation Bekræftelse for gentjek - + Are you sure you want to recheck the selected torrent(s)? Er du sikker på, at du vil gentjekke den valgte torrent(s)? - + Rename Omdøb - + New name: Nyt navn: - + Choose save path Vælg gemmesti - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview Kan ikke forhåndsvise - + The selected torrent "%1" does not contain previewable files Den valgte torrent "%1" indeholder ikke filer som kan forhåndsvises - + Resize columns Ændr kolonners størrelse - + Resize all non-hidden columns to the size of their contents Ændr alle ikke-skjulte kolonner til deres indholds størrelse - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Tilføj mærkater - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags Fjern alle mærkater - + Remove all tags from selected torrents? Fjern alle mærkater fra valgte torrents? - + Comma-separated tags: Kommasepareret mærkater: - + Invalid tag Ugyldigt mærkat - + Tag name: '%1' is invalid Mærkatnavnet '%1' er ugyldigt - - &Resume - Resume/start the torrent - &Genoptag - - - - &Pause - Pause the torrent - Sæt på &pause - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Download i fortløbende rækkefølge - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Download første og sidste stykker først - + Automatic Torrent Management Automatisk håndtering af torrent - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatisk tilstand betyder at diverse torrent-egenskaber (f.eks. gemmesti) vil blive besluttet af den tilknyttede kategori - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Super seeding-tilstand @@ -11732,28 +12247,28 @@ Vælg venligst et andet navn og prøv igen. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11761,7 +12276,12 @@ Vælg venligst et andet navn og prøv igen. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Kunne ikke indlæse brugefladetema fra fil: "%1" @@ -11792,20 +12312,21 @@ Vælg venligst et andet navn og prøv igen. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Overføring af præferencer mislykkedes: Webgrænseflade-https, fil: "%1", fejl: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Overførte præferencer: Webgrænseflade-https, eksporterede data til fil: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11813,32 +12334,32 @@ Vælg venligst et andet navn og prøv igen. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11930,72 +12451,72 @@ Vælg venligst et andet navn og prøv igen. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Uacceptabel filtype. Kun almindelig fil er tilladt. - + Symlinks inside alternative UI folder are forbidden. Symlinks i alternativ brugerflademappe er forbudt. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Webgrænseflade: Origin-header og target-oprindelse matcher ikke! Kilde-IP: '%1'. Origin-header: '%2'. Target-oprindelse: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Webgrænseflade: Referer-header og target-oprindelse matcher ikke! Kilde-IP: '%1'. Referer-header: '%2'. Target-oprindelse: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Webgrænseflade: Ugyldig værtsheader, port matcher ikke. Anmodningens kilde-IP: '%1'. Serverport: '%2'. Modtog værtsheader: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Webgrænseflade: Ugyldig værtsheader. Anmodningens kilde-IP: '%1'. Modtog værtsheader: '%2' @@ -12003,125 +12524,133 @@ Vælg venligst et andet navn og prøv igen. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Ukendt fejl + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1 m {1s?} + - + %1m e.g: 10 minutes %1 m - + %1h %2m e.g: 3 hours 5 minutes %1 t %2 m - + %1d %2h e.g: 2 days 10 hours %1 d %2 t - + %1y %2d e.g: 2 years 10 days %1å %2d - - + + Unknown Unknown (size) Ukendt - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent vil nu lukke computeren da alle downloads er færdige. - + < 1m < 1 minute < 1 m diff --git a/src/lang/qbittorrent_de.ts b/src/lang/qbittorrent_de.ts index 9e18d9965..3f9d8d0c8 100644 --- a/src/lang/qbittorrent_de.ts +++ b/src/lang/qbittorrent_de.ts @@ -14,75 +14,75 @@ Über - + Authors Autoren - + Current maintainer Derzeitiger Betreuer - + Greece Griechenland - - + + Nationality: Nationalität: - - + + E-mail: E-Mail: - - + + Name: Name: - + Original author Ursprünglicher Entwickler - + France Frankreich - + Special Thanks Besonderen Dank - + Translators Übersetzer - + License Lizenz - + Software Used Verwendete Software - + qBittorrent was built with the following libraries: qBittorrent wurde unter Verwendung folgender Bibliotheken erstellt: - + Copy to clipboard In die Zwischenablage kopieren @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 - Das qBittorrent Projekt + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 - Das qBittorrent Projekt @@ -166,14 +166,9 @@ Speichern in - + Never show again - Nicht wieder anzeigen - - - - Torrent settings - Torrent-Einstellungen + Nie wieder anzeigen @@ -191,12 +186,12 @@ Torrent starten - + Torrent information Torrent-Information - + Skip hash check Prüfsummenkontrolle überspringen @@ -205,6 +200,11 @@ Use another path for incomplete torrent Einen anderen Pfad für unvollständige Torrents verwenden + + + Torrent options + Torrent-Optionen + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - Wähle den [...] Knopf um Label hinzuzufügen/zu entfernen. + Wähle den [...] Knopf, um Label hinzuzufügen/zu entfernen. @@ -231,75 +231,75 @@ Bedingung für das Anhalten: - - + + None Kein - - + + Metadata received Metadaten erhalten - + Torrents that have metadata initially will be added as stopped. - + Torrents, die anfänglich Metadaten haben, werden als gestoppt hinzugefügt. - - + + Files checked Dateien überprüft - + Add to top of queue In der Warteschlange an erster Stelle hinzufügen - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Wenn ausgewählt, wird die .torrent-Datei unabhängig von den Einstellungen auf der 'Download'-Seite NICHT gelöscht. - + Content layout: Layout für Inhalt: - + Original Original - + Create subfolder Erstelle Unterordner - + Don't create subfolder Erstelle keinen Unterordner - + Info hash v1: Info-Hash v1: - + Size: Größe: - + Comment: Kommentar: - + Date: Datum: @@ -329,151 +329,147 @@ Behalte letzten Speicherpfad - + Do not delete .torrent file .torrent-Datei nicht löschen - + Download in sequential order Der Reihe nach downloaden - + Download first and last pieces first Erste und letzte Teile zuerst laden - + Info hash v2: Info-Hash v2: - + Select All Alle Wählen - + Select None Keine Wählen - + Save as .torrent file... Speichere als .torrent-Datei ... - + I/O Error I/O-Fehler - + Not Available This comment is unavailable Nicht verfügbar - + Not Available This date is unavailable Nicht verfügbar - + Not available Nicht verfügbar - + Magnet link Magnet-Link - + Retrieving metadata... Frage Metadaten ab ... - - + + Choose save path Speicherpfad wählen - + No stop condition is set. Keine Bedingungen für das Anhalten eingestellt. - + Torrent will stop after metadata is received. - Der Torrent wird angehalten wenn Metadaten erhalten wurden. + Der Torrent wird angehalten, wenn Metadaten erhalten wurden. - Torrents that have metadata initially aren't affected. - Torrents, die ursprünglich Metadaten enthalten, sind nicht betroffen. - - - + Torrent will stop after files are initially checked. - Der Torrent wird angehalten sobald die Dateien überprüft wurden. + Der Torrent wird angehalten, sobald die Dateien überprüft wurden. - + This will also download metadata if it wasn't there initially. Dadurch werden auch Metadaten heruntergeladen, wenn sie ursprünglich nicht vorhanden waren. - - + + N/A N/V - + %1 (Free space on disk: %2) %1 (Freier Speicher auf Platte: %2) - + Not available This size is unavailable. Nicht verfügbar - + Torrent file (*%1) Torrent-Datei (*%1) - + Save as torrent file Speichere als Torrent-Datei - + Couldn't export torrent metadata file '%1'. Reason: %2. Die Torrent-Metadaten Datei '%1' konnte nicht exportiert werden. Grund: %2. - + Cannot create v2 torrent until its data is fully downloaded. - Konnte v2-Torrent nicht erstellen solange die Daten nicht vollständig heruntergeladen sind. + Konnte v2-Torrent nicht erstellen, solange die Daten nicht vollständig heruntergeladen sind. - + Filter files... Dateien filtern ... - + Parsing metadata... Analysiere Metadaten ... - + Metadata retrieval complete Abfrage der Metadaten komplett @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Lade Torrent herunter ... Quelle: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Konnte Torrent nicht hinzufügen. Quelle: "%1". Grund: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Das Hinzufügen eines doppelten Torrents wurde erkannt. Quelle: %1. Bestehender Torrent: %2. Ergebnis: %3 - - - + Merging of trackers is disabled Zusammenführen der Tracker ist deaktiviert. - + Trackers cannot be merged because it is a private torrent Tracker können wegen privatem Torrent nicht zusammengeführt werden. - + Trackers are merged from new source Tracker wurden von der neuen Quelle zusammengeführt. + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -526,7 +522,7 @@ Automatic mode means that various torrent properties(eg save path) will be decided by the associated category - Automatischer Modus bedeutet, daß diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. + Automatischer Modus bedeutet, dass diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. @@ -556,7 +552,7 @@ Click [...] button to add/remove tags. - Wähle den [...] Knopf um Label hinzuzufügen/zu entfernen. + Wähle den [...] Knopf, um Label hinzuzufügen/zu entfernen. @@ -596,7 +592,7 @@ Torrent share limits - Verhältnis-Begrenzungen für Torrent + Verhältnis-Begrenzungen für Torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torrents nach Abschluss der Übertragung erneut prüfen - - + + ms milliseconds ms - + Setting Einstellung - + Value Value set for this setting Wert - + (disabled) (deaktiviert) - + (auto) (automatisch) - + + min minutes Min. - + All addresses Alle Adressen - + qBittorrent Section qBittorrent-Abschnitt - - + + Open documentation Dokumentation öffnen - + All IPv4 addresses Alle IPv4-Adressen - + All IPv6 addresses Alle IPv6-Adressen - + libtorrent Section libtorrent-Abschnitt - + Fastresume files Fastresume Dateien - + SQLite database (experimental) SQLite-Datenbank (experimentell) - + Resume data storage type (requires restart) Speichertyp der Fortsetzungsdaten (Programmneustart erforderlich) - + Normal Normal - + Below normal Niedriger als normal - + Medium Medium - + Low Niedrig - + Very low Sehr niedrig - + Physical memory (RAM) usage limit Begrenzung der Nutzung des physischen Speichers (RAM) - + Asynchronous I/O threads Asynchrone E/A-Threads - + Hashing threads Hash-Threads - + File pool size Größe des Datei-Pools - + Outstanding memory when checking torrents Speicher zum Prüfen von Torrents - + Disk cache Festplatten-Cache: - - - - + + + + + s seconds s - + Disk cache expiry interval Ablauf-Intervall für Festplatten-Cache - + Disk queue size Größe der Festplatten-Warteschlange - - + + Enable OS cache Systemcache aktivieren - + Coalesce reads & writes Verbundene Schreib- u. Lesezugriffe - + Use piece extent affinity Aufeinanderfolgende Teile bevorzugen - + Send upload piece suggestions Sende Empfehlungen für Upload-Teil - - - - + + + + + 0 (disabled) 0 (deaktiviert) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Speicherintervall für Fortsetzungsdaten [0: deaktiviert] - + Outgoing ports (Min) [0: disabled] Ausgehende Ports (Min) [0: deaktiviert] - + Outgoing ports (Max) [0: disabled] Ausgehende Ports (Max) [0: deaktiviert] - + 0 (permanent lease) 0 (permanente Miete) - + UPnP lease duration [0: permanent lease] UPnP-Mietdauer [0: permanent] - + Stop tracker timeout [0: disabled] Halte die Tracker-Auszeit an [0: deaktiviert] - + Notification timeout [0: infinite, -1: system default] Benachrichtigungs-Timeout [0: unendlich; -1: Systemstandard] - + Maximum outstanding requests to a single peer Max. ausstehende Anfragen an einen einzelnen Peer - - - - - + + + + + KiB KiB - + (infinite) (unendlich) - + (system default) (Systemstandard) - + + Delete files permanently + Dateien dauerhaft löschen + + + + Move files to trash (if possible) + (Wenn möglich) Dateien in den Papierkorb löschen + + + + Torrent content removing mode + Lösch-Modus für Torrent-Inhalte + + + This option is less effective on Linux Diese Option ist unter Linux weniger effektiv - + Process memory priority Priorität des Arbeitsspeichers - + Bdecode depth limit Bdecode-Tiefenbegrenzung - + Bdecode token limit Bdecode-Token-Limit - + Default Standard - + Memory mapped files Im Speicher abgebildete Dateien - + POSIX-compliant POSIX-konform - + + Simple pread/pwrite + Einfaches pread/pwrite + + + Disk IO type (requires restart) Festplatten-IO-Typ (Neustart benötigt) - - + + Disable OS cache Systemcache deaktivieren - + Disk IO read mode Festplatten IO-Lesemodus - + Write-through Durchschrift - + Disk IO write mode Festplatten IO-Schreibmodus - + Send buffer watermark Schwellenwert für Sendepuffer - + Send buffer low watermark Schwellenwert für niedrigen Sendepuffer - + Send buffer watermark factor Faktor für Schwellenwert bei Sendepuffer - + Outgoing connections per second Ausgehende Verbindungen pro Sekunde - - + + 0 (system default) 0 (Systemstandard) - + Socket send buffer size [0: system default] Socket-Sendepuffergröße [0: Systemvorgabe] - + Socket receive buffer size [0: system default] Socket-Empfangspuffergröße [0: Systemvorgabe] - + Socket backlog size Socket-Backlog-Größe - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Speicherintervall für Statistiken [0: deaktiviert] + + + .torrent file size limit .torrent Dateigrößenbegrenzung - + Type of service (ToS) for connections to peers Servicetyp (ToS) für die Verbindung zu Peers - + Prefer TCP TCP bevorzugen - + Peer proportional (throttles TCP) Gleichmäßig f. Peers (drosselt TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Internationalisierten Domain-Namen (IDN) verwenden - + Allow multiple connections from the same IP address Erlaube mehrere Verbindungen von derselben IP-Adresse - + Validate HTTPS tracker certificates HTTPS-Tracker-Zertifikate überprüfen - + Server-side request forgery (SSRF) mitigation Schutz vor serverseitiger Anforderungsfälschung (SSRF) - + Disallow connection to peers on privileged ports Verbindung zu privilegierten Ports nicht zulassen - + It appends the text to the window title to help distinguish qBittorent instances - + Der Text wird an den Fenstertitel angehängt, um qBittorent-Instanzen zu unterscheiden - + Customize application instance name - + Name der Anwendungsinstanz anpassen - + It controls the internal state update interval which in turn will affect UI updates Es steuert das Intervall für die interne Statusaktualisierung, was sich auch auf die Aktualisierungen der Benutzeroberfläche auswirkt. - + Refresh interval Aktualisierungsintervall - + Resolve peer host names Hostnamen der Peers auflösen - + IP address reported to trackers (requires restart) Angegebene IP-Adresse bei Trackern (Neustart benötigt) - + + Port reported to trackers (requires restart) [0: listening port] + Port, der an die Tracker gemeldet wird (Neustart erforderlich) [0: Port, auf dem gelauscht wird] + + + Reannounce to all trackers when IP or port changed Erneute Benachrichtigung an alle Tracker, wenn IP oder Port geändert wurden - + Enable icons in menus Icons in Menüs anzeigen - + + Attach "Add new torrent" dialog to main window + Dialog "Neuen Torrent hinzufügen" an das Hauptfenster anhängen + + + Enable port forwarding for embedded tracker Portweiterleitung für eingebetteten Tracker aktivieren - + Enable quarantine for downloaded files Aktiviere Quarantäne-Option für heruntergeladene Dateien - + Enable Mark-of-the-Web (MOTW) for downloaded files Aktiviere 'Mark-of-the-Web' (MOTW) für heruntergeladene Dateien - - (Auto detect if empty) - (Automatische Erkennung wenn leer) + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Beeinflusst die Zertifikatsvalidierung und Aktivitäten außerhalb des Torrent-Protokolls (z. B. RSS-Feeds, Programmaktualisierungen, Torrent-Dateien, GeoIP-DB usw.) - + + Ignore SSL errors + SSL-Fehler ignorieren + + + + (Auto detect if empty) + (Automatische Erkennung, wenn leer) + + + Python executable path (may require restart) Pfad für die Python Ausführungsdatei (ev. Neustart erforderlich) - + + Start BitTorrent session in paused state + Starte die BitTorrent-Sitzung mit angehaltenen Torrents + + + + sec + seconds + Sek. + + + + -1 (unlimited) + -1 (unbegrenzt) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Zeitüberschreitung beim Herunterfahren der BitTorrent-Sitzung [-1: unbegrenzt] + + + Confirm removal of tracker from all torrents Entfernen des Tracker von allen Torrents bestätigen - + Peer turnover disconnect percentage Peer-Verbindungsabbruch-Prozentsatz - + Peer turnover threshold percentage Peer-Verbindungsabbruch-Schwelle - + Peer turnover disconnect interval Peer-Umsatz-Trennungsintervall - + Resets to default if empty - Standardeinstellung wenn leer + Standardeinstellung, wenn leer - + DHT bootstrap nodes DHT-Bootstrap-Knotenpunkte - + I2P inbound quantity - I2P-Eingangsmenge + i2p eingehende Tunnelanzahl - + I2P outbound quantity - I2P-Ausgangsmenge + i2p ausgehende Tunnelanzahl - + I2P inbound length I2P-EIngangslänge - + I2P outbound length I2P-Ausgangslänge - + Display notifications Benachrichtigungen anzeigen - + Display notifications for added torrents Benachrichtigungen für hinzugefügte Torrents anzeigen - + Download tracker's favicon Tracker-Favicons herunterladen - + Save path history length Länge der Speicherpfad-Historie - + Enable speed graphs Geschwindigkeits-Grafiken einschalten - + Fixed slots Feste Slots - + Upload rate based Basierend auf Uploadrate - + Upload slots behavior Verhalten für Upload-Slots - + Round-robin Ringverteilung - + Fastest upload Schnellster Upload - + Anti-leech Gegen Sauger - + Upload choking algorithm Regel für Upload-Drosselung - + Confirm torrent recheck Überprüfung des Torrents bestätigen - + Confirm removal of all tags Entfernen aller Labels bestätigen - + Always announce to all trackers in a tier Immer bei allen Trackern einer Ebene anmelden - + Always announce to all tiers Immer bei allen Ebenen anmelden - + Any interface i.e. Any network interface Beliebiges Interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP Algorithmus für gemischten Modus - + Resolve peer countries Herkunftsländer der Peers auflösen - + Network interface Netzwerk Interface - + Optional IP address to bind to Optionale IP-Adresse binden an - + Max concurrent HTTP announces Max. gleichzeitige HTTP-Ansagen - + Enable embedded tracker Eingebetteten Tracker aktivieren - + Embedded tracker port Port des eingebetteten Trackers + + AppController + + + + Invalid directory path + Ungültiger Verzeichnis-Pfad + + + + Directory does not exist + Verzeichnis existiert nicht + + + + Invalid mode, allowed values: %1 + Ungültiger Modus; erlaubte Werte: %1 + + + + cookies must be array + Cookies müssen eine Anordnung sein + + Application - + Running in portable mode. Auto detected profile folder at: %1 Laufe im portablen Modus. Automatisch erkannter Profilordner: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Redundantes Befehlszeilen-Flag erkannt: "%1". Der portable Modus erfordert ein relativ schnelles Wiederaufnehmen. - + Using config directory: %1 Verwende Konfigurations-Verzeichnis: %1 - + Torrent name: %1 Name des Torrent: %1 - + Torrent size: %1 Größe des Torrent: %1 - + Save path: %1 Speicherpfad: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Der Torrent wurde in %1 heruntergeladen. - + + Thank you for using qBittorrent. Danke für die Benutzung von qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, Mailnachricht wird versendet - + Add torrent failed Hinzufügen vom Torrent fehlgeschlagen - + Couldn't add torrent '%1', reason: %2. Konnte Torrent '%1' nicht hinzufügen. Grund: %2. - + The WebUI administrator username is: %1 Der Administrator-Name für das Webinterface lautet: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Es ist kein Administrator-Name für das Webinterface vergeben. Ein temporäres Passwort für diese Sitzung wird erstellt: %1 - + You should set your own password in program preferences. Es sollte ein eigenes Passwort in den Programmeinstellungen vergeben werden. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Das Webinterface ist deaktiviert! Die Konfigurationsdatei manuell editieren um es zu aktivieren. - + Running external program. Torrent: "%1". Command: `%2` Externes Programm läuft. Torrent: "%1". Befehl: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Konnte externes Programm nicht starten. Torrent: "%1". Befehl: `%2` - + Torrent "%1" has finished downloading Torrent '%1' wurde vollständig heruntergeladen - + WebUI will be started shortly after internal preparations. Please wait... Das Webinterface startet gleich nach ein paar internen Vorbereitungen. Bitte warten ... - - + + Loading torrents... Lade Torrents ... - + E&xit &Beenden - + I/O Error i.e: Input/Output Error I/O-Fehler - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Grund: '%2' - + Torrent added Torrent hinzugefügt - + '%1' was added. e.g: xxx.avi was added. '%1' wurde hinzugefügt. - + Download completed Download abgeschlossen - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 gestartet. Prozess-ID: %2 - + + This is a test email. + Das ist eine Test-Email. + + + + Test email + Test-Email + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' wurde vollständig heruntergeladen. - + Information Informationen - + To fix the error, you may need to edit the config file manually. - Um den Fehler zu beheben ist es erforderlich die Konfigurationsdatei händisch zu bearbeiten. + Um den Fehler zu beheben, ist es erforderlich die Konfigurationsdatei händisch zu bearbeiten. - + To control qBittorrent, access the WebUI at: %1 - Um qBittorrent zu steuern benutze das Webinterface mit: %1 + Um qBittorrent zu steuern, benutze das Webinterface mit: %1 - + Exit Beenden - + Recursive download confirmation Rekursiven Download bestätigen - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Der Torrent '%1' enthält weitere .torrent-Dateien. Sollen diese auch heruntergeladen werden? - + Never Niemals - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekursives Herunterladen einer .torrent-Datei innerhalb eines Torrents. Quell-Torrent: "%1". Datei: "%2". - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Das Limit für die Nutzung des physischen Speichers (RAM) konnte nicht gesetzt werden. Fehlercode: %1. Fehlermeldung: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Konnte die harte Grenze für die Nutzung des physischen Speichers (RAM) nicht setzen. Angeforderte Größe: %1. Harte Systemgrenze: %2. Fehlercode: %3. Fehlermeldung: "%4" - + qBittorrent termination initiated Abbruch von qBittorrent eingeleitet - + qBittorrent is shutting down... qBittorrent wird beendet ... - + Saving torrent progress... Torrent-Fortschritt wird gespeichert - + qBittorrent is now ready to exit qBittorrent kann nun beendet werden @@ -1609,12 +1715,12 @@ Grund: '%2' Priorität: - + Must Not Contain: Enthält nicht: - + Episode Filter: Folgenfilter: @@ -1622,7 +1728,7 @@ Grund: '%2' Smart Episode Filter will check the episode number to prevent downloading of duplicates. Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also support - as a separator) - Der Smart-Folgenfilter überprüft die Folgennummer um das doppelte Herunterladen zu vermeiden. + Der Smart-Folgenfilter überprüft die Folgennummer, um das doppelte Herunterladen zu vermeiden. Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Formate werden auch unterstützt, allerdings als Trennung) @@ -1659,271 +1765,271 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form &Import... - &Importieren... + &Importieren ... &Export... - &Exportieren... + &Exportieren ... - + Matches articles based on episode filter. Wählt Artikel gemäß Folgenfilter aus. - + Example: Beispiel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match passt zu Folge 2, 5, 8 bis 15, 30 und weiteren Folgen von Staffel eins - + Episode filter rules: Folgenfilterregeln: - + Season number is a mandatory non-zero value Staffel-Nummer ist zwingend ein Wert ungleich 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 - + Episode number is a mandatory positive value Folgen-Nummer ist zwingend ein positiver Wert - + Rules Regeln - + Rules (legacy) Regeln (Historie) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Endloser Bereich: <b>1x25-;</b> passt zu Folge 25 und allen folgenden Folgen von Staffel eins sowie aller Folgen weiterer Staffeln - + Last Match: %1 days ago Letzte Übereinstimmung: vor %1 Tagen - + Last Match: Unknown Letzte Übereinstimmung: Unbekannt - + New rule name Name der neuen Regel - + Please type the name of the new download rule. Bitte einen Namen für die neue Downloadregel eingeben. - - + + Rule name conflict Konflikt mit Regelnamen - - + + A rule with this name already exists, please choose another name. - Eine Regel mit diesem Namen existiert bereits bitte einen anderen Namen wählen. + 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 gewählten Downloadregeln wirklich entfernt werden? - + Rule deletion confirmation Regellöschung bestätigen - + Invalid action Ungültige Aktion - + The list is empty, there is nothing to export. Die Liste ist leer, es gibt nichts zu exportieren. - + Export RSS rules RSS-Regeln exportieren - + I/O Error I/O Fehler - + Failed to create the destination file. Reason: %1 Fehler beim Erstellen der Zieldatei. Grund: %1 - + Import RSS rules RSS-Regeln importieren - + Failed to import the selected rules file. Reason: %1 Import der ausgewählten Regeldatei fehlgeschlagen. Grund: %1 - + Add new rule... Neue Regel hinzufügen ... - + Delete rule Regel löschen - + Rename rule... Regel umbenennen ... - + Delete selected rules Gewählte Regeln löschen - + Clear downloaded episodes... - Entferne bereits heruntergeladene Folgen... + Entferne bereits heruntergeladene Folgen ... - + Rule renaming Regelumbenennung - + Please type the new rule name Bitte einen Namen für die neue Regel eingeben - + Clear downloaded episodes Entferne bereits heruntergeladene Folgen - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Soll wirklich die Liste mit heruntergeladenen Folgen für die gewählte Regel entfernt werden? - + Regex mode: use Perl-compatible regular expressions Regex-Modus: Perl-kompatible reguläre Ausdrücke verwenden - - + + Position %1: %2 Position %1: %2 - + Wildcard mode: you can use Platzhaltermodus: Sie können Folgendes verwenden - - + + Import error Fehler beim Import - + Failed to read the file. %1 Konnte die Datei nicht lesen. %1 - + ? to match any single character ? um mit irgendeinem Zeichen übereinzustimmen - + * to match zero or more of any characters * um mit keinem oder irgendwelchen Zeichen übereinzustimmen - + Whitespaces count as AND operators (all words, any order) Leerzeichen zählen als UND-Operatoren (alle Wörter, beliebige Reihenfolge) - + | is used as OR operator | wird als ODER-Operator verwendet - + If word order is important use * instead of whitespace. - Wenn die Wortreihenfolge wichtig ist * anstelle von Leerzeichen verwenden + Wenn die Wortreihenfolge wichtig ist, * anstelle von Leerzeichen verwenden - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Ein Ausdruck mit einer leeren Klausel %1 (z.B. %2) - + will match all articles. wird mit allen Artikeln übereinstimmen. - + will exclude all articles. wird alle Artikel ausschließen. @@ -1965,7 +2071,7 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Kann Fortsetzungs-Verzeichnis nicht erstellen: "%1" @@ -1975,28 +2081,38 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Fortsetzungsdaten können nicht analysiert werden: Ungültiges Format - - + + Cannot parse torrent info: %1 Torrent-Infos können nicht analysiert werden: %1 - + Cannot parse torrent info: invalid format Torrent-Infos können nicht analysiert werden: Ungültiges Format - + Mismatching info-hash detected in resume data Nicht übereinstimmender Info-Hash in den Resume-Daten entdeckt - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Die Torrent-Metadaten konnte nicht nach '%1' gespeichert werden. Fehler: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Speichern der Fortsetzungsdaten nach '%1' fehlgeschlagen. Fehler: %2. @@ -2007,16 +2123,17 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form + Cannot parse resume data: %1 Fortsetzungsdaten können nicht analysiert werden: %1 - + Resume data is invalid: neither metadata nor info-hash was found Fortsetzungsdaten sind ungültig: weder Metadaten noch Info-Hash wurden gefunden - + Couldn't save data to '%1'. Error: %2 Speichern der Daten nach '%1' fehlgeschlagen. Fehler: %2 @@ -2024,38 +2141,60 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form BitTorrent::DBResumeDataStorage - + Not found. Nicht gefunden. - + Couldn't load resume data of torrent '%1'. Error: %2 Laden der Fortsetzungsdaten von Torrent '%1' fehlgeschlagen. Fehler: %2 - - + + Database is corrupted. Datenbank ist fehlerhaft. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Der Write-Ahead Logging (WAL) Protokollmodus konnte nicht aktiviert werden. Fehler: %1. - + Couldn't obtain query result. Das Abfrageergebnis konnte nicht abgerufen werden. - + WAL mode is probably unsupported due to filesystem limitations. Der WAL Modus ist wahrscheinlich aufgrund von Dateisystem Limitierungen nicht unterstützt. - + + + Cannot parse resume data: %1 + Fortsetzungsdaten können nicht analysiert werden: %1 + + + + + Cannot parse torrent info: %1 + Torrent-Infos können nicht analysiert werden: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Konnte Vorgang nicht starten. Fehler: %1 @@ -2063,22 +2202,22 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Konnte Torrent-Metadaten nicht speichern. Fehler: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Starten der Fortsetzungsdaten von Torrent '%1' fehlgeschlagen. Fehler: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Löschen der Fortsetzungsdaten von Torrent '%1' fehlgeschlagen. Fehler: %2 - + Couldn't store torrents queue positions. Error: %1 Konnte Position der Torrent-Warteschlange nicht speichern. Fehler: %1 @@ -2086,457 +2225,503 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Unterstützung der verteilten Hash-Tabelle (DHT): %1 - - - - - - - - - + + + + + + + + + ON EIN - - - - - - - - - + + + + + + + + + OFF AUS - - + + Local Peer Discovery support: %1 Unterstützung von Lokalen Peers (LPD): %1 - + Restart is required to toggle Peer Exchange (PeX) support Neustart erforderlich, um Peer-Exchange-Unterstützung (PeX) zu aktivieren - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrent konnte nicht fortgesetzt werden. Torrent: "%1". Grund: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Konnte Torrent nicht fortsetzen: ungültige Torrent-ID entdeckt. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Ungültige Daten entdeckt: Kategorie fehlt in der Konfigurationsdatei. Die Kategorie wird wiederhergestellt, aber ihre Einstellungen werden auf die Standardwerte zurückgesetzt. Torrent: "%1". Kategorie: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Ungültige Daten entdeckt: ungültige Kategorie. Torrent: "%1". Kategorie: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Es wurde eine Unstimmigkeit zwischen den Speicherpfaden der wiederhergestellten Kategorie und dem aktuellen Speicherpfad des Torrent festgestellt. Der Torrent wird jetzt in den manuellen Modus umgeschaltet. Torrent: "%1". Kategorie: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Ungültige Daten entdeckt: Label fehlt in der Konfigurationsdatei. Das Label wird wiederhergestellt. Torrent: "%1". Label: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Ungültige Daten entdeckt: ungültiges Label. Torrent: "%1". Label: "%2" - + System wake-up event detected. Re-announcing to all the trackers... System aus dem Ruhezustand erwacht. Erneute Ankündigung an alle Tracker ... - + Peer ID: "%1" Peer-ID: "%1" - + HTTP User-Agent: "%1" HTTP Benutzer-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peer-Exchange (PeX) Unterstützung %1 - - + + Anonymous mode: %1 Anonymer Modus: %1 - - + + Encryption support: %1 Verschlüsselungsunterstützung: %1 - - + + FORCED ERZWUNGEN - + Could not find GUID of network interface. Interface: "%1" Die GUID der Netzwerkadresse wurde nicht gefunden. Schnittstelle: "%1" - + Trying to listen on the following list of IP addresses: "%1" Es wird versucht auf folgender Liste von IP-Adressen zu lauschen: "%1" - + Torrent reached the share ratio limit. Der Torrent hat das Limit für das Shareverhältnis erreicht. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent gelöscht. - - - - - - Removed torrent and deleted its content. - Torrent und seine Inhalte gelöscht. - - - - - - Torrent paused. - Torrent pausiert. - - - - - + Super seeding enabled. Super-Seeding aktiviert. - + Torrent reached the seeding time limit. Torrent hat das Zeitlimit für das Seeding erreicht. - + Torrent reached the inactive seeding time limit. Der Torrent hat die Grenze der inaktiven Seed-Zeit erreicht. - + Failed to load torrent. Reason: "%1" Der Torrent konnte nicht geladen werden. Grund: "%1" - + I2P error. Message: "%1". I2P-Fehler. Nachricht: "%1". - + UPnP/NAT-PMP support: ON UPnP / NAT-PMP Unterstützung: EIN - + + Saving resume data completed. + Speicherung der Fortsetzungsdaten abgeschlossen. + + + + BitTorrent session successfully finished. + BitTorrent-Sitzung erfolgreich beendet. + + + + Session shutdown timed out. + Das Herunterfahren der Sitzung wurde abgebrochen. + + + + Removing torrent. + Entferne Torrent. + + + + Removing torrent and deleting its content. + Torrent und seine Inhalte werden gelöscht. + + + + Torrent stopped. + Torrent angehalten. + + + + Torrent content removed. Torrent: "%1" + Inhalt des Torrent entfernt. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Inhalt des Torrent konnte nicht gelöscht werden. Torrent: "%1". Fehler: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent entfernt. Torrent: "%1" + + + + Merging of trackers is disabled + Zusammenführen der Tracker ist deaktiviert. + + + + Trackers cannot be merged because it is a private torrent + Tracker können wegen privatem Torrent nicht zusammengeführt werden. + + + + Trackers are merged from new source + Tracker wurden von der neuen Quelle zusammengeführt. + + + UPnP/NAT-PMP support: OFF UPnP / NAT-PMP Unterstützung: AUS - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrent konnte nicht exportiert werden. Torrent: "%1". Ziel: "%2". Grund: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Speicherung der Fortsetzungsdaten abgebrochen. Anzahl der ausstehenden Torrents: %1 - + The configured network address is invalid. Address: "%1" Die konfigurierte Netzwerkadresse ist ungültig. Adresse: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Die konfigurierte Netzwerkadresse zum Lauschen konnte nicht gefunden werden. Adresse: "%1" - + The configured network interface is invalid. Interface: "%1" Die konfigurierte Netzwerkadresse ist ungültig. Schnittstelle: "%1" - + + Tracker list updated + Tracker-Liste aktualisiert + + + + Failed to update tracker list. Reason: "%1" + Konnte Tracker-Liste nicht aktualisieren. Grund: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Ungültige IP-Adresse beim Anwenden der Liste der gebannten IP-Adressen zurückgewiesen. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Tracker wurde dem Torrent hinzugefügt. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tracker wurde vom Torrent entfernt. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL-Seed wurde dem Torrent hinzugefügt. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL-Seed aus dem Torrent entfernt. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent pausiert. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Teildatei konnte nicht entfernt werden. Torrent: "%1". Grund: "%2". - + Torrent resumed. Torrent: "%1" Torrent fortgesetzt. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent erfolgreich heruntergeladen. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Verschieben des Torrent abgebrochen. Torrent: "%1". Quelle: "%2". Ziel: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent angehalten. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Torrent-Verschiebung konnte nicht in die Warteschlange gestellt werden. Torrent: "%1". Quelle: "%2". Ziel: "%3". Grund: Der Torrent wird gerade zum Zielort verschoben. - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Torrent-Verschiebung konnte nicht in die Warteschlange gestellt werden. Torrent: "%1". Quelle: "%2". Ziel: "%3". Grund: Beide Pfade zeigen auf den gleichen Ort - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrent-Verschiebung in der Warteschlange. Torrent: "%1". Quelle: "%2". Ziel: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Starte Torrent-Verschiebung. Torrent: "%1". Ziel: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Konnte die Konfiguration der Kategorien nicht speichern. Datei: "%1". Fehler: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Die Konfiguration der Kategorien konnte nicht analysiert werden. Datei: "%1". Fehler: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Die IP-Filterdatei wurde erfolgreich analysiert. Anzahl der angewandten Regeln: %1 - + Failed to parse the IP filter file Konnte die IP-Filterdatei nicht analysieren - + Restored torrent. Torrent: "%1" Torrent wiederhergestellt. Torrent: "%1" - + Added new torrent. Torrent: "%1" Neuer Torrent hinzugefügt. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent mit Fehler. Torrent: "%1". Fehler: "%2" - - - Removed torrent. Torrent: "%1" - Torrent entfernt. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent und seine Inhalte gelöscht. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent fehlen SSL-Parameter. Torrent: "%1". Nachricht: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Dateifehlerwarnung. Torrent: "%1". Datei: "%2". Grund: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP: Fehler beim Portmapping. Meldung: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Erfolgreiches UPnP/NAT-PMP Portmapping. Meldung: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP-Filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). Gefilterter Port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). Bevorzugter Port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL-Seed-Verbindung gescheitert. Torrent: "%1". URL: "%2". Fehler: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" Bei der BitTorrent-Sitzung ist ein schwerwiegender Fehler aufgetreten. Grund: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 Proxy Fehler. Adresse: %1. Nachricht: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 Beschränkungen für gemischten Modus - + Failed to load Categories. %1 Konnte die Kategorien nicht laden. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Konnte die Kategorie-Konfiguration nicht laden. Datei: "%1". Fehler: "Ungültiges Datenformat" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent entfernt aber seine Inhalte und/oder Teildateien konnten nicht gelöscht werden. Torrent: "%1". Fehler: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 ist deaktiviert - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 ist deaktiviert - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - DNS-Lookup vom URL-Seed fehlgeschlagen. Torrent: "%1". URL: "%2". Fehler: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Fehlermeldung vom URL-Seed erhalten. Torrent: "%1". URL: "%2". Nachricht: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Lausche erfolgreich auf dieser IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Konnte auf der IP nicht lauschen. IP: "%1". Port: "%2/%3". Grund: "%4" - + Detected external IP. IP: "%1" Externe IP erkannt. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Fehler: Interne Warnungswarteschlange voll und Warnungen wurden gelöscht. Möglicherweise ist die Leistung beeinträchtigt. Abgebrochener Alarmtyp: "%1". Nachricht: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent erfolgreich verschoben. Torrent: "%1". Ziel: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrent konnte nicht verschoben werden. Torrent: "%1". Quelle: "%2". Ziel: "%3". Grund: "%4" @@ -2546,19 +2731,19 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Failed to start seeding. - + Konnte mit dem Seeden nicht beginnen. BitTorrent::TorrentCreator - + Operation aborted Vorgang abgebrochen - - + + Create new torrent file failed. Reason: %1. Erstellung der neuen Torrent-Datei fehlgeschlagen. Grund: %1. @@ -2566,67 +2751,67 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Konnte Peer '%1' nicht zum Torrent '%2' hinzufügen. Grund: %3 - + Peer "%1" is added to torrent "%2" Peer '%1' wurde dem Torrent '%2' hinzugefügt - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Unerwartete Daten entdeckt. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Konnte nicht in Datei schreiben. Grund: "%1". Der Torrent ist jetzt im Modus "nur seeden". - + Download first and last piece first: %1, torrent: '%2' Erste und letzte Teile zuerst laden: %1, Torrent: '%2' - + On Ein - + Off Aus - + Failed to reload torrent. Torrent: %1. Reason: %2 Torrent konnte nicht wieder geladen werden. Torrent: %1. Grund: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Erstellen der Fortsetzungsdatei fehlgeschlagen. Torrent: "%1". Grund: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrent konnte nicht wiederhergestellt werden. Entweder wurden Dateien verschoben oder auf den Speicher kann nicht zugegriffen werden. Torrent: "%1". Grund: "%2" - + Missing metadata Fehlende Metadaten - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Umbenennen der Datei fehlgeschlagen. Torrent: "%1", Datei: "%2", Grund: "%3" - + Performance alert: %1. More info: %2 Leistungsalarm: %1. Mehr Info: %2 @@ -2647,189 +2832,189 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' benötigt folgende Syntax: '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' benötigt folgende Syntax: '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Erwarte Ganzzahl in Umgebungsvariable '%1', bekam jedoch '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' benötigt folgende Syntax: '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Erwartete %1 in Umgebungsvariable '%2', bekam jedoch '%3' - - + + %1 must specify a valid port (1 to 65535). %1 muss einen gültigen Port (zwischen 1 und 65535) angeben. - + Usage: Verwendung: - + [options] [(<filename> | <url>)...] [Optionen] [(<filename> | <url>)...] - + Options: Optionen: - + Display program version and exit Zeige die Programmversion und beende. - + Display this help message and exit Zeige diese Hilfe und beende. - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' benötigt folgende Syntax: '%1=%2' + + + Confirm the legal notice Bestätige den rechtlichen Hinweis - - + + port Port - + Change the WebUI port Ändere den Webinterface-Port - + Change the torrenting port Ändere den Torrent-Port - + Disable splash screen Deaktiviere Splash Screen - + Run in daemon-mode (background) Laufe im Hintergrund als Dienst - + dir Use appropriate short form or abbreviation of "directory" Verz. - + Store configuration files in <dir> Konfigurationsdateien in <dir> speichern - - + + name Name - + Store configuration files in directories qBittorrent_<name> Konfigurationsdateien in Verzeichnis qBittorrent_<name> speichern - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Modifiziere die libtorrent-Fortsetzungsdateien und mache die Pfade relativ zum Profilverzeichnis - + files or URLs Dateien oder URLs - + Download the torrents passed by the user Lade die vom Benutzer angebenen Torrents herunter - + Options when adding new torrents: Sobald ein Torrent hinzugefügt wird: - + path Pfad - + Torrent save path Speicherpfad für Torrent - - Add torrents as started or paused - Neue Torrents starten oder pausieren + + Add torrents as running or stopped + Torrents als gestartet oder angehalten hinzufügen - + Skip hash check Prüfsummenkontrolle überspringen - + Assign torrents to category. If the category doesn't exist, it will be created. - Weise Torrents Kategorien zu. Wenn die Kategorie nicht existiert wird sie erstellt. + Weise Torrents Kategorien zu. Wenn die Kategorie nicht existiert, wird sie erstellt. - + Download files in sequential order Der Reihe nach downloaden - + Download first and last pieces first Erste und letzte Teile zuerst laden - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Lege fest ob der "Neuen Torrent hinzufügen"-Dialog beim Hinzufügen eines Torrents startet. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - Optionswerte können von Umgebungsvariablen geliefert werden. Für eine Option mit dem Namen 'parameter-name' lautet der Name "QBT_PARAMETER_NAME' (in Großbuchstaben, '-' ersetzt durch '_'). Um die Werte zu akzeptieren, die Variable auf '1' oder 'WAHR' setzen. Z.B. um den Startbildschirm zu deaktivieren: + Optionswerte können von Umgebungsvariablen geliefert werden. Für eine Option mit dem Namen 'parameter-name' lautet der Name "QBT_PARAMETER_NAME' (in Großbuchstaben, '-' ersetzt durch '_'). Um die Werte zu akzeptieren, die Variable auf '1' oder 'WAHR' setzen. Z.B., um den Startbildschirm zu deaktivieren: - + Command line parameters take precedence over environment variables Kommandozeilenparameter haben Vorrang vor Umgebungsvariablen - + Help Hilfe @@ -2881,13 +3066,13 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form - Resume torrents - Torrents fortsetzen + Start torrents + Torrents starten - Pause torrents - Torrents pausieren + Stop torrents + Torrents anhalten @@ -2898,15 +3083,20 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form ColorWidget - + Edit... Bearbeiten ... - + Reset Zurücksetzen + + + System + System + CookiesDialog @@ -2947,12 +3137,12 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form CustomThemeSource - + Failed to load custom theme style sheet. %1 Konnte die angepasste Themen-Stil Datei nicht laden. %1 - + Failed to load custom theme colors. %1 Konnte die angepassten Themen-Farben nicht laden. %1 @@ -2960,7 +3150,7 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form DefaultThemeSource - + Failed to load default theme colors. %1 Konnte die Standard Themen-Farben nicht laden. %1 @@ -2979,23 +3169,23 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form - Also permanently delete the files - Die Dateien auch dauerhaft löschen + Also remove the content files + Auch die Inhaltsdateien dauerhaft löschen - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Soll '%1' wirklich von der Transfer-Liste gelöscht werden? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Sollen diese %1 Torrents wirklich von der Transfer-Liste gelöscht werden? - + Remove Entfernen @@ -3008,12 +3198,12 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Von URLs laden - + Add torrent links Torrent-Links hinzufügen - + One link per line (HTTP links, Magnet links and info-hashes are supported) Ein Link pro Zeile (HTTP-Links, Magnet-Links und Info-Hashes werden unterstützt) @@ -3023,12 +3213,12 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Herunterladen - + No URL entered Keine URL eingegeben - + Please type at least one URL. Bitte mindestens eine URL eingeben. @@ -3187,25 +3377,48 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Syntax-Fehler: Die Filterdatei ist keine gültige PeerGuardian P2B-Datei. + + FilterPatternFormatMenu + + + Pattern Format + Vorlagenformat + + + + Plain text + Nur Text + + + + Wildcards + Wildcards + + + + Regular expression + Regulärer Ausdruck + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Lade Torrent herunter ... Quelle: "%1" - - Trackers cannot be merged because it is a private torrent - Tracker können wegen privatem Torrent nicht zusammengeführt werden. - - - + Torrent is already present Dieser Torrent ist bereits vorhanden - + + Trackers cannot be merged because it is a private torrent. + Tracker können wegen privatem Torrent nicht zusammengeführt werden. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' befindet sich bereits in der Liste der Downloads. Sollen die Tracker von der neuen Quelle zusammengeführt werden? @@ -3213,38 +3426,38 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form 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 - + Database corrupted: no data section found. Fehlerhafte Datenbank: Kein Datenabschnitt gefunden. @@ -3252,17 +3465,17 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-Anforderungsgröße überschreitet Limit, schließe Anschluß. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Schlechte Http-Anforderungsmethode, Socket wird geschlossen. IP: %1. Methode: "%2" - + Bad Http request, closing socket. IP: %1 Schlechte HTTP-Anforderung, schließe Anschluß. IP: %1 @@ -3303,26 +3516,60 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form IconWidget - + Browse... Durchsuchen ... - + Reset Zurücksetzen - + Select icon Icon wählen - + Supported image files Unterstützte Bilddateien + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Das Power Management hat eine geeignete D-Bus-Schnittstelle gefunden. Schnittstelle: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Fehler im Power Management. Aktion: %1. Fehler: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Unerwarteter Fehler im Power Management. Status: %1. Fehler: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3333,7 +3580,7 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form 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. - qBittorrent ist ein Filesharing Programm. Sobald ein Torrent im Programm läuft wird der Inhalt auch anderen durch Upload zur Verfügung gestellt. Das Teilen jeglicher Inhalte geschieht auf eigene Verantwortung. + qBittorrent ist ein Filesharing Programm. Sobald ein Torrent im Programm läuft, wird der Inhalt auch anderen durch Upload zur Verfügung gestellt. Das Teilen jeglicher Inhalte geschieht auf eigene Verantwortung. @@ -3354,13 +3601,13 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 wurde blockiert. Grund: %2. - + %1 was banned 0.0.0.0 was banned %1 wurde gebannt @@ -3369,60 +3616,60 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 ist ein unbekannter Kommandozeilen-Parameter. - - + + %1 must be the single command line parameter. %1 muss der einzige Kommandozeilen-Parameter sein. - + Run application with -h option to read about command line parameters. - Programm mit -h starten um Info über Kommandozeilen-Parameter zu erhalten. + Programm mit -h starten, um Info über Kommandozeilen-Parameter zu erhalten. - + Bad command line Falsche Kommandozeile - + Bad command line: Falsche Kommandozeile: - + An unrecoverable error occurred. Ein nicht behebbarer Fehler ist aufgetreten. + - qBittorrent has encountered an unrecoverable error. - qBittorrent ist auf einen nicht behebbarer Fehler gestoßen. + qBittorrent ist auf einen nicht behebbaren Fehler gestoßen. - + You cannot use %1: qBittorrent is already running. %1 kann nicht verwendet werden: qBittorrent läuft bereits. - + Another qBittorrent instance is already running. Eine läuft bereits ein andere qBittorrent-Instanz. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Unerwartete qBittorrent-Instanz gefunden, diese wird daher beendet. Aktuelle Prozess-ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Fehler beim Wechsels des Programms in den Hintergrund. Grund: "%1". Fehler-Code: %2. @@ -3435,609 +3682,681 @@ Er unterstützt die Formate: S01E01, 1x1, 2017.12.31 und 31.12.2017 (Datums-Form B&earbeiten - + &Tools &Werkzeuge - + &File &Datei - + &Help &Hilfe - + On Downloads &Done Wenn &Downloads abgeschlossen sind - + &View &Ansicht - + &Options... &Optionen ... - - &Resume - Fo&rtsetzen - - - + &Remove Entfe&rnen - + Torrent &Creator &Torrent-Ersteller - - + + Alternative Speed Limits Alternative Geschwindigkeitsbegrenzungen - + &Top Toolbar Obere Werkzeugleis&te - + Display Top Toolbar Obere Werkzeugleiste anzeigen - + Status &Bar Status &Bar - + Filters Sidebar Filter Seitenleiste - + 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 - + Do&nate! E&ntwicklung unterstützen! - + + Sh&utdown System + System her&unterfahren + + + &Do nothing Nichts ändern - + Close Window Fenster schließen - - R&esume All - Alle forts&etzen - - - + Manage Cookies... Cookies verwalten ... - + Manage stored network cookies Gespeicherte Netzwerk-Cookies verwalten ... - + Normal Messages Normale Meldungen - + Information Messages Informations-Meldungen - + Warning Messages Warnmeldungen - + Critical Messages Kritische Meldungen - + &Log Protoko&ll - - Set Global Speed Limits... - Globale Geschwindigkeitsbegrenzungen einstellen... + + Sta&rt + Sta&rt - + + Sto&p + An&halten + + + + R&esume Session + Sitzung forts&etzen + + + + Pau&se Session + &Sitzung anhalten + + + + Set Global Speed Limits... + Globale Geschwindigkeitsbegrenzungen einstellen ... + + + Bottom of Queue Ans Ende der Warteschlange - + Move to the bottom of the queue An das Ende der Warteschlange verschieben - + Top of Queue An Anfang der Warteschlange - + Move to the top of the queue An den Anfang der Warteschlange verschieben - + Move Down Queue In der Warteschlange nach unten - + Move down in the queue In der Warteschlange nach unten - + Move Up Queue In der Warteschlange nach oben - + Move up in the queue In der Warteschlange nach oben - + &Exit qBittorrent qBittorrent b&eenden - + &Suspend System &Standbymodus - + &Hibernate System &Ruhezustand - - S&hutdown System - System &herunterfahren - - - + &Statistics &Statistiken - + Check for Updates Auf Aktualisierungen prüfen - + Check for Program Updates Auf Programmaktualisierungen prüfen - + &About &Über - - &Pause - &Pausieren - - - - P&ause All - A&lle anhalten - - - + &Add Torrent File... - Torrent-D&atei hinzufügen... + Torrent-D&atei hinzufügen ... - + Open Öffnen - + E&xit &Beenden - + Open URL URL öffnen - + &Documentation &Dokumentation - + Lock Sperren - - - + + + Show Anzeigen - + Check for program updates Auf Programm-Updates prüfen - + Add Torrent &Link... - Torrent-&Link hinzufügen... + Torrent-&Link hinzufügen ... - + If you like qBittorrent, please donate! - Bitte unterstützen Sie qBittorrent wenn es Ihnen gefällt! + Bitte unterstützen Sie qBittorrent, wenn es Ihnen gefällt! - - + + Execution Log Ausführungs-Log - + Clear the password Passwort löschen - + &Set Password Passwort fe&stlegen - + Preferences Einstellungen - + &Clear Password Passwort lös&chen - + Transfers Übertragungen - - + + qBittorrent is minimized to tray qBittorrent wurde in die Statusleiste minimiert - - - + + + This behavior can be changed in the settings. You won't be reminded again. Dieses Verhalten kann in den Einstellungen geändert werden. Es folgt kein weiterer Hinweis. - + Icons Only Nur Icons - + Text Only Nur Text - + Text Alongside Icons Text neben Symbolen - + Text Under Icons Text unter Symbolen - + Follow System Style Dem Systemstil folgen - - + + UI lock password Passwort zum Entsperren - - + + Please type the UI lock password: Bitte das Passwort für den gesperrten qBittorrent-Bildschirm eingeben: - + Are you sure you want to clear the password? Soll das Passwort wirklich gelöscht werden? - + Use regular expressions Reguläre Ausdrücke verwenden - + + + Search Engine + Suchmaschine + + + + Search has failed + Suche fehlgeschlagen + + + + Search has finished + Suche abgeschlossen + + + Search Suche - + Transfers (%1) Übertragungen (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent wurde soeben aktualisiert. Änderungen werden erst nach einem Neustart aktiv. - + qBittorrent is closed to tray qBittorrent wurde in die Statusleiste geschlossen - + Some files are currently transferring. Momentan werden Dateien übertragen. - + Are you sure you want to quit qBittorrent? Sind Sie sicher, dass sie qBittorrent beenden möchten? - + &No &Nein - + &Yes &Ja - + &Always Yes &Immer ja - + Options saved. Optionen gespeichert. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSIERT] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Die Python-Installation konnte nicht heruntergeladen werden. Fehler: %1. +Bitte manuell installieren. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Umbennen der Python-Installationsdatei fehlgeschlagen. Quelle: "%1". Ziel: "%2". + + + + Python installation success. + Erfolgreiche Installation von Python. + + + + Exit code: %1. + Exit-Code: %1. + + + + Reason: installer crashed. + Grund: Installation abgestürzt. + + + + Python installation failed. + Installation von Python fehlgeschlagen. + + + + Launching Python installer. File: "%1". + Führe die Python-Installation aus. Datei: "%1". + + + + Missing Python Runtime Fehlende Python-Laufzeitumgebung - + qBittorrent Update Available Aktualisierung von qBittorrent verfügbar - + 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. + 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. + Python wird benötigt, um die Suchmaschine benutzen zu können, scheint aber nicht installiert zu sein. - - + + Old Python Runtime Veraltete Python-Laufzeitumgebung - + A new version is available. Eine neue Version ist verfügbar. - + Do you want to download %1? Soll %1 heruntergeladen werden? - + Open changelog... Öffne Änderungsindex ... - + No updates available. You are already using the latest version. Keine Aktualisierung verfügbar, die neueste Version ist bereits installiert. - + &Check for Updates Auf Aktualisierungen prüfen - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Die Python-Version (%1) ist nicht mehr aktuell da mindestens Version %2 benötigt wird. Soll jetzt eine aktuellere Version installiert werden? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Die installierte Version von Python (%1) ist veraltet und sollte für die Funktion der Suchmaschine auf die aktuellste Version aktualisiert werden. Mindestens erforderlich ist: %2. - + + Paused + Angehalten + + + 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 installation in progress... + Python wird gerade installiert ... + + + + Failed to open Python installer. File: "%1". + Konnte die Python-Installation nicht öffnen. Datei: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Fehlgeschlagener Prüfsummencheck MD5 für die Python Installation. Datei: "%1". Aktuelle Prüfsumme: "%2". Erwartete Prüfsumme: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Fehlgeschlagener Prüfsummencheck SHA3-512 für die Python Installation. Datei: "%1". Aktuelle Prüfsumme: "%2". Erwartete Prüfsumme: "%3". + + + 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 - + Filter torrents... Torrents filtern ... - + Filter by: Filtern nach: - + The password must be at least 3 characters long Das Passwort muss mindestens 3 Zeichen lang sein - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Öffne Torrent-Dateien - + Torrent Files Torrent-Dateien @@ -4232,7 +4551,12 @@ Bitte manuell installieren. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL-Fehler, URL: "%1", Fehler: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoriere SSL-Fehler, URL: "%1", Fehler: "%2" @@ -5526,47 +5850,47 @@ Bitte manuell installieren. Net::Smtp - + Connection failed, unrecognized reply: %1 Verbindung fehlgeschlagen, nicht erkannte Antwort: %1 - + Authentication failed, msg: %1 Authentifizierung fehlgeschlagen, Nachricht: %1 - + <mail from> was rejected by server, msg: %1 <mail from> wurde vom Server zurückgewiesen, Nachricht: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> wurde vom Server zurückgewiesen, Nachricht: %1 - + <data> was rejected by server, msg: %1 <data> wurde vom Server zurückgewiesen, Nachricht: %1 - + Message was rejected by the server, error: %1 Nachricht wurde vom Server zurückgewiesen, Fehler: %1 - + Both EHLO and HELO failed, msg: %1 Sowohl EHLO als auch HELO fehlgeschlagen, Nachricht: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - Der SMTP-Server scheint keinen unserer Authentifizierungsmodi [CRAM-MD5|PLAIN|LOGIN] zu unterstützen und überspringt die Authentifizierung, da er weiß, dass sie wahrscheinlich fehlschlagen wird... Server-Authentifizierungsmodi: %1 + Der SMTP-Server scheint keinen unserer Authentifizierungsmodi [CRAM-MD5|PLAIN|LOGIN] zu unterstützen und überspringt die Authentifizierung, da er weiß, dass sie wahrscheinlich fehlschlagen wird ... Server-Authentifizierungsmodi: %1 - + Email Notification Error: %1 Fehler bei der E-Mail Benachrichtigung: %1 @@ -5604,299 +5928,283 @@ Bitte manuell installieren. BitTorrent - + RSS RSS - - Web UI - Webinterface - - - + Advanced Erweitert - + Customize UI Theme... UI-Thema anpassen ... - + Transfer List Übertragungsliste - + Confirm when deleting torrents Löschen von Torrents bestätigen - - Shows a confirmation dialog upon pausing/resuming all the torrents - Zeigt einen Bestätigungsdialog für "Pause/Alles fortsetzen" für die Torrents - - - - Confirm "Pause/Resume all" actions - Bestätige "Pause/Alles fortsetzen" Aktionen - - - + Use alternating row colors In table elements, every other row will have a grey background. Abwechselnde Reihenfarben verwenden - + Hide zero and infinity values Werte mit Null und Unendlich verbergen - + Always Immer - - Paused torrents only - Nur pausierte Torrents - - - + Action on double-click Aktion bei Doppelklick - + Downloading torrents: Herunterladende Torrents: - - - Start / Stop Torrent - Torrent starten / stoppen - - - - + + Open destination folder Zielordner öffnen - - + + No action Keine Aktion - + Completed torrents: Abgeschlossene Torrents: - + Auto hide zero status filters Automatisches Ausblenden von Null-Status-Filtern - + Desktop Desktop - + Start qBittorrent on Windows start up qBittorrent beim Systemstart starten - + Show splash screen on start up Beim Start von qBittorrent das Logo anzeigen - + Confirmation on exit when torrents are active Beenden bestätigen, wenn noch Torrents aktiv sind - + Confirmation on auto-exit when downloads finish Beenden bestätigen, wenn die Downloads abgeschlossen sind - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - <html><head/><body><p>Um qBittorrent als Standardprogramm für .torrent-Dateien und/oder Magnet-Links festzulegen <br/>verwendet man den<span style=" font-weight:600;">'Standardprogramme'</span> Dialog der <span style=" font-weight:600;">'Systemsteuerung'</span>.</p></body></html> + <html><head/><body><p>Um qBittorrent als Standardprogramm für .torrent-Dateien und/oder Magnet-Links festzulegen, <br/>verwendet man den<span style=" font-weight:600;">'Standardprogramme'</span> Dialog der <span style=" font-weight:600;">'Systemsteuerung'</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Layout für Torrent-Inhalt: - + Original Original - + Create subfolder Erstelle Unterordner - + Don't create subfolder Erstelle keinen Unterordner - + The torrent will be added to the top of the download queue Der Torrent wird in der Warteschlange an erster Stelle hinzugefügt - + Add to top of queue The torrent will be added to the top of the download queue In der Warteschlange an erster Stelle hinzufügen - + When duplicate torrent is being added Wenn ein doppelter Torrent hinzugefügt wird - + Merge trackers to existing torrent Tracker zu bestehendem Torrent zusammenführen - + Keep unselected files in ".unwanted" folder Behalte abgewählte Dateien im Verzeichnis ".unwanted" - + Add... Hinzufügen ... - + Options.. Optionen ... - + Remove Entfernen - + Email notification &upon download completion Benachrichtigen, wenn der Download &fertig ist - + + Send test email + Test-Email senden + + + + Run on torrent added: + Ausführen, wenn Torrent hinzugefügt: + + + + Run on torrent finished: + Ausführen, wenn Torrent fertiggestellt: + + + Peer connection protocol: Verbindungsprotokoll Peers: - + Any Zufällig - + I2P (experimental) I2P (experimentell) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Wenn der &quot;gemischte Modus&quot; aktiviert ist, können I2P Torrents auch Peers aus anderen Quellen als dem Tracker erhalten und sich mit regulären IPs verbinden, ohne dass eine Anonymisierung erfolgt. Dies kann nützlich sein, wenn der Benutzer nicht an der Anonymisierung von I2P interessiert ist, aber trotzdem in der Lage sein möchte, sich mit I2P-Peers zu verbinden.</p></body></html> - - - + Mixed mode Gemischter Modus - - Some options are incompatible with the chosen proxy type! - Einige Optionen sind mit dem gewählten Proxy-Typ nicht kompatibel! - - - + If checked, hostname lookups are done via the proxy Wenn diese Option aktiviert ist, erfolgt die Suche nach Hostnamen über den Proxy - + Perform hostname lookup via proxy Hostnamen-Suche über Proxy durchführen - + Use proxy for BitTorrent purposes Proxy für BitTorrent verwenden - + RSS feeds will use proxy RSS-Feeds werden nun Proxy verwenden - + Use proxy for RSS purposes Proxy für RSS-Zwecke verwenden - + Search engine, software updates or anything else will use proxy Suchmaschinen, Software-Updates oder andere Dinge verwenden Proxy - + Use proxy for general purposes Proxy für allgemeine Zwecke verwenden - + IP Fi&ltering IP-&Filterung - + Schedule &the use of alternative rate limits Benutzung von al&ternativen Verhältnisbegrenzungen verwenden - + From: From start time Von: - + To: To end time Bis: - + Find peers on the DHT network Finde Peers im DHT-Netzwerk - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,189 +6213,229 @@ Verschlüsselung verlangen: Nur mit Peers verbinden mit Protokoll-Verschlüsselu Verschlüsselung deaktivieren: Nur mit Peers ohne Prokokoll-Verschlüsselung verbinden - + Allow encryption Verschlüsselung erlauben - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mehr Information</a>) - + Maximum active checking torrents: Max. Anzahl aktiver Prüfungen v. Torrents: - + &Torrent Queueing Warteschlange für &Torrents - + When total seeding time reaches Wenn die gesamte Seed-Zeit erreicht hat: - + When inactive seeding time reaches Wenn die inaktive Seed-Zeit erreicht hat: - - A&utomatically add these trackers to new downloads: - Diese Tracker a&utomatisch zu neuen Downloads hinzufügen: - - - + RSS Reader RSS-Reader - + Enable fetching RSS feeds Aktiviere RSS-Feeds - + Feeds refresh interval: Aktualisierungsintervall für RSS-Feeds: - + Same host request delay: - + Gleiche Host-Anforderungsverzögerung: - + Maximum number of articles per feed: Maximale Anzahl der Artikel pro Feed: - - - + + + min minutes Min. - + Seeding Limits Seed-Grenzen - - Pause torrent - Torrent pausieren - - - + Remove torrent Torrent entfernen - + Remove torrent and its files Entferne Torrent und seine Dateien - + Enable super seeding for torrent Super-Seeding für Torrent aktivieren - + When ratio reaches Wenn das Verhältnis erreicht ist - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Torrent anhalten + + + + A&utomatically append these trackers to new downloads: + Diese Tracker a&utomatisch zu neuen Downloads hinzufügen: + + + + Automatically append trackers from URL to new downloads: + Tracker dieser URL automatisch zu neuen Downloads hinzufügen: + + + + URL: + URL: + + + + Fetched trackers + Abgerufene Tracker + + + + Search UI + Suchoberfläche + + + + Store opened tabs + Geöffnete Tabs speichern + + + + Also store search results + Auch Suchergebnisse speichern + + + + History length + Länge der Historie + + + RSS Torrent Auto Downloader RSS-Torrent Automatik-Downloader - + Enable auto downloading of RSS torrents Aktiviere automatisches Herunterladen von RSS-Torrents - + Edit auto downloading rules... Regeln für automatisches Herunterladen ändern ... - + RSS Smart Episode Filter RSS Smart-Folgenfilter - + Download REPACK/PROPER episodes Lade REPACK/PROPER Episoden herunter - + Filters: Filter: - + Web User Interface (Remote control) Webuser-Interface (Fernbedienung) - + IP address: IP-Adresse: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - IP-Adresse an die das WebUI gebunden wird. + IP-Adresse an die das Webinterface gebunden wird. Eingabe einer IPv4 oder IPv6-Adresse. Es kann "0.0.0.0" für jede IPv4-Adresse, "::" für jede IPv6-Adresse, oder "*" für IPv4 und IPv6 eingegeben werden. - + Ban client after consecutive failures: Programm nach aufeinanderfolgenden Fehlern sperren: - + Never Nie - + ban for: Bannen für: - + Session timeout: Sitzungs-Auszeit: - + Disabled Deaktiviert - - Enable cookie Secure flag (requires HTTPS) - Aktiviere Cookie Sicheres Flag (erfordert HTTPS) - - - + Server domains: Server Domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6096,448 +6444,489 @@ Use ';' to split multiple entries. Can use wildcard '*'.Liste der erlaubten HTTP-Host Header-Felder. Um sich vor DNS-Rebinding-Attacken zu schützen, sollten hier Domain-Namen eingetragen weden, -die vom WebUI-Server verwendet werden. +die vom Webinterface-Server verwendet werden. -Verwende ';' um mehrere Einträge zu trennen. +Verwende ';', um mehrere Einträge zu trennen. Platzhalter '*' kann verwendet werden. - + &Use HTTPS instead of HTTP HTTPS anstatt von HTTP ben&utzen - + Bypass authentication for clients on localhost Authentifizierung für Clients auf dem Localhost umgehen - + Bypass authentication for clients in whitelisted IP subnets Authentifizierung für Clients auf der Liste der erlaubten IP-Subnets umgehen - + IP subnet whitelist... Erlaubte IP-Subnets ... - - Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - Geben Sie Reverse-Proxy-IPs an (oder Subnetze, z.B. 0.0.0.0/24), um weitergeleitete Client-Adressen zu verwenden (Attribut X-Forwarded-For), verwenden Sie ';' um mehrere Einträge aufzuteilen. + + Use alternative WebUI + Verwende alternatives Webinterface - + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. + Geben Sie Reverse-Proxy-IPs an (oder Subnetze, z.B. 0.0.0.0/24), um weitergeleitete Client-Adressen zu verwenden (Attribut X-Forwarded-For), verwenden Sie ';', um mehrere Einträge aufzuteilen. + + + Upda&te my dynamic domain name Dynamischen Domainnamen akt&ualisieren - + Minimize qBittorrent to notification area qBittorrent in den Benachrichtigungsbereich minimieren - + + Search + Suche + + + + WebUI + Webinterface + + + Interface Interface - + Language: Sprache: - + + Style: + Stil: + + + + Color scheme: + Farbschema: + + + + Stopped torrents only + Nur angehaltene Torrents + + + + + Start / stop torrent + Torrent starten / anhalten + + + + + Open torrent options dialog + Öffne Dialogfenster der Torrent-Optionen + + + Tray icon style: Tray Icon Stil: - - + + Normal Normal - + File association Dateizuordnung - + Use qBittorrent for .torrent files qBittorrent für .torrent Dateien verwenden - + Use qBittorrent for magnet links qBittorrent für Magnet Links verwenden - + Check for program updates Auf Programm-Updates prüfen - + Power Management Energieverwaltung - + + &Log Files + Protoko&lldateien + + + Save path: Speicherpfad: - + Backup the log file after: Sichere die Protokolldatei nach: - + Delete backup logs older than: Lösche Sicherungen älter als: - + + Show external IP in status bar + Externe IP in der Titelleiste anzeigen + + + When adding a torrent Sobald ein Torrent hinzugefügt wird - + Bring torrent dialog to the front Aktiviere das Dialogfenster - - Also delete .torrent files whose addition was cancelled - .torrent-Dateien auch löschen wenn das Hinzufügen abgebrochen wurde + + The torrent will be added to download list in a stopped state + Der Torrent wird der Liste im angehaltenen Zustand hinzugefügt - + + Also delete .torrent files whose addition was cancelled + .torrent-Dateien auch löschen, wenn das Hinzufügen abgebrochen wurde + + + Also when addition is cancelled Auch wenn das Hinzufügen abgebrochen wurde - + Warning! Data loss possible! Achtung! Datenverlust ist möglich! - + Saving Management Speicherverwaltung - + Default Torrent Management Mode: Vorgabe-Modus für das Torrent-Management: - + Manual Manuell - + Automatic Automatisch - + When Torrent Category changed: Wenn die Torrent-Kategorie geändert wird: - + Relocate torrent Torrent verschieben - + Switch torrent to Manual Mode Wechsle den Torrent in den manuellen Modus - - + + Relocate affected torrents Betroffene Torrents verschieben - - + + Switch affected torrents to Manual Mode Wechsle betroffene Torrents in den manuellen Modus - + Use Subcategories Unterkategorien verwenden - + Default Save Path: Standardspeicherpfad: - + Copy .torrent files to: .torrent Dateien kopieren nach: - + Show &qBittorrent in notification area &qBittorrent im Benachrichtigungsbereich anzeigen - - &Log file - &Logdatei - - - + Display &torrent content and some options Zeige Inhalt des &Torrent und einige Optionen - + De&lete .torrent files afterwards .torrent-Dateien ansch&ließend löschen - + Copy .torrent files for finished downloads to: Kopiere die .torrent Dateien von beendeten Downloads nach: - + Pre-allocate disk space for all files Allen Dateien Speicherplatz im Vorhinein zuweisen - + Use custom UI Theme Angepasstes UI-Thema verwenden - + UI Theme file: UI-Thema-Datei - + Changing Interface settings requires application restart Änderungen an den Anzeigeeinstellungen erfordern einen Programmneustart - + Shows a confirmation dialog upon torrent deletion Zeigt ein Bestätigungsfenster beim Löschen von Torrents - - + + Preview file, otherwise open destination folder Dateivorschau, sonst den Zielordner öffnen - - - Show torrent options - Zeige die Torrent-Optionen - - - + Shows a confirmation dialog when exiting with active torrents - Zeigt ein Bestätigungsfenster wenn mit aktiven Torrents beendet wird + Zeigt ein Bestätigungsfenster, wenn mit aktiven Torrents beendet wird - + When minimizing, the main window is closed and must be reopened from the systray icon Beim Minimieren wird das Hauptfenster geschlossen und muss über das Symbol in der Taskleiste wieder geöffnet werden - + The systray icon will still be visible when closing the main window - Das Symbol in der Taskleiste bleibt sichtbar auch wenn das Hauptfenster geschlossen wird + Das Symbol in der Taskleiste bleibt sichtbar, auch wenn das Hauptfenster geschlossen wird - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrent in den Benachrichtigungsbereich schließen - + Monochrome (for dark theme) Monochrom (für das 'Dark Theme') - + Monochrome (for light theme) Monochrom (für das 'Light Theme') - + Inhibit system sleep when torrents are downloading - Schlafmodus verhindern solange Torrents noch herunterladen + Schlafmodus verhindern, solange Torrents noch herunterladen - + Inhibit system sleep when torrents are seeding - Schlafmodus verhindern solange Torrents noch uploaden + Schlafmodus verhindern, solange Torrents noch uploaden - + Creates an additional log file after the log file reaches the specified file size Erstellt eine zusätzliche Log-Datei nachdem die angegebene Größe erreicht wurde - + days Delete backup logs older than 10 days Tage - + months Delete backup logs older than 10 months Monate - + years Delete backup logs older than 10 years Jahre - + Log performance warnings Leistungswarnungen protokollieren - - The torrent will be added to download list in a paused state - Der Torrent wird der Download-Liste als pausiert hinzugefügt - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Download nicht automatisch starten - + Whether the .torrent file should be deleted after adding it Ob die .torrent-Datei nach dem Hinzufügen gelöscht werden soll - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Vor dem Starten des Downloads die volle Dateigröße auf der Festplatte zuweisen, um die Fragmentierung zu minimieren. Nur nützlich für Festplatten (nicht bei SSD). - + Append .!qB extension to incomplete files .!qB Erweiterung für unvollständige Dateien verwenden - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Wenn ein Torrent heruntergeladen wird, biete jede darin enthaltene .torrent-Datei zum Hinzufügen an - + Enable recursive download dialog Rekursiven Download-Dialog erlauben - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatik: diverse Torrent-Eigenschaften (z.B. der Speicherpfad) werden durch die gewählte Kategorie vorgegeben Manuell: diverse Torrent-Eigenschaften (z.B. der Speicherpfad) müssen händisch eingegeben werden - + When Default Save/Incomplete Path changed: Wenn sich der Standardspeicherpfad/unvollständiger Pfad ändert: - + When Category Save Path changed: Wenn sich der Speicherpfad der Kategorie ändert: - + Use Category paths in Manual Mode Kategoriepfade im manuellen Modus verwenden - + Resolve relative Save Path against appropriate Category path instead of Default one Auflösen des relativen Speicherpfads gegen den entsprechenden Kategoriepfad anstelle des Standardpfads. - + Use icons from system theme Icons des System Themes nutzen - + Window state on start up: Zustand des Fensters nach dem Start: - + qBittorrent window state on start up Zustand des qBittorrent Fensters nach dem Start - + Torrent stop condition: Bedingung für das Anhalten des Torrents: - - + + None Kein - - + + Metadata received Metadaten erhalten - - + + Files checked Dateien überprüft - + Ask for merging trackers when torrent is being added manually Bei manuell hinzugefügtem Torrent um das Zusammenführen der Tracker fragen. - + Use another path for incomplete torrents: Einen anderen Pfad für unvollständige Torrents verwenden: - + Automatically add torrents from: .torrent-Dateien aus diesem Verzeichnis automatisch hinzufügen: - + Excluded file names Ausgeschlossene Dateinamen - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6566,770 +6955,811 @@ readme.txt: filtert den genauen Dateinamen. readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt', aber nicht 'readme10.txt'. - + Receiver Empfänger - + To: To receiver Bis: - + SMTP server: SMTP-Server: - + Sender Sender - + From: From sender Von: - + This server requires a secure connection (SSL) Dieser Server benötigt eine sichere Verbindung (SSL) - - + + Authentication Authentifizierung - - - - + + + + Username: Benutzername: - - - - + + + + Password: Passwort: - + Run external program Externes Programm ausführen - - Run on torrent added - Ausführen wenn Torrent hinzugefügt - - - - Run on torrent finished - Ausführen wenn Torrent fertiggestellt - - - + Show console window Konsolenfenster anzeigen - + TCP and μTP TCP und μTP - + Listening Port Port auf dem gelauscht wird - + Port used for incoming connections: Port für eingehende Verbindungen: - + Set to 0 to let your system pick an unused port Wert auf 0 setzen, damit das System einen unbenutzten Port wählen kann. - + Random Zufällig - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP Portweiterleitung des Routers verwenden - + Connections Limits Verbindungsbeschränkungen - + Maximum number of connections per torrent: Maximale Anzahl der Verbindungen pro Torrent: - + Global maximum number of connections: Maximale globale Anzahl der Verbindungen: - + Maximum number of upload slots per torrent: Maximale Anzahl Upload-Slots pro Torrent: - + Global maximum number of upload slots: Maximale globale Anzahl von Upload-Slots: - + Proxy Server Proxy-Server - + Type: Typ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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 - + A&uthentication A&uthentifizierung - - Info: The password is saved unencrypted - Info: Das Passwort wird unverschlüsselt gespeichert! - - - + Filter path (.dat, .p2p, .p2b): Filterpfad (.dat, .p2p, .p2b): - + Reload the filter Filter neu laden - + Manually banned IP addresses... - Manuell gebannte IP-Adressen... + Manuell gebannte IP-Adressen ... - + Apply to trackers Zu Trackern hinzufügen - + Global Rate Limits Globale Verhältnisbegrenzung - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Hochladen: - - + + Download: Herunterladen: - + Alternative Rate Limits Alternative Verhältnisbegrenzungen - + Start time Startzeit - + End time Endzeit - + When: Wann: - + Every day Jeden Tag - + Weekdays Wochentage - + Weekends Wochenenden - + Rate Limits Settings Einstellungen für Verhältnisbegrenzungen - + Apply rate limit to peers on LAN Verhältnisbegrenzung auch für Peers im LAN verwenden - + Apply rate limit to transport overhead Verhältnisbegrenzung auf Transport Overhead anwenden - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Wenn der "gemischte Modus" aktiviert ist, können I2P Torrents auch Peers aus anderen Quellen als dem Tracker erhalten und sich mit regulären IPs verbinden, ohne dass eine Anonymisierung erfolgt. Dies kann nützlich sein, wenn der Benutzer nicht an der Anonymisierung von I2P interessiert ist, aber trotzdem in der Lage sein möchte, sich mit I2P-Peers zu verbinden.</p></body></html> + + + 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 DHT (dezentralisiertes Netzwerk) aktivieren, um mehr Peers zu finden - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Peers mit kompatiblen Bittorrent-Programmen austauschen (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Peer Exchange (PeX) aktivieren, um mehr Peers zu finden - + Look for peers on your local network Nach Peers im lokalen Netzwerk suchen - + Enable Local Peer Discovery to find more peers - Lokale Peer Auffindung (LPD) aktivieren um mehr Peers zu finden + Lokale Peer Auffindung (LPD) aktivieren, um mehr Peers zu finden - + Encryption mode: Verschlüsselungsmodus: - + Require encryption Verschlüsselung verlangen - + Disable encryption Verschlüsselung deaktivieren - + Enable when using a proxy or a VPN connection - Aktiviere wenn ein Proxy oder ein VPN in Benutzung ist + Aktiviere, wenn ein Proxy oder ein VPN in Benutzung ist - + Enable anonymous mode Anonymen Modus aktivieren - + Maximum active downloads: Maximal aktive Downloads: - + Maximum active uploads: Maximal aktive Uploads: - + Maximum active torrents: Maximal aktive Torrents: - + Do not count slow torrents in these limits Bei diesen Begrenzungen langsame Torrents nicht mit einbeziehen - + Upload rate threshold: UL-Schwellenwert: - + Download rate threshold: DL-Schwellenwert: - - - - + + + + sec seconds - Sek. + Sek. - + Torrent inactivity timer: Timer für Torrent-Inaktivität: - + then dann - + Use UPnP / NAT-PMP to forward the port from my router - UPnP / NAT-PMP um den Port des Routers weiterzuleiten + UPnP / NAT-PMP, um den Port des Routers weiterzuleiten - + Certificate: Zertifikat: - + Key: Schlüssel: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informationen über Zertifikate</a> - + Change current password Aktuelles Passwort ändern - - Use alternative Web UI - Verwende alternatives Webinterface - - - + Files location: Speicherort der Dateien: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Liste alternativer Webinterfaces</a> + + + Security Sicherheit - + Enable clickjacking protection Clickjacking-Schutz aktivieren - + Enable Cross-Site Request Forgery (CSRF) protection CSRF-Schutz aktivieren (Cross-Site Request Forgery) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Cookie Sicheres Flag aktivieren (erfordert HTTPS oder Localhost-Verbindung) + + + Enable Host header validation Host-Header Überprüfung einschalten - + Add custom HTTP headers Benutzerdefinierte HTTP-Header hinzufügen - + Header: value pairs, one per line Header: Wertepaare, eines pro Zeile - + Enable reverse proxy support Aktivieren der Reverse-Proxy-Unterstützung - + Trusted proxies list: Liste der vertrauenswürdigen Proxys: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Beispiele für die Einrichtung eines Reverse-Proxys</a> + + + Service: Dienst: - + Register Registrieren - + Domain name: Domainname: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Mit dem Aktivieren dieser Optionen können die .torrent-Dateien <strong>unwiederbringlich verloren gehen!</strong> - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - Wenn die 2. Möglichkeit aktiviert wird (&ldquo;Auch wenn das Hinzufügen abgebrochen wurde&rdquo;) wird die .torrent-Datei <strong>unwiederbringlich gelöscht</strong> selbst wenn &ldquo;<strong>Abbrechen</strong>&rdquo; im &ldquo;Torrent hinzufügen&rdquo;-Menü gedrückt wird. + Wenn die 2. Möglichkeit aktiviert wird (&ldquo;Auch wenn das Hinzufügen abgebrochen wurde&rdquo;), wird die .torrent-Datei <strong>unwiederbringlich gelöscht</strong>, selbst wenn &ldquo;<strong>Abbrechen</strong>&rdquo; im &ldquo;Torrent hinzufügen&rdquo;-Menü gedrückt wird. - + Select qBittorrent UI Theme file Wähle qBittorrent UI-Thema-Datei - + Choose Alternative UI files location Wähle Dateispeicherort für alternatives UI - + Supported parameters (case sensitive): Unterstützte Parameter (Groß-/Kleinschreibung beachten): - + Minimized Minimiert - + Hidden Versteckt - + Disabled due to failed to detect system tray presence Deaktiviert weil keine Taskleiste erkannt werden kann - + No stop condition is set. Keine Bedingungen für das Anhalten eingestellt. - + Torrent will stop after metadata is received. - Der Torrent wird angehalten wenn Metadaten erhalten wurden. + Der Torrent wird angehalten, wenn Metadaten erhalten wurden. - Torrents that have metadata initially aren't affected. - Torrents, die ursprünglich Metadaten enthalten, sind nicht betroffen. - - - + Torrent will stop after files are initially checked. - Der Torrent wird angehalten sobald die Dateien überprüft wurden. + Der Torrent wird angehalten, sobald die Dateien überprüft wurden. - + This will also download metadata if it wasn't there initially. Dadurch werden auch Metadaten heruntergeladen, wenn sie ursprünglich nicht vorhanden waren. - + %N: Torrent name %N: Torrentname - + %L: Category %L: Kategorie - + %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: Torrentgröße (Byte) - + %T: Current tracker %T: aktueller Tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tipp: Setze Parameter zwischen Anführungszeichen damit Text bei Leerzeichen nicht abgeschnitten wird (z.B. "%N"). - + + Test email + Test-Email + + + + Attempted to send email. Check your inbox to confirm success + Es wurde versucht, eine E-Mail zu senden. Prüfen Sie Ihren Posteingang, um den Erfolg zu bestätigen + + + (None) (Keiner) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Ein Torrent wird als langsam eingestuft, wenn die DL- und UL-Rate unterhalb der Zeitgrenze des "Timer für Torrent-Inaktivität" bleiben - + Certificate Zertifikat - + Select certificate Zertifikat wählen - + Private key Privater Schlüssel - + Select private key Privaten Schlüssel wählen - + WebUI configuration failed. Reason: %1 Die Konfiguration für das Webinterface ist fehlgeschlagen. Grund: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 wird für beste Kompatibilität mit dem 'Dark Mode' von Windows empfohlen + + + + System + System default Qt style + System + + + + Let Qt decide the style for this system + Qt soll den Stil für dieses System wählen + + + + Dark + Dark color scheme + Dunkel + + + + Light + Light color scheme + Hell + + + + System + System color scheme + System + + + Select folder to monitor Ein Verzeichnis zum Beobachten auswählen - + Adding entry failed Hinzufügen des Eintrags fehlgeschlagen - + The WebUI username must be at least 3 characters long. Das Passwort für das Webinterface muss mindestens 3 Zeichen lang sein. - + The WebUI password must be at least 6 characters long. Das Passwort für das Webinterface muss mindestens 6 Zeichen lang sein. - + Location Error Speicherort-Fehler - - + + Choose export directory Export-Verzeichnis wählen - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Wenn diese Optionen aktiviert werden, wird qBittorrent .torrent-Dateien <strong>löschen</strong> nachdem sie (1. Möglichkeit) erfolgreich oder (2. Möglichkeit) nicht in die Download-Warteschlange hinzugefügt wurden. Dies betrifft <strong>nicht nur</strong> Dateien die über das &ldquo;Torrent hinzufügen&rdquo;-Menü sondern auch jene die über die <strong>Dateityp-Zuordnung</strong> geöffnet werden. - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI-Thema-Datei (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Label (getrennt durch Komma) - + %I: Info hash v1 (or '-' if unavailable) %I: Info-Hash v1 (oder '-' wenn nicht verfügbar) - + %J: Info hash v2 (or '-' if unavailable) %J: Info-Hash v2 (oder '-' wenn nicht verfügbar) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent-ID (entweder sha-1 Info-Hash für v1-Torrent oder abgeschnittener sha-256 Info-Hash für v2/Hybrid-Torrent) - - - + + + Choose a save directory Verzeichnis zum Speichern wählen - + Torrents that have metadata initially will be added as stopped. - + Torrents, die anfänglich Metadaten haben, werden als gestoppt hinzugefügt. - + Choose an IP filter file IP-Filter-Datei wählen - + All supported filters Alle unterstützten Filter - + The alternative WebUI files location cannot be blank. Der Speicherort des alternativen Webinterface darf nicht leer sein. - + 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. - + Preferences Einstellungen - + Time Error Zeitfehler - + The start time and the end time can't be the same. Die Startzeit und die Endzeit können nicht gleich sein. - - + + Length Error Längenfehler @@ -7337,241 +7767,246 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt', aber PeerInfo - + Unknown Unbekannt - + 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) - + 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) - + Optimistic unchoke Optimistische Freigabe - + Peer snubbed Peer abgewiesen - + Incoming connection Eingehende Verbindung - + Peer from DHT Peer von DHT - + Peer from PEX Peer von PEX - + Peer from LSD Peer von LSD - + Encrypted traffic Verschlüsselter Datenverkehr - + Encrypted handshake Verschlüsselter Handshake + + + Peer is using NAT hole punching + Peer verwendet NAT Hole Punching + PeerListWidget - + Country/Region Land/Region - + IP/Address IP/Adresse - + Port Port - + Flags Flags - + Connection Verbindung - + Client i.e.: Client application Programm - + Peer ID Client i.e.: Client resolved from Peer ID Peer-ID-Client - + 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 - + Files i.e. files that are being downloaded right now Dateien - + Column visibility Sichtbarkeit der Spalten - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt - + Add peers... Peers hinzufügen ... - - + + Adding peers Peers hinzugefügt - + Some peers cannot be added. Check the Log for details. Einige Peers können nicht hinzugefügt werden. Bitte das Log für weitere Details überprüfen. - + Peers are added to this torrent. Peers wurden diesem Torrent hinzugefügt. - - + + Ban peer permanently Peer dauerhaft bannen - + Cannot add peers to a private torrent Peers können nicht zu einem privaten Torrent hinzugefügt werden. - + Cannot add peers when the torrent is checking Peers können während der Torrent-Überprüfung nicht hinzugefügt werden. - + Cannot add peers when the torrent is queued Peers können bei einem pausierten Torrent nicht hinzugefügt werden. - + No peer was selected Es wurde kein Peer gewählt - + Are you sure you want to permanently ban the selected peers? Sollen die gewählten Peers wirklich dauerhaft gebannt werden? - + Peer "%1" is manually banned Peer "%1" wurde manuell gebannt - + N/A N/V - + Copy IP:port IP:port kopieren @@ -7589,7 +8024,7 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt', aber Liste der hinzuzufügenden Peers (pro Zeile eine IP): - + Format: IPv4:port / [IPv6]:port Format: IPv4:Port / [IPv6]:Port @@ -7630,27 +8065,27 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt', aber PiecesBar - + Files in this piece: Dateien in diesem Teil: - + File in this piece: Datei in diesem Teil: - + File in these pieces: Datei in diesen Teilen: - + Wait until metadata become available to see detailed information Warte auf Metadaten für mehr Informationen - + Hold Shift key for detailed information Drücke die Shift-Taste für genauere Informationen @@ -7663,58 +8098,58 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt', aber Such-Plugins - + Installed search plugins: Installierte Such-Plugins: - + Name Name - + Version Version - + Url URL - - + + Enabled Aktiviert - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Warnung: Achten Sie darauf, die Urheberrechtsgesetze Ihres Landes zu befolgen, wenn Sie von einer dieser Suchmaschinen Torrents herunterladen. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installiere neues Plugin - + Check for updates Auf Aktualisierungen prüfen - + Close Schließen - + Uninstall Deinstallieren @@ -7835,98 +8270,65 @@ Diese Plugins wurden jetzt aber deaktiviert. Plugin-Quelle - + Search plugin source: Such-Plugin Quelle: - + Local file Lokale Datei - + Web link Web-Link - - PowerManagement - - - qBittorrent is active - qBittorrent ist aktiv - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Das Power Management hat eine geeignete D-Bus-Schnittstelle gefunden. Schnittstelle: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Fehler im Power Management. Es wurde keine geeignete D-Bus-Schnittstelle gefunden. - - - - - - Power management error. Action: %1. Error: %2 - Fehler im Power Management. Aktion: %1. Fehler: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Unerwarteter Fehler im Power Management. Status: %1. Fehler: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Die folgenden Dateien des Torrent '%1' unterstützen eine Vorschau - bitte eine Datei auswählen: - + Preview Vorschau - + Name Name - + Size Größe - + Progress Fortschritt - + Preview impossible Vorschau nicht möglich - + Sorry, we can't preview this file: "%1". Es kann leider keine Vorschau für diese Datei erstellt werden: "%1". - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt @@ -7939,27 +8341,27 @@ Diese Plugins wurden jetzt aber deaktiviert. Private::FileLineEdit - + Path does not exist Pfad existiert nicht - + Path does not point to a directory Pfad zeigt nicht auf ein Verzeichnis - + Path does not point to a file Pfad zeigt nicht auf eine Datei - + Don't have read permission to path Keine Leseberechtigung für den Pfad - + Don't have write permission to path Keine Schreibberechtigung für den Pfad @@ -8000,12 +8402,12 @@ Diese Plugins wurden jetzt aber deaktiviert. PropertiesWidget - + Downloaded: Runtergeladen: - + Availability: Verfügbarkeit: @@ -8020,53 +8422,53 @@ Diese Plugins wurden jetzt aber deaktiviert. Übertragungen - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 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: @@ -8076,193 +8478,220 @@ Diese Plugins wurden jetzt aber deaktiviert. Verbindungen: - + Information Informationen - + Info Hash v1: Info-Hash v1: - + Info Hash v2: Info-Hash v2: - + Comment: Kommentar: - + Select All Alle Wählen - + Select None Keine Wählen - + Share Ratio: Shareverhältnis: - + Reannounce In: Erneute Anmeldung in: - + Last Seen Complete: Letzter Seeder (100%) gesehen: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Rate / aktive Zeit (in Monaten) - zeigt, wie populär der Torrent ist + + + + Popularity: + Popularität + + + Total Size: Gesamtgröße: - + Pieces: Teile: - + Created By: Erstellt von: - + Added On: Hinzugefügt am: - + Completed On: Abgeschlossen am: - + Created On: Erstellt am: - + + Private: + Privat: + + + Save Path: Speicherpfad: - + 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) - - + + + N/A N/V - + + Yes + Ja + + + + No + Nein + + + %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.) - - New Web seed - Neuer Webseed + + Add web seed + Add HTTP source + Webseed hinzufügen - - Remove Web seed - Webseed entfernen + + Add web seed: + Webseed hinzufügen: - - Copy Web seed URL - Webseed-URL kopieren + + + This web seed is already in the list. + Dieser Webseed befindet sich bereits in der Liste. - - Edit Web seed URL - Webseed-URL editieren - - - + Filter files... Dateien filtern ... - + + Add web seed... + Webseed hinzufügen ... + + + + Remove web seed + Webseed entfernen + + + + Copy web seed URL + Webseed-URL kopieren + + + + Edit web seed URL... + Webseed-URL editieren ... + + + Speed graphs are disabled Geschwindigkeits-Grafiken sind deaktiviert - + You can enable it in Advanced Options Das kann in den erweiterten Optionen aktiviert werden - - 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 editieren - + Web seed URL: Webseed-URL: @@ -8270,33 +8699,33 @@ Diese Plugins wurden jetzt aber deaktiviert. RSS::AutoDownloader - - + + Invalid data format. Ungültiges Datenformat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Konnte Daten des RSS-AutoDownloader nicht in %1 speichern. Fehler: %2 - + Invalid data format Ungültiges Datenformat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS '%1' wurde durch die Regel '%2' akzeptiert. Versuche den Torrent hinzuzufügen ... - + Failed to read RSS AutoDownloader rules. %1 Konnte die RSS-AutoDownloader Regeln nicht laden. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Konnte Regeln des RSS-AutoDownloader nicht laden. Grund: %1 @@ -8304,22 +8733,22 @@ Diese Plugins wurden jetzt aber deaktiviert. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Konnte RSS-Feed von '%1' nicht herunterladen. Grund: '%2' - + RSS feed at '%1' updated. Added %2 new articles. RSS-Feed von '%1' wurde aktualisiert. %2 neue Einträge wurden hinzugefügt. - + Failed to parse RSS feed at '%1'. Reason: %2 Konnte RSS-Feed von '%1' nicht analysieren. Grund: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Der RSS-Feed von '%1' wurde erfolgreich heruntergeladen und wird nun aufgelöst. @@ -8355,12 +8784,12 @@ Diese Plugins wurden jetzt aber deaktiviert. RSS::Private::Parser - + Invalid RSS feed. Ungültiger RSS-Feed. - + %1 (line: %2, column: %3, offset: %4). %1 (Zeile: %2, Spalte: %3, Offset: %4). @@ -8368,103 +8797,144 @@ Diese Plugins wurden jetzt aber deaktiviert. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Konnte die RSS-Sitzungskonfiguration nicht speichern. Datei: "%1". Fehler: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Konnte Daten der RSS-Sitzung nicht speichern. Datei: "%1". Fehler: "%2" - - + + RSS feed with given URL already exists: %1. Der RSS-Feed mit URL besteht schon: %1. - + Feed doesn't exist: %1. Feed existiert nicht: %1. - + Cannot move root folder. Wurzelverzeichnis kann nicht verschoben werden. - - + + Item doesn't exist: %1. Das existiert nicht: %1. - - Couldn't move folder into itself. - Verzeichnis kann nicht in sich selbst verschoben werden. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Wurzelverzeichnis kann nicht gelöscht werden. - + Failed to read RSS session data. %1 Konnte die RSS Sitzungsdaten nicht lesen. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Konnte die RSS Sitzungsdaten nicht parsen. Datei: "%1". Fehler: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Konnte die RSS Sitzungsdaten nicht laden. Datei: "%1". Fehler: "Ungültiges Datenformat". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Konnte RSS-Feed nicht laden. Feed: "%1". Grund: URL ist erforderlich. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Konnte RSS-Feed nicht laden. Feed: "%1". Grund: UID ist ungültig. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Doppelter RSS-Feed gefunden. UID: "%1". Fehler: Die Konfiguration scheint beschädigt zu sein. - + Couldn't load RSS item. Item: "%1". Invalid data format. RSS-Eintrag konnte nicht geladen werden. Eintrag: "%1". Ungültiges Datenformat. - + Corrupted RSS list, not loading it. Fehlerhafte RSS-Liste. Wird daher nicht geladen. - + Incorrect RSS Item path: %1. Falscher RSS-Item-Pfad: %1. - + RSS item with given path already exists: %1. Der RSS-Feed besteht schon: %1. - + Parent folder doesn't exist: %1. Verzeichnis existiert nicht: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed existiert nicht: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Aktualisierungsintervall: + + + + sec + Sek. + + + + Default + Standard + + RSSWidget @@ -8484,8 +8954,8 @@ Diese Plugins wurden jetzt aber deaktiviert. - - + + Mark items read Markiere Einträge als gelesen @@ -8510,132 +8980,115 @@ Diese Plugins wurden jetzt aber deaktiviert. Torrents: (Doppelklicken zum Herunterladen) - - + + Delete Löschen - + Rename... Umbenennen ... - + Rename Umbenennen - - + + Update Aktualisieren - + New subscription... Neues Abonnement ... - - + + Update all feeds Alle Feeds aktualisieren - + Download torrent Lade Torrent - + Open news URL Öffne News-URL - + Copy feed URL Kopiere Feed-URL - + New folder... Neuer Ordner ... - - Edit feed URL... - Feed-URL editieren ... + + Feed options... + - - Edit feed URL - Feed-URL editieren - - - + Please choose a folder name Bitte einen Verzeichnisnamen wählen - + Folder name: Verzeichnisname: - + New folder Neues Verzeichnis - - - Please type a RSS feed URL - Bitte eine RSS-Feed Adresse eingeben - - - - - Feed URL: - Feed-URL: - - - + Deletion confirmation Löschbestätigung - + Are you sure you want to delete the selected RSS feeds? Sind Sie sicher, dass Sie die gewä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: - + Rename failed Umbenennen fehlgeschlagen - + Date: Datum: - + Feed: Feed: - + Author: Autor: @@ -8643,38 +9096,38 @@ Diese Plugins wurden jetzt aber deaktiviert. SearchController - + Python must be installed to use the Search Engine. - Python muss installiert sein um die Suchmaschine benützen zu können. + Python muss installiert sein, um die Suchmaschine benützen zu können. - + Unable to create more than %1 concurrent searches. Es können nicht mehr als %1 gleichzeitige Suchen erstellt werden. - - + + Offset is out of range Adressabstand ausserhalb des gültigen Bereichs - + All plugins are already up to date. Alle Plugins sind auf dem neuesten Stand. - + Updating %1 plugins Aktualisiere %1 Plugins - + Updating plugin %1 Aktualisiere Plugin %1 - + Failed to check for plugin updates: %1 Konnte nicht nach Plugin-Updates suchen: %1 @@ -8749,132 +9202,142 @@ Diese Plugins wurden jetzt aber deaktiviert. Größe: - + Name i.e: file name Name - + Size i.e: file size Größe - + Seeders i.e: Number of full sources Seeder - + Leechers i.e: Number of partial sources Leecher - - Search engine - Suchmaschine - - - + Filter search results... Dateien filtern ... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Ergebnisse (zeige <i>%1</i> von <i>%2</i>): - + Torrent names only Nur Torrent-Namen - + Everywhere Überall - + Use regular expressions Reguläre Ausdrücke verwenden - + Open download window Das Download-Fenster öffnen - + Download Download - + Open description page Beschreibungsseite öffnen - + Copy Kopieren - + Name Name - + Download link Download-Link - + Description page URL Beschreibungsseiten-URL - + Searching... Suche ... - + Search has finished Suche abgeschlossen - + Search aborted Suche abgebrochen - + An error occurred during search... Während der Suche ist ein Fehler aufgetreten ... - + Search returned no results Suche lieferte keine Ergebnisse - + + Engine + Engine + + + + Engine URL + Engine-URL + + + + Published On + Veröffentlicht am + + + Column visibility Spaltensichtbarkeit - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt @@ -8882,104 +9345,104 @@ Diese Plugins wurden jetzt aber deaktiviert. SearchPluginManager - + Unknown search engine plugin file format. Unbekanntes Dateiformat des Suchmaschinen-Plugins. - + Plugin already at version %1, which is greater than %2 Plugin ist bereits Version %1 und damit höher als %2 - + A more recent version of this plugin is already installed. Eine neuere Version dieses Plugins ist bereits installiert. - + Plugin %1 is not supported. Plugin %1 wird nicht unterstützt. - - + + Plugin is not supported. Plugin wird nicht unterstützt. - + Plugin %1 has been successfully updated. Das Plugin %1 wurde erfolgreich aktualisiert. - + All categories Alle Kategorien - + Movies Filme - + TV shows TV-Sendungen - + Music Musik - + Games Spiele - + Anime Anime - + Software Software - + Pictures Bilder - + Books Bücher - + 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 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" ist nicht mehr aktuell - wird aktualisiert auf Version %2 - + Incorrect update info received for %1 out of %2 plugins. Falsche Update-Information für %1 von %2 Plugins erhalten. - + Search plugin '%1' contains invalid version string ('%2') Das Such-Plugin '%1' enthält ungültige Versions-Zeichenkette ('%2') @@ -8989,114 +9452,145 @@ Diese Plugins wurden jetzt aber deaktiviert. - - - - Search Suche - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Es sind keine Such-Plugins installiert. -Wähle den "Such-Plugins ..."-Knopf unten rechts aus um welche zu installieren. +Wähle den "Such-Plugins ..."-Knopf unten rechts aus, um welche zu installieren. - + Search plugins... Such-Plugins ... - + A phrase to search for. Suchphrase. - + Spaces in a search term may be protected by double quotes. Leerzeichen innerhalb von Suchausdrücken in Anführungszeichen setzen. - + Example: Search phrase example Beispiel: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;schnur los&quot;</b>: suche nach <b>schnur los</b> - + All plugins Alle Plugins - + Only enabled Nur aktivierte - + + + Invalid data format. + Ungültiges Datenformat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>schnur los</b>: suche nach <b>schnur</b> und <b>los</b> - + + Refresh + Aktualisieren + + + Close tab Registerkarte schließen - + Close all tabs Alle Registerkarten schließen - + Select... Wählen ... - - - + + Search Engine 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 - + Please type a search pattern first Bitte zuerst eine Suchanfrage eingeben - + + Stop Stopp + + + SearchWidget::DataStorage - - Search has finished - Suche abgeschlossen + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Konnte gespeicherte Suchfenster-Statusdaten nicht laden. Datei: "%1“. Fehler: "%2“ - - Search has failed - Suche fehlgeschlagen + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Konnte gespeicherte Suchergebnisse nicht laden. Tab: "%1". Datei: "%2“. Fehler: "%3“ + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Konnte Suchfenster-Historie nicht speichern. Datei: "%1“. Fehler: "%2“ + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Konnte Suchergebnisse nicht speichern. Tab: "%1". Datei: "%2“. Fehler: "%3“ + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Konnte Suchfenster-Historie nicht laden. Datei: "%1“. Fehler: "%2“ + + + + Failed to save search history. File: "%1". Error: "%2" + Konnte Such-Historie nicht speichern. Datei: "%1“. Fehler: "%2“ @@ -9210,34 +9704,34 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende - + Upload: Hochladen: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Herunterladen: - + Alternative speed limits Alternative Geschwindigkeitsbegrenzung @@ -9429,32 +9923,32 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende Durchschnittliche Zeit in Warteschlange: - + Connected peers: Verbundene Peers: - + All-time share ratio: Gesamtes Shareverhältnis: - + All-time download: Gesamter DL: - + Session waste: Abfall in dieser Sitzung: - + All-time upload: Gesamter UL: - + Total buffer size: Gesamte Buffergröße: @@ -9469,12 +9963,12 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende Eingereihte I/O Aufgaben: - + Write cache overload: Überlast Schreibpuffer: - + Read cache overload: Überlast Lesepuffer: @@ -9493,53 +9987,79 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende StatusBar - + Connection status: Verbindungs-Status: - - + + No direct connections. This may indicate network configuration problems. Keine direkten Verbindungen. Möglicherweise gibt es Probleme mit der Netzwerkkonfiguration. - - + + Free space: N/A + + + + + + External IP: N/A + Externe IP: nicht verfügbar + + + + DHT: %1 nodes DHT: %1 Knoten - + qBittorrent needs to be restarted! qBittorrent benötigt einen Neustart! - - - + + + Connection Status: Verbindungs-Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. In den meisten Fällen bedeutet das, dass qBittorrent nicht auf dem angegebenen Port für eingehende Verbindungen lauschen kann. - + Online Online - - Click to switch to alternative speed limits - Klicken um zu den alternativen Geschwindigkeitsbegrenzungen zu wechseln + + Free space: + - + + External IPs: %1, %2 + Externe IPs: %1, %2 + + + + External IP: %1%2 + Externe IP: %1%2 + + + + Click to switch to alternative speed limits + Klicken, um zu den alternativen Geschwindigkeitsbegrenzungen zu wechseln + + + Click to switch to regular speed limits - Klick um zu den regulären Geschwindigkeitsbegrenzungen zu wechseln + Klick, um zu den regulären Geschwindigkeitsbegrenzungen zu wechseln @@ -9567,13 +10087,13 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende - Resumed (0) - Fortgesetzt (0) + Running (0) + Läuft (0) - Paused (0) - Pausiert (0) + Stopped (0) + Angehalten (0) @@ -9635,36 +10155,36 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende Completed (%1) Abgeschlossen (%1) + + + Running (%1) + Läuft (%1) + - Paused (%1) - Pausiert (%1) + Stopped (%1) + Angehalten (%1) + + + + Start torrents + Torrents starten + + + + Stop torrents + Torrents anhalten Moving (%1) Verschiebe (%1) - - - Resume torrents - Torrents fortsetzen - - - - Pause torrents - Torrents pausieren - Remove torrents Torrents entfernen - - - Resumed (%1) - Fortgesetzt (%1) - Active (%1) @@ -9736,31 +10256,31 @@ Daher wird eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwende Remove unused tags Unbenutzte Label entfernen - - - Resume torrents - Torrents fortsetzen - - - - Pause torrents - Torrents pausieren - Remove torrents Torrents entfernen - - New Tag - Neues Label + + Start torrents + Torrents starten + + + + Stop torrents + Torrents anhalten Tag: Label: + + + Add tag + Label hinzufügen + Invalid tag name @@ -9906,32 +10426,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Name - + Progress Fortschritt - + Download Priority Download-Priorität - + Remaining Verbleibend - + Availability Verfügbarkeit - + Total Size Gesamtgröße @@ -9976,98 +10496,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Fehler beim Umbenennen - + Renaming Umbenennen - + New name: Neuer Name: - + Column visibility Spaltensichtbarkeit - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt - + Open Öffnen - + Open containing folder Öffne Verzeichnis - + Rename... Umbenennen ... - + Priority Priorität - - + + Do not download Nicht herunterladen - + Normal Normal - + High Hoch - + Maximum Maximum - + By shown file order Entsprechend angezeigter Dateisortierung - + Normal priority Normale Priorität - + High priority Hohe Priorität - + Maximum priority Höchste Priorität - + Priority by shown file order Priorität nach angezeigter Dateisortierung @@ -10075,19 +10595,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Zu viele aktive Aufgaben - + Torrent creation is still unfinished. - + Torrent-Erstellung ist noch nicht abgeschlossen. - + Torrent creation failed. - + Torrent-Erstellung gescheitert @@ -10114,13 +10634,13 @@ Please choose a different name and try again. - + Select file Wähle Datei - + Select folder Wähle Verzeichnis @@ -10195,87 +10715,83 @@ Please choose a different name and try again. Felder - + You can separate tracker tiers / groups with an empty line. Die Trackerebenen / -gruppen können mit leeren Zeilen getrennt werden. - + Web seed URLs: Webseed-URLs: - + Tracker URLs: Tracker-URLs: - + Comments: Kommentare: - + Source: Quelle: - + Progress: Fortschritt: - + Create Torrent Torrent erstellen - - + + Torrent creation failed Torrent-Erstellung gescheitert - + Reason: Path to file/folder is not readable. Grund: Verzeichnis kann nicht gelesen werden. - + Select where to save the new torrent - Auswählen wohin der neue Torrent gespeichert werden soll + Auswählen, wohin der neue Torrent gespeichert werden soll - + Torrent Files (*.torrent) Torrent-Dateien (*.torrent) - Reason: %1 - Grund: %1 - - - + Add torrent to transfer list failed. Das Hinzufügen des Torrent zur Übertragungsliste ist fehlgeschlagen. - + Reason: "%1" - Grund: „%1“ + Grund: "%1“ - + Add torrent failed Hinzufügen vom Torrent fehlgeschlagen - + Torrent creator Torrent-Ersteller - + Torrent created: Torrent-Erstellung: @@ -10283,32 +10799,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Konnte die Überwachungspfad-Konfiguration nicht laden. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Konnte die Überwachungspfad-Konfiguration von %1 nicht parsen. Fehler: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Konte die Überwachungspfad-Konfiguration von %1 nicht laden. Fehler: "Ungültiges Datenformat". - + Couldn't store Watched Folders configuration to %1. Error: %2 Konnte die Konfiguration des Überwachungspfads nicht nach %1 speichern. Fehler: %2 - + Watched folder Path cannot be empty. Überwachungspfad kann nicht leer sein. - + Watched folder Path cannot be relative. Der Pfad zum Überwachungsverzeichnis darf nicht relativ sein. @@ -10316,44 +10832,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Ungültige Magnet URI. URI: %1. Grund: %2 - + Magnet file too big. File: %1 Magnetdatei zu groß. Datei: %1 - + Failed to open magnet file: %1 Fehler beim Öffnen der Magnet-Datei: %1 - + Rejecting failed torrent file: %1 Fehlerhafte Torrent-Datei wird zurückgewiesen: %1 - + Watching folder: "%1" Überwachtes Verzeichnis: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Beim Lesen der Datei konnte kein Speicher zugewiesen werden. Datei: "%1". Fehler: "%2" - - - - Invalid metadata - Ungültige Metadaten - - TorrentOptionsDialog @@ -10364,7 +10867,7 @@ Please choose a different name and try again. Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - Automatischer Modus bedeutet, daß diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. + Automatischer Modus bedeutet, dass diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. @@ -10382,175 +10885,163 @@ Please choose a different name and try again. Einen anderen Pfad für unvollständige Torrents verwenden - + Category: Kategorie: - - Torrent speed limits - Geschwindigkeitsbegrenzungen für Torrent + + Torrent Share Limits + Verhältnis-Begrenzungen für Torrent - + Download: Herunterladen: - - + + - - + + Torrent Speed Limits + Geschwindigkeitsbegrenzungen für Torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Damit werden die allgemeinen Begrenzungen nicht überschritten - + Upload: Hochladen: - - Torrent share limits - Verhältnis-Begrenzungen für Torrent - - - - Use global share limit - Globale Begrenzung für das Verhältnis verwenden - - - - Set no share limit - Keine Begrenzung für das Verhältnis verwenden - - - - Set share limit to - Begrenzung für das Verhältnis setzen - - - - ratio - Verhältnis - - - - total minutes - gesamt Minuten - - - - inactive minutes - inaktive Minuten - - - + Disable DHT for this torrent DHT für diesen Torrent deaktivieren - + Download in sequential order Der Reihe nach downloaden - + Disable PeX for this torrent PeX für diesen Torrent deaktivieren - + Download first and last pieces first Erste und letzte Teile zuerst laden - + Disable LSD for this torrent LSD für diesen Torrent deaktivieren - + Currently used categories Aktuell verwendete Kategorien - - + + Choose save path Speicherpfad wählen - + Not applicable to private torrents Das ist für private Torrents nicht anwendbar - - - No share limit method selected - Keine Methode für die Verhältnis-Begrenzung gewählt - - - - Please select a limit method first - Bitte zuerst eine Begrenzungsmethode auswählen - TorrentShareLimitsWidget - - - + + + + Default - Standard + Standard + + + + + + Unlimited + Unbegrenzt - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Einstellen auf + + + + Seeding time: + Seed-Zeit: + + + + + + + + min minutes - Min. + Min. - + Inactive seeding time: - + Inaktive Seed-Zeit: - + + Action when the limit is reached: + Aktion, wenn das Limit erreicht ist: + + + + Stop torrent + Torrent anhalten + + + + Remove torrent + Torrent entfernen + + + + Remove torrent and its content + Entferne Torrent und seine Inhalte + + + + Enable super seeding for torrent + Super-Seeding für Torrent aktivieren + + + Ratio: - + Verhältnis: @@ -10561,32 +11052,32 @@ Please choose a different name and try again. Torrent-Label - - New Tag - Neues Label + + Add tag + Label hinzufügen - + Tag: Label: - + Invalid tag name Ungültiger Labelname - + Tag name '%1' is invalid. Labelname '%1' ist ungültig. - + Tag exists Label existiert - + Tag name already exists. Labelname existiert bereits. @@ -10594,115 +11085,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Fehler: '%1' ist keine gültige Torrent-Datei. - + Priority must be an integer Die Priorität muss ganzzahlig sein. - + Priority is not valid Priorität ist nicht gültig - + Torrent's metadata has not yet downloaded Die Metadaten des Torrent sind noch nicht heruntergeladen - + File IDs must be integers Die Datei-ID muss ganzahlig sein - + File ID is not valid Die Datei-ID ist nicht gültig - - - - + + + + Torrent queueing must be enabled Warteschlange für Torrents muss aktiviert sein - - + + Save path cannot be empty Speicherpfad kann nicht leer sein - - + + Cannot create target directory Kann das Zielverzeichnis nicht erstellen - - + + Category cannot be empty Kategorie kann nicht leer sein - + Unable to create category Kategorie konnte nicht erstellt werden - + Unable to edit category Kategorie kann nicht geändert werden - + Unable to export torrent file. Error: %1 Konnte Torrentdatei nicht exportieren. Fehler: '%1' - + Cannot make save path Kann Speicherpfad nicht erstellen - + + "%1" is not a valid URL + "%1" ist keine gültige URL + + + + URL scheme must be one of [%1] + Das URL-Schema muss eines von [%1] sein + + + 'sort' parameter is invalid Ungültiger 'sortieren'-Parameter - + + "%1" is not an existing URL + "%1" ist keine existierende URL + + + "%1" is not a valid file index. '%1' ist kein gültiger Dateiindex. - + Index %1 is out of bounds. Index %1 ist ausserhalb der Grenzen. - - + + Cannot write to directory Kann nicht in Verzeichnis schreiben - + WebUI Set location: moving "%1", from "%2" to "%3" - WebUI-Speicherort festlegen: "%1" wird von "%2" nach "%3" verschoben + Webinterface-Speicherort festlegen: "%1" wird von "%2" nach "%3" verschoben - + Incorrect torrent name Ungültiger Torrent-Name - - + + Incorrect category name Ungültiger Kategoriename @@ -10733,196 +11239,191 @@ Please choose a different name and try again. TrackerListModel - + Working Arbeitet - + Disabled Deaktiviert - + Disabled for this torrent Für diesen Torrent deaktiviert - + This torrent is private Dieser Torrent ist privat - + N/A N/V - + Updating... Aktualisiere ... - + Not working Arbeitet nicht - + Tracker error - Tracker Fehler + Tracker-Fehler - + Unreachable Unerreichbar - + Not contacted yet Noch nicht kontaktiert - - Invalid status! + + Invalid state! Ungültiger Status! - - URL/Announce endpoint - URL/Anmeldung Endpunkt + + URL/Announce Endpoint + URL/Ankündigungsendpunkt - + + BT Protocol + BT Protokoll + + + + Next Announce + Nächste Anmeldung + + + + Min Announce + Min. Anmeldung + + + Tier Ebene - - Protocol - Protokoll - - - + Status Status - + Peers Peers - + Seeds Seeds - + Leeches Leecher - + Times Downloaded Anzahl Heruntergeladen - + Message Meldung - - - Next announce - Nächste Anmeldung - - - - Min announce - Min. Anmeldung - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Dieser Torrent ist privat - + Tracker editing Tracker editieren - + Tracker URL: Tracker-URL: - - + + Tracker editing failed Tracker editieren fehlgeschlagen - + The tracker URL entered is invalid. Die eingegebene Tracker-URL ist ungültig. - + The tracker URL already exists. Die Tracker-URL existiert bereits. - + Edit tracker URL... Tracker-URL editieren - + Remove tracker Tracker entfernen - + Copy tracker URL Tracker-URL kopieren - + Force reannounce to selected trackers Erzwinge erneute Anmeldung bei den gewählten Trackern - + Force reannounce to all trackers Erzwinge erneute Anmeldung bei allen Trackern - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt - + Add trackers... Tracker hinzufügen ... - + Column visibility Spaltensichtbarkeit @@ -10940,37 +11441,37 @@ Please choose a different name and try again. Liste der hinzuzufügenden Tracker (einer pro Zeile): - + µTorrent compatible list URL: µTorrent kompatible Listen-URL: - + Download trackers list Tracker-Liste herunterladen - + Add Hinzufügen - + Trackers list URL error Fehler bei der URL der Tracker-Liste - + The trackers list URL cannot be empty Die URL der Tracker-Liste darf nicht leer sein - + Download trackers list error Fehler beim Herunterladen der Tracker-Liste - + Error occurred when downloading the trackers list. Reason: "%1" Fehler beim Herunterladen der Tracker-Liste. Grund: "%1" @@ -10978,62 +11479,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Warnung (%1) - + Trackerless (%1) Ohne Tracker (%1) - + Tracker error (%1) - Tracker Fehler (%1) + Tracker-Fehler (%1) - + Other error (%1) Anderer Fehler (%1) - + Remove tracker Tracker entfernen - - Resume torrents - Torrents fortsetzen + + Start torrents + Torrents starten - - Pause torrents - Torrents pausieren + + Stop torrents + Torrents anhalten - + Remove torrents Torrents entfernen - + Removal confirmation Entfernungsbestätigung - + Are you sure you want to remove tracker "%1" from all torrents? Soll der Tracker "%1" wirklich von allen Torrents entfernt werden? - + Don't ask me again. Nicht erneut nachfragen. - + All (%1) this is for the tracker filter Alle (%1) @@ -11042,7 +11543,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'Modus': ungültiges Argument @@ -11134,11 +11635,6 @@ Please choose a different name and try again. 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. Überprüfe Fortsetzungsdaten - - - Paused - Angehalten - Completed @@ -11162,220 +11658,252 @@ Please choose a different name and try again. Fehlerhaft - + Name i.e: torrent name Name - + Size i.e: torrent size Größe - + Progress % Done Fortschritt - + + Stopped + Angehalten + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Peers - + Down Speed i.e: Download speed DL-Geschw. - + Up Speed i.e: Upload speed UL-Geschw. - + Ratio Share ratio Verhältnis - + + Popularity + Popularität + + + ETA i.e: Estimated Time of Arrival / Time left Fertig in - + Category Kategorie - + Tags Label - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Hinzugefügt am - + Completed On Torrent was completed on 01/01/2010 08:00 Abgeschlossen am - + Tracker Tracker - + Down Limit i.e: Download limit DL-Begrenzung - + Up Limit i.e: Upload limit UL-Begrenzung - + Downloaded Amount of data downloaded (e.g. in MB) Runtergeladen - + Uploaded Amount of data uploaded (e.g. in MB) Hochgeladen - + Session Download Amount of data downloaded since program open (e.g. in MB) DL in dieser Sitzung - + Session Upload Amount of data uploaded since program open (e.g. in MB) UL in dieser Sitzung - + Remaining Amount of data left to download (e.g. in MB) Verbleibend - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktiv seit - + + Yes + Ja + + + + No + Nein + + + Save Path Torrent save path Speicherpfad - + Incomplete Save Path Torrent incomplete save path Unvollständiger Speicherpfad - + Completed Amount of data completed (e.g. in MB) Abgeschlossen - + Ratio Limit Upload share ratio limit Verhältnis Limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Letzter Seeder (100%) gesehen - + Last Activity Time passed since a chunk was downloaded/uploaded Letzte Aktivität - + Total Size i.e. Size including unwanted data Gesamtgröße - + Availability The number of distributed copies of the torrent Verfügbarkeit - + Info Hash v1 i.e: torrent info hash v1 Info-Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info-Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Erneute Anmeldung in - - + + Private + Flags private torrents + Privat + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Rate / aktive Zeit (in Monaten) - zeigt, wie populär der Torrent ist + + + + + N/A N/V - + %1 ago e.g.: 1h 20m ago vor %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (geseedet seit %2) @@ -11384,339 +11912,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Sichtbarkeit der Spalten - + Recheck confirmation Überprüfe Bestätigung - + Are you sure you want to recheck the selected torrent(s)? Sollen die gewählten Torrents wirklich nochmals überprüft werden? - + Rename Umbenennen - + New name: Neuer Name: - + Choose save path Speicherpfad wählen - - Confirm pause - Anhalten bestätigen - - - - Would you like to pause all torrents? - Sollen alle Torrents angehalten werden? - - - - Confirm resume - Fortsetzen bestätigen - - - - Would you like to resume all torrents? - Sollen alle Torrents fortgesetzt werden? - - - + Unable to preview Vorschau nicht möglich - + The selected torrent "%1" does not contain previewable files Der gewählte Torrent '%1' enthält keine Dateien mit Vorschau. - + Resize columns Spaltenbreite ändern - + Resize all non-hidden columns to the size of their contents Ändere alle sichtbaren Spalten in der Breite nach Inhalt - + Enable automatic torrent management Automatisches Torrent-Management aktivieren - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Soll wirklich das automatische Torrent-Managment für die gewählten Torrents aktiviert werden? Diese könnten verschoben werden. - - Add Tags - Label hinzufügen - - - + Choose folder to save exported .torrent files Verzeichnis auswählen zum Speichern exportierter .torrent-Dateien - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Exportieren der .torrent-Datei fehlgeschlagen. Torrent: "%1". Speicherpfad: "%2". Grund: "%3" - + A file with the same name already exists Eine Datei mit gleichem Namen existiert bereits. - + Export .torrent file error Exportieren der .torrent-Datei fehlgeschlagen - + Remove All Tags Alle Label entfernen - + Remove all tags from selected torrents? Wirklich alle Labels von den ausgewählten Torrents entfernen? - + Comma-separated tags: Labels, mit Komma getrennt: - + Invalid tag Ungültiger Labelname - + Tag name: '%1' is invalid Labelname '%1' ist ungültig - - &Resume - Resume/start the torrent - Fo&rtsetzen - - - - &Pause - Pause the torrent - &Pausieren - - - - Force Resu&me - Force Resume/start the torrent - Fortsetzen &manuell erzwingen - - - + Pre&view file... Datei&vorschau ... - + Torrent &options... Torrent-&Optionen ... - + Open destination &folder Zielverzeichnis ö&ffnen - + Move &up i.e. move up in the queue Hina&uf bewegen - + Move &down i.e. Move down in the queue Nach un&ten bewegen - + Move to &top i.e. Move to top of the queue An den Anfan&g - + Move to &bottom i.e. Move to bottom of the queue An das &Ende - + Set loc&ation... Speicher&ort setzen ... - + Force rec&heck Erzwinge neuerlic&he Überprüfung - + Force r&eannounce &Erzwinge erneute Anmeldung - + &Magnet link &Magnet-Link - + Torrent &ID Torrent-&ID - + &Comment &Kommentar - + &Name &Name - + Info &hash v1 Info-&Hash v1 - + Info h&ash v2 Info-H&ash v2 - + Re&name... Umbe&nennen ... - + Edit trac&kers... Trac&ker editieren ... - + E&xport .torrent... .torrent e&xportieren ... - + Categor&y Kate&gorie - + &New... New category... &Neu ... - + &Reset Reset category Zu&rücksetzen - + Ta&gs Ta&gs - + &Add... Add / assign multiple tags... &Hinzufügen ... - + &Remove All Remove all tags Alle entfe&rnen - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Erzwungene erneute Anmeldung ist nicht möglich, wenn der Torrent gestoppet/in der Warteschlange/fehlerhaft/beim Überprüfen ist + + + &Queue &Warteschlange - + &Copy &Kopieren - + Exported torrent is not necessarily the same as the imported Der exportierte Torrent ist nicht unbedingt derselbe wie der importierte - + Download in sequential order Der Reihe nach downloaden - + + Add tags + Label hinzufügen + + + Errors occurred when exporting .torrent files. Check execution log for details. Fehler sind beim Exportieren der .torrent-Dateien aufgetreten. Bitte Ausführungs-Log für Details überprüfen. - + + &Start + Resume/start the torrent + &Start + + + + Sto&p + Stop the torrent + Anhalten + + + + Force Star&t + Force Resume/start the torrent + Erzwinge Star&t + + + &Remove Remove the torrent Entfe&rnen - + Download first and last pieces first Erste und letzte Teile zuerst laden - + Automatic Torrent Management Automatisches Torrent-Management - - - Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - Automatischer Modus bedeutet, daß diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. - - - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Neuankündigung kann nicht erzwungen werden, wenn der Torrent pausiert/angehalten/abgeschlossen ist oder geprüft wird - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category + Automatischer Modus bedeutet, dass diverse Torrent-Eigenschaften (z.B. der Speicherpfad) durch die gewählte Kategorie vorgegeben werden. + + + Super seeding mode Super-Seeding-Modus @@ -11761,28 +12269,28 @@ Please choose a different name and try again. Icon-ID - + UI Theme Configuration. Konfiguration UI-Thema. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Die Änderungen am UI-Thema konnten nicht vollständig übernommen werden. Details dazu stehen im Protokoll. - + Couldn't save UI Theme configuration. Reason: %1 Die Konfigurationsdatei des UI-Themas konnte nicht gespeichert werden. Grund: %1 - - + + Couldn't remove icon file. File: %1. Konnte Icon-Datei nicht entfernen. Datei: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Konnte Icon-Datei nicht kopieren. Quelle: %1. Ziel: %2. @@ -11790,7 +12298,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Einstellen des Stils fehlgeschlagen. Unbekannter Stil: "%1" + + + Failed to load UI theme from file: "%1" Fehler beim Laden des Anzeige-Themas von Datei: %1 @@ -11821,20 +12334,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - Migrieren der Einstellungen fehlgeschlagen: WebUI-HTTPS, Datei: "%1", Fehler: "%2" + Migrieren der Einstellungen fehlgeschlagen: Webinterface-HTTPS, Datei: "%1", Fehler: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - Migrieren der Einstellungen: WebUI-HTTPS, Daten in Datei exportiert: "%1" + Migrieren der Einstellungen: Webinterface-HTTPS, Daten in Datei exportiert: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Ungültiger Wert in der Konfiguration - es wird stattdessen der Standard-Wert verwendet. Eintrag: "%1". Falscher Wert: "%2". @@ -11842,32 +12356,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Ausführungdatei für Python gefunden. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". Ausführungdatei für Python nicht gefunden. Pfad: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Konnte Ausführungdatei für `python3` in der Pfad-Umgebungsvariable PATH nicht finden. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Konnte Ausführungdatei für `python` in der Pfad-Umgebungsvariable PATH nicht finden. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Konnte Ausführungdatei für `python` in der Windows-Registry nicht finden. - + Failed to find Python executable Konnte Ausführungdatei für Python nicht finden. @@ -11959,72 +12473,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Unzulässiger Name für den Sitzungscookies wurde angegeben: '%1'. Die Standardeinstellung wird verwendet. - + Unacceptable file type, only regular file is allowed. Dateityp wird nicht akzeptiert - es sind nur gültige Dateitypen erlaubt. - + Symlinks inside alternative UI folder are forbidden. Symbolische Verknüpfungen (Symlinks) innerhalb von Verzeichnissen für alternative UI sind nicht erlaubt. - + Using built-in WebUI. Verwende eingebautes Webinterface. - + Using custom WebUI. Location: "%1". Verwende benutzerdefiniertes Webinterface. Ort: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Die Übersetzung des Webinterface für die gewählte Region (%1) wurde erfolgreich geladen. - + Couldn't load WebUI translation for selected locale (%1). Konnte die Übersetzung des Webinterface für die gewählte Region nicht laden (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - Fehlendes ':' Trennzeichen in benutzerdefiniertem WebUI HTTP-Header: "%1" + Fehlendes ':' Trennzeichen in benutzerdefiniertem Webinterface HTTP-Header: "%1" - + Web server error. %1 Fehler beim Web-Server. %1 - + Web server error. Unknown error. Fehler beim Web-Server. Unbekannter Fehler. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - WebUI: Ursprungs-Header & -Ziel stimmen nicht überein! Quell-IP: '%1'. Ursprungs-Header: '%2'. Ziel-Ursprung: '%3' + Webinterface: Ursprungs-Header & -Ziel stimmen nicht überein! Quell-IP: '%1'. Ursprungs-Header: '%2'. Ziel-Ursprung: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - WebUI: Referenz-Header & -Ziel stimmen nicht überein! Quell-IP: '%1'. Referenz-Header: '%2'. Ziel-Ursprung: '%3' + Webinterface: Referenz-Header & -Ziel stimmen nicht überein! Quell-IP: '%1'. Referenz-Header: '%2'. Ziel-Ursprung: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Webinterface: Ungültiger Host-Header, Ports stimmen nicht überein. Angefragte Quell-IP: '%1'. Server-Port: '%2'. Empfangener Host-Header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Webinterface: Ungültiger Host-Header. Angefragte Quell-IP: '%1'. Empfangener Host-Header: '%2' @@ -12032,125 +12546,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set Anmeldeinformationen sind nicht festgelegt - + WebUI: HTTPS setup successful Webinterface: HTTPS-Setup erfolgreich - + WebUI: HTTPS setup failed, fallback to HTTP Webinterface: HTTPS-Setup fehlgeschlagen - HTTP wird verwendet - + WebUI: Now listening on IP: %1, port: %2 Das Webinterface lauscht auf IP: %1, Port %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Webinterface kann nicht gebunden werden an IP: %1, Port %2. Grund: %3 + + fs + + + Unknown error + Unbekannter Fehler + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1T %2h - + %1y %2d e.g: 2 years 10 days %1J %2T - - + + 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 diff --git a/src/lang/qbittorrent_el.ts b/src/lang/qbittorrent_el.ts index bb066688d..6837132e0 100644 --- a/src/lang/qbittorrent_el.ts +++ b/src/lang/qbittorrent_el.ts @@ -14,75 +14,75 @@ Σχετικά - + Authors Δημιουργοί - + Current maintainer Τρέχων συντηρητής - + Greece Ελλάδα - - + + Nationality: Εθνικότητα: - - + + E-mail: E-mail: - - + + Name: Όνομα: - + Original author Αρχικός δημιουργός - + France Γαλλία - + Special Thanks Ειδικές Ευχαριστίες - + Translators Μεταφραστές - + License Άδεια - + Software Used Λογισμικό που Χρησιμοποιήθηκε - + qBittorrent was built with the following libraries: Το qBittorrent φτιάχτηκε με τις ακόλουθες βιβλιοθήκες: - + Copy to clipboard Αντιγραφή στο πρόχειρο @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Πνευματικά Δικαιώματα %1 2006-2024 Το εγχείρημα qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Πνευματικά Δικαιώματα %1 2006-2025 Το εγχείρημα qBittorrent @@ -166,15 +166,10 @@ Αποθήκευση σε - + Never show again Να μην εμφανιστεί ξανά - - - Torrent settings - Ρυθμίσεις torrent - Set as default category @@ -191,12 +186,12 @@ Έναρξη torrent - + Torrent information Πληροφορίες torrent - + Skip hash check Παράλειψη ελέγχου hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Χρήση άλλης διαδρομής για ημιτελή torrents + + + Torrent options + Επιλογές Torrent + Tags: @@ -231,75 +231,75 @@ Συνθήκη διακοπής: - - + + None Κανένα - - + + Metadata received Ληφθέντα μεταδεδομένα - + Torrents that have metadata initially will be added as stopped. - + Τα torrents που έχουν μεταδεδομένα εξαρχής θα προστεθούν ως σταματημένα. - - + + Files checked Ελεγμένα αρχεία - + Add to top of queue Προσθήκη στην αρχή της ουράς - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Όταν είναι επιλεγμένο, το αρχείο .torrent δεν θα διαγραφεί ανεξάρτητα από τις ρυθμίσεις στη σελίδα "Λήψη" του διαλόγου Επιλογές - + Content layout: Διάταξη περιεχομένου: - + Original Πρωτότυπο - + Create subfolder Δημιουργία υποφακέλου - + Don't create subfolder Να μη δημιουργηθεί υποφάκελος - + Info hash v1: Info hash v1: - + Size: Μέγεθος: - + Comment: Σχόλιο: - + Date: Ημερομηνία: @@ -329,151 +329,147 @@ Απομνημόνευση της τελευταίας διαδρομής αποθήκευσης που χρησιμοποιήθηκε - + Do not delete .torrent file Να μη διαγράφεται το αρχείο .torrent - + Download in sequential order Λήψη σε διαδοχική σειρά - + Download first and last pieces first Λήψη των πρώτων και των τελευταίων κομματιών πρώτα - + Info hash v2: Info hash v2: - + Select All Επιλογή Όλων - + Select None Καμία επιλογή - + Save as .torrent file... Αποθήκευση ως αρχείο .torrent... - + I/O Error Σφάλμα I/O - + Not Available This comment is unavailable Μη Διαθέσιμο - + Not Available This date is unavailable Μη Διαθέσιμο - + Not available Μη διαθέσιμο - + Magnet link Σύνδεσμος magnet - + Retrieving metadata... Ανάκτηση μεταδεδομένων… - - + + Choose save path Επιλέξτε διαδρομή αποθήκευσης - + No stop condition is set. Δεν έχει οριστεί συνθήκη διακοπής. - + Torrent will stop after metadata is received. Το torrent θα σταματήσει μετά τη λήψη των μεταδεδομένων. - Torrents that have metadata initially aren't affected. - Τα torrents που αρχικά έχουν μεταδεδομένα δεν επηρεάζονται. - - - + Torrent will stop after files are initially checked. Το torrent θα σταματήσει αφού πρώτα ελεγχθούν τα αρχεία. - + This will also download metadata if it wasn't there initially. Αυτό θα πραγματοποιήσει και λήψη μεταδεδομένων εάν δεν υπήρχαν αρχικά. - - + + N/A Δ/Υ - + %1 (Free space on disk: %2) %1 (Ελεύθερος χώρος στον δίσκο: %2) - + Not available This size is unavailable. Μη διαθέσιμο - + Torrent file (*%1) Αρχείο torrent (*%1) - + Save as torrent file Αποθήκευση ως αρχείο torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Αδυναμία εξαγωγής του αρχείου μεταδεδομένων του torrent '%1'. Αιτία: %2. - + Cannot create v2 torrent until its data is fully downloaded. Δεν είναι δυνατή η δημιουργία v2 torrent μέχρι τα δεδομένα του να έχουν ληφθεί πλήρως. - + Filter files... Φίλτρο αρχείων... - + Parsing metadata... Ανάλυση μεταδεδομένων… - + Metadata retrieval complete Η ανάκτηση μεταδεδομένων ολοκληρώθηκε @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Λήψη torrent... Πηγή: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Αποτυχία προσθήκης torrent. Πηγή: "%1". Αιτία: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Εντοπίστηκε μια προσπάθεια προσθήκης διπλού torrent. Πηγή: %1. Υπάρχον torrent: %2. Αποτέλεσμα: %3 - - - + Merging of trackers is disabled Η συγχώνευση trackers είναι απενεργοποιημένη - + Trackers cannot be merged because it is a private torrent Δεν είναι δυνατή η συγχώνευση των Trackers επειδή είναι ιδιωτικός torrent - + Trackers are merged from new source Οι trackers συγχωνεύονται από νέα πηγή + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Όρια διαμοιρασμού torrent + Όρια διαμοιρασμού torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Επανέλεγχος των torrents μετά την ολοκλήρωση - - + + ms milliseconds ms - + Setting Ρύθμιση - + Value Value set for this setting Τιμή - + (disabled) (απενεργοποιημένο) - + (auto) (αυτόματο) - + + min minutes λεπτά - + All addresses Όλες οι διευθύνσεις - + qBittorrent Section Ενότητα qBittorrent - - + + Open documentation Άνοιγμα τεκμηρίωσης - + All IPv4 addresses Όλες οι διευθύνσεις IPv4 - + All IPv6 addresses Όλες οι διευθύνσεις IPv6 - + libtorrent Section Ενότητα libtorrent - + Fastresume files Αρχεία fastresume - + SQLite database (experimental) Βάση δεδομένων SQLite (πειραματικό) - + Resume data storage type (requires restart) Τύπος αποθήκευσης δεδομένων συνέχισης (απαιτεί επανεκκίνηση) - + Normal Κανονική - + Below normal Κάτω από κανονική - + Medium Μέτρια - + Low Χαμηλή - + Very low Πολύ χαμηλή - + Physical memory (RAM) usage limit Όριο χρήσης φυσικής μνήμης (RAM). - + Asynchronous I/O threads Ασύγχρονα νήματα I/O - + Hashing threads Hashing νημάτων - + File pool size Μέγεθος pool αρχείου - + Outstanding memory when checking torrents Outstanding μνήμης κατά τον έλεγχο των torrents - + Disk cache Cache δίσκου - - - - + + + + + s seconds s - + Disk cache expiry interval Μεσοδιάστημα λήξης cache δίσκου - + Disk queue size Μέγεθος ουράς δίσκου: - - + + Enable OS cache Ενεργοποίηση cache ΛΣ - + Coalesce reads & writes Συνένωση αναγνώσεων & εγγραφών - + Use piece extent affinity Χρήση συγγένειας έκτασης κομματιού - + Send upload piece suggestions Στείλτε προτάσεις ανεβάσματος κομματιών - - - - + + + + + 0 (disabled) 0 (απενεργοποιημένο) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Αποθήκευση διαστήματος ανάκτησης δεδομένων [0: απενεργοποιημένο] - + Outgoing ports (Min) [0: disabled] Εξερχόμενες θύρες (ελάχ.) [0: απενεργοποιημένο] - + Outgoing ports (Max) [0: disabled] Εξερχόμενες θύρες (μέγ.) [0: απενεργοποιημένο] - + 0 (permanent lease) 0: (Μόνιμη μίσθωση) - + UPnP lease duration [0: permanent lease] Διάρκεια μίσθωσης UPnP [0: Μόνιμη μίσθωση] - + Stop tracker timeout [0: disabled] Χρονικό όριο διακοπής tracker: [0: ανενεργό] - + Notification timeout [0: infinite, -1: system default] Λήξη χρονικού ορίου ειδοποίησης [0: άπειρο, -1: προεπιλογή συστήματος] - + Maximum outstanding requests to a single peer Μέγιστα εκκρεμή αιτήματα σε μοναδικό peer: - - - - - + + + + + KiB KiB - + (infinite) (άπειρο) - + (system default) (προεπιλογή συστήματος) - + + Delete files permanently + Μόνιμη διαγραφή αρχείων + + + + Move files to trash (if possible) + Μετακίνηση αρχείων στον κάδο (αν είναι δυνατό) + + + + Torrent content removing mode + Λειτουργία αφαίρεσης περιεχομένου του torrent + + + This option is less effective on Linux Αυτή η επιλογή είναι λιγότερο αποτελεσματική σε Linux - + Process memory priority Προτεραιότητα μνήμης διεργασιών - + Bdecode depth limit Όριο βάθους Bdecode - + Bdecode token limit Όριο token Bdecode - + Default Προεπιλογή - + Memory mapped files Αρχεία αντιστοιχισμένα στη μνήμη - + POSIX-compliant Συμβατό με POSIX - + + Simple pread/pwrite + Απλό pread/pwrite + + + Disk IO type (requires restart) Τύπος IO δίσκου (απαιτείται επανεκκίνηση) - - + + Disable OS cache Απενεργοποίηση cache ΛΣ - + Disk IO read mode Λειτουργία ανάγνωσης IO δίσκου - + Write-through Write-through - + Disk IO write mode Λειτουργία εγγραφής IO δίσκου - + Send buffer watermark Send buffer watermark - + Send buffer low watermark Send buffer low watermark - + Send buffer watermark factor Παράγοντας Send buffer watermark - + Outgoing connections per second Εξερχόμενες συνδέσεις ανά δευτερόλεπτο - - + + 0 (system default) 0 (προεπιλογή συστήματος) - + Socket send buffer size [0: system default] Μέγεθος buffer αποστολής υποδοχής [0: προεπιλογή συστήματος] - + Socket receive buffer size [0: system default] Μέγεθος buffer λήψης υποδοχής [0: προεπιλογή συστήματος] - + Socket backlog size Μέγεθος backlog του socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit όριο μεγέθους αρχείου .torrent - + Type of service (ToS) for connections to peers Τύπος υπηρεσίας (ToS) για συνδέσεις με peers - + Prefer TCP Προτίμηση TCP - + Peer proportional (throttles TCP) Ανάλογα με τα peers (ρυθμίζει το TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Υποστήριξη διεθνοποιημένου ονόματος τομέα (IDN) - + Allow multiple connections from the same IP address Να επιτρέπονται πολλαπλές συνδέσεις από την ίδια διεύθυνση IP - + Validate HTTPS tracker certificates Επικύρωση των HTTPS πιστοποιητικών του tracker - + Server-side request forgery (SSRF) mitigation Μείωση Server-Side Request Forgery (SSRF) - + Disallow connection to peers on privileged ports Να απαγορεύεται η σύνδεση των peers σε προνομιακές θύρες - + It appends the text to the window title to help distinguish qBittorent instances - + Προσαρτά το κείμενο στον τίτλο του παραθύρου ώστε να μπορείτε να ξεχωρίσετε τις υποστάσεις του qBittorent - + Customize application instance name - + Προσαρμογή ονόματος υπόστασης εφαρμογής - + It controls the internal state update interval which in turn will affect UI updates Ελέγχει το χρονικό διάστημα ενημέρωσης της εσωτερικής κατάστασης το οποίο με τη σειρά του θα επηρεάσει τις ενημερώσεις της διεπαφής χρήστη - + Refresh interval Χρονικό διάστημα ανανέωσης - + Resolve peer host names Επίλυση ονομάτων των host του peer - + IP address reported to trackers (requires restart) Η διεύθυνση IP που εκτίθεται στους trackers (απαιτεί επανεκκίνηση) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Reannounce σε όλους τους trackers όταν αλλάξει η IP ή η θύρα - + Enable icons in menus Ενεργοποίηση εικονιδίων στα μενού - + + Attach "Add new torrent" dialog to main window + Επισυνάψτε το παράθυρο διαλόγου "Προσθήκη νέου torrent" στο κύριο παράθυρο + + + Enable port forwarding for embedded tracker Ενεργοποίηση port forwarding για ενσωματωμένο tracker - + Enable quarantine for downloaded files Ενεργοποίηση καραντίνας για ληφθέντα αρχεία - + Enable Mark-of-the-Web (MOTW) for downloaded files Ενεργοποίηση του Mark-of-the-Web (MOTW) για τα ληφθέντα αρχεία - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Επηρεάζει την επικύρωση πιστοποιητικών και και δραστηριότητες πρωτοκόλλων που δεν αφορούν στα torrent (π.χ. ροές RSS, ενημερώσεις πριγράμματος, αρχεία torrent, geoip db, κλπ) + + + + Ignore SSL errors + Αγνόηση σφαλμάτων SSL + + + (Auto detect if empty) (Αυτόματος εντοπισμός εάν είναι κενό) - + Python executable path (may require restart) Εκτελέσσιμη διαδρομή Python (ενδέχεται να απαιτείται επανεκκίνηση) - + + Start BitTorrent session in paused state + Εκκίνηση του BitTorrent σε κατάσταση παύσης + + + + sec + seconds + sec + + + + -1 (unlimited) + -1 (απεριόριστο) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Χρονικό όριο τερματισμού περιόδου λειτουργίας BitTorrent [-1: απεριόριστο] + + + Confirm removal of tracker from all torrents Επιβεβαιώστε την αφαίρεση του tracker από όλα τα torrent - + Peer turnover disconnect percentage Ποσοστό αποσύνδεσης των κύκλων εργασιών του peer - + Peer turnover threshold percentage Ποσοστό ορίου των κύκλων εργασιών του peer - + Peer turnover disconnect interval Μεσοδιάστημα αποσύνδεσης του κύκλου εργασιών του peer - + Resets to default if empty Επαναφέρεται στην προεπιλογή εάν είναι κενό - + DHT bootstrap nodes Κόμβοι εκκίνησης DHT - + I2P inbound quantity Εισερχόμενη ποσότητα I2P - + I2P outbound quantity Εξερχόμενη ποσότητα I2P - + I2P inbound length Μήκος εισερχόμενου I2P - + I2P outbound length Μήκος εξερχόμενου I2P - + Display notifications Εμφάνιση ειδοποιήσεων - + Display notifications for added torrents Εμφάνισε ειδοποιήσεις για τα προστιθέμενα torrents - + Download tracker's favicon Λήψη favicon του tracker - + Save path history length Μήκος ιστορικού διαδρομής αποθήκευσης - + Enable speed graphs Ενεργοποίηση γραφημάτων ταχύτητας - + Fixed slots Σταθερά slots - + Upload rate based Βάσει ταχύτητας αποστολής - + Upload slots behavior Συμπεριφορά slots αποστολής - + Round-robin Round-robin - + Fastest upload Γρηγορότερη αποστολή - + Anti-leech Αντι-leech - + Upload choking algorithm Αλγόριθμος choking αποστολής - + Confirm torrent recheck Επιβεβαίωση επανελέγχου torrent - + Confirm removal of all tags Επιβεβαίωση αφαίρεσης όλων των ετικετών - + Always announce to all trackers in a tier Πάντα announce προς όλους τους trackers του tier - + Always announce to all tiers Πάντα ανακοίνωση σε όλα τα tiers - + Any interface i.e. Any network interface Οποιαδήποτε διεπαφή - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP αλγόριθμος μεικτής λειτουργίας - + Resolve peer countries Επίλυση χωρών των peer - + Network interface Διεπαφή δικτύου - + Optional IP address to bind to Προαιρετική διεύθυνση IP για δέσμευση - + Max concurrent HTTP announces Μέγιστες ταυτόχρονες HTTP announces - + Enable embedded tracker Ενεργοποίηση ενσωματωμένου tracker - + Embedded tracker port Θύρα ενσωματωμένου tracker + + AppController + + + + Invalid directory path + Μη έγκυρη διαδρομή καταλόγου + + + + Directory does not exist + Ο κατάλογος δεν υπάρχει + + + + Invalid mode, allowed values: %1 + Μη έγκυρη λειτουργία, επιτρεπόμενες τιμές: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Εκτέλεση σε φορητή λειτουργία. Εντοπίστηκε αυτόματα φάκελος προφίλ σε: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Εντοπίστηκε περιττή σήμανση γραμμής εντολών: "%1". Η φορητή λειτουργία υποδηλώνει σχετικό fastresume. - + Using config directory: %1 Γίνεται χρήση του καταλόγου διαμόρφωσης: %1 - + 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. - + Torrent: %1, sending mail notification Torrent: %1, αποστολή ειδοποίησης μέσω email - + Add torrent failed Η προσθήκη torrent απέτυχε - + Couldn't add torrent '%1', reason: %2. Δεν ήταν δυνατή η προσθήκη torrent '%1', λόγος: %2. - + The WebUI administrator username is: %1 Το όνομα χρήστη του διαχειριστή WebUI είναι: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Ο κωδικός πρόσβασης διαχειριστή WebUI δεν ορίστηκε. Παρέχεται ένας προσωρινός κωδικός πρόσβασης για αυτήν την περίοδο λειτουργίας: %1 - + You should set your own password in program preferences. Θα πρέπει να ορίσετε τον δικό σας κωδικό πρόσβασης στις ρυθμίσεις. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Το WebUI είναι απενεργοποιημένο! Για να ενεργοποιήσετε το WebUI, επεξεργαστείτε χειροκίνητα το αρχείο ρυθμίσεων. - + Running external program. Torrent: "%1". Command: `%2` Εκτέλεση εξωτερικού προγράμματος. Torrent: "%1". Εντολή: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Απέτυχε η εκτέλεση εξωτερικού προγράμματος. Torrent: "%1". Εντολή: `%2` - + Torrent "%1" has finished downloading Η λήψη του torrent "%1" ολοκληρώθηκε - + WebUI will be started shortly after internal preparations. Please wait... Το WebUI θα ξεκινήσει λίγο μετά τις εσωτερικές προετοιμασίες. Παρακαλώ περιμένετε... - - + + Loading torrents... Φόρτωση torrents... - + E&xit Ε&ξοδος - + I/O Error i.e: Input/Output Error Σφάλμα I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Αιτία: %2 - + Torrent added Το torrent προστέθηκε - + '%1' was added. e.g: xxx.avi was added. Το '%1' προστέθηκε. - + Download completed Η λήψη ολοκληρώθηκε - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started Το qBittorrent %1 ξεκίνησε. ID διεργασίας: %2 - + + This is a test email. + Αυτό είναι ένα δοκιμαστικό email. + + + + Test email + Δοκιμαστικό email + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Η λήψη του '%1' ολοκληρώθηκε. - + Information Πληροφορίες - + To fix the error, you may need to edit the config file manually. Για να διορθώσετε το σφάλμα, ίσως χρειαστεί να επεξεργαστείτε το αρχείο ρυθμίσεων με μη αυτόματο τρόπο. - + To control qBittorrent, access the WebUI at: %1 Για τον έλεγχο του qBittorrent, αποκτήστε πρόσβαση στο WebUI στη : %1 - + Exit Έξοδος - + Recursive download confirmation Επιβεβαίωση αναδρομικής λήψης - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Το torrent '%1' περιέχει αρχεία .torrent, θέλετε να συνεχίσετε με την λήψη τους; - + Never Ποτέ - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Αναδρομική λήψη αρχείου .torrent στο torrent. Torrent-πηγή: "%1". Αρχείο: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Αποτυχία ορισμού ορίου χρήσης φυσικής μνήμης (RAM). Κωδικός σφάλματος: %1. Μήνυμα σφάλματος: "% 2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Απέτυχε να οριστεί ανώτατο όριο χρήσης φυσικής μνήμης (RAM). Ζητούμενο μέγεθος: %1. Ανώτατο όριο συστήματος: %2. Κωδικός σφάλματος: %3. Μήνυμα σφάλματος: "%4" - + qBittorrent termination initiated Ξεκίνησε ο τερματισμός του qBittorrent - + qBittorrent is shutting down... Το qBittorrent τερματίζεται... - + Saving torrent progress... Αποθήκευση προόδου torrent… - + qBittorrent is now ready to exit Το qBittorrent είναι έτοιμο να πραγματοποιήσει έξοδο @@ -1609,12 +1715,12 @@ Προτεραιότητα: - + Must Not Contain: Να Μην Περιέχει: - + Episode Filter: Φίλτρο Επεισοδίου: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Εξαγωγή… - + 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 Ο αριθμός της σεζόν είναι υποχρεωτική μή μηδενική τιμή - + 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 της πρώτης σεζόν - + Episode number is a mandatory positive value Ο αριθμός επεισοδίου είναι μια υποχρεωτική θετική τιμή. - + Rules Κανόνες - + Rules (legacy) Κανόνες (παλιοί) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Άπειρο εύρος: <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 Επιβεβαίωση διαγραφής κανόνα - + Invalid action Μη έγκυρη ενέργεια - + The list is empty, there is nothing to export. Η λίστα είναι άδεια, δεν υπάρχει τίποτα για εξαγωγή. - + Export RSS rules Εξαγωγή κανόνων RSS - + I/O Error Σφάλμα I/O - + Failed to create the destination file. Reason: %1 Η δημιουργία του αρχείου προορισμού απέτυχε. Αιτία: %1 - + Import RSS rules Εισαγωγή κανόνων RSS - + Failed to import the selected rules file. Reason: %1 Η εισαγωγή του επιλεγμένου αρχείου κανόνων απέτυχε. Αιτία: %1 - + Add new rule... Προσθήκη νέου κανόνα… - + Delete rule Διαγραφή κανόνα - + Rename rule... Μετονομασία κανόνα… - + Delete selected rules Διαγραφή επιλεγμένων κανόνων - + Clear downloaded episodes... Εκκαθάριση επεισοδίων που έχουν ληφθεί... - + Rule renaming Μετονομασία κανόνα - + Please type the new rule name Παρακαλώ πληκτρολογήστε το νέο όνομα κανόνα - + Clear downloaded episodes Εκκαθάριση επεισοδίων που έχουν ληφθεί - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Είστε βέβαιοι ότι θέλετε να διαγράψετε τη λίστα των επεισοδίων που έχετε κάνει λήψη για τον επιλεγμένο κανόνα; - + Regex mode: use Perl-compatible regular expressions Λειτουργία regex: χρησιμοποιήστε συμβατές-με-Perl κανονικές εκφράσεις - - + + Position %1: %2 Θέση %1: %2 - + Wildcard mode: you can use Λειτουργία wildcard: μπορείτε να χρησιμοποιήσετε - - + + Import error Σφάλμα εισαγωγής - + Failed to read the file. %1 Αποτυχία ανάγνωσης αρχείου. %1 - + ? to match any single character ? για να αντιστοιχηθεί με οποιονδήποτε μονό χαρακτήρα - + * to match zero or more of any characters * για να αντιστοιχηθεί με κανέναν ή περισσότερους από τυχόν χαρακτήρες - + Whitespaces count as AND operators (all words, any order) Τα κενά μετράνε ως τελεστές AND (όλες οι λέξεις, οποιαδήποτε σειρά) - + | is used as OR operator Το | χρησιμοποιείται ως τελεστής OR - + If word order is important use * instead of whitespace. Αν η σειρά των λέξεων παίζει ρόλο χρησιμοποιείστε * αντί για κενό. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Μια έκφραση με ένα κενό %1 όρο (e.g. %2) - + will match all articles. θα αντιστοιχηθεί με όλα τα άρθρα. - + will exclude all articles. θα εξαιρέσει όλα τα άρθρα. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Δεν είναι δυνατή η δημιουργία φακέλου συνέχισης torrent: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Δεν είναι δυνατή η ανάλυση των δεδομένων συνέχισης: μη έγκυρη μορφή - - + + Cannot parse torrent info: %1 Δεν είναι δυνατή η ανάλυση των πληροφοριών torrent: %1 - + Cannot parse torrent info: invalid format Δεν είναι δυνατή η ανάλυση πληροφοριών torrent: μη έγκυρη μορφή - + Mismatching info-hash detected in resume data Εντοπίστηκε αναντιστοιχία hash πληροφοριών στα δεδομένα συνέχισης - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Δεν ήταν δυνατή η αποθήκευση των μεταδεδομένων του torrent στο '%1'. Σφάλμα: %2 - + Couldn't save torrent resume data to '%1'. Error: %2. Δεν ήταν δυνατή η αποθήκευση των δεδομένων συνέχισης του torrent στο '%1'. Σφάλμα: %2 @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Δεν είναι δυνατή η ανάλυση των δεδομένων συνέχισης: %1 - + Resume data is invalid: neither metadata nor info-hash was found Τα δεδομένα συνέχισης δεν είναι έγκυρα: δεν βρέθηκαν μεταδεδομένα ούτε info-hash - + Couldn't save data to '%1'. Error: %2 Δεν ήταν δυνατή η αποθήκευση των δεδομένων στο '%1'. Σφάλμα: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Δεν βρέθηκε. - + Couldn't load resume data of torrent '%1'. Error: %2 Δεν ήταν δυνατή η φόρτωση των δεδομένων συνέχισης του torrent '%1'. Σφάλμα: %2 - - + + Database is corrupted. Η βάση δεδομένων έχει καταστραφεί. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Δεν ήταν δυνατή η ενεργοποίηση της λειτουργίας καταγραφής εγγραφής πριν από την εγγραφή (WAL). Σφάλμα: %1. - + Couldn't obtain query result. Δεν ήταν δυνατή η λήψη του αποτελέσματος του ερωτήματος. - + WAL mode is probably unsupported due to filesystem limitations. Η λειτουργία WAL πιθανώς δεν υποστηρίζεται λόγω περιορισμών του συστήματος αρχείων. - + + + Cannot parse resume data: %1 + Δεν είναι δυνατή η ανάλυση των δεδομένων συνέχισης: %1 + + + + + Cannot parse torrent info: %1 + Δεν είναι δυνατή η ανάλυση των πληροφοριών torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Δεν ήταν δυνατή η έναρξη της συναλλαγής. Σφάλμα: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Δεν ήταν δυνατή η αποθήκευση των μεταδεδομένων του torrent Σφάλμα: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Δεν ήταν δυνατή η αποθήκευση των δεδομένων συνέχισης για το torrent '%1'. Σφάλμα: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Δεν ήταν δυνατή η διαγραφή των δεδομένων συνέχισης του torrent '%1'. Σφάλμα: %2 - + Couldn't store torrents queue positions. Error: %1 Δεν ήταν δυνατή η αποθήκευση των θέσεων των torrents στην ουρά. Σφάλμα: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Υποστήριξη Distributed Hash Table (DHT): %1 - - - - - - - - - + + + + + + + + + ON ΕΝΕΡΓΟ - - - - - - - - - + + + + + + + + + OFF ΑΝΕΝΕΡΓΟ - - + + Local Peer Discovery support: %1 Υποστήριξη Ανακάλυψης Τοπικών Peer: %1 - + Restart is required to toggle Peer Exchange (PeX) support Απαιτείται επανεκκίνηση για εναλλαγή υποστήριξης Peer Exchange (PeX). - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Απέτυχε η συνέχιση του torrent. Torrent: "%1". Αιτία: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Απέτυχε η συνέχιση του torrent: ανιχνεύτηκε ασυνεπές ID torrent. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Εντοπίστηκαν ασυνεπή δεδομένα: λείπει η κατηγορία από το αρχείο διαμόρφωσης. Η κατηγορία θα ανακτηθεί, αλλά οι ρυθμίσεις της θα επανέλθουν στις προεπιλογές. Torrent: "%1". Κατηγορία: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Εντοπίστηκαν ασυνεπή δεδομένα: μη έγκυρη κατηγορία. Torrent: "%1". Κατηγορία: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Εντοπίστηκε αναντιστοιχία μεταξύ των διαδρομών αποθήκευσης της ανακτημένης κατηγορίας και της τρέχουσας διαδρομής αποθήκευσης του torrent. Το Torrent έχει πλέον αλλάξει σε Χειροκίνητη λειτουργία. Torrent: "%1". Κατηγορία: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Εντοπίστηκαν ασυνεπή δεδομένα: Η ετικέτα λείπει από το αρχείο διαμόρφωσης. Η ετικέτα θα ανακτηθεί. Torrent: "%1". Ετικέτα: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Εντοπίστηκαν ασυνεπή δεδομένα: μη έγκυρη ετικέτα. Torrent: "%1". Ετικέτα: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Εντοπίστηκε συμβάν αφύπνισης του συστήματος. Επανάληψη της αναγγελίας σε όλους τους trackers... - + Peer ID: "%1" ID Peer: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Υποστήριξη Ανταλλαγής Peer (PeX): %1 - - + + Anonymous mode: %1 Ανώνυμη λειτουργία: %1 - - + + Encryption support: %1 Υποστήριξη κρυπτογράφησης: %1 - - + + FORCED ΕΞΑΝΑΓΚΑΣΜΕΝΟ - + Could not find GUID of network interface. Interface: "%1" Δεν ήταν δυνατή η εύρεση του GUID της διεπαφής δικτύου. Διεπαφή: "%1" - + Trying to listen on the following list of IP addresses: "%1" Προσπάθεια ακρόασης στην ακόλουθη λίστα διευθύνσεων IP: "%1" - + Torrent reached the share ratio limit. Το torrent έφτασε το όριο αναλογίας διαμοιρασμού. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Το torrent αφαιρέθηκε. - - - - - - Removed torrent and deleted its content. - Αφαιρέθηκε το torrent και διαγράφηκε το περιεχόμενό του. - - - - - - Torrent paused. - Έγινε παύση του torrent. - - - - - + Super seeding enabled. Η λειτουργία super seeding ενεργοποιήθηκε. - + Torrent reached the seeding time limit. Το torrent έφτασε το όριο χρόνου seeding. - + Torrent reached the inactive seeding time limit. Το torrent έφτασε το χρονικό όριο του ανενεργού seeding. - + Failed to load torrent. Reason: "%1" Αποτυχία φόρτωσης torrent. Αιτία: "%1." - + I2P error. Message: "%1". Σφάλμα I2P. Μήνυμα: "%1". - + UPnP/NAT-PMP support: ON Υποστήριξη UPnP/NAT-PMP: ΕΝΕΡΓΗ - + + Saving resume data completed. + Η αποθήκευση δεδομένων συνέχισης ολοκληρώθηκε. + + + + BitTorrent session successfully finished. + Η συνεδρία του BitTorrent ολοκληρώθηκε επιτυχώς. + + + + Session shutdown timed out. + Ο τερματισμός της συνεδρίας έληξε. + + + + Removing torrent. + Αφαίρεση torrent. + + + + Removing torrent and deleting its content. + Αφαίρεση torrent και διαγραφή του περιεχομένου του. + + + + Torrent stopped. + Το torrent σταμάτησε. + + + + Torrent content removed. Torrent: "%1" + Το περιεχόμενο του torrent διαγράφηκε. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Απέτυχε η αφαίρεση του περιεχομένου του torrent. Torrent: "%1". Σφάλμα: "%2" + + + + Torrent removed. Torrent: "%1" + Το torrent αφαιρέθηκε. Torrent: "%1" + + + + Merging of trackers is disabled + Η συγχώνευση trackers είναι απενεργοποιημένη + + + + Trackers cannot be merged because it is a private torrent + Δεν είναι δυνατή η συγχώνευση των Trackers επειδή είναι ιδιωτικός torrent + + + + Trackers are merged from new source + Οι trackers συγχωνεύονται από νέα πηγή + + + UPnP/NAT-PMP support: OFF Υποστήριξη UPnP/NAT-PMP: ΑΝΕΝΕΡΓΗ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Αποτυχία εξαγωγής torrent. Torrent: "%1". Προορισμός: "%2". Αιτία: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Ματαίωση αποθήκευσης των δεδομένων συνέχισης. Αριθμός torrent σε εκκρεμότητα: %1 - + The configured network address is invalid. Address: "%1" Η διαμορφωμένη διεύθυνση δικτύου δεν είναι έγκυρη. Διεύθυνση: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Αποτυχία εύρεσης της διαμορφωμένης διεύθυνσης δικτύου για ακρόαση. Διεύθυνση: "%1" - + The configured network interface is invalid. Interface: "%1" Η διαμορφωμένη διεπαφή δικτύου δεν είναι έγκυρη. Διεπαφή: "%1" - + + Tracker list updated + Ενημερώθηκε η λίστα tracker + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Απορρίφθηκε μη έγκυρη διεύθυνση IP κατά την εφαρμογή της λίστας των αποκλεισμένων IP διευθύνσεων. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Προστέθηκε tracker στο torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Καταργήθηκε ο tracker από το torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Προστέθηκε το URL seed στο torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Καταργήθηκε το URL seed από το torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Το torrent τέθηκε σε παύση. Ονομα torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Αποτυχία αφαίρεσης partfile. Torrent: "%1". Αιτία: "%2". - + Torrent resumed. Torrent: "%1" Το torrent τέθηκε σε συνέχιση. Ονομα torrent: "%1" - + Torrent download finished. Torrent: "%1" Η λήψη του torrent ολοκληρώθηκε. Ονομα torrrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Η μετακίνηση του torrent ακυρώθηκε. Ονομα torrent: "%1". Προέλευση: "%2". Προορισμός: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Το torrent τέθηκε σε διακοπή. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Απέτυχε η προσθήκη του torrent στην ουρά μετακίνησης torrent. Ονομα Torrent: "%1". Προέλευση: "%2". Προορισμός: "%3". Αιτία: το torrent μετακινείται αυτήν τη στιγμή στον προορισμό - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Απέτυχε η προσθήκη του torrent στην ουρά μετακίνησης torrent. Ονομα Torrent: "%1". Προέλευση: "%2". Προορισμός: "%3". Αιτία: και οι δύο διαδρομές είναι ίδιες - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Μετακίνηση torrent σε ουρά. Torrent: "%1". Προέλευση: "%2". Προορισμός: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Εναρξη μετακίνησης torrent. Ονομα Torrent: "%1". Προορισμός: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Αποτυχία αποθήκευσης της διαμόρφωσης Κατηγοριών. Αρχείο: "%1". Σφάλμα: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Αποτυχία ανάλυσης της διαμόρφωσης Κατηγοριών. Αρχείο: "%1". Σφάλμα: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Επιτυχής ανάλυση του αρχείου φίλτρου IP. Αριθμός κανόνων που εφαρμόστηκαν: %1 - + Failed to parse the IP filter file Αποτυχία ανάλυσης του αρχείου φίλτρου IP - + Restored torrent. Torrent: "%1" Εγινε επαναφορά του torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Προστέθηκε νέο torrrent. Torrrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Το torrent παρουσίασε σφάλμα. Torrent: "%1". Σφάλμα: %2. - - - Removed torrent. Torrent: "%1" - Το torrent αφαιρέθηκε. Torrrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Το torrent αφαιρέθηκε και τα αρχεία του διαγράφτηκαν. Torrrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Λείπουν οι παράμετροι SSL του Torrent. Torrent: "%1". Μήνυμα: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Ειδοποίηση σφάλματος αρχείου. Torrent: "%1". Αρχείο: "%2". Αιτία: %3 - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP: Αποτυχία αντιστοίχισης θυρών. Μήνυμα: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP: Επιτυχία αντιστοίχισης θυρών. Μήνυμα: "%1" - + IP filter this peer was blocked. Reason: IP filter. Φίλτρο IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). φιλτραρισμένη θύρα (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). προνομιακή θύρα (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" Η σύνοδος BitTorrent αντιμετώπισε ένα σοβαρό σφάλμα. Λόγος: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Σφάλμα SOCKS5 proxy. Διεύθυνση: %1. Μήνυμα: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 περιορισμοί μικτής λειτουργίας - + Failed to load Categories. %1 Αποτυχία φόρτωσης Κατηγοριών. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Αποτυχία φόρτωσης της διαμόρφωση κατηγοριών. Αρχείο: "%1". Σφάλμα: "Μη έγκυρη μορφή δεδομένων" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Καταργήθηκε το torrent αλλά απέτυχε η διαγραφή του περιεχόμενού του ή/και του partfile του. Torrent: "% 1". Σφάλμα: "% 2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. Το %1 είναι απενεργοποιημένο - + %1 is disabled this peer was blocked. Reason: TCP is disabled. Το %1 είναι απενεργοποιημένο - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Η αναζήτηση DNS για το URL seed απέτυχε. Torrent: "%1". URL: "%2". Σφάλμα: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Ελήφθη μήνυμα σφάλματος από URL seed. Torrent: "%1". URL: "%2". Μήνυμα: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Επιτυχής ακρόαση της IP. IP: "%1". Θύρα: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Αποτυχία ακρόασης της IP. IP: "%1". Θύρα: "%2/%3". Αιτία: "%4" - + Detected external IP. IP: "%1" Εντοπίστηκε εξωτερική IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Σφάλμα: Η εσωτερική ουρά ειδοποιήσεων είναι πλήρης και ακυρώθηκαν ειδοποιήσεις, μπορεί να διαπιστώσετε μειωμένες επιδόσεις. Τύπος ακυρωμένων ειδοποιήσεων: "%1". Μήνυμα: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Το torrent μετακινήθηκε με επιτυχία. Torrent: "%1". Προορισμός: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Αποτυχία μετακίνησης torrent. Torrent: "%1". Προέλευση: "%2". Προορισμός: "%3". Αιτία: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Σφάλμα έναρξης seeding BitTorrent::TorrentCreator - + Operation aborted Η λειτουργία διακόπηκε - - + + Create new torrent file failed. Reason: %1. Αποτυχία δημιουργίας νέου αρχείου torrent. Αιτία: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Αποτυχία προσθήκης του peer "%1" στο torrent "%2". Αιτία: %3 - + Peer "%1" is added to torrent "%2" Το peer "%1" προστέθηκε στο torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Εντοπίστηκαν μη αναμενόμενα δεδομένα. Torrent: %1. Δεδομένα: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Δεν ήταν δυνατή η εγγραφή στο αρχείο. Αιτία: "%1". Το Torrent είναι πλέον σε λειτουργία "μόνο μεταφόρτωση". - + Download first and last piece first: %1, torrent: '%2' Λήψη πρώτου και τελευταίου κομματιού πρώτα: %1, torrent: '%2' - + On Ενεργό - + Off Ανενεργό - + Failed to reload torrent. Torrent: %1. Reason: %2 Απέτυχε η επαναφόρτωση του torrent. Torrent: %1. Αιτία: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Αποτυχία δημιουργίας δεδομένων συνέχισης. Torrent: "%1". Αιτία: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Αποτυχία επαναφοράς torrent. Τα αρχεία πιθανότατα μετακινήθηκαν ή ο χώρος αποθήκευσης δεν είναι προσβάσιμος. Torrent: "%1". Αιτία: "%2" - + Missing metadata Τα μεταδεδομένα λείπουν - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Αποτυχία μετονομασίας αρχείου. Torrent: "%1", αρχείο: "%2", αιτία: "%3" - + Performance alert: %1. More info: %2 Προειδοποίηση απόδοσης: %1. Περισσότερες πληροφορίες: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Η παράμετρος '%1' πρέπει να ακολουθεί τη σύνταξη '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Η παράμετρος '%1' πρέπει να ακολουθεί τη σύνταξη '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Αναμενόταν ακέραιος αριθμός στη μεταβλητή περιβάλλοντος '%1', αλλά ελήφθη '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Η παράμετρος '%1' πρέπει να ακολουθεί τη σύνταξη '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Αναμενόταν %1 στη μεταβλητή περιβάλλοντος '%2', αλλά ελήφθη '%3' - - + + %1 must specify a valid port (1 to 65535). Το %1 πρέπει να καθορίσει μια έγκυρη θύρα (1 έως 65535). - + Usage: Χρήση: - + [options] [(<filename> | <url>)...] [επιλογές] [(<filename> | <url>)...] - + Options: Επιλογές: - + Display program version and exit Εμφάνιση έκδοσης προγράμματος και έξοδος - + Display this help message and exit Εμφάνιση αυτού του μηνύματος βοήθειας και έξοδο - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Η παράμετρος '%1' πρέπει να ακολουθεί τη σύνταξη '%1=%2' + + + Confirm the legal notice Επιβεβαιώστε τη νομική ειδοποίηση - - + + port θύρα - + Change the WebUI port Αλλάξτε τη θύρα WebUI - + Change the torrenting port Αλλαγή της θύρας του torrenting - + Disable splash screen Απενεργοποίηση οθόνης εκκίνησης - + Run in daemon-mode (background) Εκτέλεση σε λειτουργία daemon (παρασκήνιο) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Αποθήκευση αρχείων διαμόρφωσης σε <dir> - - + + name όνομα - + Store configuration files in directories qBittorrent_<name> Αποθήκευση αρχείων διαμόρφωσης σε καταλόγους qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Κάντε hack στα fastresume αρχεία του libtorrent και κάντε τις διαδρομές των αρχείων σχετικές με τον κατάλογο του προφίλ - + files or URLs αρχεία ή URLs - + Download the torrents passed by the user Λήψη των torrents που δόθηκαν από τον χρήστη - + Options when adding new torrents: Επιλογές όταν προστίθενται νέα torrents: - + path διαδρομή - + Torrent save path Διαδρομή αποθήκευσης torrent - - Add torrents as started or paused - Προσθήκη torrents ως εκκινημένα ή σε παύση + + Add torrents as running or stopped + Προσθήκη torrents ως εκκινημένα ή σε διακοπή - + Skip hash check Παράλειψη ελέγχου hash - + Assign torrents to category. If the category doesn't exist, it will be created. Αναθέστε torrents σε μια κατηγορία. Αν η κατηγορία δεν υπάρχει, θα δημιουργηθεί. - + Download files in sequential order Λήψη αρχείων με διαδοχική σειρά - + Download first and last pieces first Λήψη των πρώτων και των τελευταίων κομματιών πρώτα - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Καθορίστε εάν ο διάλογος «Προσθήκη νέου Torrent» θα ανοίγει όταν προσθέτετε ένα torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Οι τιμές των επιλογών ενδέχεται να παρέχονται από τις μεταβλητές περιβάλλοντος. Για επιλογή με την ονομασία «onoma-parametrou», η μεταβλητή περιβάλλοντος έχει ονομασία «QBT_ONOMA_PARAMETROU» (στα κεφαλαία το «-» αντικαθίσταται με «_»). Για να στείλετε τιμές σήμανσης ορίστε την μεταβλητή σε «1» ή «TRUE». Για παράδειγμα, για να απενεργοποιήσετε της οθόνης εκκίνησης: - + Command line parameters take precedence over environment variables Οι παράμετροι της γραμμής εντολών υπερισχύουν των μεταβλητών περιβάλλοντος - + Help Βοήθεια @@ -2881,12 +3066,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Συνέχιση torrents + Start torrents + Έναρξη torrents - Pause torrents + Stop torrents Παύση torrents @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Επεξεργασία... - + Reset Επαναφορά + + + System + Σύστημα + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Αποτυχία φόρτωσης του προσαρμοσμένου φύλλου στυλ του θέματος. %1 - + Failed to load custom theme colors. %1 Αποτυχία φόρτωσης προσαρμοσμένων χρωμάτων θέματος. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Αποτυχία φόρτωσης των προεπιλεγμένων χρωμάτων του θέματος. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Διαγραφή και των αρχείων + Also remove the content files + Αφαίρεση επίσης και τα αρχεία περιεχομένου - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Είστε σίγουροι πως θέλετε να διαγράψετε το '%1' από την λίστα μεταφορών; - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Είστε σίγουροι πως θέλετε να διαγράψετε αυτά τα "%1" torrents από τη λίστα μεταφορών; - + Remove Αφαίρεση @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Λήψη από URLs - + Add torrent links Προσθήκη συνδέσμων torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Ένας σύνδεσμος ανά γραμμή (υποστηρίζονται σύνδεσμοι HTTP, σύνδεσμοι Magnet και info-hashes) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Λήψη - + No URL entered Δεν έχετε εισάγει URL - + Please type at least one URL. Παρακαλώ εισάγετε τουλάχιστον ένα URL. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Σφάλμα Ανάλυσης: Το αρχείο φίλτρου δεν είναι ένα έγκυρο αρχείο PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Μορφή Μοτίβου + + + + Plain text + Απλό κείμενο + + + + Wildcards + Wildcards + + + + Regular expression + Κανονική έκφραση + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Λήψη torrent... Πηγή: "%1" - - Trackers cannot be merged because it is a private torrent - Δεν είναι δυνατή η συγχώνευση των Trackers επειδή είναι ιδιωτικός torrent - - - + Torrent is already present Το torrent υπάρχει ήδη - + + Trackers cannot be merged because it is a private torrent. + Οι trackers δεν μπορούν να ενωθούν γιατί αυτό είναι ένα private torrent + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Το torrent '%1' υπάρχει ήδη στη λίστα λήψεων. Θέλετε να γίνει συγχώνευση των tracker από τη νέα πηγή; @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. Η βάση δεδομένων είναι κατεστραμμένη: δεν βρέθηκε ενότητα δεδομένων. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Το μέγεθος του αιτήματος HTTP υπερβαίνει το όριο, γίνεται κλείσιμο του socket. Όριο: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Κακή μέθοδος αίτησης http, κλείσιμο socket. IP: %1. Μέθοδος: «%2» - + Bad Http request, closing socket. IP: %1 Κακό HTTP αίτημα, γίνεται κλείσιμο του socket. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Περιήγηση... - + Reset Επαναφορά - + Select icon Επιλογή εικονιδίου - + Supported image files Υποστηριζόμενα αρχεία εικόνας + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Η διαχείριση ενέργειας βρήκε κατάλληλη διεπαφή D-Bus. Διασύνδεση: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Σφάλμα διαχείρισης ενέργειας. Δράση: %1. Σφάλμα: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Μη αναμενόμενο σφάλμα διαχείρισης ενέργειας. Πολιτεία: %1. Σφάλμα: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. Η %1 αποκλείστηκε. Αιτία: %2. - + %1 was banned 0.0.0.0 was banned Η %1 αποκλείστηκε @@ -3369,62 +3616,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 πρέπει να είναι ενιαία παράμετρος γραμμής εντολών. - + Run application with -h option to read about command line parameters. Εκτελέστε την εφαρμογή με την επιλογή -h για να διαβάσετε σχετικά με τις παραμέτρους της γραμμής εντολών. - + Bad command line Κακή γραμμή εντολών - + Bad command line: Κακή γραμμή εντολών: - + An unrecoverable error occurred. Εμφανίστηκε σφάλμα που δεν μπορεί να αποκατασταθεί. + - qBittorrent has encountered an unrecoverable error. Το qBittorrent αντιμετώπισε ένα μη ανακτήσιμο σφάλμα. - + You cannot use %1: qBittorrent is already running. Δεν μπορείτε να χρησιμοποιήσετε το %1: το qBittorrent εκτελείται ήδη. - + Another qBittorrent instance is already running. Μια άλλη υπόσταση του qBittorrent εκτελείται ήδη. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Βρέθηκε απροσδόκητη υπόσταση qBittorrent. Γίνεται έξοδος από αυτήν την υπόσταση. Αναγνωριστικό τρέχουσας διεργασίας: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. - + Σφάλμα κατά το daemonizing. Αιτία: "%1". Κωδικός σφάλματος: %2. @@ -3435,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Επεξεργασία - + &Tools Ε&ργαλεία - + &File &Αρχείο - + &Help &Βοήθεια - + On Downloads &Done Στην Ολοκλήρωση των &Λήψεων - + &View &Προβολή - + &Options... &Επιλογές… - - &Resume - &Συνέχιση - - - + &Remove &Αφαίρεση - + Torrent &Creator &Δημιουργός Torrent - - + + Alternative Speed Limits Εναλλακτικά Όρια Ταχύτητας - + &Top Toolbar Κορυφαία &Γραμμή εργαλείων - + Display Top Toolbar Εμφάνιση Κορυφαίας Γραμμής εργαλείων - + Status &Bar Γραμμή κατάστασης - + Filters Sidebar Πλαϊνή γραμμή φίλτρων - + S&peed in Title Bar &Ταχύτητα στην Γραμμή Τίτλου - + Show Transfer Speed in Title Bar Εμφάνιση Ταχύτητας Μεταφοράς στην Γραμμή Τίτλου - + &RSS Reader Αναγνώστης &RSS - + Search &Engine &Μηχανή Αναζήτησης - + L&ock qBittorrent &Κλείδωμα qBittorrent - + Do&nate! &Δωρεά! - + + Sh&utdown System + + + + &Do nothing Μην κάνεις &τίποτα - + Close Window Κλείσιμο Παραθύρου - - R&esume All - Σ&υνέχιση Όλων - - - + Manage Cookies... Διαχείριση Cookies... - + Manage stored network cookies Διαχείριση αποθηκευμένων cookies δικτύου - + Normal Messages Κανονικά Μηνύματα - + Information Messages Μηνύματα Πληροφοριών - + Warning Messages Μηνύματα Προειδοποίησης - + Critical Messages Κρίσιμα Μηνύματα - + &Log Κ&αταγραφή - + + Sta&rt + Εκκίνη&ση + + + + Sto&p + &Διακοπή + + + + R&esume Session + + + + + Pau&se Session + &Παύση Συνεδρίας + + + Set Global Speed Limits... Ορίστε Γενικά Όρια Ταχύτητας... - + Bottom of Queue Τέλος της Ουράς - + Move to the bottom of the queue Μετακίνηση στο τέλος της ουράς - + Top of Queue Αρχή της Ουράς - + Move to the top of the queue Μετακίνηση στην αρχή της ουράς - + Move Down Queue Μετακίνηση Ουράς Κάτω - + Move down in the queue Μετακίνηση προς τα κάτω στην ουρά - + Move Up Queue Μετακίνηση Ουράς Πάνω - + Move up in the queue Μετακίνηση προς τα πάνω στην ουρά - + &Exit qBittorrent Έ&ξοδος qBittorrent - + &Suspend System Α&ναστολή Συστήματος - + &Hibernate System Α&δρανοποίηση Συστήματος - - S&hutdown System - &Τερματισμός Συστήματος - - - + &Statistics &Στατιστικά - + Check for Updates Έλεγχος για ενημερώσεις - + Check for Program Updates Έλεγχος για ενημερώσεις του προγράμματος - + &About &Σχετικά - - &Pause - &Παύση - - - - P&ause All - Π&αύση Όλων - - - + &Add Torrent File... Προσθήκη &Αρχείου Torrent… - + Open Άνοιγμα - + E&xit Έ&ξοδος - + Open URL Άνοιγμα URL - + &Documentation &Τεκμηρίωση - + Lock Κλείδωμα - - - + + + Show Εμφάνιση - + Check for program updates Έλεγχος για ενημερώσεις προγράμματος - + Add Torrent &Link... Προσθήκη &Σύνδεσμου Torrent… - + If you like qBittorrent, please donate! Αν σας αρέσει το qBittorrent, παρακαλώ κάντε μια δωρεά! - - + + Execution Log Καταγραφή Εκτέλεσης - + Clear the password Καθαρισμός του κωδικού πρόσβασης - + &Set Password &Ορίστε κωδικό πρόσβασης - + Preferences Προτιμήσεις - + &Clear Password &Καθαρισμός του κωδικού πρόσβασης - + Transfers Μεταφορές - - + + qBittorrent is minimized to tray Το qBittorrent ελαχιστοποιήθηκε στη γραμμή εργασιών - - - + + + This behavior can be changed in the settings. You won't be reminded again. Αυτή η συμπεριφορά μπορεί να αλλάξει στις ρυθμίσεις. Δεν θα σας γίνει υπενθύμιση ξανά. - + Icons Only Μόνο Εικονίδια - + Text Only Μόνο Κείμενο - + Text Alongside Icons Κείμενο Δίπλα στα Εικονίδια - + Text Under Icons Κείμενο Κάτω από τα Εικονίδια - + Follow System Style Ακολούθηση Στυλ Συστήματος - - + + UI lock password Κωδικός κλειδώματος UI - - + + Please type the UI lock password: Παρακαλώ εισάγετε τον κωδικό κλειδώματος του UI: - + Are you sure you want to clear the password? Είστε σίγουροι πως θέλετε να εκκαθαρίσετε τον κωδικό; - + Use regular expressions Χρήση κανονικών εκφράσεων - + + + Search Engine + Μηχανή Αναζήτησης + + + + Search has failed + Η αναζήτηση απέτυχε + + + + Search has finished + Η αναζήτηση ολοκληρώθηκε + + + Search Αναζήτηση - + Transfers (%1) Μεταφορές (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. Το qBittorrent μόλις ενημερώθηκε και χρειάζεται επανεκκίνηση για να ισχύσουν οι αλλαγές. - + qBittorrent is closed to tray Το qBittorrent έκλεισε στη γραμμή εργασιών - + Some files are currently transferring. Μερικά αρχεία μεταφέρονται αυτή τη στιγμή. - + Are you sure you want to quit qBittorrent? Είστε σίγουροι ότι θέλετε να κλείσετε το qBittorrent? - + &No &Όχι - + &Yes &Ναι - + &Always Yes &Πάντα Ναι - + Options saved. Οι επιλογές αποθηκεύτηκαν. - + + [PAUSED] %1 + %1 is the rest of the window title + [ΣΕ ΠΑΥΣΗ] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. - - + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Λείπει το Python Runtime - + qBittorrent Update Available Διαθέσιμη Ενημέρωση του qBittorrent - + 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 απαιτείται για τη χρήση της μηχανής αναζήτησης αλλά δεν φαίνεται να είναι εγκατεστημένο. - - + + Old Python Runtime Παλιό Python Runtime - + A new version is available. Μια νέα έκδοση είναι διαθέσιμη - + Do you want to download %1? Θέλετε να κάνετε λήψη του %1; - + Open changelog... Άνοιγμα changelog... - + No updates available. You are already using the latest version. Δεν υπάρχουν διαθέσιμες ενημερώσεις. Χρησιμοποιείτε ήδη την πιο πρόσφατη έκδοση. - + &Check for Updates &Έλεγχος για ενημερώσεις - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Η Python έκδοσή σας (%1) είναι απαρχαιωμένη. Ελάχιστη απαίτηση: %2. Θέλετε να εγκαταστήσετε τώρα μια νεότερη έκδοση; - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Η Python έκδοσή σας (%1) είναι απαρχαιωμένη. Παρακαλώ αναβαθμίστε στην τελευταία έκδοση για να λειτουργήσουν οι μηχανές αναζήτησης. Ελάχιστη απαίτηση: %2. - + + Paused + Σε Παύση + + + Checking for Updates... Αναζήτηση για ενημερώσεις… - + Already checking for program updates in the background Γίνεται ήδη έλεγχος για ενημερώσεις προγράμματος στο παρασκήνιο - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Σφάλμα λήψης - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Η εγκατάσταση του Python δε μπορεί να ληφθεί, αιτία: %1. -Παρακαλούμε εγκαταστήστε το χειροκίνητα. - - - - + + Invalid password Μη έγκυρος κωδικός πρόσβασης - + Filter torrents... Φίλτρο torrent... - + Filter by: Φίλτρο κατά: - + The password must be at least 3 characters long Ο κωδικός πρόσβασης θα πρέπει να αποτελείται από τουλάχιστον 3 χαρακτήρες - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Άνοιγμα Αρχείων torrent - + Torrent Files Αρχεία Torrent @@ -4232,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Σφάλμα SSL, URL: "%1", σφάλματα: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Αγνόηση σφάλματος SSL, URL: "%1", σφάλματα: "%2" @@ -4585,7 +4908,7 @@ Please install it manually. Finland - Φιλανδία + Φινλανδία @@ -5526,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Η σύνδεση απέτυχε, μη αναγνωρισμένη απάντηση: %1 - + Authentication failed, msg: %1 Ο έλεγχος ταυτότητας απέτυχε, μήνυμα: %1 - + <mail from> was rejected by server, msg: %1 <mail from>απορρίφθηκε από τον διακομιστή, μήνυμα: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>απορρίφθηκε από τον διακομιστή, μήνυμα: %1 - + <data> was rejected by server, msg: %1 <data>απορρίφθηκε από τον διακομιστή, μήνυμα: %1 - + Message was rejected by the server, error: %1 Το μήνυμα απορρίφθηκε από τον διακομιστή, σφάλμα: %1 - + Both EHLO and HELO failed, msg: %1 Τόσο το EHLO όσο και το HELO απέτυχαν, μήνυμα: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Ο διακομιστής SMTP δεν φαίνεται να υποστηρίζει καμία από τις λειτουργίες ελέγχου ταυτότητας που υποστηρίζουμε [CRAM-MD5|PLAIN|LOGIN], παράλειψη ελέγχου ταυτότητας, γνωρίζοντας ότι είναι πιθανό να αποτύχει... Λειτουργίες ελέγχου ταυτότητας διακομιστή: %1 - + Email Notification Error: %1 Σφάλμα ειδοποίησης email: %1 @@ -5604,299 +5927,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Για προχωρημένους - + Customize UI Theme... Προσαρμογή Θέματος UI... - + Transfer List Λίστα Μεταφοράς - + Confirm when deleting torrents Επιβεβαίωση κατά την διαγραφή των torrent - - Shows a confirmation dialog upon pausing/resuming all the torrents - Εμφανίζει ένα παράθυρο επιβεβαίωσης κατά την παύση/επαναφορά όλων των torrents - - - - Confirm "Pause/Resume all" actions - Επιβεβαίωση των ενεργειών "Παύση/Επαναφορά όλων" - - - + Use alternating row colors In table elements, every other row will have a grey background. Χρήση εναλλασσόμενων χρωμάτων σειράς - + Hide zero and infinity values Απόκρυψη μηδενικών και άπειρων τιμών - + Always Πάντα - - Paused torrents only - Μόνο torrents σε παύση - - - + Action on double-click Ενέργεια στο διπλό κλικ - + Downloading torrents: Λήψη torrents: - - - Start / Stop Torrent - Εκκίνηση / Παύση Torrent - - - - + + Open destination folder Άνοιγμα φακέλου προορισμού - - + + No action Καμία ενέργεια - + Completed torrents: Ολοκληρωμένα torrents: - + Auto hide zero status filters Αυτόματη απόκρυψη φίλτρων μηδενικής κατάστασης - + Desktop Επιφάνεια εργασίας - + Start qBittorrent on Windows start up Έναρξη του qBittorrent κατά την εκκίνηση των Windows - + Show splash screen on start up Εμφάνιση οθόνης εκκίνησης κατά την έναρξη - + Confirmation on exit when torrents are active Επιβεβαίωση κατά την έξοδο όταν τα torrents είναι ενεργά - + Confirmation on auto-exit when downloads finish Επιβεβαίωση κατά την αυτόματη έξοδο όταν ολοκληρωθούν οι λήψεις - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Για να ορίσετε το qBittorrent ως προεπιλεγμένο πρόγραμμα για αρχεία .torrent ή/και συνδέσμους Magnet<br/>μπορείτε να αλλάξετε τα<span style=" font-weight:600;">Προεπιλεγμένα προγράμματα</span> από τον <span style=" font-weight:600;">Πίνακα ελέγχου</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Διάταξη περιεχομένου του torrent: - + Original Πρωτότυπο - + Create subfolder Δημιουργία υποφακέλου - + Don't create subfolder Να μη δημιουργηθεί υποφάκελος - + The torrent will be added to the top of the download queue Το torrent θα προστεθεί στην αρχή της ουράς λήψεων - + Add to top of queue The torrent will be added to the top of the download queue Προσθήκη στην αρχή της ουράς - + When duplicate torrent is being added Όταν προστίθεται διπλό torrent - + Merge trackers to existing torrent Συγχώνευση trackers στο υπάρχον torrent - + Keep unselected files in ".unwanted" folder Διατήρηση των μη επιλεγμένων αρχείων στον φάκελο «.unwanted». - + Add... Προσθήκη... - + Options.. Επιλογές… - + Remove Αφαίρεση - + Email notification &upon download completion Ειδοποίηση μέσω emai&l μετά την ολοκλήρωση της λήψης - + + Send test email + Αποστολή δοκιμαστικού email + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Πρωτόκολλο σύνδεσης peer: - + Any Οποιοδήποτε - + I2P (experimental) I2P (πειραματικό) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Αν η &quot;μικτή λειτουργία&quot; είναι ενεργοποιημένη τα I2P torrents επιτρέπονται να λάβουν peers και από άλλες πηγές εκτός του tracker, και να συνδεθούν σε κανονικές IP, παρέχοντας καμία ανωνυμία. Αυτό μπορεί να είναι χρήσιμο όταν ο χρήστης δεν ενδιαφέρεται για την ανωνυμοποίηση του I2P, αλλά εξακολουθεί να θέλει να μπορεί να συνδεθεί σε I2P peers.</p></body></html> - - - + Mixed mode Μικτή λειτουργία - - Some options are incompatible with the chosen proxy type! - Ορισμένες επιλογές δεν είναι συμβατές με τον επιλεγμένο τύπο proxy! - - - + If checked, hostname lookups are done via the proxy Εάν είναι επιλεγμένο, οι αναζητήσεις hostname γίνονται μέσω του proxy - + Perform hostname lookup via proxy Εκτέλεση αναζήτησης hostname μέσω proxy - + Use proxy for BitTorrent purposes Χρήση διακομιστή μεσολάβησης για σκοπούς BitTorrent - + RSS feeds will use proxy Οι ροές RSS θα χρησιμοποιούν proxy - + Use proxy for RSS purposes Χρήση διακομιστή μεσολάβησης για σκοπούς RSS - + Search engine, software updates or anything else will use proxy Η μηχανή αναζήτησης, οι ενημερώσεις λογισμικού ή οτιδήποτε άλλο θα χρησιμοποιούν proxy - + Use proxy for general purposes Χρήση διακομιστή μεσολάβησης για γενικούς σκοπούς - + IP Fi&ltering Φι&λτράρισμα IP - + Schedule &the use of alternative rate limits Προ&γραμματισμός χρήσης εναλλακτικών ορίων ρυθμού - + From: From start time Από: - + To: To end time Προς: - + Find peers on the DHT network Εύρεση peers στο δίκτυο DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Disable encryption: Only connect to peers without protocol encryption Να απενεργοποιηθεί η κρυπτογράφηση: Σύνδεση σε peers χωρίς πρωτόκολλο κρυπτογράφησης - + Allow encryption Να επιτρέπεται η κρυπτογράφηση - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Περισσότερες πληροφορίες</a>) - + Maximum active checking torrents: Μέγιστος έλεγχος ενεργών torrents: - + &Torrent Queueing Torrent σε &Ουρά - + When total seeding time reaches Όταν ο συνολικός χρόνος seeding ολοκληρωθεί - + When inactive seeding time reaches Όταν ο χρόνος ανενεργού seeding ολοκληρωθεί - - A&utomatically add these trackers to new downloads: - Αυτόμα&τη προσθήκη αυτών των trackers σε νέες λήψεις: - - - + RSS Reader Αναγνώστης RSS - + Enable fetching RSS feeds Ενεργοποίηση ανάκτησης ροών RSS - + Feeds refresh interval: Μεσοδιάστημα ανανέωσης ροών: - + Same host request delay: - + Καθυστέρηση αιτήματος ίδιου host: - + Maximum number of articles per feed: Μέγιστος αριθμός άρθρων ανά ροή: - - - + + + min minutes λεπτά - + Seeding Limits Όρια Seeding - - Pause torrent - Παύση torrent - - - + Remove torrent Αφαίρεση torrent - + Remove torrent and its files Αφαίρεση torrent και των αρχείων του - + Enable super seeding for torrent Ενεργοποίηση super seeding για το torrent - + When ratio reaches Όταν η αναλογία φτάσει - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Διακοπή torrent + + + + A&utomatically append these trackers to new downloads: + Αυτόματη προσάρτηση αυτών των &trackers σε νέες λήψεις: + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + Μήκος ιστορικού + + + RSS Torrent Auto Downloader Αυτόματος Λήπτης Torrent μέσω RSS - + Enable auto downloading of RSS torrents Ενεργοποίηση αυτόματης λήψης των torrents μέσω RSS - + Edit auto downloading rules... Επεξεργασία των κανόνων αυτόματης λήψης... - + RSS Smart Episode Filter Έξυπνο Φίλτρο Επεισοδίων RSS - + Download REPACK/PROPER episodes Λήψη REPACK/PROPER επεισοδίων - + Filters: Φίλτρα: - + Web User Interface (Remote control) Web UI (Απομακρυσμένος έλεγχος) - + IP address: Διεύθυνση IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv «::» για οποιαδήποτε διεύθυνση IPv6, ή «*» τόσο για IPv4 όσο και για IPv6. - + Ban client after consecutive failures: Αποκλεισμός client μετά από συνεχόμενες αποτυχίες: - + Never Ποτέ - + ban for: αποκλεισμός για: - + Session timeout: Χρονικό όριο λήξης συνεδρίας: - + Disabled Απενεργοποιημένο - - Enable cookie Secure flag (requires HTTPS) - Ενεργοποίηση σήμανσης Secure cookie (απαιτεί HTTPS) - - - + Server domains: Τομείς διακομιστή: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6447,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP Χρήση HTTP&S αντί για HTTP - + Bypass authentication for clients on localhost Παράκαμψη ελέγχου ταυτότητας για clients σε localhost - + Bypass authentication for clients in whitelisted IP subnets Παράκαμψη ελέγχου ταυτότητας για clients σε IP subnets της allowlist - + IP subnet whitelist... Allowlist των IP subnet - + + Use alternative WebUI + Χρήση εναλλακτικού Web UI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Καθορίστε αντίστροφες proxy IPs (ή subnets, π.χ. 0.0.0.0/24) για να χρησιμοποιήσετε τη προωθημένη διεύθυνση του client (X-Forwarded-For header). Χρησιμοποιήστε το ';' για να διαχωρίσετε πολλές εγγραφές. - + Upda&te my dynamic domain name &Ενημέρωση του δυναμικού ονόματος τομέα μου - + Minimize qBittorrent to notification area Ελαχιστοποίηση του qBittorrent στην περιοχή ειδοποιήσεων - + + Search + Αναζήτηση + + + + WebUI + WebUI + + + Interface Διεπαφή - + Language: Γλώσσα - + + Style: + Στυλ: + + + + Color scheme: + Σχέδιο χρωμάτων: + + + + Stopped torrents only + Σταματημένα torrents μόνο + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Στυλ εικονιδίου γραμμής εργασιών: - - + + Normal Κανονικό - + File association Συσχετισμός αρχείων - + Use qBittorrent for .torrent files Χρήση qBittorrent για τα αρχεία torrent - + Use qBittorrent for magnet links Χρήση του qBittorrent για συνδέσμους magnet - + Check for program updates Έλεγχος για ενημερώσεις προγράμματος - + Power Management Διαχείριση Ενέργειας - + + &Log Files + + + + Save path: Διαδρομή αποθήκευσης: - + Backup the log file after: Αντίγραφο ασφαλείας του αρχείου καταγραφής μετά από: - + Delete backup logs older than: Διαγραφή αντιγράφων ασφαλείας αρχείου καταγραφής παλαιότερα από: - + + Show external IP in status bar + + + + When adding a torrent Όταν προστίθεται ένα torrent - + Bring torrent dialog to the front Μεταφορά διαλόγου torrent στο προσκήνιο - + + The torrent will be added to download list in a stopped state + Το torrent θα προστεθεί στη λίστα λήψεων σε κατάσταση διακοπής + + + Also delete .torrent files whose addition was cancelled Επίσης διαγραφή αρχείων .torrent των οποίων η προσθήκη ακυρώθηκε - + Also when addition is cancelled Επίσης όταν ακυρώνεται η προσθήκη - + Warning! Data loss possible! Προειδοποίηση! Πιθανή απώλεια δεδομένων! - + Saving Management Διαχείριση Αποθήκευσης - + Default Torrent Management Mode: Προεπιλεγμένη Λειτουργία Διαχείρισης Torrent: - + Manual Χειροκίνητα - + Automatic Αυτόματα - + When Torrent Category changed: Όταν αλλάξει η Κατηγορία του torrent: - + Relocate torrent Μετεγκατάσταση torrent - + Switch torrent to Manual Mode Εναλλαγή του torrent σε Χειροκίνητη Λειτουργία - - + + Relocate affected torrents Μετεγκατάσταση επηρεασμένων torrents - - + + Switch affected torrents to Manual Mode Εναλλαγή επηρεασμένων torrents σε Χειροκίνητη Λειτουργία - + Use Subcategories Χρήση Υποκατηγοριών - + Default Save Path: Προεπιλεγμένη Διαδρομή Αποθήκευσης: - + Copy .torrent files to: Αντιγραφή αρχείων .torrent στο: - + Show &qBittorrent in notification area Εμφάνιση του &qBittorrent στην περιοχή ειδοποιήσεων - - &Log file - Αρχείο Κ&αταγραφής - - - + Display &torrent content and some options Εμφάνιση περιεχομένων torrent και επιλογών - + De&lete .torrent files afterwards Διαγραφή αρχείων .torrent μετά - + Copy .torrent files for finished downloads to: Αντιγραφή αρχείων .torrent για ολοκληρωμένες λήψεις στο: - + Pre-allocate disk space for all files Προ-εντοπισμός χώρου στο δίσκο για όλα τα αρχεία - + Use custom UI Theme Χρήση προσαρμοσμένου Θέματος UI - + UI Theme file: Αρχείο Θέματος UI: - + Changing Interface settings requires application restart Η αλλαγή ρυθμίσεων διεπαφής απαιτεί επανεκκίνηση της εφαρμογής - + Shows a confirmation dialog upon torrent deletion Εμφανίζει ένα παράθυρο διαλόγου επιβεβαίωσης κατά τη διαγραφή torrent - - + + Preview file, otherwise open destination folder Προεπισκόπηση αρχείου, διαφορετικά άνοιγμα φακέλου προορισμού - - - Show torrent options - Εμφάνιση επιλογών torrent - - - + Shows a confirmation dialog when exiting with active torrents Εμφανίζει ένα παράθυρο διαλόγου επιβεβαίωσης κατά την έξοδο όταν υπάρχουν ενεργά torrent - + When minimizing, the main window is closed and must be reopened from the systray icon Κατά την ελαχιστοποίηση, το κύριο παράθυρο κλείνει και πρέπει να ανοίξει ξανά από το εικονίδιο της περιοχής ειδοποιήσεων - + The systray icon will still be visible when closing the main window Το εικονίδιο στην περιοχή ειδοποιήσεων θα εξακολουθεί να είναι ορατό κατά το κλείσιμο του κύριου παραθύρου - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Κλείσιμο του qBittorrent στην περιοχή ειδοποιήσεων - + Monochrome (for dark theme) Μονόχρωμο (για σκοτεινό θέμα) - + Monochrome (for light theme) Μονόχρωμο (για φωτεινό θέμα) - + Inhibit system sleep when torrents are downloading Αποτροπή αναστολής του συστήματος όταν γίνεται λήψη torrents - + Inhibit system sleep when torrents are seeding Αποτροπή αναστολής του συστήματος όταν γίνεται torrent seeding - + Creates an additional log file after the log file reaches the specified file size Δημιουργεί ένα πρόσθετο αρχείο καταγραφής όταν η καταγραφή φτάσει το καθορισμένο μέγεθος αρχείου - + days Delete backup logs older than 10 days ημέρες - + months Delete backup logs older than 10 months μήνες - + years Delete backup logs older than 10 years χρόνια - + Log performance warnings Προειδοποιήσεις απόδοσης καταγραφής - - The torrent will be added to download list in a paused state - Το torrent θα προστεθεί στη λίστα λήψεων σε κατάσταση παύσης - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Να μην ξεκινά η λήψη αυτόματα - + Whether the .torrent file should be deleted after adding it Εάν το αρχείο .torrent θα πρέπει να διαγραφεί μετά την προσθήκη του - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Προ-εκχώρηση πλήρους μεγέθους αρχείων στο δίσκο πριν την εκκίνηση των λήψεων, για ελαχιστοποίηση του κατακερματισμού. Χρήσιμο μόνο για HDDs. - + Append .!qB extension to incomplete files Προσάρτηση επέκτασης .!qB σε μη ολοκληρωμένα αρχεία - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Όταν ολοκληρωθεί η λήψη ενός torrent, να γίνεται ερώτηση για προσθήκη torrents από τυχόν αρχεία .torrent που βρίσκονται μέσα σε αυτό - + Enable recursive download dialog Ενεργοποίηση διαλόγου αναδρομικής λήψης - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Αυτόματη: Διάφορες ιδιότητες του torrent (π.χ. διαδρομή αποθήκευσης) θα αποφασιστούν από την συσχετισμένη κατηγορία Χειροκίνητη: Διάφορες ιδιότητες του torrent (π.χ. διαδρομή αποθήκευσης) θα πρέπει να οριστούν χειροκίνητα - + When Default Save/Incomplete Path changed: Οταν αλλάξει η Προεπιλεγμένη Αποθήκευση/Ημιτελής διαδρομή: - + When Category Save Path changed: Όταν αλλάξει η Διαδρομή Αποθήκευσης Κατηγορίας: - + Use Category paths in Manual Mode Χρήση διαδρομών Κατηγορίας κατά τη Χειροκίνητη Λειτουργία - + Resolve relative Save Path against appropriate Category path instead of Default one Επιλύστε τη σχετική Διαδρομή Αποθήκευσης έναντι της κατάλληλης διαδρομής Κατηγορίας, αντί για την Προεπιλεγμένη - + Use icons from system theme Χρήση εικονιδίων από το θέμα του συστήματος - + Window state on start up: Κατάσταση παραθύρου κατά την εκκίνηση: - + qBittorrent window state on start up Κατάσταση παραθύρου qBittorrent κατά την εκκίνηση - + Torrent stop condition: Κατάσταση διακοπής torrent: - - + + None Κανένα - - + + Metadata received Ελήφθησαν μεταδεδομένα - - + + Files checked Τα αρχεία ελέγχθηκαν - + Ask for merging trackers when torrent is being added manually Αίτημα συγχώνευσης trackers όταν το torrent προστίθεται χειροκίνητα - + Use another path for incomplete torrents: Χρήση άλλης διαδρομής για ημιτελή torrents: - + Automatically add torrents from: Αυτόματη προσθήκη torrent από: - + Excluded file names Ονόματα αρχείων σε εξαίρεση - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6952,811 @@ readme.txt: φίλτρο για αρχείο με ακριβές όνομα. readme[0-9].txt: φίλτρο για «readme1.txt», «readme2.txt» αλλά όχι «readme10.txt». - + Receiver Παραλήπτης - + To: To receiver Προς: - + SMTP server: Διακομιστής SMTP: - + Sender Αποστολέας - + From: From sender Από: - + This server requires a secure connection (SSL) Αυτός ο διακομιστής απαιτεί ασφαλή σύνδεση (SSL) - - + + Authentication Έλεγχος Ταυτότητας - - - - + + + + Username: Όνομα χρήστη: - - - - + + + + Password: Κωδικός: - + Run external program Εκτέλεση εξωτερικού προγράμμματος - - Run on torrent added - Εκτέλεση κατά την προσθήκη torrent - - - - Run on torrent finished - Εκτέλεση κατά την ολοκλήρωση torrent - - - + Show console window Εμφάνιση παραθύρου κονσόλας - + TCP and μTP TCP και μTP - + Listening Port Θύρα ακρόασης - + Port used for incoming connections: Θύρα που χρησιμοποιείται για εισερχόμενες συνδέσεις: - + Set to 0 to let your system pick an unused port Ορίστε το σε 0 για να επιτρέψετε στο σύστημά σας να επιλέξει μια αχρησιμοποίητη θύρα - + Random Τυχαία - + Use UPnP / NAT-PMP port forwarding from my router Χρήση προώθησης UPnP / NAT - PMP θυρών από τον δρομολογητή μου - + Connections Limits Όρια Συνδέσεων - + Maximum number of connections per torrent: Μέγιστος αριθμός συνδέσεων ανά torrent: - + Global maximum number of connections: Μέγιστος συνολικός αριθμός συνδέσεων: - + Maximum number of upload slots per torrent: Μέγιστος αριθμός slots αποστολής ανά torrent: - + Global maximum number of upload slots: Γενικός μέγιστος αριθμός slots αποστολής: - + Proxy Server Διακομιστής Proxy - + Type: Τύπος: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Θύρα: - + Otherwise, the proxy server is only used for tracker connections Διαφορετικά, ο proxy διακομιστής χρησιμοποιείται μόνο για συνδέσεις tracker - + Use proxy for peer connections Χρήση proxy για συνδέσεις peer - + A&uthentication Έλεγχος &Ταυτότητας - - Info: The password is saved unencrypted - Πληροφορία: Ο κωδικός πρόσβασης έχει αποθηκευθεί μη κρυπτογραφημένος - - - + Filter path (.dat, .p2p, .p2b): Διαδρομή φίλτρου (.dat, .p2p, .p2b): - + Reload the filter Επαναφόρτωση του φίλτρου - + Manually banned IP addresses... Χειροκίνητα αποκλεισμένες IP διευθύνσεις... - + Apply to trackers Εφαρμογή στους trackers - + Global Rate Limits Γενικά Όρια Ρυθμού - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Αποστολή: - - + + Download: Λήψη - + Alternative Rate Limits Εναλλακτικά Όρια Ρυθμού - + Start time Ώρα εκκίνησης - + End time Ώρα λήξης - + When: Πότε: - + Every day Κάθε μέρα - + Weekdays Καθημερινές - + Weekends Σαββατοκύριακα - + Rate Limits Settings Ρυθμίσεις Ορίων Ρυθμού - + Apply rate limit to peers on LAN Εφαρμογή ορίου ρυθμού σε peers στο LAN - + Apply rate limit to transport overhead Εφαρμογή ορίων ρυθμού στο κόστος μεταφοράς - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Εφαρμογή ορίων ρυθμού στο uTP πρωτόκολλο - + Privacy Ιδιωτικότητα - + Enable DHT (decentralized network) to find more peers Ενεργοποίηση DHT (αποκεντρωμένο δίκτυο) για εύρεση περισσοτέρων peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Ανταλλαγή peers με συμβατούς Bittorrent clients (μTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Ενεργοποίηση Ανταλλαγής Peer (PeX) για εύρεση περισσότερων peers - + Look for peers on your local network Αναζήτηση για peers στο τοπικό σας δίκτυο - + Enable Local Peer Discovery to find more peers Ενεργοποίηση Ανακάλυψης Τοπικών Peer για εύρεση περισσότερων peers - + Encryption mode: Λειτουργία κρυπτογράφησης: - + Require encryption Απαίτηση κρυπτογράφησης - + Disable encryption Απενεργοποίηση κρυπτογράφησης - + Enable when using a proxy or a VPN connection Ενεργοποίηση όταν γίνεται χρήση ενός proxy ή μιας σύνδεσης VPN - + Enable anonymous mode Ενεργοποίηση ανώνυμης λειτουργίας - + Maximum active downloads: Μέγιστες ενεργές λήψεις: - + Maximum active uploads: Μέγιστες ενεργές αποστολές: - + Maximum active torrents: Μέγιστα ενεργά torrents: - + Do not count slow torrents in these limits Μη υπολογισμός αργών torrent σε αυτά τα όρια - + Upload rate threshold: Όριο ρυθμού αποστολής: - + Download rate threshold: Όριο ρυθμού λήψης: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Χρόνος αδράνειας torrent: - + then τότε - + Use UPnP / NAT-PMP to forward the port from my router Χρήση UPnP / NAT - PMP για προώθηση της θύρας από τον δρομολογητή μου - + Certificate: Πιστοποιητικό: - + Key: Κλειδί: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Πληροφορίες σχετικά με τα πιστοποιητικά</a> - + Change current password Αλλαγή τρέχοντος κωδικού πρόσβασης - - Use alternative Web UI - Χρήση εναλλακτικού Web UI - - - + Files location: Τοποθεσία αρχείων: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Ασφάλεια - + Enable clickjacking protection Ενεργοποίηση προστασίας clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Ενεργοποίηση προστασίας Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Ενεργοποίηση ελέγχου ταυτότητας της κεφαλίδας του Host - + Add custom HTTP headers Προσθήκη προσαρμοσμένων κεφαλίδων HTTP - + Header: value pairs, one per line Κεφαλίδα: ζευγάρια τιμών, ένα ανά γραμμή - + Enable reverse proxy support Ενεργοποίηση υποστήριξης αντίστροφου proxy - + Trusted proxies list: Λίστα έμπιστων proxies: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Υπηρεσία: - + Register Εγγραφή - + Domain name: Όνομα τομέα: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Με την ενεργοποίηση αυτών των επιλογών, μπορεί να <strong>χάσετε αμετάκλητα</strong> τα .torrent αρχεία σας! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Αν ενεργοποιήσετε την δεύτερη επιλογή (&ldquo;Επίσης όταν η προσθήκη ακυρωθεί&rdquo;) το .torrent αρχείο <strong>θα διαγραφεί</strong> ακόμη και αν πατήσετε &ldquo;<strong>Ακύρωση</strong>&rdquo; στον διάλογο &ldquo;Προσθήκη αρχείου torrent&rdquo; - + Select qBittorrent UI Theme file Επιλέξτε αρχείο Θέματος του qBittorrent UI - + Choose Alternative UI files location Επιλέξτε εναλλακτική τοποθεσία αρχείων του UI - + Supported parameters (case sensitive): Υποστηριζόμενοι παράμετροι (διάκριση πεζών): - + Minimized Ελαχιστοποιημένο - + Hidden Κρυφό - + Disabled due to failed to detect system tray presence Απενεργοποιήθηκε λόγω αποτυχίας ανίχνευσης παρουσίας εικονιδίου περιοχής ειδοποιήσεων - + No stop condition is set. Δεν έχει οριστεί συνθήκη διακοπής. - + Torrent will stop after metadata is received. Το torrent θα σταματήσει μετά τη λήψη των μεταδεδομένων. - Torrents that have metadata initially aren't affected. - Τα torrents που έχουν μεταδεδομένα εξαρχής δεν επηρεάζονται. - - - + Torrent will stop after files are initially checked. Το torrent θα σταματήσει αφού πρώτα ελεγχθούν τα αρχεία. - + This will also download metadata if it wasn't there initially. Αυτό θα πραγματοποιήσει και λήψη μεταδεδομένων εάν δεν υπήρχαν εξαρχής. - + %N: Torrent name %N: Όνομα Torrent - + %L: Category %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 (bytes) - + %T: Current tracker %T: Τρέχων tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Συμβουλή: Περικλείστε την παράμετρο με αγγλικά εισαγωγικά για να αποφύγετε την αποκοπή του κειμένου στα κενά (π.χ. "%Ν") - + + Test email + Δοκιμαστικό email + + + + Attempted to send email. Check your inbox to confirm success + Προσπάθεια αποστολής email. Ελέγξτε τα εισερχόμενά σας για να επιβεβαιώσετε την επιτυχία + + + (None) (Κανένα) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Ένα torrent θα θεωρηθεί αργό εάν οι ρυθμοί λήψης και αποστολής παραμείνουν κάτω από αυτές τις τιμές όσο ο «Χρόνος αδράνειας torrent» σε δευτερόλεπτα - + Certificate Πιστοποιητικό - + Select certificate Επιλογή πιστοποιητικού - + Private key Ιδιωτικό κλειδί - + Select private key Επιλογή ιδιωτικού κλειδιού - + WebUI configuration failed. Reason: %1 Η διαμόρφωση WebUI απέτυχε. Αιτία: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 συνιστάται για μέγιστη συμβατότητα με τη σκούρο θέμα των Windows + + + + System + System default Qt style + Σύστημα + + + + Let Qt decide the style for this system + Αφήστε το Qt να αποφασίσει το θέμα για αυτό το σύστημα + + + + Dark + Dark color scheme + Σκοτεινό + + + + Light + Light color scheme + Φωτεινό + + + + System + System color scheme + Σύστημα + + + Select folder to monitor Επιλέξτε ένα φάκελο προς παρακολούθηση - + Adding entry failed Η προσθήκη καταχώρησης απέτυχε - + The WebUI username must be at least 3 characters long. Το όνομα χρήστη WebUI πρέπει να αποτελείται από τουλάχιστον 3 χαρακτήρες. - + The WebUI password must be at least 6 characters long. Ο κωδικός πρόσβασης WebUI πρέπει να αποτελείται από τουλάχιστον 6 χαρακτήρες. - + Location Error Σφάλμα Τοποθεσίας - - + + Choose export directory Επιλέξτε κατάλογο εξαγωγής - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Όταν αυτές οι επιλογές είναι ενεργοποιημένες, το qBittorent θα <strong>διαγράψει</strong> τα αρχεία .torrent μετά την επιτυχή προσθήκη τους (η πρώτη επιλογή) ή όχι (η δεύτερη επιλογή) στην ουρά λήψεών του. Αυτό θα εφαρμοστεί <strong>όχι μόνο</strong> σε αρχεία που ανοίχτηκαν μέσω της ενέργειας του μενού «Προσθήκη αρχείου torrent» αλλά και σε αυτά που ανοίχτηκαν μέσω <strong>συσχέτισης τύπου αρχείων</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Αρχείο Θέματος qBittorrent UI (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Ετικέτες (διαχωρισμένες με κόμμα) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (ή «-» αν δεν είναι διαθέσιμο) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (ή «-» αν δεν είναι διαθέσιμο) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (είτε sha-1 info hash για v1 torrent ή truncated sha-256 info hash για v2/hybrid torrent) - - - + + + Choose a save directory Επιλέξτε κατάλογο αποθήκευσης - + Torrents that have metadata initially will be added as stopped. - + Τα torrents που έχουν μεταδεδομένα εξαρχής θα προστεθούν ως σταματημένα. - + Choose an IP filter file Επιλέξτε ένα αρχείο φίλτρου IP - + All supported filters Όλα τα υποστηριζόμενα φίλτρα - + The alternative WebUI files location cannot be blank. Η εναλλακτική τοποθεσία των αρχείων WebUI δεν μπορεί να είναι κενή. - + 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 κανόνες. - + Preferences Προτιμήσεις - + Time Error Σφάλμα Ώρας - + The start time and the end time can't be the same. Η ώρα έναρξης και η ώρα λήξης δεν μπορούν να είναι ίδιες. - - + + Length Error Σφάλμα Μήκους @@ -7335,241 +7764,246 @@ readme[0-9].txt: φίλτρο για «readme1.txt», «readme2.txt» αλλά PeerInfo - + Unknown Αγνωστο - + Interested (local) and choked (peer) Interested (τοπικά) και unchoked (peer) - + Interested (local) and unchoked (peer) Interested (τοπικά) και unchoked (peer) - + Interested (peer) and choked (local) Interested (peer) και choked (τοπικά) - + Interested (peer) and unchoked (local) Interested (peer) και unchoked (τοπικά) - + Not interested (local) and unchoked (peer) Not interested (τοπικά) και unchoked (peer) - + Not interested (peer) and unchoked (local) Not interested (peer) και unchoked (τοπικά) - + Optimistic unchoke Optimistic unchoke - + Peer snubbed Το peer αγνοήθηκε - + Incoming connection Εισερχόμενη σύνδεση - + Peer from DHT Peer από DHT - + Peer from PEX Peer από PeX - + Peer from LSD Peer από LSD - + Encrypted traffic Κρυπτογραφημένη κίνηση - + Encrypted handshake Κρυπτογραφημένο handshake + + + Peer is using NAT hole punching + Ο Peer χρησιμοποιεί διάτρηση οπών NAT + PeerListWidget - + Country/Region Χώρα/Περιοχή - + IP/Address IP/Διεύθυνση - + Port Θύρα - + Flags Σημάνσεις - + Connection Σύνδεση - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID Client - + 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. Συνάφεια - + Files i.e. files that are being downloaded right now Αρχεία - + Column visibility Ορατότητα στήλης - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους - + Add peers... Προσθήκη peers... - - + + Adding peers Προσθήκη peers - + Some peers cannot be added. Check the Log for details. Μερικά peers δε μπορούν να προστεθούν. Ελέγξτε την Καταγραφή για λεπτομέρειες. - + Peers are added to this torrent. Τα peers προστέθηκαν σε αυτό το torrent. - - + + Ban peer permanently Μόνιμος αποκλεισμός peer - + Cannot add peers to a private torrent Δεν είναι δυνατή η προσθήκη peers σε ένα ιδιωτικό torrent - + Cannot add peers when the torrent is checking Δεν είναι δυνατή η προσθήκη peers όταν το torrent ελέγχεται - + Cannot add peers when the torrent is queued Δεν είναι δυνατή η προσθήκη peers όταν το torrent είναι στην ουρά - + No peer was selected Δεν επιλέχθηκε peer - + Are you sure you want to permanently ban the selected peers? Είστε βέβαιοι ότι θέλετε να αποκλείσετε οριστικά τα επιλεγμένα peers; - + Peer "%1" is manually banned Το peer "%1" έχει αποκλειστεί χειροκίνητα - + N/A Δ/Υ - + Copy IP:port Αντιγραφή IP:θύρα @@ -7587,7 +8021,7 @@ readme[0-9].txt: φίλτρο για «readme1.txt», «readme2.txt» αλλά Λίστα peers για προσθήκη (μία IP ανά γραμμή): - + Format: IPv4:port / [IPv6]:port Μορφή: IPv4:θύρα / [IPv6]:θύρα @@ -7628,27 +8062,27 @@ readme[0-9].txt: φίλτρο για «readme1.txt», «readme2.txt» αλλά PiecesBar - + Files in this piece: Αρχεία σε αυτό το κομμάτι: - + File in this piece: Αρχείο σε αυτό το κομμάτι - + File in these pieces: Αρχείο σε αυτά τα κομμάτια - + Wait until metadata become available to see detailed information Περιμένετε μέχρι να γίνουν διαθέσιμα τα μεταδεδομένα για να δείτε λεπτομερείς πληροφορίες - + Hold Shift key for detailed information Κρατήστε πατημένο το πλήκτρο Shift για λεπτομερείς πληροφορίες @@ -7661,58 +8095,58 @@ readme[0-9].txt: φίλτρο για «readme1.txt», «readme2.txt» αλλά Προσθήκες αναζήτησης - + Installed search plugins: Εγκατεστημένες προσθήκες αναζήτησης: - + Name Όνομα - + Version Έκδοση - + Url URL - - + + Enabled Ενεργοποιημένο - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Προειδοποίηση: Βεβαιωθείτε ότι συμμορφώνεστε με τους νόμους περί πνευματικής ιδιοκτησίας της χώρας σας κατά τη λήψη torrents από οποιαδήποτε από αυτές τις μηχανές αναζήτησης. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Μπορείτε να αποκτήσετε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Εγκατάσταση ενός νέου - + Check for updates Έλεγχος για ενημερώσεις - + Close Κλείσιμο - + Uninstall Απεγκατάσταση @@ -7832,98 +8266,65 @@ Those plugins were disabled. Πηγή προσθήκης - + Search plugin source: Πηγή προσθήκης αναζήτησης: - + Local file Τοπικό αρχείο - + Web link Σύνδεσμος στο web - - PowerManagement - - - qBittorrent is active - Το qBittorrent είναι ενεργό - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Η διαχείριση ενέργειας βρήκε κατάλληλη διεπαφή D-Bus. Διασύνδεση: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Σφάλμα διαχείρισης ενέργειας. Δεν βρέθηκε κατάλληλη διασύνδεση D-Bus. - - - - - - Power management error. Action: %1. Error: %2 - Σφάλμα διαχείρισης ενέργειας. Δράση: %1. Σφάλμα: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Μη αναμενόμενο σφάλμα διαχείρισης ενέργειας. Πολιτεία: %1. Σφάλμα: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Τα παρακάτω αρχεία από το torrent "%1" υποστηρίζουν προεπισκόπηση, παρακαλώ επιλέξτε ένα από αυτά: - + Preview Προεπισκόπηση - + Name Όνομα - + Size Μέγεθος - + Progress Πρόοδος - + Preview impossible Αδύνατη η προεπισκόπηση - + Sorry, we can't preview this file: "%1". Δυστυχώς, δε μπορεί να γίνει προεπισκόπηση αυτού του αρχείου: "%1". - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους @@ -7936,27 +8337,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Η διαδρομή δεν υπάρχει - + Path does not point to a directory Η διαδρομή δεν οδηγεί σε κατάλογο - + Path does not point to a file Η διαδρομή δεν αντιστοιχεί σε αρχείο - + Don't have read permission to path Δεν έχει δικαίωμα ανάγνωσης στη διαδρομή - + Don't have write permission to path Δεν έχει δικαίωμα εγγραφής στη διαδρομή @@ -7997,12 +8398,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Ληφθέντα: - + Availability: Διαθεσιμότητα: @@ -8017,53 +8418,53 @@ Those plugins were disabled. Μεταφορά - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Χρόνος εν Ενεργεία: - + ETA: ΠΩΑ: - + Uploaded: Απεσταλμένα: - + Seeds: Διαμοιραστές: - + Download Speed: Ταχύτητα Λήψης: - + Upload Speed: Ταχύτητα Αποστολής: - + Peers: Peers: - + Download Limit: Όριο Λήψης: - + Upload Limit: Όριο Αποστολής: - + Wasted: Σπαταλημένα: @@ -8073,193 +8474,220 @@ Those plugins were disabled. Συνδέσεις: - + Information Πληροφορίες - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Σχόλιο: - + Select All Επιλογή Όλων - + Select None Καμία επιλογή - + Share Ratio: Αναλογία Διαμοιρασμού: - + Reannounce In: Reannounce Σε: - + Last Seen Complete: Τελευταία Φορά Ολοκλήρωσης: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Αναλογία / Ενεργός Χρόνος (σε μήνες), δείχνει πόσο δημοφιλές είναι το torrent + + + + Popularity: + Δημοτικότητα: + + + Total Size: Συνολικό Μέγεθος: - + Pieces: Κομμάτια: - + Created By: Δημιουργήθηκε Από: - + Added On: Προστέθηκε Στις: - + Completed On: Ολοκληρώθηκε Στις: - + Created On: Δημιουργήθηκε Στις: - + + Private: + Ιδιωτικά: + + + Save Path: Διαδρομή Αποθήκευσης: - + Never Ποτέ - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (έχω %3) - - + + %1 (%2 this session) %1 (%2 αυτή τη συνεδρία) - - + + + N/A Δ/Υ - + + Yes + Ναι + + + + No + Όχι + + + %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 μ.ο.) - - New Web seed - Νέο Web seed + + Add web seed + Add HTTP source + - - Remove Web seed - Αφαίρεση Web seed + + Add web seed: + - - Copy Web seed URL - Αντιγραφή URL του Web seed + + + This web seed is already in the list. + - - Edit Web seed URL - Επεξεργασία URL του Web seed - - - + Filter files... Φίλτρο αρχείων… - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Τα γραφήματα ταχύτητας είναι απενεργοποιημένα - + You can enable it in Advanced Options Μπορείτε να το ενεργοποιήσετε στις Επιλογές Για προχωρημένους - - New URL seed - New HTTP source - Νέο URL seed - - - - New URL seed: - Νέο URL seed: - - - - - This URL seed is already in the list. - Αυτό το URL seed είναι ήδη στη λίστα. - - - + Web seed editing Επεξεργασία Web seed - + Web seed URL: URL του Web seed: @@ -8267,33 +8695,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Μη έγκυρη μορφή δεδομένων. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Δεν ήταν δυνατή η αποθήκευση των δεδομένων του Αυτόματου Λήπτη μέσω RSS στο %1. Σφάλμα: %2 - + Invalid data format Μη έγκυρη μορφή δεδομένων - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... Το άρθρο RSS '%1' είναι αποδεκτό από τον κανόνα '%2'. Προσπάθεια προσθήκης torrent... - + Failed to read RSS AutoDownloader rules. %1 Αποτυχία ανάγνωσης των κανόνων του RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Δεν ήταν δυνατή η φόρτωση των κανόνων του Αυτόματου Λήπτη μέσω RSS. Αιτία: %1 @@ -8301,22 +8729,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Αποτυχία λήψης ροής RSS στο '%1'. Αιτία: %2 - + RSS feed at '%1' updated. Added %2 new articles. Η ροή RSS στο '%1' ενημερώθηκε. Προστέθηκαν %2 νέα άρθρα. - + Failed to parse RSS feed at '%1'. Reason: %2 Αποτυχία ανάλυσης ροής RSS στο '%1'. Αιτία: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Έχει γίνει επιτυχής λήψη της ροής RSS από το '%1'. Εκκίνηση ανάλυσης. @@ -8352,12 +8780,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Μη έγκυρη ροή RSS. - + %1 (line: %2, column: %3, offset: %4). %1 (γραμμή: %2, στήλη: %3, offset: %4). @@ -8365,103 +8793,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Δεν ήταν δυνατή η αποθήκευση της διαμόρφωσης της συνεδρίας RSS. Αρχείο: "%1". Σφάλμα: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Δεν ήταν δυνατή η αποθήκευση των δεδομένων της συνεδρίας RSS. Αρχείο: "%1". Σφάλμα: "%2" - - + + RSS feed with given URL already exists: %1. Η ροή RSS με το δεδομένο URL υπάρχει ήδη: %1. - + Feed doesn't exist: %1. Η ροή δεν υπάρχει: %1. - + Cannot move root folder. Δεν είναι δυνατή η μετακίνηση του ριζικού φακέλου. - - + + Item doesn't exist: %1. Το στοιχείο δεν υπάρχει: %1. - - Couldn't move folder into itself. - Δεν ήταν δυνατή η μετακίνηση του φακέλου στον εαυτό του. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Δεν είναι δυνατή η διαγραφή του ριζικού φακέλου. - + Failed to read RSS session data. %1 Αποτυχία ανάγνωσης των δεδομένων συνεδρίας RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Αποτυχία ανάλυσης των δεδομένων συνεδρίας RSS. Αρχείο: "%1". Σφάλμα: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Αποτυχία φόρτωσης δεδομένων συνεδρίας RSS. Αρχείο: "%1". Σφάλμα: "Μη έγκυρη μορφή δεδομένων." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Δεν ήταν δυνατή η φόρτωση της ροής RSS "%1". Αιτία: Απαιτείται URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Δεν ήταν δυνατή η φόρτωση της ροής RSS "%1". Αιτία: Το UID δεν είναι έγκυρο. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Βρέθηκε διπλότυπη ροή RSS. UID: "%1". Σφάλμα: Η διαμόρφωση φαίνεται να είναι κατεστραμμένη. - + Couldn't load RSS item. Item: "%1". Invalid data format. Δεν ήταν δυνατή η φόρτωση του στοιχείου RSS. Στοιχείο: "%1". Μη έγκυρη μορφή δεδομένων. - + Corrupted RSS list, not loading it. Κατεστραμμένη λίστα RSS, η φόρτωση δεν θα γίνει. - + Incorrect RSS Item path: %1. Λανθασμένη διαδρομή RSS Στοιχείου: %1. - + RSS item with given path already exists: %1. Το RSS στοιχείο με τη δεδομένη διαδρομή υπάρχει ήδη: %1. - + Parent folder doesn't exist: %1. Ο γονικός φάκελος δεν υπάρχει: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Η ροή δεν υπάρχει: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Χρονικό διάστημα ανανέωσης + + + + sec + sec + + + + Default + Προεπιλογή + + RSSWidget @@ -8481,8 +8950,8 @@ Those plugins were disabled. - - + + Mark items read Επισήμανση αντικειμένων ως αναγνωσμένα @@ -8507,132 +8976,115 @@ Those plugins were disabled. Torrents: (διπλό κλικ για λήψη) - - + + Delete Διαγραφή - + Rename... Μετονομασία... - + Rename Μετονομασία - - + + Update Ενημέρωση - + New subscription... Νέα συνδρομή... - - + + Update all feeds Ενημέρωση όλων των ροών - + Download torrent Λήψη torrent - + Open news URL Άνοιγμα URL ειδήσεων - + Copy feed URL Αντιγραφή URL ροής - + New folder... Νέος φάκελος... - - Edit feed URL... - Επεξεργασία URL ροής... + + Feed options... + - - Edit feed URL - Επεξεργασία URL ροής - - - + Please choose a folder name Παρακαλώ επιλέξτε ένα όνομα φακέλου - + Folder name: Όνομα φακέλου: - + New folder Νέος φάκελος - - - Please type a RSS feed URL - Παρακαλώ εισάγετε ένα URL ροής RSS - - - - - Feed URL: - URL ροής: - - - + 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: Νέο όνομα ροής: - + Rename failed Η μετονομασία απέτυχε - + Date: Ημερομηνία: - + Feed: Τροφοδοσία: - + Author: Δημιουργός: @@ -8640,38 +9092,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Η Python πρέπει να εγκατασταθεί για να χρησιμοποιήσετε τη Μηχανή Αναζήτησης. - + Unable to create more than %1 concurrent searches. Δεν είναι δυνατή η δημιουργία περισσότερων από %1 ταυτόχρονων αναζητήσεων. - - + + Offset is out of range Το offset είναι εκτός εύρους - + All plugins are already up to date. Όλες οι προσθήκες είναι ήδη ενημερωμένες. - + Updating %1 plugins Ενημέρωση %1 προσθηκών - + Updating plugin %1 Ενημέρωση προσθήκης %1 - + Failed to check for plugin updates: %1 Απέτυχε ο έλεγχος για ενημερώσεις προσθηκών: %1 @@ -8746,132 +9198,142 @@ Those plugins were disabled. Μέγεθος: - + Name i.e: file name Όνομα - + Size i.e: file size Μέγεθος - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - - Search engine - Μηχανή αναζήτησης - - - + Filter search results... Φίλτρο αποτελεσμάτων αναζήτησης... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Αποτελέσματα (εμφανίζονται <i>%1</i> από <i>%2</i>): - + Torrent names only Ονόματα αρχείων torrent μόνο - + Everywhere Παντού - + Use regular expressions Χρήση κανονικών εκφράσεων - + Open download window Άνοιγμα παράθυρου λήψης - + Download Λήψη - + Open description page Άνοιγμα σελίδας περιγραφής - + Copy Αντιγραφή - + Name Όνομα - + Download link Σύνδεσμος λήψης - + Description page URL URL σελίδας περιγραφής - + Searching... Αναζήτηση... - + Search has finished Η αναζήτηση ολοκληρώθηκε - + Search aborted Η αναζήτηση διακόπηκε - + An error occurred during search... Προέκυψε ένα σφάλμα κατά την αναζήτηση... - + Search returned no results Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα - + + Engine + Engine + + + + Engine URL + Engine URL + + + + Published On + Δημοσιεύτηκε Στις + + + Column visibility Ορατότητα στήλης - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους @@ -8879,104 +9341,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Άγνωστη μορφή αρχείου προσθήκης μηχανής αναζήτησης. - + Plugin already at version %1, which is greater than %2 Η προσθήκη βρίσκεται ήδη στην έκδοση %1, η οποία είναι μεγαλύτερη από την %2 - + A more recent version of this plugin is already installed. Μια πιο πρόσφατη έκδοση αυτής της προσθήκης έχει ήδη εγκατασταθεί. - + Plugin %1 is not supported. Η προσθήκη %1 δεν υποστηρίζεται. - - + + Plugin is not supported. Η προσθήκη δεν υποστηρίζεται. - + Plugin %1 has been successfully updated. Η προσθήκη %1 έχει ενημερωθεί επιτυχώς. - + All categories Όλες οι κατηγορίες - + Movies Ταινίες - + TV shows Τηλεοπτικές σειρές - + Music Μουσική - + Games Παιχνίδια - + Anime Άνιμε - + Software Λογισμικό - + Pictures Εικόνες - + Books Βιβλία - + Update server is temporarily unavailable. %1 Ο διακομιστής ενημερώσεων είναι προσωρινά μη διαθέσιμος. %1 - - + + Failed to download the plugin file. %1 Αποτυχία λήψης του αρχείου προσθήκης. %1 - + Plugin "%1" is outdated, updating to version %2 Η προσθήκη "%1" είναι απαρχαιωμένη, ενημέρωση στην έκδοση %2 - + Incorrect update info received for %1 out of %2 plugins. Ελήφθησαν λανθασμένες πληροφορίες ενημέρωσης για %1 από τις %2 προσθήκες. - + Search plugin '%1' contains invalid version string ('%2') Η προσθήκη αναζήτησης '%1' περιέχει μη έγκυρη έκδοση συμβολοσειράς ('%2') @@ -8986,114 +9448,145 @@ Those plugins were disabled. - - - - Search Αναζήτηση - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Δεν υπάρχουν εγκατεστημένες προσθήκες αναζήτησης. Κάντε κλικ στο κουμπί «Προσθήκες αναζήτησης...» στην κάτω δεξιά γωνία του παραθύρου για να εγκαταστήσετε μερικές. - + Search plugins... Αναζήτηση προσθηκών… - + A phrase to search for. Μια φράση προς αναζήτηση. - + Spaces in a search term may be protected by double quotes. Τα κενά σε έναν όρο αναζήτησης μπορούν να προστατευθούν με διπλά εισαγωγικά. - + Example: Search phrase example Παράδειγμα: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: αναζήτηση για <b>foo bar</b> - + All plugins Όλες οι προσθήκες - + Only enabled Μόνο ενεργοποιημένο - + + + Invalid data format. + Μη έγκυρη μορφή δεδομένων. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: αναζήτηση για <b>foo</b> και <b>bar</b> - + + Refresh + Ανανέωση + + + Close tab Κλείσιμο καρτέλας - + Close all tabs Κλείσιμο όλων των καρτελών - + Select... Επιλογή... - - - + + Search Engine Μηχανή Αναζήτησης - + + Please install Python to use the Search Engine. Παρακαλώ εγκαταστήστε το Python για να χρησιμοποιήσετε την Μηχανή Αναζήτησης. - + Empty search pattern Κενό πρότυπο αναζήτησης - + Please type a search pattern first Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα - + + Stop Διακοπή + + + SearchWidget::DataStorage - - Search has finished - Η αναζήτηση ολοκληρώθηκε + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Η αναζήτηση απέτυχε + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9206,34 +9699,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Αποστολή: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Λήψη: - + Alternative speed limits Εναλλακτικά όρια ταχύτητας @@ -9425,32 +9918,32 @@ Click the "Search plugins..." button at the bottom right of the window Μέσος χρόνος σε ουρά: - + Connected peers: Συνδεμένα peers: - + All-time share ratio: Συνολική αναλογία διαμοιρασμού: - + All-time download: Συνολικά ληφθέντα: - + Session waste: Σπατάλη συνεδρίας: - + All-time upload: Συνολικά απεσταλμένα: - + Total buffer size: Συνολικό μέγεθος buffer: @@ -9465,12 +9958,12 @@ Click the "Search plugins..." button at the bottom right of the window Εργασίες Ι/Ο σε ουρά: - + Write cache overload: Υπερφόρτωση cache εγγραφής: - + Read cache overload: Υπερφόρτωση cache ανάγνωσης: @@ -9489,51 +9982,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Κατάσταση σύνδεσης: - - + + No direct connections. This may indicate network configuration problems. Χωρίς απευθείας συνδέσεις. Αυτό μπορεί να αποτελεί ένδειξη προβλημάτων των παραμέτρων του δικτύου. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 κόμβοι - + qBittorrent needs to be restarted! Το qBittorrent χρειάζεται επανεκκίνηση! - - - + + + Connection Status: Κατάσταση Σύνδεσης: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Εκτός σύνδεσης. Αυτό συνήθως σημαίνει ότι το qBittorrent απέτυχε να λειτουργήσει στην επιλεγμένη θύρα για εισερχόμενες συνδέσεις. - + Online Σε σύνδεση - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Κλικ για αλλαγή σε εναλλακτικά όρια ταχύτητας - + Click to switch to regular speed limits Κλικ για αλλαγή σε κανονικά όρια ταχύτητας @@ -9563,13 +10082,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Σε Συνέχιση (0) + Running (0) + Εκτελούνται (0) - Paused (0) - Σε Παύση (0) + Stopped (0) + Σταματημένα (0) @@ -9631,36 +10150,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Ολοκληρωμένα (%1) + + + Running (%1) + Εκτελούνται (%1) + - Paused (%1) - Σε Παύση (%1) + Stopped (%1) + Σταματημένα (%1) + + + + Start torrents + Έναρξη torrents + + + + Stop torrents + Παύση torrents Moving (%1) Μετακίνηση (%1) - - - Resume torrents - Συνέχιση torrents - - - - Pause torrents - Παύση torrents - Remove torrents Αφαίρεση torrent - - - Resumed (%1) - Σε Συνέχιση (%1) - Active (%1) @@ -9732,31 +10251,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Αφαίρεση αχρησιμοποίητων ετικετών - - - Resume torrents - Συνέχιση torrents - - - - Pause torrents - Παύση torrents - Remove torrents Αφαίρεση torrent - - New Tag - Νέα ετικέτα + + Start torrents + Έναρξη torrents + + + + Stop torrents + Διακοπή torrents Tag: Ετικέτα + + + Add tag + + Invalid tag name @@ -9903,32 +10422,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Όνομα - + Progress Πρόοδος - + Download Priority Προτεραιότητα Λήψης - + Remaining Απομένουν - + Availability Διαθεσιμότητα - + Total Size Συνολικό μέγεθος @@ -9973,98 +10492,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Σφάλμα μετονομασίας - + Renaming Μετονομασία - + New name: Νέο όνομα: - + Column visibility Ορατότητα στήλης - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους - + Open Ανοιγμα - + Open containing folder Ανοιγμα περιεχομένων φακέλου - + Rename... Μετονομασία… - + Priority Προτεραιότητα - - + + Do not download Να μη γίνει λήψη - + Normal Κανονική - + High Υψηλή - + Maximum Μέγιστη - + By shown file order Οπως η σειρά των αρχείων που εμφανίζονται - + Normal priority Κανονική προτεραιότητα - + High priority Υψηλή προτεραιότητα - + Maximum priority Μέγιστη προτεραιότητα - + Priority by shown file order Προτεραιότητα όπως η σειρά των αρχείων που εμφανίζονται @@ -10072,19 +10591,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Πάρα πολλές ενεργές εργασίες - + Torrent creation is still unfinished. - + Η δημιουργία του torrent είναι ακόμα ημιτελής. - + Torrent creation failed. - + Αποτυχία δημιουργίας του torrent @@ -10111,13 +10630,13 @@ Please choose a different name and try again. - + Select file Επιλέξτε αρχείο - + Select folder Επιλέξτε φάκελο @@ -10192,87 +10711,83 @@ Please choose a different name and try again. Πεδία - + You can separate tracker tiers / groups with an empty line. Μπορείτε να διαχωρίσετε τα tiers / τις ομάδες των trackers με μια κενή γραμμή. - + Web seed URLs: URLs των Web seed: - + Tracker URLs: URLs του tracker: - + Comments: Σχόλια: - + Source: Πηγή: - + Progress: Πρόοδος: - + Create Torrent Δημιουργία torrent - - + + Torrent creation failed Αποτυχία δημιουργίας του torrent - + Reason: Path to file/folder is not readable. Αιτία: Η διαδρομή του αρχείου/φακέλου δεν είναι αναγνώσιμη. - + Select where to save the new torrent Επιλέξτε πού θα αποθηκεύσετε το νέο torrent - + Torrent Files (*.torrent) Αρχεία torrent (*.torrent) - Reason: %1 - Αιτία: %1 - - - + Add torrent to transfer list failed. Η προσθήκη torrent στη λίστα μεταφοράς απέτυχε. - + Reason: "%1" Λόγος: "%1" - + Add torrent failed Η προσθήκη torrent απέτυχε - + Torrent creator Δημιουργός torrent - + Torrent created: Το Torrent δημιουργήθηκε: @@ -10280,32 +10795,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Αποτυχία φόρτωσης της διαμόρφωσης των Παρακολουθούμενων Φακέλων. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Αποτυχία ανάλυσης της διαμόρφωσης των Παρακολουθούμενων Φακέλων από το %1. Σφάλμα: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Αποτυχία φόρτωσης της διαμόρφωσης των Παρακολουθούμενων Φακέλων από το %1. Σφάλμα: "Μη έγκυρη μορφή δεδομένων." - + Couldn't store Watched Folders configuration to %1. Error: %2 Δεν ήταν δυνατή η αποθήκευση της διαμόρφωσης των Φακέλων Παρακολούθησης από το %1. Σφάλμα: %2 - + Watched folder Path cannot be empty. Η διαδρομή του Φακέλου Παρακολούθησης δεν μπορεί να είναι κενή. - + Watched folder Path cannot be relative. Η διαδρομή του φακέλου παρακολούθησης δεν μπορεί να είναι σχετική. @@ -10313,44 +10828,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Μη έγκυρο URI μαγνήτη. URI: %1. Λόγος: %2 - + Magnet file too big. File: %1 Το αρχείο magnet είναι πολύ μεγάλο. Αρχείο: %1 - + Failed to open magnet file: %1 Αποτυχία ανοίγματος αρχείου magnet: %1 - + Rejecting failed torrent file: %1 Απόρριψη αποτυχημένου αρχείου torrent: %1 - + Watching folder: "%1" Φάκελος Παρακολούθησης: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Αποτυχία ανάθεσης μνήμης κατά την ανάγνωση του αρχείου. Αρχείο: "%1". Σφάλμα: "%2" - - - - Invalid metadata - Μη έγκυρα μεταδεδομένα - - TorrentOptionsDialog @@ -10379,175 +10881,163 @@ Please choose a different name and try again. Χρήση άλλης διαδρομής για ημιτελή torrent - + Category: Κατηγορία: - - Torrent speed limits - Όρια ταχύτητας torrent + + Torrent Share Limits + - + Download: Λήψη: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Αυτά δεν θα ξεπερνούν τα γενικά όρια - + Upload: Αποστολή: - - Torrent share limits - Όρια διαμοιρασμού torrent - - - - Use global share limit - Χρήση γενικού ορίου διαμοιρασμού - - - - Set no share limit - Ορισμός κανενός ορίου διαμοιρασμού - - - - Set share limit to - Ορισμός ορίου διαμοιρασμού σε - - - - ratio - αναλογία - - - - total minutes - συνολικά λεπτά - - - - inactive minutes - ανενεργά λεπτά - - - + Disable DHT for this torrent Απενεργοποίηση DHT για αυτό το torrent - + Download in sequential order Λήψη σε διαδοχική σειρά - + Disable PeX for this torrent Απενεργοποίηση PeX για αυτό το torrent - + Download first and last pieces first Λήψη των πρώτων και των τελευταίων κομματιών πρώτα - + Disable LSD for this torrent Απενεργοποίηση LSD για αυτό το torrent - + Currently used categories Κατηγορίες που χρησιμοποιούνται αυτήν τη στιγμή - - + + Choose save path Επιλέξτε διαδρομή αποθήκευσης - + Not applicable to private torrents Δεν εφαρμόζεται σε ιδιωτικά torrent - - - No share limit method selected - Δεν επιλέχθηκε μέθοδος ορίου διαμοιρασμού - - - - Please select a limit method first - Παρακαλώ επιλέξτε πρώτα μια μέθοδο ορίου - TorrentShareLimitsWidget - - - + + + + Default - Προεπιλογή + Προεπιλογή + + + + + + Unlimited + Απεριόριστο - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Ορισμός σε + + + + Seeding time: + Χρόνος seeding: + + + + + + + + min minutes - λεπτά + λεπτά - + Inactive seeding time: - + Χρόνος που δεν γίνεται seeding - + + Action when the limit is reached: + Ενέργεια όταν συμπληρωθεί το όριο: + + + + Stop torrent + Διακοπή torrent + + + + Remove torrent + Αφαίρεση torrent + + + + Remove torrent and its content + Αφαίρεση torrent και του περιεχομένου του + + + + Enable super seeding for torrent + Ενεργοποίηση super seeding για το torrent + + + Ratio: - + Αναλογία: @@ -10558,32 +11048,32 @@ Please choose a different name and try again. Ετικέτες Torrent - - New Tag - Νέα Ετικέτα + + Add tag + - + Tag: Ετικέτα: - + Invalid tag name Μη έγκυρο όνομα ετικέτας - + Tag name '%1' is invalid. Το όνομα ετικέτας "% 1" δεν είναι έγκυρο. - + Tag exists Η ετικέτα υπάρχει - + Tag name already exists. Το όνομα της ετικέτας υπάρχει ήδη @@ -10591,115 +11081,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Σφάλμα: το '%1' δεν είναι έγκυρο αρχείο torrent. - + Priority must be an integer Η προτεραιότητα πρέπει να είναι ένας ακέραιος αριθμός - + Priority is not valid Η προτεραιότητα δεν είναι έγκυρη - + Torrent's metadata has not yet downloaded Τα μεταδεδομένα του torrent δεν έχουν ληφθεί ακόμη - + File IDs must be integers Τα IDs αρχείου πρέπει να είναι ακέραιοι - + File ID is not valid Το ID αρχείου δεν είναι έγκυρο - - - - + + + + Torrent queueing must be enabled Η ουρά torrent πρέπει να είναι ενεργοποιημένη - - + + Save path cannot be empty Η διαδρομή αποθήκευσης δεν μπορεί να είναι κενή - - + + Cannot create target directory Δεν είναι δυνατή η δημιουργία του καταλόγου προορισμού - - + + Category cannot be empty Η κατηγορία δεν μπορεί να είναι κενή - + Unable to create category Δεν ήταν δυνατή η δημιουργία της κατηγορίας - + Unable to edit category Δεν ήταν δυνατή η επεξεργασία της κατηγορίας - + Unable to export torrent file. Error: %1 Αδυναμία εξαγωγής του αρχείου torrent. Σφάλμα: %1 - + Cannot make save path Αδυναμία δημιουργίας διαδρομής αποθήκευσης - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Η παράμετρος 'sort' δεν είναι έγκυρη - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. Το "%1" δεν είναι έγκυρο index αρχείο. - + Index %1 is out of bounds. Το index %1 είναι εκτός ορίων. - - + + Cannot write to directory Δεν είναι δυνατή η εγγραφή στον κατάλογο - + WebUI Set location: moving "%1", from "%2" to "%3" Ρύθμιση τοποθεσίας WebUI: μεταφορά "%1", από "%2" σε "%3" - + Incorrect torrent name Λανθασμένο όνομα torrent - - + + Incorrect category name Λανθασμένο όνομα κατηγορίας @@ -10730,196 +11235,191 @@ Please choose a different name and try again. TrackerListModel - + Working Λειτουργεί - + Disabled Απενεργοποιημένο - + Disabled for this torrent Απενεργοποιημένο για αυτό το torrent - + This torrent is private Αυτό το torrent είναι ιδιωτικό - + N/A Δ/Υ - + Updating... Ενημερώνεται... - + Not working Δεν Λειτουργεί - + Tracker error Σφάλμα tracker - + Unreachable Απρόσιτος - + Not contacted yet Χωρίς επικοινωνία ακόμα - - Invalid status! + + Invalid state! Μη έγκυρη κατάσταση! - - URL/Announce endpoint - Τελικό σημείο URL/αναγγελίας + + URL/Announce Endpoint + URL/Ανακοίνωση Endpoint - + + BT Protocol + Πρωτόκολλο BT + + + + Next Announce + Επόμενη Ανακοίνωση + + + + Min Announce + Λεπτά Ανακοίνωσης + + + Tier Επίπεδο - - Protocol - Πρωτόκολλο - - - + Status Κατάσταση - + Peers Peers - + Seeds Διαμοιραστές - + Leeches Leeches - + Times Downloaded Φορές Λήψης - + Message Μήνυμα - - - Next announce - Επόμενη ανακοίνωση - - - - Min announce - Ελάχ. ανακοίνωση - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Αυτό το torrent είναι ιδιωτικό - + Tracker editing Επεξεργασία tracker - + Tracker URL: URL του tracker: - - + + Tracker editing failed Η επεξεργασία του tracker απέτυχε - + The tracker URL entered is invalid. Το URL του tracker που καταχωρίσατε δεν είναι έγκυρο. - + The tracker URL already exists. Το URL του tracker υπάρχει ήδη. - + Edit tracker URL... Επεξεργασία URL του tracker... - + Remove tracker Αφαίρεση tracker - + Copy tracker URL Αντιγραφή URL του tracker - + Force reannounce to selected trackers Εξαναγκασμός reannounce σε επιλεγμένους trackers - + Force reannounce to all trackers Εξαναγκασμός reannounce σε όλους τους trackers - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους - + Add trackers... Προσθήκη trackers... - + Column visibility Ορατότητα στήλης @@ -10937,37 +11437,37 @@ Please choose a different name and try again. Λίστα trackers για προσθήκη (ένας ανά γραμμή): - + µTorrent compatible list URL: URL λίστας συμβατής με το µTorrent: - + Download trackers list Λήψη λίστας tracker - + Add Προσθήκη - + Trackers list URL error Σφάλμα διεύθυνσης URL λίστας tracker - + The trackers list URL cannot be empty Η λίστα tracker δεν μπορεί να είναι κενή - + Download trackers list error Σφάλμα λήψης λίστας tracker - + Error occurred when downloading the trackers list. Reason: "%1" Παρουσιάστηκε σφάλμα κατά τη λήψη της λίστας των tracker. Αιτία: "%1" @@ -10975,62 +11475,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Προειδοποίηση (%1) - + Trackerless (%1) Χωρίς Tracker (%1) - + Tracker error (%1) Σφάλμα ιχνηλάτη (%1) - + Other error (%1) Άλλο σφάλμα (%1) - + Remove tracker Αφαίρεση tracker - - Resume torrents - Συνέχιση των torrents + + Start torrents + Έναρξη torrents - - Pause torrents + + Stop torrents Παύση torrents - + Remove torrents Αφαίρεση torrent - + Removal confirmation Επιβεβαίωση διαγραφής - + Are you sure you want to remove tracker "%1" from all torrents? Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το tracker "%1" από όλα τα torrents; - + Don't ask me again. Να μην εμφανιστεί ξανά - + All (%1) this is for the tracker filter Όλα (%1) @@ -11039,7 +11539,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'mode': μη έγκυρο όρισμα @@ -11131,11 +11631,6 @@ Please choose a different name and try again. 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. Έλεγχος δεδομένων συνέχισης - - - Paused - Σε παύση - Completed @@ -11159,220 +11654,252 @@ Please choose a different name and try again. Με σφάλματα - + Name i.e: torrent name Όνομα - + Size i.e: torrent size Μέγεθος - + Progress % Done Πρόοδος - + + Stopped + Σταματημένο + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Κατάσταση - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Peers - + Down Speed i.e: Download speed Ταχύτητα λήψης - + Up Speed i.e: Upload speed Ταχύτητα Αποστολής - + Ratio Share ratio Αναλογία - + + Popularity + Δημοτικότητα + + + ETA i.e: Estimated Time of Arrival / Time left ΠΩΑ - + Category Κατηγορία - + Tags Ετικέτες - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Προστέθηκε στις - + Completed On Torrent was completed on 01/01/2010 08:00 Ολοκληρώθηκε στις - + Tracker Tracker - + Down Limit i.e: Download limit Όριο Λήψης - + Up Limit i.e: Upload limit Όριο Αποστολής - + Downloaded Amount of data downloaded (e.g. in MB) Ληφθέντα - + Uploaded Amount of data uploaded (e.g. in MB) Απεσταλμένα - + 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) Απεσταλμένα Συνεδρίας - + Remaining Amount of data left to download (e.g. in MB) Απομένουν - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Χρόνος εν Ενεργεία - + + Yes + Ναι + + + + No + Όχι + + + Save Path Torrent save path Διαδρομή Aποθήκευσης - + Incomplete Save Path Torrent incomplete save path Μη συμπληρωμένη Διαδρομή Αποθήκευσης - + Completed Amount of data completed (e.g. in MB) Ολοκληρωμένα - + Ratio Limit Upload share ratio limit Όριο Αναλογίας - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Τελευταία Βρέθηκε Ολοκληρωμένο - + Last Activity Time passed since a chunk was downloaded/uploaded Τελευταία δραστηριότητα - + Total Size i.e. Size including unwanted data Συνολικό μέγεθος - + Availability The number of distributed copies of the torrent Διαθεσιμότητα - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Επανανακοίνωση σε: - - + + Private + Flags private torrents + Ιδιωτικά + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Αναλογία / Ενεργός Χρόνος (σε μήνες), δείχνει πόσο δημοφιλές είναι το torrent + + + + + N/A Δ/Υ - + %1 ago e.g.: 1h 20m ago πριν από %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seeded για %2) @@ -11381,339 +11908,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Ορατότητα στήλης - + Recheck confirmation Επιβεβαίωση επανέλεγχου - + Are you sure you want to recheck the selected torrent(s)? Είστε σίγουροι πως θέλετε να επανελέγξετε τα επιλεγμένα torrent(s); - + Rename Μετονομασία - + New name: Νέο όνομα: - + Choose save path Επιλέξτε διαδρομή αποθήκευσης - - Confirm pause - Επιβεβαίωση παύσης - - - - Would you like to pause all torrents? - Θέλετε σίγουρα να θέσετε σε παύση όλα τα torrent; - - - - Confirm resume - Επιβεβαίωση συνέχισης - - - - Would you like to resume all torrents? - Θέλετε σίγουρα να θέσετε σε συνέχιση όλα τα torrent; - - - + Unable to preview Αδυναμία προεπισκόπησης - + The selected torrent "%1" does not contain previewable files Το επιλεγμένο torrent "%1" δεν περιέχει αρχεία με δυνατότητα προεπισκόπησης - + Resize columns Αλλαγή μεγέθους στηλών - + Resize all non-hidden columns to the size of their contents Αλλαγή του μεγέθους όλων των μη κρυφών στηλών στο μέγεθος του περιεχομένου τους - + Enable automatic torrent management Ενεργοποίηση αυτόματης διαχείρισης torrent - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Είστε βέβαιοι πως θέλετε να ενεργοποιήσετε την Αυτόματη Διαχείριση Torrent για τα επιλεγμένα torrent(s); Μπορεί να μετεγκατασταθούν. - - Add Tags - Προσθήκη ετικετών - - - + Choose folder to save exported .torrent files Επιλέξτε φάκελο για αποθήκευση εξαγόμενων αρχείων .torrent - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Η εξαγωγή αρχείου .torrent απέτυχε. Torrent: "%1". Αποθήκευση διαδρομής: "%2". Αιτία: "%3" - + A file with the same name already exists Υπάρχει ήδη αρχείο με το ίδιο όνομα - + Export .torrent file error Σφάλμα εξαγωγής αρχείου .torrent - + Remove All Tags Αφαίρεση όλων των ετικετών - + Remove all tags from selected torrents? Αφαίρεση όλων των ετικετών από τα επιλεγμένα torrent; - + Comma-separated tags: Ετικέτες χωρισμένες με κόμμα: - + Invalid tag Μη έγκυρη ετικέτα - + Tag name: '%1' is invalid Το όνομα ετικέτας '%1' δεν είναι έγκυρο. - - &Resume - Resume/start the torrent - &Συνέχιση - - - - &Pause - Pause the torrent - &Παύση - - - - Force Resu&me - Force Resume/start the torrent - Εξαναγκαστική Συνέχι&ση - - - + Pre&view file... Προε&πισκόπηση αρχείου… - + Torrent &options... &Ρυθμίσεις torrent... - + Open destination &folder Ανοιγμα φακέλου &προορισμού - + Move &up i.e. move up in the queue Μετακίνηση &επάνω - + Move &down i.e. Move down in the queue Μετακίνηση &κάτω - + Move to &top i.e. Move to top of the queue Μετακίνηση στην &κορυφή - + Move to &bottom i.e. Move to bottom of the queue Μετακίνηση στο &τέλος - + Set loc&ation... Ρύθμιση τοπο&θεσίας… - + Force rec&heck Εξαναγκαστικός επανέ&λεγχος - + Force r&eannounce Εξαναγκαστική επανανακοίνωση - + &Magnet link &Σύνδεσμος Magnet - + Torrent &ID Torrent &ID - + &Comment &Σχόλιο - + &Name &Ονομα - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Μετ&ονομασία - + Edit trac&kers... Επεξεργασία trac&kers... - + E&xport .torrent... Ε&ξαγωγή .torrent... - + Categor&y Κατηγορί&α - + &New... New category... &Νέο... - + &Reset Reset category &Επαναφορά - + Ta&gs Ετικ&έτες - + &Add... Add / assign multiple tags... &Προσθήκη... - + &Remove All Remove all tags &Αφαίρεση Ολων - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Δεν είναι δυνατή η εξαναγκαστική επανανακοίνωση εάν το torrent είναι Σε Διακοπή/Σε Ουρά/Με Σφάλμα/Ελέγχεται + + + &Queue &Ουρά - + &Copy &Αντιγραφή - + Exported torrent is not necessarily the same as the imported Το εξαγόμενο torrent δεν είναι απαραίτητα το ίδιο με το εισαγόμενο - + Download in sequential order Λήψη σε διαδοχική σειρά - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Παρουσιάστηκαν σφάλματα κατά την εξαγωγή αρχείων .torrent. Ελέγξτε το αρχείο καταγραφής εκτέλεσης για λεπτομέρειες. - + + &Start + Resume/start the torrent + Εκκίνη&ση + + + + Sto&p + Stop the torrent + Διακο&πή + + + + Force Star&t + Force Resume/start the torrent + Ε&ξαναγκαστική Εκκίνηση + + + &Remove Remove the torrent &Αφαίρεση - + Download first and last pieces first Λήψη πρώτων και τελευταίων κομματιών πρώτα - + Automatic Torrent Management Αυτόματη Διαχείριση Torrent - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Η αυτόματη λειτουργία σημαίνει ότι διάφορες ιδιότητες του torrent (π.χ. διαδρομή αποθήκευσης) θα καθοριστούν από την συσχετισμένη κατηγορία. - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Δεν είναι δυνατή η εξαναγκαστική επανανακοίνωση εάν το torrent είναι Σε Παύση/Με Σφάλματα/Επανελέγχεται - - - + Super seeding mode Λειτουργία super seeding @@ -11758,28 +12265,28 @@ Please choose a different name and try again. ID Εικονιδίου - + UI Theme Configuration. Διαμόρφωση Θέματος UI. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Οι αλλαγές στο Θέμα του UI δεν μπόρεσαν να εφαρμοστούν πλήρως. Οι λεπτομέρειες μπορούν να βρεθούν στο Αρχείο καταγραφής. - + Couldn't save UI Theme configuration. Reason: %1 Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων στο Θέμα του UI. Αιτία: %1 - - + + Couldn't remove icon file. File: %1. Δεν ήταν δυνατή η κατάργηση του αρχείου εικονιδίου. Αρχείο: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Δεν ήταν δυνατή η αντιγραφή του αρχείου εικονιδίου. Πηγή: %1. Προορισμός: %2. @@ -11787,7 +12294,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Ο ορισμός στυλ εφαρμογής απέτυχε. Αγνωστο στυλ: "%1" + + + Failed to load UI theme from file: "%1" Αποτυχία φόρτωσης θέματος του UI από το αρχείο: "%1" @@ -11818,20 +12330,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Αποτυχία μετεγκατάστασης προτιμήσεων: WebUI HTTPS, αρχείο: "%1", σφάλμα: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Μετεγκατάσταση προτιμήσεων: WebUI HTTPS, τα δεδομένα έγιναν εξαγωγή στο αρχείο: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Βρέθηκε μη έγκυρη τιμή στο αρχείο διαμόρφωσης, γίνεται επαναφορά του στην προεπιλεγμένη . Κλειδί: "%1". Μη έγκυρη τιμή: "%2". @@ -11839,32 +12352,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Βρέθηκε εκτελέσιμο αρχείο Python. Όνομα: "%1". Έκδοση: "%2" - + Failed to find Python executable. Path: "%1". Απέτυχε να βρει το εκτελέσιμο αρχείο Python. Μονοπάτι: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Αποτύχαμε να βρούμε το εκτελέσιμο αρχείο `python3` στη μεταβλητή περιβάλλοντος PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Αποτύχαμε να βρούμε το εκτελέσιμο αρχείο `python` στη μεταβλητή περιβάλλοντος PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Αποτύχαμε να βρούμε το εκτελέσιμο αρχείο `python` στο μητρώο των Windows. - + Failed to find Python executable Απέτυχε να βρει εκτελέσιμο αρχείο Python @@ -11956,72 +12469,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Καθορίστηκε μη αποδεκτό όνομα cookie συνεδρίας: '%1'. Χρησιμοποιείται η προεπιλογή. - + Unacceptable file type, only regular file is allowed. Μη αποδεκτός τύπος αρχείου, μόνο κανονικό αρχείο επιτρέπεται. - + Symlinks inside alternative UI folder are forbidden. Τα symlinks απαγορεύονται μέσα σε εναλλακτικό φάκελο του UI. - + Using built-in WebUI. Χρήση ενσωματωμένου WebUI. - + Using custom WebUI. Location: "%1". Χρήση προσαρμοσμένου WebUI. Τοποθεσία: "% 1". - + WebUI translation for selected locale (%1) has been successfully loaded. Η μετάφραση WebUI για επιλεγμένες τοπικές ρυθμίσεις (%1) φορτώθηκε με επιτυχία. - + Couldn't load WebUI translation for selected locale (%1). Δεν ήταν δυνατή η φόρτωση της μετάφρασης WebUI για επιλεγμένες τοπικές ρυθμίσεις (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Λείπει το διαχωριστικό «:» στην προσαρμοσμένη κεφαλίδα του HTTP στο WebUI: "%1" - + Web server error. %1 Σφάλμα διακομιστή Web. %1 - + Web server error. Unknown error. Σφάλμα διακομιστή Web. Άγνωστο σφάλμα. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Αναντιστοιχία προέλευσης κεφαλίδας & προέλευσης στόχου! Πηγή IP: '%1'. Προέλευση κεφαλίδας : '%2'. Προέλευση στόχου: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Αναντιστοιχία κεφαλίδας referer & προέλευση στόχου! Πηγή IP: '%1'. Κεφαλίδα referer : '%2'. Προέλευση στόχου: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Μη έγκυρη κεφαλίδα Host, αναντιστοιχία θυρών. IP προέλευσης αιτήματος: '%1'. Θύρα εξυπηρετητή: '%2'. Κεφαλίδα Host που ελήφθη: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Μη έγκυρη κεφαλίδα Host. IP προέλευσης αιτήματος: '%1'. Κεφαλίδα Host που ελήφθη: '%2' @@ -12029,125 +12542,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set Τα διαπιστευτήρια δεν έχουν οριστεί - + WebUI: HTTPS setup successful WebUI: Επιτυχής εγκατάσταση HTTPS - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: Η ρύθμιση HTTPS απέτυχε, εναλλαγή σε HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Ακρόαση IP: %1, θύρα: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Δεν είναι δυνατή η σύνδεση με IP: %1, θύρα: %2. Αιτία: %3 + + fs + + + Unknown error + Αγνωστο σφάλμα + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1λ - + %1h %2m e.g: 3 hours 5 minutes %1ώ %2λ - + %1d %2h e.g: 2 days 10 hours %1ημ. %2ώ. - + %1y %2d e.g: 2 years 10 days %1χρ. %2ημ. - - + + Unknown Unknown (size) Άγνωστο - + qBittorrent will shutdown the computer now because all downloads are complete. Το qBittorrent θα απενεργοποιήσει τον υπολογιστή τώρα καθώς έχουν ολοκληρωθεί όλες οι λήψεις. - + < 1m < 1 minute < 1λεπτό diff --git a/src/lang/qbittorrent_en.ts b/src/lang/qbittorrent_en.ts index 0dff2bf52..ffee3b25d 100644 --- a/src/lang/qbittorrent_en.ts +++ b/src/lang/qbittorrent_en.ts @@ -14,75 +14,75 @@ - + Authors - + Current maintainer - + Greece - - + + Nationality: - - + + E-mail: - - + + Name: - + Original author - + France - + Special Thanks - + Translators - + License - + Software Used - + qBittorrent was built with the following libraries: - + Copy to clipboard @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ - + Never show again - - - Torrent settings - - Set as default category @@ -191,12 +186,12 @@ - + Torrent information - + Skip hash check @@ -205,6 +200,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: - + Original - + Create subfolder - + Don't create subfolder - + Info hash v1: - + Size: - + Comment: - + Date: @@ -329,147 +329,147 @@ - + Do not delete .torrent file - + Download in sequential order - + Download first and last pieces first - + Info hash v2: - + Select All - + Select None - + Save as .torrent file... - + I/O Error - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available - + Magnet link - + Retrieving metadata... - - + + Choose save path - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A - + %1 (Free space on disk: %2) - + Not available This size is unavailable. - + Torrent file (*%1) - + Save as torrent file - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... - + Parsing metadata... - + Metadata retrieval complete @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB - + Recheck torrents on completion - - + + ms milliseconds - + Setting - + Value Value set for this setting - + (disabled) - + (auto) - + + min minutes - + All addresses - + qBittorrent Section - - + + Open documentation - + All IPv4 addresses - + All IPv6 addresses - + libtorrent Section - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal - + Below normal - + Medium - + Low - + Very low - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache - - - - + + + + + s seconds - + Disk cache expiry interval - + Disk queue size - - + + Enable OS cache - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications - + Display notifications for added torrents - + Download tracker's favicon - + Save path history length - + Enable speed graphs - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck - + Confirm removal of all tags - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker - + Embedded tracker port + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + Torrent name: %1 - + Torrent size: %1 - + Save path: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + + Thank you for using qBittorrent. - + Torrent: %1, sending mail notification - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit - + I/O Error i.e: Input/Output Error - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1432,100 +1532,110 @@ - + Torrent added - + '%1' was added. e.g: xxx.avi was added. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + Information - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... - + qBittorrent is now ready to exit @@ -1604,12 +1714,12 @@ - + Must Not Contain: - + Episode Filter: @@ -1661,263 +1771,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + 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 - + 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 - + Episode number is a mandatory positive value - + Rules - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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 - + Invalid action - + The list is empty, there is nothing to export. - + Export RSS rules - + I/O Error - + Failed to create the destination file. Reason: %1 - + Import RSS rules - + Failed to import the selected rules file. Reason: %1 - + Add new rule... - + Delete rule - + Rename rule... - + Delete selected rules - + Clear downloaded episodes... - + Rule renaming - + Please type the new rule name - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1959,7 +2069,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1969,28 +2079,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2001,16 +2121,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2018,38 +2139,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2057,22 +2200,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2080,457 +2223,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,13 +2735,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2560,67 +2749,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2641,189 +2830,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - + [options] [(<filename> | <url>)...] - + Options: - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused - - - - - Skip hash check + + Add torrents as running or stopped - Assign torrents to category. If the category doesn't exist, it will be created. + Skip hash check - Download files in sequential order + Assign torrents to category. If the category doesn't exist, it will be created. - Download first and last pieces first + Download files in sequential order + Download first and last pieces first + + + + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help @@ -2875,12 +3064,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents + Start torrents - Pause torrents + Stop torrents @@ -2892,15 +3081,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset + + + System + + CookiesDialog @@ -2941,12 +3135,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2954,7 +3148,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2973,23 +3167,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3002,12 +3196,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3017,12 +3211,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + No URL entered - + Please type at least one URL. @@ -3181,25 +3375,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3207,38 +3424,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. @@ -3246,17 +3463,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3297,26 +3514,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... - + Reset - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3348,13 +3599,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3363,60 +3614,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3429,599 +3680,676 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + &Tools - + &File - + &Help - + On Downloads &Done - + &View - + &Options... - - &Resume - - - - + &Remove - + Torrent &Creator - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + Status &Bar - + Filters Sidebar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + Do&nate! - + + Sh&utdown System + + + + &Do nothing - + Close Window - - R&esume All - - - - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue - + Move to the bottom of the queue - + Top of Queue - + Move to the top of the queue - + Move Down Queue - + Move down in the queue - + Move Up Queue - + Move up in the queue - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - - S&hutdown System - - - - + &Statistics - + Check for Updates - + Check for Program Updates - + &About - - &Pause - - - - - P&ause All - - - - + &Add Torrent File... - + Open - + E&xit - + Open URL - + &Documentation - + Lock - - - + + + Show - + Check for program updates - + Add Torrent &Link... - + If you like qBittorrent, please donate! - - + + Execution Log - + Clear the password - + &Set Password - + Preferences - + &Clear Password - + Transfers - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - + + UI lock password - - + + Please type the UI lock password: - + Are you sure you want to clear the password? - + Use regular expressions - + + + Search Engine + + + + + Search has failed + + + + + Search has finished + + + + Search - + Transfers (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No - + &Yes - + &Always Yes - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available - + 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. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. - + &Check for Updates - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + + + + Checking for Updates... - + Already checking for program updates in the background - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error - - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - - + + Invalid password - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) - + The password is invalid - + DL speed: %1 e.g: Download speed: 10 KiB/s - + UP speed: %1 e.g: Upload speed: 10 KiB/s - + Hide - + Exiting qBittorrent - + Open Torrent Files - + Torrent Files @@ -4216,7 +4544,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5510,47 +5843,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5588,486 +5921,510 @@ Please install it manually. - + RSS - - Web UI - - - - + Advanced - + Customize UI Theme... - + Transfer List - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - - - - - + + Open destination folder - - + + No action - + Completed torrents: - + Auto hide zero status filters - + Desktop - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original - + Create subfolder - + Don't create subfolder - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time - + To: To end time - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: - - - + + + min minutes - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent and its files - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) - + IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never - + ban for: - + Session timeout: - + Disabled - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6076,441 +6433,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + + + + + WebUI + + + + Interface - + Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates - + Power Management - + + &Log Files + + + + Save path: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: - + Manual - + Automatic - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6527,766 +6925,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver - + SMTP server: - + Sender - + From: From sender - + This server requires a secure connection (SSL) - - + + Authentication - - - - + + + + Username: - - - - + + + + Password: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + Listening Port - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits - + Maximum number of connections per torrent: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server - + Type: - + SOCKS4 - + SOCKS5 - + HTTP - - + + Host: - - - + + + Port: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s - - + + Upload: - - + + Download: - + Alternative Rate Limits - + Start time - + End time - + When: - + Every day - + Weekdays - + Weekends - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: - + Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: - + Register - + Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name - + %L: Category - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7294,241 +7737,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port - + Flags - + Connection - + Client i.e.: Client application - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. - + Files i.e. files that are being downloaded right now - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A - + Copy IP:port @@ -7546,7 +7994,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port @@ -7587,27 +8035,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7620,58 +8068,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Installed search plugins: - + Name - + Version - + Url - - + + Enabled - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - + Check for updates - + Close - + Uninstall @@ -7790,98 +8238,65 @@ Those plugins were disabled. - + Search plugin source: - + Local file - + Web link - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview - + Name - + Size - + Progress - + Preview impossible - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7894,27 +8309,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7955,12 +8370,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: - + Availability: @@ -7975,53 +8390,53 @@ Those plugins were disabled. - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + ETA: - + Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: @@ -8031,193 +8446,220 @@ Those plugins were disabled. - + Information - + Info Hash v1: - + Info Hash v2: - + Comment: - + Select All - + Select None - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + + Private: + + + + Save Path: - + Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - - + + %1 (%2 this session) - - + + + N/A - + + Yes + + + + + No + + + + %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.) - - New Web seed + + Add web seed + Add HTTP source - - Remove Web seed + + Add web seed: - - Copy Web seed URL + + + This web seed is already in the list. - - Edit Web seed URL - - - - + Filter files... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8225,33 +8667,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8259,22 +8701,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8310,12 +8752,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8323,103 +8765,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + + + + + Refresh interval: + + + + + sec + + + + + Default + + + RSSWidget @@ -8439,8 +8922,8 @@ Those plugins were disabled. - - + + Mark items read @@ -8465,132 +8948,115 @@ Those plugins were disabled. - - + + Delete - + Rename... - + Rename - - + + Update - + New subscription... - - + + Update all feeds - + Download torrent - + Open news URL - + Copy feed URL - + New folder... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name - + Folder name: - + New folder - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: - + Rename failed - + Date: - + Feed: - + Author: @@ -8598,38 +9064,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8704,132 +9170,142 @@ Those plugins were disabled. - + 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 - - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere - + Use regular expressions - + Open download window - + Download - + Open description page - + Copy - + Name - + Download link - + Description page URL - + Searching... - + Search has finished - + Search aborted - + An error occurred during search... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8837,104 +9313,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories - + Movies - + TV shows - + Music - + Games - + Anime - + Software - + Pictures - + Books - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8944,112 +9420,143 @@ Those plugins were disabled. - - - - Search - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... - - - + + Search Engine - + + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - + + Stop + + + SearchWidget::DataStorage - - Search has finished + + Failed to load Search UI saved state data. File: "%1". Error: "%2" - - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" @@ -9163,34 +9670,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: - - - + + + - - - + + + KiB/s - - + + Download: - + Alternative speed limits @@ -9382,32 +9889,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -9422,12 +9929,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9446,51 +9953,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes - + qBittorrent needs to be restarted! - - - + + + Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9520,12 +10053,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) + Running (0) - Paused (0) + Stopped (0) @@ -9588,9 +10121,24 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) + + + Running (%1) + + - Paused (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents @@ -9598,26 +10146,11 @@ Click the "Search plugins..." button at the bottom right of the window Moving (%1) - - - Resume torrents - - - - - Pause torrents - - Remove torrents - - - Resumed (%1) - - Active (%1) @@ -9689,24 +10222,19 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags - - - Resume torrents - - - - - Pause torrents - - Remove torrents - - New Tag + + Start torrents + + + + + Stop torrents @@ -9714,6 +10242,11 @@ Click the "Search plugins..." button at the bottom right of the window Tag: + + + Add tag + + Invalid tag name @@ -9857,32 +10390,32 @@ Please choose a different name and try again. TorrentContentModel - + Name - + Progress - + Download Priority - + Remaining - + Availability - + Total Size @@ -9927,98 +10460,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + New name: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open - + Open containing folder - + Rename... - + Priority - - + + Do not download - + Normal - + High - + Maximum - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10026,17 +10559,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10065,13 +10598,13 @@ Please choose a different name and try again. - + Select file - + Select folder @@ -10146,83 +10679,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: - + Comments: - + Source: - + Progress: - + Create Torrent - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator - + Torrent created: @@ -10230,32 +10763,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10263,44 +10796,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - - - TorrentOptionsDialog @@ -10329,173 +10849,161 @@ Please choose a different name and try again. - + Category: - - Torrent speed limits + + Torrent Share Limits - + Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s - + These will not exceed the global limits - + Upload: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order - + Disable PeX for this torrent - + Download first and last pieces first - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10508,32 +11016,32 @@ Please choose a different name and try again. - - New Tag + + Add tag - + Tag: - + Invalid tag name - + Tag name '%1' is invalid. - + Tag exists - + Tag name already exists. @@ -10541,115 +11049,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -10675,196 +11198,191 @@ Please choose a different name and try again. TrackerListModel - + Working - + Disabled - + Disabled for this torrent - + This torrent is private - + N/A - + Updating... - + Not working - + Tracker error - + Unreachable - + Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - - - - - Peers - - - - - Seeds - - - - - Leeches - - - - - Times Downloaded - - - - - Message - - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + + + Tier + + + + + Status + + + + + Peers + + + + + Seeds + + + + + Leeches + + + + + Times Downloaded + + + + + Message TrackerListWidget - + This torrent is private - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility @@ -10882,37 +11400,37 @@ Please choose a different name and try again. - + µTorrent compatible list URL: - + Download trackers list - + Add - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10920,62 +11438,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) - + Trackerless (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker - - Resume torrents + + Start torrents - - Pause torrents + + Stop torrents - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter @@ -10984,7 +11502,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11076,11 +11594,6 @@ Please choose a different name and try again. 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. - - - Paused - - Completed @@ -11104,220 +11617,252 @@ Please choose a different name and try again. - + Name i.e: torrent name - + Size i.e: torrent size - + Progress % Done - - Status - Torrent status (e.g. downloading, seeding, paused) + + Stopped - + + Status + Torrent status (e.g. downloading, seeding, stopped) + + + + Seeds i.e. full sources (often untranslated) - + Peers i.e. partial sources (often untranslated) - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Ratio Share ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left - + Category - + Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 - + Completed On Torrent was completed on 01/01/2010 08:00 - + Tracker - + Down Limit i.e: Download limit - + Up Limit i.e: Upload limit - + Downloaded Amount of data downloaded (e.g. in MB) - + Uploaded Amount of data uploaded (e.g. in MB) - + 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) - + Remaining Amount of data left to download (e.g. in MB) - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + + Yes + + + + + No + + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded - + Total Size i.e. Size including unwanted data - + Availability The number of distributed copies of the torrent - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A - + %1 ago e.g.: 1h 20m ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) @@ -11326,339 +11871,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility - + Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? - + Rename - + New name: - + Choose save path - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags - + Remove all tags from selected torrents? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - - - - - &Pause - Pause the torrent - - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first - + Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode @@ -11703,28 +12228,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11732,7 +12257,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11763,20 +12293,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11784,32 +12315,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11901,72 +12432,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11974,125 +12505,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + + + misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second - + %1s e.g: 10 seconds - + %1m e.g: 10 minutes - + %1h %2m e.g: 3 hours 5 minutes - + %1d %2h e.g: 2 days 10 hours - + %1y %2d e.g: 2 years 10 days - - + + Unknown Unknown (size) - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute diff --git a/src/lang/qbittorrent_en_AU.ts b/src/lang/qbittorrent_en_AU.ts index 183ef3f81..a4f8e49d1 100644 --- a/src/lang/qbittorrent_en_AU.ts +++ b/src/lang/qbittorrent_en_AU.ts @@ -14,75 +14,75 @@ About - + Authors Authors - + Current maintainer Current maintainer - + Greece Greece - - + + Nationality: Nationality: - - + + E-mail: E-mail: - - + + Name: Name: - + Original author Original author - + France France - + Special Thanks Special Thanks - + Translators Translators - + License Licence - + Software Used Software Used - + qBittorrent was built with the following libraries: qBittorrent was built with the following libraries: - + Copy to clipboard Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Save at - + Never show again Never show again - - - Torrent settings - Torrent settings - Set as default category @@ -191,12 +186,12 @@ Start torrent - + Torrent information Torrent information - + Skip hash check Skip hash check @@ -205,6 +200,11 @@ Use another path for incomplete torrent Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Stop condition: - - + + None None - - + + Metadata received Metadata received - + Torrents that have metadata initially will be added as stopped. - + Torrents that have metadata initially will be added as stopped. - - + + Files checked Files checked - + Add to top of queue Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Content layout: - + Original Original - + Create subfolder Create subfolder - + Don't create subfolder Don't create subfolder - + Info hash v1: Info hash v1: - + Size: Size: - + Comment: Comment: - + Date: Date: @@ -329,151 +329,147 @@ Remember last used save path - + Do not delete .torrent file Do not delete .torrent file - + Download in sequential order Download in sequential order - + Download first and last pieces first Download first and last pieces first - + Info hash v2: Info hash v2: - + Select All Select All - + Select None Select None - + Save as .torrent file... Save as .torrent file... - + I/O Error I/O Error - + Not Available This comment is unavailable Not Available - + Not Available This date is unavailable Not Available - + Not available Not available - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - - + + Choose save path Choose save path - + No stop condition is set. No stop condition is set. - + Torrent will stop after metadata is received. Torrent will stop after metadata is received. - Torrents that have metadata initially aren't affected. - Torrents that have metadata initially aren't affected. - - - + Torrent will stop after files are initially checked. Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Free space on disk: %2) - + Not available This size is unavailable. Not available - + Torrent file (*%1) Torrent file (*%1) - + Save as torrent file Save as torrent file - + Couldn't export torrent metadata file '%1'. Reason: %2. Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Filter files... - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - + Merging of trackers is disabled Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent share limits + Torrent share limits @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Recheck torrents on completion - - + + ms milliseconds ms - + Setting Setting - + Value Value set for this setting Value - + (disabled) (disabled) - + (auto) (auto) - + + min minutes min - + All addresses All addresses - + qBittorrent Section qBittorrent Section - - + + Open documentation Open documentation - + All IPv4 addresses All IPv4 addresses - + All IPv6 addresses All IPv6 addresses - + libtorrent Section libtorrent Section - + Fastresume files Fastresume files - + SQLite database (experimental) SQLite database (experimental) - + Resume data storage type (requires restart) Resume data storage type (requires restart) - + Normal Normal - + Below normal Below normal - + Medium Medium - + Low Low - + Very low Very low - + Physical memory (RAM) usage limit Physical memory (RAM) usage limit - + Asynchronous I/O threads Asynchronous I/O threads - + Hashing threads Hashing threads - + File pool size File pool size - + Outstanding memory when checking torrents Outstanding memory when checking torrents - + Disk cache Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval Disk cache expiry interval - + Disk queue size Disk queue size - - + + Enable OS cache Enable OS cache - + Coalesce reads & writes Coalesce reads & writes - + Use piece extent affinity Use piece extent affinity - + Send upload piece suggestions Send upload piece suggestions - - - - + + + + + 0 (disabled) 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Save resume data interval [0: disabled] - + Outgoing ports (Min) [0: disabled] Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) 0 (permanent lease) - + UPnP lease duration [0: permanent lease] UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) (infinite) - + (system default) (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux This option is less effective on Linux - + Process memory priority Process memory priority - + Bdecode depth limit Bdecode depth limit - + Bdecode token limit Bdecode token limit - + Default Default - + Memory mapped files Memory mapped files - + POSIX-compliant POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Disk IO type (requires restart) - - + + Disable OS cache Disable OS cache - + Disk IO read mode Disk IO read mode - + Write-through Write-through - + Disk IO write mode Disk IO write mode - + Send buffer watermark Send buffer watermark - + Send buffer low watermark Send buffer low watermark - + Send buffer watermark factor Send buffer watermark factor - + Outgoing connections per second Outgoing connections per second - - + + 0 (system default) 0 (system default) - + Socket send buffer size [0: system default] Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] Socket receive buffer size [0: system default] - + Socket backlog size Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit .torrent file size limit - + Type of service (ToS) for connections to peers Type of service (ToS) for connections to peers - + Prefer TCP Prefer TCP - + Peer proportional (throttles TCP) Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Support internationalised domain name (IDN) - + Allow multiple connections from the same IP address Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + It appends the text to the window title to help distinguish qBittorrent instances - + Customize application instance name - + Customise application instance name - + It controls the internal state update interval which in turn will affect UI updates It controls the internal state update interval which in turn will affect UI updates - + Refresh interval Refresh interval - + Resolve peer host names Resolve peer host names - + IP address reported to trackers (requires restart) IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Re-announce to all trackers when IP or port changed - + Enable icons in menus Enable icons in menus - + + Attach "Add new torrent" dialog to main window + Attach "Add new torrent" dialog to main window + + + Enable port forwarding for embedded tracker Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) (Auto detect if empty) - + Python executable path (may require restart) Python executable path (may require restart) - + + Start BitTorrent session in paused state + + + + + sec + seconds + sec + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + Confirm removal of tracker from all torrents Confirm removal of tracker from all torrents - + Peer turnover disconnect percentage Peer turnover disconnect percentage - + Peer turnover threshold percentage Peer turnover threshold percentage - + Peer turnover disconnect interval Peer turnover disconnect interval - + Resets to default if empty Resets to default if empty - + DHT bootstrap nodes DHT bootstrap nodes - + I2P inbound quantity I2P inbound quantity - + I2P outbound quantity I2P outbound quantity - + I2P inbound length I2P inbound length - + I2P outbound length I2P outbound length - + Display notifications Display notifications - + Display notifications for added torrents Display notifications for added torrents - + Download tracker's favicon Download tracker's favicon - + Save path history length Save path history length - + Enable speed graphs Enable speed graphs - + Fixed slots Fixed slots - + Upload rate based Upload rate based - + Upload slots behavior Upload slots behaviour - + Round-robin Round-robin - + Fastest upload Fastest upload - + Anti-leech Anti-leech - + Upload choking algorithm Upload choking algorithm - + Confirm torrent recheck Confirm torrent recheck - + Confirm removal of all tags Confirm removal of all tags - + Always announce to all trackers in a tier Always announce to all trackers in a tier - + Always announce to all tiers Always announce to all tiers - + Any interface i.e. Any network interface Any interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP mixed mode algorithm - + Resolve peer countries Resolve peer countries - + Network interface Network interface - + Optional IP address to bind to Optional IP address to bind to - + Max concurrent HTTP announces Max concurrent HTTP announces - + Enable embedded tracker Enable embedded tracker - + Embedded tracker port Embedded tracker port + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 Using config directory: %1 - + Torrent name: %1 Torrent name: %1 - + Torrent size: %1 Torrent size: %1 - + Save path: %1 Save path: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds The torrent was downloaded in %1. - + + Thank you for using qBittorrent. Thank you for using qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, sending e-mail notification - + Add torrent failed Add torrent failed - + Couldn't add torrent '%1', reason: %2. Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... Loading torrents... - + E&xit E&xit - + I/O Error i.e: Input/Output Error I/O Error - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Reason: %2 - + Torrent added Torrent added - + '%1' was added. e.g: xxx.avi was added. '%1' was added. - + Download completed Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started + qBittorrent %1 started. Process ID: %2 + + + + This is a test email. - + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' has finished downloading. - + Information Information - + To fix the error, you may need to edit the config file manually. To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 To control qBittorrent, access the WebUI at: %1 - + Exit Exit - + Recursive download confirmation Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Never - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated qBittorrent termination initiated - + qBittorrent is shutting down... qBittorrent is shutting down... - + Saving torrent progress... Saving torrent progress... - + qBittorrent is now ready to exit qBittorrent is now ready to exit @@ -1609,12 +1715,12 @@ Priority: - + Must Not Contain: Must Not Contain: - + Episode Filter: Episode Filter: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Export... - + Matches articles based on episode filter. Matches articles based on episode filter. - + Example: Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match will match 2, 5, 8 through 15, 30 and onward episodes of season one - + Episode filter rules: Episode filter rules: - + Season number is a mandatory non-zero value Season number is a mandatory non-zero value - + Filter must end with semicolon Filter must end with semicolon - + Three range types for episodes are supported: Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one 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 Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Episode number is a mandatory positive value Episode number is a mandatory positive value - + Rules Rules - + Rules (legacy) Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + Last Match: %1 days ago Last Match: %1 days ago - + Last Match: Unknown 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 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 - + Invalid action Invalid action - + The list is empty, there is nothing to export. The list is empty, there is nothing to export. - + Export RSS rules Export RSS rules - + I/O Error I/O Error - + Failed to create the destination file. Reason: %1 Failed to create the destination file. Reason: %1 - + Import RSS rules Import RSS rules - + Failed to import the selected rules file. Reason: %1 Failed to import the selected rules file. Reason: %1 - + Add new rule... Add new rule... - + Delete rule Delete rule - + Rename rule... Rename rule... - + Delete selected rules Delete selected rules - + Clear downloaded episodes... Clear downloaded episodes... - + Rule renaming Rule renaming - + Please type the new rule name Please type the new rule name - + Clear downloaded episodes Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 Position %1: %2 - + Wildcard mode: you can use Wildcard mode: you can use - - + + Import error Import error - + Failed to read the file. %1 Failed to read the file. %1 - + ? to match any single character ? to match any single character - + * to match zero or more of any characters * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) White-spaces count as AND operators (all words, any order) - + | is used as OR operator | is used as OR operator - + If word order is important use * instead of whitespace. If word order is important use * instead of white-space. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) An expression with an empty %1 clause (e.g. %2) - + will match all articles. will match all articles. - + will exclude all articles. will exclude all articles. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Cannot create torrent resume folder: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Cannot parse resume data: invalid format - - + + Cannot parse torrent info: %1 Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data + Mismatching info-hash detected in resume data + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Couldn't save torrent resume data to '%1'. Error: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Couldn't save data to '%1'. Error: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Cannot parse resume data: %1 + + + + + Cannot parse torrent info: %1 + Cannot parse torrent info: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 Couldn't store torrents queue positions. Error: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" Peer ID: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 Anonymous mode: %1 - - + + Encryption support: %1 Encryption support: %1 - - + + FORCED FORCED - + Could not find GUID of network interface. Interface: "%1" Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. Torrent reached the share ratio limit. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Removed torrent. - - - - - - Removed torrent and deleted its content. - Removed torrent and deleted its content. - - - - - - Torrent paused. - Torrent paused. - - - - - + Super seeding enabled. Super seeding enabled. - + Torrent reached the seeding time limit. Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Merging of trackers is disabled + + + + Trackers cannot be merged because it is a private torrent + Trackers cannot be merged because it is a private torrent + + + + Trackers are merged from new source + Trackers are merged from new source + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrent move cancelled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - Removed torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Removed torrent and deleted its content. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtered port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privileged port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 mixed mode restrictions - + Failed to load Categories. %1 Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 is disabled - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 is disabled - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Failed to start seeding. BitTorrent::TorrentCreator - + Operation aborted Operation aborted - - + + Create new torrent file failed. Reason: %1. Create new torrent file failed. Reason: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Download first and last piece first: %1, torrent: '%2' - + On On - + Off Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 Performance alert: %1. More info: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' must follow syntax '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' must follow syntax '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' must follow syntax '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). %1 must specify a valid port (1 to 65535). - + Usage: Usage: - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)...] - + Options: Options: - + Display program version and exit Display program version and exit - + Display this help message and exit Display this help message and exit - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' must follow syntax '%1=%2' - - + + Confirm the legal notice + Confirm the legal notice + + + + port port - + Change the WebUI port Change the WebUI port - + Change the torrenting port Change the torrenting port - + Disable splash screen Disable splash screen - + Run in daemon-mode (background) Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Store configuration files in <dir> - - + + name name - + Store configuration files in directories qBittorrent_<name> Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hack into libtorrent fast-resume files and make file paths relative to the profile directory - + files or URLs files or URLs - + Download the torrents passed by the user Download the torrents passed by the user - + Options when adding new torrents: Options when adding new torrents: - + path path - + Torrent save path Torrent save path - - Add torrents as started or paused - Add torrents as started or paused + + Add torrents as running or stopped + - + Skip hash check Skip hash check - + Assign torrents to category. If the category doesn't exist, it will be created. Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Download files in sequential order - + Download first and last pieces first Download first and last pieces first - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables Command line parameters take precedence over environment variables - + Help Help @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Resume torrents + Start torrents + - Pause torrents - Pause torrents + Stop torrents + @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Edit... - + Reset Reset + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Also permanently delete the files + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Are you sure you want to remove '%1' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Are you sure you want to remove these %1 torrents from the transfer list? - + Remove Remove @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download from URLs - + Add torrent links Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download - + No URL entered No URL entered - + Please type at least one URL. Please type at least one URL. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Parsing Error: The filter file is not a valid PeerGuardian P2B file. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - Trackers cannot be merged because it is a private torrent - - - + Torrent is already present Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Unsupported database file size. - + Metadata error: '%1' entry not found. Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 Unsupported database version: %1.%2 - + Unsupported IP version: %1 Unsupported IP version: %1 - + Unsupported record size: %1 Unsupported record size: %1 - + Database corrupted: no data section found. Database corrupted: no data section found. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Bad Http request, closing socket. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Browse... - + Reset Reset - + Select icon Select icon - + Supported image files Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Power management found suitable D-Bus interface. Interface: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Power management error. Action: %1. Error: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Power management unexpected error. State: %1. Error: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3343,24 +3590,24 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. Press 'Enter' key to continue... - + Press 'Enter' key to continue... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 was blocked. Reason: %2. - + %1 was banned 0.0.0.0 was banned %1 was banned @@ -3369,62 +3616,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 is an unknown command line parameter. - - + + %1 must be the single command line parameter. %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. Run application with -h option to read about command line parameters. - + Bad command line Bad command line - + Bad command line: Bad command line: - + An unrecoverable error occurred. An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Another qBittorrent instance is already running. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Edit - + &Tools &Tools - + &File &File - + &Help &Help - + On Downloads &Done On Downloads &Done - + &View &View - + &Options... &Options... - - &Resume - &Resume - - - + &Remove &Remove - + Torrent &Creator Torrent &Creator - - + + Alternative Speed Limits Alternative Speed Limits - + &Top Toolbar &Top Toolbar - + Display Top Toolbar Display Top Toolbar - + Status &Bar Status &Bar - + Filters Sidebar Filters Sidebar - + S&peed in Title Bar S&peed in Title Bar - + Show Transfer Speed in Title Bar Show Transfer Speed in Title Bar - + &RSS Reader &RSS Reader - + Search &Engine Search &Engine - + L&ock qBittorrent L&ock qBittorrent - + Do&nate! Do&nate! - + + Sh&utdown System + + + + &Do nothing &Do nothing - + Close Window Close Window - - R&esume All - R&esume All - - - + Manage Cookies... Manage Cookies... - + Manage stored network cookies Manage stored network cookies - + Normal Messages Normal Messages - + Information Messages Information Messages - + Warning Messages Warning Messages - + Critical Messages Critical Messages - + &Log &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Set Global Speed Limits... - + Bottom of Queue Bottom of Queue - + Move to the bottom of the queue Move to the bottom of the queue - + Top of Queue Top of Queue - + Move to the top of the queue Move to the top of the queue - + Move Down Queue Move Down Queue - + Move down in the queue Move down in the queue - + Move Up Queue Move Up Queue - + Move up in the queue Move up in the queue - + &Exit qBittorrent &Exit qBittorrent - + &Suspend System &Suspend System - + &Hibernate System &Hibernate System - - S&hutdown System - S&hutdown System - - - + &Statistics &Statistics - + Check for Updates Check for Updates - + Check for Program Updates Check for Program Updates - + &About &About - - &Pause - &Pause - - - - P&ause All - P&ause All - - - + &Add Torrent File... &Add Torrent File... - + Open Open - + E&xit E&xit - + Open URL Open URL - + &Documentation &Documentation - + Lock Lock - - - + + + Show Show - + Check for program updates Check for program updates - + Add Torrent &Link... Add Torrent &Link... - + If you like qBittorrent, please donate! If you like qBittorrent, please donate! - - + + Execution Log Execution Log - + Clear the password Clear the password - + &Set Password &Set Password - + Preferences Preferences - + &Clear Password &Clear Password - + Transfers Transfers - - + + qBittorrent is minimized to tray qBittorrent is minimised to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. This behaviour can be changed in the settings. You won't be reminded again. - + Icons Only Icons Only - + Text Only Text Only - + Text Alongside Icons Text Alongside Icons - + Text Under Icons Text Under Icons - + Follow System Style Follow System Style - - + + UI lock password UI lock password - - + + Please type the UI lock password: Please type the UI lock password: - + Are you sure you want to clear the password? Are you sure you want to clear the password? - + Use regular expressions Use regular expressions - + + + Search Engine + Search Engine + + + + Search has failed + Search has failed + + + + Search has finished + Search has finished + + + Search Search - + Transfers (%1) Transfers (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray qBittorrent is closed to tray - + Some files are currently transferring. Some files are currently transferring. - + Are you sure you want to quit qBittorrent? Are you sure you want to quit qBittorrent? - + &No &No - + &Yes &Yes - + &Always Yes &Always Yes - + Options saved. Options saved. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title + + [PAUSED] %1 + %1 is the rest of the window title - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Missing Python Runtime - + qBittorrent Update Available qBittorrent Update Available - + 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. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. Python is required to use the search engine but it does not seem to be installed. - - + + Old Python Runtime Old Python Runtime - + A new version is available. A new version is available. - + Do you want to download %1? Do you want to download %1? - + Open changelog... Open changelog... - + No updates available. You are already using the latest version. No updates available. You are already using the latest version. - + &Check for Updates &Check for Updates - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Paused + + + Checking for Updates... Checking for Updates... - + Already checking for program updates in the background Already checking for program updates in the background - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Download error - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - + + Invalid password Invalid password - + Filter torrents... Filter torrents... - + Filter by: Filter by: - + The password must be at least 3 characters long The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid The password is invalid - + DL speed: %1 e.g: Download speed: 10 KiB/s DL speed: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s UP speed: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [D: %1, U: %2] qBittorrent %3 - - - + Hide Hide - + Exiting qBittorrent Exiting qBittorrent - + Open Torrent Files Open Torrent Files - + Torrent Files Torrent Files @@ -4232,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoring SSL error, URL: "%1", errors: "%2" @@ -5526,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 Email Notification Error: %1 @@ -5604,299 +5927,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Advanced - + Customize UI Theme... Customise UI Theme... - + Transfer List Transfer List - + Confirm when deleting torrents Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - Confirm "Pause/Resume all" actions - Confirm "Pause/Resume all" actions - - - + Use alternating row colors In table elements, every other row will have a grey background. Use alternating row colours - + Hide zero and infinity values Hide zero and infinity values - + Always Always - - Paused torrents only - Paused torrents only - - - + Action on double-click Action on double-click - + Downloading torrents: Downloading torrents: - - - Start / Stop Torrent - Start / Stop Torrent - - - - + + Open destination folder Open destination folder - - + + No action No action - + Completed torrents: Completed torrents: - + Auto hide zero status filters Auto hide zero status filters - + Desktop Desktop - + Start qBittorrent on Windows start up Start qBittorrent on Windows start up - + Show splash screen on start up Show splash screen on start up - + Confirmation on exit when torrents are active Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent content layout: - + Original Original - + Create subfolder Create subfolder - + Don't create subfolder Don't create subfolder - + The torrent will be added to the top of the download queue The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue Add to top of queue - + When duplicate torrent is being added When duplicate torrent is being added - + Merge trackers to existing torrent Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder Keep unselected files in ".unwanted" folder - + Add... Add... - + Options.. Options.. - + Remove Remove - + Email notification &upon download completion Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Peer connection protocol: - + Any Any - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymisation. This may be useful if the user is not interested in the anonymisation of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - + Mixed mode Mixed mode - - Some options are incompatible with the chosen proxy type! - Some options are incompatible with the chosen proxy type! - - - + If checked, hostname lookups are done via the proxy If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes Use proxy for BitTorrent purposes - + RSS feeds will use proxy RSS feeds will use proxy - + Use proxy for RSS purposes Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy Search engine, software updates or anything else will use proxy - + Use proxy for general purposes Use proxy for general purposes - + IP Fi&ltering IP Fi&ltering - + Schedule &the use of alternative rate limits Schedule &the use of alternative rate limits - + From: From start time From: - + To: To end time To: - + Find peers on the DHT network Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: Maximum active checking torrents: - + &Torrent Queueing &Torrent Queueing - + When total seeding time reaches When total seeding time reaches - + When inactive seeding time reaches When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - A&utomatically add these trackers to new downloads: - - - + RSS Reader RSS Reader - + Enable fetching RSS feeds Enable fetching RSS feeds - + Feeds refresh interval: Feeds refresh interval: - + Same host request delay: - + Same host request delay: - + Maximum number of articles per feed: Maximum number of articles per feed: - - - + + + min minutes min - + Seeding Limits Seeding Limits - - Pause torrent - Pause torrent - - - + Remove torrent Remove torrent - + Remove torrent and its files Remove torrent and its files - + Enable super seeding for torrent Enable super seeding for torrent - + When ratio reaches When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents Enable auto downloading of RSS torrents - + Edit auto downloading rules... Edit auto downloading rules... - + RSS Smart Episode Filter RSS Smart Episode Filter - + Download REPACK/PROPER episodes Download REPACK/PROPER episodes - + Filters: Filters: - + Web User Interface (Remote control) Web User Interface (Remote control) - + IP address: IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: Ban client after consecutive failures: - + Never Never - + ban for: ban for: - + Session timeout: Session timeout: - + Disabled Disabled - - Enable cookie Secure flag (requires HTTPS) - Enable cookie Secure flag (requires HTTPS) - - - + Server domains: Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6447,483 @@ you should put in domain names used by Web UI server. Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Upda&te my dynamic domain name - + Minimize qBittorrent to notification area Minimise qBittorrent to notification area - + + Search + Search + + + + WebUI + + + + Interface Interface - + Language: Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Tray icon style: - - + + Normal Normal - + File association File association - + Use qBittorrent for .torrent files Use qBittorrent for .torrent files - + Use qBittorrent for magnet links Use qBittorrent for magnet links - + Check for program updates Check for program updates - + Power Management Power Management - + + &Log Files + + + + Save path: Save path: - + Backup the log file after: Backup the log file after: - + Delete backup logs older than: Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent When adding a torrent - + Bring torrent dialog to the front Bring torrent dialogue to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled Also when addition is cancelled - + Warning! Data loss possible! Warning! Data loss possible! - + Saving Management Saving Management - + Default Torrent Management Mode: Default Torrent Management Mode: - + Manual Manual - + Automatic Automatic - + When Torrent Category changed: When Torrent Category changed: - + Relocate torrent Relocate torrent - + Switch torrent to Manual Mode Switch torrent to Manual Mode - - + + Relocate affected torrents Relocate affected torrents - - + + Switch affected torrents to Manual Mode Switch affected torrents to Manual Mode - + Use Subcategories Use Subcategories - + Default Save Path: Default Save Path: - + Copy .torrent files to: Copy .torrent files to: - + Show &qBittorrent in notification area Show &qBittorrent in notification area - - &Log file - &Log file - - - + Display &torrent content and some options Display &torrent content and some options - + De&lete .torrent files afterwards De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files Pre-allocate disk space for all files - + Use custom UI Theme Use custom UI Theme - + UI Theme file: UI Theme file: - + Changing Interface settings requires application restart Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder Preview file, otherwise open destination folder - - - Show torrent options - Show torrent options - - - + Shows a confirmation dialog when exiting with active torrents Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon When minimising, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Close qBittorrent to notification area - + Monochrome (for dark theme) Monochrome (for dark theme) - + Monochrome (for light theme) Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days days - + months Delete backup logs older than 10 months months - + years Delete backup logs older than 10 years years - + Log performance warnings Log performance warnings - - The torrent will be added to download list in a paused state - The torrent will be added to download list in a paused state - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Do not start the download automatically - + Whether the .torrent file should be deleted after adding it Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Allocate full file sizes on disk before starting downloads, to minimise fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: When Default Save/Incomplete Path changed: - + When Category Save Path changed: When Category Save Path changed: - + Use Category paths in Manual Mode Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme Use icons from system theme - + Window state on start up: Window state on start up: - + qBittorrent window state on start up qBittorrent window state on start up - + Torrent stop condition: Torrent stop condition: - - + + None None - - + + Metadata received Metadata received - - + + Files checked Files checked - + Ask for merging trackers when torrent is being added manually Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Use another path for incomplete torrents: - + Automatically add torrents from: Automatically add torrents from: - + Excluded file names Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6952,811 @@ readme.txt: filter exact file name. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + Receiver Receiver - + To: To receiver To: - + SMTP server: SMTP server: - + Sender Sender - + From: From sender From: - + This server requires a secure connection (SSL) This server requires a secure connection (SSL) - - + + Authentication Authentication - - - - + + + + Username: Username: - - - - + + + + Password: Password: - + Run external program Run external program - - Run on torrent added - Run on torrent added - - - - Run on torrent finished - Run on torrent finished - - - + Show console window Show console window - + TCP and μTP TCP and μTP - + Listening Port Listening Port - + Port used for incoming connections: Port used for incoming connections: - + Set to 0 to let your system pick an unused port Set to 0 to let your system pick an unused port - + Random Random - + Use UPnP / NAT-PMP port forwarding from my router Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits Connections Limits - + Maximum number of connections per torrent: Maximum number of connections per torrent: - + Global maximum number of connections: Global maximum number of connections: - + Maximum number of upload slots per torrent: Maximum number of upload slots per torrent: - + Global maximum number of upload slots: Global maximum number of upload slots: - + Proxy Server Proxy Server - + Type: Type: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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 - + A&uthentication A&uthentication - - Info: The password is saved unencrypted - Info: The password is saved unencrypted - - - + Filter path (.dat, .p2p, .p2b): Filter path (.dat, .p2p, .p2b): - + Reload the filter Reload the filter - + Manually banned IP addresses... Manually banned IP addresses... - + Apply to trackers Apply to trackers - + Global Rate Limits Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Upload: - - + + Download: Download: - + Alternative Rate Limits Alternative Rate Limits - + Start time Start time - + End time End time - + When: When: - + Every day Every day - + Weekdays Weekdays - + Weekends Weekends - + Rate Limits Settings Rate Limits Settings - + Apply rate limit to peers on LAN Apply rate limit to peers on LAN - + Apply rate limit to transport overhead Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µ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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Exchange peers with compatible BitTorrent clients (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Enable Local Peer Discovery to find more peers - + Encryption mode: Encryption mode: - + Require encryption Require encryption - + Disable encryption Disable encryption - + Enable when using a proxy or a VPN connection Enable when using a proxy or a VPN connection - + Enable anonymous mode Enable anonymous mode - + Maximum active downloads: Maximum active downloads: - + Maximum active uploads: Maximum active uploads: - + Maximum active torrents: Maximum active torrents: - + Do not count slow torrents in these limits Do not count slow torrents in these limits - + Upload rate threshold: Upload rate threshold: - + Download rate threshold: Download rate threshold: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Torrent inactivity timer: - + then then - + Use UPnP / NAT-PMP to forward the port from my router Use UPnP / NAT-PMP to forward the port from my router - + Certificate: Certificate: - + Key: Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password Change current password - - Use alternative Web UI - Use alternative Web UI - - - + Files location: Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Security - + Enable clickjacking protection Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Enable Host header validation - + Add custom HTTP headers Add custom HTTP headers - + Header: value pairs, one per line Header: value pairs, one per line - + Enable reverse proxy support Enable reverse proxy support - + Trusted proxies list: Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Service: - + Register Register - + Domain name: Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file Select qBittorrent UI Theme file - + Choose Alternative UI files location Choose Alternative UI files location - + Supported parameters (case sensitive): Supported parameters (case sensitive): - + Minimized Minimised - + Hidden Hidden - + Disabled due to failed to detect system tray presence Disabled due to failed to detect system tray presence - + No stop condition is set. No stop condition is set. - + Torrent will stop after metadata is received. Torrent will stop after metadata is received. - Torrents that have metadata initially aren't affected. - Torrents that have metadata initially aren't affected. - - - + Torrent will stop after files are initially checked. Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Torrent name - + %L: Category %L: Category - + %F: Content path (same as root path for multifile torrent) %F: Content path (same as root path for multi-file torrent) - + %R: Root path (first torrent subdirectory path) %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Save path - + %C: Number of files %C: Number of files - + %Z: Torrent size (bytes) %Z: Torrent size (bytes) - + %T: Current tracker %T: Current tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Encapsulate parameter with quotation marks to avoid text being cut off at white-space (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate Certificate - + Select certificate Select certificate - + Private key Private key - + Select private key Select private key - + WebUI configuration failed. Reason: %1 WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Select folder to monitor - + Adding entry failed Adding entry failed - + The WebUI username must be at least 3 characters long. The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. The WebUI password must be at least 6 characters long. - + Location Error Location Error - - + + Choose export directory Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Choose an IP filter file - + All supported filters All supported filters - + The alternative WebUI files location cannot be blank. The alternative WebUI files location cannot be blank. - + 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. - + Preferences Preferences - + Time Error Time Error - + The start time and the end time can't be the same. The start time and the end time can't be the same. - - + + Length Error Length Error @@ -7335,241 +7764,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Unknown - + Interested (local) and choked (peer) Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) Not interested (peer) and unchoked (local) - + Optimistic unchoke Optimistic unchoke - + Peer snubbed Peer snubbed - + Incoming connection Incoming connection - + Peer from DHT Peer from DHT - + Peer from PEX Peer from PEX - + Peer from LSD Peer from LSD - + Encrypted traffic Encrypted traffic - + Encrypted handshake Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Country/Region - + IP/Address IP/Address - + Port Port - + Flags Flags - + Connection Connection - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 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. Relevance - + Files i.e. files that are being downloaded right now Files - + Column visibility Column visibility - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents - + Add peers... Add peers... - - + + Adding peers Adding peers - + Some peers cannot be added. Check the Log for details. Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. Peers are added to this torrent. - - + + Ban peer permanently Ban peer permanently - + Cannot add peers to a private torrent Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued Cannot add peers when the torrent is queued - + No peer was selected No peer was selected - + Are you sure you want to permanently ban the selected peers? Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned Peer "%1" is manually banned - + N/A N/A - + Copy IP:port Copy IP:port @@ -7587,7 +8021,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not List of peers to add (one IP per line): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7628,27 +8062,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Files in this piece: - + File in this piece: File in this piece: - + File in these pieces: File in these pieces: - + Wait until metadata become available to see detailed information Wait until metadata become available to see detailed information - + Hold Shift key for detailed information Hold Shift key for detailed information @@ -7661,58 +8095,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Search plug-ins - + Installed search plugins: Installed search plugins: - + Name Name - + Version Version - + Url URL - - + + Enabled Enabled - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Install a new one - + Check for updates Check for updates - + Close Close - + Uninstall Uninstall @@ -7832,98 +8266,65 @@ Those plugins were disabled. Plug-in source - + Search plugin source: Search plug-in source: - + Local file Local file - + Web link Web link - - PowerManagement - - - qBittorrent is active - qBittorrent is active - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Power management found suitable D-Bus interface. Interface: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Power management error. Did not found suitable D-Bus interface. - - - - - - Power management error. Action: %1. Error: %2 - Power management error. Action: %1. Error: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Power management unexpected error. State: %1. Error: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: The following files from torrent "%1" support previewing, please select one of them: - + Preview Preview - + Name Name - + Size Size - + Progress Progress - + Preview impossible Preview impossible - + Sorry, we can't preview this file: "%1". Sorry, we can't preview this file: "%1". - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents @@ -7936,27 +8337,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Path does not exist - + Path does not point to a directory Path does not point to a directory - + Path does not point to a file Path does not point to a file - + Don't have read permission to path Don't have read permission to path - + Don't have write permission to path Don't have write permission to path @@ -7997,12 +8398,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Downloaded: - + Availability: Availability: @@ -8017,53 +8418,53 @@ Those plugins were disabled. Transfer - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Time Active: - + ETA: ETA: - + Uploaded: Uploaded: - + Seeds: Seeds: - + Download Speed: Download Speed: - + Upload Speed: Upload Speed: - + Peers: Peers: - + Download Limit: Download Limit: - + Upload Limit: Upload Limit: - + Wasted: Wasted: @@ -8073,193 +8474,220 @@ Those plugins were disabled. Connections: - + Information Information - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Comment: - + Select All Select All - + Select None Select None - + Share Ratio: Share Ratio: - + Reannounce In: Re-announce In: - + Last Seen Complete: Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Total Size: - + Pieces: Pieces: - + Created By: Created By: - + Added On: Added On: - + Completed On: Completed On: - + Created On: Created On: - + + Private: + + + + Save Path: Save Path: - + Never Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (have %3) - - + + %1 (%2 this session) %1 (%2 this session) - - + + + N/A N/A - + + Yes + Yes + + + + No + No + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seeded for %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 average) - - New Web seed - New Web seed + + Add web seed + Add HTTP source + - - Remove Web seed - Remove Web seed + + Add web seed: + - - Copy Web seed URL - Copy Web seed URL + + + This web seed is already in the list. + - - Edit Web seed URL - Edit Web seed URL - - - + Filter files... Filter files... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Speed graphs are disabled - + You can enable it in Advanced Options You can enable it in Advanced Options - - New URL seed - New HTTP source - New URL seed - - - - New URL seed: - New URL seed: - - - - - This URL seed is already in the list. - This URL seed is already in the list. - - - + Web seed editing Web seed editing - + Web seed URL: Web seed URL: @@ -8267,33 +8695,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8301,22 +8729,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8352,12 +8780,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). %1 (line: %2, column: %3, offset: %4). @@ -8365,103 +8793,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. Feed doesn't exist: %1. - + Cannot move root folder. Cannot move root folder. - - + + Item doesn't exist: %1. Item doesn't exist: %1. - - Couldn't move folder into itself. - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Cannot delete root folder. - + Failed to read RSS session data. %1 Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed doesn't exist: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Refresh interval: + + + + sec + sec + + + + Default + Default + + RSSWidget @@ -8481,8 +8950,8 @@ Those plugins were disabled. - - + + Mark items read Mark items read @@ -8507,132 +8976,115 @@ Those plugins were disabled. Torrents: (double-click to download) - - + + Delete Delete - + Rename... Rename... - + Rename Rename - - + + Update Update - + New subscription... New subscription... - - + + Update all feeds Update all feeds - + Download torrent Download torrent - + Open news URL Open news URL - + Copy feed URL Copy feed URL - + New folder... New folder... - - Edit feed URL... - Edit feed URL... + + Feed options... + - - Edit feed URL - Edit feed URL - - - + Please choose a folder name Please choose a folder name - + Folder name: Folder name: - + New folder New folder - - - Please type a RSS feed URL - Please type a RSS feed URL - - - - - Feed URL: - Feed URL: - - - + Deletion confirmation Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? 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: - + Rename failed Rename failed - + Date: Date: - + Feed: Feed: - + Author: Author: @@ -8640,38 +9092,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. Unable to create more than %1 concurrent searches. - - + + Offset is out of range Offset is out of range - + All plugins are already up to date. All plugins are already up to date. - + Updating %1 plugins Updating %1 plugins - + Updating plugin %1 Updating plugin %1 - + Failed to check for plugin updates: %1 Failed to check for plugin updates: %1 @@ -8746,132 +9198,142 @@ Those plugins were disabled. Size: - + 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 - - - + Filter search results... Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Results (showing <i>%1</i> out of <i>%2</i>): - + Torrent names only Torrent names only - + Everywhere Everywhere - + Use regular expressions Use regular expressions - + Open download window Open download window - + Download Download - + Open description page Open description page - + Copy Copy - + Name Name - + Download link Download link - + Description page URL Description page URL - + Searching... Searching... - + Search has finished Search has finished - + Search aborted Search aborted - + An error occurred during search... An error occurred during search... - + Search returned no results Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Column visibility - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents @@ -8879,104 +9341,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. A more recent version of this plugin is already installed. - + Plugin %1 is not supported. Plugin %1 is not supported. - - + + Plugin is not supported. Plugin is not supported. - + Plugin %1 has been successfully updated. Plugin %1 has been successfully updated. - + All categories All categories - + Movies Movies - + TV shows TV shows - + Music Music - + Games Games - + Anime Anime - + Software Software - + Pictures Pictures - + Books Books - + Update server is temporarily unavailable. %1 Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') Search plugin '%1' contains invalid version string ('%2') @@ -8986,114 +9448,145 @@ Those plugins were disabled. - - - - Search Search - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. There aren't any search plug-ins installed. Click the "Search plug-ins..." button at the bottom right of the window to install some. - + Search plugins... Search plug-ins... - + A phrase to search for. A phrase to search for. - + Spaces in a search term may be protected by double quotes. Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Example: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> - + All plugins All plug-ins - + Only enabled Only enabled - + + + Invalid data format. + Invalid data format. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> - + + Refresh + + + + Close tab Close tab - + Close all tabs Close all tabs - + Select... Select... - - - + + Search Engine Search Engine - + + Please install Python to use the 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 - + + Stop Stop + + + SearchWidget::DataStorage - - Search has finished - Search has finished + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9206,34 +9699,34 @@ Click the "Search plug-ins..." button at the bottom right of the windo - + Upload: Upload: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Download: - + Alternative speed limits Alternative speed limits @@ -9425,32 +9918,32 @@ Click the "Search plug-ins..." button at the bottom right of the windo Average time in queue: - + Connected peers: Connected peers: - + All-time share ratio: All-time share ratio: - + All-time download: All-time download: - + Session waste: Session waste: - + All-time upload: All-time upload: - + Total buffer size: Total buffer size: @@ -9465,12 +9958,12 @@ Click the "Search plug-ins..." button at the bottom right of the windo Queued I/O jobs: - + Write cache overload: Write cache overload: - + Read cache overload: Read cache overload: @@ -9489,51 +9982,77 @@ Click the "Search plug-ins..." button at the bottom right of the windo StatusBar - + Connection status: Connection status: - - + + No direct connections. This may indicate network configuration problems. No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nodes - + qBittorrent needs to be restarted! qBittorrent needs to be restarted! - - - + + + Connection Status: Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Click to switch to alternative speed limits - + Click to switch to regular speed limits Click to switch to regular speed limits @@ -9563,13 +10082,13 @@ Click the "Search plug-ins..." button at the bottom right of the windo - Resumed (0) - Resumed (0) + Running (0) + - Paused (0) - Paused (0) + Stopped (0) + @@ -9631,36 +10150,36 @@ Click the "Search plug-ins..." button at the bottom right of the windo Completed (%1) Completed (%1) + + + Running (%1) + + - Paused (%1) - Paused (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) Moving (%1) - - - Resume torrents - Resume torrents - - - - Pause torrents - Pause torrents - Remove torrents Remove torrents - - - Resumed (%1) - Resumed (%1) - Active (%1) @@ -9732,31 +10251,31 @@ Click the "Search plug-ins..." button at the bottom right of the windo Remove unused tags Remove unused tags - - - Resume torrents - Resume torrents - - - - Pause torrents - Pause torrents - Remove torrents Remove torrents - - New Tag - New Tag + + Start torrents + + + + + Stop torrents + Tag: Tag: + + + Add tag + + Invalid tag name @@ -9903,32 +10422,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Name - + Progress Progress - + Download Priority Download Priority - + Remaining Remaining - + Availability Availability - + Total Size Total Size @@ -9973,98 +10492,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Rename error - + Renaming Renaming - + New name: New name: - + Column visibility Column visibility - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents - + Open Open - + Open containing folder Open containing folder - + Rename... Rename... - + Priority Priority - - + + Do not download Do not download - + Normal Normal - + High High - + Maximum Maximum - + By shown file order By shown file order - + Normal priority Normal priority - + High priority High priority - + Maximum priority Maximum priority - + Priority by shown file order Priority by shown file order @@ -10072,19 +10591,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation is still unfinished. - + Torrent creation failed. - + Torrent creation failed. @@ -10111,13 +10630,13 @@ Please choose a different name and try again. - + Select file Select file - + Select folder Select folder @@ -10192,87 +10711,83 @@ Please choose a different name and try again. Fields - + You can separate tracker tiers / groups with an empty line. You can separate tracker tiers / groups with an empty line. - + Web seed URLs: Web seed URLs: - + Tracker URLs: Tracker URLs: - + Comments: Comments: - + Source: Source: - + Progress: Progress: - + Create Torrent Create Torrent - - + + Torrent creation failed Torrent creation failed - + Reason: Path to file/folder is not readable. Reason: Path to file/folder is not readable. - + Select where to save the new torrent Select where to save the new torrent - + Torrent Files (*.torrent) Torrent Files (*.torrent) - Reason: %1 - Reason: %1 - - - + Add torrent to transfer list failed. Add torrent to transfer list failed. - + Reason: "%1" Reason: "%1" - + Add torrent failed Add torrent failed - + Torrent creator Torrent creator - + Torrent created: Torrent created: @@ -10280,32 +10795,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. Watched folder Path cannot be relative. @@ -10313,44 +10828,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 Magnet file too big. File: %1 - + Failed to open magnet file: %1 Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 Rejecting failed torrent file: %1 - + Watching folder: "%1" Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - Invalid metadata - Invalid metadata - - TorrentOptionsDialog @@ -10379,176 +10881,164 @@ Please choose a different name and try again. Use another path for incomplete torrent - + Category: Category: - - Torrent speed limits - Torrent speed limits + + Torrent Share Limits + - + Download: Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits These will not exceed the global limits - + Upload: Upload: - - Torrent share limits - Torrent share limits - - - - Use global share limit - Use global share limit - - - - Set no share limit - Set no share limit - - - - Set share limit to - Set share limit to - - - - ratio - ratio - - - - total minutes - total minutes - - - - inactive minutes - inactive minutes - - - + Disable DHT for this torrent Disable DHT for this torrent - + Download in sequential order Download in sequential order - + Disable PeX for this torrent Disable PeX for this torrent - + Download first and last pieces first Download first and last pieces first - + Disable LSD for this torrent Disable LSD for this torrent - + Currently used categories Currently used categories - - + + Choose save path Choose save path - + Not applicable to private torrents Not applicable to private torrents - - - No share limit method selected - No share limit method selected - - - - Please select a limit method first - Please select a limit method first - TorrentShareLimitsWidget - - - + + + + Default - Default + Default + + + + + + Unlimited + Unlimited - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Set to + + + + Seeding time: + Seeding time: + + + + + + + + min minutes - min + min - + Inactive seeding time: + Inactive seeding time: + + + + Action when the limit is reached: - - Ratio: + + Stop torrent + + + Remove torrent + Remove torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Enable super seeding for torrent + + + + Ratio: + Ratio: + TorrentTagsDialog @@ -10558,32 +11048,32 @@ Please choose a different name and try again. Torrent Tags - - New Tag - New Tag + + Add tag + - + Tag: Tag: - + Invalid tag name Invalid tag name - + Tag name '%1' is invalid. Tag name '%1' is invalid. - + Tag exists Tag exists - + Tag name already exists. Tag name already exists. @@ -10591,115 +11081,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Error: '%1' is not a valid torrent file. - + Priority must be an integer Priority must be an integer - + Priority is not valid Priority is not valid - + Torrent's metadata has not yet downloaded Torrent's metadata has not yet downloaded - + File IDs must be integers File IDs must be integers - + File ID is not valid File ID is not valid - - - - + + + + Torrent queueing must be enabled Torrent queueing must be enabled - - + + Save path cannot be empty Save path cannot be empty - - + + Cannot create target directory Cannot create target directory - - + + Category cannot be empty Category cannot be empty - + Unable to create category Unable to create category - + Unable to edit category Unable to edit category - + Unable to export torrent file. Error: %1 Unable to export torrent file. Error: %1 - + Cannot make save path Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" is not a valid file index. - + Index %1 is out of bounds. Index %1 is out of bounds. - - + + Cannot write to directory Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name Incorrect torrent name - - + + Incorrect category name Incorrect category name @@ -10730,196 +11235,191 @@ Please choose a different name and try again. TrackerListModel - + Working Working - + Disabled Disabled - + Disabled for this torrent Disabled for this torrent - + This torrent is private This torrent is private - + N/A N/A - + Updating... Updating... - + Not working Not working - + Tracker error Tracker error - + Unreachable Unreachable - + Not contacted yet Not contacted yet - - Invalid status! - Invalid status! - - - - URL/Announce endpoint - URL/Announce endpoint + + Invalid state! + + URL/Announce Endpoint + + + + + BT Protocol + + + + + Next Announce + + + + + Min Announce + + + + Tier Tier - - Protocol - Protocol - - - + Status Status - + Peers Peers - + Seeds Seeds - + Leeches Leeches - + Times Downloaded Times Downloaded - + Message Message - - - Next announce - Next announce - - - - Min announce - Min announce - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private This torrent is private - + Tracker editing Tracker editing - + Tracker URL: Tracker URL: - - + + Tracker editing failed Tracker editing failed - + The tracker URL entered is invalid. The tracker URL entered is invalid. - + The tracker URL already exists. The tracker URL already exists. - + Edit tracker URL... Edit tracker URL... - + Remove tracker Remove tracker - + Copy tracker URL Copy tracker URL - + Force reannounce to selected trackers Force re-announce to selected trackers - + Force reannounce to all trackers Force re-announce to all trackers - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents - + Add trackers... Add trackers... - + Column visibility Column visibility @@ -10937,37 +11437,37 @@ Please choose a different name and try again. List of trackers to add (one per line): - + µTorrent compatible list URL: µTorrent compatible list URL: - + Download trackers list Download trackers list - + Add Add - + Trackers list URL error Trackers list URL error - + The trackers list URL cannot be empty The trackers list URL cannot be empty - + Download trackers list error Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" Error occurred when downloading the trackers list. Reason: "%1" @@ -10975,62 +11475,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Warning (%1) - + Trackerless (%1) Tracker-less (%1) - + Tracker error (%1) Tracker error (%1) - + Other error (%1) Other error (%1) - + Remove tracker Remove tracker - - Resume torrents - Resume torrents + + Start torrents + - - Pause torrents - Pause torrents + + Stop torrents + - + Remove torrents Remove torrents - + Removal confirmation Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. Don't ask me again. - + All (%1) this is for the tracker filter All (%1) @@ -11039,7 +11539,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'mode': invalid argument @@ -11131,11 +11631,6 @@ Please choose a different name and try again. 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. Checking resume data - - - Paused - Paused - Completed @@ -11159,220 +11654,252 @@ Please choose a different name and try again. Errored - + Name i.e: torrent name Name - + Size i.e: torrent size Size - + Progress % Done Progress - + + Stopped + Stopped + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Peers - + Down Speed i.e: Download speed Down Speed - + Up Speed i.e: Upload speed Up Speed - + Ratio Share ratio Ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Category - + Tags Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Added On - + Completed On Torrent was completed on 01/01/2010 08:00 Completed On - + Tracker Tracker - + Down Limit i.e: Download limit Down Limit - + Up Limit i.e: Upload limit Up Limit - + Downloaded Amount of data downloaded (e.g. in MB) Downloaded - + Uploaded Amount of data uploaded (e.g. in MB) Uploaded - + Session Download Amount of data downloaded since program open (e.g. in MB) Session Download - + Session Upload Amount of data uploaded since program open (e.g. in MB) Session Upload - + Remaining Amount of data left to download (e.g. in MB) Remaining - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Time Active - + + Yes + Yes + + + + No + No + + + Save Path Torrent save path Save Path - + Incomplete Save Path Torrent incomplete save path Incomplete Save Path - + Completed Amount of data completed (e.g. in MB) Completed - + Ratio Limit Upload share ratio limit Ratio Limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Last Seen Complete - + Last Activity Time passed since a chunk was downloaded/uploaded Last Activity - + Total Size i.e. Size including unwanted data Total Size - + Availability The number of distributed copies of the torrent Availability - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Reannounce In - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seeded for %2) @@ -11381,339 +11908,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Column visibility - + Recheck confirmation Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? Are you sure you want to recheck the selected torrent(s)? - + Rename Rename - + New name: New name: - + Choose save path Choose save path - - Confirm pause - Confirm pause - - - - Would you like to pause all torrents? - Would you like to pause all torrents? - - - - Confirm resume - Confirm resume - - - - Would you like to resume all torrents? - Would you like to resume all torrents? - - - + Unable to preview Unable to preview - + The selected torrent "%1" does not contain previewable files The selected torrent "%1" does not contain previewable files - + Resize columns Resize columns - + Resize all non-hidden columns to the size of their contents Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Add Tags - - - + Choose folder to save exported .torrent files Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists A file with the same name already exists - + Export .torrent file error Export .torrent file error - + Remove All Tags Remove All Tags - + Remove all tags from selected torrents? Remove all tags from selected torrents? - + Comma-separated tags: Comma-separated tags: - + Invalid tag Invalid tag - + Tag name: '%1' is invalid Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Resume - - - - &Pause - Pause the torrent - &Pause - - - - Force Resu&me - Force Resume/start the torrent - Force Resu&me - - - + Pre&view file... Pre&view file... - + Torrent &options... Torrent &options... - + Open destination &folder Open destination &folder - + Move &up i.e. move up in the queue Move &up - + Move &down i.e. Move down in the queue Move &down - + Move to &top i.e. Move to top of the queue Move to &top - + Move to &bottom i.e. Move to bottom of the queue Move to &bottom - + Set loc&ation... Set loc&ation... - + Force rec&heck Force rec&heck - + Force r&eannounce Force r&eannounce - + &Magnet link &Magnet link - + Torrent &ID Torrent &ID - + &Comment &Comment - + &Name &Name - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Re&name... - + Edit trac&kers... Edit trac&kers... - + E&xport .torrent... E&xport .torrent... - + Categor&y Categor&y - + &New... New category... &New... - + &Reset Reset category &Reset - + Ta&gs Ta&gs - + &Add... Add / assign multiple tags... &Add... - + &Remove All Remove all tags &Remove All - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Queue - + &Copy &Copy - + Exported torrent is not necessarily the same as the imported Exported torrent is not necessarily the same as the imported - + Download in sequential order Download in sequential order - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Remove - + Download first and last pieces first Download first and last pieces first - + Automatic Torrent Management Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - + Super seeding mode Super seeding mode @@ -11758,28 +12265,28 @@ Please choose a different name and try again. Icon ID - + UI Theme Configuration. UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Couldn't copy icon file. Source: %1. Destination: %2. @@ -11787,7 +12294,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Failed to load UI theme from file: "%1" @@ -11818,20 +12330,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11839,32 +12352,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Failed to find `python` executable in Windows Registry. - + Failed to find Python executable Failed to find Python executable @@ -11956,72 +12469,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. Using built-in WebUI. - + Using custom WebUI. Location: "%1". Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 Web server error. %1 - + Web server error. Unknown error. Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12029,125 +12542,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set Credentials are not set - + WebUI: HTTPS setup successful WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Unknown error + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_en_GB.ts b/src/lang/qbittorrent_en_GB.ts index cda7e1656..eb34cec27 100644 --- a/src/lang/qbittorrent_en_GB.ts +++ b/src/lang/qbittorrent_en_GB.ts @@ -14,75 +14,75 @@ About - + Authors Authors - + Current maintainer Current maintainer - + Greece Greece - - + + Nationality: Nationality: - - + + E-mail: E-mail: - - + + Name: Name: - + Original author Original author - + France France - + Special Thanks Special Thanks - + Translators Translators - + License Licence - + Software Used Software Used - + qBittorrent was built with the following libraries: qBittorrent was built with the following libraries: - + Copy to clipboard Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Save at - + Never show again Never show again - - - Torrent settings - Torrent settings - Set as default category @@ -191,12 +186,12 @@ Start torrent - + Torrent information Torrent information - + Skip hash check Skip hash check @@ -205,6 +200,11 @@ Use another path for incomplete torrent Use another path for incomplete torrent + + + Torrent options + Torrent options + Tags: @@ -231,75 +231,75 @@ Stop condition: - - + + None None - - + + Metadata received Metadata received - + Torrents that have metadata initially will be added as stopped. - + Torrents that have metadata initially will be added as stopped. - - + + Files checked Files checked - + Add to top of queue Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Content layout: - + Original Original - + Create subfolder Create subfolder - + Don't create subfolder Don't create subfolder - + Info hash v1: Info hash v1: - + Size: Size: - + Comment: Comment: - + Date: Date: @@ -329,151 +329,147 @@ Remember last used save path - + Do not delete .torrent file Do not delete .torrent file - + Download in sequential order Download in sequential order - + Download first and last pieces first Download first and last pieces first - + Info hash v2: Info hash v2: - + Select All Select All - + Select None Select None - + Save as .torrent file... Save as .torrent file... - + I/O Error I/O Error - + Not Available This comment is unavailable Not Available - + Not Available This date is unavailable Not Available - + Not available Not available - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - - + + Choose save path Choose save path - + No stop condition is set. No stop condition is set. - + Torrent will stop after metadata is received. Torrent will stop after metadata is received. - Torrents that have metadata initially aren't affected. - Torrents that have metadata initially aren't affected. - - - + Torrent will stop after files are initially checked. Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Free space on disk: %2) - + Not available This size is unavailable. Not available - + Torrent file (*%1) Torrent file (*%1) - + Save as torrent file Save as torrent file - + Couldn't export torrent metadata file '%1'. Reason: %2. Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Filter files... - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - + Merging of trackers is disabled Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - + Torrent share limits @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Recheck torrents on completion - - + + ms milliseconds ms - + Setting Setting - + Value Value set for this setting Value - + (disabled) (disabled) - + (auto) (auto) - + + min minutes min - + All addresses All addresses - + qBittorrent Section qBittorrent Section - - + + Open documentation Open documentation - + All IPv4 addresses All IPv4 addresses - + All IPv6 addresses All IPv6 addresses - + libtorrent Section libtorrent Section - + Fastresume files Fastresume files - + SQLite database (experimental) SQLite database (experimental) - + Resume data storage type (requires restart) Resume data storage type (requires restart) - + Normal Normal - + Below normal Below normal - + Medium Medium - + Low Low - + Very low Very low - + Physical memory (RAM) usage limit Physical memory (RAM) usage limit - + Asynchronous I/O threads Asynchronous I/O threads - + Hashing threads Hashing threads - + File pool size File pool size - + Outstanding memory when checking torrents Outstanding memory when checking torrents - + Disk cache Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval Disk cache expiry interval - + Disk queue size Disk queue size - - + + Enable OS cache Enable OS cache - + Coalesce reads & writes Coalesce reads & writes - + Use piece extent affinity Use piece extent affinity - + Send upload piece suggestions Send upload piece suggestions - - - - + + + + + 0 (disabled) 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Save resume data interval [0: disabled] - + Outgoing ports (Min) [0: disabled] Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) 0 (permanent lease) - + UPnP lease duration [0: permanent lease] UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) (infinite) - + (system default) (system default) - + + Delete files permanently + Delete files permanently + + + + Move files to trash (if possible) + Move files to Wastebasket (if possible) + + + + Torrent content removing mode + Torrent content removing mode + + + This option is less effective on Linux This option is less effective on Linux - + Process memory priority Process memory priority - + Bdecode depth limit Bdecode depth limit - + Bdecode token limit Bdecode token limit - + Default Default - + Memory mapped files Memory mapped files - + POSIX-compliant POSIX-compliant - + + Simple pread/pwrite + Simple pread/pwrite + + + Disk IO type (requires restart) Disk IO type (requires restart) - - + + Disable OS cache Disable OS cache - + Disk IO read mode Disk IO read mode - + Write-through Write-through - + Disk IO write mode Disk IO write mode - + Send buffer watermark Send buffer watermark - + Send buffer low watermark Send buffer low watermark - + Send buffer watermark factor Send buffer watermark factor - + Outgoing connections per second Outgoing connections per second - - + + 0 (system default) 0 (system default) - + Socket send buffer size [0: system default] Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] Socket receive buffer size [0: system default] - + Socket backlog size Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Save statistics interval [0: disabled] + + + .torrent file size limit .torrent file size limit - + Type of service (ToS) for connections to peers Type of service (ToS) for connections to peers - + Prefer TCP Prefer TCP - + Peer proportional (throttles TCP) Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Support internationalised domain name (IDN) - + Allow multiple connections from the same IP address Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + Customise application instance name - + It controls the internal state update interval which in turn will affect UI updates It controls the internal state update interval which in turn will affect UI updates - + Refresh interval Refresh interval - + Resolve peer host names Resolve peer host names - + IP address reported to trackers (requires restart) IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + Port reported to trackers (requires restart) [0: listening port] + + + Reannounce to all trackers when IP or port changed Re-announce to all trackers when IP or port changed - + Enable icons in menus Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + Ignore SSL errors + Ignore SSL errors + + + (Auto detect if empty) (Auto detect if empty) - + Python executable path (may require restart) Python executable path (may require restart) - + + Start BitTorrent session in paused state + Start BitTorrent session in paused state + + + + sec + seconds + sec + + + + -1 (unlimited) + -1 (unlimited) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent session shutdown timeout [-1: unlimited] + + + Confirm removal of tracker from all torrents Confirm removal of tracker from all torrents - + Peer turnover disconnect percentage Peer turnover disconnect percentage - + Peer turnover threshold percentage Peer turnover threshold percentage - + Peer turnover disconnect interval Peer turnover disconnect interval - + Resets to default if empty Resets to default if empty - + DHT bootstrap nodes DHT bootstrap nodes - + I2P inbound quantity I2P inbound quantity - + I2P outbound quantity I2P outbound quantity - + I2P inbound length I2P inbound length - + I2P outbound length I2P outbound length - + Display notifications Display notifications - + Display notifications for added torrents Display notifications for added torrents - + Download tracker's favicon Download tracker's favicon - + Save path history length Save path history length - + Enable speed graphs Enable speed graphs - + Fixed slots Fixed slots - + Upload rate based Upload rate based - + Upload slots behavior Upload slots behaviour - + Round-robin Round-robin - + Fastest upload Fastest upload - + Anti-leech Anti-leech - + Upload choking algorithm Upload choking algorithm - + Confirm torrent recheck Confirm torrent recheck - + Confirm removal of all tags Confirm removal of all tags - + Always announce to all trackers in a tier Always announce to all trackers in a tier - + Always announce to all tiers Always announce to all tiers - + Any interface i.e. Any network interface Any interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP mixed mode algorithm - + Resolve peer countries Resolve peer countries - + Network interface Network interface - + Optional IP address to bind to Optional IP address to bind to - + Max concurrent HTTP announces Max concurrent HTTP announces - + Enable embedded tracker Enable embedded tracker - + Embedded tracker port Embedded tracker port + + AppController + + + + Invalid directory path + Invalid directory path + + + + Directory does not exist + Directory does not exist + + + + Invalid mode, allowed values: %1 + Invalid mode, allowed values: %1 + + + + cookies must be array + cookies must be array + + Application - + Running in portable mode. Auto detected profile folder at: %1 Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 Using config directory: %1 - + Torrent name: %1 Torrent name: %1 - + Torrent size: %1 Torrent size: %1 - + Save path: %1 Save path: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds The torrent was downloaded in %1. - + + Thank you for using qBittorrent. Thank you for using qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, sending e-mail notification - + Add torrent failed Add torrent failed - + Couldn't add torrent '%1', reason: %2. Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... Loading torrents... - + E&xit E&xit - + I/O Error i.e: Input/Output Error I/O Error - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Reason: %2 - + Torrent added Torrent added - + '%1' was added. e.g: xxx.avi was added. '%1' was added. - + Download completed Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1 started. Process ID: %2 - + + This is a test email. + This is a test email. + + + + Test email + Test email + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' has finished downloading. - + Information Information - + To fix the error, you may need to edit the config file manually. To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 To control qBittorrent, access the WebUI at: %1 - + Exit Exit - + Recursive download confirmation Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Never - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated qBittorrent termination initiated - + qBittorrent is shutting down... qBittorrent is shutting down... - + Saving torrent progress... Saving torrent progress... - + qBittorrent is now ready to exit qBittorrent is now ready to exit @@ -1609,12 +1715,12 @@ Priority: - + Must Not Contain: Must Not Contain: - + Episode Filter: Episode Filter: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Export... - + Matches articles based on episode filter. Matches articles based on episode filter. - + Example: Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match will match 2, 5, 8 through 15, 30 and onward episodes of season one - + Episode filter rules: Episode filter rules: - + Season number is a mandatory non-zero value Season number is a mandatory non-zero value - + Filter must end with semicolon Filter must end with semicolon - + Three range types for episodes are supported: Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one 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 Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Episode number is a mandatory positive value Episode number is a mandatory positive value - + Rules Rules - + Rules (legacy) Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + Last Match: %1 days ago Last Match: %1 days ago - + Last Match: Unknown 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 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 - + Invalid action Invalid action - + The list is empty, there is nothing to export. The list is empty, there is nothing to export. - + Export RSS rules Export RSS rules - + I/O Error I/O Error - + Failed to create the destination file. Reason: %1 Failed to create the destination file. Reason: %1 - + Import RSS rules Import RSS rules - + Failed to import the selected rules file. Reason: %1 Failed to import the selected rules file. Reason: %1 - + Add new rule... Add new rule... - + Delete rule Delete rule - + Rename rule... Rename rule... - + Delete selected rules Delete selected rules - + Clear downloaded episodes... Clear downloaded episodes... - + Rule renaming Rule renaming - + Please type the new rule name Please type the new rule name - + Clear downloaded episodes Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 Position %1: %2 - + Wildcard mode: you can use Wildcard mode: you can use - - + + Import error Import error - + Failed to read the file. %1 Failed to read the file. %1 - + ? to match any single character ? to match any single character - + * to match zero or more of any characters * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) White-spaces count as AND operators (all words, any order) - + | is used as OR operator | is used as OR operator - + If word order is important use * instead of whitespace. If word order is important use * instead of white-space. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) An expression with an empty %1 clause (e.g. %2) - + will match all articles. will match all articles. - + will exclude all articles. will exclude all articles. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Cannot create torrent resume folder: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Cannot parse resume data: invalid format - - + + Cannot parse torrent info: %1 Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data + Mismatching info-hash detected in resume data + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Couldn't save torrent resume data to '%1'. Error: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Couldn't save data to '%1'. Error: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Cannot parse resume data: %1 + + + + + Cannot parse torrent info: %1 + Cannot parse torrent info: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 Couldn't store torrents queue positions. Error: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" Peer ID: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 Anonymous mode: %1 - - + + Encryption support: %1 Encryption support: %1 - - + + FORCED FORCED - + Could not find GUID of network interface. Interface: "%1" Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. Torrent reached the share ratio limit. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Removed torrent. - - - - - - Removed torrent and deleted its content. - Removed torrent and deleted its content. - - - - - - Torrent paused. - Torrent paused. - - - - - + Super seeding enabled. Super seeding enabled. - + Torrent reached the seeding time limit. Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP support: ON - + + Saving resume data completed. + Saving resume data completed. + + + + BitTorrent session successfully finished. + BitTorrent session successfully finished. + + + + Session shutdown timed out. + Session shutdown timed out. + + + + Removing torrent. + Removing torrent. + + + + Removing torrent and deleting its content. + Removing torrent and deleting its content. + + + + Torrent stopped. + Torrent stopped. + + + + Torrent content removed. Torrent: "%1" + Torrent content removed. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent removed. Torrent: "%1" + + + + Merging of trackers is disabled + Merging of trackers is disabled + + + + Trackers cannot be merged because it is a private torrent + Trackers cannot be merged because it is a private torrent + + + + Trackers are merged from new source + Trackers are merged from new source + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + Tracker list updated + + + + Failed to update tracker list. Reason: "%1" + Failed to update tracker list. Reason: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent stopped. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - Removed torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Removed torrent and deleted its content. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtered port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privileged port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 mixed mode restrictions - + Failed to load Categories. %1 Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 is disabled - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 is disabled - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Failed to start seeding. BitTorrent::TorrentCreator - + Operation aborted Operation aborted - - + + Create new torrent file failed. Reason: %1. Create new torrent file failed. Reason: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Download first and last piece first: %1, torrent: '%2' - + On On - + Off Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 Performance alert: %1. More info: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' must follow syntax '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' must follow syntax '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' must follow syntax '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). %1 must specify a valid port (1 to 65535). - + Usage: Usage: - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)...] - + Options: Options: - + Display program version and exit Display program version and exit - + Display this help message and exit Display this help message and exit - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' must follow syntax '%1=%2' - - + + Confirm the legal notice + Confirm the legal notice + + + + port port - + Change the WebUI port Change the WebUI port - + Change the torrenting port Change the torrenting port - + Disable splash screen Disable splash screen - + Run in daemon-mode (background) Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Store configuration files in <dir> - - + + name name - + Store configuration files in directories qBittorrent_<name> Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hack into libtorrent fast-resume files and make file paths relative to the profile directory - + files or URLs files or URLs - + Download the torrents passed by the user Download the torrents passed by the user - + Options when adding new torrents: Options when adding new torrents: - + path path - + Torrent save path Torrent save path - - Add torrents as started or paused - Add torrents as started or paused + + Add torrents as running or stopped + Add torrents as running or stopped - + Skip hash check Skip hash check - + Assign torrents to category. If the category doesn't exist, it will be created. Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Download files in sequential order - + Download first and last pieces first Download first and last pieces first - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables Command line parameters take precedence over environment variables - + Help Help @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Resume torrents + Start torrents + Start torrents - Pause torrents - Pause torrents + Stop torrents + Stop torrents @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Edit... - + Reset Reset + + + System + System + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 Failed to load custom theme colours. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Failed to load default theme colours. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Also permanently delete the files + Also remove the content files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Are you sure you want to remove '%1' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Are you sure you want to remove these %1 torrents from the transfer list? - + Remove Remove @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download from URLs - + Add torrent links Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download - + No URL entered No URL entered - + Please type at least one URL. Please type at least one URL. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Parsing Error: The filter file is not a valid PeerGuardian P2B file. + + FilterPatternFormatMenu + + + Pattern Format + Pattern Format + + + + Plain text + Plain text + + + + Wildcards + Wildcards + + + + Regular expression + Regular expression + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - Trackers cannot be merged because it is a private torrent - - - + Torrent is already present Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + Trackers cannot be merged because it is a private torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Unsupported database file size. - + Metadata error: '%1' entry not found. Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 Unsupported database version: %1.%2 - + Unsupported IP version: %1 Unsupported IP version: %1 - + Unsupported record size: %1 Unsupported record size: %1 - + Database corrupted: no data section found. Database corrupted: no data section found. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Bad Http request, closing socket. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Browse... - + Reset Reset - + Select icon Select icon - + Supported image files Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Power management found suitable D-Bus interface. Interface: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Power management error. Action: %1. Error: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Power management unexpected error. State: %1. Error: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3343,24 +3590,24 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. Press 'Enter' key to continue... - + Press 'Enter' key to continue... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 was blocked. Reason: %2. - + %1 was banned 0.0.0.0 was banned %1 was banned @@ -3369,62 +3616,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 is an unknown command line parameter. - - + + %1 must be the single command line parameter. %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. Run application with -h option to read about command line parameters. - + Bad command line Bad command line - + Bad command line: Bad command line: - + An unrecoverable error occurred. An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Another qBittorrent instance is already running. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Edit - + &Tools &Tools - + &File &File - + &Help &Help - + On Downloads &Done On Downloads &Done - + &View &View - + &Options... &Options... - - &Resume - &Resume - - - + &Remove &Remove - + Torrent &Creator Torrent &Creator - - + + Alternative Speed Limits Alternative Speed Limits - + &Top Toolbar &Top Toolbar - + Display Top Toolbar Display Top Toolbar - + Status &Bar Status &Bar - + Filters Sidebar Filters Sidebar - + S&peed in Title Bar S&peed in Title Bar - + Show Transfer Speed in Title Bar Show Transfer Speed in Title Bar - + &RSS Reader &RSS Reader - + Search &Engine Search &Engine - + L&ock qBittorrent L&ock qBittorrent - + Do&nate! Do&nate! - + + Sh&utdown System + Sh&utdown System + + + &Do nothing &Do nothing - + Close Window Close Window - - R&esume All - R&esume All - - - + Manage Cookies... Manage Cookies... - + Manage stored network cookies Manage stored network cookies - + Normal Messages Normal Messages - + Information Messages Information Messages - + Warning Messages Warning Messages - + Critical Messages Critical Messages - + &Log &Log - + + Sta&rt + Sta&rt + + + + Sto&p + Sto&p + + + + R&esume Session + R&esume Session + + + + Pau&se Session + Pau&se Session + + + Set Global Speed Limits... Set Global Speed Limits... - + Bottom of Queue Bottom of Queue - + Move to the bottom of the queue Move to the bottom of the queue - + Top of Queue Top of Queue - + Move to the top of the queue Move to the top of the queue - + Move Down Queue Move Down Queue - + Move down in the queue Move down in the queue - + Move Up Queue Move Up Queue - + Move up in the queue Move up in the queue - + &Exit qBittorrent &Exit qBittorrent - + &Suspend System &Suspend System - + &Hibernate System &Hibernate System - - S&hutdown System - S&hutdown System - - - + &Statistics &Statistics - + Check for Updates Check for Updates - + Check for Program Updates Check for Program Updates - + &About &About - - &Pause - &Pause - - - - P&ause All - P&ause All - - - + &Add Torrent File... &Add Torrent File... - + Open Open - + E&xit E&xit - + Open URL Open URL - + &Documentation &Documentation - + Lock Lock - - - + + + Show Show - + Check for program updates Check for program updates - + Add Torrent &Link... Add Torrent &Link... - + If you like qBittorrent, please donate! If you like qBittorrent, please donate! - - + + Execution Log Execution Log - + Clear the password Clear the password - + &Set Password &Set Password - + Preferences Preferences - + &Clear Password &Clear Password - + Transfers Transfers - - + + qBittorrent is minimized to tray qBittorrent is minimised to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. This behaviour can be changed in the settings. You won't be reminded again. - + Icons Only Icons Only - + Text Only Text Only - + Text Alongside Icons Text Alongside Icons - + Text Under Icons Text Under Icons - + Follow System Style Follow System Style - - + + UI lock password UI lock password - - + + Please type the UI lock password: Please type the UI lock password: - + Are you sure you want to clear the password? Are you sure you want to clear the password? - + Use regular expressions Use regular expressions - + + + Search Engine + Search Engine + + + + Search has failed + Search has failed + + + + Search has finished + Search has finished + + + Search Search - + Transfers (%1) Transfers (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray qBittorrent is closed to tray - + Some files are currently transferring. Some files are currently transferring. - + Are you sure you want to quit qBittorrent? Are you sure you want to quit qBittorrent? - + &No &No - + &Yes &Yes - + &Always Yes &Always Yes - + Options saved. Options saved. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSED] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + Python installation success. + Python installation success. + + + + Exit code: %1. + Exit code: %1. + + + + Reason: installer crashed. + Reason: installer crashed. + + + + Python installation failed. + Python installation failed. + + + + Launching Python installer. File: "%1". + Launching Python installer. File: "%1". + + + + Missing Python Runtime Missing Python Runtime - + qBittorrent Update Available qBittorrent Update Available - + 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. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. Python is required to use the search engine but it does not seem to be installed. - - + + Old Python Runtime Old Python Runtime - + A new version is available. A new version is available. - + Do you want to download %1? Do you want to download %1? - + Open changelog... Open changelog... - + No updates available. You are already using the latest version. No updates available. You are already using the latest version. - + &Check for Updates &Check for Updates - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Paused + + + Checking for Updates... Checking for Updates... - + Already checking for program updates in the background Already checking for program updates in the background - + + Python installation in progress... + Python installation in progress... + + + + Failed to open Python installer. File: "%1". + Failed to open Python installer. File: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + Download error Download error - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - + + Invalid password Invalid password - + Filter torrents... Filter torrents... - + Filter by: Filter by: - + The password must be at least 3 characters long The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid The password is invalid - + DL speed: %1 e.g: Download speed: 10 KiB/s DL speed: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s UP speed: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [D: %1, U: %2] qBittorrent %3 - - - + Hide Hide - + Exiting qBittorrent Exiting qBittorrent - + Open Torrent Files Open Torrent Files - + Torrent Files Torrent Files @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL error, URL: "%1", errors: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoring SSL error, URL: "%1", errors: "%2" @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Connection failed, unrecognised reply: %1 - + Authentication failed, msg: %1 Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 Email Notification Error: %1 @@ -5604,486 +5928,514 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Advanced - + Customize UI Theme... Customize UI Theme... - + Transfer List Transfer List - + Confirm when deleting torrents Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - Confirm "Pause/Resume all" actions - Confirm "Pause/Resume all" actions - - - + Use alternating row colors In table elements, every other row will have a grey background. Use alternating row colours - + Hide zero and infinity values Hide zero and infinity values - + Always Always - - Paused torrents only - Paused torrents only - - - + Action on double-click Action on double-click - + Downloading torrents: Downloading torrents: - - - Start / Stop Torrent - Start / Stop Torrent - - - - + + Open destination folder Open destination folder - - + + No action No action - + Completed torrents: Completed torrents: - + Auto hide zero status filters Auto hide zero status filters - + Desktop Desktop - + Start qBittorrent on Windows start up Start qBittorrent on Windows start up - + Show splash screen on start up Show splash screen on start up - + Confirmation on exit when torrents are active Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent content layout: - + Original Original - + Create subfolder Create subfolder - + Don't create subfolder Don't create subfolder - + The torrent will be added to the top of the download queue The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue Add to top of queue - + When duplicate torrent is being added When duplicate torrent is being added - + Merge trackers to existing torrent Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder Keep unselected files in ".unwanted" folder - + Add... Add... - + Options.. Options.. - + Remove Remove - + Email notification &upon download completion Email notification &upon download completion - + + Send test email + Send test email + + + + Run on torrent added: + Run on torrent added: + + + + Run on torrent finished: + Run on torrent finished: + + + Peer connection protocol: Peer connection protocol: - + Any Any - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymisation. This may be useful if the user is not interested in the anonymisation of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - + Mixed mode Mixed mode - - Some options are incompatible with the chosen proxy type! - Some options are incompatible with the chosen proxy type! - - - + If checked, hostname lookups are done via the proxy - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + Use proxy for general purposes - + IP Fi&ltering IP Fi&ltering - + Schedule &the use of alternative rate limits Schedule &the use of alternative rate limits - + From: From start time - + From: - + To: To end time - + To: - + Find peers on the DHT network - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption: Connect to peers regardless of setting +Require encryption: Only connect to peers with protocol encryption +Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + Maximum active checking torrents: - + &Torrent Queueing &Torrent Queueing - + When total seeding time reaches - + When total seeding time reaches - + When inactive seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - A&utomatically add these trackers to new downloads: - - - + RSS Reader RSS Reader - + Enable fetching RSS feeds - + Enable fetching RSS feeds - + Feeds refresh interval: - + Feeds refresh interval: - + Same host request delay: - + Same host request delay: - + Maximum number of articles per feed: Maximum number of articles per feed: - - - + + + min minutes min - + Seeding Limits - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent - + Remove torrent and its files - + Remove torrent and its files - + Enable super seeding for torrent - + Enable super seeding for torrent - + When ratio reaches + When ratio reaches + + + + Some functions are unavailable with the chosen proxy type! - + + Note: The password is saved unencrypted + + + + + Stop torrent + Stop torrent + + + + A&utomatically append these trackers to new downloads: + A&utomatically append these trackers to new downloads: + + + + Automatically append trackers from URL to new downloads: + Automatically append trackers from URL to new downloads: + + + + URL: + URL: + + + + Fetched trackers + Fetched trackers + + + + Search UI + Search UI + + + + Store opened tabs + Store opened tabs + + + + Also store search results + Also store search results + + + + History length + History length + + + RSS Torrent Auto Downloader RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + Edit auto downloading rules... - + RSS Smart Episode Filter - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Download REPACK/PROPER episodes - + Filters: - + Filters: - + Web User Interface (Remote control) - + Web User Interface (Remote control) - + IP address: - + IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + IP address that the Web UI will bind to. +Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, +"::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Ban client after consecutive failures: - + Never Never - + ban for: - + ban for: - + Session timeout: - + Session timeout: - + Disabled Disabled - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6096,441 +6448,483 @@ you should put in domain names used by Web UI server. Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + IP subnet whitelist... - + + Use alternative WebUI + Use alternative WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Upda&te my dynamic domain name - + Minimize qBittorrent to notification area Minimise qBittorrent to notification area - + + Search + Search + + + + WebUI + WebUI + + + Interface - + Interface - + Language: - + Language: - + + Style: + Style: + + + + Color scheme: + Color scheme: + + + + Stopped torrents only + Stopped torrents only + + + + + Start / stop torrent + Start / stop torrent + + + + + Open torrent options dialog + Open torrent options dialogue + + + Tray icon style: Tray icon style: - - + + Normal Normal - + File association File association - + Use qBittorrent for .torrent files Use qBittorrent for .torrent files - + Use qBittorrent for magnet links Use qBittorrent for magnet links - + Check for program updates Check for program updates - + Power Management Power Management - + + &Log Files + &Log Files + + + Save path: Save path: - + Backup the log file after: Backup the log file after: - + Delete backup logs older than: Delete backup logs older than: - + + Show external IP in status bar + Show external IP in status bar + + + When adding a torrent When adding a torrent - + Bring torrent dialog to the front Bring torrent dialogue to the front - + + The torrent will be added to download list in a stopped state + The torrent will be added to download list in a stopped state + + + Also delete .torrent files whose addition was cancelled Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled Also when addition is cancelled - + Warning! Data loss possible! Warning! Data loss possible! - + Saving Management Saving Management - + Default Torrent Management Mode: Default Torrent Management Mode: - + Manual Manual - + Automatic Automatic - + When Torrent Category changed: When Torrent Category changed: - + Relocate torrent Relocate torrent - + Switch torrent to Manual Mode Switch torrent to Manual Mode - - + + Relocate affected torrents Relocate affected torrents - - + + Switch affected torrents to Manual Mode Switch affected torrents to Manual Mode - + Use Subcategories Use Subcategories - + Default Save Path: Default Save Path: - + Copy .torrent files to: Copy .torrent files to: - + Show &qBittorrent in notification area - + Show &qBittorrent in notification area - - &Log file - &Log file - - - + Display &torrent content and some options Display &torrent content and some options - + De&lete .torrent files afterwards De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files Pre-allocate disk space for all files - + Use custom UI Theme - + Use custom UI Theme - + UI Theme file: - + UI Theme file: - + Changing Interface settings requires application restart - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - + Shows a confirmation dialogue upon torrent deletion - - + + Preview file, otherwise open destination folder - + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + Shows a confirmation dialogue when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + When minimising, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Close qBittorrent to notification area - + Monochrome (for dark theme) - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + days - + months Delete backup logs older than 10 months - + months - + years Delete backup logs older than 10 years - + years - + Log performance warnings - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Do not start the download automatically - + Whether the .torrent file should be deleted after adding it - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Allocate full file sizes on disk before starting downloads, to minimise fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Enable recursive download dialogue - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category +Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Use icons from system theme - + Window state on start up: - + Window state on start up: - + qBittorrent window state on start up - + qBittorrent window state on start up - + Torrent stop condition: - + Torrent stop condition: - - + + None None - - + + Metadata received Metadata received - - + + Files checked Files checked - + Ask for merging trackers when torrent is being added manually - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Use another path for incomplete torrents: - + Automatically add torrents from: Automatically add torrents from: - + Excluded file names - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6544,773 +6938,826 @@ Examples readme.txt: filter exact file name. ?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + Blacklist filtered file names from being downloaded from torrent(s). +Files matching any of the filters in this list will have their priority automatically set to "Do not download". + +Use newlines to separate multiple entries. Can use wildcards as outlined below. +*: matches zero or more of any characters. +?: matches any single character. +[...]: sets of characters can be represented in square brackets. + +Examples +*.exe: filter '.exe' file extension. +readme.txt: filter exact file name. +?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. +readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + Receiver - + Receiver - + To: To receiver - + To: - + SMTP server: SMTP server: - + Sender - + Sender - + From: From sender - + From: - + This server requires a secure connection (SSL) This server requires a secure connection (SSL) - - + + Authentication Authentication - - - - + + + + Username: Username: - - - - + + + + Password: Password: - + Run external program - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + Show console window - + TCP and μTP - + TCP and μTP - + Listening Port Listening Port - + Port used for incoming connections: Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Set to 0 to let your system pick an unused port - + Random Random - + Use UPnP / NAT-PMP port forwarding from my router Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits Connections Limits - + Maximum number of connections per torrent: Maximum number of connections per torrent: - + Global maximum number of connections: Global maximum number of connections: - + Maximum number of upload slots per torrent: Maximum number of upload slots per torrent: - + Global maximum number of upload slots: Global maximum number of upload slots: - + Proxy Server Proxy Server - + Type: Type: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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 - + A&uthentication A&uthentication - - Info: The password is saved unencrypted - Info: The password is saved unencrypted - - - + Filter path (.dat, .p2p, .p2b): Filter path (.dat, .p2p, .p2b): - + Reload the filter Reload the filter - + Manually banned IP addresses... Manually banned IP addresses... - + Apply to trackers Apply to trackers - + Global Rate Limits Global Rate Limits - - - - - - - - ∞ - - - - - - - - - KiB/s - + + + + + + + ∞ + - - + + + + + + + KiB/s + KiB/s + + + + Upload: Upload: - - + + Download: Download: - + Alternative Rate Limits Alternative Rate Limits - + Start time - + Start time - + End time - + End time - + When: When: - + Every day Every day - + Weekdays Weekdays - + Weekends Weekends - + Rate Limits Settings Rate Limits Settings - + Apply rate limit to peers on LAN Apply rate limit to peers on LAN - + Apply rate limit to transport overhead Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymisation. This may be useful if the user is not interested in the anonymisation of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + Apply rate limit to µ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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Exchange peers with compatible BitTorrent clients (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Enable Local Peer Discovery to find more peers - + Encryption mode: Encryption mode: - + Require encryption Require encryption - + Disable encryption Disable encryption - + Enable when using a proxy or a VPN connection Enable when using a proxy or a VPN connection - + Enable anonymous mode Enable anonymous mode - + Maximum active downloads: Maximum active downloads: - + Maximum active uploads: Maximum active uploads: - + Maximum active torrents: Maximum active torrents: - + Do not count slow torrents in these limits Do not count slow torrents in these limits - + Upload rate threshold: - + Upload rate threshold: - + Download rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + sec - + Torrent inactivity timer: - + Torrent inactivity timer: - + then then - + Use UPnP / NAT-PMP to forward the port from my router Use UPnP / NAT-PMP to forward the port from my router - + Certificate: Certificate: - + Key: Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - - - Change current password - - - - - Use alternative Web UI - - - - - Files location: - - - - - Security - - - - - Enable clickjacking protection - - - - - Enable Cross-Site Request Forgery (CSRF) protection - - - - - Enable Host header validation - - - - - Add custom HTTP headers - - - - - Header: value pairs, one per line - - - - - Enable reverse proxy support - - - Trusted proxies list: - + Change current password + Change current password - + + Files location: + Files location: + + + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security + Security + + + + Enable clickjacking protection + Enable clickjacking protection + + + + Enable Cross-Site Request Forgery (CSRF) protection + Enable Cross-Site Request Forgery (CSRF) protection + + + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation + Enable Host header validation + + + + Add custom HTTP headers + Add custom HTTP headers + + + + Header: value pairs, one per line + Header: value pairs, one per line + + + + Enable reverse proxy support + Enable reverse proxy support + + + + Trusted proxies list: + Trusted proxies list: + + + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + Service: Service: - + Register Register - + Domain name: Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Choose Alternative UI files location - + Supported parameters (case sensitive): Supported parameters (case sensitive): - + Minimized - + Minimized - + Hidden - + Hidden - + Disabled due to failed to detect system tray presence - + Disabled due to failed to detect system tray presence - + No stop condition is set. No stop condition is set. - + Torrent will stop after metadata is received. Torrent will stop after metadata is received. - Torrents that have metadata initially aren't affected. - Torrents that have metadata initially aren't affected. - - - + Torrent will stop after files are initially checked. Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Torrent name - + %L: Category %L: Category - + %F: Content path (same as root path for multifile torrent) %F: Content path (same as root path for multi-file torrent) - + %R: Root path (first torrent subdirectory path) %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Save path - + %C: Number of files %C: Number of files - + %Z: Torrent size (bytes) %Z: Torrent size (bytes) - + %T: Current tracker %T: Current tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Encapsulate parameter with quotation marks to avoid text being cut off at white-space (e.g., "%N") - + + Test email + Test email + + + + Attempted to send email. Check your inbox to confirm success + Attempted to send email. Check your inbox to confirm success + + + (None) (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Certificate - + Select certificate - + Select certificate - + Private key - + Private key - + Select private key - + Select private key - + WebUI configuration failed. Reason: %1 - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 is recommended for best compatibility with Windows dark mode + + + + System + System default Qt style + System + + + + Let Qt decide the style for this system + Let Qt decide the style for this system + + + + Dark + Dark color scheme + Dark + + + + Light + Light color scheme + Light + + + + System + System color scheme + System + + + Select folder to monitor Select folder to monitor - + Adding entry failed Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - + Location Error - - + + Choose export directory Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Choose an IP filter file - + All supported filters All supported filters - + The alternative WebUI files location cannot be blank. - + The alternative WebUI files location cannot be blank. - + 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. - + Preferences Preferences - + Time Error Time Error - + The start time and the end time can't be the same. The start time and the end time can't be the same. - - + + Length Error Length Error @@ -7318,241 +7765,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Unknown - - - Interested (local) and choked (peer) - - - Interested (local) and unchoked (peer) - + Interested (local) and choked (peer) + Interested (local) and choked (peer) - - Interested (peer) and choked (local) - + + Interested (local) and unchoked (peer) + Interested (local) and unchoked (peer) + Interested (peer) and choked (local) + Interested (peer) and choked (local) + + + Interested (peer) and unchoked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Optimistic unchoke - + Peer snubbed - + Peer snubbed - + Incoming connection - + Incoming connection - + Peer from DHT - + Peer from DHT - + Peer from PEX - + Peer from PEX - + Peer from LSD - + Peer from LSD - + Encrypted traffic - + Encrypted traffic - + Encrypted handshake - + Encrypted handshake + + + + Peer is using NAT hole punching + Peer is using NAT hole punching PeerListWidget - - - Country/Region - - - IP/Address - + Country/Region + Country/Region + IP/Address + IP/Address + + + Port Port - + Flags Flags - + Connection Connection - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID - + Peer ID 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. Relevance - + Files i.e. files that are being downloaded right now Files - + Column visibility Column visibility - + Resize columns - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents - + Add peers... - + Add peers... - - + + Adding peers - + Adding peers - + Some peers cannot be added. Check the Log for details. - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - + Peers are added to this torrent. - - + + Ban peer permanently Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + Cannot add peers when the torrent is queued - + No peer was selected - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + Peer "%1" is manually banned - + N/A N/A - + Copy IP:port Copy IP:port @@ -7562,37 +8014,37 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Add Peers - + Add Peers List of peers to add (one IP per line): - + List of peers to add (one IP per line): - + Format: IPv4:port / [IPv6]:port - + Format: IPv4:port / [IPv6]:port No peer entered - + No peer entered Please type at least one peer. - + Please type at least one peer. Invalid peer - + Invalid peer The peer '%1' is invalid. - + The peer '%1' is invalid. @@ -7600,38 +8052,38 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Unavailable pieces - + Unavailable pieces Available pieces - + Available pieces PiecesBar - + Files in this piece: Files in this piece: - + File in this piece: - - - - - File in these pieces: - + File in this piece: + File in these pieces: + File in these pieces: + + + Wait until metadata become available to see detailed information Wait until metadata become available to see detailed information - + Hold Shift key for detailed information Hold Shift key for detailed information @@ -7644,58 +8096,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Search plug-ins - + Installed search plugins: - + Installed search plugins: - + Name Name - + Version - + Version - + Url URL - - + + Enabled Enabled - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Install a new one - + Check for updates Check for updates - + Close Close - + Uninstall Uninstall @@ -7723,7 +8175,8 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 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. - + 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. @@ -7746,7 +8199,7 @@ Those plugins were disabled. Plugins installed or updated: %1 - + Plugins installed or updated: %1 @@ -7778,7 +8231,7 @@ Those plugins were disabled. qBittorrent search plugin - + qBittorrent search plugin @@ -7788,7 +8241,7 @@ Those plugins were disabled. Sorry, couldn't check for plugin updates. %1 - + Sorry, couldn't check for plugin updates. %1 @@ -7798,12 +8251,12 @@ Those plugins were disabled. Couldn't install "%1" search engine plugin. %2 - + Couldn't install "%1" search engine plugin. %2 Couldn't update "%1" search engine plugin. %2 - + Couldn't update "%1" search engine plugin. %2 @@ -7814,100 +8267,67 @@ Those plugins were disabled. Plug-in source - + Search plugin source: Search plug-in source: - + Local file Local file - + Web link Web link - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Preview - + Name Name - + Size Size - + Progress Progress - + Preview impossible Preview impossible - + Sorry, we can't preview this file: "%1". - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents @@ -7918,29 +8338,29 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not exist - + Path does not point to a directory - + Path does not point to a directory - + Path does not point to a file - + Path does not point to a file - + Don't have read permission to path - + Don't have read permission to path - + Don't have write permission to path - + Don't have write permission to path @@ -7979,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Downloaded: - + Availability: Availability: @@ -7999,53 +8419,53 @@ Those plugins were disabled. Transfer - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Time Active: - + ETA: ETA: - + Uploaded: Uploaded: - + Seeds: Seeds: - + Download Speed: Download Speed: - + Upload Speed: Upload Speed: - + Peers: Peers: - + Download Limit: Download Limit: - + Upload Limit: Upload Limit: - + Wasted: Wasted: @@ -8055,193 +8475,220 @@ Those plugins were disabled. Connections: - + Information Information - + Info Hash v1: - + Info Hash v1: - + Info Hash v2: - + Info Hash v2: - + Comment: Comment: - + Select All Select All - + Select None Select None - + Share Ratio: Share Ratio: - + Reannounce In: Re-announce In: - + Last Seen Complete: Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Time Active (in months), indicates how popular the torrent is + + + + Popularity: + Popularity: + + + Total Size: Total Size: - + Pieces: Pieces: - + Created By: Created By: - + Added On: Added On: - + Completed On: Completed On: - + Created On: Created On: - + + Private: + Private: + + + Save Path: Save Path: - + Never Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (have %3) - - + + %1 (%2 this session) %1 (%2 this session) - - + + + N/A N/A - + + Yes + Yes + + + + No + No + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seeded for %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 average) - - New Web seed - New Web seed + + Add web seed + Add HTTP source + Add web seed - - Remove Web seed - Remove Web seed + + Add web seed: + Add web seed: - - Copy Web seed URL - Copy Web seed URL + + + This web seed is already in the list. + This web seed is already in the list. - - Edit Web seed URL - Edit Web seed URL - - - + Filter files... Filter files... - + + Add web seed... + Add web seed... + + + + Remove web seed + Remove web seed + + + + Copy web seed URL + Copy web seed URL + + + + Edit web seed URL... + Edit web seed URL... + + + Speed graphs are disabled - + Speed graphs are disabled - + You can enable it in Advanced Options - + You can enable it in Advanced Options - - New URL seed - New HTTP source - New URL seed - - - - New URL seed: - New URL seed: - - - - - This URL seed is already in the list. - This URL seed is already in the list. - - - + Web seed editing Web seed editing - + Web seed URL: Web seed URL: @@ -8249,58 +8696,58 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + Failed to download RSS feed at '%1'. Reason: %2 + + + + RSS feed at '%1' updated. Added %2 new articles. + RSS feed at '%1' updated. Added %2 new articles. - RSS feed at '%1' updated. Added %2 new articles. - - - - Failed to parse RSS feed at '%1'. Reason: %2 - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8308,142 +8755,183 @@ Those plugins were disabled. Failed to read RSS session data. %1 - + Failed to read RSS session data. %1 Failed to save RSS feed in '%1', Reason: %2 - + Failed to save RSS feed in '%1', Reason: %2 Couldn't parse RSS Session data. Error: %1 - + Couldn't parse RSS Session data. Error: %1 Couldn't load RSS Session data. Invalid data format. - + Couldn't load RSS Session data. Invalid data format. Couldn't load RSS article '%1#%2'. Invalid data format. - + Couldn't load RSS article '%1#%2'. Invalid data format. RSS::Private::Parser - + Invalid RSS feed. Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). - + %1 (line: %2, column: %3, offset: %4). RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - + Cannot move root folder. - - + + Item doesn't exist: %1. + Item doesn't exist: %1. + + + + Can't move a folder into itself or its subfolders. - - Couldn't move folder into itself. - - - - + Cannot delete root folder. Cannot delete root folder. - + Failed to read RSS session data. %1 - - - - - Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to read RSS session data. %1 + Failed to parse RSS session data. File: "%1". Error: "%2" + Failed to parse RSS session data. File: "%1". Error: "%2" + + + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - - - - - Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. + + + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed doesn't exist: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Refresh interval: + + + + sec + sec + + + + Default + Default + + RSSWidget @@ -8463,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read Mark items read @@ -8486,135 +8974,118 @@ Those plugins were disabled. Torrents: (double-click to download) - + Torrents: (double-click to download) - - + + Delete Delete - + Rename... Rename... - + Rename Rename - - + + Update Update - + New subscription... New subscription... - - + + Update all feeds Update all feeds - + Download torrent Download torrent - + Open news URL Open news URL - + Copy feed URL Copy feed URL - + New folder... New folder... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Please choose a folder name - + Folder name: Folder name: - + New folder New folder - - - Please type a RSS feed URL - - - - - - Feed URL: - Feed URL: - - - + Deletion confirmation - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? 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: - + Rename failed Rename failed - + Date: Date: - + Feed: - + Feed: - + Author: Author: @@ -8622,40 +9093,40 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + Offset is out of range - + All plugins are already up to date. - + All plugins are already up to date. - + Updating %1 plugins - + Updating %1 plugins - + Updating plugin %1 - + Updating plugin %1 - + Failed to check for plugin updates: %1 - + Failed to check for plugin updates: %1 @@ -8663,47 +9134,47 @@ Those plugins were disabled. Results(xxx) - + Results(xxx) Search in: - + Search in: <html><head/><body><p>Some search engines search in torrent description and in torrent file names too. Whether such results will be shown in the list below is controlled by this mode.</p><p><span style=" font-weight:600;">Everywhere </span>disables filtering and shows everything returned by the search engines.</p><p><span style=" font-weight:600;">Torrent names only</span> shows only torrents whose names match the search query.</p></body></html> - + <html><head/><body><p>Some search engines search in torrent description and in torrent file names too. Whether such results will be shown in the list below is controlled by this mode.</p><p><span style=" font-weight:600;">Everywhere </span>disables filtering and shows everything returned by the search engines.</p><p><span style=" font-weight:600;">Torrent names only</span> shows only torrents whose names match the search query.</p></body></html> Set minimum and maximum allowed number of seeders - + Set minimum and maximum allowed number of seeders Minimum number of seeds - + Minimum number of seeds Maximum number of seeds - + Maximum number of seeds Set minimum and maximum allowed size of a torrent - + Set minimum and maximum allowed size of a torrent Minimum torrent size - + Minimum torrent size Maximum torrent size - + Maximum torrent size @@ -8720,7 +9191,7 @@ Those plugins were disabled. ∞ - + @@ -8728,239 +9199,249 @@ Those plugins were disabled. Size: - + 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 - - - + Filter search results... - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Results (showing <i>%1</i> out of <i>%2</i>): - + Torrent names only - + Torrent names only - + Everywhere - + Everywhere - + Use regular expressions Use regular expressions - + Open download window - + Open download window - + Download Download - + Open description page - + Open description page - + Copy Copy - + Name Name - + Download link - + Download link - + Description page URL - + Description page URL - + Searching... Searching... - + Search has finished Search has finished - + Search aborted Search aborted - + An error occurred during search... An error occurred during search... - + Search returned no results Search returned no results - + + Engine + Engine + + + + Engine URL + Engine URL + + + + Published On + Published On + + + Column visibility Column visibility - + Resize columns - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents SearchPluginManager - - - Unknown search engine plugin file format. - - - - - Plugin already at version %1, which is greater than %2 - - + Unknown search engine plugin file format. + Unknown search engine plugin file format. + + + + Plugin already at version %1, which is greater than %2 + Plugin already at version %1, which is greater than %2 + + + A more recent version of this plugin is already installed. - + A more recent version of this plugin is already installed. - - Plugin %1 is not supported. - - - - - Plugin is not supported. - + Plugin %1 is not supported. + Plugin %1 is not supported. - Plugin %1 has been successfully updated. - + + Plugin is not supported. + Plugin is not supported. - + + Plugin %1 has been successfully updated. + Plugin %1 has been successfully updated. + + + All categories All categories - + Movies - + Movies - + TV shows TV shows - + Music Music - + Games Games - + Anime Anime - + Software Software - + Pictures Pictures - + Books Books - + Update server is temporarily unavailable. %1 - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') - + Search plugin '%1' contains invalid version string ('%2') @@ -8968,114 +9449,145 @@ Those plugins were disabled. - - - - Search Search - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. There aren't any search plug-ins installed. Click the "Search plug-ins..." button at the bottom right of the window to install some. - + Search plugins... Search plug-ins... - + A phrase to search for. A phrase to search for. - + Spaces in a search term may be protected by double quotes. Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Example: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> - + All plugins All plug-ins - + Only enabled Only enabled - + + + Invalid data format. + Invalid data format. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> - + + Refresh + Refresh + + + Close tab - + Close tab - + Close all tabs - + Close all tabs - + Select... Select... - - - + + Search Engine Search Engine - + + Please install Python to use the 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 - + + Stop Stop + + + SearchWidget::DataStorage - - Search has finished - Search has finished + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Failed to load Search UI saved state data. File: "%1". Error: "%2" - - Search has failed - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Failed to save Search UI state. File: "%1". Error: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Failed to load Search UI history. File: "%1". Error: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Failed to save search history. File: "%1". Error: "%2" @@ -9083,7 +9595,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo Detected unclean program exit. Using fallback file to restore settings: %1 - + Detected unclean program exit. Using fallback file to restore settings: %1 @@ -9098,7 +9610,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo An unknown error occurred while trying to write the configuration file. - + An unknown error occurred while trying to write the configuration file. @@ -9106,17 +9618,17 @@ Click the "Search plug-ins..." button at the bottom right of the windo Don't show again - + Don't show again qBittorrent will now exit. - + qBittorrent will now exit. E&xit Now - + E&xit Now @@ -9126,12 +9638,12 @@ Click the "Search plug-ins..." button at the bottom right of the windo The computer is going to shutdown. - + The computer is going to shutdown. &Shutdown Now - + &Shutdown Now @@ -9141,37 +9653,37 @@ Click the "Search plug-ins..." button at the bottom right of the windo The computer is going to enter suspend mode. - + The computer is going to enter suspend mode. &Suspend Now - + &Suspend Now Suspend confirmation - + Suspend confirmation The computer is going to enter hibernation mode. - + The computer is going to enter hibernation mode. &Hibernate Now - + &Hibernate Now Hibernate confirmation - + Hibernate confirmation You can cancel the action within %1 seconds. - + You can cancel the action within %1 seconds. @@ -9179,43 +9691,43 @@ Click the "Search plug-ins..." button at the bottom right of the windo Global Speed Limits - + Global Speed Limits Speed limits - + Speed limits - + Upload: Upload: - - - + + + ∞ - + - - - + + + KiB/s - + KiB/s - - + + Download: Download: - + Alternative speed limits Alternative speed limits @@ -9407,34 +9919,34 @@ Click the "Search plug-ins..." button at the bottom right of the windo Average time in queue: - + Connected peers: - - - - - All-time share ratio: - + Connected peers: + All-time share ratio: + All-time share ratio: + + + All-time download: - + All-time download: - + Session waste: - + Session waste: - + All-time upload: - + All-time upload: - + Total buffer size: - + Total buffer size: @@ -9447,12 +9959,12 @@ Click the "Search plug-ins..." button at the bottom right of the windo Queued I/O jobs: - + Write cache overload: Write cache overload: - + Read cache overload: Read cache overload: @@ -9471,51 +9983,77 @@ Click the "Search plug-ins..." button at the bottom right of the windo StatusBar - + Connection status: Connection status: - - + + No direct connections. This may indicate network configuration problems. No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + External IP: N/A + + + + DHT: %1 nodes DHT: %1 nodes - + qBittorrent needs to be restarted! - + qBittorrent needs to be restarted! - - - + + + Connection Status: Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + External IPs: %1, %2 + + + + External IP: %1%2 + External IP: %1%2 + + + Click to switch to alternative speed limits Click to switch to alternative speed limits - + Click to switch to regular speed limits Click to switch to regular speed limits @@ -9531,67 +10069,67 @@ Click the "Search plug-ins..." button at the bottom right of the windo Downloading (0) - + Downloading (0) Seeding (0) - + Seeding (0) Completed (0) - + Completed (0) - Resumed (0) - + Running (0) + Running (0) - Paused (0) - + Stopped (0) + Stopped (0) Active (0) - + Active (0) Inactive (0) - + Inactive (0) Stalled (0) - + Stalled (0) Stalled Uploading (0) - + Stalled Uploading (0) Stalled Downloading (0) - + Stalled Downloading (0) Checking (0) - + Checking (0) Moving (0) - + Moving (0) Errored (0) - + Errored (0) @@ -9601,82 +10139,82 @@ Click the "Search plug-ins..." button at the bottom right of the windo Downloading (%1) - + Downloading (%1) Seeding (%1) - + Seeding (%1) Completed (%1) - + Completed (%1) + + + + Running (%1) + Running (%1) - Paused (%1) - + Stopped (%1) + Stopped (%1) + + + + Start torrents + Start torrents + + + + Stop torrents + Stop torrents Moving (%1) - - - - - Resume torrents - Resume torrents - - - - Pause torrents - Pause torrents + Moving (%1) Remove torrents Remove torrents - - - Resumed (%1) - - Active (%1) - + Active (%1) Inactive (%1) - + Inactive (%1) Stalled (%1) - + Stalled (%1) Stalled Uploading (%1) - + Stalled Uploading (%1) Stalled Downloading (%1) - + Stalled Downloading (%1) Checking (%1) - + Checking (%1) Errored (%1) - + Errored (%1) @@ -9712,17 +10250,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo Remove unused tags - - - - - Resume torrents - Resume torrents - - - - Pause torrents - Pause torrents + Remove unused tags @@ -9730,14 +10258,24 @@ Click the "Search plug-ins..." button at the bottom right of the windo Remove torrents - - New Tag - New Tag + + Start torrents + Start torrents + + + + Stop torrents + Stop torrents Tag: - + Tag: + + + + Add tag + Add tag @@ -9747,17 +10285,17 @@ Click the "Search plug-ins..." button at the bottom right of the windo Tag name '%1' is invalid - + Tag name '%1' is invalid Tag exists - + Tag exists Tag name already exists. - + Tag name already exists. @@ -9765,7 +10303,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo Torrent Category Properties - + Torrent Category Properties @@ -9775,7 +10313,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo Save path for incomplete torrents: - + Save path for incomplete torrents: @@ -9800,7 +10338,7 @@ Click the "Search plug-ins..." button at the bottom right of the windo Path: - + Path: @@ -9815,35 +10353,38 @@ Click the "Search plug-ins..." button at the bottom right of the windo Choose download path - + Choose download path New Category - + New Category Invalid category name - + Invalid category name Category name cannot contain '\'. Category name cannot start/end with '/'. Category name cannot contain '//' sequence. - + Category name cannot contain '\'. +Category name cannot start/end with '/'. +Category name cannot contain '//' sequence. Category creation error - + Category creation error Category with the given name already exists. Please choose a different name and try again. - + Category with the given name already exists. +Please choose a different name and try again. @@ -9882,34 +10423,34 @@ Please choose a different name and try again. TorrentContentModel - + Name Name - + Progress Progress - + Download Priority Download Priority - + Remaining Remaining - + Availability Availability - + Total Size - + Total Size @@ -9952,118 +10493,118 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Rename error - + Renaming Renaming - + New name: New name: - + Column visibility Column visibility - + Resize columns - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents - + Open Open - + Open containing folder - + Open containing folder - + Rename... Rename... - + Priority Priority - - + + Do not download Do not download - + Normal Normal - + High High - + Maximum Maximum - + By shown file order - + By shown file order - + Normal priority - + Normal priority - + High priority - + High priority - + Maximum priority - + Maximum priority - + Priority by shown file order - + Priority by shown file order TorrentCreatorController - + Too many active tasks - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation is still unfinished. - + Torrent creation failed. - + Torrent creation failed. @@ -10071,49 +10612,49 @@ Please choose a different name and try again. Torrent Creator - + Torrent Creator Select file/folder to share - + Select file/folder to share Path: - + Path: [Drag and drop area] - + [Drag and drop area] - + Select file - + Select file - + Select folder - + Select folder Settings - + Settings Torrent format: - + Torrent format: Hybrid - + Hybrid @@ -10128,17 +10669,17 @@ Please choose a different name and try again. Calculate number of pieces: - + Calculate number of pieces: Private torrent (Won't distribute on DHT network) - + Private torrent (Won't distribute on DHT network) Start seeding immediately - + Start seeding immediately @@ -10153,7 +10694,7 @@ Please choose a different name and try again. Align to piece boundary for files larger than: - + Align to piece boundary for files larger than: @@ -10168,166 +10709,149 @@ Please choose a different name and try again. Fields - + Fields - + You can separate tracker tiers / groups with an empty line. You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Web seed URLs: - + Tracker URLs: Tracker URLs: - + Comments: - + Comments: - + Source: - + Source: - + Progress: Progress: - + Create Torrent - + Create Torrent - - + + Torrent creation failed - + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Select where to save the new torrent - + Torrent Files (*.torrent) - + Torrent Files (*.torrent) - Reason: %1 - Reason: %1 - - - + Add torrent to transfer list failed. - + Add torrent to transfer list failed. - + Reason: "%1" - + Reason: "%1" - + Add torrent failed Add torrent failed - + Torrent creator - + Torrent creator - + Torrent created: - + Torrent created: TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. - + Watched folder Path cannot be relative. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - - - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Invalid metadata + Watching folder: "%1" @@ -10335,12 +10859,12 @@ Please choose a different name and try again. Torrent Options - + Torrent Options Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category @@ -10358,175 +10882,163 @@ Please choose a different name and try again. Use another path for incomplete torrent - + Category: Category: - - Torrent speed limits - + + Torrent Share Limits + Torrent Share Limits - + Download: Download: - - + + ∞ - + - - + + Torrent Speed Limits + Torrent Speed Limits + + + + KiB/s - + KiB/s - + These will not exceed the global limits - + These will not exceed the global limits - + Upload: Upload: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Disable DHT for this torrent - + Download in sequential order Download in sequential order - + Disable PeX for this torrent - + Disable PeX for this torrent - + Download first and last pieces first Download first and last pieces first - + Disable LSD for this torrent - + Disable LSD for this torrent - + Currently used categories - + Currently used categories - - + + Choose save path Choose save path - + Not applicable to private torrents - - - - - No share limit method selected - - - - - Please select a limit method first - + Not applicable to private torrents TorrentShareLimitsWidget - - - + + + + Default - Default + Default + + + + + + Unlimited + Unlimited - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Set to + + + + Seeding time: + Seeding time: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Inactive seeding time: - + + Action when the limit is reached: + Action when the limit is reached: + + + + Stop torrent + Stop torrent + + + + Remove torrent + Remove torrent + + + + Remove torrent and its content + Remove torrent and its content + + + + Enable super seeding for torrent + Enable super seeding for torrent + + + Ratio: - + Ratio: @@ -10534,153 +11046,168 @@ Please choose a different name and try again. Torrent Tags - - - - - New Tag - New Tag + Torrent Tags - Tag: - + Add tag + Add tag - + + Tag: + Tag: + + + Invalid tag name Invalid tag name - + Tag name '%1' is invalid. - + Tag name '%1' is invalid. - + Tag exists - + Tag exists - + Tag name already exists. - + Tag name already exists. TorrentsController - + Error: '%1' is not a valid torrent file. - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority must be an integer - + Priority is not valid - + Priority is not valid - + Torrent's metadata has not yet downloaded - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File IDs must be integers - + File ID is not valid - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - + Torrent queueing must be enabled - - + + Save path cannot be empty - + Save path cannot be empty - - + + Cannot create target directory - + Cannot create target directory - - + + Category cannot be empty - + Category cannot be empty + + + + Unable to create category + Unable to create category + + + + Unable to edit category + Unable to edit category + + + + Unable to export torrent file. Error: %1 + Unable to export torrent file. Error: %1 - Unable to create category - - - - - Unable to edit category - - - - - Unable to export torrent file. Error: %1 - - - - Cannot make save path - + Cannot make save path - + + "%1" is not a valid URL + "%1" is not a valid URL + + + + URL scheme must be one of [%1] + URL scheme must be one of [%1] + + + 'sort' parameter is invalid - + 'sort' parameter is invalid - + + "%1" is not an existing URL + "%1" is not an existing URL + + + "%1" is not a valid file index. - + "%1" is not a valid file index. - + Index %1 is out of bounds. - + Index %1 is out of bounds. - - + + Cannot write to directory - + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - + Incorrect torrent name - - + + Incorrect category name - + Incorrect category name @@ -10688,7 +11215,7 @@ Please choose a different name and try again. Edit trackers - + Edit trackers @@ -10698,202 +11225,202 @@ Please choose a different name and try again. - All trackers within the same group will belong to the same tier. - The group on top will be tier 0, the next group tier 1 and so on. - Below will show the common subset of trackers of the selected torrents. - + One tracker URL per line. + +- You can split the trackers into groups by inserting blank lines. +- All trackers within the same group will belong to the same tier. +- The group on top will be tier 0, the next group tier 1 and so on. +- Below will show the common subset of trackers of the selected torrents. TrackerListModel - + Working Working - + Disabled Disabled - + Disabled for this torrent - + Disabled for this torrent - + This torrent is private This torrent is private - + N/A N/A - + Updating... Updating... - + Not working Not working - - - Tracker error - - - - - Unreachable - - + Tracker error + Tracker error + + + + Unreachable + Unreachable + + + Not contacted yet Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint - + + Invalid state! + Invalid state! - Tier - - - - - Protocol - + URL/Announce Endpoint + URL/Announce Endpoint + BT Protocol + BT Protocol + + + + Next Announce + Next Announce + + + + Min Announce + Min Announce + + + + Tier + Tier + + + Status Status - + Peers Peers - + Seeds Seeds - - - Leeches - - - Times Downloaded - + Leeches + Leeches - Message - Message + Times Downloaded + Times Downloaded - Next announce - - - - - Min announce - - - - - v%1 - + Message + Message TrackerListWidget - + This torrent is private This torrent is private - + Tracker editing Tracker editing - + Tracker URL: Tracker URL: - - + + Tracker editing failed Tracker editing failed - + The tracker URL entered is invalid. The tracker URL entered is invalid. - + The tracker URL already exists. The tracker URL already exists. - + Edit tracker URL... - + Edit tracker URL... - + Remove tracker Remove tracker - + Copy tracker URL - + Copy tracker URL - + Force reannounce to selected trackers Force re-announce to selected trackers - + Force reannounce to all trackers Force re-announce to all trackers - + Resize columns - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Add trackers... - + Column visibility Column visibility @@ -10903,7 +11430,7 @@ Please choose a different name and try again. Add trackers - + Add trackers @@ -10911,100 +11438,100 @@ Please choose a different name and try again. List of trackers to add (one per line): - + µTorrent compatible list URL: µTorrent compatible list URL: - + Download trackers list - + Download trackers list - + Add - + Add - + Trackers list URL error - + Trackers list URL error - + The trackers list URL cannot be empty - + The trackers list URL cannot be empty - + Download trackers list error - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" - + Error occurred when downloading the trackers list. Reason: "%1" TrackersFilterWidget - + Warning (%1) Warning (%1) - + Trackerless (%1) Tracker-less (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Tracker error (%1) - + + Other error (%1) + Other error (%1) + + + Remove tracker Remove tracker - - Resume torrents - Resume torrents + + Start torrents + Start torrents - - Pause torrents - Pause torrents + + Stop torrents + Stop torrents - + Remove torrents Remove torrents - + Removal confirmation - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + Don't ask me again. - + All (%1) this is for the tracker filter All (%1) @@ -11013,9 +11540,9 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument - + 'mode': invalid argument @@ -11064,13 +11591,13 @@ Please choose a different name and try again. [F] Downloading metadata Used when forced to load a magnet link. You probably shouldn't translate the F. - + [F] Downloading metadata [F] Downloading Used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Downloading @@ -11083,7 +11610,7 @@ Please choose a different name and try again. [F] Seeding Used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Seeding @@ -11105,11 +11632,6 @@ Please choose a different name and try again. 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. Checking resume data - - - Paused - Paused - Completed @@ -11119,234 +11641,266 @@ Please choose a different name and try again. Moving Torrent local data are being moved/relocated - + Moving Missing Files - + Missing Files Errored Torrent status, the torrent has an error - + Errored - + Name i.e: torrent name Name - + Size i.e: torrent size Size - + Progress % Done Progress - + + Stopped + Stopped + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Peers - + Down Speed i.e: Download speed Down Speed - + Up Speed i.e: Upload speed Up Speed - + Ratio Share ratio Ratio - + + Popularity + Popularity + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Category - + Tags Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Added On - + Completed On Torrent was completed on 01/01/2010 08:00 Completed On - + Tracker Tracker - + Down Limit i.e: Download limit Down Limit - + Up Limit i.e: Upload limit Up Limit - + Downloaded Amount of data downloaded (e.g. in MB) Downloaded - + Uploaded Amount of data uploaded (e.g. in MB) Uploaded - + Session Download Amount of data downloaded since program open (e.g. in MB) - + Session Download - + Session Upload Amount of data uploaded since program open (e.g. in MB) - + Session Upload - + Remaining Amount of data left to download (e.g. in MB) Remaining - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Time Active - + + Yes + Yes + + + + No + No + + + Save Path Torrent save path - + Save Path - + Incomplete Save Path Torrent incomplete save path - + Incomplete Save Path - + Completed Amount of data completed (e.g. in MB) Completed - + Ratio Limit Upload share ratio limit - + Ratio Limit + + + + Last Seen Complete + Indicates the time when the torrent was last seen complete/whole + Last Seen Complete + + + + Last Activity + Time passed since a chunk was downloaded/uploaded + Last Activity + + + + Total Size + i.e. Size including unwanted data + Total Size - Last Seen Complete - Indicates the time when the torrent was last seen complete/whole - - - - - Last Activity - Time passed since a chunk was downloaded/uploaded - - - - - Total Size - i.e. Size including unwanted data - - - - Availability The number of distributed copies of the torrent Availability - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce - + Reannounce In - - + + Private + Flags private torrents + Private + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago - + %1 ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seeded for %2) @@ -11355,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Column visibility - + Recheck confirmation Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? Are you sure you want to recheck the selected torrent(s)? - + Rename Rename - + New name: New name: - + Choose save path Choose save path - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + The selected torrent "%1" does not contain previewable files + + + + Resize columns + Resize columns - Resize columns - - - - Resize all non-hidden columns to the size of their contents - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Add Tags - - - + Choose folder to save exported .torrent files - + Choose folder to save exported .torrent files + + + + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - - - - A file with the same name already exists - + A file with the same name already exists - + Export .torrent file error - + Export .torrent file error - + Remove All Tags - + Remove All Tags - + Remove all tags from selected torrents? - + Remove all tags from selected torrents? - + Comma-separated tags: Comma-separated tags: - + Invalid tag - + Invalid tag - + Tag name: '%1' is invalid - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Resume - - - - &Pause - Pause the torrent - &Pause - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Pre&view file... - + Torrent &options... - + Torrent &options... - + Open destination &folder - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &up - + Move &down i.e. Move down in the queue - + Move &down - + Move to &top i.e. Move to top of the queue - + Move to &top - + Move to &bottom i.e. Move to bottom of the queue - + Move to &bottom - + Set loc&ation... - + Set loc&ation... - + Force rec&heck - + Force rec&heck - + Force r&eannounce - + Force r&eannounce - + &Magnet link - + &Magnet link - + Torrent &ID - + Torrent &ID - + &Comment - + &Comment - + &Name - + &Name - + Info &hash v1 - + Info &hash v1 - + Info h&ash v2 - + Info h&ash v2 + + + + Re&name... + Re&name... - Re&name... - - - - Edit trac&kers... - - - - - E&xport .torrent... - - - - - Categor&y - - - - - &New... - New category... - - - - - &Reset - Reset category - - - - - Ta&gs - - - - - &Add... - Add / assign multiple tags... - - - - - &Remove All - Remove all tags - - - - - &Queue - - - - - &Copy - - - - - Exported torrent is not necessarily the same as the imported - + Edit trac&kers... + E&xport .torrent... + E&xport .torrent... + + + + Categor&y + Categor&y + + + + &New... + New category... + &New... + + + + &Reset + Reset category + &Reset + + + + Ta&gs + Ta&gs + + + + &Add... + Add / assign multiple tags... + &Add... + + + + &Remove All + Remove all tags + &Remove All + + + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue + &Queue + + + + &Copy + &Copy + + + + Exported torrent is not necessarily the same as the imported + Exported torrent is not necessarily the same as the imported + + + Download in sequential order Download in sequential order - - Errors occurred when exporting .torrent files. Check execution log for details. - + + Add tags + Add tags - + + Errors occurred when exporting .torrent files. Check execution log for details. + Errors occurred when exporting .torrent files. Check execution log for details. + + + + &Start + Resume/start the torrent + &Start + + + + Sto&p + Stop the torrent + Sto&p + + + + Force Star&t + Force Resume/start the torrent + Force Star&t + + + &Remove Remove the torrent &Remove - + Download first and last pieces first Download first and last pieces first - + Automatic Torrent Management Automatic Torrent Management - - - Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - - - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Can not force re-announce if torrent is Paused/Queued/Errored/Checking - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category + + + Super seeding mode Super seeding mode @@ -11697,73 +12231,78 @@ Please choose a different name and try again. UI Theme Configuration - + UI Theme Configuration Colors - + Colours Color ID - + Colour ID Light Mode - + Light Mode Dark Mode - + Dark Mode Icons - + Icons Icon ID - + Icon ID - + UI Theme Configuration. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - + Couldn't copy icon file. Source: %1. Destination: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Set app style failed. Unknown style: "%1" + + + Failed to load UI theme from file: "%1" - + Failed to load UI theme from file: "%1" @@ -11771,17 +12310,17 @@ Please choose a different name and try again. Couldn't parse UI Theme configuration file. Reason: %1 - + Couldn't parse UI Theme configuration file. Reason: %1 UI Theme configuration file has invalid format. Reason: %1 - + UI Theme configuration file has invalid format. Reason: %1 Root JSON value is not an object - + Root JSON value is not an object @@ -11792,55 +12331,56 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". - + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - - - - - Failed to find `python` executable in Windows Registry. - + Failed to find `python` executable in PATH environment variable. PATH: "%1" + Failed to find `python` executable in Windows Registry. + Failed to find `python` executable in Windows Registry. + + + Failed to find Python executable - + Failed to find Python executable @@ -11848,27 +12388,27 @@ Please choose a different name and try again. File open error. File: "%1". Error: "%2" - + File open error. File: "%1". Error: "%2" File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - + File size exceeds limit. File: "%1". File size: %2. Size limit: %3 File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 File read error. File: "%1". Error: "%2" - + File read error. File: "%1". Error: "%2" Read size mismatch. File: "%1". Expected: %2. Actual: %3 - + Read size mismatch. File: "%1". Expected: %2. Actual: %3 @@ -11876,17 +12416,17 @@ Please choose a different name and try again. Watched Folder Options - + Watched Folder Options <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> - + <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> Recursive mode - + Recursive mode @@ -11904,224 +12444,232 @@ Please choose a different name and try again. Watched folder path cannot be empty. - + Watched folder path cannot be empty. Watched folder path cannot be relative. - + Watched folder path cannot be relative. Folder '%1' is already in watch list. - + Folder '%1' is already in watch list. Folder '%1' doesn't exist. - + Folder '%1' doesn't exist. Folder '%1' isn't readable. - + Folder '%1' isn't readable. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. %1 - + Web server error. Unknown error. - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI - + Credentials are not set - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + + + fs + + + Unknown error + Unknown error misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_eo.ts b/src/lang/qbittorrent_eo.ts index 1795f2c68..8c2993353 100644 --- a/src/lang/qbittorrent_eo.ts +++ b/src/lang/qbittorrent_eo.ts @@ -14,92 +14,92 @@ Pri - + Authors Aŭtoroj - + Current maintainer - Aktuala prizorganto + Nuna prizorganto - + Greece - Grekujo + Grekio - - + + Nationality: Nacieco: - - + + E-mail: - Repoŝto: + Retpoŝtadreso: - - + + Name: Nomo: - + Original author - Originala aŭtoro + Origina aŭtoro - + France - Francujo + Francio - + Special Thanks - Specialaj Dankoj + Specialaj dankoj - + Translators Tradukistoj - + License Permesilo - + Software Used - Programaroj Uzita + Programaro uzita - + qBittorrent was built with the following libraries: - qBittorrent konstruiĝis kun la sekvaj bibliotekoj: + qBittorrent estis farita kun la jenaj bibliotekoj: - + Copy to clipboard - + Kopii al tondujo An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar. - + Altnivela BitTorrent-kliento programita en C++, bazita sur Qt toolkit kaj libtorrent-rasterbar. - Copyright %1 2006-2024 The qBittorrent project - + Copyright %1 2006-2025 The qBittorrent project + Kopirajto %1 2006-2025 La qBittorrent-projekto Home Page: - Ĉefpaĝo: + Hejmpaĝo: @@ -114,7 +114,7 @@ The free IP to Country Lite database by DB-IP is used for resolving the countries of peers. The database is licensed under the Creative Commons Attribution 4.0 International License - + La libera IP al la datumbazo de Country Light per DB-IP estas uzis por trovas la landon de samtavolanoj. La datumbazon permesas sub la Creative Commons Atribution 4.0 International License @@ -123,39 +123,39 @@ The old path is invalid: '%1'. - + La malnova vojo nevalidas: "%1". The new path is invalid: '%1'. - + La nova vojo nevalidas: "%1". Absolute path isn't allowed: '%1'. - + Absoluta vojo ne estas permesata: "%1". The file already exists: '%1'. - + La dosiero jam ekzistas: "%1". No such file: '%1'. - + Tiu dosiero ne ekzistas: "%1". The folder already exists: '%1'. - + La dosierujo jam ekzistas: "%1". No such folder: '%1'. - + Tiu dosierujo ne ekzistas: "%1". @@ -163,22 +163,17 @@ Save at - konservi en + Konservi ĉe - + Never show again - Neniam remontru - - - - Torrent settings - Torentaj agordoj + Neniam remontri Set as default category - + Agordi kiel defaŭlta kategorio @@ -188,37 +183,42 @@ Start torrent - Komenci la torenton + Komenci torenton - + Torrent information - + Torenta informaro - + Skip hash check - Preterpasi la haketan kontrolon + Preterpasi haket-kontrolon Use another path for incomplete torrent + Uzi alian vojon por nekompleta torento + + + + Torrent options Tags: - + Etikedoj: Click [...] button to add/remove tags. - + Alklaki [...] butonon por aldoni/forigi etikedojn. Add/remove tags - + Aldoni/forigi etikedojn @@ -228,95 +228,95 @@ Stop condition: - + Kondiĉo por halti: - - + + None - + Nenia - - + + Metadata received - + Metadatumo ricevita - + Torrents that have metadata initially will be added as stopped. - + Torentoj kiuj komence havas metadatumo estos aldonitaj kiel haltitaj. - - + + Files checked - + Dosieroj kontrolitaj - + Add to top of queue - + Aldoni al vica supro - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Kiam kontrolita la .torrent-dosiero estos forigita sendepende de la agordoj sur la "Elŝutoj" paĝo de la "Opcioj"-dialogo - + Content layout: - + Enhava aranĝo: - + Original - + Origina - + Create subfolder - + Krei subdosierujon - + Don't create subfolder - + Ne krei subdosierujon - + Info hash v1: - + V1 de Informa Haketaĵo: - + Size: Grando: - + Comment: Komento: - + Date: Dato: Torrent Management Mode: - + Torenta mastruma reĝimo: Automatic mode means that various torrent properties(eg save path) will be decided by the associated category - + Aŭtomata reĝimo signifas ke diversaj torentaj ecoj (ekz. konserva vojo) estos decidota de la ligita kategorio Manual - + Permana @@ -326,150 +326,150 @@ Remember last used save path - + Memori laste uzitan konservan vojon - + Do not delete .torrent file - + Ne forigi .torrent-dosieron - + Download in sequential order Elŝuti en sinsekva ordo - + Download first and last pieces first - + Elŝuti la unuan kaj la finan pecojn unue - + Info hash v2: - + V2 de Informa Haketaĵo: - + Select All - Elekti cion + Elekti ĉiujn - + Select None - Elekti nenion + Elekti neniujn - + Save as .torrent file... - + Konservi kiel ".torrent"-dosiero... - + I/O Error - Eneliga eraro + Eneliga erraro - + Not Available This comment is unavailable - Ne Disponeblas + Nedisponebla - + Not Available This date is unavailable - Ne Disponeblas + Nedisponebla - + Not available - Ne disponeblas + Nedisponebla - + Magnet link Magnet-ligilo - + Retrieving metadata... Ricevante metadatenojn... - - + + Choose save path Elektu la dosierindikon por konservi - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torenton haltigos post ricevis metadatenojn. - + Torrent will stop after files are initially checked. - + Torento estos haltota post komenca kontrolo de dosieroj. - + This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) - + %1 (Libera spaco surdiske: %2) - + Not available This size is unavailable. - Ne disponeblas + Nedisponebla - + Torrent file (*%1) - + Torentodosiero (*%1) - + Save as torrent file - + Konservi kiel torentodosiero - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Ne povas eksporti torentan metadatenan dosieron '%1'. Kialo: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Ne povas kreii v2 torenton ĝis giajn datumojn tute elŝutis. - + Filter files... Filtri dosierojn... - + Parsing metadata... Sintakse analizante metadatenojn... - + Metadata retrieval complete La ricevo de metadatenoj finiĝis @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Elŝutas torenton... Fonto: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Malsukcesis aldoni torenton. Fonto: "%1". Kialo: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -517,17 +517,17 @@ Torrent Management Mode: - + Modo de Torenta Administrado Automatic mode means that various torrent properties(eg save path) will be decided by the associated category - + La signifo de aŭtomata modo estas diversaj torentaj ecoj(ek. konserva indiko) decidos per la elektita kategorio. Save at - konservi en + Konservi en @@ -537,7 +537,7 @@ Use another path for incomplete torrents: - + Uzi alian indikon por nekompletaj torentoj: @@ -547,17 +547,17 @@ Tags: - + Etikedoj: Click [...] button to add/remove tags. - + Alklaki [...] butonon al aldoni/forigi etikedojn. Add/remove tags - + Aldoni/forigi etikedojn @@ -567,22 +567,22 @@ Start torrent: - + Komenci torenton: Content layout: - + Enhava aranĝo: Stop condition: - + Haltigi situacion: Add to top of queue: - + Aldoni al super de la vicoj: @@ -608,7 +608,7 @@ Default - + Defaŭlto @@ -627,7 +627,7 @@ Manual - + Mana @@ -637,794 +637,894 @@ Original - + Originala Create subfolder - + Kreii subdosierujon Don't create subfolder - + Ne krei subdosierujon None - + Nenio Metadata received - + Ricevis metadatenojn Files checked - + Dosierojn ekzamenis AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Rekontroli torentojn post fino - - + + ms milliseconds ms - + Setting Agordo - + Value Value set for this setting Valoro - + (disabled) - + (malebligita) - + (auto) (aŭtomata) - + + min minutes - + min - + All addresses Ĉiuj adresoj - + qBittorrent Section - - + + Open documentation - + Malfermi dokumentadon - + All IPv4 addresses - + Ĉiuj IPv4 adresoj - + All IPv6 addresses - + Ĉiuj IPv6 adresoj - + libtorrent Section - + Fastresume files Rapidreaktivigi dosierojn - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Normala - + Below normal Sub normala - + Medium Meza - + Low Malalta - + Very low Tre Malalta - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalo por senvalidigado de la diska kaŝmemoro - + Disk queue size - - + + Enable OS cache Ebligi operaciuman kaŝmemoron - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Defaŭlto - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP Preferi TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + sek + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Aperigi sciigoj - + Display notifications for added torrents - + Download tracker's favicon - + Save path history length - + Enable speed graphs - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck Konfirmi rekontrolon de la torento - + Confirm removal of all tags - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface Iu ajn interfaco - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Ebligu enigitan spurilon - + Embedded tracker port Enigita spurila pordo + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + Torrent name: %1 Nomo de la torento: %1 - + Torrent size: %1 Grando de la torento: %1 - + Save path: %1 Konserva dosierindiko: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds La torento elŝutiĝis en %1. - + + Thank you for using qBittorrent. Dankon pro uzi la qBittorrent-klienton. - + Torrent: %1, sending mail notification - + Add torrent failed - + Malsukcesis aldoni torenton - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit &Ĉesu - + I/O Error i.e: Input/Output Error Eneliga eraro - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ Kial: %2 - + Torrent added - + '%1' was added. e.g: xxx.avi was added. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' finiĝis elŝuton. - + Information Informoj - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit Ĉesigi - + Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Neniam - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Konservante la torentan progreson... - + qBittorrent is now ready to exit @@ -1536,7 +1646,7 @@ Kial: %2 Could not create directory '%1'. - + Ne povis krei dosierujon "%1". @@ -1605,12 +1715,12 @@ Kial: %2 - + Must Not Contain: Nepras ne enhavi: - + Episode Filter: Epizodfiltrilo: @@ -1639,7 +1749,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also days - tagoj + tagoj @@ -1654,271 +1764,271 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Import... - &Enporti... + Enport&i... &Export... - E&lporti... + &Elporti... - + 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 - + 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 - + Episode number is a mandatory positive value - + Rules - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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. Regulo kun tiu nomo jam ekzistas, bonvolu elekti alian nomon. - + Are you sure you want to remove the download rule named '%1'? Ĉu vi certas, ke vi volas forigi la elŝutregulon, kies nomo estas '%1'? - + 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 - + Invalid action Malvalida ago - + The list is empty, there is nothing to export. La listo malplenas, estas nenio por elporti. - + Export RSS rules - + I/O Error Eneliga eraro - + Failed to create the destination file. Reason: %1 - + Import RSS rules - + Failed to import the selected rules file. Reason: %1 - + Add new rule... Aldoni novan regulon... - + Delete rule Forigi la regulon - + Rename rule... Renomi la regulon... - + Delete selected rules Forigi elektitajn regulojn - + Clear downloaded episodes... - + Rule renaming Regul-renomado - + Please type the new rule name Bonvolu tajpi la novan regulnomon - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1928,39 +2038,39 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also List of banned IP addresses - + Listo de forbaritaj IP-adresoj Ban IP - + Forbari IP-on Delete - Forigu + Forigi Warning - + Averto The entered IP address is invalid. - + La entajpita IP-adreso nevalidas. The entered IP is already banned. - + La entajpita IP-adreso jam estas forbarita. BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1970,28 +2080,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2002,16 +2122,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2019,38 +2140,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2058,22 +2201,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2081,457 +2224,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - + Torento: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2541,19 +2730,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Malsukcesis komenci fontsendi. BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2561,67 +2750,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2642,189 +2831,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - Uzo: + Uzado: - + [options] [(<filename> | <url>)...] - + Options: Opcioj: - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + pordo + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen Malebligi salutŝildon - + Run in daemon-mode (background) Lanĉi per demonreĝimo (fone) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + nomo - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Preterpasi la haketan kontrolon - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first - + Elŝuti la unuan kaj la finan pecojn unue - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Helpo @@ -2834,7 +3023,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Categories - + Kategorioj @@ -2844,7 +3033,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Uncategorized - + Senkategoriaj @@ -2852,63 +3041,68 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Add category... - + Aldoni kategroion... Add subcategory... - + Aldoni subkategorion... Edit category... - + Redakti kategorion... Remove category - + Forigi kategorion Remove unused categories - + Forigi neuzatajn kategoriojn - Resume torrents - Reaktivigi la torentojn + Start torrents + - Pause torrents - Paŭzigi la torentojn + Stop torrents + Remove torrents - + Forigi torentojn ColorWidget - + Edit... - + Redakti... - + Reset Vakigi + + + System + + CookiesDialog Manage Cookies - + Administri kuketojn @@ -2916,12 +3110,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Domain - + Domajno Path - + Vojo @@ -2936,18 +3130,18 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Expiration Date - + Eksvalidiĝa dato CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2955,9 +3149,9 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 - + Malsukcesis ŝargi defaŭltajn kolorojn de etoso. %1 @@ -2965,7 +3159,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Remove torrent(s) - + Forigi torento(j)n @@ -2974,25 +3168,25 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - - - - - Are you sure you want to remove '%1' from the transfer list? - Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? + Also remove the content files - Are you sure you want to remove these %1 torrents from the transfer list? - Are you sure you want to remove these 5 torrents from the transfer list? - + Are you sure you want to remove '%1' from the transfer list? + Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? + Ĉu vi vere volas forigi '%1' de la transmetlisto? - + + Are you sure you want to remove these %1 torrents from the transfer list? + Are you sure you want to remove these 5 torrents from the transfer list? + Ĉu vi vere volas forigi tiujn %1 torentojn de la transmetlisto? + + + Remove - + Forigi @@ -3000,17 +3194,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download from URLs - + Elŝuti el URL-oj - + Add torrent links - + Aldoni torent-ligiloj - + One link per line (HTTP links, Magnet links and info-hashes are supported) - + Po unu ligilo linie (HTTP-ligiloj, Magnet-ligiloj kaj info-haketoj estas subtenitaj) @@ -3018,14 +3212,14 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Elŝuti - + No URL entered - Neniu URL-adreso eniĝis + Neniu URL entajpita - + Please type at least one URL. - Bonvolu tajpi almenaŭ unu URL-adreson. + Bonvole tajpu almenaŭ unu URL-on. @@ -3033,17 +3227,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Missing pieces - + Mankantaj pecoj Partial pieces - + Partaj pecoj Completed pieces - + Kompletigitaj pecoj @@ -3056,7 +3250,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Blocked IPs - Blokitaj IP-adresoj + Forbaritaj IP-oj @@ -3066,7 +3260,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Clear - Vakigi + Viŝi @@ -3088,7 +3282,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also An error occurred while trying to open the log file. Logging to file is disabled. - + Eraro okazis provante malfermi la protokoldosieron. Protokolado al dosiero malebligita. @@ -3103,24 +3297,24 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Browse... Launch file dialog button text (full) - + &Foliumi... Choose a file Caption for file open/save dialog - + Elekti dosieron Choose a folder Caption for directory open dialog - + Elekti dosierujon Any file - + Ajna dosiero @@ -3182,25 +3376,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Elŝutas torenton... Fonto: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3208,38 +3425,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Nesubtenata databank-dosiergrando. - + Metadata error: '%1' entry not found. Metadatena eraro: elemento '%1' ne troviĝis. - + Metadata error: '%1' entry has invalid type. Metadatena eraro: elemento '%1' havas malvalidan tipon. - + Unsupported database version: %1.%2 Nesubtenata datenbank-versio: %1.%2 - + Unsupported IP version: %1 Nesubtenata IP-versio: %1 - + Unsupported record size: %1 - + Database corrupted: no data section found. @@ -3247,17 +3464,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3272,7 +3489,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Example: 172.17.32.0/24, fdff:ffff:c8::/40 - + Ekzemple: 172.17.32.0/24, fdff:ffff:c8::/40 @@ -3282,7 +3499,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Delete - Forigu + Forigi @@ -3298,26 +3515,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... - Folii... + Foliumi... - + Reset Vakigi - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3349,75 +3600,75 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned - + %1 estis forbanita Main - + %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. - + 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: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3427,611 +3678,683 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Edit - &Redakti + R&edakti - + &Tools &Iloj - + &File &Dosiero - + &Help &Helpo - + On Downloads &Done - + &View &Vido - + &Options... - &Opcioj + &Opcioj... - - &Resume - &Reaktivigi - - - + &Remove - + Fo&rigi - + Torrent &Creator Torent&kreilo - - + + Alternative Speed Limits Alternativaj rapidlimoj - + &Top Toolbar - + Display Top Toolbar - + Status &Bar - + Filters Sidebar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader &RSS-legilo - + Search &Engine &Serĉilo - + L&ock qBittorrent - Ŝl&osi la qBittorrent-klienton + Ŝl&osi qBittorrent-on - + Do&nate! Do&nacu! - + + Sh&utdown System + + + + &Do nothing - + Fari &nenion - + Close Window - + Fermi fenestron - - R&esume All - R&eaktivigu Ĉion - - - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log - &Protokolo + Protoko&lo - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue - + Move to the bottom of the queue - + Top of Queue - + Move to the top of the queue - + Move Down Queue - + Move down in the queue - + Move Up Queue - + Move up in the queue - + &Exit qBittorrent Ĉ&esigi la qBittorrent-klienton - + &Suspend System &Haltetigi la sistemon - + &Hibernate System &Diskodormigi la sistemon - - S&hutdown System - Mal&ŝalti la sistemon - - - + &Statistics &Statistikoj - + Check for Updates Kontroli ĝisdatigadon - + Check for Program Updates Kontroli programaran ĝisdatigadon - + &About &Pri - - &Pause - &Paŭzigu - - - - P&ause All - &Paŭzigu Ĉion - - - + &Add Torrent File... - Aldonu Torent&dosieron... + &Aldoni torentodosieron... - + Open Malfermu - + E&xit &Ĉesu - + Open URL Malfermu URL-adreson - + &Documentation &Dokumentado - + Lock Ŝlosu - - - + + + Show Montru - + Check for program updates Kontroli programaran ĝisdatigadon - + Add Torrent &Link... 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 - + &Set Password &Agordi pasvorton - + Preferences - Agordoj + Preferoj - + &Clear Password &Vakigi la pasvorton - + Transfers Transmetoj - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + 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: - + Are you sure you want to clear the password? Ĉu vi certas, ke vi volas vakigi la pasvorton? - + Use regular expressions - + + + Search Engine + Serĉilo + + + + Search has failed + Serĉo malsukcesis + + + + Search has finished + Serĉo finiĝis + + + Search Serĉi - + Transfers (%1) Transmetoj (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent ĵus ĝisdatiĝis kaj devas relanĉiĝi por la ŝanĝoj efiki. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No &Ne - + &Yes &Jes - + &Always Yes - &Ĉiam Jes + Ĉi&am jes - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available Ĝisdatigo por qBittorrent disponeblas - + 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. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. Neniu ĝisdatigo disponeblas. Vi jam uzas la aktualan version. - + &Check for Updates &Kontroli ĝisdatigadon - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Paŭzinta + + + Checking for Updates... Kontrolante ĝisdatigadon... - + Already checking for program updates in the background Jam kontrolante programan ĝisdatigon fone - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Elŝuta eraro - - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - - + + Invalid password Malvalida pasvorto - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid - La pasvorto malvalidas + La pasvorto nevalidas - + DL speed: %1 e.g: Download speed: 10 KiB/s - Elŝutrapido: %1 + EL rapido: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s - Alŝutrapido: %1 + AL rapido: %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 qBittorrent ĉesantas - + Open Torrent Files - Malfermi Torentdosierojn + Malfermi torentodosierojn - + Torrent Files - Torentdosieroj + Torentodosieroj @@ -4224,10 +4547,15 @@ Please install it manually. Net::DownloadManager - - Ignoring SSL error, URL: "%1", errors: "%2" + + SSL error, URL: "%1", errors: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" + Ignoras SSL-eraron, URL: "%1", eraroj: "%2" + Net::GeoIPManager @@ -4282,7 +4610,7 @@ Please install it manually. Albania - Albanujo + Albanio @@ -4347,7 +4675,7 @@ Please install it manually. Belgium - Belgujo + Belgio @@ -4357,7 +4685,7 @@ Please install it manually. Bulgaria - Bulgarujo + Bulgario @@ -4412,7 +4740,7 @@ Please install it manually. Belarus - Belorusujo + Belaruso @@ -4507,12 +4835,12 @@ Please install it manually. Czech Republic - Ĉeĥujo + Ĉeĥio Germany - Germanujo + Germanio @@ -4567,7 +4895,7 @@ Please install it manually. Spain - Hispanujo + Hispanio @@ -4602,7 +4930,7 @@ Please install it manually. France - Francujo + Francio @@ -4667,7 +4995,7 @@ Please install it manually. Greece - Grekujo + Grekio @@ -4722,7 +5050,7 @@ Please install it manually. Hungary - Hungarujo + Hungario @@ -4767,7 +5095,7 @@ Please install it manually. Italy - Italujo + Italio @@ -4782,7 +5110,7 @@ Please install it manually. Japan - Japanujo + Japanio @@ -5022,7 +5350,7 @@ Please install it manually. Norway - Norvegujo + Norvegio @@ -5097,7 +5425,7 @@ Please install it manually. Portugal - Portugalujo + Portugalio @@ -5122,12 +5450,12 @@ Please install it manually. Romania - Rumanujo + Romanio Russian Federation - Rusujo + Rusio @@ -5157,7 +5485,7 @@ Please install it manually. Sweden - Svedujo + Svedio @@ -5167,7 +5495,7 @@ Please install it manually. Slovenia - Slovenujo + Slovenio @@ -5177,7 +5505,7 @@ Please install it manually. Slovakia - Slovakujo + Slovakio @@ -5367,7 +5695,7 @@ Please install it manually. Turkey - Turkujo + Turkio @@ -5392,7 +5720,7 @@ Please install it manually. Ukraine - Ukrainujo + Ukrainio @@ -5467,7 +5795,7 @@ Please install it manually. Serbia - Serbujo + Serbio @@ -5518,47 +5846,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5595,487 +5923,511 @@ Please install it manually. BitTorrent BitTorrent - - - RSS - - - Web UI - TTT-UI + RSS + RSS - + Advanced - Speciala + Altnivelaj - + Customize UI Theme... - + Transfer List Transmetlisto - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Uzi alternajn vicokolorojn - + Hide zero and infinity values - + Always Ĉiam - - Paused torrents only - - - - + Action on double-click Duoble-klaka ago - + Downloading torrents: Elŝutante torentojn: - - - Start / Stop Torrent - Komenci / Haltigi la Torenton - - - - + + Open destination folder Malfermi la celdosierujon - - + + No action Neniu ago - + Completed torrents: Finitaj torentoj: - + Auto hide zero status filters - + Desktop Labortablo - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original - + Originalo - + Create subfolder - + Kreii subdosierujon - + Don't create subfolder - + Ne krei subdosierujon - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + Aldoni al super de la vicoj - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Aldoni... - + Options.. - + Remove - + Forigi - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + Ajna - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time De: - + To: To end time - Al: + Ĝis: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader - + RSS-legilo - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: Maksimuma nombro da artikoloj por fluo: - - - + + + min minutes - + min - + Seeding Limits - + Fontsendaj limoj - - Pause torrent - - - - + Remove torrent - + Forigi torenton - + Remove torrent and its files - + Forigi torenton kaj ĝiaj dosieroj - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL-adreso: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) - + IP address: - + IP-adreso: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Neniam - + ban for: - + Session timeout: - + Disabled Malebligita - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6084,441 +6436,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + Serĉi + + + + WebUI + + + + Interface - + Language: + Lingvo: + + + + Style: - + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Normala - + 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 - + Check for program updates Kontroli programaran ĝisdatigadon - + Power Management Energiadministrado - - Save path: + + &Log Files - + + Save path: + Konserva dosierindiko: + + + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent Aldonante torenton - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: - + Manual - + Mana - + Automatic Aŭtomata - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: - Kopii .torrent-dosierojn al: + Kopii ".torrent"-dosierojn al: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + tagoj - + months Delete backup logs older than 10 months - + monatoj - + years Delete backup logs older than 10 years - + jaroj - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ne komenci la elŝuton aŭtomate - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Aldonu finaĵon .!qB al mankohavaj dosieroj - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - + Nenio - - + + Metadata received - + Ricevis metadatenojn - - + + Files checked - + Dosierojn ekzamenis - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Uzi alian indikon por nekompletaj torentoj: - + Automatically add torrents from: Aŭtomate aldoni torentojn de: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6535,766 +6928,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + Ricevonto - + To: To receiver Al: - + SMTP server: SMTP-servilo: - + Sender - + Sendanto - + From: From sender De: - + This server requires a secure connection (SSL) - - + + Authentication Aŭtentigo - - - - + + + + Username: Uzantnomo: - - - - + + + + Password: Pasvorto: - + Run external program - + Lanĉi eksteran programon - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + Listening Port Aŭskultpordo - + Port used for incoming connections: Pordo uzata por alvenantaj konektoj: - + Set to 0 to let your system pick an unused port - + Random Hazarda - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits Konektaj Limoj - + Maximum number of connections per torrent: Maksimuma nombro da konektoj por torento: - + Global maximum number of connections: Malloka maksimuma nombro da konektoj: - + Maximum number of upload slots per torrent: Maksimuma nombro da alŝutkonektoj por torento: - + Global maximum number of upload slots: - + Proxy Server Prokura Servilo - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Gastigo: - - - + + + Port: Pordo: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Uzi prokurilon por samtavolaj konektoj - + A&uthentication - - Info: The password is saved unencrypted - Informo: La pasvorto estas konservita senĉifrite - - - + Filter path (.dat, .p2p, .p2b): Filtri la dosierindikon (.dat, .p2p, .p2b): - + Reload the filter Reŝargi la filtron - + Manually banned IP addresses... - + Apply to trackers Apliki al spuriloj - + Global Rate Limits Mallokaj rapidlimoj - - - - - - - + + + + + + + ∞ - + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: - Alŝuta: + Alŝuto: - - + + Download: - Elŝuti + Elŝuto: - + Alternative Rate Limits Alternativaj rapidlimoj - + Start time - + Komenca tempo - + End time - + Fina tempo - + When: Kiam: - + Every day Ĉiutage - + Weekdays - Laborsemajne + Labortagoj - + Weekends - Semajnfine + Semajnfinoj - + Rate Limits Settings Rapidlimaj agordoj - + Apply rate limit to peers on LAN Apliki la rapidlimon al samtavolanoj en loka reto. - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + 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) - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Trovi pli samtavolanojn per Local Peer Discovery - + Encryption mode: Ĉifroreĝimo: - + Require encryption Neprigi ĉifradon - + Disable encryption Malebligi ĉifradon - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Ebligi la sennoman modon - + Maximum active downloads: Maksimumaj aktivaj elŝutoj: - + Maximum active uploads: Maksimumaj aktivaj elŝutoj: - + Maximum active torrents: Maksimumaj aktivaj torentoj: - + Do not count slow torrents in these limits Ne inkluzivi malrapidajn torentojn en tiuj limoj - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + sek - + Torrent inactivity timer: - + then - poste + tiam - + Use UPnP / NAT-PMP to forward the port from my router Plusendi la pordon de mia enkursigilo per UPnP / NAT-PMP - + Certificate: Atestilo: - + Key: Ŝlosilo: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Servo: - + Register Registri - + Domain name: Domajna nomo: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torento haltigos post ricevis metadatenojn. - + Torrent will stop after files are initially checked. - + Torento estos haltota post komenca kontrolo de dosieroj. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Torenta nomo - + %L: Category - + %L: Kategorio - + %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 + %C: Nombro da dosieroj - + %Z: Torrent size (bytes) %Z: Grando de la torento (bitoj) - + %T: Current tracker %T: Aktuala spurilo - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Nenio) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory Elektu la elportan dosierujon - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Elektu konservan dosierujon - + Torrents that have metadata initially will be added as stopped. - + Torentoj kiu havas metadatenojn komence aldonos kiel haltigis. - + Choose an IP filter file Elektu IP-filtrildosieron - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences - Agordoj + Preferoj - + Time Error Tempa Eraro - + The start time and the end time can't be the same. La komenctempo kaj la fintempo ne povas esti la samaj. - - + + Length Error @@ -7302,241 +7740,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Nekonata - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port Pordo - + Flags Flagoj - + Connection Konekto - + Client i.e.: Client application Kliento - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. Rilateco - + Files i.e. files that are being downloaded right now Dosieroj - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently Forbari la samtavolanon daŭre - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A N/A - + Copy IP:port @@ -7554,7 +7997,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port Aranĝo: IPv4:pordo / [IPv6]:pordo @@ -7584,38 +8027,38 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Unavailable pieces - + Nedisponeblaj pecoj Available pieces - + Disponeblaj pecoj PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7628,58 +8071,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Serĉilaj kromprogramoj - + Installed search plugins: Instalitaj serĉilaj kromprogramoj: - + Name Nomo - + Version Versio - + Url URL-adreso - - + + Enabled Ebligita - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instali novan - + Check for updates Kontroli ĝisdatigadon - + Close Fermi - + Uninstall Malinstali @@ -7799,98 +8242,65 @@ Tiuj kromprogramoj malebliĝis. - + Search plugin source: - + Local file Loka dosiero - + Web link TTT-ligilo - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Antaŭrigardu - + Name Nomo - + Size Grando - + Progress Progreso - + Preview impossible Antaŭrigardo maleblas - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7903,27 +8313,27 @@ Tiuj kromprogramoj malebliĝis. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7964,12 +8374,12 @@ Tiuj kromprogramoj malebliĝis. PropertiesWidget - + Downloaded: - Elŝutis: + Elŝutita: - + Availability: Disponeblo: @@ -7984,55 +8394,55 @@ Tiuj kromprogramoj malebliĝis. Transmeto - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktiva Tempo: - + ETA: ETA: - + Uploaded: - Alŝutis: + Alŝutita: - + Seeds: Fontsendantoj: - + Download Speed: - Elŝutrapido: + Elŝuta rapido: - + Upload Speed: - Alŝutrapido: + Alŝuta rapido: - + Peers: Samtavolanoj: - + Download Limit: - Elŝutlimo: + Elŝuta limo: - + Upload Limit: - Alŝutlimo: + Alŝuta limo: - + Wasted: - Senefikaĵo: + Perdita: @@ -8040,193 +8450,220 @@ Tiuj kromprogramoj malebliĝis. Konektoj: - + Information Informoj - + Info Hash v1: - + Info Hash v2: - + Comment: Komento: - + Select All Elekti cion - + Select None Elekti nenion - + Share Ratio: Kunhava proporcio: - + Reannounce In: Rekonekti al spuriloj post: - + Last Seen Complete: Laste trovita plene: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Tuta grando: - + Pieces: Pecoj: - + Created By: Kreita de: - + Added On: Aldonita je: - + Completed On: - Finita je: + Kompletigita je: - + Created On: Kreita je: - + + Private: + + + + Save Path: Konserva Dosierindiko: - + 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 (%2 ĉi tiu seanco) - - + + + N/A N/A - + + Yes + Jes + + + + No + Ne + + + %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.) - - New Web seed - Nova TTT-fonto + + Add web seed + Add HTTP source + - - Remove Web seed - Forigi TTT-fonton + + Add web seed: + - - Copy Web seed URL - Kopii URL-adreson de TTT-fonto + + + This web seed is already in the list. + - - Edit Web seed URL - Redakti URL-adreson de TTT-fonto - - - + Filter files... Filtri dosierojn... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - 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: @@ -8234,33 +8671,33 @@ Tiuj kromprogramoj malebliĝis. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8268,24 +8705,24 @@ Tiuj kromprogramoj malebliĝis. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + Malsukcesis elŝuti RRS-fluon je "%1". Kialo: %2 + + + + RSS feed at '%1' updated. Added %2 new articles. + RRS-fluo je "%1" ĝisdatigita. Aldonis %2 novajn artikolojn. - RSS feed at '%1' updated. Added %2 new articles. - - - - Failed to parse RSS feed at '%1'. Reason: %2 - + Malsukcesis analizi RRS-fluon je "%1". Kialo: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. - + RRS-fluo je "%1" estas sukcese elŝutita. Komencas analizi ĝin. @@ -8319,12 +8756,12 @@ Tiuj kromprogramoj malebliĝis. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8332,103 +8769,144 @@ Tiuj kromprogramoj malebliĝis. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Fluo ne ekzistas: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Fluo ne ekzistas: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL-adreso: + + + + Refresh interval: + + + + + sec + sek + + + + Default + Defaŭlto + + RSSWidget @@ -8448,8 +8926,8 @@ Tiuj kromprogramoj malebliĝis. - - + + Mark items read Marki elementojn kiel legitaj @@ -8474,132 +8952,115 @@ Tiuj kromprogramoj malebliĝis. Torentoj: (duoble alklaki por elŝuti) - - + + Delete - Forigu + Forigi - + Rename... - Renomi... + Alinomi... - + Rename - Renomi... + Alinomi - - + + Update Ĝisdatigi - + New subscription... Nova abono... - - + + Update all feeds Ĝisdatigi ĉiujn fluojn - + Download torrent Elŝuti la torenton - + Open news URL Malfermi novaĵan URL-adreson - + Copy feed URL - + New folder... Nova dosierujo... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Bonvolu elekti dosierujo-nomon - + Folder name: Dosierujo-nomo: - + New folder Nova dosierujo - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: - + Rename failed - + Date: Dato: - + Feed: - + Author: Aŭtoro: @@ -8607,38 +9068,38 @@ Tiuj kromprogramoj malebliĝis. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8705,7 +9166,7 @@ Tiuj kromprogramoj malebliĝis. ∞ - + @@ -8713,132 +9174,142 @@ Tiuj kromprogramoj malebliĝis. Grando: - + 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 - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere - + Use regular expressions - + Open download window - + Download Elŝuti - + Open description page - + Copy Kopii - + Name Nomo - + Download link - + Description page URL - + Searching... Serĉante... - + Search has finished Serĉo finiĝis - + Search aborted Serĉo ĉesiĝis - + An error occurred during search... Eraro okazis dum la serĉo... - + Search returned no results Serĉo reportis neniun rezulton - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8846,104 +9317,104 @@ Tiuj kromprogramoj malebliĝis. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. Kromprogramo ne subtenatas. - + Plugin %1 has been successfully updated. - + All categories Ĉiuj kategorioj - + Movies Filmoj - + TV shows Televidserioj - + Music Muziko - + Games Ludoj - + Anime Animeo - + Software Programaroj - + Pictures Bildoj - + Books Libroj - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8953,113 +9424,144 @@ Tiuj kromprogramoj malebliĝis. - - - - Search Serĉi - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... Serĉilaj kromprogramoj... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins Ĉiuj kromprogramoj - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... - - - + + 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 Bonvolu tajpi serĉan ŝablonon unue - + + Stop Halti + + + SearchWidget::DataStorage - - Search has finished - Serĉo finiĝis + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Serĉo malsukcesis + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9172,34 +9674,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: - Alŝuta: + Alŝuto: - - - + + + ∞ - + - - - + + + KiB/s KiB/s - - + + Download: - Elŝuti + Elŝuto: - + Alternative speed limits @@ -9360,7 +9862,7 @@ Click the "Search plugins..." button at the bottom right of the window Crash info - + Informo pri paneo @@ -9391,32 +9893,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -9431,12 +9933,12 @@ Click the "Search plugins..." button at the bottom right of the window Enviciĝitaj eneligaj taskoj: - + Write cache overload: - + Read cache overload: @@ -9455,51 +9957,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Konekta stato: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nodoj - + qBittorrent needs to be restarted! - - - + + + Connection Status: Konekta Stato: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online Konektite - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9510,32 +10038,32 @@ Click the "Search plugins..." button at the bottom right of the window All (0) this is for the status filter - Ĉio (0) + Ĉiuj (0) Downloading (0) - Elŝutante (0) + Elŝutataj (0) Seeding (0) - Fontsendanta (0) + Fontsendataj (0) Completed (0) - Finite (0) + Kompletigitaj (0) - Resumed (0) - Reaktiviĝita (0) + Running (0) + - Paused (0) - Paŭzinta (0) + Stopped (0) + @@ -9550,22 +10078,22 @@ Click the "Search plugins..." button at the bottom right of the window Stalled (0) - + Nevivaj (0) Stalled Uploading (0) - + Nevivaj alŝutataj (0) Stalled Downloading (0) - + Nevivaj elŝutataj (0) Checking (0) - + Kontrolataj (0) @@ -9575,57 +10103,57 @@ Click the "Search plugins..." button at the bottom right of the window Errored (0) - Erarinta (0) + Eroritaj (0) All (%1) - Ĉio (%1) + Ĉiuj (%1) Downloading (%1) - Elŝutante (%1) + Elŝutataj (%1) Seeding (%1) - Fontsendanta (%1) + Fontsendataj (%1) Completed (%1) - Finite (%1) + Kompletigitaj (%1) + + + + Running (%1) + - Paused (%1) - Paŭzinta (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - Reaktivigi la torentojn - - - - Pause torrents - Paŭzigi la torentojn - Remove torrents - - - - - Resumed (%1) - Reaktiviĝita (%1) + Forigi torentojn @@ -9640,27 +10168,27 @@ Click the "Search plugins..." button at the bottom right of the window Stalled (%1) - + Nevivaj (%1) Stalled Uploading (%1) - + Nevivaj alŝutataj (%1) Stalled Downloading (%1) - + Nevivaj elŝutataj (%1) Checking (%1) - + Kontrolataj (%1) Errored (%1) - Erarinta (%1) + Eroritaj (%1) @@ -9673,12 +10201,12 @@ Click the "Search plugins..." button at the bottom right of the window All - Ĉio + Ĉiuj Untagged - + Senetikedaj @@ -9686,62 +10214,62 @@ Click the "Search plugins..." button at the bottom right of the window Add tag... - + Aldoni etikedon... Remove tag - + Forigi etikedon Remove unused tags Forigi neuzitajn etikedojn - - - Resume torrents - Reaktivigi la torentojn - - - - Pause torrents - Paŭzigi la torentojn - Remove torrents + Forigi torentojn + + + + Start torrents - - New Tag + + Stop torrents Tag: + Etikedo: + + + + Add tag Invalid tag name - + Nevalida etikeda nomo Tag name '%1' is invalid - + Etikeda nomo "%1" nevalidas Tag exists - + Etikedo ekzistas Tag name already exists. - + Etikeda nomo jam ekzistas. @@ -9764,12 +10292,12 @@ Click the "Search plugins..." button at the bottom right of the window Use another path for incomplete torrents: - + Uzi alian indikon por nekompletaj torentoj: Default - + Defaŭlto @@ -9784,12 +10312,12 @@ Click the "Search plugins..." button at the bottom right of the window Path: - + Vojo: Save path: - + Konserva dosierindiko: @@ -9866,32 +10394,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Nomo - + Progress Progreso - + Download Priority Elŝut-prioritato - + Remaining Restanta - + Availability - + Disponeblo - + Total Size Tuta grando @@ -9936,98 +10464,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + Alinomado - + New name: Nova nomo: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open - Malfermu + Malfermi - + Open containing folder - + Malfermi enhavantan dosierujon - + Rename... - Renomi... + Alinomi... - + Priority Prioritato - - + + Do not download Ne elŝuti - + Normal Normala - + High Alta - + Maximum Maksimuma - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10035,17 +10563,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10065,7 +10593,7 @@ Please choose a different name and try again. Path: - + Vojo: @@ -10074,20 +10602,20 @@ Please choose a different name and try again. - + Select file - + Elekti dosieron - + Select folder - + Elekti dosierujon Settings - + Agordoj @@ -10102,7 +10630,7 @@ Please choose a different name and try again. Piece size: - Pecogrando: + Peca grando: @@ -10112,7 +10640,7 @@ Please choose a different name and try again. Calculate number of pieces: - + Kalkuli nombro da pecoj: @@ -10155,120 +10683,116 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: Spurilaj URL-adresoj: - + Comments: - + Source: - + Fonto: - + Progress: Progreso: - + Create Torrent - + Krei torenton - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) Torentdosieroj (*.torrent) - Reason: %1 - Kial: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Kialo: "%1" - + Add torrent failed - + Malsukcesis aldoni torenton - + Torrent creator - + Torenta kreanto - + Torrent created: - + Torento kreinta: TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10276,44 +10800,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Magnet-dosiero tro granda. Dosiero: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Malvalidaj metadatenoj - - TorrentOptionsDialog @@ -10339,176 +10850,164 @@ Please choose a different name and try again. Use another path for incomplete torrent - + Uzi alian indikon por nekompleta torento - + Category: Kategorio: - - Torrent speed limits + + Torrent Share Limits - + Download: Elŝuti - - + + ∞ + + + + + Torrent Speed Limits - - + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Alŝuta: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Elŝuti en sinsekva ordo - + Disable PeX for this torrent - + Download first and last pieces first - + Elŝuti la unuan kaj la finan pecojn unue - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Elektu la konservan dosierindikon - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - + Defaŭlto - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Forigi torenton + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10518,151 +11017,166 @@ Please choose a different name and try again. Torrent Tags - - - - - New Tag - + Torentaj etikedoj + Add tag + + + + Tag: - + Etikedo: - + Invalid tag name - + Nevalida etikeda nomo - + Tag name '%1' is invalid. - + Etikeda nomo "%1" nevalidas. - + Tag exists - + Etikedo ekzistas - + Tag name already exists. - + Etikeda nomo jam ekzistas. TorrentsController - + Error: '%1' is not a valid torrent file. - + Eraro: "%1" ne estas valida torentodosiero. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -10688,196 +11202,191 @@ Please choose a different name and try again. TrackerListModel - + Working Funkciante - + Disabled Malebligita - + Disabled for this torrent - + This torrent is private Ĉi tiu torento estas privata - + N/A N/A - + Updating... Ĝisdatiĝante... - + Not working Nefunkciante - + Tracker error - + Unreachable - + Not contacted yet Ne jam kontaktiĝis - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - Stato - - - - Peers - Samtavolanoj - - - - Seeds - Fontoj - - - - Leeches - - - - - Times Downloaded - - - - - Message - Mesaĝo - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + Stato + + + + Peers + Samtavolanoj + + + + Seeds + Fontoj + + + + Leeches + + + + + Times Downloaded + + + + + Message + Mesaĝo + TrackerListWidget - + This torrent is private Ĉi tiu torento estas privata - + Tracker editing Spuril-redaktado - + Tracker URL: Spurila URL-adreso: - - + + 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. - + Edit tracker URL... - + Remove tracker Forigi la spurilon - + Copy tracker URL Kopii la spurilan URL-adreson: - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility @@ -10895,37 +11404,37 @@ Please choose a different name and try again. Listo da spuriloj por aldoni (po unu por linio): - + µTorrent compatible list URL: URL-adreso de listo, kiu kongruas kun µTorrent: - + Download trackers list - + Elŝuti spurila listo - + Add Aldoni - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10933,71 +11442,71 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Averto (%1) - + Trackerless (%1) Senspurila (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Spurila eraro (%1) - + + Other error (%1) + Alia eraro (%1) + + + Remove tracker Forigi la spurilon - - Resume torrents - Reaktivigi la torentojn - - - - Pause torrents - Paŭzigi la torentojn - - - - Remove torrents + + Start torrents - + + Stop torrents + + + + + Remove torrents + Forigi torentojn + + + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter - Ĉio (%1) + Ĉiuj (%1) TransferController - + 'mode': invalid argument @@ -11012,7 +11521,7 @@ Please choose a different name and try again. Categories - + Kategorioj @@ -11030,13 +11539,13 @@ Please choose a different name and try again. Downloading - Elŝutante + Elŝutata Stalled Torrent is waiting for download to begin - Haltigita + Neviva @@ -11054,34 +11563,34 @@ Please choose a different name and try again. [F] Downloading Used when the torrent is forced started. You probably shouldn't translate the F. - [F] Elŝutanta + [F] Elŝutata Seeding Torrent is complete and in upload-only mode - Fontsendanta + Fontsendata [F] Seeding Used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Fontsendata Queued Torrent is queued - Enviciĝita + Envicigita Checking Torrent local data is being checked - Kontrolate + Kontrolata @@ -11089,589 +11598,596 @@ Please choose a different name and try again. 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 - - - Paused - Paŭzinta - Completed - Finita + Kompletigita Moving Torrent local data are being moved/relocated - + Translokigata Missing Files - Mankantaj Dosieroj + Mankas dosierojn Errored Torrent status, the torrent has an error - Erarinta + Erarita - + Name i.e: torrent name Nomo - + Size i.e: torrent size Grando - + Progress % Done Progreso - + + Stopped + Haltinta + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stato - + Seeds i.e. full sources (often untranslated) Fontoj - + Peers i.e. partial sources (often untranslated) Samtavolanoj - + Down Speed i.e: Download speed - Elŝutrapido + Elŝuta rapido - + Up Speed i.e: Upload speed - Alŝutrapido + Alŝuta rapido - + Ratio Share ratio Proporcio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category - + Kategorio - + Tags Etikedoj - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Aldonita je - + Completed On Torrent was completed on 01/01/2010 08:00 - Finita je + Kompletigita je - + Tracker Spurilo - + Down Limit i.e: Download limit - Elŝutlimo + Elŝuta limo - + Up Limit i.e: Upload limit - Alŝutlimo + Alŝuta limo - + Downloaded Amount of data downloaded (e.g. in MB) Elŝutita - + Uploaded Amount of data uploaded (e.g. in MB) Alŝutita - + Session Download Amount of data downloaded since program open (e.g. in MB) Seanca Elŝuto - + Session Upload Amount of data uploaded since program open (e.g. in MB) Seanca Alŝuto - + Remaining Amount of data left to download (e.g. in MB) Restanta - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktiva tempo - + + Yes + Jes + + + + No + Ne + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) - Finita + Kompletigita - + 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 - + Availability The number of distributed copies of the torrent - + Disponeblo - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago antaŭ %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (fontsendis dum %2) + %1 (fontsendata dum %2) TransferListWidget - + Column visibility - + Recheck confirmation - + 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? - + Rename Renomi... - + New name: Nova nomo: - + Choose save path Elektu la konservan dosierindikon - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Aldoni Etikedojn - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags Forigi Ĉiujn Etikedojn - + Remove all tags from selected torrents? - + Forigi ĉiujn etikedojn per elektitaj torentoj? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Reaktivigi - - - - &Pause - Pause the torrent - &Paŭzigu - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + &Nomo - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Nova... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Aldoni... - + &Remove All Remove all tags + &Forigi Ĉiujn + + + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking - + &Queue - + &Copy - + &Kopii - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Elŝuti en sinsekva ordo - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Fo&rigi - + Download first and last pieces first - + Elŝuti la unuan kaj la finan pecojn unue - + Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Superfontsendanta reĝimo @@ -11686,7 +12202,7 @@ Please choose a different name and try again. Colors - + Koloroj @@ -11697,13 +12213,13 @@ Please choose a different name and try again. Light Mode - + Hela reĝimo Dark Mode - + Malhela reĝimo @@ -11716,28 +12232,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11745,10 +12261,15 @@ Please choose a different name and try again. UIThemeManager - - Failed to load UI theme from file: "%1" + + Set app style failed. Unknown style: "%1" + + + Failed to load UI theme from file: "%1" + Malsukcesis ŝargi UI-etoson el dosiero: "%1" + UIThemeSource @@ -11776,20 +12297,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11797,32 +12319,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11883,103 +12405,103 @@ Please choose a different name and try again. Watched Folder - + Observita Dosierujo Watched folder path cannot be empty. - + Indiko de la observita dosierujo ne povas malplena. Watched folder path cannot be relative. - + Indiko de la observita dosierujo ne povas relativa. Folder '%1' is already in watch list. - + La dosierujo '%1' jam estas rigarlisto. Folder '%1' doesn't exist. - + La dosierujo '%1' ne ekzistas. Folder '%1' isn't readable. - + La dosierujo '%1' ne legeblas. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Eraro de retservilo. %1 - + Web server error. Unknown error. - + Eraro de retservilo. Nekonata eraro. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11987,125 +12509,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Nekonata eraro + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) - + PiB - + EiB exbibytes (1024 pebibytes) - + EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1t %2h - + %1y %2d e.g: 2 years 10 days - %1t %2h {1y?} {2d?} + %1j %2t - - + + Unknown Unknown (size) Nekonata - + qBittorrent will shutdown the computer now because all downloads are complete. - + qBittorrent malŝaltos la komputilon nun ĉar ĉiuj elŝutojn komplete elŝutis. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_es.ts b/src/lang/qbittorrent_es.ts index 862673720..f972a67e2 100644 --- a/src/lang/qbittorrent_es.ts +++ b/src/lang/qbittorrent_es.ts @@ -14,75 +14,75 @@ Acerca de - + Authors Autores - + Current maintainer Encargado actual - + Greece Grecia - - + + Nationality: Nacionalidad: - - + + E-mail: E-mail: - - + + Name: Nombre: - + Original author Autor original - + France Francia - + Special Thanks Agradecimientos especiales - + Translators Traductores - + License Licencia - + Software Used Software utilizado - + qBittorrent was built with the following libraries: qBittorrent fue compilado con las siguientes librerías: - + Copy to clipboard Copiar al portapapeles @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 El Proyecto qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 El Proyecto qBittorrent @@ -166,15 +166,10 @@ Guardar en - + Never show again No volver a mostrar - - - Torrent settings - Propiedades del torrent - Set as default category @@ -191,12 +186,12 @@ Iniciar torrent - + Torrent information Información del torrent - + Skip hash check No comprobar hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Usa otra ruta para torrent incompleto + + + Torrent options + Opciones de Torrent + Tags: @@ -231,75 +231,75 @@ Condición de parada: - - + + None Ninguno - - + + Metadata received Metadatos recibidos - + Torrents that have metadata initially will be added as stopped. - + Los torrents que inicialmente tengan metadatos se añadirán como detenidos. - - + + Files checked Archivos verificados - + Add to top of queue Añadir al principio de la cola - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Cuando se marca, el archivo .torrent no se eliminará independientemente de la configuración en la página "Descargar" del cuadro de diálogo Opciones. - + Content layout: Diseño de contenido: - + Original Original - + Create subfolder Crear subcarpeta - + Don't create subfolder No crear subcarpetas - + Info hash v1: Info hash v1: - + Size: Tamaño: - + Comment: Comentario: - + Date: Fecha: @@ -329,151 +329,147 @@ Recordar la última ubicación - + Do not delete .torrent file No eliminar el archivo .torrent - + Download in sequential order Descargar en orden secuencial - + Download first and last pieces first Comenzar por las primeras y últimas partes - + Info hash v2: Info hash v2: - + Select All Seleccionar Todo - + Select None Seleccionar Ninguno - + Save as .torrent file... Guardar como archivo .torrent - + I/O Error Error de I/O - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Magnet link Enlace magnet - + Retrieving metadata... Recibiendo metadatos... - - + + Choose save path Elegir ruta - + No stop condition is set. No se establece una condición de parada. - + Torrent will stop after metadata is received. El torrent se detendrá después de que se reciban metadatos. - Torrents that have metadata initially aren't affected. - Los torrents que tienen metadatos inicialmente no están afectados. - - - + Torrent will stop after files are initially checked. El torrent se detendrá después de que los archivos se verifiquen inicialmente. - + This will also download metadata if it wasn't there initially. Esto también descargará metadatos si no estaba allí inicialmente. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Espacio libre en disco: %2) - + Not available This size is unavailable. No disponible - + Torrent file (*%1) Archivo Torrent (*%1) - + Save as torrent file Guardar como archivo torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. No se pudo exportar el archivo de metadatos del torrent '%1'. Razón: %2. - + Cannot create v2 torrent until its data is fully downloaded. No se puede crear el torrent v2 hasta que los datos estén completamente descargados. - + Filter files... Filtrar archivos... - + Parsing metadata... Analizando metadatos... - + Metadata retrieval complete Recepción de metadatos completa @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Descargando torrent... Fuente: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Error al agregar el torrent. Fuente: "%1". Razón: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Se a detectado un intento de agregar un torrent duplicado. Origen: %1. Torrent existente: %2. Resultado: %3 - - - + Merging of trackers is disabled La fusión de los rastreadores está desactivada. - + Trackers cannot be merged because it is a private torrent Los rastreadores no se pueden fusionar porque es un torrent privado. - + Trackers are merged from new source Los rastreadores han sido fusionados desde una nueva fuente + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Límites de uso compartido de torrents + Límites de uso compartido de torrents @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Verificar torrents completados - - + + ms milliseconds ms - + Setting Ajustes - + Value Value set for this setting Valor - + (disabled) (deshabilitado) - + (auto) (auto) - + + min minutes min - + All addresses Todas las direcciones - + qBittorrent Section Sección de qBittorrent - - + + Open documentation Abrir documentación - + All IPv4 addresses Todas las direcciones IPv4 - + All IPv6 addresses Todas las direcciones IPv6 - + libtorrent Section Sección de libtorrent - + Fastresume files Archivos de reanudación rápida - + SQLite database (experimental) Base de datos SQLite (experimental) - + Resume data storage type (requires restart) Reanudar el tipo de almacenamiento de datos (requiere reiniciar) - + Normal Normal - + Below normal Debajo de lo normal - + Medium Media - + Low Baja - + Very low Muy baja - + Physical memory (RAM) usage limit Límite de uso de la memoria física (RAM) - + Asynchronous I/O threads Hilos I/O asíncronos - + Hashing threads Hilos de hashing - + File pool size Tamaño de la reserva de archivos - + Outstanding memory when checking torrents Exceso de memoria al verificar los torrents - + Disk cache Caché de disco - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalo de expiración de la caché de disco - + Disk queue size Tamaño de la cola de disco - - + + Enable OS cache Activar caché del S.O. - + Coalesce reads & writes Combinar lecturas y escrituras - + Use piece extent affinity Usar afinidad de extensión de pieza - + Send upload piece suggestions Enviar sugerencias de piezas a subir - - - - + + + + + 0 (disabled) 0 (desactivado) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Guardar intervalo de datos de continuación [0: desactivado] - + Outgoing ports (Min) [0: disabled] Puertos de salida (Min) [0: desactivado] - + Outgoing ports (Max) [0: disabled] Puertos de salida (Max) [0: desactivado} - + 0 (permanent lease) 0 (cesión permanente) - + UPnP lease duration [0: permanent lease] Duración de la cesión UPnP [0: cesión permanente] - + Stop tracker timeout [0: disabled] Parar el temporizador de tracker [0: desactivado] - + Notification timeout [0: infinite, -1: system default] Cuenta atrás de notificación [0: infinito, -1 por defecto del sistema] - + Maximum outstanding requests to a single peer Máximo de solicitudes pendientes a un único par - - - - - + + + + + KiB KiB - + (infinite) (infinito) - + (system default) (por defecto de sistema) - + + Delete files permanently + Eliminar archivos permanentemente + + + + Move files to trash (if possible) + Mover los archivos a la papelera (si es posible) + + + + Torrent content removing mode + Modo de eliminación de contenido de torrent + + + This option is less effective on Linux Esta opción es menos efectiva en Linux - + Process memory priority Prioridad de la memoria de proceso - + Bdecode depth limit Límite de profundidad Bdecode - + Bdecode token limit Límite de token Bdecode - + Default Por defecto - + Memory mapped files Archivos mapeados en memoria - + POSIX-compliant compatible con POSIX - + + Simple pread/pwrite + Prelectura/prescritura simple + + + Disk IO type (requires restart) Tipo de E/S de disco (requiere reiniciar) - - + + Disable OS cache Deshabilitar caché del sistema operativo - + Disk IO read mode Modo de lectura de E/S de disco - + Write-through Escritura por medio de - + Disk IO write mode Modo de escritura de E/S de disco - + Send buffer watermark Enviar buffer watermark - + Send buffer low watermark Enviar buffer lowmark - + Send buffer watermark factor Enviar buffer watermark factor - + Outgoing connections per second Conexiones salientes por segundo - - + + 0 (system default) 0 (por defecto de sistema) - + Socket send buffer size [0: system default] Tamaño de buffer de envío [0: por defecto de sistema] - + Socket receive buffer size [0: system default] Tamaño de buffer de recepción [0: por defecto de sistema] - + Socket backlog size Tamaño del backlog del socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervalo de guardado de estadísticas [0: desactivado] + + + .torrent file size limit Límite de tamaño de archivo .torrent - + Type of service (ToS) for connections to peers Tipo de servicio (ToS) para conexiones a pares - + Prefer TCP Preferir TCP - + Peer proportional (throttles TCP) Proporcional a los pares (ahoga el TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Permitir nombres de dominio internacionalizados (IDN) - + Allow multiple connections from the same IP address Permitir múltiples conexiones de la misma dirección IP - + Validate HTTPS tracker certificates Validar certificados HTTPS del rastreador - + Server-side request forgery (SSRF) mitigation Mitigación de falsificación de solicitudes del lado del servidor (SSRF) - + Disallow connection to peers on privileged ports No permitir la conexión a pares en puertos privilegiados - + It appends the text to the window title to help distinguish qBittorent instances - + Añade el texto al título de la ventana para ayudar a distinguir las instancias de qBittorent - + Customize application instance name - + Personalizar el nombre de la instancia de la aplicación - + It controls the internal state update interval which in turn will affect UI updates Controla el intervalo de actualización del estado interno que, a su vez, afectará las actualizaciones de la interfaz de usuario - + Refresh interval Intervalo de actualización - + Resolve peer host names Resolver nombres de host de los pares - + IP address reported to trackers (requires restart) Dirección IP informada a los rastreadores (requiere reiniciar): - + + Port reported to trackers (requires restart) [0: listening port] + Puerto reportado a los traquers (requiere reiniciar) [0: puerto de escucha] + + + Reannounce to all trackers when IP or port changed Reanunciar a todos los rastreadores cuando cambia la IP o el puerto - + Enable icons in menus Habilitar iconos en menús - + + Attach "Add new torrent" dialog to main window + Adjunte el cuadro de diálogo "Añadir nuevo torrent" a la ventana principal + + + Enable port forwarding for embedded tracker Habilitar el reenvío de puertos para el rastreador integrado - + Enable quarantine for downloaded files Habilitar cuarentena para los archivos descargados - + Enable Mark-of-the-Web (MOTW) for downloaded files Habilite la Marca de la Web (MOTW) para archivos descargados - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Afecta la validación de certificados y las actividades de protocolos que no son torrent (por ejemplo, feeds RSS, actualizaciones de programas, archivos torrent, base de datos geoip, etc.) + + + + Ignore SSL errors + Ignorar errores SSL + + + (Auto detect if empty) (Auto detectar si está vacío) - + Python executable path (may require restart) Ruta del ejecutable de Python (puede requerir reinicio) - + + Start BitTorrent session in paused state + Iniciar sesión de BitTorrent en estado de pausa + + + + sec + seconds + seg + + + + -1 (unlimited) + -1 (ilimitado) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Tiempo de espera de cierre de sesión de BitTorrent [-1: ilimitado] + + + Confirm removal of tracker from all torrents Confirmar la eliminación del rastreador de todos los torrents - + Peer turnover disconnect percentage Porcentaje de desconexión de la rotación de pares - + Peer turnover threshold percentage Porcentaje del limite de rotación de pares - + Peer turnover disconnect interval Intervalo de desconexión de rotación de pares - + Resets to default if empty Restablece a predeterminados si está vacío - + DHT bootstrap nodes Nodos bootstrap DHT - + I2P inbound quantity Cantidad entrante I2P - + I2P outbound quantity Cantidad saliente de I2P - + I2P inbound length Longitud de entrada I2P - + I2P outbound length Longitud de salida I2P - + Display notifications Mostrar notificaciones - + Display notifications for added torrents Mostrar notificaciones para torrents agregados - + Download tracker's favicon Descargar favicon del tracker - + Save path history length Tamaño del historial de rutas de guardado - + Enable speed graphs Activar gráficas de velocidad - + Fixed slots Puestos fijos - + Upload rate based Basado en la vel. de subida - + Upload slots behavior Comportamiento de los puestos de subida - + Round-robin Round-robin - + Fastest upload Subida mas rápida - + Anti-leech Anti-leech - + Upload choking algorithm Algoritmo de bloqueo de subidas - + Confirm torrent recheck Confirmar la verificación del torrent - + Confirm removal of all tags Confirmar la eliminación de todas las etiquetas - + Always announce to all trackers in a tier Siempre anunciar a todos los trackers del nivel - + Always announce to all tiers Siempre anunciar a todos los niveles - + Any interface i.e. Any network interface Cualquier interfaz - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritmo de modo mixto %1-TCP - + Resolve peer countries Resolver el país de los pares - + Network interface Interfaz de red - + Optional IP address to bind to Dirección IP opcional para enlazar - + Max concurrent HTTP announces Aviso de HTTP simultáneo máximo - + Enable embedded tracker Activar tracker integrado - + Embedded tracker port Puerto del tracker integrado + + AppController + + + + Invalid directory path + Ruta de directorio inválida + + + + Directory does not exist + El directorio no existe + + + + Invalid mode, allowed values: %1 + Modo inválido, valores permitidos: %1 + + + + cookies must be array + cookies debe ser un array + + Application - + Running in portable mode. Auto detected profile folder at: %1 Ejecutando en modo portátil. Carpeta de perfil detectada automáticamente en: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Parámetro de línea de comandos redundante detectado: "%1". Modo portable implica recuperación relativamente rápida. - + Using config directory: %1 Usando el directorio de configuración: %1 - + Torrent name: %1 Nombre del torrent: %1 - + Torrent size: %1 Tamaño del torrent: %1 - + Save path: %1 Guardar en: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds El torrernt se descargó en %1. - + + Thank you for using qBittorrent. Gracias por utilizar qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, enviando correo de notificación - + Add torrent failed Error al agregar torrent - + Couldn't add torrent '%1', reason: %2. No se pudo agregar el torrent '%1', motivo: %2. - + The WebUI administrator username is: %1 El nombre de usuario del administrador de WebUI es: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 La contraseña del administrador de WebUI no fue establecida. Una contraseña temporal fue puesta en esta sesión: %1 - + You should set your own password in program preferences. Debes poner tu propia contraseña en las preferencias del programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. ¡La interfaz de usuario web está desactivada! Para habilitar la interfaz de usuario web, edite el archivo de configuración manualmente. - + Running external program. Torrent: "%1". Command: `%2` Ejecutando programa externo. Torrent: "%1". Comando: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` No se pudo ejecutar el programa externo. Torrent: "%1". Comando: `%2` - + Torrent "%1" has finished downloading El torrent "%1" ha terminado de descargarse - + WebUI will be started shortly after internal preparations. Please wait... WebUI se iniciará poco después de los preparativos internos. Espere por favor... - - + + Loading torrents... Cargando torrents... - + E&xit S&alir - + I/O Error i.e: Input/Output Error Error de E/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Motivo: %2 - + Torrent added Torrent añadido - + '%1' was added. e.g: xxx.avi was added. Se añadió '%1'. - + Download completed Descarga completada - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + Se inició qBittorrent %1. ID de proceso: %2 - + + This is a test email. + Este es un correo electrónico de prueba. + + + + Test email + Correo electrónico de prueba + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' ha terminado de descargarse. - + Information Información - + To fix the error, you may need to edit the config file manually. Para solucionar el error, es posible que debas editar el archivo de configuración manualmente. - + To control qBittorrent, access the WebUI at: %1 Para controlar qBittorrent, acceda a WebUI en: %1 - + Exit Salir - + Recursive download confirmation Confirmación de descargas recursivas - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? El torrent '%1' contiene archivos .torrent, ¿Desea continuar con sus descargas? - + Never Nunca - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Archivo .torrent de descarga recursiva dentro de torrent. Torrent de origen: "%1". Archivo: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" No se pudo establecer el límite de uso de la memoria física (RAM). Código de error: %1. Mensaje de error: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" No se pudo establecer el límite máximo de uso de la memoria (RAM). Tamaño solicitado: %1. Límite estricto del sistema: %2. Código de error: %3. Mensaje de error: "%4" - + qBittorrent termination initiated terminación de qBittorrent iniciada - + qBittorrent is shutting down... qBittorrent se está cerrando... - + Saving torrent progress... Guardando progreso del torrent... - + qBittorrent is now ready to exit qBittorrent ahora está listo para salir @@ -1609,12 +1715,12 @@ Prioridad: - + Must Not Contain: No debe contener: - + Episode Filter: Filtro de episodios: @@ -1667,263 +1773,263 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha &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 - + 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 - + Episode number is a mandatory positive value El número de episodio debe ser un valor positivo - + Rules Reglas - + Rules (legacy) Reglas (antiguas) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Rango infinito: <b>1x25-;</b> coincidirá con los episodios del 25 en adelante de la temporada uno, y todos los episodios de las temporadas siguientes - + 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 - + 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. - + Export RSS rules Exportar reglas RSS - + I/O Error Error de I/O - + Failed to create the destination file. Reason: %1 No se pudo crear el archivo de destino. Razón: %1 - + Import RSS rules Importar reglas RSS - + Failed to import the selected rules file. Reason: %1 No se pudo importar el archivo de reglas seleccionado. Razón: %1 - + Add new rule... Agregar nueva regla... - + Delete rule Eliminar regla - + Rename rule... Renombrar regla... - + Delete selected rules Eliminar reglas seleccionadas - + Clear downloaded episodes... Limpiar episodios descargados... - + Rule renaming Renombrando regla - + Please type the new rule name Por favor, escriba el nombre de la nueva regla - + Clear downloaded episodes Limpiar episodios descargados - + Are you sure you want to clear the list of downloaded episodes for the selected rule? ¿Está seguro que desea limpiar la lista de episodios descargados de la regla seleccionada? - + Regex mode: use Perl-compatible regular expressions Modo Regex: usar expresiones regulares compatibles con Perl - - + + Position %1: %2 Posición %1: %2 - + Wildcard mode: you can use Modo comodín: puedes usar - - + + Import error Error al importar - + Failed to read the file. %1 Error al leer el archivo. %1 - + ? to match any single character ? para coincidir cualquier carácter - + * to match zero or more of any characters * para coincidir cero o más de cualquier carácter - + Whitespaces count as AND operators (all words, any order) Los espacios cuentan como operadores AND (todas las palabras, cualquier orden) - + | is used as OR operator | es usado como operador OR - + If word order is important use * instead of whitespace. Si el orden de las palabras es importante use * en vez de espacios. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Una expresión con una cláusula %1 vacía (p.ej. %2) - + will match all articles. coincidirá con todos los artículos. - + will exclude all articles. excluirá todos los artículos. @@ -1965,7 +2071,7 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" No se pudo crear una carpeta de reanudación del torrent: "%1" @@ -1975,28 +2081,38 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha No se puede analizar los datos de reanudación: formato inválido - - + + Cannot parse torrent info: %1 No se puede analizar la información del torrent: %1 - + Cannot parse torrent info: invalid format No se puede analizar la información del torrent: formato inválido - + Mismatching info-hash detected in resume data + Se detectó hash de información no coincidente en los datos del resumen + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. No se pudieron guardar los metadatos de torrent en '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. No se pudieron guardar los datos de reanudación de torrent en '%1'. Error: %2. @@ -2007,16 +2123,17 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha + Cannot parse resume data: %1 No se puede analizar los datos de reanudación: %1 - + Resume data is invalid: neither metadata nor info-hash was found Los datos del reanudación no son válidos: no se encontraron metadatos ni informacion de hash - + Couldn't save data to '%1'. Error: %2 No se pudo guardar los datos en '%1'. Error: %2 @@ -2024,38 +2141,60 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha BitTorrent::DBResumeDataStorage - + Not found. No encontrado. - + Couldn't load resume data of torrent '%1'. Error: %2 No se pudieron cargar los datos de reanudación del torrent '%1'. Error: %2 - - + + Database is corrupted. La base de datos está dañada. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. No se pudo habilitar el modo de registro diario Write-Ahead Logging (WAL). Error: %1. - + Couldn't obtain query result. No se pudo obtener el resultado de la consulta. - + WAL mode is probably unsupported due to filesystem limitations. El modo WAL probablemente no sea compatible debido a las limitaciones del sistema de archivos. - + + + Cannot parse resume data: %1 + No se puede analizar los datos de reanudación: %1 + + + + + Cannot parse torrent info: %1 + No se puede analizar la información del torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 No se pudo iniciar la transacción. Error: %1 @@ -2063,22 +2202,22 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. No se pudieron guardar los metadatos del torrent. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 No se pudieron almacenar los datos de reanudación del torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 No se pudieron borrar los datos de reanudación del torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 No se pudieron almacenar las posiciones de la cola de torrents. Error: %1 @@ -2086,457 +2225,503 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Soporte de tabla hash distribuida (DHT): %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 Soporte de deteccion local de pares: %1 - + Restart is required to toggle Peer Exchange (PeX) support Es necesario reiniciar para alternar la compatibilidad de Intercambio entre pares (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Error al reanudar el torrent. Torrent: "%1". Razón: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" No se pudo reanudar el torrent: detectado un ID de torrent inconsistente. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Detectado datos incoherentes: falta la categoría en el archivo de configuración. La categoría se recuperará pero su configuración se restablecerá a los valores predeterminados. Torrent: "%1". Categoría: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Detectado datos incoherentes: categoría inválida. Torrent: "%1". Categoría: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Detectada una discrepancia entre las rutas de guardado de la categoría recuperada y la ruta de guardado actual del torrent. El torrent ahora está en modo Manual. Torrent: "%1". Categoría: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Detectados datos incoherentes: falta la etiqueta en el archivo de configuración. Se recuperará la etiqueta. Torrent: "%1". Etiqueta: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Detectado datos incoherentes: etiqueta inválida. Torrent: "%1". Etiqueta: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Se detectó un evento de reactivación del sistema. Reanunciar a todos los rastreadores... - + Peer ID: "%1" ID de par: "%1" - + HTTP User-Agent: "%1" Agente de Usuario HTTP: "%1" - + Peer Exchange (PeX) support: %1 Soporte con intercambio entre pares (PeX): %1 - - + + Anonymous mode: %1 Modo Anónimo: %1 - - + + Encryption support: %1 Soporte de cifrado: %1 - - + + FORCED FORZADO - + Could not find GUID of network interface. Interface: "%1" No se pudo encontrar el GUID de la interfaz de red. Interfaz: "%1" - + Trying to listen on the following list of IP addresses: "%1" Intentando escuchar en la siguiente lista de direcciones IP: "%1" - + Torrent reached the share ratio limit. El Torrent alcanzó el límite de proporción de acciones. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent eliminado. - - - - - - Removed torrent and deleted its content. - Eliminado el torrent y su contenido. - - - - - - Torrent paused. - Torrent pausado. - - - - - + Super seeding enabled. Super siembra habilitado. - + Torrent reached the seeding time limit. El Torrent alcanzó el límite de tiempo de siembra. - + Torrent reached the inactive seeding time limit. El torrent alcanzó el límite de tiempo de siembra inactiva. - + Failed to load torrent. Reason: "%1" Error al cargar torrent. Razón: "%1" - + I2P error. Message: "%1". Error I2P. Mensaje: "%1". - + UPnP/NAT-PMP support: ON Soporte UPNP/NAT-PMP: ENCENDIDO - + + Saving resume data completed. + Se ha completado el guardado de los datos del currículum. + + + + BitTorrent session successfully finished. + La sesión de BitTorrent finalizó exitosamente. + + + + Session shutdown timed out. + Se agotó el tiempo de cierre de la sesión. + + + + Removing torrent. + Eliminando torrent. + + + + Removing torrent and deleting its content. + Eliminado el torrent y su contenido. + + + + Torrent stopped. + Torrent detenido. + + + + Torrent content removed. Torrent: "%1" + Contenido de torrent eliminado. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Error al eliminar el contenido del torrent. Torrent: "%1". Error: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent eliminado. Torrent: "%1" + + + + Merging of trackers is disabled + La fusión de los rastreadores está desactivada. + + + + Trackers cannot be merged because it is a private torrent + Los rastreadores no se pueden fusionar porque es un torrent privado. + + + + Trackers are merged from new source + Los rastreadores han sido fusionados desde una nueva fuente + + + UPnP/NAT-PMP support: OFF Soporte UPNP/NAT-PMP: APAGADO - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Error al exportar torrent. Torrent: "%1". Destino: "%2". Razón: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Se canceló el guardado de los datos reanudados. Número de torrents pendientes: %1 - + The configured network address is invalid. Address: "%1" La dirección de red configurada no es válida. Dirección: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" No se pudo encontrar la dirección de red configurada para escuchar. Dirección: "%1" - + The configured network interface is invalid. Interface: "%1" La interfaz de red configurada no es válida. Interfaz: "%1" - + + Tracker list updated + Lista de trackers actualizada + + + + Failed to update tracker list. Reason: "%1" + Error al actualizar la lista de trackers. Motivo: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Dirección IP no válida rechazada al aplicar la lista de direcciones IP prohibidas. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Añadido rastreador a torrent. Torrent: "%1". Rastreador: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Rastreador eliminado de torrent. Torrent: "%1". Rastreador: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Se añadió semilla de URL a torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Se eliminó la semilla de URL de torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent pausado. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + No se pudo eliminar el archivo parcial. Torrent: "%1". Motivo: "%2". - + Torrent resumed. Torrent: "%1" Torrent reanudado. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Descarga de torrent finalizada. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Movimiento de torrent cancelado. Torrent: "%1". Origen: "%2". Destino: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent detenido. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination No se pudo poner en cola el movimiento de torrent. Torrent: "%1". Origen: "%2". Destino: "%3". Motivo: El torrent se está moviendo actualmente al destino - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location No se pudo poner en cola el movimiento del torrent. Torrent: "%1". Origen: "%2" Destino: "%3". Motivo: ambos caminos apuntan a la misma ubicación - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Movimiento de torrent en cola. Torrent: "%1". Origen: "%2". Destino: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Empezar a mover el torrent. Torrent: "%1". Destino: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" No se pudo guardar la configuración de Categorías. Archivo: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" No se pudo analizar la configuración de categorías. Archivo: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Se analizó con éxito el archivo de filtro de IP. Número de reglas aplicadas: %1 - + Failed to parse the IP filter file No se pudo analizar el archivo de filtro de IP - + Restored torrent. Torrent: "%1" Torrent restaurado. Torrent: "%1" - + Added new torrent. Torrent: "%1" Añadido nuevo torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent con error. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - Torrent eliminado. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Se eliminó el torrent y se eliminó su contenido. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Al Torrent le faltan parámetros SSL. Torrent: "%1". Mensaje: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Advertencia de error de archivo. Torrent: "%1". Archivo: "%2". Motivo: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" La asignación de puertos UPnP/NAT-PMP falló. Mensaje: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" La asignación de puertos UPnP/NAT-PMP se realizó correctamente. Mensaje: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtro de IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). puerto filtrado (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). puerto privilegiado (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Error de conexión de semilla de URL. Torrent: "%1". URL: "%2". Error: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" La sesión de BitTorrent encontró un error grave. Razón: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Error de proxy SOCKS5. Dirección: %1. Mensaje: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restricciones de modo mixto - + Failed to load Categories. %1 Error al cargar las Categorías. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Error al cargar la configuración de Categorías. Archivo: "%1". Error: "Formato de datos inválido" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Se eliminó el torrent pero no se pudo eliminar su contenido o su fichero .part. Torrent: "%1". Error: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 está deshabilitado - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 está deshabilitado - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Falló la búsqueda de DNS inicial de URL. Torrent: "%1". URL: "%2". Error: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Mensaje de error recibido de semilla de URL. Torrent: "%1". URL: "%2". Mensaje: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Escuchando con éxito en IP. IP: "%1". Puerto: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Error al escuchar en IP. IP: "%1". Puerto: "%2/%3". Motivo: "%4" - + Detected external IP. IP: "%1" IP externa detectada. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Error: La cola de alerta interna está llena y las alertas se descartan, es posible que vea un rendimiento degradado. Tipo de alerta descartada: "%1". Mensaje: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent movido con éxito. Torrent: "%1". Destino: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" No se pudo mover el torrent. Torrent: "%1". Origen: "%2". Destino: "%3". Razón: "%4" @@ -2546,19 +2731,19 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Failed to start seeding. - + Fallo al iniciar el sembrado. BitTorrent::TorrentCreator - + Operation aborted Operación abortada - - + + Create new torrent file failed. Reason: %1. Error al crear un nuevo archivo torrent. Razón: %1. @@ -2566,67 +2751,67 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 No se pudo añadir el par "%1" al torrent "%2". Razón: %3 - + Peer "%1" is added to torrent "%2" El par "%1" se añade al torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Datos inesperados detectados. Torrent: %1. Datos: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. No se pudo escribir en el archivo. Razón: "%1". El torrent ahora está en modo "solo subida". - + Download first and last piece first: %1, torrent: '%2' Descargar el primero y último fragmento: %1, torrent: '%2' - + On Activado - + Off Desactivado - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Fallo al recargar el torrent. Torrent: %1. Razón: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Reanudar los datos erroneos generados. Torrent: "%1". Razón: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Error al restaurar el torrent. Probablemente los archivos se movieron o no se puede acceder al almacenamiento. Torrent: "%1". Razón: "%2" - + Missing metadata Faltan metadatos - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Error al cambiar el nombre del archivo. Torrent: "%1", archivo: "%2", motivo: "%3" - + Performance alert: %1. More info: %2 Alerta de rendimiento: %1. Más información: %2 @@ -2647,189 +2832,189 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' El parámetro '%1' debe seguir la sintaxis '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' El parámetro '%1' debe seguir la sintaxis '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Esperado un número entero en la variable del entorno '%1', pero se obtuvo '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - El parámetro '%1' debe seguir la sintaxis '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Esperado %1 en la variable del entorno '%2', pero se obtuvo '%3' - - + + %1 must specify a valid port (1 to 65535). %1 debe especificar un puerto válido (entre 1 y 65535). - + Usage: Uso: - + [options] [(<filename> | <url>)...] [opciones] [(<filename> | <url>)...] - + Options: Opciones: - + Display program version and exit Muestra la versión del programa y sale - + Display this help message and exit Muestra este mensaje de ayuda y sale - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + El parámetro '%1' debe seguir la sintaxis '%1=%2' - - + + Confirm the legal notice + Confirmar el aviso legal + + + + port puerto - + Change the WebUI port Cambiar el puerto de WebUI - + Change the torrenting port Cambiar el puerto del torrente - + Disable splash screen Desactivar pantalla de inicio - + Run in daemon-mode (background) Ejecutar en modo servicio (segundo plano) - + dir Use appropriate short form or abbreviation of "directory" ruta - + Store configuration files in <dir> Guardar archivos de configuración en <dir> - - + + name nombre - + Store configuration files in directories qBittorrent_<name> Guardar archivos de configuración en direcciones qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Modificar los archivos de continuación rápida de libtorrent y hacer las rutas relativas a la ruta del perfil. - + files or URLs archivos o URLs - + Download the torrents passed by the user Descarga los torrents pasados por el usuario - + Options when adding new torrents: Opciones cuando agregue nuevos torrents: - + path ruta - + Torrent save path Ruta de destino del Torrent - - Add torrents as started or paused - Agregar torrents iniciados o pausados + + Add torrents as running or stopped + Añadir torrents iniciados o detenidos - + Skip hash check Omitir comprobación de hash - + Assign torrents to category. If the category doesn't exist, it will be created. Asignar torrents a la categoría. Si la categoría no existe, será creada. - + Download files in sequential order Descargar archivos en orden secuencial - + Download first and last pieces first Descargar antes primeras y últimas partes - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Especifica si el dialogo de "Agregar torrent" se abre al agregar un torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Valores opcionales pueden ser provistos por variables del entorno. Para la opción llamada 'parameter-name', la variable del entorno se llama 'QBT_PARAMETER_NAME' (en mayúsculas y '-' es reemplazado por '_'). Para pasar valores de bandera, defina la variable como '1' o 'TRUE'. Por Ej: para desactivar la pantalla de inicio: - + Command line parameters take precedence over environment variables Los parámetros de linea de comandos tienen prioridad sobre las variables del entorno - + Help Ayuda @@ -2881,13 +3066,13 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha - Resume torrents - Continuar torrents + Start torrents + Iniciar torrents - Pause torrents - Pausar torrents + Stop torrents + Parar torrents @@ -2898,15 +3083,20 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha ColorWidget - + Edit... Editar... - + Reset Descategorizar + + + System + Systema + CookiesDialog @@ -2947,12 +3137,12 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha CustomThemeSource - + Failed to load custom theme style sheet. %1 No se pudo cargar la hoja de estilo del tema personalizado. %1 - + Failed to load custom theme colors. %1 No se pudieron cargar los colores del tema personalizado. %1 @@ -2960,7 +3150,7 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha DefaultThemeSource - + Failed to load default theme colors. %1 Error al cargar los colores del tema predeterminado. %1 @@ -2979,23 +3169,23 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha - Also permanently delete the files - También eliminar permanentemente los archivos. + Also remove the content files + Elimina también los archivos de contenido. - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? ¿Seguro que desea eliminar '%1' de la lista de transferencias? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? ¿Seguro que desea eliminar estos %1 torrents de la lista de transferencias? - + Remove Eliminar @@ -3008,12 +3198,12 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Descargar de URLs - + Add torrent links Agregar enlaces torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Un enlace por línea (pueden ser enlaces HTTP, enlaces magnet o info-hashes) @@ -3023,12 +3213,12 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Descargar - + No URL entered No ha escrito ninguna URL - + Please type at least one URL. Por favor escriba al menos una URL. @@ -3187,25 +3377,48 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Error de análisis: El archivo de filtros no es un P2B valido de PeerGuardian. + + FilterPatternFormatMenu + + + Pattern Format + Formato de patrón + + + + Plain text + Texto simple + + + + Wildcards + Comodines + + + + Regular expression + Expresión regular + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Descargando torrent... Fuente: "%1" - - Trackers cannot be merged because it is a private torrent - Los rastreadores no se pueden fusionar porque es un torrent privado. - - - + Torrent is already present El torrent ya está presente - + + Trackers cannot be merged because it is a private torrent. + Los rastreadores no pueden fusionarse porque es un torrent privado. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? El torrent '%1' ya está en la lista de transferencia. ¿Quieres fusionar rastreadores de una nueva fuente? @@ -3213,38 +3426,38 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha 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 - + Database corrupted: no data section found. Base de datos corrupta: no se encontró la sección de datos. @@ -3252,17 +3465,17 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 El tamaño de la solicitud Http excede la limitación, cerrando el socket. Límite:% 1, IP:% 2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Mal método de solicitud Http, cerrando socket. IP: %1. Método: "%2" - + Bad Http request, closing socket. IP: %1 Petición HTTP errónea, cerrando socket. IP: %1 @@ -3303,26 +3516,60 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha IconWidget - + Browse... Examinar... - + Reset Descategorizar - + Select icon Seleccione icono - + Supported image files Ficheros de imagen soportados + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + El administrador de Energía encontró una interfaz D-Bus adecuada. Interfaz: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Error de administración de energía. Acción: %1. Error: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Error inesperado en la administración de energía. Estado: %1. Error: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3343,24 +3590,24 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + Si ha leído el aviso legal, puede usar la opción de línea de comando `--confirm-legal-notice` para suprimir este mensaje. Press 'Enter' key to continue... - + Presione la tecla 'Enter' para continuar... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 fue bloqueado. Razón: %2. - + %1 was banned 0.0.0.0 was banned %1 ha sido vetado @@ -3369,62 +3616,62 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 es un parámetro de la línea de comandos desconocido. - - + + %1 must be the single command line parameter. %1 debe ser el único parámetro de la línea de comandos. - + Run application with -h option to read about command line parameters. Ejecuta la aplicación con la opción -h para obtener información sobre los parámetros de la línea de comandos. - + Bad command line Parámetros de la línea de comandos incorrectos - + Bad command line: Parámetros de la línea de comandos incorrectos: - + An unrecoverable error occurred. Se produjo un error irrecuperable. + - qBittorrent has encountered an unrecoverable error. qBittorrent ha encontrado un error irrecuperable. - + You cannot use %1: qBittorrent is already running. - + No puedes usar %1: qBittorrent ya se está ejecutando. - + Another qBittorrent instance is already running. - + Ya se está ejecutando otra instancia de qBittorrent. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Se encontró una instancia inesperada de qBittorrent. Saliendo de esta instancia. ID del proceso actual: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + Error al demonizar. Motivo: "%1". Código de error: %2. @@ -3435,610 +3682,682 @@ Admite los formatos: S01E01, 1x1, 2017.12.31 y 31.12.2017 (los formatos de fecha &Editar - + &Tools &Herramientas - + &File &Archivo - + &Help A&yuda - + On Downloads &Done Al finalizar las &descargas - + &View &Ver - + &Options... &Opciones... - - &Resume - &Continuar - - - + &Remove &Eliminar - + Torrent &Creator &Crear torrent - - + + Alternative Speed Limits Límites de velocidad alternativos - + &Top Toolbar &Barra de herramientas - + Display Top Toolbar Mostrar barra de herramientas - + Status &Bar Barra de estado - + Filters Sidebar Barra lateral de filtros - + 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 - + Do&nate! Do&nar! - + + Sh&utdown System + A&pagar el sistema + + + &Do nothing &No hacer nada - + Close Window Cerrar ventana - - R&esume All - R&eanudar todos - - - + Manage Cookies... Administrar Cookies... - + Manage stored network cookies Administrar cookies de red almacenadas - + Normal Messages Mensajes Normales - + Information Messages Mensajes de Información - + Warning Messages Mensajes de advertencias - + Critical Messages Mensajes Críticos - + &Log &Log - + + Sta&rt + Inicia&r + + + + Sto&p + De&tener + + + + R&esume Session + R&estaurar sesión + + + + Pau&se Session + Pau&sar sesión + + + Set Global Speed Limits... Establecer límites de velocidad globales... - + Bottom of Queue Final de la cola - + Move to the bottom of the queue Mover al final de la cola - + Top of Queue Principio de la cola - + Move to the top of the queue Mover al principio de la cola - + Move Down Queue Bajar en la cola - + Move down in the queue Bajar en la cola - + Move Up Queue Subir en la cola - + Move up in the queue Subir en la cola - + &Exit qBittorrent Salir de &qBittorrent - + &Suspend System &Suspender Equipo - + &Hibernate System &Hibernar Equipo - - S&hutdown System - &Apagar Equipo - - - + &Statistics E&stadísticas - + Check for Updates Buscar actualizaciones - + Check for Program Updates Buscar actualizaciones del programa - + &About &Acerca de - - &Pause - &Pausar - - - - P&ause All - Pa&usar todos - - - + &Add Torrent File... &Agregar archivo torrent... - + Open Abrir - + E&xit &Salir - + Open URL Abrir URL - + &Documentation &Documentación - + Lock Bloquear - - - + + + Show Mostrar - + Check for program updates Buscar actualizaciones del programa - + 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 - + Clear the password Borrar la contraseña - + &Set Password &Establecer Contraseña - + Preferences Preferencias - + &Clear Password Limpiar C&ontraseña - + Transfers Transferencias - - + + qBittorrent is minimized to tray qBittorrent fue minimizado al área de notificación - - - + + + This behavior can be changed in the settings. You won't be reminded again. Este comportamiento puede ser cambiado en las opciones. No se le recordará nuevamente. - + 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 equipo - - + + UI lock password Contraseña de bloqueo - - + + Please type the UI lock password: Por favor, escriba la contraseña de bloqueo: - + Are you sure you want to clear the password? ¿Seguro que desea borrar la contraseña? - + Use regular expressions Usar expresiones regulares - + + + Search Engine + Motor de búsqueda + + + + Search has failed + La búsqueda ha fallado + + + + Search has finished + La búsqueda ha finalizado + + + Search Buscar - + Transfers (%1) Transferencias (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent ha sido actualizado y debe ser reiniciado para que los cambios sean efectivos. - + qBittorrent is closed to tray qBittorrent fue cerrado al área de notificación - + Some files are currently transferring. Algunos archivos aún están transfiriéndose. - + Are you sure you want to quit qBittorrent? ¿Está seguro de que quiere cerrar qBittorrent? - + &No &No - + &Yes &Sí - + &Always Yes S&iempre sí - + Options saved. Opciones guardadas. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSADO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + El instalador de Python no se pudo descargar. Error %1. +Por favor instalar manualmente. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Error renombrando el instalador de Python. Origen: "%1". Destino: "%2". + + + + Python installation success. + La instalación de Python se realizó con éxito. + + + + Exit code: %1. + Código de salida: %1. + + + + Reason: installer crashed. + Motivo: Error del instalador. + + + + Python installation failed. + La instalación de Python falló. + + + + Launching Python installer. File: "%1". + Lanzando instalador de Python. Fichero: "%1". + + + + Missing Python Runtime Falta el intérprete de Python - + qBittorrent Update Available Actualización de qBittorrent disponible - + 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. - - + + Old Python Runtime Intérprete de Python antiguo - + A new version is available. Hay una nueva versión disponible. - + Do you want to download %1? ¿Desea descargar %1? - + Open changelog... Abrir el registro de cambios... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Tu versión de Python (%1) está desactualizada. Requisito mínimo: %2. ¿Quieres instalar una versión más reciente ahora? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Tu versión de Python (%1) está desactualizada. Actualice a la última versión para que los motores de búsqueda funcionen. Requisito mínimo: %2. - + + Paused + Pausados + + + 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 installation in progress... + Instalación de Python en curso... + + + + Failed to open Python installer. File: "%1". + Error al abrir el instalador de Python. Fichero: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + La comprobació del hash MD5 dels instalador de Python falló. Fichero: "%1". Hash obtenido: "%2". Hash esperado: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + La comprobación del hash SHA3-512 del instalador de Python falló. Archivo: "%1". Hash obtenido: "%2". Hash esperado: "%3". + + + 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 - + Filter torrents... Filtrar torrents... - + Filter by: Filtrar por: - + The password must be at least 3 characters long La contraseña debe tener al menos 3 caracteres - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Abrir archivos torrent - + Torrent Files Archivos torrent @@ -4233,7 +4552,12 @@ Por favor, instálelo de forma manual. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Error de SSL, URL: "%1", errores: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorando error SSL, URL: "%1", errores: "%2" @@ -5527,47 +5851,47 @@ Por favor, instálelo de forma manual. Net::Smtp - + Connection failed, unrecognized reply: %1 Conexión fallida, respuesta no reconocida: %1 - + Authentication failed, msg: %1 Error de autenticación, mensaje: %1 - + <mail from> was rejected by server, msg: %1 <mail from> fue rechazado por el servidor, mensaje: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> fue rechazado por el servidor, mensaje: %1 - + <data> was rejected by server, msg: %1 <data> fue rechazado por el servidor, mensaje: %1 - + Message was rejected by the server, error: %1 El mensaje fue rechazado por el servidor, error: %1 - + Both EHLO and HELO failed, msg: %1 Tanto EHLO como HELO fallaron, mensaje: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 El servidor SMTP no parece admitir ninguno de los modos de autenticación que admitimos [CRAM-MD5|PLAIN|LOGIN], omitiendo la autenticación, sabiendo que es probable que falle... Modos de autenticación del servidor: %1 - + Email Notification Error: %1 Error de notificación por correo electrónico: %1 @@ -5605,299 +5929,283 @@ Por favor, instálelo de forma manual. BitTorrent - + RSS RSS - - Web UI - Interfaz Web - - - + Advanced Avanzado - + Customize UI Theme... Personalizar tema de IU... - + Transfer List Lista de transferencias - + Confirm when deleting torrents Confirmar al eliminar torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Muestra un cuadro de diálogo de confirmación al pausar/reanudar todos los torrents - - - - Confirm "Pause/Resume all" actions - Confirmar acciones de "Pausar/Reanudar todo" - - - + Use alternating row colors In table elements, every other row will have a grey background. Alternar colores en la lista de transferencias - + Hide zero and infinity values Ocultar los valores cero e infinito - + Always Siempre - - Paused torrents only - Solo torrents pausados - - - + Action on double-click Acción a realizar con un doble-click - + Downloading torrents: Torrents descargando: - - - Start / Stop Torrent - Iniciar / Parar torrent - - - - + + Open destination folder Abrir carpeta de destino - - + + No action Sin acción - + Completed torrents: Torrents completados: - + Auto hide zero status filters Auto ocultar filtros de estado cero - + Desktop Escritorio - + Start qBittorrent on Windows start up Iniciar qBittorrent cuando arranque Windows - + Show splash screen on start up Mostrar pantalla de bienvenida al iniciar - + Confirmation on exit when torrents are active Confirmación al salir mientras haya torrents activos - + Confirmation on auto-exit when downloads finish Confirmar la salida automática cuando las descargas finalicen - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Para configurar qBittorrent como programa predeterminado para archivos .torrent y/o enlaces Magnet<br/> puede usar el cuadro de diálogo de <span style=" font-weight:600;">Programas predeterminados</span> del <span style=" font-weight:600;">Panel de Control</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Diseño de contenido de torrent: - + Original Original - + Create subfolder Crear subcarpeta - + Don't create subfolder No crear subcarpeta - + The torrent will be added to the top of the download queue El torrent se añadirá al principio de la cola de descarga. - + Add to top of queue The torrent will be added to the top of the download queue Añadir al principio de la cola - + When duplicate torrent is being added Cuando se añade un torrent duplicado - + Merge trackers to existing torrent Fusionar rastreadores a un torrent existente - + Keep unselected files in ".unwanted" folder Mantén los archivos no seleccionados en la carpeta ".unwanted" - + Add... Añadir... - + Options.. Opciones.. - + Remove Eliminar - + Email notification &upon download completion Notificarme por correo electrónico de la finalización de las descargas - + + Send test email + Enviar correo electrónico de prueba + + + + Run on torrent added: + Añadida ejecución en torrent: + + + + Run on torrent finished: + Finalizada ejecución en torrent: + + + Peer connection protocol: Protocolo de conexión entre pares: - + Any Ninguno - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>si &quot;modo mixto&quot; está activado se permite a los torrents I2P buscar pares de otras fuentes que el tracker, y conectar a direcciones IP corrientes, sin aportar ninguna anonimización. Esto puede ser útil si el usuario no está interesado en la anonimización deI2P, pero todavía quiere poder conectar a pares I2P</p></body></html> - - - + Mixed mode Modo mixto - - Some options are incompatible with the chosen proxy type! - ¡Algunas opciones son incompatibles con el tipo de proxy elegido! - - - + If checked, hostname lookups are done via the proxy Si se verifica, las búsquedas del nombre de host se realizan a través del proxy. - + Perform hostname lookup via proxy Realizar búsqueda de hots via proxy - + Use proxy for BitTorrent purposes Usar proxy para propósitos de BitTorrent - + RSS feeds will use proxy Las fuentes RSS usarán proxy - + Use proxy for RSS purposes Usar proxy para propósitos de RSS - + Search engine, software updates or anything else will use proxy El motor de búsqueda, las actualizaciones de software o cualquier otra cosa usarán proxy - + Use proxy for general purposes Usar proxy para propósitos generales - + IP Fi&ltering Filtrado IP - + Schedule &the use of alternative rate limits Programar el uso de límites alternativos - + From: From start time De: - + To: To end time Para: - + Find peers on the DHT network Buscar pares en la red DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5906,191 +6214,231 @@ Requerir encriptación: Solo conectar a pares con encriptación de protocolo Deshabilitar encriptación: Solo conectar a pares sin encriptación de protocolo - + Allow encryption Permitir el cifrado - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Más información</a>) - + Maximum active checking torrents: Máximo de torrents de comprobación activos: - + &Torrent Queueing Torrents en cola - + When total seeding time reaches Cuando el tiempo total de siembra alcance - + When inactive seeding time reaches Cuando el tiempo de siembra inactiva alcanza - - A&utomatically add these trackers to new downloads: - Agregar automáticamente estos trackers a las descargas: - - - + RSS Reader Lector RSS - + Enable fetching RSS feeds Habilitar búsqueda por canales RSS - + Feeds refresh interval: Intervalo de actualización de canales RSS: - + Same host request delay: - + Retraso en la solicitud del mismo host: - + Maximum number of articles per feed: Número máximo de artículos por canal: - - - + + + min minutes min - + Seeding Limits Límites de siembra - - Pause torrent - Pausar torrent - - - + Remove torrent Eliminar torrent - + Remove torrent and its files Eliminar el torrent y sus archivos - + Enable super seeding for torrent Habilitar la super-siembra para el torrent - + When ratio reaches Cuando se alcance la ratio - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Parar torrents + + + + A&utomatically append these trackers to new downloads: + Añade a&utomáticamente estos rastreadores a las nuevas descargas: + + + + Automatically append trackers from URL to new downloads: + Añadir automáticamente rastreadores desde la URL a las nuevas descargas: + + + + URL: + URL: + + + + Fetched trackers + Rastreadores obtenidos + + + + Search UI + Interfaz de búsqueda + + + + Store opened tabs + Guardar pestañas abiertas + + + + Also store search results + También almacena los resultados de la búsqueda + + + + History length + Longitud del historial + + + RSS Torrent Auto Downloader Descargador RSS - + Enable auto downloading of RSS torrents Habilitar auto descarga de torrents RSS - + Edit auto downloading rules... Editar reglas de auto descarga... - + RSS Smart Episode Filter Filtro Inteligente de Episodios por RSS - + Download REPACK/PROPER episodes Descargar episodios REPACK/PROPER - + Filters: Filtros: - + Web User Interface (Remote control) interfaz Web (Control remoto) - + IP address: Direcciones IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. Dirección IP que la interfaz Web escuchará. -Especifique una dirección IPv4 o IPv6. +Especifique una dirección IPv4 o IPv6. "0.0.0.0" para cualquier dirección IPv4. "::" para cualquier dirección IPv6. "*" para cualquier dirección IPv4 O IPv6 - + Ban client after consecutive failures: Vetar cliente después de consecutivos intentos fallidos: - + Never Nunca - + ban for: vetar por: - + Session timeout: Límite de tiempo de la sesión: - + Disabled Deshabilitado - - Enable cookie Secure flag (requires HTTPS) - Habilitar la marca de cookie Segura (requiere HTTPS) - - - + Server domains: Dominios de servidor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6103,442 +6451,483 @@ no debería utilizar nombres de dominio utilizados por el servidor de la interfa Use ';' para dividir múltiples entradas. Puede usar el comodin '*'. - + &Use HTTPS instead of HTTP &Usar HTTPS en lugar de HTTP - + Bypass authentication for clients on localhost Eludir la autenticación para clientes en localhost - + Bypass authentication for clients in whitelisted IP subnets Eludir la autenticación para clientes en la lista blanca de subredes IP - + IP subnet whitelist... Lista blanca de subredes IP... - + + Use alternative WebUI + Usar la interfaz Web alternativa + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Especifique IP de proxy inverso (o subredes, por ejemplo, 0.0.0.0/24) para usar la dirección de cliente reenviada (encabezado X-Reenviado-para encabezado). Usar ';' para dividir varias entradas. - + Upda&te my dynamic domain name Actualizar mi nombre de dominio dinámico - + Minimize qBittorrent to notification area Minimizar qBittorrent al area de notificación - + + Search + Buscar + + + + WebUI + Interfaz de usuario de la Web + + + Interface Interfaz - + Language: Idioma: - + + Style: + Estilo: + + + + Color scheme: + Esquema de colores: + + + + Stopped torrents only + Solo torrents detenidos + + + + + Start / stop torrent + Iniciar / Parar torrent + + + + + Open torrent options dialog + Abrir el diálogo de opciones de torrent + + + Tray icon style: Estilo del icono del area de notificación: - - + + Normal Normal - + File association Asociación de archivos - + Use qBittorrent for .torrent files Usar qBittorrent para los archivos .torrent - + Use qBittorrent for magnet links Usar qBittorrent para los enlaces magnet - + Check for program updates Comprobar actualizaciones disponibles - + Power Management Administración de energía - + + &Log Files + &Archivos de registro + + + Save path: Ruta Destino - + Backup the log file after: Respaldar el archivo de logs después de: - + Delete backup logs older than: Eliminar logs de más antiguos que: - + + Show external IP in status bar + Mostrar IP externa en la barra de estado + + + When adding a torrent Al agregar un torrent - + Bring torrent dialog to the front Traer el diálogo del torrent al frente - + + The torrent will be added to download list in a stopped state + El torrent se añadirá a la lista de descargas en estado detenido. + + + Also delete .torrent files whose addition was cancelled También eliminar archivos .torrent si su agregado fue cancelado. - + Also when addition is cancelled También cuando su agregado es cancelado. - + Warning! Data loss possible! ¡Peligro! Perdida de datos posible. - + Saving Management Administración de guardado - + Default Torrent Management Mode: Administración de Torrents predeterminada: - + Manual Manual - + Automatic Automático - + When Torrent Category changed: Cuando cambia la categoría del torrent: - + Relocate torrent Reubicar torrent - + Switch torrent to Manual Mode Cambiar torrent a modo manual - - + + Relocate affected torrents Reubicar los torrents afectados - - + + Switch affected torrents to Manual Mode Cambiar los torrents afectados a modo manual - + Use Subcategories Usar subcategorias: - + Default Save Path: Ubicación de guardado predeterminada: - + Copy .torrent files to: Copiar archivos .torrent en: - + Show &qBittorrent in notification area Mostrar &qBittorrent en el área de notificación - - &Log file - Archivo de &logs - - - + Display &torrent content and some options Mostrar el contenido del Torrent y opciones - + De&lete .torrent files afterwards Después eliminar el archivo .torrent - + Copy .torrent files for finished downloads to: Copiar archivos .torrent de descargas finalizadas a: - + Pre-allocate disk space for all files Pre-asignar espacio en el disco para todos los archivos - + Use custom UI Theme Usar tema de IU personalizado - + UI Theme file: Archivo de tema de IU: - + Changing Interface settings requires application restart Cambiar la configuración de la interfaz requiere reiniciar la aplicación - + Shows a confirmation dialog upon torrent deletion Muestra una ventana de confirmación al borrar torrents - - + + Preview file, otherwise open destination folder Previsualizar el archivo, sino, abrir la carpeta de destino - - - Show torrent options - Mostrar opciones de torrent - - - + Shows a confirmation dialog when exiting with active torrents Muestra un ventana de confirmación al salir con torrents activos - + When minimizing, the main window is closed and must be reopened from the systray icon Cuando se minimice, la ventana principal se cierra y debe ser abierta desde el icono de la bandeja del sistema - + The systray icon will still be visible when closing the main window El icono de la bandeja del sistema seguirá visible al cerrar la ventana principal - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Cerrar qBittorrent al área de notificación - + Monochrome (for dark theme) Monocromo (para tema oscuro) - + Monochrome (for light theme) Monocromo (para tema claro) - + Inhibit system sleep when torrents are downloading Inhabilitar la suspensión del equipo cuando queden torrents descargando - + Inhibit system sleep when torrents are seeding Inhabilitar la suspensión del equipo cuando queden torrents sembrando - + Creates an additional log file after the log file reaches the specified file size Crea un fichero de log adicional cuando el fichero de log alcance el tamaño especificado - + days Delete backup logs older than 10 days días - + months Delete backup logs older than 10 months meses - + years Delete backup logs older than 10 years años - + Log performance warnings Registrar advertencias de rendimiento - - The torrent will be added to download list in a paused state - El torrent será añadido a la lista de descarga en estado pausado - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state No comenzar la descarga automáticamente - + Whether the .torrent file should be deleted after adding it Si el archivo .torrent debe eliminarse después de añadirlo - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Reservar espacio para ficheros de tamaño completo en disco antes de iniciar la descarga, para minimizar la fragmentación. Solo útil en discos duros. - + Append .!qB extension to incomplete files Agregar la extensión .!qB a los archivos incompletos - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Cuando se descarga un torrent, permite agregar torrents de cualquier archivo .torrent que se encuentra dentro de él - + Enable recursive download dialog Activar la ventana de confirmación de descargas recursivas - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automático: Diversas características del torrent (p.e. ruta de guardado) se decidirán por la categoría asociada Manual: Diversas características del torrent (p.e. ruta de guardado) deben ser asignadas manualmente - + When Default Save/Incomplete Path changed: Cuando cambió la ruta guardada/incompleta predeterminada: - + When Category Save Path changed: Cuando cambia la ruta de destino de la categoría: - + Use Category paths in Manual Mode Usar directorios de Categoría en Modo Manual - + Resolve relative Save Path against appropriate Category path instead of Default one Resolver la ruta de ubicación relativa contra la ruta de categoría apropiada en lugar de la predeterminada. - + Use icons from system theme Usar íconos del tema del sistema - + Window state on start up: Estado de la ventana al inicio: - + qBittorrent window state on start up Estado de la ventana de qBittorrent al iniciar - + Torrent stop condition: Condición de parada del Torrent: - - + + None Ninguno - - + + Metadata received Metadatos recibidos - - + + Files checked Archivos verificados - + Ask for merging trackers when torrent is being added manually Solicitar la fusión de rastreadores cuando el torrent se añade manualmente - + Use another path for incomplete torrents: Use otra ruta para torrents incompletos: - + Automatically add torrents from: Agregar automáticamente los torrents de: - + Excluded file names Nombres de archivos excluidos - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6567,770 +6956,811 @@ readme.txt: filtra el nombre exacto del archivo. readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero no 'readme10.txt'. - + Receiver Destinatario - + To: To receiver Para: - + SMTP server: Servidor SMTP: - + Sender Remitente - + From: From sender De: - + This server requires a secure connection (SSL) El servidor requiere una conexión segura (SSL) - - + + Authentication Autenticación - - - - + + + + Username: Nombre de usuario: - - - - + + + + Password: Contraseña: - + Run external program Ejecutar programa externo - - Run on torrent added - Seguir ejecutando torrent añadido - - - - Run on torrent finished - Seguir ejecutando torrent finalizado - - - + Show console window Mostrar ventana de la consola - + TCP and μTP TCP y μTP - + Listening Port Puerto de escucha - + Port used for incoming connections: Puerto utilizado para conexiones entrantes: - + Set to 0 to let your system pick an unused port Establezca el valor 0 para permitir que el sistema utilice un puerto sin usar. - + Random Aleatorio - + Use UPnP / NAT-PMP port forwarding from my router Usar reenvío de puertos UPnP / NAT-PMP de mi router - + Connections Limits Límites de conexión - + Maximum number of connections per torrent: Máximo de conexiones por torrent: - + Global maximum number of connections: Máximo de conexiones totales: - + Maximum number of upload slots per torrent: Máximo de puestos de subida por torrent: - + Global maximum number of upload slots: Máximo total de puestos de subida: - + Proxy Server Servidor proxy - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Puerto: - + 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 - + A&uthentication Autenticación - - Info: The password is saved unencrypted - Info: La contraseña se guarda sin cifrar - - - + Filter path (.dat, .p2p, .p2b): Ruta del filtro (.dat, .p2p, .p2b): - + Reload the filter Actualizar el filtro - + Manually banned IP addresses... Direcciones IP prohibidas manualmente... - + Apply to trackers Aplicar a los trackers - + Global Rate Limits Limites globales de velocidad - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Subida: - - + + Download: Bajada: - + Alternative Rate Limits Límites de velocidad alternativos - + Start time Hora de inicio - + End time Hora de finalización - + When: Cuándo: - + Every day Todos los días - + Weekdays Días laborales - + Weekends Fines de semana - + Rate Limits Settings Configuración de los limites - + Apply rate limit to peers on LAN Aplicar el límite a los pares en LAN - + Apply rate limit to transport overhead Aplicar límite para el exceso de transporte (Overhead) - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Si el "modo mixto" está habilitado, los torrents I2P también pueden obtener pares de otras fuentes además del rastreador y conectarse a IP regulares, sin proporcionar anonimización. Esto puede ser útil si el usuario no está interesado en la anonimización de I2P, pero sí quiere poder conectarse a pares I2P.</p></body></html> + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Intercambiar pares con clientes Bittorrent compatibles (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Habilitar busqueda local de pares para encontrar más pares - + Encryption mode: Modo de cifrado: - + Require encryption Exigir cifrado - + Disable encryption Deshabilitar cifrado - + 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 - + Maximum active downloads: Máximo de descargas activas: - + Maximum active uploads: Máximo de subidas activas: - + Maximum active torrents: Máximo de torrents activos: - + Do not count slow torrents in these limits No contar torrents lentos en estos límites - + Upload rate threshold: Umbral de vel. de subida: - + Download rate threshold: Umbral de vel. de descarga: - - - - + + + + sec seconds seg - + Torrent inactivity timer: Temporizador de inactividad de Torrent: - + then luego - + Use UPnP / NAT-PMP to forward the port from my router Usar UPnP / NAT-PMP para redirigir el puerto de mi router - + Certificate: Certificado: - + Key: Clave: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Información acerca de los certificados</a> - + Change current password Cambiar contraseña actual - - Use alternative Web UI - Usar la interfaz Web alternativa - - - + Files location: Ubicación de archivos: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Lista de interfaces web alternativas</a> + + + Security Seguridad - + Enable clickjacking protection Activar protección de clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Activar protección CSRF (Cross-site Request Forgery) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Habilitar la bandera segura de cookies (requiere conexión HTTPS o localhost) + + + Enable Host header validation Habilitar la validación de encabezado del Host - + Add custom HTTP headers Añadir cabeceras HTTP personalizadas - + Header: value pairs, one per line Cabecera: pares de valores, uno por línea - + Enable reverse proxy support Habilitar el soporte de proxy inverso - + Trusted proxies list: Lista de proxies de confianza: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Ejemplos de configuración de proxy inverso</a> + + + Service: Servicio: - + Register Registro - + Domain name: Nombre de dominio: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Al activar estas opciones, puedes <strong>perder permanentemente</strong> tus archivos .torrent - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Si habilitas la segunda opción (&ldquo;También cuando la agregado es cancelado&rdquo;) el archivo .torrent <strong> será borrado </strong> incluso si elijes &ldquo;<strong>Cancelar</strong>&rdquo; en la ventana de &ldquo;Agregar torrent&rdquo; - + Select qBittorrent UI Theme file Seleccionar archivo de Tema UI de qBittorrent - + Choose Alternative UI files location Elegir ubicación de archivos de la Interfaz de Usuario alternativa - + Supported parameters (case sensitive): Parámetros soportados (sensible a mayúsculas): - + Minimized Minimizado - + Hidden Oculto - + Disabled due to failed to detect system tray presence Desactivado debido a que no se pudo detectar la presencia de la bandeja del sistema - + No stop condition is set. No se establece una condición de parada. - + Torrent will stop after metadata is received. El torrent se detendrá después de que se reciban metadatos. - Torrents that have metadata initially aren't affected. - Los torrents que tienen metadatos inicialmente no están afectados. - - - + Torrent will stop after files are initially checked. El torrent se detendrá después de que los archivos se verifiquen inicialmente. - + This will also download metadata if it wasn't there initially. Esto también descargará metadatos si no estaba allí inicialmente. - + %N: Torrent name %N: Nombre del torrent - + %L: Category %L: Categoría - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Consejo: Encapsula el parámetro con comillas para evitar que el texto sea cortado en un espacio (ej: "%N") - + + Test email + Correo electrónico de prueba + + + + Attempted to send email. Check your inbox to confirm success + Se intentó enviar un correo electrónico. Revisa tu bandeja de entrada para confirmar el éxito + + + (None) (Ninguno) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Un torrent se considerará lento si la velocidad de descarga y subida se mantienen debajo de estos valores por el tiempo indicado en el "Temporizador de inactividad de Torrent" - + Certificate Certificado - + Select certificate Seleccionar certificado - + Private key Llave privada - + Select private key Seleccionar llave privada - + WebUI configuration failed. Reason: %1 La configuración de WebUI falló. Motivo: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Se recomienda %1 para una mejor compatibilidad con el modo oscuro de Windows + + + + System + System default Qt style + Systema + + + + Let Qt decide the style for this system + Deje que Qt decida el estilo para este sistema + + + + Dark + Dark color scheme + Oscuro + + + + Light + Light color scheme + Claro + + + + System + System color scheme + Systema + + + Select folder to monitor Seleccione una carpeta para monitorear - + Adding entry failed Fallo al agregar entrada - + The WebUI username must be at least 3 characters long. El nombre de usuario de WebUI debe tener al menos 3 caracteres. - + The WebUI password must be at least 6 characters long. La contraseña de WebUI debe tener al menos 6 caracteres. - + Location Error Error de ubicación - - + + Choose export directory Selecciona una ruta de exportación - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Cuando estas opciones están habilitadas, qBittorrent <strong>eliminará</strong> los archivos .torrent después de que se hayan agregado con éxito (la primera opción) o no (la segunda opción) a su cola de descarga. Esto se aplicará <strong>no solo</strong> a los archivos abiertos mediante &ldquo; Agregar torrent&rdquo;; acción del menú, pero también a los que se abren mediante la <strong>asociación de tipo de archivo</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Archivo de tema de la interfaz de usuario de qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Tags (separados por coma) - + %I: Info hash v1 (or '-' if unavailable) %I: Hash de información v1 (o '-' si no está disponible) - + %J: Info hash v2 (or '-' if unavailable) %J: Hash de información v2 (o '-' si no está disponible) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID de torrent (ya sea hash de información sha-1 para torrent v1 o hash de información sha-256 truncado para torrent v2/híbrido) - - - + + + Choose a save directory Seleccione una ruta para guardar - + Torrents that have metadata initially will be added as stopped. - + Los torrents que inicialmente tengan metadatos se añadirán como detenidos. - + Choose an IP filter file Seleccione un archivo de filtro IP - + All supported filters Todos los filtros soportados - + The alternative WebUI files location cannot be blank. La ubicación alternativa de los archivos WebUI no puede estar en blanco. - + 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. - + Preferences Preferencias - + Time Error Error de tiempo - + The start time and the end time can't be the same. Los tiempos de inicio y finalización no pueden ser iguales. - - + + Length Error Error de longitud @@ -7338,241 +7768,246 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero no PeerInfo - + Unknown Desconocido - + Interested (local) and choked (peer) Interesado (local) y ahogado (par) - + Interested (local) and unchoked (peer) Interesado (local) y desahogado (par) - + Interested (peer) and choked (local) Interesado (par) y ahogado (local) - + Interested (peer) and unchoked (local) interesado (par) y desahogado (local) - + Not interested (local) and unchoked (peer) No interesado (local) y no desahogado (par) - + Not interested (peer) and unchoked (local) No interesado (par) y desahogado (local) - + Optimistic unchoke Desahogamiento optimista - + Peer snubbed Par descartado - + Incoming connection Conexión entrante - + Peer from DHT Par desde DHT - + Peer from PEX Par desde PEX - + Peer from LSD Par desde LSD - + Encrypted traffic Tráfico cifrado - + Encrypted handshake Establecimiento de comunicación cifrado + + + Peer is using NAT hole punching + El par está usando la perforación de agujeros NAT + PeerListWidget - + Country/Region País/Región - + IP/Address IP/Dirección - + Port Puerto - + Flags Banderas - + Connection Conexión - + Client i.e.: Client application Cliente - + Peer ID Client i.e.: Client resolved from Peer ID Cliente de identificación de pares - + 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 Descargado - + 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 - + Files i.e. files that are being downloaded right now Archivos - + Column visibility Visibilidad de columnas - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Reajustar el tamaño de todas las columnas no ocultas al tamaño de sus contenidos. - + Add peers... Añadir pares - - + + Adding peers Agregando pares - + Some peers cannot be added. Check the Log for details. Algunos pares no pudieron ser añadidos. Revisa el registro para más detalles. - + Peers are added to this torrent. Los pares se añaden a este torrent. - - + + Ban peer permanently Prohibir este par permanentemente - + Cannot add peers to a private torrent No se pueden añadir pares a un torrent privado - + Cannot add peers when the torrent is checking No se pueden añadir pares cuando el torrent está comprobando - + Cannot add peers when the torrent is queued No se pueden añadir pares cuando el torrent está en cola - + No peer was selected No se ha seleccionado ningún par - + Are you sure you want to permanently ban the selected peers? ¿Estás seguro de que deseas vetar permanentemente a los pares seleccionados? - + Peer "%1" is manually banned El par "%1" está vetado manualmente - + N/A N/A - + Copy IP:port Copiar IP:puerto @@ -7590,7 +8025,7 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero no Lista de pares a agregar (una IP por línea): - + Format: IPv4:port / [IPv6]:port Formato: IPv4:puerto / [IPv6]:puerto @@ -7631,27 +8066,27 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero no PiecesBar - + Files in this piece: Archivos en esta pieza: - + File in this piece: Archivo en esta pieza: - + File in these pieces: Archivo en estas piezas: - + Wait until metadata become available to see detailed information Espere hasta que los metadatos estén disponibles para ver la información detallada. - + Hold Shift key for detailed information Mantén Shift para información detallada @@ -7664,58 +8099,58 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero no Plugins de búsqueda - + Installed search plugins: Plugins de búsqueda instalados: - + Name Nombre - + Version Versión - + Url URL - - + + Enabled Habilitado - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Advertencia: Asegúrese de cumplir con las leyes de copyright de su país cuando descarga torrents de estos motores de búsqueda. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Aquí puede conseguir nuevos complementos para motores de búsqueda: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalar uno nuevo - + Check for updates Buscar actualizaciones - + Close Cerrar - + Uninstall Desinstalar @@ -7834,98 +8269,65 @@ Those plugins were disabled. Fuente del plugin - + Search plugin source: Fuente del plugin de búsqueda: - + Local file Archivo local - + Web link Enlace web - - PowerManagement - - - qBittorrent is active - qBittorrent está activo - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - El administrador de Energía encontró una interfaz D-Bus adecuada. Interfaz: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Error de administración de energía. No se encontró la interfaz D-Bus adecuada. - - - - - - Power management error. Action: %1. Error: %2 - Error de administración de energía. Acción: %1. Error: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Error inesperado en la administración de energía. Estado: %1. Error: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Los siguientes ficheros del torrent "%1" soportan vista previa, por favor seleccione uno de ellos: - + Preview Previsualizar - + Name Nombre - + Size Tamaño - + Progress Progreso - + Preview impossible Imposible previsualizar - + Sorry, we can't preview this file: "%1". Lo siento, no se puede previsualizar este archivo: "%1". - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Reajustar el tamaño de todas las columnas no ocultas al tamaño de sus contenidos. @@ -7938,27 +8340,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist La ruta no existe - + Path does not point to a directory La ruta no apunta a un directorio - + Path does not point to a file La ruta no apunta a un archivo - + Don't have read permission to path No tiene permiso de lectura para la ruta - + Don't have write permission to path No tiene permiso de escritura para la ruta @@ -7999,12 +8401,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Descargado: - + Availability: Disponibilidad: @@ -8019,53 +8421,53 @@ Those plugins were disabled. Transferencia - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 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: @@ -8075,193 +8477,220 @@ Those plugins were disabled. Conexiones: - + Information Información - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Comentario: - + Select All Seleccionar todo - + Select None Seleccionar ninguno - + Share Ratio: Ratio de compartición: - + Reannounce In: Anunciar en: - + Last Seen Complete: Ultima vez visto completo: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio/Tiempo Activo (en meses), indica qué tan popular es el torrent + + + + Popularity: + Popularidad: + + + Total Size: Tamaño total: - + Pieces: Piezas: - + Created By: Creado por: - + Added On: Agregado el: - + Completed On: Completado el: - + Created On: Creado el: - + + Private: + Privado: + + + Save Path: Ruta de destino: - + 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) - - + + + N/A N/A - + + Yes + Si + + + + No + No + + + %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.) - - New Web seed - Nueva semilla Web + + Add web seed + Add HTTP source + Añadir semilla web - - Remove Web seed - Eliminar semilla Web + + Add web seed: + Añadir semilla web: - - Copy Web seed URL - Copiar URL de la semilla Web + + + This web seed is already in the list. + Esta semilla web ya está en la lista. - - Edit Web seed URL - Editar URL de la semilla Web - - - + Filter files... Filtrar archivos... - + + Add web seed... + Añadir 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 + + + Speed graphs are disabled Los gráficos de velocidad están desactivados - + You can enable it in Advanced Options Puede habilitarlo en Opciones Avanzadas - - 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: @@ -8269,33 +8698,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Formato de datos inválido. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 No se guardaron las reglas del descargador RSS en %1. Error: %2 - + Invalid data format Formato de datos inválido. - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... El artículo RSS '%1' es aceptado por la regla '%2'. Intentando añadir torrent... - + Failed to read RSS AutoDownloader rules. %1 Error al leer las reglas RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 No se cargaron las reglas del descargador RSS Razón: %1 @@ -8303,22 +8732,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 No se pudo descargar el feed RSS: '%1', razón: %2. - + RSS feed at '%1' updated. Added %2 new articles. Actualizado Feed RSS en '%1'. Agregados %2 nuevos artículos. - + Failed to parse RSS feed at '%1'. Reason: %2 No se pudo analizar el feed RSS: '%1', razón: %2. - + RSS feed at '%1' is successfully downloaded. Starting to parse it. El RSS feed en '%1' se ha descargado correctamente. Se ha comenzando a analizarlo. @@ -8354,12 +8783,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Canal RSS inválido. - + %1 (line: %2, column: %3, offset: %4). %1 (linea: %2, columna: %3, margen: %4). @@ -8367,103 +8796,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" No se pudo guardar la configuración de la sesión RSS. Archivo: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" No se pudo guardar los datos de la sesión RSS. Archivo: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. El canal RSS con la URL dada ya existe: %1. - + Feed doesn't exist: %1. El feed no existe %1. - + Cannot move root folder. No se puede mover la carpeta raíz. - - + + Item doesn't exist: %1. El item no existe: %1. - - Couldn't move folder into itself. - No se pudo mover la carpeta a sí misma. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. No se puede eliminar la carpeta raíz. - + Failed to read RSS session data. %1 Error al leer los datos de la sesión RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Error al analizar los datos de la sesión RSS. Archivo: "%1". Error: "%2": "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Error al cargar los datos de la sesión RSS. Archivo: "%1". Error: "Formato de datos no válido". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. No se pudo cargar la fuente RSS. Fuente: "%1". Motivo: se requiere la URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. No se pudo cargar la fuente RSS. Fuente: "%1". Motivo: el UID no es válido. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Se encontró una fuente RSS duplicada. UID: "%1". Error: la configuración parece estar dañada. - + Couldn't load RSS item. Item: "%1". Invalid data format. No se pudo cargar el elemento RSS. Elemento: "%1". Formato de datos inválido. - + Corrupted RSS list, not loading it. Lista de RSS corrupta, no cargarla. - + Incorrect RSS Item path: %1. Elemento RSS incorrecto Ruta : %1. - + RSS item with given path already exists: %1. El canal RSS con la ruta dada ya existe: %1. - + Parent folder doesn't exist: %1. La carpeta no existe: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + El feed no existe %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Intervalo de actualización: + + + + sec + seg + + + + Default + Por defecto + + RSSWidget @@ -8483,8 +8953,8 @@ Those plugins were disabled. - - + + Mark items read Marcar como leídos @@ -8509,132 +8979,115 @@ Those plugins were disabled. Torrents: (doble-click para descargar) - - + + Delete Eliminar - + Rename... Renombrar... - + Rename Renombrar - - + + Update Actualizar - + New subscription... Nueva suscripción... - - + + Update all feeds Actualizar todos los canales - + Download torrent Descargar torrent - + Open news URL Abrir URL - + Copy feed URL Copiar URL del canal - + New folder... Nueva carpeta... - - Edit feed URL... - Guardar URL de feed... + + Feed options... + - - Edit feed URL - Editar URL de feed - - - + Please choose a folder name Por favor elija un nombre para la carpeta - + Folder name: Nombre de la carpeta: - + New folder Nueva carpeta - - - Please type a RSS feed URL - Por favor escribe una URL de un Canal RSS - - - - - Feed URL: - URL del canal: - - - + Deletion confirmation Confirmar eliminación - + Are you sure you want to delete the selected RSS feeds? ¿Esta seguro que desea 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: - + Rename failed Renombrado fallido - + Date: Fecha: - + Feed: - + Semillas: - + Author: Autor: @@ -8642,38 +9095,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Debe instalar Python para usar el motor de búsqueda. - + Unable to create more than %1 concurrent searches. No se puede crear más de %1 búsquedas simultáneas. - - + + Offset is out of range Fuera de rango - + All plugins are already up to date. Todos los plugins ya están actualizados. - + Updating %1 plugins Actualizando %1 plugins - + Updating plugin %1 Actualizando plugin %1 - + Failed to check for plugin updates: %1 Error al comprobar actualizaciones: %1 @@ -8748,132 +9201,142 @@ Those plugins were disabled. Tamaño: - + 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 - - - + Filter search results... Filtrar archivos... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultados (mostrando <i>%1</i> de <i>%2</i>): - + Torrent names only Solo nombres de Torrent - + Everywhere En todas partes - + Use regular expressions Usar expresiones regulares - + Open download window Abrir ventana de descarga - + Download Descargar - + Open description page Abrir la página de descripción - + Copy Copiar - + Name Nombre - + Download link Enlace de descarga - + Description page URL URL de página de descripción - + Searching... Buscando... - + Search has finished La búsqueda ha finalizado - + Search aborted Búsqueda abortada - + An error occurred during search... Ha ocurrido un error durante la búsqueda... - + Search returned no results La búsqueda no ha devuelto resultados - + + Engine + Motor + + + + Engine URL + URL del motor + + + + Published On + Publicado el + + + Column visibility Visibilidad de columnas - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Reajustar el tamaño de todas las columnas no ocultas al tamaño de sus contenidos. @@ -8881,104 +9344,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Formato de plugin de motor de búsqueda desconocido. - + Plugin already at version %1, which is greater than %2 La versión del plugin %1, ya es mayor que %2 - + A more recent version of this plugin is already installed. Una versión más reciente del plugin ya está instalada. - + Plugin %1 is not supported. Plugin %1 no soportado. - - + + Plugin is not supported. Plugin no soportado. - + Plugin %1 has been successfully updated. Plugin %1 actualizado exitosamente. - + All categories Todas - + Movies Películas - + TV shows Programas de TV - + Music Música - + Games Juegos - + Anime Anime - + Software Software - + Pictures Imágenes - + Books Libros - + Update server is temporarily unavailable. %1 El servidor de actualizaciones no está disponible temporalmente. %1 - - + + Failed to download the plugin file. %1 Error al descargar el plugin. %1 - + Plugin "%1" is outdated, updating to version %2 El plugin %1 se está actualizando a la versión %2 - + Incorrect update info received for %1 out of %2 plugins. La información de actualización recibida es incorrecta para %1 de %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') El plugin de búsqueda '%1' contiene una cadena de versión invalida ('%2') @@ -8988,114 +9451,145 @@ Those plugins were disabled. - - - - Search Buscar - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. No hay plugins de búsqueda instalados. Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha para instalar algunos. - + Search plugins... Plugins de búsqueda... - + A phrase to search for. Una frase a buscar. - + Spaces in a search term may be protected by double quotes. Los espacios de una búsqueda pueden ser protegidos por comillas dobles. - + Example: Search phrase example Ejemplo: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: buscar <b>foo bar</b> - + All plugins Todos los motores - + Only enabled Solo habilitados - + + + Invalid data format. + Formato de datos inválido. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: buscar por<b>foo</b> y <b>bar</b> - + + Refresh + Refrescar + + + Close tab Cerrar pestaña - + Close all tabs Cerrar todas las pestañas - + Select... Seleccionar... - - - + + 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 un patrón de búsqueda primero - + + Stop Detener + + + SearchWidget::DataStorage - - Search has finished - La búsqueda ha terminado + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Fallo al cargar los datos de estado guardados de la IU de búsqueda. Archivo: "%1". Error: "%2" - - Search has failed - La búsqueda ha fallado + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Fallo al cargar los resultados de búsqueda guardados. Pestaña: "%1". Archivo: "%2". Error: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Fallo al guardar el estado de la interfaz de usuario de búsqueda. Archivo: "%1". Error: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Fallo al guardar los resultados de la búsqueda. Pestaña: "%1". Archivo: "%2". Error: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Fallo al cargar el historial de la interfaz de búsqueda. Archivo: "%1". Error: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Fallo al guardar el historial de búsqueda. Archivo: "%1". Error: "%2" @@ -9208,34 +9702,34 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha - + Upload: Subida: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Bajada: - + Alternative speed limits Límites de velocidad alternativos @@ -9427,32 +9921,32 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha Tiempo promedio en cola: - + Connected peers: Pares conectados: - + All-time share ratio: Ratio de comparticíon: - + All-time download: Total bajado: - + Session waste: Desperdicio de sesión: - + All-time upload: Total subido: - + Total buffer size: Tamaño total del buffer: @@ -9467,12 +9961,12 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha Trabajos de I/O en cola: - + Write cache overload: Sobrecarga de la caché de escritura: - + Read cache overload: Sobrecarga de la caché de lectura: @@ -9491,51 +9985,77 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha StatusBar - + Connection status: Estado de la conexión: - - + + No direct connections. This may indicate network configuration problems. No hay conexiones directas. Esto puede indicar problemas en la configuración de red. - - + + Free space: N/A + + + + + + External IP: N/A + IP externa: N/A + + + + DHT: %1 nodes DHT: %1 nodos - + qBittorrent needs to be restarted! Es necesario reiniciar qBittorrent - - - + + + Connection Status: Estado de la conexión: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Fuera de línea. Esto normalmente significa que qBittorrent no puede escuchar el puerto seleccionado para las conexiones entrantes. - + Online En línea - + + Free space: + + + + + External IPs: %1, %2 + IPs externas: %1, %2 + + + + External IP: %1%2 + IP externa: %1%2 + + + Click to switch to alternative speed limits Click para cambiar a los límites de velocidad alternativos - + Click to switch to regular speed limits Click para cambiar a los límites de velocidad normales @@ -9565,13 +10085,13 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha - Resumed (0) - Reanudados (0) + Running (0) + En ejecución (0) - Paused (0) - Pausados (0) + Stopped (0) + Detenido (0) @@ -9633,36 +10153,36 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha Completed (%1) Completados (%1) + + + Running (%1) + En ejecución (%1) + - Paused (%1) - Pausados (%1) + Stopped (%1) + Detenido (%1) + + + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Moving (%1) Moviendo (%1) - - - Resume torrents - Reanudar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Eliminar torrents - - - Resumed (%1) - Continuados (%1) - Active (%1) @@ -9734,31 +10254,31 @@ Presione el boton "Plugins de búsqueda..." ubicado abajo a la derecha Remove unused tags Eliminar etiquetas sin usar - - - Resume torrents - Reanudar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Eliminar torrents - - New Tag - Nueva etiqueta + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Tag: Etiqueta: + + + Add tag + Añadir etiqueta + Invalid tag name @@ -9905,32 +10425,32 @@ Por favor, elija otro nombre. TorrentContentModel - + Name Nombre - + Progress Progreso - + Download Priority Prioridad de descarga - + Remaining Restante - + Availability Disponibilidad - + Total Size Tamaño total @@ -9975,98 +10495,98 @@ Por favor, elija otro nombre. TorrentContentWidget - + Rename error Error al renombrar - + Renaming Renombrando - + New name: Nuevo nombre: - + Column visibility Visibilidad de columna - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas las columnas no ocultas al tamaño de su contenido - + Open Abrir - + Open containing folder Abrir carpeta de destino - + Rename... Renombrar... - + Priority Prioridad - - + + Do not download No descargar - + Normal Normal - + High Alta - + Maximum Máxima - + By shown file order Por orden de archivo mostrado - + Normal priority Prioridad Normal - + High priority Prioridad Alta - + Maximum priority Prioridad Máxima - + Priority by shown file order Prioridad por orden de archivo mostrado @@ -10074,19 +10594,19 @@ Por favor, elija otro nombre. TorrentCreatorController - + Too many active tasks - + Demasiadas tareas activas - + Torrent creation is still unfinished. - + La creación del torrent aún está sin acabar. - + Torrent creation failed. - + La creación del torrent falló. @@ -10113,13 +10633,13 @@ Por favor, elija otro nombre. - + Select file Seleccionar archivo - + Select folder Seleccionar carpeta @@ -10194,87 +10714,83 @@ Por favor, elija otro nombre. Campos - + You can separate tracker tiers / groups with an empty line. Puedes separar los niveles / grupos de trackers con una línea vacía. - + Web seed URLs: URLs de las semillas Web: - + Tracker URLs: Tracker URLs: - + Comments: Comentarios: - + Source: Origen: - + Progress: Progreso: - + Create Torrent Crear Torrent - - + + Torrent creation failed Error al crear el torrent - + Reason: Path to file/folder is not readable. Razón: La ruta del archivo/carpeta no es legible. - + Select where to save the new torrent Seleccione donde guardar el nuevo torrent - + Torrent Files (*.torrent) Archivos Torrent (*.torrent) - Reason: %1 - Razón: %1 - - - + Add torrent to transfer list failed. El torrent no se pudo agregar a la lista de transferencias. - + Reason: "%1" Razón: "%1" - + Add torrent failed Error al agregar el torrent - + Torrent creator Crear &Torrent - + Torrent created: Torrent creado: @@ -10282,32 +10798,32 @@ Por favor, elija otro nombre. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Error al cargar la configuración de carpetas vigiladas. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Error al analizar la configuración de carpetas vigiladas de %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Error al cargar la configuración de carpetas vigiladas de %1. Error: "Formato de datos no válido". - + Couldn't store Watched Folders configuration to %1. Error: %2 No se pudo almacenar la configuración de las carpetas supervisadas en %1. Error: %2 - + Watched folder Path cannot be empty. La ruta de la carpeta vigilada no puede estar vacia. - + Watched folder Path cannot be relative. La ruta de la carpeta vigilada no puede ser relativa. @@ -10315,44 +10831,31 @@ Por favor, elija otro nombre. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 URI magnético inválido. URI: %1. Razón: %2 - + Magnet file too big. File: %1 Archivo Magnet demasiado grande. Archivo: %1 - + Failed to open magnet file: %1 Error al abrir el archivo magnet: %1 - + Rejecting failed torrent file: %1 Rechazando archivo torrent fallido: %1 - + Watching folder: "%1" Carpeta de visualización: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Fallo al asignar memoria al leer archivo. Archivo: "%1". Error: "%2" - - - - Invalid metadata - Metadatos inválidos - - TorrentOptionsDialog @@ -10381,175 +10884,163 @@ Por favor, elija otro nombre. Usa otra ruta para torrent incompleto - + Category: Categoría: - - Torrent speed limits - Límites de velocidad del torrent + + Torrent Share Limits + Límites para compartir torrent - + Download: Bajada: - - + + - - + + Torrent Speed Limits + Límites de velocidad de torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Estos no excederán los límites globales - + Upload: Subida: - - Torrent share limits - Límites de uso compartido de torrents - - - - Use global share limit - Usar límite de participación global - - - - Set no share limit - No establecer límite de participación - - - - Set share limit to - Establecer límite de participación en - - - - ratio - tasa - - - - total minutes - minutos totales - - - - inactive minutes - minutos inactivos - - - + Disable DHT for this torrent Desactivar DHT para este torrent - + Download in sequential order Descarga en orden secuencial - + Disable PeX for this torrent Desactivar PeX para este torrent - + Download first and last pieces first Descargar antes primeras y últimas partes - + Disable LSD for this torrent Desactivar LSD para este torrent - + Currently used categories Categorías usadas actualmente - - + + Choose save path Elija guardar ruta - + Not applicable to private torrents No aplicable a torrents privados - - - No share limit method selected - No se seleccionó ningún método de límite de participación - - - - Please select a limit method first - Primero seleccione un método de límite - TorrentShareLimitsWidget - - - + + + + Default - Por defecto + Por defecto + + + + + + Unlimited + Ilimitado - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Ajustado a + + + + Seeding time: + Tiempo sembrando: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Tiempo de sembrado inactivo: - + + Action when the limit is reached: + Acción cuando se alcanza el límite: + + + + Stop torrent + Parar torrents + + + + Remove torrent + Eliminar torrent + + + + Remove torrent and its content + Eliminar el torrent y su contenido + + + + Enable super seeding for torrent + Habilitar la super-siembra para el torrent + + + Ratio: - + Ratio: @@ -10560,32 +11051,32 @@ Por favor, elija otro nombre. Etiquetas de torrent - - New Tag - Nueva etiqueta + + Add tag + Añadir etiqueta - + Tag: Etiqueta: - + Invalid tag name Nombre de etiqueta no válido - + Tag name '%1' is invalid. El nombre de etiqueta '%1' es inválido - + Tag exists La etiqueta existe - + Tag name already exists. El nombre de la etiqueta ya existe. @@ -10593,115 +11084,130 @@ Por favor, elija otro nombre. TorrentsController - + Error: '%1' is not a valid torrent file. Error: '%1' no es un archivo torrent valido. - + Priority must be an integer La prioridad debe ser un entero - + Priority is not valid La prioridad no es válida - + Torrent's metadata has not yet downloaded Aún no se han descargado los metadatos del torrent - + File IDs must be integers El ID del archivo debe ser enteros - + File ID is not valid El ID del archivo no es válido - - - - + + + + Torrent queueing must be enabled Debe activar la cola de torrents - - + + Save path cannot be empty La ruta de destino no puede estar vacía - - + + Cannot create target directory No se puede crear el directorio de destino - - + + Category cannot be empty La categoría no puede estar vacía - + Unable to create category No se pudo crear la categoría - + Unable to edit category No se pudo editar la categoría - + Unable to export torrent file. Error: %1 No se puede exportar el archivo torrent. Error: %1 - + Cannot make save path No se puede crear la ruta de destino - + + "%1" is not a valid URL + "%1" no es una URL valida + + + + URL scheme must be one of [%1] + El esquema de URL debe ser uno de [%1] + + + 'sort' parameter is invalid El parámetro 'sort' no es válido - + + "%1" is not an existing URL + "%1" no es una URL existente + + + "%1" is not a valid file index. "%1" no es un índice de archivo válido. - + Index %1 is out of bounds. El índice %1 está fuera de los límites. - - + + Cannot write to directory No se puede escribir en el directorio - + WebUI Set location: moving "%1", from "%2" to "%3" Establecer ubicación: moviendo "%1", de "%2" a "%3" - + Incorrect torrent name Nombre del torrent incorrecto - - + + Incorrect category name Nombre de la categoría incorrecto @@ -10732,196 +11238,191 @@ Por favor, elija otro nombre. TrackerListModel - + Working Trabajando - + Disabled Deshabilitado - + Disabled for this torrent Deshabilitado para este torrent - + This torrent is private Este torrent es privado - + N/A N/A - + Updating... Actualizando... - + Not working No funciona - + Tracker error Error del rastreador - + Unreachable Inalcanzable - + Not contacted yet Todavía no contactado - - Invalid status! + + Invalid state! ¡Estado inválido! - - URL/Announce endpoint - + + URL/Announce Endpoint + URL/Punto final de anuncio - + + BT Protocol + Protocolo BT + + + + Next Announce + Siguiente anuncio + + + + Min Announce + Anuncio mínimo + + + Tier Nivel - - Protocol - Protocolo - - - + Status Estado - + Peers Pares - + Seeds Semillas - + Leeches Pares - + Times Downloaded Veces Descargado - + Message Mensaje - - - Next announce - Siguiente anuncio - - - - Min announce - Anuncio mínimo - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Este torrent es privado - + Tracker editing Editando tracker - + Tracker URL: URL del tracker: - - + + Tracker editing failed Falló la edición del tracker - + The tracker URL entered is invalid. La URL del tracker es inválida. - + The tracker URL already exists. La URL del tracker ya existe. - + Edit tracker URL... Editar URL del tracker... - + Remove tracker Eliminar tracker - + Copy tracker URL Copiar URL del tracker - + Force reannounce to selected trackers Forzar recomunicación con los trackers seleccionados - + Force reannounce to all trackers Forzar recomunicación con todos los trackers - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Reajustar el tamaño de todas las columnas no ocultas al tamaño de sus contenidos. - + Add trackers... Añadir trackers... - + Column visibility Visibilidad de columnas @@ -10939,37 +11440,37 @@ Por favor, elija otro nombre. Lista de trackers a agregar (uno por línea): - + µTorrent compatible list URL: Lista de URL compatible con μTorrent: - + Download trackers list Descargar lista de rastreadores - + Add Añadir - + Trackers list URL error Error de URL de la lista de rastreadores - + The trackers list URL cannot be empty La URL de la lista de rastreadores no puede estar vacía - + Download trackers list error Error al descargar lista de rastreadores - + Error occurred when downloading the trackers list. Reason: "%1" Ocurrió un error al descargar la lista de rastreadores. Razón: "%1" @@ -10977,62 +11478,62 @@ Por favor, elija otro nombre. TrackersFilterWidget - + Warning (%1) Advertencia (%1) - + Trackerless (%1) Sin tracker (%1) - + Tracker error (%1) Error del rastreador (%1) - + Other error (%1) Otro error (%1) - + Remove tracker Eliminar tracker - - Resume torrents - Reanudar torrents + + Start torrents + Iniciar torrents - - Pause torrents - Pausar torrents + + Stop torrents + Parar torrents - + Remove torrents Eliminar torrents - + Removal confirmation Confirmación de eliminación - + Are you sure you want to remove tracker "%1" from all torrents? ¿Estás seguro de que quieres eliminar el rastreador "%1" de todos los torrents? - + Don't ask me again. No volver a preguntar. - + All (%1) this is for the tracker filter Todos (%1) @@ -11041,7 +11542,7 @@ Por favor, elija otro nombre. TransferController - + 'mode': invalid argument 'modo': argumento inválido @@ -11133,11 +11634,6 @@ Por favor, elija otro nombre. 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. Comprobando datos de reanudación - - - Paused - Pausado - Completed @@ -11161,220 +11657,252 @@ Por favor, elija otro nombre. Con errores - + Name i.e: torrent name Nombre - + Size i.e: torrent size Tamaño - + Progress % Done Progreso - + + Stopped + Detenido + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Estado - + Seeds i.e. full sources (often untranslated) Semillas - + Peers i.e. partial sources (often untranslated) Pares - + Down Speed i.e: Download speed Vel. Bajada - + Up Speed i.e: Upload speed Vel. Subida - + Ratio Share ratio Ratio - + + Popularity + Popularidad + + + ETA i.e: Estimated Time of Arrival / Time left Tiempo Restante - + Category Categoría - + Tags Etiquetas - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Añadido el - + Completed On Torrent was completed on 01/01/2010 08:00 Completado - + Tracker Tracker - + Down Limit i.e: Download limit Límite de bajada - + Up Limit i.e: Upload limit Límite de subida - + Downloaded Amount of data downloaded (e.g. in MB) Bajado - + Uploaded Amount of data uploaded (e.g. in MB) Subido - + Session Download Amount of data downloaded since program open (e.g. in MB) Desc. Sesión - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sub. Sesión - + Remaining Amount of data left to download (e.g. in MB) Restante - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tiempo Activo - + + Yes + + + + + No + No + + + Save Path Torrent save path Ruta de Destino - + Incomplete Save Path Torrent incomplete save path Ruta de destino incompleta - + Completed Amount of data completed (e.g. in MB) Completado - + Ratio Limit Upload share ratio limit Limite de Ratio - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Ultima vez visto completo - + Last Activity Time passed since a chunk was downloaded/uploaded Última Actividad - + Total Size i.e. Size including unwanted data Tamaño Total - + Availability The number of distributed copies of the torrent Disponibilidad - + Info Hash v1 i.e: torrent info hash v1 Informacion Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Informacion Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Reanunciar en - - + + Private + Flags private torrents + Privado + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio/Tiempo Activo (en meses), indica qué tan popular es el torrent + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago hace %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sembrado durante %2) @@ -11383,339 +11911,319 @@ Por favor, elija otro nombre. TransferListWidget - + Column visibility Visibilidad de columnas - + Recheck confirmation Confirmación de comprobación - + Are you sure you want to recheck the selected torrent(s)? ¿Esta seguro que desea comprobar los torrents seleccionados? - + Rename Renombrar - + New name: Nuevo nombre: - + Choose save path Seleccione una ruta de destino - - Confirm pause - Confirmar pausa - - - - Would you like to pause all torrents? - ¿Te gustaría pausar todos los torrents? - - - - Confirm resume - Confirmar reanudar - - - - Would you like to resume all torrents? - ¿Te gustaría reanudar todos los torrents? - - - + Unable to preview Imposible previsualizar - + The selected torrent "%1" does not contain previewable files El torrent seleccionado "%1" no contiene archivos previsualizables - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Cambiar el tamaño de todas las columnas no ocultas al tamaño original de sus contenidos. - + Enable automatic torrent management Habilitar administración de torrent automática. - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. ¿Está seguro de que desea activar la administración automática de Torrent para el/los Torrent(s) seleccionados? Pueden que sean reubicados. - - Add Tags - Añadir etiquetas - - - + Choose folder to save exported .torrent files Elija la carpeta para guardar los archivos .torrent exportados - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Error al exportar el archivo .torrent. Torrent: "%1". Guardar ruta: "%2". Motivo: "%3" - + A file with the same name already exists Ya existe un archivo con el mismo nombre - + Export .torrent file error Exportar error de archivo .torrent - + Remove All Tags Eliminar todas las etiquetas - + Remove all tags from selected torrents? ¿Eliminar todas las etiquetas de los torrents seleccionados? - + Comma-separated tags: Etiquetas separadas por comas: - + Invalid tag Etiqueta no válida - + Tag name: '%1' is invalid El nombre de la etiqueta: '%1' no es válido - - &Resume - Resume/start the torrent - &Continuar - - - - &Pause - Pause the torrent - &Pausar - - - - Force Resu&me - Force Resume/start the torrent - Forzar contin&uación - - - + Pre&view file... Pre&visualizar archivo... - + Torrent &options... &Opciones del torrent... - + Open destination &folder Abrir &carpeta de destino - + Move &up i.e. move up in the queue Mover &arriba - + Move &down i.e. Move down in the queue Mover &abajo - + Move to &top i.e. Move to top of the queue Mover al &principio - + Move to &bottom i.e. Move to bottom of the queue Mover al &final - + Set loc&ation... Est&ablecer destino... - + Force rec&heck Forzar verificación de arc&hivo - + Force r&eannounce Forzar r&ecomunicación - + &Magnet link Enlace &Magnético - + Torrent &ID &ID del torrent - + &Comment &Comentario - + &Name &Nombre - + Info &hash v1 Informacion &hash v1 - + Info h&ash v2 Informacion &hash v2 - + Re&name... Re&nombrar... - + Edit trac&kers... Editar trac&kers... - + E&xport .torrent... E&xportar .torrent... - + Categor&y Categori&a - + &New... New category... &Nuevo... - + &Reset Reset category &Restablecer - + Ta&gs Etique&tas - + &Add... Add / assign multiple tags... &Añadir... - + &Remove All Remove all tags &Eliminar Todo - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + No se puede forzar el re-anunciamiento si el torrent está detenido/en cola/con error/comprobando + + + &Queue &Cola - + &Copy &Copiar - + Exported torrent is not necessarily the same as the imported El torrent exportado no es necesariamente el mismo que el importado - + Download in sequential order Descargar en orden secuencial - + + Add tags + Añadir etiquetas + + + Errors occurred when exporting .torrent files. Check execution log for details. Ocurrieron errores al exportar archivos .torrent. Consulte el registro de ejecución para obtener más información. - + + &Start + Resume/start the torrent + &Iniciar + + + + Sto&p + Stop the torrent + De&tener + + + + Force Star&t + Force Resume/start the torrent + For&zar inicio + + + &Remove Remove the torrent &Eliminar - + Download first and last pieces first Descargar antes primeras y últimas partes - + Automatic Torrent Management Administración automática de torrents - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Modo automático significa que varias propiedades del Torrent (i.e. ruta de guardado) será decidida por la categoría asociada. - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - No se puede forzar la reanudación si el torrent está en pausa, en cola, con error o comprobando - - - + Super seeding mode Modo supersiembra @@ -11760,28 +12268,28 @@ Por favor, elija otro nombre. ID de icono - + UI Theme Configuration. Configuración de tema de IU. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Los cambios en el tema de IU no pudieron ser aplicados completamente. Los detalles están en el Log. - + Couldn't save UI Theme configuration. Reason: %1 No se pudo guardar la configuración del tema de IU. Razón: %1 - - + + Couldn't remove icon file. File: %1. No se pudo borrar el fichero de icono. Fichero: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. No se pudo copiar el fichero de icono. Origen: %1. Destino: %2. @@ -11789,7 +12297,12 @@ Por favor, elija otro nombre. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Error al configurar el estilo de la aplicación. Estilo desconocido: "%1" + + + Failed to load UI theme from file: "%1" Error cargando el tema de IU desde el fichero: "%1" @@ -11820,20 +12333,21 @@ Por favor, elija otro nombre. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" No se ha podido migrar las preferencias: WebUI https, archivo: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Preferencias migradas: https WebUI, datos exportados a fichero: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Se encontró un valor inválido en el archivo de configuración, volviéndolo a los valores predeterminados. Clave: "%1". Valor inválido: "%2". @@ -11841,32 +12355,32 @@ Por favor, elija otro nombre. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Se encontró el ejecutable de Python. Nombre: "%1". Versión: "%2" - + Failed to find Python executable. Path: "%1". Error al encontrar el ejecutable de Python. Ruta: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" No se encontró el ejecutable de `python3` en la variable de entorno PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" No se encontró el ejecutable de `python` en la variable de entorno PATH: "%1" - + Failed to find `python` executable in Windows Registry. No se pudo encontrar el ejecutable `python` en el Registro de Windows. - + Failed to find Python executable No se pudo encontrar el ejecutable de Python @@ -11958,72 +12472,72 @@ Por favor, elija otro nombre. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Se especificó un nombre de cookie de sesión inaceptable: '%1'. Se usa uno predeterminado. - + Unacceptable file type, only regular file is allowed. Tipo de archivo no aceptable, solo se aceptan de tipo regular. - + Symlinks inside alternative UI folder are forbidden. Los enlaces simbólicos dentro de la carpeta de la interfaz alternativa están prohibidos. - + Using built-in WebUI. Usando WebUI incorporada. - + Using custom WebUI. Location: "%1". Usando WebUI personalizada. Ruta: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. La traducción de WebUI para la configuración regional seleccionada (%1) se cargó correctamente. - + Couldn't load WebUI translation for selected locale (%1). No se pudo cargar la traducción de la interfaz de usuario web para la configuración regional seleccionada (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Falta separador ':' en cabecera personalizada WebUI: "%1" - + Web server error. %1 Error del servidor web. %1 - + Web server error. Unknown error. Error del servidor web. Error desconocido. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' interfaz Web: ¡El encabezado de origen y el origen objetivo no coinciden! IP de origen: '%1'. Encabezado de origen: '%2'. Origen objetivo: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' interfaz Web: ¡El encabezado de referencia y el origen objetivo no coinciden! IP de origen: '%1'. Encabezado de referencia: '%2'. Origen objetivo: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' interfaz Web: Encabezado Host inválido, los puertos no coinciden. IP de origen de la solicitud: '%1'. Puerto del servidor: '%2'. Encabezado Host recibido: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' interfaz Web: Encabezado Host inválido. IP de origen de la solicitud: '%1'. Encabezado Host recibido: '%2' @@ -12031,125 +12545,133 @@ Por favor, elija otro nombre. WebUI - + Credentials are not set Las credenciales no están configuradas - + WebUI: HTTPS setup successful WebUI: Configuración de HTTPS exitosa - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: Configuración de HTTPS fallida, se regresa a HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Esta escuchando en IP: %1, puerto: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 No se puede enlazar a la IP: %1, puerto: %2. Motivo: %3 + + fs + + + Unknown error + Error desconocido + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_et.ts b/src/lang/qbittorrent_et.ts index 2a120e99e..cb42d9a1d 100644 --- a/src/lang/qbittorrent_et.ts +++ b/src/lang/qbittorrent_et.ts @@ -14,75 +14,75 @@ Teave - + Authors Autorid - + Current maintainer Praegune haldur - + Greece Kreeka - - + + Nationality: Rahvus: - - + + E-mail: E-post: - - + + Name: Nimi: - + Original author Algne autor - + France Prantsusmaa - + Special Thanks Erilised tänusõnad - + Translators Tõlkijad - + License Litsents - + Software Used Kasutatud tarkvara - + qBittorrent was built with the following libraries: qBittorrent ehitati järgnevate teekidega: - + Copy to clipboard Kopeeri lõikelauale @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Autoriõigus %1 2006-2024 Projekt qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Autoriõigus %1 2006-2025 Projekt qBittorrent @@ -166,15 +166,10 @@ Salvesta asukohta - + Never show again Ära enam näita - - - Torrent settings - Torrenti seaded - Set as default category @@ -191,12 +186,12 @@ Käivita torrent - + Torrent information Torrenti info - + Skip hash check Jäta vahele räsi kontroll @@ -205,6 +200,11 @@ Use another path for incomplete torrent Kasuta muud asukohta poolikutel torrentitel + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Peatamise tingimus: - - + + None - - + + Metadata received Metaandmed kätte saadud - + Torrents that have metadata initially will be added as stopped. - + Torrentid, millel on metaandmed, lisatakse peatutuna. - - + + Files checked - + Add to top of queue Lisa ootejärjekorras esimeseks - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Kui on valitud, siis .torrent'i faili ei kustutata, misest, et sätete "Allalaadimised" lehel, seadete dialoogis, oli valitud teisiti - + Content layout: Sisu paigutus: - + Original Algne - + Create subfolder Loo alamkaust - + Don't create subfolder Ära loo alamkausta - + Info hash v1: Info räsi v1: - + Size: Suurus: - + Comment: Kommentaar: - + Date: Kuupäev: @@ -329,151 +329,147 @@ Pea meeles hiljutist salvestamise asukohta - + Do not delete .torrent file Ära kustuta .torrent faili - + Download in sequential order Järjestikuses allalaadimine - + Download first and last pieces first Lae alla esmalt esimene ja viimane tükk - + Info hash v2: Info räsi v2: - + Select All Vali kõik - + Select None Eemalda valik - + Save as .torrent file... Salvesta kui .torrent fail... - + I/O Error I/O viga - + Not Available This comment is unavailable Pole saadaval - + Not Available This date is unavailable Pole Saadaval - + Not available Pole saadaval - + Magnet link Magneti link - + Retrieving metadata... Hangitakse metaandmeid... - - + + Choose save path Vali salvestamise asukoht - + No stop condition is set. Pole peatamise tingimust määratud. - + Torrent will stop after metadata is received. Torrent peatatakse pärast meta-andmete saamist. - Torrents that have metadata initially aren't affected. - Torrentid, millel juba on metaandmed, ei kaasata. - - - + Torrent will stop after files are initially checked. Torrent peatatakse pärast failide kontrolli. - + This will also download metadata if it wasn't there initially. See laeb alla ka metadata, kui seda ennem ei olnud. - - + + N/A Puudub - + %1 (Free space on disk: %2) %1 (Vabaruum kettal: %2) - + Not available This size is unavailable. Pole saadaval - + Torrent file (*%1) Torrenti fail (*%1) - + Save as torrent file Salvesta kui torrenti fail - + Couldn't export torrent metadata file '%1'. Reason: %2. Ei saanud eksportida torrenti metadata faili '%1'. Selgitus: %2. - + Cannot create v2 torrent until its data is fully downloaded. Ei saa luua v2 torrentit, enne kui pole andmed tervenisti allalaaditud. - + Filter files... Filtreeri failid... - + Parsing metadata... Metaandmete lugemine... - + Metadata retrieval complete Metaandmete hankimine sai valmis @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Allalaaditakse torrentit... Allikas: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Nurjus torrenti lisamine. Allikas: "%1". Selgitus: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Tuvastati katse lisada duplikaat torrent. Allikas: %1. Olemasolev torrent: %2. Tulemus: %3 - - - + Merging of trackers is disabled Jälitajate kokkuliitmine on väljalülitatud - + Trackers cannot be merged because it is a private torrent Jälitajaid ei saa liita, kuna tegemist on privaatse torrentiga - + Trackers are merged from new source Jälitajad liidetakse uuest allikast + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrenti jagamise limiidid + Torrenti jagamise limiidid @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Kontrolli üle torrentid pärast allalaadimist - - + + ms milliseconds ms - + Setting Seaded - + Value Value set for this setting Väärtus - + (disabled) (väljalülitatud) - + (auto) (automaatne) - + + min minutes min - + All addresses Kõik aadressid - + qBittorrent Section qBittorrenti jaotis - - + + Open documentation Ava dokumentatsioon - + All IPv4 addresses Kõik IPv4 aadressid - + All IPv6 addresses Kõik IPv6 aadressid - + libtorrent Section libtorrent jaotis - + Fastresume files Fastresume failid - + SQLite database (experimental) SQLite andmebaas (eksperimentaalne) - + Resume data storage type (requires restart) Jätkamise andmete salvestuse tüüp (taaskäivitus on vajalik) - + Normal Tavaline - + Below normal Alla tavalise - + Medium Keskmine - + Low Madal - + Very low Väga madal - + Physical memory (RAM) usage limit Füüsilise mälu (RAM) kasutamise piirang - + Asynchronous I/O threads Asünkroonsed I/O lõimed - + Hashing threads Räsi lõimed - + File pool size Failipanga suurus - + Outstanding memory when checking torrents Vajalik mälu torrentite kontrollimisel - + Disk cache Ketta vahemälu - - - - + + + + + s seconds s - + Disk cache expiry interval Ketta puhvri aegumise intervall - + Disk queue size Ketta järjekorra suurus - - + + Enable OS cache Luba OS'i puhver - + Coalesce reads & writes Ühenda lugemised ja kirjutamised - + Use piece extent affinity Kasuta tüki ulatuse sidusust - + Send upload piece suggestions Saada üleslaadimise tükkide soovitusi - - - - + + + + + 0 (disabled) 0 (keelatud) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Väljuvad pordid (Min) [0: keelatud] - + Outgoing ports (Max) [0: disabled] - + Väljuvad pordid (Maks.) [0: keelatud] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] Teavituse aegumine [0: piiranguta, -1: süsteemi tavasäte] - + Maximum outstanding requests to a single peer Maksimum ootelolevate päringute arv ühele partnerile - - - - - + + + + + KiB KiB - + (infinite) (piiramatu) - + (system default) (süsteemi tavasäte) - + + Delete files permanently + Kustuta failid lõplikult + + + + Move files to trash (if possible) + Pane failid prügikasti (kui on võimalik) + + + + Torrent content removing mode + + + + This option is less effective on Linux See valik on Linuxi puhul vähem tõhus - + Process memory priority Protsessi mälu prioriteet - + Bdecode depth limit - + Bdecode token limit - + Default Vaikimisi - + Memory mapped files Mälukaardistatud failid - + POSIX-compliant POSIX-ühilduv - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Ketta IO tüüp (taaskäivitus on vajalik) - - + + Disable OS cache Keela OS'i puhver - + Disk IO read mode Ketta IO lugemisrežiim - + Write-through - + Disk IO write mode Ketta IO kirjutamisrežiim - + Send buffer watermark Saada puhvri vesimärk - + Send buffer low watermark Saada puhver madal vesimärk - + Send buffer watermark factor Saada puhvri vesimärgi faktor - + Outgoing connections per second Väljuvaid ühendusi ühes sekundis - - + + 0 (system default) 0 (süsteemi tavasäte) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Pesa tööjärje suurus - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit .torrent'i faili suuruse limiit - + Type of service (ToS) for connections to peers Teenuse tüüp (ToS) ühenduste puhul partneritega - + Prefer TCP Eelista TCP-d - + Peer proportional (throttles TCP) Proportsionaalne partnerite vahel (piirab TCP-d) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Luba tugi rahvusvahelistele domeeninimedele (IDN) - + Allow multiple connections from the same IP address Luba mitu ühendust samalt IP aadressilt - + Validate HTTPS tracker certificates Valideeri HTTPS jälitajate sertifikaate - + Server-side request forgery (SSRF) mitigation Serveripoolse taotluse võltsimise (SSRF) leevendamine - + Disallow connection to peers on privileged ports Keela ühendus partneritega eelistatud portidel - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval Värskendamise intervall - + Resolve peer host names Lahenda partneri hostinimed - + IP address reported to trackers (requires restart) Jälgijatele saadetav IP-aadress (vajalik on taaskäivitus) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Koheselt teavita kõiki jälgijaid, kui IP või port on muutunud - + Enable icons in menus Luba ikoonid menüüs - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Luba karantiin allalaaditud failidele - + Enable Mark-of-the-Web (MOTW) for downloaded files + Luba Mark-of-the-Web (MOTW) allalaaditud failidele + + + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) - + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - + + Start BitTorrent session in paused state + + + + + sec + seconds + sek + + + + -1 (unlimited) + -1 (piiramatu) + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + Confirm removal of tracker from all torrents - + Peer turnover disconnect percentage Partnerite ringluse katkemise protsent - + Peer turnover threshold percentage Partnerite ringluse piirmäära protsent - + Peer turnover disconnect interval Partnerite ringluse katkemise sagedus - + Resets to default if empty Algne taastatakse, kui jätta tühjaks - + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Näita teavitusi - + Display notifications for added torrents Näita teavitusi lisatud torrentitel - + Download tracker's favicon Lae alla jälitaja pisi-ikoon - + Save path history length Salvestuse asukoha-ajaloo pikkus - + Enable speed graphs Luba kiiruse graafikud - + Fixed slots Fikseeritud pesad - + Upload rate based Üleslaadimise kiiruse järgi - + Upload slots behavior Üleslaadimiste kohtade käitumine: - + Round-robin Round-robin - + Fastest upload Kiireim üleslaadimine - + Anti-leech Antikaan - + Upload choking algorithm - Üleslaadimise choking-algorütm + Üleslaadimise choking-algoritm - + Confirm torrent recheck Kinnita torrenti ülekontrollimist - + Confirm removal of all tags Kinnita üle, enne kõikide siltide eemaldamist - + Always announce to all trackers in a tier Saada teavitused alati kõikidele jälitajatele, mis samal tasandil - + Always announce to all tiers Anna alati teada kõigile tasanditele - + Any interface i.e. Any network interface Iga kasutajaliides - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP segarežiimi algoritm - + Resolve peer countries Leia partnerite riigid - + Network interface Võrguliides - + Optional IP address to bind to Valikuline IP-aadress, millega siduda - + Max concurrent HTTP announces Maksimaalselt samaaegseid HTTP-teavitusi - + Enable embedded tracker Luba integreeritud jälitaja - + Embedded tracker port Integreeritud jälitaja port + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + Sobimatu režiim, lubatud on: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Töötab kaasaskantavas režiimis. Automaatselt tuvastati profiili kaust asukohas: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Tuvastati üleliigne käsurea tähis: "%1". Kaasaskantav režiim eeldab suhtelist fastresume'i. - + Using config directory: %1 Kasutatakse konfiguratsiooni kataloogi: %1 - + Torrent name: %1 Torrenti nimi: %1 - + Torrent size: %1 Torrenti suurus: %1 - + Save path: %1 Salvesta kausta: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrenti allalaadimiseks kulus %1. - + + Thank you for using qBittorrent. Aitäh, et kasutad qBittorrentit. - + Torrent: %1, sending mail notification Torrent: %1, saadetakse e-posti teavitus - + Add torrent failed Torrenti lisamine nurjus - + Couldn't add torrent '%1', reason: %2. Ei saanud lisada torrentit '%1', selgitus: %2. - + The WebUI administrator username is: %1 WebUI administraatori kasutajanimi on: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 WebUI administraatori parooli pole määratud. Ajutine parool on selleks sessiooniks: %1 - + You should set your own password in program preferences. Te peaksite määrama omaenda parooli programmi sätetes. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torrent %1' on lõpetanud allalaadimise - + WebUI will be started shortly after internal preparations. Please wait... WebUI käivitub peatselt pärast ettevalmistusi. Palun oodake... - - + + Loading torrents... Laetakse torrenteid... - + E&xit S&ulge - + I/O Error i.e: Input/Output Error I/O viga - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Selgitus: %2 - + Torrent added Torrent lisatud - + '%1' was added. e.g: xxx.avi was added. '%1' oli lisatud. - + Download completed Allalaadimine sai valmis - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + See on testi email. + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' on allalaaditud. - + Information Informatsioon - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - qBittorrent'i juhtimiseks avage veebi kasutajaliides aadressil: %1 + Juhtimaks qBittorrent'it, avage WebUI aadressil: %1 - + Exit Sulge - + Recursive download confirmation Korduv allalaadimise kinnitamine - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' sisaldab .torrent faile, soovite jätkata nende allalaadimist? - + Never Mitte kunagi - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Korduv .torrent faili allalaadimine torrentist. Allikaks on torrent: "%1". Fail: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Nurjus füüsilise mälu (RAM) kasutamise piirangu määramine. Veakood: %1. Veateade: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Nurjus füüsilise mälu (RAM) kasutuspiirangu määramine. Taotletud suurus: %1. Süsteemi piirang: %2. Vea kood: %3. Veateade: "%4" - + qBittorrent termination initiated qBittorrenti sulgemine käivitakse - + qBittorrent is shutting down... qBittorrent suletakse... - + Saving torrent progress... Salvestan torrenti seisu... - + qBittorrent is now ready to exit qBittorrent on nüüd sulgemiseks valmis @@ -1609,12 +1715,12 @@ Prioriteet: - + Must Not Contain: Ei tohi sisaldada: - + Episode Filter: Osa filter: @@ -1667,263 +1773,263 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe &Ekspordi... - + Matches articles based on episode filter. Sobitab artikleid vastavalt osa filtrile. - + Example: Näidis: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match vastab 2, 5, 8 kuni 15, 30 ja järgnevatele osadele esimesest hooajast - + Episode filter rules: Osade filtrite reeglid: - + Season number is a mandatory non-zero value Hooaja number on kohustuslik nullist erinev väärtus - + Filter must end with semicolon Filter peab lõppema semikooloniga - + Three range types for episodes are supported: Kolm toetatud vahemiku tüüpi episoodidele: - + Single number: <b>1x25;</b> matches episode 25 of season one Ühekordne number: <b>1x25;</b> ühtib osa 25-ga, esimesest hooajast - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Tavaline vahemik: <b>1x25-40;</b> ühtib osadega 25 kuni 40, esimesest hooajast - + Episode number is a mandatory positive value Osa number on kohustuslik positiivne väärtus - + Rules Reeglid - + Rules (legacy) Reeglid (vana) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Lõpmatu valik: <b>1x25-;</b> sobib esimese hooaja 25. ja hilisemate hooaegade kõigi osadega. - + Last Match: %1 days ago Viimane sobivus: %1 päeva tagasi - + Last Match: Unknown Viimane sobivus: teadmata - + New rule name Uus reegli nimi - + Please type the name of the new download rule. Palun sisesta nimi, allalaadimise uuele reeglile. - - + + Rule name conflict Reegli nime konflikt - - + + A rule with this name already exists, please choose another name. Samanimeline kategooria on olemas, palun vali teine nimi. - + Are you sure you want to remove the download rule named '%1'? Kindel, et soovid eemaldada allalaadimise reegli nimega '%1'? - + Are you sure you want to remove the selected download rules? Kindel, et soovid eemaldada valitud allalaadimise reeglid? - + Rule deletion confirmation Reegli kustutamise kinnitamine - + Invalid action Sobimatu toiming - + The list is empty, there is nothing to export. Nimekiri on tühi, pole midagi eksportida. - + Export RSS rules Ekspordi RSS reeglid - + I/O Error I/O viga - + Failed to create the destination file. Reason: %1 Nurjus sihtkohafaili loomine. Selgitus: %1 - + Import RSS rules Impordi RSS reeglid - + Failed to import the selected rules file. Reason: %1 Nurjus valitud reegli faili importimine. Selgitus: %1 - + Add new rule... Lisa uus reegel... - + Delete rule Kustuta reegel - + Rename rule... Ümbernimeta reegel... - + Delete selected rules Kustuta valitud reeglid - + Clear downloaded episodes... Eemalda allalaaditud osad... - + Rule renaming Reegli ümbernimetamine - + Please type the new rule name Palun sisesta uue reegli nimi - + Clear downloaded episodes Eemalda allalaaditud osad - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Kindel, et soovid eemaldada valitud reeglis allalaaditud osade nimekirja? - + Regex mode: use Perl-compatible regular expressions Regex-režiim: kasuta Perliga ühilduvaid regulaarseid väljendeid - - + + Position %1: %2 Positsioon %1: %2 - + Wildcard mode: you can use Wildcard-režiim: saate kasutada - - + + Import error Importimise viga - + Failed to read the file. %1 Nurjus faili lugemine. %1 - + ? to match any single character ? mis tahes üksikule tähemärgile vastamiseks - + * to match zero or more of any characters *, et sobitada null või rohkem tähemärki - + Whitespaces count as AND operators (all words, any order) Tühimikud loetakse AND-operaatoriteks (kõik sõnad, mis tahes järjekorras). - + | is used as OR operator | kasutatakse OR operaatorina - + If word order is important use * instead of whitespace. Kui sõnade järjekord on oluline, siis kasuta * tühimiku asemel. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Väljend tühja %1 klausliga (nt %2) - + will match all articles. vastab kõigile artiklitele. - + will exclude all articles. välistab kõik artiklid. @@ -1965,7 +2071,7 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Ei saa luua torrenti jätkukausta: "%1" @@ -1975,30 +2081,40 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Ei saanud salvestada torrenti metadata't '%1'. Viga: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - Ei õnnestunud salvestada torrendi jätkamise andmeid '%1'. Viga: %2. + Ei saanud salvestada torrenti jätkamise andmeid '%1'. Viga: %2. @@ -2007,16 +2123,17 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Ei saanud salvestada andmeid asukohta '%1'. Viga: %2 @@ -2024,38 +2141,60 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::DBResumeDataStorage - + Not found. Ei leitud. - + Couldn't load resume data of torrent '%1'. Error: %2 Ei õnnestunud laadida torrenti '%1' jätkamise andmeid. Viga: %2 - - + + Database is corrupted. Andmebaas on vigane. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Ei saanud salvestada torrenti metadata't. Viga: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Ei saanud salvestada jätkamise andmeid torrent '%1' jaoks. Viga: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - Ei õnnestunud kustutada torrenti '%1' jätkamise andmeid. Viga: %2 + Ei saanud kustutada torrenti '%1' jätkamise andmeid. Viga: %2 - + Couldn't store torrents queue positions. Error: %1 Ei saanud salvestada torrentite järjekorra positsioone. Viga: %1 @@ -2086,457 +2225,503 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Hajutatud räsitabeli (DHT) tugi: %1 - - - - - - - - - + + + + + + + + + ON SEES - - - - - - - - - + + + + + + + + + OFF VÄLJAS - - + + Local Peer Discovery support: %1 Kohaliku partneri avastamise toetus: %1 - + Restart is required to toggle Peer Exchange (PeX) support Taaskäivitus on vajalik, et muuta Peer Exchange (PeX) tuge - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Nurjus torrenti jätkamine. Torrent: "%1". Selgitus: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrenti ei õnnestunud jätkata: tuvastati vastuoluline torrenti ID. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Avastatud vastuolulised andmed: kategooria puudub konfiguratsioonifailist. Kategooria taastatakse, kuid selle seaded taastatakse vaikimisi. Torrent: "%1". Kategooria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Avastatud vastuolulised andmed: kehtetu kategooria. Torrent: "%1". Kategooria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Avastatud ebakõla taastatava kategooria asukohtade ja torrenti praeguse asukoha vahel. Torrent on nüüd lülitatud manuaalsesse režiimi. Torrent: "%1". Kategooria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" Partneri ID: "%1" - + HTTP User-Agent: "%1" HTTP kasutajaagent: "%1" - + Peer Exchange (PeX) support: %1 Peer Exchange (PeX) tugi: %1 - - + + Anonymous mode: %1 Anonüümne režiim: %1 - - + + Encryption support: %1 Krüpteeringu tugi: %1 - - + + FORCED SUNNITUD - + Could not find GUID of network interface. Interface: "%1" Ei suutnud leida võrguliidese GUID-i. Liides: "%1" - + Trying to listen on the following list of IP addresses: "%1" Proovin kuulata järgmist IP-aadresside nimekirja: "%1" - + Torrent reached the share ratio limit. Torrent jõudis jagamise määra piirini. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Eemaldati torrent. - - - - - - Removed torrent and deleted its content. - Eemaldati torrent ja kustutati selle sisu. - - - - - - Torrent paused. - Torrent on pausitud. - - - - - + Super seeding enabled. Super jagamine lubatud - + Torrent reached the seeding time limit. Torrent jõudis jagamise aja piirini. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Nurjus torrenti laadimine. Selgitus: "%1" - + I2P error. Message: "%1". I2P viga. Teade: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP tugi: SEES - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Jälitajate kokkuliitmine on väljalülitatud + + + + Trackers cannot be merged because it is a private torrent + Jälitajaid ei saa liita, kuna tegemist on privaatse torrentiga + + + + Trackers are merged from new source + Jälitajad liidetakse uuest allikast + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP tugi: VÄLJAS - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Nurjus torrenti eksportimine. Torrent: "%1". Sihtkoht: "%2". Selgitus: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Jätkamise andmete salvestamine katkestati. Ootelolevate torrentide arv: %1 - + The configured network address is invalid. Address: "%1" Konfigureeritud võrguaadress on kehtetu. Aadress: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Ei õnnestunud leida konfigureeritud võrgu aadressi, mida kuulata. Aadress: "%1" - + The configured network interface is invalid. Interface: "%1" Konfigureeritud võrguliides on kehtetu. Liides: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Keelatud IP aadresside nimekirja kohaldamisel lükati tagasi kehtetu IP aadress. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrentile lisati jälitaja. Torrent: "%1". Jälitaja: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Eemaldati jälitaja torrentil. Torrent: "%1". Jälitaja: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Lisatud URL-seeme torrentile. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Eemaldatud URL-seeme torrentist. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent on pausitud. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrentit jätkati. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent-i allalaadimine on lõppenud. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrenti liikumine tühistatud. Torrent: "%1". Allikas: "%2". Sihtkoht: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Ei saanud torrenti teisaldamist järjekorda lisada. Torrent: "%1". Allikas: "%2". Sihtkoht: "%3". Selgitus: torrent liigub hetkel sihtkohta - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Ei suutnud järjekorda lisada torrenti liigutamist. Torrent: "%1". Allikas: "%2" Sihtkoht: "%3". Selgitus: mõlemad teekonnad viitavad samale asukohale. - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Järjekorda pandud torrenti liikumine. Torrent: "%1". Allikas: "%2". Sihtkoht: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Alusta torrenti liigutamist. Torrent: "%1". Sihtkoht: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Kategooriate konfiguratsiooni salvestamine ebaõnnestus. Faili: "%1". Viga: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Kategooriate konfiguratsiooni analüüsimine ebaõnnestus. Faili: "%1". Viga: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP-filtri faili edukas analüüsimine. Kohaldatud reeglite arv: %1 - + Failed to parse the IP filter file IP-filtri faili analüüsimine ebaõnnestus - + Restored torrent. Torrent: "%1" Taastatud torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Lisatud on uus torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrenti viga. Torrent: "%1". Viga: "%2" - - - Removed torrent. Torrent: "%1" - Eemaldati torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Eemaldati torrent ja selle sisu. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentil puudub SSL parameetrid. Torrent: "%1". Teade: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Faili veahoiatus. Torrent: "%1". Faili: "%2". Selgitus: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP portide kaardistamine nurjus. Teade: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP portide kaardistamine õnnestus. Teade: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtreeritud port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + SOCKS5 proksi viga. Aadress: %1. Teade: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 segarežiimi piirangud - + Failed to load Categories. %1 Ei saanud laadida kategooriaid. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - + Nurjus kategooriate sättete laadimine. Faili: "%1". Viga: "vale andmevorming" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 on väljalülitatud - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 on väljalülitatud - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL-seemne DNS-otsing nurjus. Torrent: "%1". URL: "%2". Viga: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Saabunud veateade URL-seemnest. Torrent: "%1". URL: "%2". Teade: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Edukas IP-kuulamine. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Ei saanud kuulata IP-d. IP: "%1". Port: "%2/%3". Selgitus: "%4" - + Detected external IP. IP: "%1" Avastatud väline IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Viga: Sisemine hoiatuste järjekord on täis ja hoiatused tühistatakse, võib tekkida jõudluse langus. Tühistatud hoiatuste tüüp: "%1". Teade: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent edukalt teisaldatud. Torrent: "%1". Sihtkoht: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Ei saanud torrentit liigutada. Torrent: "%1". Allikas: "%2". Sihtkoht: "%3". Selgitus: "%4" @@ -2552,13 +2737,13 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::TorrentCreator - + Operation aborted Toiming tühistati - - + + Create new torrent file failed. Reason: %1. Uue torrenti faili loomine nurjus. Selgitus: %1. @@ -2566,67 +2751,67 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Nurjus partneri lisamine "%1" torrentile "%2". Selgitus: %3 - + Peer "%1" is added to torrent "%2" Partner "%1" on lisatud torrenti "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Ei saanud faili kirjutada. Selgitus: "%1". Torrent on nüüd "ainult üleslaadimise" režiimis. - + Download first and last piece first: %1, torrent: '%2' Lae alla esmalt esimene ja viimane tükk: %1, torrent: '%2' - + On Sees - + Off Väljas - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Ei saanud torrentit taastada. Arvatavasti on failid teisaldatud või salvestusruum ei ole kättesaadav. Torrent: "%1". Selgitus: "%2" - + Missing metadata Puuduvad metaandmed - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Faili ümbernimetamine nurjus. Torrent: "%1", fail: "%2", selgitus: "%3" - + Performance alert: %1. More info: %2 Toimivushäire: %1. Rohkem infot: %2 @@ -2647,189 +2832,189 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameeter '%1' peab järgima süntaksit '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameeter '%1' peab järgima süntaksit '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameeter '%1' peab järgima süntaksit '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). %1 määratud port peab olema sobiv (1 kuni 65535). - + Usage: Kasutus: - + [options] [(<filename> | <url>)...] - + Options: Valikud: - + Display program version and exit Kuva programmi versioon ja sule - + Display this help message and exit Kuva see abitekst ja sulge - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameeter '%1' peab järgima süntaksit '%1=%2' + + + Confirm the legal notice - - + + port Port - + Change the WebUI port Muuda WebUI porti - + Change the torrenting port Muuda torrentimise porti - + Disable splash screen - + Run in daemon-mode (background) Käivitab deemon-režiimis (taustal) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Hoiusta konfiguratsiooni faile asukohas <dir> - - + + name Nimi - + Store configuration files in directories qBittorrent_<name> Hoia konfiguratsiooni faile asukohtades qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Haki libtorrent fastresume failidesse ja tee failide asukohad suhteliseks profiili kataloogi suhtes - + files or URLs failid või URL-id - + Download the torrents passed by the user Laadige kasutaja poolt edastatud torrentid alla - + Options when adding new torrents: Valikud kui lisatakse uued torrentid: - + path asukoht - + Torrent save path Torrenti salvestamise asukoht - - Add torrents as started or paused - Lisa torrentid käivitatuna või pausitutena + + Add torrents as running or stopped + - + Skip hash check Jäta vahele räsi kontroll - + Assign torrents to category. If the category doesn't exist, it will be created. Määra torrentitele kategooriad. Kui kategooriat pole, siis see luuakse. - + Download files in sequential order Järjestikuses failide allalaadimine - + Download first and last pieces first Lae alla esmalt esimene ja viimane tükk - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Määra, et kas avatakse dialoog "Lisa Uus Torrent", torrentite lisamisel. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Valiku väärtused võib esitada keskkonnamuutujate kaudu. 'parameetri-nimi' nimelise valiku puhul on keskkonnamuutuja nimi 'QBT_PARAMETER_NAME' (suures kirjas, '-' asendatud '_'-ga). Lipuväärtuste edastamiseks tuleb muutuja väärtuseks määrata '1' või 'TRUE'. Näiteks, et keelata splash screen: - + Command line parameters take precedence over environment variables - + Help Abi @@ -2881,13 +3066,13 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe - Resume torrents - Jätka torrentitega + Start torrents + Käivita torrentid - Pause torrents - Pausi torrentid + Stop torrents + Peata torrentid @@ -2898,15 +3083,20 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe ColorWidget - + Edit... Muuda... - + Reset + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe - Also permanently delete the files - Samuti kustuta lõplikult ka failid + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Kindel, et soovite eemaldada '%1' edastuste nimekirjast? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Kindel, et soovite eemaldada %1 torrentid edastuste nimekirjast? - + Remove Eemalda @@ -3008,12 +3198,12 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe Laadi alla URL-idelt - + Add torrent links Lisa torrenti lingid - + One link per line (HTTP links, Magnet links and info-hashes are supported) Üks link ühe rea kohta (HTTP lingid, Magnet lingid ja info-räsid on toetatud) @@ -3023,12 +3213,12 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe Laadi alla - + No URL entered URL on sisestamata - + Please type at least one URL. Palun sisesta vähemalt üks URL. @@ -3187,25 +3377,48 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe Analüüsi viga: filtrifail ei ole sobilik PeerGuardian P2B fail. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Allalaaditakse torrentit... Allikas: "%1" - - Trackers cannot be merged because it is a private torrent - Jälitajaid ei saa liita, kuna tegemist on privaatse torrentiga - - - + Torrent is already present see Torrent on juba olemas - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' on juba ülekandeloendis. Kas soovite jälgijaid lisada uuest allikast? @@ -3213,38 +3426,38 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe GeoIPDatabase - - + + Unsupported database file size. Ei toeta sellist andmebaasi faili suurust. - + Metadata error: '%1' entry not found. Metaandmete viga: kirjet '%1' ei leitud. - + Metadata error: '%1' entry has invalid type. Metaandmete viga: '%1' kirje on sobimatu. - + Unsupported database version: %1.%2 Puudub tugi andmebaasi versioonile: %1.%2 - + Unsupported IP version: %1 Puudub tugi IP versioonile: %1 - + Unsupported record size: %1 Toetamata kirje suurus: %1 - + Database corrupted: no data section found. Andmebaas vigane: ei leitud andmete sektsiooni. @@ -3252,17 +3465,17 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-päringu suurus ületab piirangu, pesa suletakse. Piirang: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Vigane HTTP-päring, pesa sulgemine. IP: %1 @@ -3303,26 +3516,60 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe IconWidget - + Browse... Sirvi... - + Reset - + Select icon Vali ikoon - + Supported image files Toetatud pildi failid + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 blokeeriti. Selgitus: %2. - + %1 was banned 0.0.0.0 was banned %1 on nüüd keelatud @@ -3369,60 +3616,60 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Ei saa kasutada %1: qBittorrent on juba käivitatud. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Toetab formaate: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (kuupäevade formaate toe &Muuda - + &Tools &Tööriistad - + &File &Fail - + &Help &Abi - + On Downloads &Done Kui allalaadimised &lõpetatud - + &View &Vaade - + &Options... &Valikud... - - &Resume - &Jätka - - - + &Remove &Eemalda - + Torrent &Creator Torrenti &Looja - - + + Alternative Speed Limits Alternatiivsed kiiruse limiidid - + &Top Toolbar &Ülemine Tööriistariba - + Display Top Toolbar Kuva Ülemine Tööriistariba - + Status &Bar Oleku &Riba - + Filters Sidebar Filtrite külgriba - + S&peed in Title Bar K&iirus mis on Tiitliribal - + Show Transfer Speed in Title Bar Näita Edastuste Kiirust Tiitliribal - + &RSS Reader &RSS Lugeja - + Search &Engine Otsingu &Mootor - + L&ock qBittorrent L&ukusta qBittorrent - + Do&nate! &Anneta! - + + Sh&utdown System + + + + &Do nothing &Ära tee midagi - + Close Window Sulge Aken - - R&esume All - J&ätka Kõikidega - - - + Manage Cookies... Halda Küpsiseid... - + Manage stored network cookies Halda hoiustatud ühenduste-küpsiseid - + Normal Messages Tava teavitused - + Information Messages Info teavitused - + Warning Messages Hoiatus teavitused - + Critical Messages Kriitilised teavitused - + &Log &Logid - + + Sta&rt + Käivi&ta + + + + Sto&p + Pe&ata + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Määra üldise kiiruse limiidid... - + Bottom of Queue Järjekorras viimaseks - + Move to the bottom of the queue Liiguta järjekorras viimaseks - + Top of Queue Esimeseks Järjekorras - + Move to the top of the queue Liiguta järjekorras esimeseks - + Move Down Queue Liiguta Alla Järjekorras - + Move down in the queue Liiguta järjekorras allapoole - + Move Up Queue Liiguta Üles Järjekorras - + Move up in the queue Liiguta järjekorras ülespoole - + &Exit qBittorrent &Sule qBittorrent - + &Suspend System &Peata süsteem - + &Hibernate System &Pane süsteem talveunerežiimi - - S&hutdown System - S&ulge süsteem - - - + &Statistics &Statistika - + Check for Updates Kontrolli Uuendusi - + Check for Program Updates Kontrolli Programmi Uuendusi - + &About &Teave - - &Pause - &Pane pausile - - - - P&ause All - P&ausi Kõik - - - + &Add Torrent File... &Lisa Torrenti Fail... - + Open Ava - + E&xit S&ulge - + Open URL Ava URL - + &Documentation &Dokumentatsioon - + Lock Lukusta - - - + + + Show Näita - + Check for program updates Kontrolli programmi uuendusi - + Add Torrent &Link... Lisa Torrenti &Link... - + If you like qBittorrent, please donate! Kui sulle meeldib qBittorrent, palun annetage! - - + + Execution Log Toimingute logi - + Clear the password Eemalda see parool - + &Set Password &Määra Parool - + Preferences Eelistused - + &Clear Password &Eemalda parool - + Transfers Ülekanded - - + + qBittorrent is minimized to tray qBittorrent on minimeeritud tegumireale - - - + + + This behavior can be changed in the settings. You won't be reminded again. Seda käitumist saab muuta seadetest. Teid ei teavita sellest rohkem. - + Icons Only Ainult ikoonid - + Text Only Ainult tekst - + Text Alongside Icons Text Ikoonide Kõrval - + Text Under Icons Text Ikoonide Alla - + Follow System Style Järgi Süsteemi Stiili - - + + UI lock password UI luku parool - - + + Please type the UI lock password: Palun sisesta UI luku parool: - + Are you sure you want to clear the password? Kindel, et soovid eemaldada selle parooli? - + Use regular expressions Kasuta regulaarseid väljendeid - + + + Search Engine + Otsingu Mootor + + + + Search has failed + Otsimine nurjus + + + + Search has finished + Otsing on lõpetatud + + + Search Otsi - + Transfers (%1) Ülekanded (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent oli just uuendatud ja on vajalik taaskäivitada muudatuse rakendamiseks. - + qBittorrent is closed to tray qBittorrent on suletud tegumireale - + Some files are currently transferring. Osa faile on hetkel edastamisel. - + Are you sure you want to quit qBittorrent? Kindel, et soovid täielikult sulgeda qBittorrenti? - + &No &Ei - + &Yes &Jah - + &Always Yes &Alati Jah - + Options saved. Sätted salvestati. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title + + [PAUSED] %1 + %1 is the rest of the window title - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [A: %1, Ü: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Puudub Python Runtime - + qBittorrent Update Available qBittorrenti Uuendus Saadaval - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python on vajalik, et kasutada otsingu mootorit, tundub nagu poleks teil see installitud. Soovite koheselt paigaldada? - + Python is required to use the search engine but it does not seem to be installed. Python on vajalik, et kasutada otsingu mootorit, tundub nagu poleks teil see installitud. - - + + Old Python Runtime Vana Python Runtime - + A new version is available. Uus versioon on saadaval. - + Do you want to download %1? Kas sa soovid allalaadida %1? - + Open changelog... Ava muudatustelogi... - + No updates available. You are already using the latest version. Uuendused pole saadaval. Juba kasutate uusimat versiooni. - + &Check for Updates &Kontrolli Uuendusi - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Teie Pythoni versioon (%1) on liiga vana. Vajalik on vähemalt: %2. Kas soovite koheselt installida uue versiooni? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Teie Pythoni versioon (%1) on vana. Palun uuendage uusimale versioonile, et toimiksid otsingu mootorid. Vajalik on vähemalt: %2. - + + Paused + Pausitud + + + Checking for Updates... Kontrollin uuendusi... - + Already checking for program updates in the background Juba kontrollin programmi uuendusi tagaplaanil - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Allalaadimise tõrge - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Pythoni setupit ei saanud allalaadida, selgitus: %1. -Palun installige see iseseisvalt. - - - - + + Invalid password Sobimatu parool - + Filter torrents... Filtreeri torrenteid... - + Filter by: Filtreering: - + The password must be at least 3 characters long Parooli pikkus peab olema vähemalt 3 tähemärki - - - + + + RSS (%1) RSS (%1) - + The password is invalid Parool on sobimatu - + DL speed: %1 e.g: Download speed: 10 KiB/s AL kiirus: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s ÜL kiirus: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [A: %1, Ü: %2] qBittorrent %3 - - - + Hide Peida - + Exiting qBittorrent Suletakse qBittorrent - + Open Torrent Files Ava Torrenti Failid - + Torrent Files Torrenti Failid @@ -4232,7 +4550,12 @@ Palun installige see iseseisvalt. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -4360,7 +4683,7 @@ Palun installige see iseseisvalt. Burkina Faso - + Burkina Faso @@ -4390,7 +4713,7 @@ Palun installige see iseseisvalt. Brunei Darussalam - + Brunei Darussalam @@ -4695,7 +5018,7 @@ Palun installige see iseseisvalt. Guinea-Bissau - + Guinea-Bissau @@ -4820,7 +5143,7 @@ Palun installige see iseseisvalt. Saint Kitts and Nevis - + Saint Kitts ja Nevis @@ -5095,7 +5418,7 @@ Palun installige see iseseisvalt. Saint Pierre and Miquelon - + Saint-Pierre ja Miquelon @@ -5155,7 +5478,7 @@ Palun installige see iseseisvalt. Seychelles - + Seišellid @@ -5180,7 +5503,7 @@ Palun installige see iseseisvalt. Svalbard and Jan Mayen - + Svalbard ja Jan Mayen @@ -5215,7 +5538,7 @@ Palun installige see iseseisvalt. Sao Tome and Principe - + Sao Tome ja Principe @@ -5360,7 +5683,7 @@ Palun installige see iseseisvalt. Saint Helena, Ascension and Tristan da Cunha - + Saint Helena, Ascension ja Tristan da Cunha @@ -5455,7 +5778,7 @@ Palun installige see iseseisvalt. Wallis and Futuna - + Wallis ja Futuna @@ -5515,58 +5838,58 @@ Palun installige see iseseisvalt. Jersey - + Jersey Saint Barthelemy - + Saint Barthelemy Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 Server lükkas <mail from> tagasi, sõnum: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> server lükkas tagasi, sõnum: %1 - + <data> was rejected by server, msg: %1 <data> server lükkas tagasi, sõnum: %1 - + Message was rejected by the server, error: %1 Server lükkas sõnumi tagasi, viga: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP server ei näi toetavat ühtegi meie poolt toetatavat autentimisrežiimi [CRAM-MD5|PLAIN|LOGIN], jättes autentimise vahele, teades, et see tõenäoliselt ebaõnnestub... Serveri autentimisviisid: %1 - + Email Notification Error: %1 E-posti teavitamise viga: %1 @@ -5604,299 +5927,283 @@ Palun installige see iseseisvalt. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Edasijõudnutele - + Customize UI Theme... Muuda UI Theme... - + Transfer List Ülekandeloend - + Confirm when deleting torrents Kinnita enne torrentite kustutamist - - Shows a confirmation dialog upon pausing/resuming all the torrents - Kuvatakse kinnitamiseks dialoog, enne kui pausitakse/jätkatakse kõikide torrentitega - - - - Confirm "Pause/Resume all" actions - Kinnita "Pausi/Jätka kõik" toiminguid - - - + Use alternating row colors In table elements, every other row will have a grey background. Kasuta vahelduvaid rea värve - + Hide zero and infinity values Peida nullid ja lõpmatuse väärtused - + Always Alati - - Paused torrents only - Ainult pausitud torrentid - - - + Action on double-click Toiming pärast topeltklõpsu - + Downloading torrents: Allalaadimisel torrentid: - - - Start / Stop Torrent - Käivita / Seiska Torrent - - - - + + Open destination folder Ava sihtkoha kaust - - + + No action Ei tehta midagi - + Completed torrents: Lõpetatud torrentid: - + Auto hide zero status filters Automaatselt peida null olekufiltrid - + Desktop Töölaud - + Start qBittorrent on Windows start up Käivita qBittorrent Windowsi käivitamisel - + Show splash screen on start up - + Confirmation on exit when torrents are active Kuva kinnitamine enne sulgemist, kui torrentid on aktiivsed - + Confirmation on auto-exit when downloads finish Kuva kinnitamine, enne automaatset-sulgumist, pärast allalaadimiste valmimist - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrenti sisu paigutus: - + Original Originaal - + Create subfolder Loo alamkaust - + Don't create subfolder Ära loo alamkausta - + The torrent will be added to the top of the download queue Torrent lisatakse ootejärjekorras täitsa esimeseks - + Add to top of queue The torrent will be added to the top of the download queue Lisa ootejärjekorras esimeseks - + When duplicate torrent is being added Kui lisatakse juba olemasolev torrent - + Merge trackers to existing torrent Liida jälitajad olemasolevale torrentile - + Keep unselected files in ".unwanted" folder Hoia mittevalitud failid ".unwanted" kaustas - + Add... Lisa... - + Options.. Valikud... - + Remove Eemalda - + Email notification &upon download completion E-postile teavitus &pärast allalaadimist - + + Send test email + Saada test e-kiri + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Partneri ühenduse protokoll: - + Any Suvaline - + I2P (experimental) I2P (eksperimentaalne) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - Osad valikud ei ühildu valitud proksi tüübiga! - - - + If checked, hostname lookups are done via the proxy Kui valitud, hostinimede otsing tehakse proksi abiga - + Perform hostname lookup via proxy Tee hostinimede otsing proksi abiga - + Use proxy for BitTorrent purposes Kasuta proksit BitTorrenti jaoks - + RSS feeds will use proxy RSS vood kasutavad proksit - + Use proxy for RSS purposes Kasuta proksit RSS jaoks - + Search engine, software updates or anything else will use proxy Otsingu mootor, tarkvara uuendused ja muud kasutavad proksit - + Use proxy for general purposes Kasuta proksit tavatoimingute jaoks - + IP Fi&ltering IP Fi&lteering - + Schedule &the use of alternative rate limits Planeeri alternatiivsete kiiruste limiidi &kasutust - + From: From start time Ajast: - + To: To end time Kuni: - + Find peers on the DHT network Otsi partnereid DHT võrgust - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,187 +6212,227 @@ Nõua krüpteering: Ainult ühenda partneritega kel on lubatud protokolli krüpt Keela krüpteering: Ainult ühenda partneritega kel pole protokolli krüpteeringut - + Allow encryption Luba krüpteering - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Rohkem informatsiooni</a>) - + Maximum active checking torrents: Maksimum samaaegselt kontrollitavaid torrenteid: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - A&utomaatselt lisa need jälitajad uutele allalaadimistele: - - - + RSS Reader RSS Lugeja - + Enable fetching RSS feeds RSS-voogude toomise lubamine - + Feeds refresh interval: Voogude värskendamise intervall: - + Same host request delay: - + Maximum number of articles per feed: Artiklite maksimaalne arv ühe voo kohta: - - - + + + min minutes min - + Seeding Limits Jagamise limiidid - - Pause torrent - Pausi torrent - - - + Remove torrent Eemalda torrent - + Remove torrent and its files Eemalda torrent ja selle failid - + Enable super seeding for torrent Luba super jagamise režiim torrentile - + When ratio reaches Kui suhe jõuab - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Peata torrent + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Torrenti Automaatne Allalaadija - + Enable auto downloading of RSS torrents Luba RSS'i torrentite automaatne allalaadimine - + Edit auto downloading rules... Muuda automaatse allalaadimise reegleid... - + RSS Smart Episode Filter RSS tark osa filter - + Download REPACK/PROPER episodes Laadi alla REPACK/PROPER osad - + Filters: Filtrid: - + Web User Interface (Remote control) Veebi kasutajaliides (kaughaldus) - + IP address: IP aadress: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: Keela klient pärast mitut järjestikkust nurjumist: - + Never Mitte kunagi - + ban for: keela kuni: - + Session timeout: Sessiooni aegumistähtaeg: - + Disabled Keelatud - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: Serveri domeenid: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6094,442 +6441,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Kasuta HTTPS'i HTTP asemel - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + Kasuta alternatiivset WebUI'd + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Uue&nda minu dünaamilise domeeni nime - + Minimize qBittorrent to notification area Minimeeri qBittorrent teavituste alale - + + Search + Otsi + + + + WebUI + WebUI + + + Interface Kasutajaliides - + Language: Keel: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Tavaline - + File association - + Use qBittorrent for .torrent files Kasuta .torrent failide puhul qBittorrentit - + Use qBittorrent for magnet links Kasuta magnet linkide puhul qBittorrentit - + Check for program updates Kontrolli programmi uuendusi - + Power Management - + + &Log Files + + + + Save path: Salvestamise asukoht: - + Backup the log file after: Tee tagavara logi failist pärast: - + Delete backup logs older than: Kustuta tagavara logid mis vanemad kui: - + + Show external IP in status bar + + + + When adding a torrent Kui lisatakse torrent - + Bring torrent dialog to the front Too esile torrenti dialoogiaken - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Kustuta ka .torrent failid, mille lisamine tühistati - + Also when addition is cancelled Ka siis, kui lisamine tühistatakse - + Warning! Data loss possible! Hoiatus! Andmete kadu võimalik! - + Saving Management Salvestamise Haldamine - + Default Torrent Management Mode: Torrentide vaikimisi haldusrežiim: - + Manual Juhend - + Automatic Automaatne - + When Torrent Category changed: Kui torrenti kategooria muutus: - + Relocate torrent Ümberpaiguta torrent - + Switch torrent to Manual Mode Lülita torrent manuaalsesse režiimi - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode Lülitage mõjutatud torrentid manuaalsesse režiimi - + Use Subcategories Kasuta Alamkategooriaid - + Default Save Path: Tava Salvestamise Asukoht: - + Copy .torrent files to: Kopeeri .torrent failid asukohta: - + Show &qBittorrent in notification area Kuva &qBittorrent teavituste alal - - &Log file - &Logi fail - - - + Display &torrent content and some options Kuva &torrenti sisu ja osasid valikuid - + De&lete .torrent files afterwards Ku&stuta pärast .torrent failid - + Copy .torrent files for finished downloads to: Kopeeri .torrent failid lõpetanud allalaadimistel hiljem asukohta: - + Pre-allocate disk space for all files Hõiva ette ketta ruum kõikidele failidele - + Use custom UI Theme Kasuta kohandatud UI teemat - + UI Theme file: UI Teema fail: - + Changing Interface settings requires application restart Kasutajaliidese seadete muutmiseks on vaja rakendus taaskäivitada - + Shows a confirmation dialog upon torrent deletion Kuvab kinnitamiseks dialoogi enne torrenti kustutamist - - + + Preview file, otherwise open destination folder Kuva faili eelvaade, muidu ava faili kaust - - - Show torrent options - Kuva torrenti valikuid - - - + Shows a confirmation dialog when exiting with active torrents Kuvatakse kinnituse dialoog, kui suletakse aktiivsete torrentitega - + When minimizing, the main window is closed and must be reopened from the systray icon Minimeerimisel suletakse põhiaken ja see tuleb uuesti avada tegumirea ikoonilt - + The systray icon will still be visible when closing the main window Tegumirea ikoon jääb nähtavaks ka põhiakna sulgemisel. - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Sule qBittorrent teavituste alale - + Monochrome (for dark theme) Monotoonne (tumeda teema jaoks) - + Monochrome (for light theme) Monotoonne (heleda teema jaoks) - + Inhibit system sleep when torrents are downloading Takista süsteemil uinuda, kui torrenteid on allalaadimas - + Inhibit system sleep when torrents are seeding Takista süsteemil uinuda, kui torrenteid hetkel jagatakse - + Creates an additional log file after the log file reaches the specified file size Loob lisa logi faili, kui logi fail ületab valitud mahu piiri - + days Delete backup logs older than 10 days päeva - + months Delete backup logs older than 10 months kuud - + years Delete backup logs older than 10 years aastat - + Log performance warnings Logi jõudluse hoiatused - - The torrent will be added to download list in a paused state - Torrent lisatakse allalaadimise nimekirja pausitud olekus - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ära käivita allalaadimist automaatselt - + Whether the .torrent file should be deleted after adding it Kas .torrent fail peaks olema kustutatud pärast lisamist - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Hõiva täielikult kogu faili maht enne allalaadimist, et vähendada fragmentatsiooni. Kasulik HDD jaoks. - + Append .!qB extension to incomplete files Lisa .!qB laiend poolikutele failidele - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Kui torrentit laetakse alla, paku torrentite lisamist, ükskõik mis sellest leitud . torrenti failidest - + Enable recursive download dialog Luba korduv allalaadimise dialoog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automaatne: mitmed torrenti omadused (s.h. salvestamise asukoht) otsustatakse seostatud kategooriaga Manuaalne: mitmed torrenti omadused (s.h. salvestamise asukoht) tuleb määrata käsitsi - + When Default Save/Incomplete Path changed: Kui muudetakse tava salvestuste/poolikute asukohta: - + When Category Save Path changed: Kui muutus kategooria salvestamise asukoht: - + Use Category paths in Manual Mode Kasuta kategooria asukohti manuaalses režiimis - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme Kasuta süsteemi teema ikoone - + Window state on start up: Akna olek käivitamisel: - + qBittorrent window state on start up qBittorrenti akna olek käivitamisel - + Torrent stop condition: Torrenti peatamise tingimus: - - + + None - - + + Metadata received Metaandmed kätte saadud - - + + Files checked - + Ask for merging trackers when torrent is being added manually Küsi üle jälitajate liitmine, kui torrent lisatakse manuaalselt - + Use another path for incomplete torrents: Kasuta muud asukohta poolikutel torrentitel: - + Automatically add torrents from: Automaatselt lisa torrentid asukohast: - + Excluded file names Välistatud failide nimed - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6546,770 +6934,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Vastuvõtja - + To: To receiver Sihtkohta: - + SMTP server: SMTP server: - + Sender Saatja - + From: From sender Asukohast: - + This server requires a secure connection (SSL) See server vajab turvalist ühendust (SSL) - - + + Authentication Audentimine - - - - + + + + Username: Kasutajanimi: - - - - + + + + Password: Parool: - + Run external program Käivita välispidine programm - - Run on torrent added - Käivita torrenti lisamisel - - - - Run on torrent finished - Käivita, kui torrent sai valmis - - - + Show console window Näita konsooli akent - + TCP and μTP TCP ja μTP - + Listening Port Kuulatav port - + Port used for incoming connections: Port kasutuseks sissetulevatel ühendustel: - + Set to 0 to let your system pick an unused port Vali 0, et süsteem saaks valida vaba pordi - + Random Suvaline - + Use UPnP / NAT-PMP port forwarding from my router Kasuta UPnP / NAT-PMP port forwarding'ut minu ruuterist - + Connections Limits Ühenduste limiidid - + Maximum number of connections per torrent: Maksimum kogus ühendusi ühel torrentil: - + Global maximum number of connections: Globaalselt maksimum kogus ühendusi: - + Maximum number of upload slots per torrent: Maksimum kogus üleslaadimise kohti ühel torrentil: - + Global maximum number of upload slots: Globaalselt maksimum kogus üleslaadimise kohti: - + Proxy Server Proxy Server - + Type: Tüüp: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Muidu, seda proxy serverit kasutatakse ainult jälitajate ühendustel - + Use proxy for peer connections Kasuta ühendustel partneritega proksit - + A&uthentication A&udentimine - - Info: The password is saved unencrypted - Info: See parool on salvestatud krüpteeringuta - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter Lae filter uuesti - + Manually banned IP addresses... Manuaalselt keelatud IP aadressid... - + Apply to trackers Määra jälgijatele - + Global Rate Limits Üldine kiiruse limiidid - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Üleslaadimine: - - + + Download: Allalaadimine: - + Alternative Rate Limits Alternatiivsed kiiruse piirangud - + Start time Alguse aeg - + End time Lõpu aeg - + When: Millal: - + Every day Kõik päevad - + Weekdays Tööpäevadel - + Weekends Nädalavahetustel - + Rate Limits Settings Kiiruse piirangu seaded - + Apply rate limit to peers on LAN Määra kiiruse limiit partneritele LAN'is - + Apply rate limit to transport overhead Määra kiiruse limiit edastatavale lisainfole - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Määra kiiruse limiit µTP protokollile - + Privacy Privaatsus - + Enable DHT (decentralized network) to find more peers Luba DHT (detsentraliseeritud võrk), et leida rohkem partnereid - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Luba partnerite vahetus toetatud Bitorrenti klientidega (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Luba Peer Exchange (PeX), et leida rohkem partnereid - + Look for peers on your local network Otsi partnereid oma kohalikust võrgust - + Enable Local Peer Discovery to find more peers Luba Kohalike Partnerite Avastamine, et leida rohkem partnereid - + Encryption mode: Krüpteeringu režiim: - + Require encryption Nõua krüpteering - + Disable encryption Keela krüpteering - + Enable when using a proxy or a VPN connection Luba kui kasutad proksit või VPN ühendust - + Enable anonymous mode Luba anonüümne režiim - + Maximum active downloads: Maksimaalselt aktiivseid allalaadimisi: - + Maximum active uploads: Maksimaalselt aktiivseid üleslaadimisi: - + Maximum active torrents: Maksimaalselt aktiivseid torrenteid: - + Do not count slow torrents in these limits Ära arvesta aeglaseid torrenteid limiitide hulka - + Upload rate threshold: Üleslaadimise kiiruse piirmäär: - + Download rate threshold: Allalaadimise kiiruse piirmäär: - - - - + + + + sec seconds sek - + Torrent inactivity timer: Torrenti passiivsuse timer: - + then siis - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: Sertifikaat: - + Key: Võti: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informatsioon sertifikaatidest</a> - + Change current password Muuda praegust parooli - - Use alternative Web UI - Kasuta alternatiivset Web UI'd - - - + Files location: Faili asukoht: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Turvalisus - + Enable clickjacking protection Luba clickjacking'ute kaitse - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers Lisa kohandatud HTTP päised - + Header: value pairs, one per line - + Enable reverse proxy support Luba reverse proxy tugi - + Trusted proxies list: Usaldatud prokside nimekiri - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Teenus: - + Register Registreeri - + Domain name: Domeeni nimi: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Lubades need valikud, on oht, et <strong>kaotate täielikult</strong> oma .torrent failid! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Kui te lubate teise valiku (&ldquo;Ka siis, kui lisamine tühistatakse&rdquo;), <strong>kustutatakse</strong> .torrent fail isegi siis, kui te vajutate &ldquo;<strong>Tühista</strong>&rdquo; dialoogis &ldquo;Lisa torrent&rdquo; - + Select qBittorrent UI Theme file Vali qBittorrenti UI Teema fail - + Choose Alternative UI files location Vali Alternatiivse UI faili asukoht - + Supported parameters (case sensitive): Toetatud parameetrid (sõltuvalt suur- ja väiketähest): - + Minimized Minimeeritud - + Hidden Peidetud - + Disabled due to failed to detect system tray presence - + No stop condition is set. Pole peatamise tingimust määratud. - + Torrent will stop after metadata is received. Torrent peatatakse pärast meta-andmete saamist. - Torrents that have metadata initially aren't affected. - Torrentid, millel juba on metaandmed, ei kaasata. - - - + Torrent will stop after files are initially checked. Torrent peatatakse pärast failide kontrolli. - + This will also download metadata if it wasn't there initially. See laeb alla ka metadata, kui seda ennem ei olnud. - + %N: Torrent name %N: Torrenti nimi - + %L: Category %L: Kategooria - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Salvestamise asukoht - + %C: Number of files %C: Faile on kokku - + %Z: Torrent size (bytes) %Z: Torrenti suurus (baiti) - + %T: Current tracker %T: Praegune jälitaja - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Vihje: ümbritsege parameeter jutumärkidega, et vältida teksti katkestamist tühimikes (nt "%N"). - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + Prooviti saata e-kiri. Kontrollige postkasti, et kas saabus edukalt + + + (None) (Puudub) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate Sertifikaat: - + Select certificate Vali sertifikaat - + Private key Privaatne võti - + Select private key Vali privaatne võti - + WebUI configuration failed. Reason: %1 WebUI konfigureerimine nurjus. Selgitus: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 on soovitatud parimaks Windowsi tumeda režiimi ühildusega + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + Tume + + + + Light + Light color scheme + Hele + + + + System + System color scheme + + + + Select folder to monitor Vali kaust mida monitoorida - + Adding entry failed Kirje lisamine nurjus - + The WebUI username must be at least 3 characters long. WebUI kasutajanimi pikkus peab olema vähemalt 3 tähemärki. - + The WebUI password must be at least 6 characters long. WebUI parooli pikkus peab olema vähemalt 6 tähemärki. - + Location Error Asukoha viga - - + + Choose export directory Vali ekspordi sihtkoht - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Sildid (eraldatud komaga) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Vali salvestamise sihtkoht - + Torrents that have metadata initially will be added as stopped. - + Torrentid, millel on metaandmed, lisatakse peatutuna. - + Choose an IP filter file Vali IP filtri fail - + All supported filters Kõik toetatud filtrid - + The alternative WebUI files location cannot be blank. Alternatiivse WebUI faili asukoht ei saa olla tühi. - + Parsing error Analüüsimise viga - + Failed to parse the provided IP filter - + Successfully refreshed Edukalt värskendatud - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Preferences Eelistused - + Time Error Aja viga - + The start time and the end time can't be the same. Alguse ja lõpu aeg ei tohi olla samad. - - + + Length Error Pikkuse viga @@ -7317,241 +7746,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Tundmatu - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection Sissetulev ühendus - + Peer from DHT DHT partner - + Peer from PEX - + Peer from LSD - + Encrypted traffic Krüpteeritud liiklus - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Riik/Regioon - + IP/Address IP/Aadress - + Port Port - + Flags Lipud - + Connection Ühendus - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Edenemine - + Down Speed i.e: Download speed Alla Kiirus - + Up Speed i.e: Upload speed Üles Kiirus - + Downloaded i.e: total data downloaded Allalaetud - + Uploaded i.e: total data uploaded Üleslaaditud - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Seotus - + Files i.e. files that are being downloaded right now Failid - + Column visibility Veeru nähtavus - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule - + Add peers... Lisa partnereid... - - + + Adding peers Lisan partnereid - + Some peers cannot be added. Check the Log for details. Mõnda partnerit ei saa lisada. Vaata lisainfot Log failist. - + Peers are added to this torrent. Partnerid on lisatud sellele torrentile. - - + + Ban peer permanently Keela partner lõplikult - + Cannot add peers to a private torrent Ei saa lisada partnereid privaatsetele torrentitele - + Cannot add peers when the torrent is checking Partnereid ei saa lisada, kui torrentit kontrollitakse - + Cannot add peers when the torrent is queued Partnereid ei saa lisada, kui torrent on ootejärjekorras - + No peer was selected Ühtegi partnerit ei valitud - + Are you sure you want to permanently ban the selected peers? Kindel, et soovid lõplikult keelata valitud partnereid? - + Peer "%1" is manually banned Partner "%1" on manuaalselt keelatud - + N/A Puudub - + Copy IP:port Kopeeri IP:port @@ -7569,7 +8003,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Nimekiri partnerite lisamiseks (üks IP rea kohta): - + Format: IPv4:port / [IPv6]:port Formaat: IPv4:port / [IPv6]:port @@ -7610,27 +8044,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Failid selles tükis: - + File in this piece: Fail selles tükis: - + File in these pieces: Fail nendes tükkides: - + Wait until metadata become available to see detailed information Oota kuni metadata on saadaval, et näha detailset infot - + Hold Shift key for detailed information Hoia Shift klahvi detailsema info jaoks @@ -7643,58 +8077,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Otsi pistikprogramme - + Installed search plugins: - + Name Nimi - + Version Versioon - + Url Url - - + + Enabled Lubatud - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Hoiatus: Veenduge, et järgite oma riigi autoriõiguste seadusi, enne torrentite allalaadimist siit otsingu mootorite abil. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installi uus - + Check for updates Kontrolli uuendusi - + Close Sulge - + Uninstall Desinstalli @@ -7783,7 +8217,7 @@ Need pistikprogrammid olid välja lülitatud. All your plugins are already up to date. - + Kõik teie plugin'ad on juba uusimad. @@ -7811,101 +8245,68 @@ Need pistikprogrammid olid välja lülitatud. Plugin source - + Plugin'a allikas - + Search plugin source: - + Local file Lokaalne fail - + Web link Veebi link - - PowerManagement - - - qBittorrent is active - qBittorrent on aktiivne - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Antud failid, mis on torrentil "%1", toetatavad eelvaatamist, palun valige üks neist: - + Preview Eelvaade - + Name Nimi - + Size Suurus - + Progress Edenemine - + Preview impossible Eelvade on võimatu - + Sorry, we can't preview this file: "%1". Vabandust, ei saa me teha faili eelvaadet: "%1". - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule @@ -7918,27 +8319,27 @@ Need pistikprogrammid olid välja lülitatud. Private::FileLineEdit - + Path does not exist Asukohta pole olemas - + Path does not point to a directory Asukoht ei viita kausta - + Path does not point to a file Asukoht ei viita failile - + Don't have read permission to path Puudub asukoha lugemisõigus - + Don't have write permission to path Puudub asukoha kirjutamisõigus @@ -7979,12 +8380,12 @@ Need pistikprogrammid olid välja lülitatud. PropertiesWidget - + Downloaded: Allalaetud: - + Availability: Saadavus: @@ -7999,53 +8400,53 @@ Need pistikprogrammid olid välja lülitatud. Ülekandmine - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktiivne aeg: - + ETA: - + Uploaded: Üleslaaditud: - + Seeds: Seemneid: - + Download Speed: Allalaadimise Kiirus: - + Upload Speed: Üleslaadimise Kiirus: - + Peers: Partnereid: - + Download Limit: Allalaadimise Limiit: - + Upload Limit: Üleslaadimise Limiit: - + Wasted: Raisatud: @@ -8055,193 +8456,220 @@ Need pistikprogrammid olid välja lülitatud. Ühendusi: - + Information Informatsioon - + Info Hash v1: Info räsi v1: - + Info Hash v2: Info räsi v2: - + Comment: Kommentaar: - + Select All Vali kõik - + Select None Eemalda valik - + Share Ratio: Jagamise Suhe: - + Reannounce In: - + Last Seen Complete: Viimati Nähtud Lõpetamas: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + Populaarsus: + + + Total Size: Kogu suurus: - + Pieces: Tükke: - + Created By: Looja: - + Added On: Lisatud: - + Completed On: Lõpetatud: - + Created On: Loodud: - + + Private: + Privaatne: + + + Save Path: Salvestamise Asukoht: - + Never Mitte kunagi - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (olemas %3) - - + + %1 (%2 this session) %1 (%2 see seanss) - - + + + N/A Puudub - + + Yes + Jah + + + + No + Ei + + + %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 maks.) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 on kokku) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 kesk.) - - New Web seed - Uus veebi-seeme + + Add web seed + Add HTTP source + - - Remove Web seed - Eemalda veebi-seeme + + Add web seed: + - - Copy Web seed URL - Kopeeri veebi-seemne URL + + + This web seed is already in the list. + - - Edit Web seed URL - Muuda veebi-seemne URL-i - - - + Filter files... Filtreeri failid... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Kiiruse graafikud on väljalülitatud - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Uus URL-seeme - - - - New URL seed: - Uus URL-seeme: - - - - - This URL seed is already in the list. - URL-seeme on juba nimekirjas. - - - + Web seed editing Veebi-seemne muutmine - + Web seed URL: Veebi-seemne URL: @@ -8249,33 +8677,33 @@ Need pistikprogrammid olid välja lülitatud. RSS::AutoDownloader - - + + Invalid data format. Sobimatu andmete formaat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Sobimatu andmete formaat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8283,22 +8711,22 @@ Need pistikprogrammid olid välja lülitatud. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Ei saanud allalaadida RSS-voogu '%1'. Selgitus: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-voog kohas '%1' on uuendatud. Lisatud %2 uut artiklit. - + Failed to parse RSS feed at '%1'. Reason: %2 Ei saanud analüüsida RSS-voogu '%1'. Selgitus: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-voog kohas '%1' on edukalt alla laaditud. Hakkame seda analüüsima. @@ -8334,12 +8762,12 @@ Need pistikprogrammid olid välja lülitatud. RSS::Private::Parser - + Invalid RSS feed. Vigane RSS-voog - + %1 (line: %2, column: %3, offset: %4). @@ -8347,103 +8775,144 @@ Need pistikprogrammid olid välja lülitatud. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. On juba olemas sama URL-iga RSS-voog: '%1'. - + Feed doesn't exist: %1. Voogu pole olemas: %1. - + Cannot move root folder. Juurkausta ei saa liigutada. - - + + Item doesn't exist: %1. Seda pole olemas: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Juurkausta ei saa kustutada. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nurjus RSS-voogu laadimine. Voog: "%1". Selgitus: URL on vajalik. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - Ei saanud RSS-voogu laadida. Voog: "%1". Põhjus: UID on kehtetu. + Ei saanud RSS-voogu laadida. Voog: "%1". Selgitus: UID on kehtetu. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Leitakse dubleeritud RSS-voog. UID: "%1". Viga: Konfiguratsioon näib olevat rikutud. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. Vigane RSS nimekiri, seda ei kuvata. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. Ülemkausta ei eksisteeri: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Voogu pole olemas: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL + + + + Refresh interval: + Värskendamise intervall: + + + + sec + sek + + + + Default + Vaikimisi + + RSSWidget @@ -8463,8 +8932,8 @@ Need pistikprogrammid olid välja lülitatud. - - + + Mark items read Märgi need loetuks @@ -8489,132 +8958,115 @@ Need pistikprogrammid olid välja lülitatud. Torrentid: (topelt-klõps allalaadimiseks) - - + + Delete Kustuta - + Rename... Ümbernimeta... - + Rename Ümbernimeta - - + + Update Uuenda - + New subscription... Uus tellimus... - - + + Update all feeds Värskenda kõik feedid - + Download torrent Lae alla torrent - + Open news URL Ava uudiste URL - + Copy feed URL Kopeeri feedi URL - + New folder... Uus kaust... - - Edit feed URL... - Muuda voogu URLi... + + Feed options... + - - Edit feed URL - Muuda voogu URLi - - - + Please choose a folder name Palun valige kausta nimi - + Folder name: Kausta nimi: - + New folder Uus kaust - - - Please type a RSS feed URL - Palun sisesta RSS-voo URL - - - - - Feed URL: - Feedi URL: - - - + Deletion confirmation Kustutamise kinnitamine - + Are you sure you want to delete the selected RSS feeds? Kindel, et soovite kustutada valitud RSS-vood? - + Please choose a new name for this RSS feed Palun valige RSS-voole uus nimi - + New feed name: Uus feedi nimi: - + Rename failed Ümbernimetamine nurjus - + Date: Kuupäev: - + Feed: Voog: - + Author: Autor: @@ -8622,38 +9074,38 @@ Need pistikprogrammid olid välja lülitatud. SearchController - + Python must be installed to use the Search Engine. Python peab olema installitud, et kasutada otsingu mootorit. - + Unable to create more than %1 concurrent searches. Ei saa samaaegselt teha rohkem kui %1 otsingut. - - + + Offset is out of range - + All plugins are already up to date. Kõik plugin'ad on juba uusimad. - + Updating %1 plugins Uuendan %1 plugin'aid - + Updating plugin %1 Uuendan plugin'at %1 - + Failed to check for plugin updates: %1 @@ -8728,132 +9180,142 @@ Need pistikprogrammid olid välja lülitatud. Suurus: - + Name i.e: file name Nimi - + Size i.e: file size Suurus - + Seeders i.e: Number of full sources Jagajad - + Leechers i.e: Number of partial sources Kaanid - - Search engine - Otsingumootor - - - + Filter search results... Filtreeri otsingu tulemused... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Tulemused (näitab <i>%1</i> <i>%2</i>-st): - + Torrent names only Torrenti nimed ainult - + Everywhere Kõikjal - + Use regular expressions Kasuta regulaarseid väljendeid - + Open download window Ava allalaadimise aken - + Download Lae alla - + Open description page Ava selgituste leht - + Copy Kopeeri - + Name Nimi - + Download link Allalaadimise link - + Description page URL Selgituste lehe URL - + Searching... Otsin... - + Search has finished Otsing on lõpetatud - + Search aborted Otsing tühistati - + An error occurred during search... Viga ilmnes otsinguga... - + Search returned no results Otsingul ei leitud mittemidagi - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Veergude nähtavus - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule @@ -8861,104 +9323,104 @@ Need pistikprogrammid olid välja lülitatud. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. Plugin'at ei toetata. - + Plugin %1 has been successfully updated. Plugin %1 on edukalt uuendatud. - + All categories Kõik kategooriad - + Movies Filmid - + TV shows TV saated - + Music Muusika - + Games Mängud - + Anime Anime - + Software Tarkvara - + Pictures Pildid - + Books Raamatud - + Update server is temporarily unavailable. %1 Uuenduste server on ajutiselt kinni. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" on vana, uuendan versioonile %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8968,113 +9430,144 @@ Need pistikprogrammid olid välja lülitatud. - - - - Search Otsi - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... Otsi plugin'aid... - + A phrase to search for. Fraas mida otsida. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Näidis: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins - + Only enabled Ainult lubatud - + + + Invalid data format. + Sobimatu andmete formaat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab Sulge sakk - + Close all tabs Sulge kõik sakid - + Select... Vali... - - - + + Search Engine Otsingu Mootor - + + Please install Python to use the Search Engine. Palun installige Python, et kasutada otsingu mootorit. - + Empty search pattern Tühjenda otsingu väli - + Please type a search pattern first Palun sisestage esmalt otsingumuster - + + Stop Stop + + + SearchWidget::DataStorage - - Search has finished - Otsing on lõpetatud + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Otsimine nurjus + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9187,34 +9680,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Üleslaadimine: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Allalaadimine: - + Alternative speed limits Alternatiivsed kiiruse limiidid @@ -9406,32 +9899,32 @@ Click the "Search plugins..." button at the bottom right of the window Keskmine aeg ootejärjekorras: - + Connected peers: Ühenduses partnerid: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: Kogu puhvri suurus: @@ -9446,12 +9939,12 @@ Click the "Search plugins..." button at the bottom right of the window Ootel I/O toimingud: - + Write cache overload: Kirjutamise vahemälu ülekoormus: - + Read cache overload: Lugemise vahemälu ülekoormus: @@ -9470,51 +9963,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Ühenduse olek: - - + + No direct connections. This may indicate network configuration problems. Ei ole otseühendusi. See viitab interneti sätete probleemile. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 sõlme - + qBittorrent needs to be restarted! qBittorrentit on vaja taaskäivitada! - - - + + + Connection Status: Ühenduse Olek: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Võrguühenduseta. See tähendab tavaliselt, et qBittorrent ei suutnud valitud pordil sissetulevaid ühendusi kuulata. - + Online Võrgus - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klõpsake, et lülituda alternatiivsetele kiiruspiirangutele - + Click to switch to regular speed limits Klõpsake, et lülituda tavapärastele kiiruspiirangutele @@ -9544,13 +10063,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) + Running (0) - Paused (0) - Pausitud (0) + Stopped (0) + @@ -9612,36 +10131,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Lõpetatud (%1) + + + Running (%1) + + - Paused (%1) - Pausitud (%1) + Stopped (%1) + + + + + Start torrents + Käivita torrentid + + + + Stop torrents + Peata torrentid Moving (%1) Teisaldakse (%1) - - - Resume torrents - Jätka torrentitega - - - - Pause torrents - Pausi torrentid - Remove torrents Eemalda torrentid - - - Resumed (%1) - - Active (%1) @@ -9713,31 +10232,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Eemalda kasutamata sildid - - - Resume torrents - Jätka torrentitega - - - - Pause torrents - Pausi torrentid - Remove torrents Eemalda torrentid - - New Tag - Uus Silt + + Start torrents + Käivita torrentid + + + + Stop torrents + Peata torrentid Tag: Silt: + + + Add tag + + Invalid tag name @@ -9884,32 +10403,32 @@ Palun vali teine nimi ja proovi uuesti. TorrentContentModel - + Name Nimi - + Progress Edenemine - + Download Priority Allalaadimise Prioriteet - + Remaining Järelejäänud - + Availability Saadavus - + Total Size Kogu suurus @@ -9954,98 +10473,98 @@ Palun vali teine nimi ja proovi uuesti. TorrentContentWidget - + Rename error Viga ümbernimetamisel - + Renaming Ümbernimetatakse - + New name: Uus nimi: - + Column visibility Veergude nähtavus - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule - + Open Ava - + Open containing folder Ava seda sisaldav kaust - + Rename... Ümbernimeta... - + Priority Prioriteet - - + + Do not download Ära lae alla - + Normal Tavaline - + High Kõrge - + Maximum Maksimum - + By shown file order Failide järjekorra järgi - + Normal priority Tava prioriteet - + High priority Kõrge prioriteet - + Maximum priority Maksimum prioriteet - + Priority by shown file order Prioriteet failide järjekorra järgi @@ -10053,19 +10572,19 @@ Palun vali teine nimi ja proovi uuesti. TorrentCreatorController - + Too many active tasks - + Liiga palju aktiivseid toiminguid - + Torrent creation is still unfinished. - + Torrenti loomine pole veel valmis. - + Torrent creation failed. - + Torrenti loomine nurjus. @@ -10092,13 +10611,13 @@ Palun vali teine nimi ja proovi uuesti. - + Select file Vali fail - + Select folder Vali kaust @@ -10173,87 +10692,83 @@ Palun vali teine nimi ja proovi uuesti. Väljad - + You can separate tracker tiers / groups with an empty line. Saate eraldada jälitajate tasandeid / gruppe tühja reaga. - + Web seed URLs: Veebi-seemne URL-id: - + Tracker URLs: Jälgija URL-id: - + Comments: Kommentaarid: - + Source: Allikas: - + Progress: Edenemine: - + Create Torrent Loo Torrent - - + + Torrent creation failed - Torrenti loomine ebaõnnestus + Torrenti loomine nurjus - + Reason: Path to file/folder is not readable. Selgitus: faili/kausta asukoht pole loetav. - + Select where to save the new torrent Vali kuhu salvestada uus torrent - + Torrent Files (*.torrent) Torrenti Failid (*.torrent) - Reason: %1 - Selgitus: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" Selgitus: "%1" - + Add torrent failed Torrenti lisamine nurjus - + Torrent creator Torrenti looja - + Torrent created: Torrent loodud: @@ -10261,32 +10776,32 @@ Palun vali teine nimi ja proovi uuesti. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. Jälgitava kausta asukoht ei tohi olla tühi. - + Watched folder Path cannot be relative. @@ -10294,44 +10809,31 @@ Palun vali teine nimi ja proovi uuesti. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 Magnet fail liiga suur. Fail: %1 - + Failed to open magnet file: %1 Nurjus magneti avamine: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Vigased metaandmed - - TorrentOptionsDialog @@ -10360,173 +10862,161 @@ Palun vali teine nimi ja proovi uuesti. Kasuta muud asukohta poolikutel torrentitel - + Category: Kategooria: - - Torrent speed limits - Torrenti kiiruse limiidid + + Torrent Share Limits + - + Download: Allalaadimine: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Need ei ületa üleüldiseid limiite - + Upload: Üleslaadimine: - - Torrent share limits - Torrenti jagamise limiidid - - - - Use global share limit - Kasuta üleüldist jagamise limiiti - - - - Set no share limit - Ilma jagamise piiranguta - - - - Set share limit to - Määra jagamise limiit - - - - ratio - suhe - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Keela DHT sellel torrentil - + Download in sequential order Järjestikuses allalaadimine - + Disable PeX for this torrent Keela PeX sellel torrentil - + Download first and last pieces first Lae alla esmalt esimene ja viimane tükk - + Disable LSD for this torrent Keela LSD sellel torrentil - + Currently used categories Hetkel kasutatud kategooriad - - + + Choose save path Vali salvestamise asukoht - + Not applicable to private torrents Ei kehti privaatsetele torrentitele - - - No share limit method selected - - - - - Please select a limit method first - Palun ennem valige limiidi meetod - TorrentShareLimitsWidget - - - + + + + Default - Vaikimisi + Vaikimisi + + + + + + Unlimited + Piiramatu - - - Unlimited - - - - - - + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + Peata torrent + + + + Remove torrent + Eemalda torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Luba super jagamise režiim torrentile + + + Ratio: @@ -10539,32 +11029,32 @@ Palun vali teine nimi ja proovi uuesti. Torrenti sildid - - New Tag - Uus Silt + + Add tag + - + Tag: Silt: - + Invalid tag name Sobimatu sildi nimi - + Tag name '%1' is invalid. Sildi nimi '%1' on sobimatu. - + Tag exists Silt on juba olemas - + Tag name already exists. Sildi nimi on juba olemas. @@ -10572,115 +11062,130 @@ Palun vali teine nimi ja proovi uuesti. TorrentsController - + Error: '%1' is not a valid torrent file. Viga: '%1' ei ole sobiv torrenti fail. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded Torrenti metadata ei ole veel allalaaditud - + File IDs must be integers - + File ID is not valid Faili ID pole sobilik - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty Salvestamise asukoht ei tohi olla tühimik - - + + Cannot create target directory Sihtkataloogi ei saa luua - - + + Category cannot be empty Kategooria ei saa olla tühi - + Unable to create category Ei saanud luua kategooriat - + Unable to edit category Ei saanud muuta kategooriat - + Unable to export torrent file. Error: %1 Ei saa eksportida torrenti faili. Viga: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Ei saa kirjutada sihtkohta - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name Sobimatu torrenti nimi - - + + Incorrect category name Sobimatu kategooria nimi @@ -10711,196 +11216,191 @@ Palun vali teine nimi ja proovi uuesti. TrackerListModel - + Working Töötab - + Disabled Väljalülitatud - + Disabled for this torrent Keelatud sellel torrentil - + This torrent is private See torrent on privaatne - + N/A Puudub - + Updating... Uuendan... - + Not working Ei tööta - + Tracker error Jälitaja viga - + Unreachable - + Not contacted yet Pole veel ühendust võetud - - Invalid status! - - - - - URL/Announce endpoint - + + Invalid state! + Sobimatu olek! - Tier + URL/Announce Endpoint - - - Protocol - Protokoll - - Status - Olek - - - - Peers - Partnerid - - - - Seeds - Seemneid - - - - Leeches - Kaanid - - - - Times Downloaded - Kordi allalaaditud - - - - Message - Teavitus - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 - v%1 + + Min Announce + + + + + Tier + + + + + Status + Olek + + + + Peers + Partnerid + + + + Seeds + Seemneid + + + + Leeches + Kaanid + + + + Times Downloaded + Kordi allalaaditud + + + + Message + Teavitus TrackerListWidget - + This torrent is private See torrent on privaatne - + Tracker editing Jälitaja muutmine - + Tracker URL: Jälitaja URL: - - + + Tracker editing failed Jälitaja muutmine nurjus - + The tracker URL entered is invalid. Sisestatud jälitaja URL on sobimatu. - + The tracker URL already exists. See jälitaja URL on juba olemas. - + Edit tracker URL... Muuda jälgija URL-i... - + Remove tracker Eemalda jälitaja - + Copy tracker URL Kopeeri jälitaja URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule - + Add trackers... Lisa jälitajaid... - + Column visibility Veergude nähtavus @@ -10918,37 +11418,37 @@ Palun vali teine nimi ja proovi uuesti. Nimekiri jälitajate lisamiseks (üks rea kohta): - + µTorrent compatible list URL: µTorrentiga ühilduva nimekirja URL: - + Download trackers list Lae alla jälitajate nimekiri - + Add Lisa - + Trackers list URL error Jälitajate nimekirja URL viga - + The trackers list URL cannot be empty Jälitajate nimekirja URL ei saa olla tühi - + Download trackers list error Jälitajate nimekirja allalaadimise viga - + Error occurred when downloading the trackers list. Reason: "%1" Toimus viga jälitajate nimekirja allalaadimisel. Selgitus: "%1" @@ -10956,62 +11456,62 @@ Palun vali teine nimi ja proovi uuesti. TrackersFilterWidget - + Warning (%1) Hoiatus (%1) - + Trackerless (%1) Jälitajateta (%1) - + Tracker error (%1) Jälitaja viga (%1) - + Other error (%1) Muu viga (%1) - + Remove tracker Eemalda jälitaja - - Resume torrents - Jätka torrentitega + + Start torrents + Käivita torrentid - - Pause torrents - Pausi torrentid + + Stop torrents + Peata torrentid - + Remove torrents Eemalda torrentid - + Removal confirmation Eemaldamise kinnitamine - + Are you sure you want to remove tracker "%1" from all torrents? Kindel, et soovite eemaldada jälitaja "%1" kõikidelt torrentitelt? - + Don't ask me again. Ära enam küsi. - + All (%1) this is for the tracker filter Kõik (%1) @@ -11020,7 +11520,7 @@ Palun vali teine nimi ja proovi uuesti. TransferController - + 'mode': invalid argument @@ -11112,11 +11612,6 @@ Palun vali teine nimi ja proovi uuesti. 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. Kontrollin jätkamise andmeid - - - Paused - Pausitud - Completed @@ -11140,220 +11635,252 @@ Palun vali teine nimi ja proovi uuesti. Vigane - + Name i.e: torrent name Nimi - + Size i.e: torrent size Suurus - + Progress % Done Edenemine - + + Stopped + + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Olek - + Seeds i.e. full sources (often untranslated) Seemneid - + Peers i.e. partial sources (often untranslated) Partnerid - + Down Speed i.e: Download speed Kiirus alla - + Up Speed i.e: Upload speed Kiirus üles - + Ratio Share ratio Suhe - + + Popularity + Populaarsus + + + ETA i.e: Estimated Time of Arrival / Time left - + Category Kategooria - + Tags Sildid - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Lisatud - + Completed On Torrent was completed on 01/01/2010 08:00 Lõpetatud - + Tracker Jälitaja - + Down Limit i.e: Download limit Alla Limiit - + Up Limit i.e: Upload limit Üles Limiit - + Downloaded Amount of data downloaded (e.g. in MB) Allalaaditud - + Uploaded Amount of data uploaded (e.g. in MB) Üleslaaditud - + 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) - + Remaining Amount of data left to download (e.g. in MB) Järelejäänud - + Time Active - Time (duration) the torrent is active (not paused) - Aeg Aktiivne + Time (duration) the torrent is active (not stopped) + Aeg Aktiivne: - + + Yes + Jah + + + + No + Ei + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Lõpetatud - + Ratio Limit Upload share ratio limit Suhte Limiit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Viimati Nähtud Lõpetamas - + Last Activity Time passed since a chunk was downloaded/uploaded Viimati Aktiivne - + Total Size i.e. Size including unwanted data Kogu suurus - + Availability The number of distributed copies of the torrent Saadavus - + Info Hash v1 i.e: torrent info hash v1 - Info räsi v2: {1?} + - + Info Hash v2 i.e: torrent info hash v2 - Info räsi v2: {2?} + - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + Privaatne + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Puudub - + %1 ago e.g.: 1h 20m ago %1 tagasi - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) @@ -11362,339 +11889,319 @@ Palun vali teine nimi ja proovi uuesti. TransferListWidget - + Column visibility Veeru nähtavus - + Recheck confirmation Ülekontrollimise kinnitamine - + Are you sure you want to recheck the selected torrent(s)? Kindel, et soovid üle kontrollida valitud torrent(eid)? - + Rename Ümbernimeta - + New name: Uus nimi: - + Choose save path Vali salvestamise asukoht - - Confirm pause - Kinnitus, enne pausimist - - - - Would you like to pause all torrents? - Kas soovite pausile panna kõik torrentid? - - - - Confirm resume - Kinnitus, enne jätkamist - - - - Would you like to resume all torrents? - Kas soovite jätkata kõikide torrentitega? - - - + Unable to preview Ei saanud teha eelvaadet - + The selected torrent "%1" does not contain previewable files Valitud torrent "%1" ei sisalda eelvaadetavaid faile - + Resize columns Muuda veergude suurust - + Resize all non-hidden columns to the size of their contents Muuda kõikide mitte-peidetud veergude suurust sobitumaks vastavalt nende sisule - + Enable automatic torrent management Lülita sisse automaatne torrentite haldamine - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Oled kindel, et soovid sisselülitada automaatse torrenti halduse valitud torrenti(tele)? Nende torrentite asukohti võidakse muuta. - - Add Tags - Lisa silte - - - + Choose folder to save exported .torrent files Määra kaust kuhu salvestakse eksporditud .torrent failid - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Nurjus .torrent faili eksportimine. Torrent: "%1". Salvestuse asukoht: "%2". Selgitus: "%3" - + A file with the same name already exists Sama nimega fail on juba olemas - + Export .torrent file error Viga .torrent faili eksportimisega - + Remove All Tags Eemalda Kõik Sildid - + Remove all tags from selected torrents? Eemalda kõik sildid valitud torrentitelt? - + Comma-separated tags: Komaga eraldatud sildid: - + Invalid tag Sobimatu silt - + Tag name: '%1' is invalid Sildi nimi: '%1' on sobimatu - - &Resume - Resume/start the torrent - &Jätka - - - - &Pause - Pause the torrent - &Pane Pausile - - - - Force Resu&me - Force Resume/start the torrent - Sunni Jätka&ma - - - + Pre&view file... Fai&li eelvaade... - + Torrent &options... Torrenti &valikud... - + Open destination &folder Ava sihtkoha &kaust - + Move &up i.e. move up in the queue Liiguta &üles - + Move &down i.e. Move down in the queue Liiguta &alla - + Move to &top i.e. Move to top of the queue Liiguta kõige &üles - + Move to &bottom i.e. Move to bottom of the queue Liiguta täitsa &alla - + Set loc&ation... Määra a&sukoht... - + Force rec&heck Sunni üle&kontrolli - + Force r&eannounce - + &Magnet link &Magnet link - + Torrent &ID Torrenti &ID - + &Comment &Kommentaar - + &Name &Nimi - + Info &hash v1 Info &räsi v1 - + Info h&ash v2 Info r&äsi v2 - + Re&name... Üm&bernimeta... - + Edit trac&kers... Muuda j&älitajaid... - + E&xport .torrent... E&kspordi .torrent... - + Categor&y Kategoor&ia - + &New... New category... &Uus... - + &Reset Reset category - + Ta&gs Sil&did - + &Add... Add / assign multiple tags... &Lisa... - + &Remove All Remove all tags &Eemalda Kõik - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Järjekord - + &Copy &Kopeeri - + Exported torrent is not necessarily the same as the imported Eksporditud torrent ei ole täielikult sama mis imporditud - + Download in sequential order Järjestikuses allalaadimine - - Errors occurred when exporting .torrent files. Check execution log for details. + + Add tags - + + Errors occurred when exporting .torrent files. Check execution log for details. + Ilmnesid vead .torrent failide eksportimisega. Kontrollige toimingute logi, et näha lisainfot. + + + + &Start + Resume/start the torrent + &Käivita + + + + Sto&p + Stop the torrent + Pe&ata + + + + Force Star&t + Force Resume/start the torrent + Sunni Käivita&ma + + + &Remove Remove the torrent &Eemalda - + Download first and last pieces first Lae alla esmalt esimene ja viimane tükk - + Automatic Torrent Management Automaatne Torrenti Haldamine - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automaatne režiim tähendab, et mitmed torrenti omadused (sh salvestamise koht) määratakse seostatud kategooriaga - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Super jagamise režiim @@ -11739,28 +12246,28 @@ Palun vali teine nimi ja proovi uuesti. Ikooni ID - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. Ei saanud eemaldada ikooni faili. Fail: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11768,7 +12275,12 @@ Palun vali teine nimi ja proovi uuesti. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11799,20 +12311,21 @@ Palun vali teine nimi ja proovi uuesti. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11820,32 +12333,32 @@ Palun vali teine nimi ja proovi uuesti. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11937,72 +12450,72 @@ Palun vali teine nimi ja proovi uuesti. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Lubamatu failitüüp, lubatud on ainult tavaline fail. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Kasutatakse integreeritud WebUI'd. - + Using custom WebUI. Location: "%1". - + Kasutatakse kohandatud WebUI'd. Asukoht: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + WebUI tõlge valitud lokaalile (%1) on edukalt laetud. - + Couldn't load WebUI translation for selected locale (%1). - + Ei saanud laadida WebUI tõlget valitud lokaalile (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Puudub eraldaja ':' WebUI kohandatud HTTP päises: "%1" - + Web server error. %1 Veebi serveri viga. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12010,125 +12523,133 @@ Palun vali teine nimi ja proovi uuesti. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful WebUI: HTTPS seadistamine edukas - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Tundmatu viga + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1t %2m - + %1d %2h e.g: 2 days 10 hours %1p %2t - + %1y %2d e.g: 2 years 10 days %1a %2p - - + + Unknown Unknown (size) Tundmatu - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent lülitab arvuti välja, kuna kõik allalaadimised on valmis. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_eu.ts b/src/lang/qbittorrent_eu.ts index 5f46bdc5a..d57bfcc7c 100644 --- a/src/lang/qbittorrent_eu.ts +++ b/src/lang/qbittorrent_eu.ts @@ -14,77 +14,77 @@ Honi buruz - + Authors Egileak - + Current maintainer Oraingo mantentzailea - + Greece Grezia - - + + Nationality: Naziotasuna: - - + + E-mail: Post@: - - + + Name: Izena: - + Original author Jatorrizko egilea - + France Frantzia - + Special Thanks Esker Bereziak - + Translators Itzultzaileak - + License Baimena - + Software Used Erabilitako Softwarea - + qBittorrent was built with the following libraries: qBittorrent hurrengo liburutegiekin eraiki da: - + Copy to clipboard - + Kopiatu arbelera @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 qBittorrent proiektua + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 qBittorrent proiektua @@ -166,15 +166,10 @@ Gordeta - + Never show again Ez erakutsi berriro - - - Torrent settings - Torrent ezarpenak - Set as default category @@ -191,12 +186,12 @@ Hasi torrenta - + Torrent information Torrentaren argibideak - + Skip hash check Jauzi hash egiaztapena @@ -205,6 +200,11 @@ Use another path for incomplete torrent Erabili beste bide-izena bukatu gabeko torrententzat + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Gelditze-egoera: - - + + None Bat ere ez - - + + Metadata received Metadatuak jaso dira - + Torrents that have metadata initially will be added as stopped. - + Hasieran metadatuak dituzten torrentak geldituta gehituko dira. - - + + Files checked Fitxategiak egiaztatuta - + Add to top of queue Gehitu ilararen goiko aldera. - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Egiaztatzen denean, .torrent fitxategia ez da ezabatuko Aukerak elkarrizketako "Deskargatu" orrialdeko konfigurazioaren arabera - + Content layout: Edukiaren antolakuntza: - + Original Jatorrizkoa - + Create subfolder Sortu azpiagiritegia - + Don't create subfolder Ez sortu azpiagiritegia - + Info hash v1: Info hash v1: - + Size: Neurria: - + Comment: Aipamena: - + Date: Eguna: @@ -329,151 +329,147 @@ Gogoratu erabilitako azken gordetze helburua - + Do not delete .torrent file Ez ezabatu .torrent agiria - + Download in sequential order Jeitsi hurrenkera sekuentzialean - + Download first and last pieces first Jeitsi lehen eta azken atalak lehenik - + Info hash v2: Info hash v2: - + Select All Hautatu denak - + Select None Ez hautatu ezer - + Save as .torrent file... Gorde .torrent agiri bezala... - + I/O Error S/I Akatsa - + Not Available This comment is unavailable Ez dago Eskuragarri - + Not Available This date is unavailable Ez dago Eskuragarri - + Not available Eskuraezina - + Magnet link Magnet lotura - + Retrieving metadata... Metadatuak eskuratzen... - - + + Choose save path Hautatu gordetze helburua - + No stop condition is set. Ez da gelditze-egoerarik ezarri. - + Torrent will stop after metadata is received. Torrenta gelditu egingo da metadatuak jaso ondoren. - Torrents that have metadata initially aren't affected. - Ez du eraginik dagoeneko metadatuak dituzten torrent-etan. - - - + Torrent will stop after files are initially checked. Torrenta gelditu egingo da fitxategiak aztertu ondoren. - + This will also download metadata if it wasn't there initially. - + Honek metadatuak deskargatu ditu ez bazeuden hasieratik. - - + + N/A E/G - + %1 (Free space on disk: %2) %1 (Diskako toki askea: %2) - + Not available This size is unavailable. Ez dago Eskuragarri - + Torrent file (*%1) Torrent fitxategia (*%1) - + Save as torrent file Gorde torrent agiri bezala - + Couldn't export torrent metadata file '%1'. Reason: %2. Ezin izan da '%1' torrent metadatu fitxategia esportatu. Arrazoia: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Ezin da v2 torrenta sortu bere datuak guztiz deskargatu arte. - + Filter files... Iragazi agiriak... - + Parsing metadata... Metadatuak aztertzen... - + Metadata retrieval complete Metadatu eskurapena osatuta @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Torrenta deskargatzen... Iturria: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Torrenta gehitzeak huts egin du. Irurria: "%1". Arrazoia: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Aztarnarien fusioa desgaituta dago - + Trackers cannot be merged because it is a private torrent - + Ezin dira aztarnariak fusionatu torrenta pribatua delako - + Trackers are merged from new source + Aztarnariak fusionatu dira iturri berritik + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -536,7 +532,7 @@ Note: the current defaults are displayed for reference. - + Oharra: uneko balio lehenetsiak erreferentzia gisa erakusten dira. @@ -596,7 +592,7 @@ Torrent share limits - Torrentaren elkarbanatze mugak + Torrentaren elkarbanatze mugak @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Berregiaztatu torrentak osatutakoan - - + + ms milliseconds sm - + Setting Ezarpena - + Value Value set for this setting Balioa - + (disabled) (ezgaituta) - + (auto) (berez) - + + min minutes min - + All addresses Helbide guztiak - + qBittorrent Section qBittorrent Atala - - + + Open documentation Ireki agiritza - + All IPv4 addresses IPv4 helbide guztiak - + All IPv6 addresses IPv6 helbide guztiak - + libtorrent Section libtorrent Atala - + Fastresume files - + Fastresume fitxategiak - + SQLite database (experimental) SQLite datu-basea (esperimentala) - + Resume data storage type (requires restart) Berrekite datu biltegi-mota (berrabiaraztea beharrezkoa) - + Normal Arrunta - + Below normal Arruntetik behera - + Medium Ertaina - + Low Apala - + Very low Oso apala - + Physical memory (RAM) usage limit - + Memoria fisikoaren (RAM) erabilera-muga - + Asynchronous I/O threads S/I hari asinkronoak - + Hashing threads Hash hariak - + File pool size Agiri multzoaren neurria - + Outstanding memory when checking torrents Gain oroimena torrentak egiaztatzean - + Disk cache Diska katxea - - - - + + + + + s seconds seg - + Disk cache expiry interval Diska katxe muga tartea - + Disk queue size - + Diskoaren ilara tamaina - - + + Enable OS cache Gaitu SE katxea - + Coalesce reads & writes Batu irakur eta idatzi - + Use piece extent affinity Erabili atalaren maila kidetasuna - + Send upload piece suggestions Bidali igoera atal iradokizunak - - - - - - 0 (disabled) - - - - - Save resume data interval [0: disabled] - How often the fastresume file is saved. - - - - - Outgoing ports (Min) [0: disabled] - - - - - Outgoing ports (Max) [0: disabled] - - - 0 (permanent lease) - + + + + + 0 (disabled) + 0 (desgaituta) + Save resume data interval [0: disabled] + How often the fastresume file is saved. + Gorde berrekintze-datu tartea: [0: desgaituta] + + + + Outgoing ports (Min) [0: disabled] + Irteera atakak (Gutx) [0: desgaituta] + + + + Outgoing ports (Max) [0: disabled] + Irteera atakak (Geh) [0: desgaituta] + + + + 0 (permanent lease) + 0 (alokatze iraunkorra) + + + UPnP lease duration [0: permanent lease] - + UPnP esleipenaren iraupena [0: esleipen iraunkorra] - + Stop tracker timeout [0: disabled] - + Jarraitzailearen denbora-muga gelditzeko: [0: desgaituta] - + Notification timeout [0: infinite, -1: system default] - + Jakinarazpenen denbora-muga [0: infinitua, -1: sistemak lehenetsia] - + Maximum outstanding requests to a single peer - + Gehienezko eskaerak parekide bakar bati - - - - - + + + + + KiB KiB - + (infinite) - + (infinitua) - + (system default) - + (sistemak lehenetsia) - + + Delete files permanently + Ezabatu fitxategiak betirako + + + + Move files to trash (if possible) + Mugitu fitxategiak zakarrontzira (posible bada) + + + + Torrent content removing mode + Torrent edukiaren kentze modua + + + This option is less effective on Linux Aukera honek eragin gutxiago du Linuxen - + Process memory priority - + Prozesuen memoria prioritatea - + Bdecode depth limit - + Bdecode sakoneraren muga - + Bdecode token limit - + Bdecode token muga - + Default Lehenetsia - + Memory mapped files Memoriara esleitutako fitxategiak - + POSIX-compliant POSIX betetzen du - + + Simple pread/pwrite + pread/pwrite sinplea + + + Disk IO type (requires restart) - + Diskoaren SI mota (berrabiarazi behar da) - - + + Disable OS cache - - - - - Disk IO read mode - - - - - Write-through - - - - - Disk IO write mode - + Desgaitu SE cachea + Disk IO read mode + Diskoaren SI irakurtze modua + + + + Write-through + Igarotze-idazketa + + + + Disk IO write mode + Diskoaren SI idazte modua + + + Send buffer watermark Bidali buffer urmarka - + Send buffer low watermark Bidali buffer apal urmarka - + Send buffer watermark factor Bidali buffer urmarka ezaugarria - + Outgoing connections per second Irteerako konexioak segundoko - - + + 0 (system default) - + 0 (sistemak lehenetsia) - + Socket send buffer size [0: system default] - + Socket bidaltzeko buffer tamaina [0: sistemak lehenetsita] - + Socket receive buffer size [0: system default] - + Socket jasotzeko buffer tamaina [0: sistemak lehenetsita] - + Socket backlog size Socket atzera-oharraren neurria - - .torrent file size limit + + Save statistics interval [0: disabled] + How often the statistics file is saved. - + + .torrent file size limit + .torrent fitxategiaren tamaina muga + + + Type of service (ToS) for connections to peers Zerbitzu motak (ToS) konexio parekoentzat - + Prefer TCP Hobetsi TCP - + Peer proportional (throttles TCP) Hartzailekiko proporzionala (dohitua TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Sostengatzen du nazioarteturiko domeinu izena (IDN) - + Allow multiple connections from the same IP address Ahalbide elkarketa ugari IP helbide berdinetik - + Validate HTTPS tracker certificates Balioztatu HTTPS aztarnari egiaztagiriak - + Server-side request forgery (SSRF) mitigation - + Zerbitzariaren aldeko eskaera faltsutzea (SSRF) saihestea - + Disallow connection to peers on privileged ports Ez ahalbidetu elkarketa hartzaileetara pribilegiozko ataketan - + It appends the text to the window title to help distinguish qBittorent instances - + Testua leihoaren izenburuari eransten dio qBittorent instantziak bereizten laguntzeko - + Customize application instance name - + Pertsonalizatu aplikazioaren instantziaren izena - + It controls the internal state update interval which in turn will affect UI updates - + Barne-egoera eguneratzeko tartea kontrolatzen du eta horrek, aldi berean, UI eguneratzeei eragingo die - + Refresh interval - + Freskatze-tartea - + Resolve peer host names Erabaki hartzaile hostalari izenak - + IP address reported to trackers (requires restart) + Aztarnariei jakinarazitako IP helbidea (berrabiarazi behar da) + + + + Port reported to trackers (requires restart) [0: listening port] - + Reannounce to all trackers when IP or port changed Beriragarri jarraitzaile guztietara IP edo ataka aldatzean - + Enable icons in menus Gaitu ikonoak menuetan - + + Attach "Add new torrent" dialog to main window + Erantsi "Gehitu torrent berria" elkarrizketa-koadroa leiho nagusian + + + Enable port forwarding for embedded tracker - + Gaitu ataka-birbidaltzea kapsulatutako aztarnarientzat - + Enable quarantine for downloaded files - + Gaitu berrogeialdia deskargatutako fitxategietarako - + Enable Mark-of-the-Web (MOTW) for downloaded files - + Gaitu Mark-of-the-Web (MOTW) deskargatutako fitxategietarako - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Ziurtagirien baliozkotzeari eta torrenten kanpoko protokolo-jarduerei eragiten die (adibidez, RSS jarioak, programen eguneraketak, torrent fitxategiak, geoip db, etab.) + + + + Ignore SSL errors + Ezikusi SSL erroreak + + + (Auto detect if empty) - + (Auto detektatu hutsik badago) - + Python executable path (may require restart) - + Python exekutagarriaren bide-izena (baliteke berrabiarazi behar izatea) - + + Start BitTorrent session in paused state + Hasi BitTorrent saioa pausatutako egoeran + + + + sec + seconds + seg + + + + -1 (unlimited) + -1 (mugagabea) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent saioa ixteko denbora-muga [-1: mugagabea] + + + Confirm removal of tracker from all torrents - + Berretsi aztarnaria torrent guztietatik kentzea - + Peer turnover disconnect percentage Peer turnover disconnect percentage - + Peer turnover threshold percentage Hartzaile errotazio muga ehunekoa - + Peer turnover disconnect interval Hartzaile errotazio etetze tartea - + Resets to default if empty - + Lehenetsira berrezartzen da hutsik badago - + DHT bootstrap nodes - + DHT hasieratze nodoak - + I2P inbound quantity - + I2P sarrerako kantitatea - + I2P outbound quantity - + I2P irteerako kantitatea - + I2P inbound length - + I2P sarrerako luzera - + I2P outbound length - + I2P irteerako luzera - + Display notifications Erakutsi jakinarazpenak - + Display notifications for added torrents Erakutsi jakinarazpenak gehitutako torrententzat - + Download tracker's favicon Jeitsi aztarnariaren ikurra - + Save path history length Gordetze helburu historiaren luzera - + Enable speed graphs Gaitu abiadura grafikoak - + Fixed slots Slot finkoak - + Upload rate based Igoera maila ohinarrituz - + Upload slots behavior Igoera sloten jokabidea - + Round-robin Round-robin - + Fastest upload Igoera azkarrena - + Anti-leech Izain-aurkakoa - + Upload choking algorithm Igoera choking algoritmoa - + Confirm torrent recheck Baieztatu torrentaren berregiaztapena - + Confirm removal of all tags Baieztatu etiketa guztiak kentzea - + Always announce to all trackers in a tier Betik iragarri maila bateko aztarnari guztietara - + Always announce to all tiers Betik iragarri maila guztietara - + Any interface i.e. Any network interface Edozein interfaze - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP algoritmo modu nahasia - + Resolve peer countries Erabaki hartzaile herrialdeak - + Network interface Sare interfazea - + Optional IP address to bind to Aukerazko IP helbidea lotzeko - + Max concurrent HTTP announces Geh HTTP iragarpen aldiberean - + Enable embedded tracker Gaitu barneratutako aztarnaria - + Embedded tracker port Barneratutako aztarnari ataka + + AppController + + + + Invalid directory path + Direktorio bide-izen baliogabea + + + + Directory does not exist + Direktorioa ez dago + + + + Invalid mode, allowed values: %1 + Modu baliogabea, baimendutako balioak: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Eramangarri moduan ekiten. Profila agiritegia berez atzeman da hemen: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Agindu lerro ikur erredundantea atzeman da: "%1". Modu eramangarriak berrekite-azkar erlatiboa darama. - + Using config directory: %1 Itxurapen zuzenbidea erabiltzen: %1 - + Torrent name: %1 Torrentaren izena: %1 - + Torrent size: %1 Torrentaren neurria: %1 - + Save path: %1 Gordetze helburua: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrenta %1-ra jeitsi da. - + + Thank you for using qBittorrent. Mila esker qBittorrent erabiltzeagaitik. - + Torrent: %1, sending mail notification Torrenta: %1, post@ jakinarapena bidaltzen - + Add torrent failed - + Torrenta gehitzeak huts egin du - + Couldn't add torrent '%1', reason: %2. - + Ezin izan da '%1' torrent-a gehitu, arrazoia: %2. - + The WebUI administrator username is: %1 - + WebUI administratzailearen erabiltzaile-izena hau da: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + WebUI administratzailearen pasahitza ez da ezarri. Saio honetarako aldi baterako pasahitz bat eman da: %1 - + You should set your own password in program preferences. - + Zure pasahitza ezarri beharko zenuke programaren hobespenetan. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + WebUI-a desgaituta dago! WebUI gaitzeko, editatu konfigurazio fitxategia eskuz. - + Running external program. Torrent: "%1". Command: `%2` - + Kanpoko programa exekutatzen. Torrenta: "%1". Komandoa: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Kanpoko programa exekutatzeak huts egin du. Torrenta: "%1". Komandoa: `%2` - + Torrent "%1" has finished downloading - + "% 1" torrenta deskargatzen amaitu da - + WebUI will be started shortly after internal preparations. Please wait... - + WebUI barne prestaketak egin eta gutxira hasiko dira. Mesedez, itxaron... - - + + Loading torrents... - + Torrentak kargatzen... - + E&xit I&rten - + I/O Error i.e: Input/Output Error S/I Akatsa - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,102 +1533,112 @@ Zergaitia: %2 - + Torrent added Torrenta gehituta - + '%1' was added. e.g: xxx.avi was added. '%1' gehituta. - + Download completed - + Deskarga osatu da - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1 hasi da. Prozesuaren ID: %2 - + + This is a test email. + Hau proba posta bat da. + + + + Test email + Test posta + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1'-k amaitu du jeisketa. - + Information Argibideak - + To fix the error, you may need to edit the config file manually. - + Errorea konpontzeko, baliteke konfigurazio fitxategia eskuz editatu behar izatea. - + To control qBittorrent, access the WebUI at: %1 - + qBittorrent kontrolatzeko, sartu WebUI-ra hemen: %1 - + Exit Irten - + Recursive download confirmation Jeisketa mugagabearen baieztapena - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + '%1' torrentak .torrent fitxategiak ditu, haien deskargarekin jarraitu nahi duzu? - + Never Inoiz - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Deskargatu errekurtsiboki .torrent fitxategia torrent barruan. Iturburu torrenta: "%1". Fitxategia: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Ezin izan da memoria fisikoaren (RAM) erabilera-muga ezarri. Errore kodea: %1. Errore mezua: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + Ezin izan da memoria fisikoaren (RAM) erabilera muga gogorra ezarri. Eskatutako tamaina: %1. Sistemaren muga gogorra: %2. Errore kodea: %3. Errore mezua: "%4" - + qBittorrent termination initiated - + qBittorrent-en amaiera hasi da - + qBittorrent is shutting down... - + qBittorrent itzaltzen ari da... - + Saving torrent progress... Torrent garapena gordetzen... - + qBittorrent is now ready to exit - + qBittorrent irteteko prest dago @@ -1596,25 +1702,25 @@ Zergaitia: %2 Auto downloading of RSS torrents is currently disabled. You can enable it in application settings. - + RSS torrenten deskarga automatikoa desgaituta dago une honetan. Aplikazioaren ezarpenetan gaitu dezakezu. Rename selected rule. You can also use the F2 hotkey to rename. - + Berrizendatu hautatutako araua. F2 laster-tekla ere erabil dezakezu berrizendatzeko. Priority: - + Lehentasuna: - + Must Not Contain: Ez du izan behar: - + Episode Filter: Atal Iragazkia: @@ -1667,263 +1773,263 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar 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 - + 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 - + Episode number is a mandatory positive value Atal zenbakia balio positiboa izan behar da - + Rules Arauak - + Rules (legacy) Arauak (ondorena) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Eremu mugagabea: <b>1x25-;</b> lehen denboraldiko 25. atala eta aurreranzkoak, eta ondorengo denboraldietako atal guztiak bat datoz - + 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 - + Invalid action Ekintza baliogabea - + The list is empty, there is nothing to export. Zerrenda hutsik dago, ez dago ezer esportatzeko. - + Export RSS rules Esportatu RSS arauak - + I/O Error S/I Akatsa - + Failed to create the destination file. Reason: %1 Hutsegitea helmuga agiria sortzerakoan. Zergaitia: %1 - + Import RSS rules Inportatu RSS arauak - + Failed to import the selected rules file. Reason: %1 Hutsegitea hautaturiko araua agiria inportatzerakoan. Zergaitia: %1 - + Add new rule... Gehitu arau berria... - + Delete rule Ezabatu araua - + Rename rule... Berrizendatu araua... - + Delete selected rules Ezabatu hautatutako arauak - + Clear downloaded episodes... Garbitu jeitsitako atalak... - + Rule renaming Arau berrizendapena - + Please type the new rule name Mesedez idatzi arau izen berria - + Clear downloaded episodes Garbitu jeitsitako atalak - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Zihur zaude hautatutako araurako jeitsitako atalen zerrenda garbitu nahi dituzula? - + Regex mode: use Perl-compatible regular expressions Regex modua: erabili Perl-bezalako adierazpen arruntak - - + + Position %1: %2 Kokapena %1: %2 - + Wildcard mode: you can use Ordezhizki modua: erabili ditzakezu - - + + Import error - + Inportazio errorea - + Failed to read the file. %1 - + Fitxategia irakurtzeak huts egin du. %1 - + ? to match any single character ? edozein hizki soil bat etortzeko - + * to match zero or more of any characters * edozein hizkiko zero edo gehiago bat etortzeko - + Whitespaces count as AND operators (all words, any order) Zuriuneak ETA aldagaia bezala zenbatzen da (hitz gutziak, edozein hurrenkera) - + | is used as OR operator | EDO aldagai bezala erabiltzen da - + If word order is important use * instead of whitespace. Hitz hurrenkera garrantzitsua bada erabili * zuriunearen ordez. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) %1 esaldi hutsa duen adierazpen bat (adib. %2) - + will match all articles. bat etorriko da artikulo guztiekin. - + will exclude all articles. artikulo guztiak baztertuko ditu. @@ -1965,58 +2071,69 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Ezin da torrent berrekite karpeta sortu: "%1" Cannot parse resume data: invalid format - - - - - - Cannot parse torrent info: %1 - + Ezin dira berrekiteko datuak analizatu: formatu baliogabea + + Cannot parse torrent info: %1 + Ezin da torrentaren informazioa analizatu: %1 + + + Cannot parse torrent info: invalid format - + Ezin da torrentaren informazioa analizatu: formatu baliogabea - + Mismatching info-hash detected in resume data + Info-hash baterazina detektatu da berrekiteko datuetan + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Ezin izan dira torrentaren metadatuak '%1'(e)ra gorde. Errorea: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - + Ezin izan dira torrentaren berrekite datuak gorde '%1'. Errorea: %2. Couldn't load torrents queue: %1 - + Ezin izan da torrent ilara kargatu: %1 + Cannot parse resume data: %1 - + Ezin dira berrekiteko datuak analizatu: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Berrekite datuak baliogabeak dira: ez dira ez metadatuak ez info-hash aurkitu - + Couldn't save data to '%1'. Error: %2 Ezinezkoa datuak gordetzea hemen: '%1'. Akatsa: %2 @@ -2024,521 +2141,589 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar BitTorrent::DBResumeDataStorage - + Not found. Ez da aurkitu. - + Couldn't load resume data of torrent '%1'. Error: %2 - + Ezin izan dira '%1' torrenteko berrekite datuak kargatu. Errorea: %2 - - + + Database is corrupted. - + Datu-basea kaltetuta dago. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Ezin izan da Write-Ahead Logging (WAL) egunkari-modua gaitu. Errorea: %1. - + Couldn't obtain query result. - + Ezin izan da eskaeraren emaitza lortu. - + WAL mode is probably unsupported due to filesystem limitations. + WAL modua ziurrenik ez da onartzen fitxategi-sistemaren mugak direla eta. + + + + + Cannot parse resume data: %1 + Ezin dira berrekiteko datuak analizatu: %1 + + + + + Cannot parse torrent info: %1 + Ezin da torrentaren informazioa analizatu: %1 + + + + Corrupted resume data: %1 - - Couldn't begin transaction. Error: %1 + + save_path is invalid + + + Couldn't begin transaction. Error: %1 + Ezin izan da transakzioa hasi. Errorea: %1 + BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Ezin izan dira torrentaren metadatuak gorde. Errorea: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Ezin izan dira '%1' torrenteko berrekite datuak gorde. Errorea: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Ezin izan dira '%1' torrenteko berrekite datuak ezabatu. Errorea: %2 - + Couldn't store torrents queue positions. Error: %1 - + Ezin izan dira torrenten ilararen posizioak gorde. Errorea: %1 BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - + Distributed Hash Table (DHT) euskarria: %1 - - - - - - - - - + + + + + + + + + ON BAI - - - - - - - - - + + + + + + + + + OFF EZ - - + + Local Peer Discovery support: %1 - + Tokiko parekideen aurkikuntza euskarria: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Berrabiarazi behar da Peer Exchange (PeX) euskarria aldatzeko - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - + Torrenta berrekiteak huts egin du. Torrenta: "%1". Arrazoia: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Torrenta berrezartzeak huts egin du: torrent ID inkoherentea hauteman da. Torrenta: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Datu inkoherenteak hauteman dira: kategoria falta da konfigurazio fitxategian. Kategoria berreskuratuko da, baina bere ezarpenak lehenetsiko dira. Torrenta: "%1". Kategoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Datu inkoherenteak hauteman dira: kategoria baliogabea. Torrenta: "%1". Kategoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Berreskuratutako kategoriaren eta torrentaren uneko artean bat ez datozen gordetze bide-izenak hauteman dira. Torrenta eskuzko modura aldatu da orain. Torrenta: "%1". Kategoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Datu inkoherenteak hauteman dira: etiketa falta da konfigurazio fitxategian. Etiketa berreskuratuko da. Torrenta: "%1". Etiketa: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + Datu inkoherenteak hauteman dira: etiketa baliogabea. Torrenta: "%1". Etiketa: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Sistema esnatzeko gertaera detektatu da. Aztarnari guztiei berriro iragartzen... - + Peer ID: "%1" - + Hartzailearen ID-a: "%1" - + HTTP User-Agent: "%1" - + HTTP erabiltzaile-agentea: "%1" - + Peer Exchange (PeX) support: %1 - + Peer Exchange (PeX) euskarria: %1 - - + + Anonymous mode: %1 - + Modu anonimoa: %1 - - + + Encryption support: %1 - + Zifratze euskarria: %1 - - + + FORCED BEHARTUTA - + Could not find GUID of network interface. Interface: "%1" - + Ezin izan da sareko interfazearen GUIDa aurkitu. Interfazea: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + IP helbideen zerrenda hau entzuten saiatzen: "%1" - + Torrent reached the share ratio limit. - + Torrent partekatze-ratioaren mugara iritsi da. - - - + Torrent: "%1". - + Torrenta: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Super emaritza gaituta. - + Torrent reached the seeding time limit. - + Torrentek emaritze denbora-mugara iritsi da. - + Torrent reached the inactive seeding time limit. - + Torrenta emaritza inaktiboaren denbora-mugara iritsi da. - + Failed to load torrent. Reason: "%1" - + Ezin izan da torrenta kargatu. Arrazoia: "%1" - + I2P error. Message: "%1". - + I2P errorea. Mezua: "%1". - + UPnP/NAT-PMP support: ON - + UPnP/NAT-PMP euskarria: AKTIBO - + + Saving resume data completed. + Berregite datuen gordeketa osatu da. + + + + BitTorrent session successfully finished. + BitTorrent saioa behar bezala amaitu da. + + + + Session shutdown timed out. + Saioa ixteko denbora-muga gainditu da. + + + + Removing torrent. + Torrenta kentzen. + + + + Removing torrent and deleting its content. + Torrenta kentzen eta bere edukia ezabatzen. + + + + Torrent stopped. + Torrenta geldituta. + + + + Torrent content removed. Torrent: "%1" + Torrentaren edukia kendu da. Torrenta: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Torrenta kentzeak huts egin du. Torrenta: "%1". Errorea: "%2" + + + + Torrent removed. Torrent: "%1" + Torrenta kenduta. Torrenta: "%1" + + + + Merging of trackers is disabled + Aztarnarien fusioa desgaituta dago + + + + Trackers cannot be merged because it is a private torrent + Ezin dira aztarnariak fusionatu torrenta pribatua delako + + + + Trackers are merged from new source + Aztarnariak fusionatu dira iturri berritik + + + UPnP/NAT-PMP support: OFF - + UPnP/NAT-PMP euskarria: EZ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Ezin izan da torrenta esportatu. Torrenta: "%1". Helburua: "%2". Arrazoia: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + Berrekite datuak gordetzeari utzi zaio. Torrent nabarmenen kopurua: %1 - + The configured network address is invalid. Address: "%1" - + Konfiguratutako sare helbidea ez da baliozkoa. Helbidea: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + Entzuteko konfiguratutako sare helbidea aurkitzeak huts egin du. Helbidea: "%1" - + The configured network interface is invalid. Interface: "%1" + Konfiguratutako sare interfazea ez da baliozkoa. Helbidea: "%1" + + + + Tracker list updated - + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + IP helbide baliogabea baztertu da debekatutako IP helbideen zerrenda aplikatzean. IPa: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Aztarnaria gehitu da torrentera. Torrenta: "%1". Aztarnaria: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Aztarnaria kendu da torrentetik. Torrenta: "%1". Aztarnaria: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + URL bidezko emailea gehitu da torrentera. Torrenta: "%1". URLa: "% 2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - + URL bidezko emailea kendu da torrentetik. Torrenta: "%1". URLa: "% 2" - - Torrent paused. Torrent: "%1" - + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Zati-fitxategia kentzeak huts egin du. Torrent: "%1". Arrazoia: "%2". - + Torrent resumed. Torrent: "%1" - + Torrenta berrekita. Torrenta: "%1" - + Torrent download finished. Torrent: "%1" - + Torrentaren deskarga bukatu da. Torrenta: "% 1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" + Torrenta mugitzea bertan behera utzi da. Torrenat: "%1". Iturria: "%2". Helmuga: "%3" + + + + Duplicate torrent - + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrenta geldituta. Torrenta: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Torrenta mugitzea ilaran jartzeak huts egin du. Torrenta: "%1". Iturria: "%2". Helmuga: "%3". Arrazoia: torrent helburura mugitzen ari da une honetan - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Torrenta mugitzea ilaran jartzeak huts egin du. Torrenta: "%1". Iturria: "%2". Helburua: "%3". Arrazoia: bide-izenek kokaleku berdinera daramate - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Torrentaren mugimendua ilaran jarri da. Torrenta: "%1". Iturria: "%2". Helburua: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Hasi torrenta mugitzen. Torrenta: "%1". Helmuga: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Kategorien konfigurazioa gordetzeak huts egin du. Fitxategia: "%1". Errorea: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Kategorien konfigurazioa analizatzeak huts egin du. Fitxategia: "%1". Errorea: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Behar bezala analizatu da IP iragazkien fitxategia. Aplikaturiko arau kopurua: %1 - + Failed to parse the IP filter file - + IP iragazkien fitxategia analizatzeak huts egin du - + Restored torrent. Torrent: "%1" - + Torrenta berrezarrita. Torrenta: "%1" - + Added new torrent. Torrent: "%1" - + Torrent berria gehitu da. Torrenta: "% 1" - + Torrent errored. Torrent: "%1". Error: "%2" - + Torrentak errore bat izan du. Torrenta: "%1". Errorea: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentari SSL parametroak falta zaizkio. Torrenta: "%1". Mezua: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + Fitxategiaren errorearen alerta. Torrenta: "%1". Fitxategia: "%2". Arrazoia: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP ataka mapatzeak huts egin du. Mezua: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + UPnP/NAT-PMP ataken mapatzea ongi burutu da. Mezua: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP Iragazkia - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + iragazitako ataka (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). + ataka pribilegiatua (%1) + + + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" - + BitTorrent session encountered a serious error. Reason: "%1" - + BitTorrent saioak errore larri bat aurkitu du. Arrazoia: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + SOCKS5 proxy errorea. Helbidea: %1. Mezua: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 modu nahasi murrizpenak - + Failed to load Categories. %1 - + Ezin izan dira kategoriak kargatu. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - + kategorien konfigurazioa kargatzeak huts egin du. Fitxategia: "%1". Errorea: "Datu formatu baliogabea" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 ezgaituta dago - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 ezgaituta dago - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + URL emailetik errore-mezua jaso da. Torrenta: "%1". URLa: "%2". Mezua: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + IPan ondo entzuten. IP: "%1". Ataka: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + IPan entzuteak huts egin du. IP: "%1". Portua: "%2/%3". Arrazoia: "%4" - + Detected external IP. IP: "%1" - + Kanpoko IP detektatu da. IP-a: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Errorea: Barneko alerta-ilara beteta dago eta alertak kendu egin dira, baliteke errendimendu hondatua ikustea. Alerta mota jaitsi da: "%1". Mezua: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Torrenta ondo mugitu da. Torrenta: "%1". Helmuga: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" - + Torrent mugitzeak huts egin du. Torrenta: "%1". Iturria: "%2". Helburua: "%3". Arrazoia: "%4" @@ -2546,89 +2731,89 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Failed to start seeding. - + Emaritza hasteak huts egin du. BitTorrent::TorrentCreator - + Operation aborted Eragiketa bertan behera utzi da - - + + Create new torrent file failed. Reason: %1. - + Torrent fitxategi berria sortzeak huts egin du. Arrazoia: %1. BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Hutsegitea "%1" hartzailea "%2" torrentari gehitzean. Zergatia: %3 - + Peer "%1" is added to torrent "%2" "%1" hartzailea torrent "%2" torrentera gehitu da - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Ustekabeko datuak hauteman dira. Torrenta: %1. Datuak: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Ezin izan da fitxategian idatzi. Arrazoia: "%1". Torrenta "kargatu soilik" moduan dago orain. - + Download first and last piece first: %1, torrent: '%2' Jeitsi lehen eta azken atalak lehenik: %1, torrenta: '%2' - + On Bai - + Off Ez - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Torrenta birkargatzeak huts egin du. Torrenta: "%1". Arrazoia: "%2" - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Berrekite datuak sortzeak huts egin du. Torrenta: "%1". Arrazoia: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Torrenta berresteak huts egin du. Fitxategiak lekuz aldatu dira edo biltegiratzea ez da erabilgarri. Torrenta: "%1". Arrazoia: "%2" - + Missing metadata - + Metadatuak falta dira - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Agiri berrizendatze hutsegitea. Torrenta: "%1", agiria: "%2", zegatia: "%3" - + Performance alert: %1. More info: %2 - + Errendimendu alerta: %1. Informazio gehiago: %2 @@ -2647,189 +2832,189 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' '%1' parametroak '%1=%2' joskera jarraitu behar du - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' '%1' parametroak '%1=%2' joskera jarraitu behar du - + Expected integer number in environment variable '%1', but got '%2' Zenbaki osoa itxaroten zen '%1' inguru aldagaian, baina lortu da '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - '%1' parametroak '%1=%2' joskera jarraitu behar du - - - + Expected %1 in environment variable '%2', but got '%3' %1 itxaroten zen '%2' inguru aldagaian, baina lortu da '%3' - - + + %1 must specify a valid port (1 to 65535). %1-k baliozko ataka adierazi behar du (1 eta 65535 artean). - + Usage: Erabilpena: - + [options] [(<filename> | <url>)...] - + [aukerak] [(<filename> | <url>)...] - + Options: Aukerak: - + Display program version and exit Erakutsi programaren bertsioa eta irten - + Display this help message and exit Erakutsi laguntza mezu hau eta irten - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + '%1' parametroak '%1=%2' joskera jarraitu behar du - - + + Confirm the legal notice + Berretsi ohar legala + + + + port ataka - + Change the WebUI port - + Aldatu WebUI ataka - + Change the torrenting port - + Aldatu torrent ataka - + Disable splash screen Ezgaitu ongi etorri ikusleihoa - + Run in daemon-mode (background) Ekin daemon-moduan (barrenean) - + dir Use appropriate short form or abbreviation of "directory" zuz - + Store configuration files in <dir> Biltegiratu itxurapen agiriak hemen: <dir> - - + + name izena - + Store configuration files in directories qBittorrent_<name> Biltegiratu itxurapen agiriak qBittorrent zuzenbideetan_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hackeatu libtorrent berrekite-azkarra agirietan eta egin helburuak erlatiboak profilaren zuzenbidearekiko - + files or URLs agirak edo URL-ak - + Download the torrents passed by the user Jeitsi rabiltzaileak pasatutako torrentak - + Options when adding new torrents: Aukerak torrent berriak gehitzerakoan: - + path helburua - + Torrent save path Torrenta gordetzeko helburua - - Add torrents as started or paused - Gehitu torrentak hasita edo pausatuta bezala + + Add torrents as running or stopped + Gehitu torrentak martxan edo geldituta bezala - + Skip hash check Jausi hash egiaztapena - + Assign torrents to category. If the category doesn't exist, it will be created. Esleitu torrentak kategoriari. Kategoria ez badago, sortu egin daiteke. - + Download files in sequential order Jeitsi agiriak hurrenkera sekuentzialean - + Download first and last pieces first Jeitsi lehen eta azken atalak lehenik - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Torrent bat gehitzerakoan "Gehitu Torrent Berria" elkarrizketak zer irekitzen duen adierazten du - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Aukera balioak inguru aldagaien bidez eman daitezke. 'parameter-name' izeneko aukerarentzat, inguru aldagaiaren izena da 'QBT_PARAMETER_NAME' (hizki larriz, '-' ordeztuz '_'-rekin). Igaropen ikur balioentzat, ezarri aldagaia '1' edo 'TRUE' egoeran. Adibidez, hasierako ikusleihoa ezgaitzeko: - + Command line parameters take precedence over environment variables Agindu lerro parametroek lehentasuna dute inguru aldagaiekiko - + Help Laguntza @@ -2881,32 +3066,37 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar - Resume torrents - Berrekin torrentak + Start torrents + Hasi torrentak - Pause torrents - Pausatu torrentak + Stop torrents + Gelditu torrentak Remove torrents - + Kendu torrentak ColorWidget - + Edit... - + Editatu... - + Reset Berrezarri + + + System + Sistema + CookiesDialog @@ -2947,22 +3137,22 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Gaiaren estilo-orri pertsonalizatua kargatzeak huts egin du. %1 - + Failed to load custom theme colors. %1 - + Gaiaren kolore pertsonalizatuak kargatzeak huts egin du. %1 DefaultThemeSource - + Failed to load default theme colors. %1 - + Gaiaren kolore lehenetsiak kargatzeak huts egin du. %1 @@ -2970,7 +3160,7 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Remove torrent(s) - + Kendu torrenta(k) @@ -2979,23 +3169,23 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar - Also permanently delete the files - - - - - Are you sure you want to remove '%1' from the transfer list? - Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Also remove the content files + Eduki fitxategiak ere kendu - Are you sure you want to remove these %1 torrents from the transfer list? - Are you sure you want to remove these 5 torrents from the transfer list? - + Are you sure you want to remove '%1' from the transfer list? + Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? + Ziur '%1' transferentzia zerrendatik kendu nahi duzula? - + + Are you sure you want to remove these %1 torrents from the transfer list? + Are you sure you want to remove these 5 torrents from the transfer list? + Ziur %1 torrent hauek transferentzia zerrendatik kendu nahi dituzula? + + + Remove Kendu @@ -3008,12 +3198,12 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Jeitsi URL-tatik - + Add torrent links Gehitu torrent loturak - + One link per line (HTTP links, Magnet links and info-hashes are supported) Lotura bat lerroko (HTTP loturak, Magnet loturak eta info-hashak daude sostengatuta) @@ -3023,12 +3213,12 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Jeitsi - + No URL entered Ez da URL-rik sartu - + Please type at least one URL. Mesedez idatzi URL bat gutxinez. @@ -3187,64 +3377,87 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Aztertze Akatsa: Iragazki agiria ez da baliozko PeerGuardian P2B agiria. + + FilterPatternFormatMenu + + + Pattern Format + Patroiaren formatua + + + + Plain text + Testu arrunta + + + + Wildcards + Komodinak + + + + Regular expression + Adierazpen arrunta + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Torrenta deskargatzen... Iturria: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrenta badago jadanik - + + Trackers cannot be merged because it is a private torrent. + Aztarnariak ezin dira batu torrenta pribatua delako + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? - + '%1' torrenta transferentzia zerrendan dago jada. Iturburu berriko jarraitzaileak batu nahi dituzu? 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 - + Database corrupted: no data section found. Datubasea hondatuta: ez da datu atalik aurkitu. @@ -3252,17 +3465,17 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http eskabide neurriak muga gainditzen du, ahoa itxitzen. Muga: %1, IP-a: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Http eskaera-metodo txarra, socketa ixten da. IPa: %1. Metodoa: "%2" - + Bad Http request, closing socket. IP: %1 Http eskabide gaitza, ahoa itxitzen. IP-a: %1 @@ -3303,23 +3516,57 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar IconWidget - + Browse... Bilatu... - + Reset Berrezarri - + Select icon + Hautatu ikonoa + + + + Supported image files + Onartutako irudi fitxategiak + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Energia-kudeaketak D-Bus interfaze egokia aurkitu du. Interfazea: %1 + + + + Power management error. Did not find a suitable D-Bus interface. - - Supported image files + + + + Power management error. Action: %1. Error: %2 + Energia-kudeaketa errorea. Ekintza: %1. Errorea: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Energia-kudeaketan ustekabeko errorea. Egoera: %1. Errorea: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3343,24 +3590,24 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + Lege-oharra irakurri baduzu, `--confirm-legal-notice` komando-lerroko aukera erabil dezakezu mezu hau ezabatzeko. Press 'Enter' key to continue... - + Sakatu 'Sartu' tekla jarraitzeko... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 blokeatuta. Zergaitia: %2. - + %1 was banned 0.0.0.0 was banned %1 eragotzia izan da @@ -3369,62 +3616,62 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 agindu lerro parametro ezezaguna da. - - + + %1 must be the single command line parameter. %1 agindu lerro parametro soila izan behar da. - + Run application with -h option to read about command line parameters. Ekin aplikazioa -h aukerarekin agindu lerro parametroei buruz irakurtzeko. - + Bad command line Agindu lerro okerra - + Bad command line: Agindu lerro okerra: - + An unrecoverable error occurred. - + Berreskuraezina den errore bat gertatu da. + - qBittorrent has encountered an unrecoverable error. - + qBittorrent-ek errore berreskuraezin bat aurkitu du. - + You cannot use %1: qBittorrent is already running. - + Ezin duzu %1 erabili: qBittorrent dagoeneko martxan dago. - + Another qBittorrent instance is already running. - + Beste qBittorrent instantzia bat dagoeneko martxan dago. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Ustekabeko qBittorrent instantzia aurkitu da. Instantzia honetatik irteten. Uneko prozesuaren IDa: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + Errore bat daimonizatzean. Arrazoia: "%1". Errore kodea: %2. @@ -3435,607 +3682,680 @@ Sostengatutako heuskarriak: S01E01, 1x1, 2017.12.31 eta 31.12.2017 (Data heuskar &Editatu - + &Tools &Tresnak - + &File &Agiria - + &Help &Laguntza - + On Downloads &Done &Burututako Jeisketetan - + &View &Ikusi - + &Options... A&ukerak... - - &Resume - &Berrekin - - - + &Remove - + &Kendu - + Torrent &Creator Torrent &Sortzailea - - + + Alternative Speed Limits Aukerazko Abiadura Mugak - + &Top Toolbar Goiko &Tresnabarra - + Display Top Toolbar Erakutsi Goiko Tresnabarra - + Status &Bar Egoera &Barra - + Filters Sidebar Iragazkien alde-barra - + 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 - + Do&nate! E&man Dirulaguntza! - - &Do nothing + + Sh&utdown System - + + &Do nothing + &Ez egin ezer + + + Close Window Itxi Leihoa - - R&esume All - Berrekin &Denak - - - + Manage Cookies... Kudeatu Cookieak... - + Manage stored network cookies Kudeatu biltegiratutako sare cookieak - + Normal Messages Mezu Arruntak - + Information Messages Argibide Mezuak - + Warning Messages Kontuz Mezuak - + Critical Messages Larrialdi Mezuak - + &Log &Oharra - + + Sta&rt + Ha&si + + + + Sto&p + &Gelditu + + + + R&esume Session + + + + + Pau&se Session + &Pausatu saioa + + + Set Global Speed Limits... Ezarri Abiadura Muga Orokorrak... - + Bottom of Queue Lerroaren Beheren - + Move to the bottom of the queue Mugitu lerroaren beheren - + Top of Queue Lerroaren Goren - + Move to the top of the queue Mugitu lerroaren gorenera - + Move Down Queue Mugitu Lerroan Behera - + Move down in the queue Mugitu behera lerroan - + Move Up Queue Mugitu Gora Lerroan - + Move up in the queue Mugitu gora lerroan - + &Exit qBittorrent I&rten qBittorrent-etik - + &Suspend System &Egoneratu Sistema - + &Hibernate System &Neguratu Sistema - - S&hutdown System - &Itzali Sistema - - - + &Statistics E&statistikak - + Check for Updates Egiaztatu Eguneraketarik dagoen - + Check for Program Updates Egiaztatu Programaren Eguneraketarik dagoen - + &About &Honi buruz - - &Pause - &Pausatu - - - - P&ause All - P&asatu Denak - - - + &Add Torrent File... Gehitu Torrent &Agiria... - + Open Ireki - + E&xit I&rten - + Open URL Ireki URL-a - + &Documentation &Agiritza - + Lock Blokeatu - - - + + + Show Erakutsi - + Check for program updates Egiaztatu programaren eguneraketak - + Add Torrent &Link... Gehitu Torrent &Lotura... - + If you like qBittorrent, please donate! qBittorrent gogoko baduzu, mesedez eman dirulaguntza! - - + + Execution Log Ekintza Oharra - + Clear the password Garbitu sarhitza - + &Set Password Ezarri &Sarhitza - + Preferences Hobespenak - + &Clear Password &Garbitu Sarhitza - + Transfers Eskualdaketak - - + + qBittorrent is minimized to tray qBittorrent erretilura txikiendu da - - - + + + This behavior can be changed in the settings. You won't be reminded again. Jokabide hau ezarpenetan aldatu daiteke. Ez zaizu berriro gogoratuko. - + 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: - + Are you sure you want to clear the password? Zihur zaude sarhitza garbitzea nahi duzula? - + Use regular expressions Erabili adierazpen arruntak - + + + Search Engine + Bilaketa Gailua + + + + Search has failed + Bilaketak huts egin du + + + + Search has finished + Bilaketa amaitu da + + + Search Bilatu - + Transfers (%1) Eskualdaketak (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent eguneratua izan da eta berrabiarazpena behar du aldaketek eragina izateko. - + qBittorrent is closed to tray qBittorrent erretilura itxi da - + Some files are currently transferring. Zenbait agiri eskualdatzen ari dira une honetan. - + Are you sure you want to quit qBittorrent? Zihur zaude qBittorrent uztea nahi duzula? - + &No &Ez - + &Yes &Bai - + &Always Yes & Betik Bai - + Options saved. - + Aukerak gordeta. - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSATUTA] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title + [D: %1, K: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. - - + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Ez dago Python Runtime - + qBittorrent Update Available qBittorrent Eguneraketa Eskuragarri - + 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. + 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. - - + + Old Python Runtime Python Runtime zaharra - + A new version is available. Bertsio berri bat eskuragarri - + Do you want to download %1? Nahi duzu %1 jeistea? - + Open changelog... Ireki aldaketa-oharra.. - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Zure Python bertsioa (%1) zaharkituta dago. Beharrezko gutxienekoa: %2. +Bertsio berriago bat instalatu nahi duzu orain? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + Zure Python bertsioa (%1) zaharkituta dago. Mesedez, eguneratu azken bertsiora bilatzaileek funtziona dezaten. +Beharrezko gutxiena: %2. - + + Paused + Pausatuta + + + Checking for Updates... Eguneraketak Egiaztatzen.. - + Already checking for program updates in the background Jadanik programaren eguneraketa egiaztatzen barrenean - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 - + Filter torrents... - + Iragazi torrentak... - + Filter by: - + Iragazi honekin: - + The password must be at least 3 characters long - + Pasahitzak 3 karaktere izan behar ditu gutxienez - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Ireki Torrent Agiriak - + Torrent Files Torrent Agiriak @@ -4065,12 +4385,12 @@ Mesedez ezarri eskuz. Dynamic DNS error: qBittorrent was blacklisted by the service, please submit a bug report at https://bugs.qbittorrent.org. - + DNS dinamikoaren errorea: zerbitzuak qBittorrent zerrenda beltzean sartu su, bidali akatsen txostena https://bugs.qbittorrent.org helbidera. Dynamic DNS error: %1 was returned by the service, please submit a bug report at https://bugs.qbittorrent.org. - + DNS dinamikoaren errorea: zerbitzuak %1 itzuli du, mesedez bidali akatsen txostena https://bugs.qbittorrent.org helbidera. @@ -4099,7 +4419,7 @@ Mesedez ezarri eskuz. I/O Error: %1 - + S/I errorea: %1 @@ -4230,7 +4550,12 @@ Mesedez ezarri eskuz. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL errorea, URL: "%1", erroreak: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL akatsa ezikusten, URL: "%1", akatsak: "%2" @@ -5298,7 +5623,7 @@ Mesedez ezarri eskuz. Couldn't save downloaded IP geolocation database file. Reason: %1 - + Ezin izan da deskargatutako IP geokokapen datu-basearen fitxategia gorde. Arrazoia: %1 @@ -5524,49 +5849,49 @@ Mesedez ezarri eskuz. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Konexioak huts egin du, erantzun ezezaguna: %1 - + Authentication failed, msg: %1 - + Autentifikazioak huts egin du, mez: %1 - + <mail from> was rejected by server, msg: %1 - + <mail from> zerbitzariarengatik ukatua izan da, mez: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <Rcpt to> zerbitzariarengatik ukatua izan da, mez: %1 - + <data> was rejected by server, msg: %1 - + <data> zerbitzariarengatik ukatua izan da, mez: %1 - + Message was rejected by the server, error: %1 - + Mezua zerbitzariarengatik ukatua izan da, mez: %1 - + Both EHLO and HELO failed, msg: %1 - + EHLO eta HELO-k huts egin dute, mez: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Badirudi SMTP zerbitzariak ez duela onartzen ditugun autentifikazio-modurik [CRAM-MD5|PLAIN|LOGIN], autentifikazioa saltatzen, seguruenik huts egingo duela jakinda... Zerbitzariaren autentifikazio-moduak: %1 - + Email Notification Error: %1 - + E-posta jakinarazpen errorea: %1 @@ -5602,299 +5927,283 @@ Mesedez ezarri eskuz. BitTorrent - + RSS RSS - - Web UI - Web EI - - - + Advanced Aurreratua - + Customize UI Theme... - + Pertsonalizatu UI gaia... - + Transfer List Eskualdaketa Zerrenda - + Confirm when deleting torrents Baieztatu torrenten ezabapena - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Erabili lerro margo ezberdinak - + Hide zero and infinity values Ezkutatu huts eta mugagabeko balioak - + Always Betik - - Paused torrents only - Pausatutako torrentak bakarrik - - - + Action on double-click Klik-bikoitzaren ekintza - + Downloading torrents: Torrentak jeisterakoan: - - - Start / Stop Torrent - Hasi / Gelditu Torrenta - - - - + + Open destination folder Ireki helmuga agiritegia - - + + No action Ekintzarik ez - + Completed torrents: Osatutako torrentak: - + Auto hide zero status filters - + Ezkutatu automatikoki zero egoera iragazkiak - + Desktop Mahaigaina - + Start qBittorrent on Windows start up Hasi qBittorrent Windows hasterakoan - + Show splash screen on start up Erakutsi logoa abiarazterakoan - + Confirmation on exit when torrents are active Baieztapena irtetzerakoan torrentak ekinean daudenean - + Confirmation on auto-exit when downloads finish Baieztapena berez-irtetzean jeitsierak amaitutakoan - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + <html><head/><body><p>qBittorrent .torrent fitxategietarako eta/edo Magnet esteketarako<br/> programa lehenetsi gisa ezartzeko, <span style=" font-weight:600;">Kontrol Paneleko</span> <span style=" font-weight:600;">Lehenetsitako Programak</span> elkarrizketa-koadroa erabili dezakezu.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent edukiaren antolakuntza: - + Original Jatorrizkoa - + Create subfolder Sortu azpiagiritegia - + Don't create subfolder Ez sortu azpiagiritegia - + The torrent will be added to the top of the download queue - + Torrenta deskarga-ilararen goiko aldean gehituko da - + Add to top of queue The torrent will be added to the top of the download queue Gehitu ilararen goiko aldera. - + When duplicate torrent is being added - + Torrent bikoiztua gehitzen ari denean - + Merge trackers to existing torrent - + Batu aztarnariak lehendik dagoen torrentarekin - + Keep unselected files in ".unwanted" folder - + Gorde hautatu gabeko fitxategiak ".unwanted" karpetan - + Add... Gehitu... - + Options.. Aukerak... - + Remove Kendu - + Email notification &upon download completion &Post@ jakinarazpena jeitsiera osatutakoan - + + Send test email + Bidali proba posta + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Hartzaile elkarketa protokoloa: - + Any Edozein - + I2P (experimental) - + I2P (esperimentala) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - + Modu mistoa - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Hautatzen bada, ostalari-izenen bilaketak proxy bidez egiten dira - + Perform hostname lookup via proxy - + Egin ostalari-izenen bilaketa proxy bidez - + Use proxy for BitTorrent purposes - + Erabili proxy BitTorrent helburuetarako - + RSS feeds will use proxy - + RSS jarioek proxya erabiliko dute - + Use proxy for RSS purposes - + Erabili proxy RSS helburuetarako - + Search engine, software updates or anything else will use proxy - + Bilatzaileak, software eguneratzeak edo beste edozerk proxya erabiliko du - + Use proxy for general purposes - + Erabili proxy helburu orokorretarako - + IP Fi&ltering IP I&ragazketa - + Schedule &the use of alternative rate limits Egitarautu a&ukerazko neurri muga erabilpena - + From: From start time Hemendik: - + To: To end time Hona: - + Find peers on the DHT network Bilatu hartzaileak DHT sarean - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5903,145 +6212,190 @@ Enkriptaketa beharr du: Elkartu hartzaileetara enkriptaketa protokoloaren bidez Ezagaitu enkriptaketa: Elkartu hartzaileetara enkriptaketa protokolo gabe bakarrik - + Allow encryption Gaitu enkriptaketa - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Argibide gehiago</a>) - + Maximum active checking torrents: - + Gehienezko egiaztapen-torrent aktibo: - + &Torrent Queueing &Torrent Lerrokapena - + When total seeding time reaches - + Emaritza denbora osoa honetara heltzen denean - + When inactive seeding time reaches - + Emaritza denbora inaktiboa honetara heltzen denean - - A&utomatically add these trackers to new downloads: - &Berezgaitasunez gehitu aztarnari hauek jeitsiera berriei: - - - + RSS Reader RSS Irakurlea - + Enable fetching RSS feeds Gaitu RSS jarioak lortzea - + Feeds refresh interval: Jarioen berritze epea: - + Same host request delay: - + Ostalari berdinaren eskaeren atzerapena: - + Maximum number of articles per feed: Gehienezko idazlan harpidetza bakoitzeko: - - - + + + min minutes min - + Seeding Limits Emaritza Mugak - - Pause torrent - Pausatu torrenta - - - + Remove torrent Kendu torrenta - + Remove torrent and its files Kendu torrenta eta bere agiriak - + Enable super seeding for torrent Gaitu gain emaritza torrentarentzat - + When ratio reaches Maila erdietsitakoan - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Gelditu torrenta + + + + A&utomatically append these trackers to new downloads: + Erantsi a&utomatikoki aztarnari hauek deskarga berrietan: + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL-a: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Torrent Berez Jeistzailea - + Enable auto downloading of RSS torrents Gaitu RSS torrenten berez jeistea - + Edit auto downloading rules... Editatu berez jeiste arauak... - + RSS Smart Episode Filter RSS Atal Iragazki Adimentsua - + Download REPACK/PROPER episodes Jeitsi REPACK/PROPER atalak - + Filters: Iragazkiak: - + Web User Interface (Remote control) Web Erabiltzaile Interfazea (Hurruneko agintea) - + IP address: IP helbidea: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6050,42 +6404,37 @@ Adierazi IPv4 edo IPv6 helbide bat. "0.0.0.0" adierazi dezakezu edozei "::" edozein IPv6 helbiderentzat, edo "*" bientzat IPv4 et IPv6. - + Ban client after consecutive failures: Kanporatu bezeroa hutsegite jarraien ondoren - + Never Inoiz ez - + ban for: Kanporatu honegatik: - + Session timeout: Saio epemuga: - + Disabled Ezgaituta - - Enable cookie Secure flag (requires HTTPS) - Gaitu cookie Seguru ikurra (HTTPS behar du) - - - + Server domains: Zerbitzari domeinuak: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6098,442 +6447,483 @@ WebEI zerbitzariak erabiltzen dituen domeinu izenetan jarri behar duzu. Erabili ';' sarrera ugari banantzeko. '*' ordez-hizkia erabili daiteke. - + &Use HTTPS instead of HTTP Erabili &HTTPS, HTTP-ren ordez - + Bypass authentication for clients on localhost Igaropen egiaztapena tokiko-hostalariko berezoentzat - + Bypass authentication for clients in whitelisted IP subnets Igaropen egiaztapena IP azpisare zerrenda-zuriko berezoentzat - + IP subnet whitelist... IP azpisare zerrenda-zuria... - - Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + + Use alternative WebUI + Erabili beste WebUI bat - + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. + Zehaztu alderantzizko proxy IPak (edo azpisareak, adib. 0.0.0.0/24) birbidalitako bezeroaren helbidea (X-Forwarded-For goiburua) erabiltzeko. Erabili ';' hainbat sarrera banatzeko. + + + Upda&te my dynamic domain name Eg&uneratu nire domeinu dinamikoaren izena - + Minimize qBittorrent to notification area Txikiendu qBittorrent jakinarazpen eremura - + + Search + Bilaketa + + + + WebUI + WebUI + + + Interface Interfazea - + Language: Hizkuntza: - + + Style: + Estiloa: + + + + Color scheme: + Kolore-eskema: + + + + Stopped torrents only + Gelditutako torrentak soilik + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Erretilu ikur estiloa: - - + + Normal Arrunta - + File association Agiri elkarketa - + Use qBittorrent for .torrent files Erabili qBittorrent .torrent agirientzat - + Use qBittorrent for magnet links Erabili qBittorrent magnet loturentzat - + Check for program updates Egiaztatu programaren eguneraketarik dagoen - + Power Management Indar Kudeaketa - + + &Log Files + + + + Save path: Gordetze helburua: - + Backup the log file after: Babeskopiatu ohar agiria ondoren: - + Delete backup logs older than: Ezabatu zaharragoak diren babeskopia oharrak: - + + Show external IP in status bar + + + + When adding a torrent Torrent bat gehitzerakoan - + Bring torrent dialog to the front Ekarri torrent elkarrizketa aurrealdera - + + The torrent will be added to download list in a stopped state + Torrenta deskarga zerrendara gehituko da gelditu egoeran + + + Also delete .torrent files whose addition was cancelled Ezabatu gehitzea ezeztatu diren .torrent agiriak ere - + Also when addition is cancelled Baita gehitzea ezeztatutakoan - + Warning! Data loss possible! Kontuz! Datuak galdu daitezke! - + Saving Management Gordetze Kudeaketa - + Default Torrent Management Mode: Berezko Torrent Kudeaketa Modua: - + Manual Eskuzkoa - + Automatic Berezgaitasunezkoa - + When Torrent Category changed: Torrent Kategoria aldatzen denean: - + Relocate torrent Berkokatu torrenta - + Switch torrent to Manual Mode Aldatu torrenta Eskuzko Modura - - + + Relocate affected torrents Berkokatu eragindako torrentak - - + + Switch affected torrents to Manual Mode Aldatu eragindako torrentak Eskuzko Modura - + Use Subcategories Erabili Azpikategoriak - + Default Save Path: Berezko Gordetze Helbura: - + Copy .torrent files to: Kopiatu .torrent agiriak hona: - + Show &qBittorrent in notification area Erakutsi &qBittorrent jakinarazpen eremuan - - &Log file - &Ohar agiria - - - + Display &torrent content and some options Erakutsi &torrent edukia eta aukera batzuk - + De&lete .torrent files afterwards E&zabatu .torrent agiriak edonola - + Copy .torrent files for finished downloads to: Kopiatu amaitutako jeisketa .torrent agiriak hona: - + Pre-allocate disk space for all files Aurre-esleitu diska tokia agiri guztientzat - + Use custom UI Theme Erabili norbere EI azalgaia - + UI Theme file: EI azalgai agiria: - + Changing Interface settings requires application restart Interfazearen ezarpenak aldatuz gero aplikazioa berrabiarazi behar da - + Shows a confirmation dialog upon torrent deletion Erakutsi baieztapen elkarrizketa bat torrenta ezabatzean - - + + Preview file, otherwise open destination folder Aurreikusi agiria, bestela ireki helmuga agiritegia - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents Erakutsi baieztapen elkarrizketa bat torrentak ekinean daudela irtetzean - + When minimizing, the main window is closed and must be reopened from the systray icon Txikientzerakoan, leiho nagusia itxi egiten da eta sistemaren erretilu ikurretik berrireki behar da - + The systray icon will still be visible when closing the main window Sistemaren erretilu ikurra ikusgarria egongo da leiho nagusia itxitzean - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Itxi qBittorrent jakinarazpen eremura - + Monochrome (for dark theme) Margobakarra (Azalgai iluna) - + Monochrome (for light theme) Margobakarra (azalgai argiarako) - + Inhibit system sleep when torrents are downloading Eragotzi sistemaren lotaratzea torrentak jeisten daudenean - + Inhibit system sleep when torrents are seeding Eragotzi sistemaren lotaratzea torrentak emaritzan daudenean - + Creates an additional log file after the log file reaches the specified file size Ohar agiri gehigarri bat sortzen du ohar agiriak adierazitako neurria erdiestean - + days Delete backup logs older than 10 days egun - + months Delete backup logs older than 10 months hilabete - + years Delete backup logs older than 10 years urte - + Log performance warnings Erregistratu errendimendu oharrak - - The torrent will be added to download list in a paused state - Torrent agiriak jeisketa zerrendara gehituko dira pausatu egoran. - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ez hasi jeisketa berezgaitasunez - + Whether the .torrent file should be deleted after adding it - + .torrent fitxategia gehitu ondoren ezabatu behar den ala ez - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Esleitu agiri neurri osoan diskan jeitsierak hasi aurretik, zatiketa gutxitzeko. HDD-etan bakarrik erabilgarria. - + Append .!qB extension to incomplete files Gehitu .!qB luzapena osatugabeko agiriei - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Torrent bat jeistean, eskaini torrentak gehitzea bere barnean aurkituriko .torrent agiri guztientzat - + Enable recursive download dialog Gaitu jeisketa mugagabearen elkarrizketa - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Berezgaitasunezkoa: Torrent ezaugarri ugari (adib. gordetze helburua) elkarturiko kategoriaren arabera erabakiko da Eskuzkoa: Torrent ezaugarri ugari (adib. gordetze helburua) eskuz esleitu behar da - + When Default Save/Incomplete Path changed: - + Gorde/Osagabe bide-izen lehenetsia aldatzen denean: - + When Category Save Path changed: Kategoria Gordetze Helburua aldatzen denean: - + Use Category paths in Manual Mode - + Erabili kategorien bide-izenak eskuzko moduan - + Resolve relative Save Path against appropriate Category path instead of Default one - + Ebatzi gordetze bide-izen erlatiboa kategoriaren bide egokiaren aurka lehenetsitako baten ordez - + Use icons from system theme - + Erabili sistemaren gaiaren ikonoak - + Window state on start up: - + Leihoaren egoera abiaraztean: - + qBittorrent window state on start up - + qBittorrent leihoaren egoera abiaraztean - + Torrent stop condition: - + Torrentaren gelditze-baldintza: - - + + None (Bat ere ez) - - + + Metadata received Metadatuak jaso dira - - + + Files checked Fitxategiak egiaztatuta - + Ask for merging trackers when torrent is being added manually - + Eskatu aztarnariak bateratzea torrenta eskuz gehitzen denean - + Use another path for incomplete torrents: Erabili beste bide-izena bukatu gabeko torrententzat: - + Automatically add torrents from: Berezgaitasunez gehitu torrentak hemendik: - + Excluded file names - + Baztertutako fitxategi-izenak - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6547,773 +6937,826 @@ Examples readme.txt: filter exact file name. ?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + Zerrenda beltzean gehitu hainbat fitxategien izen torrent(etatik) deskargatu ez daitezen. +Zerrenda honetako edozein iragazkirekin bat datozen fitxategiek "Ez deskargatu" lehentasuna automatikoki ezarriko dute. + +Erabili lerro berriak hainbat sarrera bereizteko. Komodinak erabil ditzake behean azaltzen den moduan. +*: edozein karaktereren zero edo gehiagorekin bat dator. +?: edozein karaktere bakarrarekin bat dator. +[...]: karaktere multzoak kortxete artean irudika daitezke. + +Adibideak +*.exe: iragazkia '.exe' fitxategi-luzapena. +readme.txt: iragazi fitxategiaren izen zehatza. +?.txt: iragazi 'a.txt', 'b.txt' baina ez 'aa.txt'. +readme[0-9].txt: iragazi 'readme1.txt', 'readme2.txt' baina ez 'readme10.txt'. - + Receiver Jasotzailea - + To: To receiver Hona: - + SMTP server: SMTP zerbitzaria: - + Sender Bidaltzailea - + From: From sender Hemendik: - + This server requires a secure connection (SSL) Zerbitzari honek elkarketa segurua behar du (SSL) - - + + Authentication Egiaztapena - - - - + + + + Username: Erabiltzaile-izena: - - - - + + + + Password: Sarhitza: - + Run external program - + Exekutatu kanpoko programa - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Erakutsi kontsolaren leihoa - + TCP and μTP TCP eta μTP - + Listening Port Aditze Ataka - + Port used for incoming connections: Barrurako elkarketentzako ataka: - + Set to 0 to let your system pick an unused port Ezarri 0ra sistemak erabili gabeko ataka bat hartzeko - + Random Zorizkoa - + Use UPnP / NAT-PMP port forwarding from my router Erabili UPnP / NAT-PMP ataka nire bideratzailetik bidaltzeko - + Connections Limits Elkarketa Mugak - + Maximum number of connections per torrent: Gehienezko elkarketa zenbatekoa torrent bakoitzeko: - + Global maximum number of connections: Gehienezko elkarketa zenbatekoa orotara: - + Maximum number of upload slots per torrent: Gehienezko igoera aho zenbatekoa torrent bakoitzeko: - + Global maximum number of upload slots: Gehienezko Igoera aho orokor zenbatekoa: - + Proxy Server Proxy Zerbitzaria - + Type: Mota: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Hostalaria: - - - + + + Port: Ataka: - + 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 - + A&uthentication E&giaztapena - - Info: The password is saved unencrypted - Argibidea: Sarhitza enkriptatu gabe gordetzen da - - - + Filter path (.dat, .p2p, .p2b): Iragazki helburua (.dat, .p2p, .p2b): - + Reload the filter Birgertatu iragazkia - + Manually banned IP addresses... Eskuzko IP helbide eragoztea... - + Apply to trackers Ezarri aztarnariei - + Global Rate Limits Neurri Muga Orokorrak - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Igoera: - - + + Download: Jeitsiera: - + Alternative Rate Limits Aukerazko Neurri Mugak - + Start time Hasiera ordua - + End time Amaira ordua - + When: Noiz: - + Every day Egunero - + Weekdays Lanegunak - + Weekends Asteburuak - + Rate Limits Settings Neurri Muga Ezarpenak - + Apply rate limit to peers on LAN Ezarri neurri muga LAN-eko hartzaileei - + Apply rate limit to transport overhead Ezarri neurri muga burugain garraioari - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Aldatu hartzaileak Bittorrent bezero bateragarriekin (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Gaitu Hartzaile Aldaketa (PeX) hartzaile gehiago bilatzeko - + Look for peers on your local network Bilatu hartzaileak zure tokiko sarean - + Enable Local Peer Discovery to find more peers Gaitu Tokiko Hartzaile Aurkikuntza hartzaile gehiago bilatzeko - + Encryption mode: Enkriptaketa modua: - + Require encryption Enkriptaketa beharrezkoa - + Disable encryption Ezgaitu enkriptaketa - + Enable when using a proxy or a VPN connection Gaitu proxy bat edo VPN elkarketa bat erabiltzerakoan. - + Enable anonymous mode Gaitu izengabeko modua - + Maximum active downloads: Gehienezko jeitsiera eraginda: - + Maximum active uploads: Gehienezko igoera eraginda: - + Maximum active torrents: Gehienezko torrent eraginda: - + Do not count slow torrents in these limits Ez zenbatu torrent geldoak muga hauetan - + Upload rate threshold: Igoera neurri mugapena: - + Download rate threshold: Jeitsiera neurri mugapena: - - - - + + + + sec seconds seg - + Torrent inactivity timer: Torrentaren jardungabe denboragailua: - + then orduan - + Use UPnP / NAT-PMP to forward the port from my router Erabili UPnP / NAT-PMP ataka nire bideratzailetik bidaltzeko - + Certificate: Egiaztagiria: - + Key: Giltza: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Egiaztagiriei buruzko argibideak</a> - + Change current password Aldatu oraingo sarhitza - - Use alternative Web UI - Erabili aukerazko Web EI - - - + Files location: Agirien kokalekua: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Segurtasuna - + Enable clickjacking protection Gaitu clickjacking babesa - + Enable Cross-Site Request Forgery (CSRF) protection Gaitu Cross-Site Request Forgery (CSRF) babesa - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Gaitu Hostalari idazburu balioztapena - + Add custom HTTP headers Gehitu norbere HTTP idazburuak - + Header: value pairs, one per line Idazburua: balio pareak, bat lerroko - + Enable reverse proxy support Gaitu alderantzizko proxy bateragarritasuna - + Trusted proxies list: Proxy fidagarrien zerrenda: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Zerbitzua: - + Register Izena eman - + Domain name: Domeinu izena: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Aukera hauek gaituz, <strong>atzerabiderik gabe galdu</strong> ditzakezu zure .torrent agiriak! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Bigarren aukera gaitzen baduzu (&ldquo;Baita gehitzea ezeztatutakoan&rdquo;) .torrent agiria <strong>ezabatu egingo da</strong> baita &ldquo;<strong>Ezeztatu</strong>&rdquo; sakatzen baduzu ere &ldquo;Gehitu torrenta&rdquo; elkarrizketan - + Select qBittorrent UI Theme file Hautatu qBittorrent EI Azalgai agiria - + Choose Alternative UI files location Hautatu EI agiri kokaleku alternatiboa - + Supported parameters (case sensitive): Sostengatutako parametroak (hizki xehe-larriak bereiziz) - + Minimized - + Minimizatuta - + Hidden - + Ezkutatuta - + Disabled due to failed to detect system tray presence - + Desgaituta dago sistemaren erretiluaren presentzia detektatu ez delako - + No stop condition is set. Ez da gelditze-egoerarik ezarri. - + Torrent will stop after metadata is received. Torrent gelditu egingo da metadatuak jaso ondoren. - Torrents that have metadata initially aren't affected. - Ez du eraginik dagoeneko metadatuak dituzten torrent-etan. - - - + Torrent will stop after files are initially checked. Torrent-a gelditu egingo da fitxategiak aztertu ondoren. - + This will also download metadata if it wasn't there initially. - + Honek metadatuak deskargatu ditu ez bazeuden hasieratik. - + %N: Torrent name %N: Torrentaren izena - + %L: Category %L: Kategoria - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Aholkua: Enkapsulatu parametroa adartxo artean idazkia zuriune batekin ebakia izatea saihesteko (adib., "%N") - + + Test email + Test posta + + + + Attempted to send email. Check your inbox to confirm success + Posta elektronikoa bidaltzen saiatu da. Egiaztatu sarrera-ontzia arrakasta berresteko + + + (None) (Bat ere ez) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent bat astirotzat hartuko da bere jeitsiera eta igoera neurriak balio hauen azpitik badaude "Torrent jardungabe denboragailu" segunduz - + Certificate Egiaztagiria - + Select certificate Hautatu egiaztagiria - + Private key Giltza pribatua - + Select private key Hautatu giltza pribatua - + WebUI configuration failed. Reason: %1 - + WebUI konfigurazioak huts egin du. Arrazoia: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 gomendatzen da bateragarritasun handiena lortzeko Windows modu ilunarekin + + + + System + System default Qt style + Sistema + + + + Let Qt decide the style for this system + Utzi Qt-k sistemaren estiloa erabakitzen + + + + Dark + Dark color scheme + Iluna + + + + Light + Light color scheme + Argia + + + + System + System color scheme + Sistema + + + Select folder to monitor Hautatu monitorizatzeko agiritegia - + Adding entry failed Hutsegitea sarrera gehitzean - + The WebUI username must be at least 3 characters long. - + WebUI erabiltzaile-izenak 3 karaktere izan behar ditu gutxienez. - + The WebUI password must be at least 6 characters long. - + WebUI pasahitzak 6 karaktere izan behar ditu gutxienez. - + Location Error Kokaleku Akatsa - - + + Choose export directory Hautatu esportatzeko zuzenbidea - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Aukera hauek gaitzen direnean, qBittorent-ek .torrent agiriak <strong>ezabatuko</strong> ditu beren jeitsiera lerrora ongi (lehen aukera) edo ez (bigarren aukera) gehitutakoan. Hau <strong>ez da bakarrik</strong> &ldquo;Gehitu torrenta&rdquo; menu ekintzaren bidez irekitako agirietan ezarriko, baita <strong>agiri mota elkarketa</strong> bidez irekitakoetan ere. - + qBittorrent UI Theme file (*.qbtheme config.json) - + qBittorrent UI gaiaren fitxategia (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiketak (kakotxaz bananduta) - + %I: Info hash v1 (or '-' if unavailable) - + %I: info hash v1 (edo '-' erabilgarri ez badago) - + %J: Info hash v2 (or '-' if unavailable) - + %J: info hash v2 (edo '-' erabilgarri ez badago) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - + %K: Torrent IDa (sha-1 info hash v1 torrenterako edo sha-256 info hash moztua v2/hybrid torrenterako) - - - + + + Choose a save directory Hautatu gordetzeko zuzenbide bat - + Torrents that have metadata initially will be added as stopped. - + Hasieran metadatuak dituzten torrentak geldituta gehituko dira. - + Choose an IP filter file Hautatu IP iragazki agiri bat - + All supported filters Sostengatutako iragazki guztiak - + The alternative WebUI files location cannot be blank. - + Ordezko WebUIaren fitxategien kokalekua ezin da hutsik egon. - + 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. - + Preferences Hobespenak - + Time Error Ordu Akatsa - + The start time and the end time can't be the same. Hasiera ordua eta amaiera ordua ezin dira berdinak izan. - - + + Length Error Luzera Akatsa @@ -7321,241 +7764,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Ezezaguna - - - Interested (local) and choked (peer) - - - Interested (local) and unchoked (peer) - + Interested (local) and choked (peer) + Interesatua (bertakoa) eta itota (parekoa) - - Interested (peer) and choked (local) - + + Interested (local) and unchoked (peer) + Interesatua (bertakoa) eta ito gabea (parekoa) + Interested (peer) and choked (local) + Interesatua (parekidea) eta itota (bertakoa) + + + Interested (peer) and unchoked (local) - + Interesatua (parekidea) eta ito gabea (bertakoa) - + Not interested (local) and unchoked (peer) - + Ez interesatua (bertakoa) eta ito gabea (parekidea) - + Not interested (peer) and unchoked (local) - + Ez interesatua (parekidea) eta ito gabea (bertakoa) - + Optimistic unchoke Itogabetze optimista - + Peer snubbed - + Hartzailea baztertuta - + Incoming connection Sarrerako konexioa - + Peer from DHT DHTko parekoa - + Peer from PEX PEXeko parekoa - + Peer from LSD LSDko parekoa - + Encrypted traffic Trafiko enkriptatua - + Encrypted handshake Enkriptatutako eskuematea + + + Peer is using NAT hole punching + Parekidea NAT zulaketa erabiltzen ari da + PeerListWidget - + Country/Region Herrialdea/Eskualdea - + IP/Address - + IP/Helbidea - + Port Ataka - + Flags Ikurrak - + Connection Elkarketa - + Client i.e.: Client application Bezeroa - + Peer ID Client i.e.: Client resolved from Peer ID - + Parekidearen bezeroaren ID-a - + 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 - + Files i.e. files that are being downloaded right now Agiriak - + Column visibility Zutabe ikusgarritasuna - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu - + Add peers... Gehitu parekoak... - - + + Adding peers Hartzaile gehiketa - + Some peers cannot be added. Check the Log for details. Zenbait hartzaile ezin dira gehitu. Egitaztatu Oharra xehetasunetarako. - + Peers are added to this torrent. Hartzaileak torrent honetara gehitu dira. - - + + Ban peer permanently Eragotzi hartzailea mugagabe - + Cannot add peers to a private torrent - + Ezin dira parekideak gehitu torrent pribatu batera - + Cannot add peers when the torrent is checking - + Ezin dira parekideak gehitu torrenta egiaztatzen ari denean - + Cannot add peers when the torrent is queued - + Ezin dira parekideak gehitu torrenta ilaran dagoenean - + No peer was selected - + Ez da parekiderik hautatu - + Are you sure you want to permanently ban the selected peers? Zihur zaude mugagabe eragoztea nahi dituzula hautatutako hartzaileak? - + Peer "%1" is manually banned "%1" hartzailea eskuz eragotzia - + N/A E/G - + Copy IP:port Kopiatu IP:ataka @@ -7573,7 +8021,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Gehitzeko hartzaileen zerrenda (IP bat lerroko): - + Format: IPv4:port / [IPv6]:port Heuskarria: IPv4:ataka / [IPv6]:ataka @@ -7614,27 +8062,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Atal honetako agiriak: - + File in this piece: - - - - - File in these pieces: - + Fitxategia atal honetan: + File in these pieces: + Fitxategia atal hauetan: + + + Wait until metadata become available to see detailed information Itxaron metadatuak eskuragarri egon arte argibide xehetuak ikusteko - + Hold Shift key for detailed information Sakatu Aldatu tekla argibide xeheak ikusteko @@ -7647,58 +8095,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Bilatu pluginak - + Installed search plugins: Ezarritako bilaketa pluginak: - + Name Izena - + Version Bertsioa - + Url Url-a - - + + Enabled Gaituta - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Kontuz: Zihurtatu zure herrialdeko kopia-eskubide legeak betetzen dituzula torrentak jeisterakoan bilaketa gailu hauen bidez. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Bilatzaileen plugin berriak lor ditzakezu hemen: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Ezarri berri bat - + Check for updates Egiaztatu eguneraketarik dagoen - + Close Itxi - + Uninstall Kendu @@ -7818,98 +8266,65 @@ Plugin hauek ezgaituta daude. Pluginaren iturburua - + Search plugin source: Bilatu pluginaren iturburua: - + Local file Tokiko agiria - + Web link Web lotura - - PowerManagement - - - qBittorrent is active - qBittorrent ekinean dago - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: "%1" torrenteko hurrengo agiriek aurreikuspena sostengatzen dute, mesedez hautatu bat: - + Preview Aurreikuspena - + Name Izena - + Size Neurria - + Progress Garapena - + Preview impossible Aurreikuspena ezinezkoa - + Sorry, we can't preview this file: "%1". Barkatu, ezin dugu agiri honen aurreikuspenik egin: "%1" - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu @@ -7922,29 +8337,29 @@ Plugin hauek ezgaituta daude. Private::FileLineEdit - + Path does not exist - + Bide-izena ez da existitzen - + Path does not point to a directory - + Bide-izenak ez du direktorio batera seinalatzen - + Path does not point to a file - + Bide-izenak ez du fitxategi batera seinalatzen - + Don't have read permission to path - + Ez daukazu bide-izen honetan irakurtzeko baimenik - + Don't have write permission to path - + Ez daukazu bide-izen honetan idazteko baimenik @@ -7983,12 +8398,12 @@ Plugin hauek ezgaituta daude. PropertiesWidget - + Downloaded: Jeitsita: - + Availability: Eskuragarritasuna: @@ -8003,53 +8418,53 @@ Plugin hauek ezgaituta daude. Eskualdaketa - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 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: @@ -8059,193 +8474,220 @@ Plugin hauek ezgaituta daude. Elkarketak: - + Information Argibideak - + Info Hash v1: Info hash v1: - + Info Hash v2: Info hash v2: - + Comment: Aipamena: - + Select All Hautatu Denak - + Select None Ez Hautatu Ezer - + Share Ratio: Elkarbanatze Maila: - + Reannounce In: Berriragarpena: - + Last Seen Complete: Azken Ikusaldia Osorik: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Denbora aktiboa (hilabetetan), torrenta zein ezaguna den adierazten du + + + + Popularity: + Ospea: + + + Total Size: Neurria Guztira: - + Pieces: Atalak: - + Created By: Sortzailea: - + Added On: Gehituta: - + Completed On: Osatuta: - + Created On: Sortua: - + + Private: + Pribatua: + + + Save Path: Gordetze Helburua: - + 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) - - + + + N/A E/G - + + Yes + Bai + + + + No + Ez + + + %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.) - - New Web seed - Web emaritza berria + + Add web seed + Add HTTP source + - - Remove Web seed - Kendu Web emaritza + + Add web seed: + - - Copy Web seed URL - Kopiatu Web emaritza URL-a + + + This web seed is already in the list. + - - Edit Web seed URL - Editatu Web emaritza URL-a - - - + Filter files... Iragazi agiriak... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + Abiadura grafikoak desgaituta daude - + You can enable it in Advanced Options - + Aukera aurreratuetan gaitu dezakezu - - 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: @@ -8253,33 +8695,33 @@ Plugin hauek ezgaituta daude. RSS::AutoDownloader - - + + Invalid data format. Datu heuskarri baliogabea - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Ezin dira RSS Berez-Jeistzaile datuak gorde hemen: %1. Akatsa: %2 - + Invalid data format Datu heuskarri baliogabea - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + '%1' RSS artikulua '%2' arauak onartzen du. Torrenta gehitzen saiatzen... - + Failed to read RSS AutoDownloader rules. %1 - + RSS deskarga automatikoko arauak irakurtzeak huts egin du. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Ezin da RSS Berez-Jeistzailea arauak gertatu. Zergaitia: %1 @@ -8287,22 +8729,22 @@ Plugin hauek ezgaituta daude. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Hutsegitea RSS jarioa '%1'-ra jeistean. Zergaitia: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS jarioa '%1' eguneratuta. Gehituta %2 artikulu berri. - + Failed to parse RSS feed at '%1'. Reason: %2 Hutsegitea RSS jarioa aztertzean '%1'. Zergaitia: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS jarioa '%1' ongi jeitsi da. Aztertzea abiatzen. @@ -8312,12 +8754,12 @@ Plugin hauek ezgaituta daude. Failed to read RSS session data. %1 - + RSS saioaren datuak irakurtzeak huts egin du. %1 Failed to save RSS feed in '%1', Reason: %2 - + Ezin izan da RSS jarioa gorde '%1'-n, Arrazoia: %2 @@ -8338,12 +8780,12 @@ Plugin hauek ezgaituta daude. RSS::Private::Parser - + Invalid RSS feed. RSS harpidetza baliogabea. - + %1 (line: %2, column: %3, offset: %4). %1 (lerroa: %2, zutabea: %3, oreka: %4). @@ -8351,103 +8793,144 @@ Plugin hauek ezgaituta daude. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Ezin izan da RSS saioaren konfigurazioa gorde. Fitxategia: "%1". Errorea: "% 2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - + Ezin izan dira RSS saioko datuak gorde. Fitxategia: "%1". Errorea: "%2" - - + + RSS feed with given URL already exists: %1. Jadanik badago emandako URL-arekin RSS harpidetza bat: %1 - + Feed doesn't exist: %1. - + Jarioa ez da existitzen: %1. - + Cannot move root folder. Ezin da erro agiritegia mugitu. - - + + Item doesn't exist: %1. Gaia ez dago: %1 - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Ezin da erro agiritegia ezabatu. - + Failed to read RSS session data. %1 - - - - - Failed to parse RSS session data. File: "%1". Error: "%2" - + RSS saioaren datuak irakurtzeak huts egin du. %1 + Failed to parse RSS session data. File: "%1". Error: "%2" + RSS saioko datuak analizatzeak huts egin du. Fitxategia: "%1". Errorea: "%2" + + + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Ezin izan dira RSS saioko datuak kargatu. Fitxategia: "%1". Errorea: "Datu formatu baliogabea." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - - - - - Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Ezin izan da RSS jarioa kargatu. Jarioa: "%1". Arrazoia: URLa beharrezkoa da. + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. + Ezin izan da RSS jarioa kargatu. Jarioa: "%1". Arrazoia: UIDa baliogabea da. + + + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + RSS jario bikoiztua aurkitu da. UID: "%1". Errorea: konfigurazioa hondatuta dagoela dirudi. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Ezin izan da RSS elementua kargatu. Elementua: "%1". Datu-formatu baliogabea. - + Corrupted RSS list, not loading it. - + RSS zerrenda hondatua, ez da kargatzen. - + Incorrect RSS Item path: %1. RSS gai helburu okerra: %1. - + RSS item with given path already exists: %1. Jadanik badago RSS gaia emandako helburuarekin: %1 - + Parent folder doesn't exist: %1. Gaineko agiritegia ez dago: %1 + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Jarioa ez da existitzen: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL-a: + + + + Refresh interval: + Freskatze-tartea + + + + sec + seg + + + + Default + Berezkoa + + RSSWidget @@ -8467,8 +8950,8 @@ Plugin hauek ezgaituta daude. - - + + Mark items read Markatu gaiak irakurritzat @@ -8493,132 +8976,115 @@ Plugin hauek ezgaituta daude. Torrentak: (klik-bikoitza jeisteko) - - + + Delete Ezabatu - + Rename... Berrizendatu... - + Rename Berrizendatu - - + + Update Eguneratu - + New subscription... Harpidetza berria... - - + + Update all feeds Eguneratu jario guztiak - + Download torrent Jeitsi torrenta - + Open news URL Ireki URL berriak - + Copy feed URL Kopiatu harpidetza URL-a - + New folder... Agiritegi berria... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Mesedez hautatu agiritegi izen bat - + Folder name: Agiritegi izena: - + New folder Agiritegi berria - - - Please type a RSS feed URL - Mesedez idatzi RSS jario URL bat - - - - - Feed URL: - Kopiatu harpidetza URL-a - - - + Deletion confirmation Ezabatze 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: - + Rename failed Berrizendatze hutsegitea - + Date: Eguna: - + Feed: - + Jarioa: - + Author: Egilea: @@ -8626,38 +9092,38 @@ Plugin hauek ezgaituta daude. SearchController - + Python must be installed to use the Search Engine. Python ezarrita egon behar da Bilaketa Gailua erabiltzeko. - + Unable to create more than %1 concurrent searches. Ezinezkoa %1 baino bilaketa gehiago sortzea. - - + + Offset is out of range Oreka mailaz kanpo dago - + All plugins are already up to date. Plugin guztiak daude eguneratuta. - + Updating %1 plugins %1 plugin eguneratzen - + Updating plugin %1 %1 plugin eguneratzen - + Failed to check for plugin updates: %1 Hutsegitea plugin eguneraketak egiaztatzean: %1 @@ -8682,32 +9148,32 @@ Plugin hauek ezgaituta daude. Set minimum and maximum allowed number of seeders - + Ezarri baimendutako emaile-kopuru minimo eta maximoa Minimum number of seeds - + Gutxieneko hazi kopurua Maximum number of seeds - + Gehienezko hazi kopurua Set minimum and maximum allowed size of a torrent - + Ezarri baimendutako gutxieneko eta gehienezko torrent baten tamaina Minimum torrent size - + Torrentaren tamaina minimoa Maximum torrent size - + Torrentaren tamaina maximoa @@ -8732,132 +9198,142 @@ Plugin hauek ezgaituta daude. Neurria: - + 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 - - - + Filter search results... Iragazi bilaketa emaitzak... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Emaitzak (erakusten <i>%1</i> -> <i>%2</i>-tik): - + Torrent names only Torrentaren izena bakarrik - + Everywhere Edonon - + Use regular expressions Erabili adierazpen arruntak - + Open download window - + Ireki deskarga-leihoa - + Download Jeitsi - + Open description page Ireki azalpen orrialdera - + Copy Kopiatu - + Name Izena - + Download link Jeitsiera lotura - + Description page URL Azalpen orrialdearen URL-a - + Searching... Bilatzen... - + Search has finished Bilaketa amaitu da - + Search aborted Bilaketa utzita - + An error occurred during search... Akats bat gertatu da bilaketan... - + Search returned no results Bilaketak ez du emaitzik itzuli - + + Engine + Motorra + + + + Engine URL + Motorraten URL-a + + + + Published On + Hemen argitaratuta + + + Column visibility Zutabe ikusgarritasuna - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu @@ -8865,104 +9341,104 @@ Plugin hauek ezgaituta daude. SearchPluginManager - + Unknown search engine plugin file format. Bilaketa gailu plugin agiri heuskarri ezezaguna. - + Plugin already at version %1, which is greater than %2 Plugina jadanik %1 bertsioan dago, zeina %2 baino berriagoa den - + A more recent version of this plugin is already installed. Jadanik ezarrita dago plugin honen bertsio berriago bat. - + Plugin %1 is not supported. %1 plugina ez dago sostengatua - - + + Plugin is not supported. Plugina ez dago sostengatua - + Plugin %1 has been successfully updated. %1 plugina ongi eguneratu da. - + All categories Kategoria guztiak - + Movies Filmak - + TV shows Telesailak - + Music Musika - + Games Jokoak - + Anime Animazioa - + Software Softwarea - + Pictures Argazkiak - + Books Liburuak - + Update server is temporarily unavailable. %1 Eguneraketa zerbitzaria aldibatez eskuraezina dago. %1 - - + + Failed to download the plugin file. %1 Hutsegitea plugin agiria jeisterakoan. %1 - + Plugin "%1" is outdated, updating to version %2 "%1" plugina ez dago eguneratuta, %2 bertsiora eguneratzen - + Incorrect update info received for %1 out of %2 plugins. Eguneraketa argibide okerrak jaso dira %1-rako %2 pluginetik. - + Search plugin '%1' contains invalid version string ('%2') '%1' bilaketa pluginak bertsio kate baliogabea du ('%2') @@ -8972,114 +9448,145 @@ Plugin hauek ezgaituta daude. - - - - Search Bilaketa - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Ez dago bilaketa pluginik ezarrita Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait ezartzeko. - + Search plugins... Bilatu pluginak... - + A phrase to search for. Bilatzeko esaldi bat. - + Spaces in a search term may be protected by double quotes. Bilaketa hitzen arteko tarteak adartxo bikoitzekin babestu daitezke. - + Example: Search phrase example Adibidea: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;joan etorri&quot;</b>: bilatu <b>joan etorri</b> - + All plugins Plugin guztiak - + Only enabled Gaituak bakarrik - + + + Invalid data format. + Datu heuskarri baliogabea + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>joan etorri</b>: bilatu <b>joan</b> eta <b>etorri</b> - + + Refresh + + + + Close tab Itxi erlaitza - + Close all tabs Itxi erlaitz guztiak - + Select... Hautatu... - - - + + 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 - + + Stop Gelditu + + + SearchWidget::DataStorage - - Search has finished - Bilaketa amaitu da + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Bilaketak huts egin du + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9192,34 +9699,34 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e - + Upload: Igoera: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Jeitsiera: - + Alternative speed limits Aukerazko abiadura mugak @@ -9411,32 +9918,32 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Bataz-besteko denbora lerroan: - + Connected peers: Elkartutako hartzaileak: - + All-time share ratio: Elkarbanatze maila orotara: - + All-time download: Jeitsiera orotara: - + Session waste: Saio hondakina: - + All-time upload: Igoera orotara: - + Total buffer size: Buffer neurria guztira: @@ -9451,12 +9958,12 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Lerrokatutako S/I lanak: - + Write cache overload: Idazketa katxe gainzama: - + Read cache overload: Irakurketa katxe gainzama: @@ -9475,51 +9982,77 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e StatusBar - + Connection status: Elkarketa egoera: - - + + No direct connections. This may indicate network configuration problems. Ez dago zuzeneko elkarketarik. Honek adierazi dezake sare itxurapen arazoak daudela. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 elkargune - + qBittorrent needs to be restarted! qBittorrentek berrabiaraztea behar du! - - - + + + Connection Status: Elkarketa Egoera: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Lineaz-kanpo. Honek arrunt esanahi du qBittorrentek huts egin duela hautatutako barrurako elkarketen atakan aditzean. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klikatu beste abiadura muga batera aldatzeko - + Click to switch to regular speed limits Klikatu abiadura muga arruntera aldatzeko @@ -9549,13 +10082,13 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e - Resumed (0) - Berrekinda (0) + Running (0) + Aktibo (0) - Paused (0) - Pausatuta (0) + Stopped (0) + Geldituta (0) @@ -9590,7 +10123,7 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Moving (0) - + Mugitzen (0) @@ -9617,35 +10150,35 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Completed (%1) Osatuta (%1) + + + Running (%1) + Aktibo (%1) + - Paused (%1) - Pausatuta (%1) + Stopped (%1) + Geldituta (%1) + + + + Start torrents + Hasi torrentak + + + + Stop torrents + Gelditu torrentak Moving (%1) - - - - - Resume torrents - Berrekin torrentak - - - - Pause torrents - Pausatu torrentak + Mugitzen (%1) Remove torrents - - - - - Resumed (%1) - Berrekinda (%1) + Kendu torrentak @@ -9718,31 +10251,31 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Remove unused tags Kendu erabili gabeko etiketak + + + Remove torrents + Kendu torrentak + - Resume torrents - Berrekin torrentak + Start torrents + Hasi torrentak - Pause torrents - Pausatu torrentak - - - - Remove torrents - - - - - New Tag - Etiketa Berria + Stop torrents + Gelditu torrentak Tag: Etiketa: + + + Add tag + + Invalid tag name @@ -9779,7 +10312,7 @@ Klikatu "Bilatu pluginak..." botoia leihoaren behe eskuinean zenbait e Save path for incomplete torrents: - + Gordetze bide-izena osatu gabeko torrentetarako: @@ -9889,32 +10422,32 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TorrentContentModel - + Name Izena - + Progress Garapena - + Download Priority Jeitsiera Lehentasuna - + Remaining Gelditzen da - + Availability Eskuragarritasuna - + Total Size Tamaina guztira @@ -9959,98 +10492,98 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TorrentContentWidget - + Rename error Berrizendatze akatsa - + Renaming Berrizendapena - + New name: Izen berria: - + Column visibility Zutabearen ikusgaitasuna - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu - + Open Ireki - + Open containing folder - + Ireki edukiaren karpeta - + Rename... Berrizendatu... - + Priority Lehentasuna - - + + Do not download Ez jeitsi - + Normal Arrunta - + High Handia - + Maximum Gehiena - + By shown file order Erakutsitako fitxategi ordenaz - + Normal priority Lehentasun normala - + High priority Lehentasun altua - + Maximum priority Lehentasun maximoa - + Priority by shown file order Lehentasuna erakutsitako fitxategi ordenaz @@ -10058,19 +10591,19 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TorrentCreatorController - + Too many active tasks - + Zeregin aktibo gehiegi - + Torrent creation is still unfinished. - + Torrentaren sorrera amaitu gabe dago oraindik. - + Torrent creation failed. - + Torrenta sortzeak huts egin du. @@ -10097,13 +10630,13 @@ Mesedez hautatu beste izen bat eta saiatu berriro. - + Select file Hautatu agiria - + Select folder Hautatu agiritegia @@ -10178,87 +10711,83 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Eremuak - + You can separate tracker tiers / groups with an empty line. Lerro huts batekin banandu ditzakezu aztarnari mailak / taldeak. - + Web seed URLs: Web emaritza URL-ak: - + Tracker URLs: Aztarnari URL-ak: - + Comments: Aipamenak: - + Source: Iturburua: - + Progress: Garapena: - + Create Torrent Sortu Torrenta - - + + Torrent creation failed Torrent sortze hutsegitea - + Reason: Path to file/folder is not readable. Zergaitia: Agiri/agiritegi helburua ez da irakurgarria. - + Select where to save the new torrent Hautatu non gorde torrent berria - + Torrent Files (*.torrent) Torrent Agiriak (*.torrent) - Reason: %1 - Zergaitia: %1 - - - + Add torrent to transfer list failed. - + Torrenta transferentzia-zerrendara gehitzeak huts egin du. - + Reason: "%1" - + Arrazoia: "%1" - + Add torrent failed - + Torrenta gehitzeak huts egin du - + Torrent creator Torrent sortzailea - + Torrent created: Torrentaren sortzea: @@ -10266,77 +10795,64 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Ikusitako karpeten konfigurazioa kargatzeak huts egin du. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + %1-(e)tik ikusitako karpeten konfigurazioa analizatzeak huts egin du. Errorea: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + %1-tik ikusitako karpeten konfigurazioa kargatzeak huts egin du. Errorea: "Datu formatu baliogabea." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Ezin izan da ikusitako karpeten konfigurazioa %1-en gorde. Errorea: %2 - + Watched folder Path cannot be empty. - + Ikusitako karpeta bide-izena ezin da hutsik egon. - + Watched folder Path cannot be relative. - + Ikusitako karpeta bide-izena ezin da erlatiboa izan. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet URI baliogabea. URI: %1. Arrazoia: %2 - + Magnet file too big. File: %1 - + Magnet fitxategia handiegia. Fitxategia: %1 - + Failed to open magnet file: %1 Ezin izan da magnet fitxategia ireki: %1 - + Rejecting failed torrent file: %1 - + Huts egin duen torrent fitxategia baztertzen: %1 - + Watching folder: "%1" Karpeta begiratzen: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadatu baliogabeak - - TorrentOptionsDialog @@ -10365,175 +10881,163 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Erabili beste bide-izena bukatu gabeko torrententzat - + Category: Kategoria: - - Torrent speed limits - Torrentaren abiadura mugak + + Torrent Share Limits + - + Download: Jeitsiera: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Honek ez ditu muga orokorrak gaindituko - + Upload: Igoera: - - Torrent share limits - Torrentaren elkarbanatze mugak - - - - Use global share limit - Erabili elkarbanatze muga orokorra - - - - Set no share limit - Ezarri elkarbanatze mugarik gabe - - - - Set share limit to - Ezarri elkarbanatze muga honela - - - - ratio - maila - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Desgaitu DHT torrent honentzat - + Download in sequential order Deskargatu orden sekuentzialean - + Disable PeX for this torrent Desgaitu PeX torrent honentzat - + Download first and last pieces first Deskargatu lehen eta azken atalak lehenik - + Disable LSD for this torrent Desgaitu LSD torrent honentzat - + Currently used categories - + Unean erabilitako kategoriak - - + + Choose save path Aukeratu gordetzeko bide-izena - + Not applicable to private torrents Ez da ezartzen torrent pribatuei - - - No share limit method selected - Ez da elkarbanatze muga metodorik hautatu - - - - Please select a limit method first - Mesedez hautatu muga metodo bat lehenik - TorrentShareLimitsWidget - - - + + + + Default - Lehenetsia + Berezkoa + + + + + + Unlimited + Mugagabea - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Ezarri honetara + + + + Seeding time: + Emaritza denbora: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Denbora inaktiboa emaritzen: - + + Action when the limit is reached: + Ekintza mugara iristen denean: + + + + Stop torrent + Gelditu torrenta + + + + Remove torrent + Kendu torrenta + + + + Remove torrent and its content + Kendu torrenta eta bere edukia + + + + Enable super seeding for torrent + Gaitu gain emaritza torrentarentzat + + + Ratio: - + Proportzioa: @@ -10541,35 +11045,35 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Torrent Tags - - - - - New Tag - Etiketa Berria + Torrent etiketak + Add tag + + + + Tag: Etiketa: - + Invalid tag name Etiketa izen baliogabea - + Tag name '%1' is invalid. - + '%1' etiketaren izena baliogabea da. - + Tag exists Etiketa badago - + Tag name already exists. Etiketa izena badago jadanik. @@ -10577,115 +11081,130 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TorrentsController - + Error: '%1' is not a valid torrent file. Akatsa: '%1' ez da baliozko torrent agiria. - + Priority must be an integer Lehetasuna zenbaki oso bat izan behar da - + Priority is not valid Lehentasuna ez da baliozkoa - + Torrent's metadata has not yet downloaded Torrentaren metadatuak ez dira jeitsi oraindik - + File IDs must be integers Agiri ID-ak zenbaki osoak izan behar dute - + File ID is not valid Agiri ID-a ez da baliozkoa - - - - + + + + Torrent queueing must be enabled Torrent lerrokapena gaituta egon behar da - - + + Save path cannot be empty Gordetze helburua ezin da hutsik egon - - + + Cannot create target directory - + Ezin da helburuko direktorioa sortu - - + + Category cannot be empty Kategoria ezin da hutsik egon - + Unable to create category Ezinezkoa kategoria sortzea - + Unable to edit category Ezinezkoa kategoria editatzea - + Unable to export torrent file. Error: %1 - + Ezin da torrent fitxategia esportatu. Errorea: %1 - + Cannot make save path Ezin da gordetze helburua egin - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 'sort' parametroa baliogabea da. - - "%1" is not a valid file index. + + "%1" is not an existing URL - + + "%1" is not a valid file index. + "%1" ez da baliozko fitxategi-indizea. + + + Index %1 is out of bounds. %1 indizea mugetatik kanpo dago. - - + + Cannot write to directory Ezin da zuzenbidera idatzi - + WebUI Set location: moving "%1", from "%2" to "%3" WebEI Ezarpen kokalekua: mugitzen "%1", hemendik "%2" hona "%3" - + Incorrect torrent name Torrent izen okerra - - + + Incorrect category name Kategoria izen okerra @@ -10716,196 +11235,191 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TrackerListModel - + Working Lanean - + Disabled Ezgaituta - + Disabled for this torrent Desgaituta torrent honentzat - + This torrent is private Torrent hau pribatua da - + N/A E/G - + Updating... Eguneratzen... - + Not working Lan gabe - - - Tracker error - - - - - Unreachable - - + Tracker error + Aztarnari-errorea + + + + Unreachable + Iristezina + + + Not contacted yet Harremandu gabe oraindik - - Invalid status! - - - - - URL/Announce endpoint - + + Invalid state! + Egoera baliogabea! + URL/Announce Endpoint + URL/Iragarpen konexio-puntua + + + + BT Protocol + BT protokoloa + + + + Next Announce + Hurrengo iragarpena + + + + Min Announce + Iragarpen min + + + Tier Maila - - Protocol - - - - + Status Egoera - + Peers Hartzaileak - + Seeds Emaritzak - + Leeches Izainak - + Times Downloaded Zenbat aldiz deskargatuta: - + Message Mezua - - - Next announce - - - - - Min announce - - - - - v%1 - - TrackerListWidget - + This torrent is private Torrent hau pribatua da - + Tracker editing Aztarnari edizioa - + Tracker URL: Aztarnari URL-a: - - + + Tracker editing failed Aztarnari edizio hutsegitea - + The tracker URL entered is invalid. Sartutako aztarnari URL-a baliogabea da. - + The tracker URL already exists. Aztarnari URL-a jadanik badago. - + Edit tracker URL... Editatu aztarnari URL-a - + Remove tracker Kendu aztarnaria - + Copy tracker URL Kopiatu aztarnari URL-a - + Force reannounce to selected trackers Behartu hautaturiko aztarnarien ber-iragarpena - + Force reannounce to all trackers Behartu aztarnari guztien ber-iragarpena - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu - + Add trackers... - + Gehitu aztarnariak... - + Column visibility Zutabe ikusgarritasuna @@ -10915,7 +11429,7 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Add trackers - + Gehitu aztarnariak @@ -10923,100 +11437,100 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Gehitzeko aztarnarien zerrenda (bat lerroko): - + µTorrent compatible list URL: µTorrentekin bateragarria den zerrenda URL-a: - + Download trackers list - + Deskargatu aztarnarien zerrenda - + Add Gehitu - + Trackers list URL error - + Aztarnarien zerrendako URL errorea - + The trackers list URL cannot be empty - + Aztarnarien zerrendaren URLa ezin da hutsik egon - + Download trackers list error - + Aztarnarien zerrendaren deskarga errorea - + Error occurred when downloading the trackers list. Reason: "%1" - + Errore bat gertatu da aztarnarien zerrenda deskargatzean. Arrazoia: "%1" TrackersFilterWidget - + Warning (%1) Kontuz (%1) - + Trackerless (%1) Aztarnarigabe (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Aztarnari-errorea (%1) - + + Other error (%1) + Bestelako errorea (%1) + + + Remove tracker Kendu aztarnaria - - Resume torrents - Berrekin torrentak + + Start torrents + Hasi torrentak - - Pause torrents - Pausatu torrentak + + Stop torrents + Gelditu torrentak - + Remove torrents - + Kendu torrentak - + Removal confirmation - + Kentze berrespena - + Are you sure you want to remove tracker "%1" from all torrents? - + Ziur "%1" aztarnaria kendu nahi duzula torrent guztietatik? - + Don't ask me again. - + Ez galdetu berriro - + All (%1) this is for the tracker filter Denak (%1) @@ -11025,9 +11539,9 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TransferController - + 'mode': invalid argument - + 'mode': argumentu baliogabea @@ -11117,11 +11631,6 @@ Mesedez hautatu beste izen bat eta saiatu berriro. 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. Berrekite datuak egiaztatzen - - - Paused - Pausatuta - Completed @@ -11145,220 +11654,252 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Akastuna - + Name i.e: torrent name Izena - + Size i.e: torrent size Neurria - + Progress % Done Garapena - + + Stopped + Geldituta + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Egoera - + Seeds i.e. full sources (often untranslated) Emaritzak - + Peers i.e. partial sources (often untranslated) Hartzaileak - + Down Speed i.e: Download speed Jeitsiera Abiadura - + Up Speed i.e: Upload speed Igoera Abiadura - + Ratio Share ratio Maila - + + Popularity + Ospea + + + ETA i.e: Estimated Time of Arrival / Time left UED - + Category Kategoria - + Tags Etiketak - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Gehituta - + Completed On Torrent was completed on 01/01/2010 08:00 Osatuta - + Tracker Aztarnaria - + Down Limit i.e: Download limit Jeitsiera Muga - + Up Limit i.e: Upload limit Igoera Muga - + Downloaded Amount of data downloaded (e.g. in MB) Jeitsita - + Uploaded Amount of data uploaded (e.g. in MB) Igota - + Session Download Amount of data downloaded since program open (e.g. in MB) Saio Jeitsiera - + Session Upload Amount of data uploaded since program open (e.g. in MB) Saio Igoera - + Remaining Amount of data left to download (e.g. in MB) Gelditzen da - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Denbora Ekinean - + + Yes + Bai + + + + No + Ez + + + Save Path Torrent save path - + Gordetze bide-izena - + Incomplete Save Path Torrent incomplete save path - + Gordetze helburu osatugabea - + Completed Amount of data completed (e.g. in MB) Osatuta - + Ratio Limit Upload share ratio limit Maila Muga - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Azken Ikusaldia Osorik - + Last Activity Time passed since a chunk was downloaded/uploaded Azken Jarduera - + Total Size i.e. Size including unwanted data Neurria Guztira - + Availability The number of distributed copies of the torrent Eskuragarritasuna - + Info Hash v1 i.e: torrent info hash v1 - Info hash v2: {1?} + Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 - Info hash v2: {2?} + Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce - + Berriragarri - - + + Private + Flags private torrents + Pribatua + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Denbora aktiboa (hilabetetan), torrenta zein ezaguna den adierazten du + + + + + N/A E/G - + %1 ago e.g.: 1h 20m ago duela %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (emarituta %2) @@ -11367,339 +11908,319 @@ Mesedez hautatu beste izen bat eta saiatu berriro. TransferListWidget - + Column visibility Zutabe ikusgarritasuna - + Recheck confirmation Berregiaztatu baieztapena - + Are you sure you want to recheck the selected torrent(s)? Zihur zaude hautaturiko torrenta(k) berregiaztatzea nahi d(it)uzula? - + Rename Berrizendatu - + New name: Izen berria: - + Choose save path Hautatu gordetzeko helburua - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview Ezinezkoa aurreikuspena - + The selected torrent "%1" does not contain previewable files "%1" hautaturiko torrentak ez du agiri aurreikusgarririk - + Resize columns Zutabeen tamaina aldatu - + Resize all non-hidden columns to the size of their contents Ezkutatu gabeko zutabeen tamaina haien edukien tamainara aldatu - + Enable automatic torrent management - + Gaitu torrent kudeaketa automatikoa - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - + Ziur torrent kudeaketa automatikoa gaitu nahi duzula hautatutako torrente(t)an? Lekuz alda daitezke. - - Add Tags - Gehitu Etiketak - - - + Choose folder to save exported .torrent files - + Aukeratu karpeta esportatutako .torrent fitxategiak gordetzeko + + + + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" + .torrent fitxategia esportatzeak huts egin du. Torrenta: "%1". Biltegia: "%2". Arrazoia: "%3" - Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - - - - A file with the same name already exists - + Badago izen bereko fitxategi bat - + Export .torrent file error - + .torrent fitxategiaren esportazio errorea - + Remove All Tags Kendu Etiketa Guztiak - + Remove all tags from selected torrents? Kendu etiketa guztiak hautatutako torrentetatik? - + Comma-separated tags: Kakotxaz-banandutako etiketak: - + Invalid tag Etiketa baliogabea - + Tag name: '%1' is invalid Etiketa izena: '%1' baliogabea da - - &Resume - Resume/start the torrent - &Berrekin - - - - &Pause - Pause the torrent - &Pausatu - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + &Aurreikusi fitxategia... - + Torrent &options... - + Torrentaren au&kerak... - + Open destination &folder - + Ireki helburuko &karpeta - + Move &up i.e. move up in the queue - + Mugitu &gora - + Move &down i.e. Move down in the queue - + Mugitu &behera - + Move to &top i.e. Move to top of the queue - + Mugitu &goraino - + Move to &bottom i.e. Move to bottom of the queue - + Mugitu &beheraino - + Set loc&ation... - + Ezarri koka&lekua - + Force rec&heck - + Behartu berr&egiaztapena - + Force r&eannounce - + Behartu berr&iragarpena - + &Magnet link - + &Magnet esteka - + Torrent &ID - + Torrent I&D - + &Comment - + &Iruzkina - + &Name - + &Izena - + Info &hash v1 - + Info &hash v1 - + Info h&ash v2 - + Info h&ash v2 + + + + Re&name... + Berrize&ndatu... - Re&name... - - - - Edit trac&kers... - + Editatu az&tarnariak... - + E&xport .torrent... E&sportatu .torrent... - + Categor&y Kategor&ia - + &New... New category... &Berria... - + &Reset Reset category Be&rrezarri - + Ta&gs &Etiketak - + &Add... Add / assign multiple tags... &Gehitu... - + &Remove All Remove all tags K&endu guztiak - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Ezin da berriro iragarpena behartu torrenta Gelditu/Ilaran/Errorea/Egiaztatzen bada + + + &Queue &Ilara - + &Copy &Kopiatu - + Exported torrent is not necessarily the same as the imported - + Esportatutako torrenta ez da zertan inportatutakoaren berdina izan - + Download in sequential order Jeitsi sekuentzialki - - Errors occurred when exporting .torrent files. Check execution log for details. + + Add tags - + + Errors occurred when exporting .torrent files. Check execution log for details. + Erroreak gertatu dira .torrent fitxategiak esportatzean. Egiaztatu exekuzio erregistroa xehetasunetarako. + + + + &Start + Resume/start the torrent + &Hasi + + + + Sto&p + Stop the torrent + &Gelditu + + + + Force Star&t + Force Resume/start the torrent + Behartu &hasiera + + + &Remove Remove the torrent - + &Kendu - + Download first and last pieces first Jeitsi lehen eta azken atalak lehenik - + Automatic Torrent Management Berezgaitasunezko Torrent Kudeaketa - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Modu automatikoan hainbat torrent ezaugarri (adib. gordetze bide-izena) kategoriaren bidez erabakiko dira - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Gain emaritza modua @@ -11709,71 +12230,76 @@ Mesedez hautatu beste izen bat eta saiatu berriro. UI Theme Configuration - + UI gaiaren konfigurazioa Colors - + Koloreak Color ID - + Kolorearen IDa Light Mode - + Modu argia Dark Mode - + Modu iluna Icons - + Ikonoak Icon ID - + Ikonoaren ID-a - + UI Theme Configuration. - + UI gaiaren konfigurazioa. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Ezin izan dira UI gaiaren aldaketak guztiz aplikatu. Xehetasunak erregistroan aurki daitezke. - + Couldn't save UI Theme configuration. Reason: %1 - + Ezin izan da UI gaiaren konfigurazioa gorde. Arrazoia: %1 - - + + Couldn't remove icon file. File: %1. - + Ezin izan da ikono-fitxategia kendu. Fitxategia: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - + Ezin izan da kopiatu ikono-fitxategia. Iturria: %1. Helmuga: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Ezin izan da aplikazioaren estiloa ezarri. Estilo ezezaguna: "%1" + + + Failed to load UI theme from file: "%1" Hutsegitea EI azalgaia agiritik gertatzerakoan: "%1" @@ -11783,12 +12309,12 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Couldn't parse UI Theme configuration file. Reason: %1 - + Ezin izan da UI gaiaren konfigurazio fitxategia analizatu. Arrazoia: %1 UI Theme configuration file has invalid format. Reason: %1 - + UI gaiaren konfigurazio fitxategiak formatu baliogabea du. Arrazoia: %1 @@ -11804,55 +12330,56 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Hutsegitea hobespenak migratzean: WebEI https, agiria: "%1", akatsa: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migratutako hobespenak: WebEI https, esportatuta datuak agirira:: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". - + Balio baliogabea aurkitu da konfigurazio-fitxategian, lehenespenera itzultzen da. Gakoa: "%1". Balio baliogabea: "%2". Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Python exekutagarria aurkitu da. Izena: "%1". Bertsioa: "%2" - + Failed to find Python executable. Path: "%1". - + Python exekutagarria aurkitzeak huts egin du. Bide-izena: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + `python3` exekutagarria PATH ingurune-aldagaian aurkitzeak huts egin du. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - - - - - Failed to find `python` executable in Windows Registry. - + `python` exekutagarria PATH ingurune-aldagaian aurkitzeak huts egin du. PATH: "%1" + Failed to find `python` executable in Windows Registry. + Ezin izan da aurkitu `python` exekutagarria Windows Erregistroan. + + + Failed to find Python executable - + Ezin izan da Python exekutagarria aurkitu @@ -11860,27 +12387,27 @@ Mesedez hautatu beste izen bat eta saiatu berriro. File open error. File: "%1". Error: "%2" - + Errorea fitxategia irekitzean. Fitxategia: "%1". Errorea: "%2" File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - + Fitxategiaren tamainak muga gainditzen du. Fitxategia: "%1". Fitxategiaren tamaina: %2. Tamaina muga: %3 File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + Fitxategiaren tamainak datuen tamainaren muga gainditzen du. Fitxategia: "%1". Fitxategiaren tamaina: %2. Array muga: %3 File read error. File: "%1". Error: "%2" - + Errorea fitxategia irakurtzean. Fitxategia: "%1". Errorea: "%2" Read size mismatch. File: "%1". Expected: %2. Actual: %3 - + Irakurritako tamaina desegokia. Fitxategia: "%1". Esperotakoa: %2. Benetakoa: %3 @@ -11893,12 +12420,12 @@ Mesedez hautatu beste izen bat eta saiatu berriro. <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> - + <html><head/><body><p>Karpeta eta bere azpikarpeta guztiak ikusiko ditu. Eskuzko torrent kudeaketa moduan, hautatutako gordetze bide-izenari azpikarpetaren izena ere gehituko dio.</p></body></html> Recursive mode - + Modu errekurtsiboa @@ -11916,17 +12443,17 @@ Mesedez hautatu beste izen bat eta saiatu berriro. Watched folder path cannot be empty. - + Ikusitako karpetaren bide-izena ezin da hutsik egon. Watched folder path cannot be relative. - + Ikusitako karpetaren bide-izena ezin da erlatiboa izan. Folder '%1' is already in watch list. - + '%1' karpeta dagoeneko ikusitako zerrendan dago. @@ -11942,72 +12469,72 @@ Mesedez hautatu beste izen bat eta saiatu berriro. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Saioko cookie-izen onartezina zehaztu da: '%1'. Lehenetsitako bat erabiltzen da. - + Unacceptable file type, only regular file is allowed. Agiri mota onartezina, ohiko agiriak bakarrik ahalbidetzen dira. - + Symlinks inside alternative UI folder are forbidden. Symloturak EI alternatiboaren agiritegiaren barne eragotzita daude. - + Using built-in WebUI. - + WebUI integratua erabiltzen. - + Using custom WebUI. Location: "%1". - + WebUI pertsonalizatua erabiltzen. Kokalekua: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Hautatutako tokiko (%1) WebUI itzulpena behar bezala kargatu da. - + Couldn't load WebUI translation for selected locale (%1). - + Ezin izan da kargatu WebUI-aren itzulpena hautatutako hizkuntzarako (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Ez dago ':' banantzailea WebEI-ko norbere HTTP idazburuan: "%1" - + Web server error. %1 - + Web zerbitzariaren errorea. %1 - + Web server error. Unknown error. - + Web zerbitzariaren errorea. Errore ezezaguna. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebEI: Jatorri idazburua eta Etiketa jatorria ez datoz bat! Iturburu IP-a: '%1'. Jatorri idazburua: '%2'. Xede jatorria: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebEI: Jatorri idazburua eta Etiketa jatorria ez datoz bat! Iturburu IP-a: '%1'. Jatorri idazburua: '%2'. Xede jatorria: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebEI: Hostalari idazburu baliogabea, ataka ez dator bat! Eskera Iturburu IP-a: '%1'. Zerbitzari ataka: '%2'. Jasotako Hostalar idazburua: '%3'. - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebEI: Hostalari idazburu baliogabea. Eskaturiko iturburu IP-a: '%1'. Jasotako Hostalari idazburua: '%2' @@ -12015,125 +12542,133 @@ Mesedez hautatu beste izen bat eta saiatu berriro. WebUI - + Credentials are not set - + Kredentzialak ez daude ezarrita - + WebUI: HTTPS setup successful - + WebUI: HTTPS konfigurazioa ongi egin da - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: HTTPS konfigurazioak huts egin du, HTTP-ra itzultzen - + WebUI: Now listening on IP: %1, port: %2 - + WebUI: Unean IP honetan entzuten: %1, ataka: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - + Ezin da IParekin lotu: %1, ataka: %2. Arrazoia: %3 + + + + fs + + + Unknown error + akats ezezaguna misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1o %2m - + %1d %2h e.g: 2 days 10 hours %1e %2o - + %1y %2d e.g: 2 years 10 days %1u %2e - - + + 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 diff --git a/src/lang/qbittorrent_fa.ts b/src/lang/qbittorrent_fa.ts index 29df78fd6..1bf14beeb 100644 --- a/src/lang/qbittorrent_fa.ts +++ b/src/lang/qbittorrent_fa.ts @@ -14,77 +14,77 @@ درباره - + Authors - نویسندگان + توسعه‌دهندگان - + Current maintainer نگهدارنده کنونی - + Greece یونان - - + + Nationality: ملیت: - - + + E-mail: رایانامه: - - + + Name: نام: - + Original author سازنده اصلی - + France فرانسه - + Special Thanks سپاس ویژه - + Translators مترجمین - + License اجازه نامه - + Software Used نرم‌افزارهای استفاده شده - + qBittorrent was built with the following libraries: کیوبیت‌تورنت با استفاده از کتابخانه های زیر ساخته شده است: - + Copy to clipboard - + کپی در بریده‌دان @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - + Copyright %1 2006-2025 The qBittorrent project + کپی رایت %1 2006-2025 - پروژه کیوبیت‌تورنت @@ -166,15 +166,10 @@ ذخیره در - + Never show again دیگر نمایش نده - - - Torrent settings - تنضیمات تورنت - Set as default category @@ -191,19 +186,24 @@ شروع تورنت - + Torrent information اطلاعات تورنت - + Skip hash check هش فایل‌ها بررسی نشود Use another path for incomplete torrent - + برای تورنت ناقص از مسیر دیگری استفاده کنید + + + + Torrent options + گزینه‌های تورنت @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - + برای افزودن/حذف برچسب‌ها روی دکمه [...] کلیک کنید. @@ -223,7 +223,7 @@ ... - + ... @@ -231,75 +231,75 @@ شرط توقف: - - + + None هیچ‌کدام - - + + Metadata received متادیتا دریافت شد - + Torrents that have metadata initially will be added as stopped. - + تورنت هایی که در ابتدا دارای ابرداده هستند به عنوان متوقف شده اضافه می شوند. - - + + Files checked فایل‌ها بررسی شد - + Add to top of queue به ابتدای صف اضافه شود - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + با علامت زدن، فایل .torrent بدون توجه به تنظیمات موجود در صفحه "دانلود" در گفتگوی گزینه ها حذف نخواهد شد. - + Content layout: چینش محتوا: - + Original اصلی - + Create subfolder ایجاد زیرشاخه - + Don't create subfolder ایجاد نکردن زیرشاخه - + Info hash v1: هش اطلاعات v1: - + Size: حجم: - + Comment: نظر: - + Date: تاریخ: @@ -329,147 +329,147 @@ آخرین محل ذخیره استفاده شده را به یاد بسپار - + Do not delete .torrent file فایل .torrent را پاک نکن - + Download in sequential order دانلود با ترتیب پی در پی - + Download first and last pieces first ابتدا بخش های اول و آخر را دانلود کن - + Info hash v2: هش اطلاعات v2: - + Select All انتخاب همه - + Select None هیچ‌کدام - + Save as .torrent file... ذخیره به عنوان فایل .torrent - + I/O Error خطای ورودی/خروجی - + Not Available This comment is unavailable در دسترس نیست - + Not Available This date is unavailable در دسترس نیست - + Not available در دسترس نیست - + Magnet link لینک آهنربایی - + Retrieving metadata... درحال دریافت متادیتا... - - + + Choose save path انتخاب مسیر ذخیره - + No stop condition is set. هیچ شرط توقفی تنظیم نشده است. - + Torrent will stop after metadata is received. - + تورنت پس از دریافت ابرداده متوقف می شود. - + Torrent will stop after files are initially checked. - + پس از بررسی اولیه فایل‌ها، تورنت متوقف می‌شود. - + This will also download metadata if it wasn't there initially. - + اگر در ابتدا فرا‌داده نبود، این هم دانلود می‌کند. - - + + N/A غیر قابل دسترس - + %1 (Free space on disk: %2) %1 (فضای خالی دیسک: %2) - + Not available This size is unavailable. در دسترس نیست - + Torrent file (*%1) فایل تورنت (*%1) - + Save as torrent file ذخیره به عنوان فایل تورنت - + Couldn't export torrent metadata file '%1'. Reason: %2. - + فایل فراداده تورنت «%1» صادر نشد. دلیل: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + تا زمانی که اطلاعات آن به طور کامل بارگیری نشود، نمی توان تورنت ن2 ایجاد کرد. - + Filter files... صافی کردن فایلها... - + Parsing metadata... بررسی متادیتا... - + Metadata retrieval complete دریافت متادیتا انجام شد @@ -477,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + بارگیری تورنت... منبع: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + شکست در افزودن تورنت. منبع: "%1". دلیل: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + ادغام ردیاب ها غیرفعال است - + Trackers cannot be merged because it is a private torrent - + ردیاب ها را نمی توان ادغام کرد زیرا یک تورنت خصوصی است - + Trackers are merged from new source + ردیاب ها از منبع جدید ادغام شده‌اند + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -532,12 +532,12 @@ Note: the current defaults are displayed for reference. - + توجه: پیش فرض های فعلی برای مرجع نمایش داده می شوند. Use another path for incomplete torrents: - + از مسیر دیگری برای تورنت های ناقص استفاده کنید: @@ -552,7 +552,7 @@ Click [...] button to add/remove tags. - + برای افزودن/حذف برچسب‌ها روی دکمه [...] کلیک کنید. @@ -562,12 +562,12 @@ ... - + ... Start torrent: - + شروع تورنت: @@ -582,7 +582,7 @@ Add to top of queue: - + افزودن به بالای صف: @@ -592,7 +592,7 @@ Torrent share limits - + محدودیت های اشتراک تورنت @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB مبی بایت - + Recheck torrents on completion بررسی مجدد تورنت ها بعد از دانلود - - + + ms milliseconds میلی ثانیه - + Setting تنظیمات - + Value Value set for this setting مقدار - + (disabled) (غیرفعال) - + (auto) (خودکار) - + + min minutes کمترین - + All addresses تمام آدرسها - + qBittorrent Section بخش کیو بیت تورنت - - + + Open documentation باز کردن مستندات - + All IPv4 addresses تمام آدرسهای IPv4 - + All IPv6 addresses تمام آدرسهای IPv6 - + libtorrent Section بخش لیب تورنت - + Fastresume files - + فایل های سرگیری‌سریع - + SQLite database (experimental) پایگاه داده SQLite (آزمایشی) - + Resume data storage type (requires restart) - + نوع ذخیره اطلاعات از سرگیری (نیاز به راه اندازی مجدد) - + Normal معمولی - + Below normal کمتر از معمولی - + Medium متوسط - + Low کم - + Very low خیلی کم - + Physical memory (RAM) usage limit - + محدودیت استفاده از حافظه فیزیکی (رم) - + Asynchronous I/O threads ترد های ناهمگام I/O - + Hashing threads ترد های هش - + File pool size حجم مخزن فایل - + Outstanding memory when checking torrents میزان حافظه معوق هنگام بررسی تورنت ها - + Disk cache کش دیسک - - - - + + + + + s seconds s - + Disk cache expiry interval دوره انقضا حافظه نهان دیسک - + Disk queue size - + اندازه صف دیسک - - + + Enable OS cache فعال کردن حافظه نهان سیستم عامل - + Coalesce reads & writes میزان خواندن و نوشتن های درهم آمیخته - + Use piece extent affinity - + Send upload piece suggestions پیشنهادات تکه های آپلود را بفرست - - - - + + + + + 0 (disabled) 0 (غیرفعال) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + ذخیره فاصله داده سرگیری [0: غیرفعال] - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB کیبی‌بایت - + (infinite) - + (system default) + (پیش‌فرض سامانه) + + + + Delete files permanently + حذف دائمی پرونده‌ها + + + + Move files to trash (if possible) + انتقال فایل ها به سطل زباله (در صورت امکان) + + + + Torrent content removing mode - + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default پیش فرض - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + 0 (پیش‌فرض سامانه) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP TCP ترجیح داده شود - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address چند اتصال از طرف یک آدرس آی‌پی مجاز است - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names نمایش نام میزبان پییر ها - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus فعال کردن آیکون در منوها - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - - (Auto detect if empty) + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) - + + Ignore SSL errors + نادیده گرفتن خطاهای SSL + + + + (Auto detect if empty) + (تشخیص خودکار خالی بودن) + + + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + ثانیه + + + + -1 (unlimited) + -1 (نامحدود) + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications اعلان‌ها نمایش داده شود - + Display notifications for added torrents اعلان‌ها برای تورنت‌های اضافه شده نمایش داده شود - + Download tracker's favicon - + Save path history length - + Enable speed graphs فعال‌سازی گراف های سرعت - + Fixed slots جایگاه های ثابت - + Upload rate based - + Upload slots behavior - + Round-robin نوبت‌گردشی - + Fastest upload سریعترین آپلود - + Anti-leech ضد لیچ - + Upload choking algorithm - + Confirm torrent recheck تایید دوباره توررنت - + Confirm removal of all tags حذف همه برچسب‌ها را تایید کنید - + Always announce to all trackers in a tier همیشه همه ترکر های در یک سطح را باخبر کن - + Always announce to all tiers همیشه همه ردیف‌ها را باخبر کن - + Any interface i.e. Any network interface هر رابطی - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries نمایش کشور پییر ها - + Network interface رابط شبکه - + Optional IP address to bind to آدرس آی‌پی اختیاری برای متصل کردن به - + Max concurrent HTTP announces - + Enable embedded tracker فعال کردن ترکر تعبیه شده - + Embedded tracker port پورت ترکر تعبیه شده + + AppController + + + + Invalid directory path + + + + + Directory does not exist + دایرکتوری وجود ندارد + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + کوکی‌ها باید آرایه‌ای باشند + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 مسیر پیکرپندی مورد استفاده: %1 - + 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. با تشکر از شما برای استفاده از کیوبیت‌تورنت. - + Torrent: %1, sending mail notification تورنت: %1، در حال ارسال اعلان از طریق ایمیل - + Add torrent failed - + تورنت اضافه نشد - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit خروج - + I/O Error i.e: Input/Output Error خطای ورودی/خروجی - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1432,102 +1532,112 @@ - + Torrent added تورنت اضافه شد - + '%1' was added. e.g: xxx.avi was added. '%1' اضافه شده. - + Download completed - + بارگیری شد - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + این یک ایمیل آزمایشی است. + + + + Test email + آزمایش ایمیل + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. بارگیری '%1' به پایان رسید. - + Information اطلاعات - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + خروج - + Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never هرگز - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + qBittorrent خاموش می شود... - + Saving torrent progress... ذخیره کردن پیشرفت تورنت... - + qBittorrent is now ready to exit - + qBittorrent اکنون آماده خروج است @@ -1601,15 +1711,15 @@ Priority: - + اولویت: - + Must Not Contain: نباید شامل باشد: - + Episode Filter: فیلتر قسمت: @@ -1622,7 +1732,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Torrent parameters - + پارامترهای تورنت @@ -1661,263 +1771,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &صدور... - + 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 شماره فصل، اجباری و یک عدد غیر صفر است. - + 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> با قسمت ۲۵ فصل اول تطبیق دارد. - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Episode number is a mandatory positive value شماره قسمت یک عدد اجباری مثبت است - + Rules قوانین - + Rules (legacy) قوانین (قدیمی) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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 تایید حذف قانون - + Invalid action این عمل نامعتبر است - + The list is empty, there is nothing to export. این لیست خالی است ، چیزی برای خروجی گرفتن وجود ندارد. - + Export RSS rules خروجی گرفتن قوانین آراس‌اس - + I/O Error خطای I/O - + Failed to create the destination file. Reason: %1 ایجاد فایل مقصد ناموفق بود. دلیل: %1 - + Import RSS rules - + وارد کردن قوانین خوراک خوان - + Failed to import the selected rules file. Reason: %1 - + Add new rule... اضافه کردن قانون جدید ... - + Delete rule حذف قانون - + Rename rule... تغییر نام قانون - + Delete selected rules حذف قانون های انتخاب شده - + Clear downloaded episodes... پاکسازی قسمت های دانلود شده... - + Rule renaming - + Please type the new rule name لطفا نام قانون جدید را وارد کنید - + Clear downloaded episodes پاکسازی قسمت های دانلود شده - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 موقعیت %1: %2 - + Wildcard mode: you can use - - + + Import error - + خطای واردکردن - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1959,7 +2069,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1969,28 +2079,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2001,16 +2121,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 امکان ذخیره داده به '%1' وجود ندارد. خطا: %2 @@ -2018,38 +2139,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + پیدا نشد. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + پایگاه داده خراب است. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2057,22 +2200,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2080,457 +2223,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON روشن - - - - - - - - - + + + + + + + + + OFF خاموش - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED اجبار شده - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - + تورنت: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + تورنت قطع شد. + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + ادغام ردیاب ها غیرفعال است + + + + Trackers cannot be merged because it is a private torrent + ردیاب ها را نمی توان ادغام کرد زیرا یک تورنت خصوصی است + + + + Trackers are merged from new source + ردیاب ها از منبع جدید ادغام شده‌اند + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. فیلتر آی‌پی - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 غیرفعال است - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 غیرفعال است - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,13 +2735,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2560,67 +2749,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On روشن - + Off خاموش - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2641,189 +2830,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - + [options] [(<filename> | <url>)...] - + Options: تنظیمات: - + Display program version and exit - + Display this help message and exit - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port پورت - + Change the WebUI port - + Change the torrenting port - + Disable splash screen غیرفعال کردن آرم آغازین - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" مسیر - + Store configuration files in <dir> - - + + name نام - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path مسیر - + Torrent save path مسیر ذخیره سازی تورنت - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check هش فایل‌ها بررسی نشود - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first ابتدا قطعه های اول و آخر را بارگیری کن - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help کمک @@ -2875,32 +3064,37 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - ادامه دانلود تورنتها + Start torrents + شروع تورنت‌ها - Pause torrents - توقف دانلود تورنتها + Stop torrents + توقف تورنت‌ها Remove torrents - + حذف تورنت‌‌ها ColorWidget - + Edit... - + Reset بازنشانی + + + System + + CookiesDialog @@ -2941,12 +3135,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2954,7 +3148,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2964,7 +3158,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Remove torrent(s) - + حذف تورنت(ها) @@ -2973,23 +3167,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove حذف @@ -2999,15 +3193,15 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Download from URLs - + دانلود از آدرس‌ها - + Add torrent links افزودن لینک های تورنت - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3017,12 +3211,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also بارگیری - + No URL entered آدرسی وارد نشده است - + Please type at least one URL. لطفا حداقل یک URL تایپ کنید @@ -3073,7 +3267,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also RSS feeds - + خوراک‌‌های وب @@ -3096,7 +3290,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ... Launch file dialog button text (brief) - + ... @@ -3181,25 +3375,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + بارگیری تورنت... منبع: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present تورنت از قبل وجود دارد - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3207,38 +3424,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. @@ -3246,17 +3463,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3297,26 +3514,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... مرور... - + Reset بازنشانی - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3348,13 +3599,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3363,60 +3614,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3429,600 +3680,677 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ویرایش - + &Tools ابزارها - + &File پرونده - + &Help راهنما - + On Downloads &Done - + &View نمایش - + &Options... تنظیمات... - - &Resume - ادامه - - - + &Remove - + حذف - + Torrent &Creator تورنت ساز - - + + Alternative Speed Limits - + &Top Toolbar نوار ابزار بالا - + Display Top Toolbar نمایش نوارابزار بالا - + Status &Bar نوار وضعیت - + Filters Sidebar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar نمایش سرعت انتقال در نوار عنوان - + &RSS Reader - + Search &Engine موتور جستجو - + L&ock qBittorrent قفل کردن کیوبیت‌تورنت - + Do&nate! حمایت مالی! - + + Sh&utdown System + + + + &Do nothing - + Close Window بستن پنجره - - R&esume All - ادامه همه - - - + Manage Cookies... مدیریت کوکی‌ها... - + Manage stored network cookies - + Normal Messages پیغام‌های معمولی - + Information Messages - + پیغام‌های اطلاعاتی - + Warning Messages - + پیغام‌های هشدار - + Critical Messages - + پیام‌های بحرانی - + &Log گزارش - + + Sta&rt + + + + + Sto&p + توقف + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue انتهای صف - + Move to the bottom of the queue انتقال به انتهای صف - + Top of Queue بالای صف - + Move to the top of the queue انتقال به اول صف - + Move Down Queue به عقب بردن در صف - + Move down in the queue انتقال به انتهای صف - + Move Up Queue جلو بردن صف - + Move up in the queue جلو بردن در صف - + &Exit qBittorrent خروج از کیوبیت‌تورنت - + &Suspend System - + &Hibernate System - - S&hutdown System - - - - + &Statistics آمار - + Check for Updates جستجو برای به‌روز رسانی ها - + Check for Program Updates جستجو برای به‌روز رسانی نرم‌افزار - + &About درباره - - &Pause - توقف - - - - P&ause All - توقف همه - - - + &Add Torrent File... افزودن فایل تورنت... - + Open باز کردن - + E&xit خروج - + Open URL بازکردن آدرس - + &Documentation مستندات - + Lock قفل - - - + + + Show نمایش دادن - + Check for program updates جستجو برای به‌روز رسانی نرم‌افزار - + Add Torrent &Link... افزودن لینک تورنت... - + If you like qBittorrent, please donate! اگر به qBittorrent علاقه دارید، لطفا کمک مالی کنید! - - + + Execution Log - + Clear the password گذزواژه را حذف کن - + &Set Password تعیین گذرواژه - + Preferences تنظیمات - + &Clear Password حذف گذرواژه - + Transfers جابه‌جایی‌ها - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only فقط آیکون‌ها - + Text Only فقط متن - + Text Alongside Icons متن در کنار آیکون‌ها - + Text Under Icons متن زیر آیگون‌ها - + Follow System Style دنبال کردن سبک سیستم - - + + UI lock password کلمه عبور قفل رابط کاربری - - + + Please type the UI lock password: لطفا کلمه عبور برای قفل کردن رابط کاربری را وارد کنید: - + Are you sure you want to clear the password? از حذف گذرواژه مطمئن هستید؟ - + Use regular expressions استفاده از عبارات با قاعده - + + + Search Engine + موتور جستجو + + + + Search has failed + جستجو ناموفق بود + + + + Search has finished + جستجو به پایان رسید + + + Search جستجو - + Transfers (%1) جابه‌جایی‌ها (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No &نه - + &Yes &بله - + &Always Yes &همواره بله - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime ران‌تایم پایتون پیدا نشد - + qBittorrent Update Available به‌روزرسانی‌ای برای کیوبیت‌ تورنت موجود است - + 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. - - + + Old Python Runtime ران‌تایم قدیمی پایتون - + A new version is available. یک نسخه جدید موجود است. - + Do you want to download %1? آیا می‌خواهید %1 دانلود شود؟ - + Open changelog... باز کردن لیست تغییرات... - + No updates available. You are already using the latest version. به روزرسانی‌ای در دسترس نیست. شما هم اکنون از آخرین نسخه استفاده می‌کنید - + &Check for Updates &بررسی به روز رسانی‌های جدید - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + متوقف شده + + + Checking for Updates... در حال بررسی برای به روزرسانی ... - + Already checking for program updates in the background هم اکنون درحال بررسی برای به‌روزرسانی جدید در پس زمینه هستیم - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error خطا در بارگیری - - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - - + + Invalid password رمز عبور نامعتبر - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) آراس‌اس (%1) - + 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 - + Hide پنهان کردن - + Exiting qBittorrent در حال خروج از کیوبیت‌تورنت - + Open Torrent Files - + Torrent Files پرونده‌های تورنت @@ -4217,7 +4545,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5511,47 +5844,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5589,486 +5922,510 @@ Please install it manually. بیت‌تورنت - + RSS RSS - - Web UI - رابط کاربری وب - - - + Advanced پیشرفته - + Customize UI Theme... - + Transfer List لیست انتقال - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always همیشه - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - آغاز / توقف تورنت - - - - + + Open destination folder باز کردن پوشه مقصد - - + + No action - + Completed torrents: تورنت‌های به پایان رسیده: - + Auto hide zero status filters - + Desktop دسکتاپ - + Start qBittorrent on Windows start up اجرای کیوبیت‌تورنت در حین شروع به کار ویندوز - + Show splash screen on start up نمایش صفحه معرفی در هنگام اجرای نرم‌افزار - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB کیبی‌بایت - + + Show free disk space in status bar + + + + Torrent content layout: چینش محتوای تورنت: - + Original اصلی - + Create subfolder ایجاد زیر پوشه - + Don't create subfolder زیر پوشه ایجاد نکن - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue به ابتدای صف اضافه شود - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... افزودن... - + Options.. - + Remove حذف - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - + حالت ترکیبی - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time از : - + To: To end time به : - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption رمزگذاری مجاز است - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS خوان - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: - - - + + + min minutes حداقل - + Seeding Limits - - Pause torrent - توقف تورنت - - - + Remove torrent پاک کردن تورنت - + Remove torrent and its files تورنت و فایل‌های مرتبط همگی پاک شوند - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + توقف تورنت + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + آدرس: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents فعال کردن بارگیری خودکار تورنت‌های RSS - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: فیلترها: - + Web User Interface (Remote control) - + IP address: آدرس آی‌پی: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never هرگز - + ban for: دلیل مسدودی: - + Session timeout: - + پایان زمان جلسه: - + Disabled غیرفعال شده - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6077,441 +6434,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + جستجو + + + + WebUI + + + + Interface - + Language: زبان: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal نرمال - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates جستجو برای به‌روز رسانی نرم‌افزار - + Power Management مدیریت انرژی - + + &Log Files + + + + Save path: مسیر ذخیره سازی: - + Backup the log file after: - + Delete backup logs older than: - - When adding a torrent + + Show external IP in status bar - + + When adding a torrent + هنگام افزودن تورنت جدید + + + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management مدیریت ذخیره سازی - + Default Torrent Management Mode: - + Manual دستی - + Automatic خودکار - + When Torrent Category changed: - + Relocate torrent - + جابجایی تورنت - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + استفاده از زیر شاخه‌ها - + Default Save Path: - + مکان ذخیره‌سازی پیش‌فرض: - + Copy .torrent files to: کپی فایل های .torrent به: - + Show &qBittorrent in notification area - - &Log file - فایل گزارش - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme استفاده از قالب دلخواه - + UI Theme file: فایل قالب: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days روز - + months Delete backup logs older than 10 months ماه - + years Delete backup logs older than 10 years سال - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None هیچ‌کدام - - + + Metadata received متادیتا دریافت شد - - + + Files checked فایل‌ها بررسی شد - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + از مسیر دیگری برای تورنت های ناقص استفاده کنید: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6528,766 +6926,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver گیرنده - + To: To receiver به: - + SMTP server: سرور SMTP - + Sender ارسال کننده - + From: From sender از: - + This server requires a secure connection (SSL) - - + + Authentication احراز هویت - - - - + + + + Username: نام کاربری: - - - - + + + + Password: کلمه عبور: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP و μTP - + Listening Port - + پورت گوش‌دادن - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random بختانه - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits محدودیت‌های اتصال - + Maximum number of connections per torrent: حداکثر تعداد اتصال در هر تورنت: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server سرور پروکسی - + Type: نوع: - + SOCKS4 ساکس4 - + SOCKS5 ساکس5 - + HTTP HTTP - - + + Host: میزبان: - - - + + + Port: پورت: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - اطلاعات: کلمه عبور بدون رمزگذاری ذخیره شده - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter بارگذاری دوباره فیلتر - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s کیبی‌بایت/ثانیه - - + + Upload: بارگذاری: - - + + Download: بارگیری: - + Alternative Rate Limits - + Start time زمان شروع - + End time زمان پایان - + When: چه زمانی: - + Every day هر روز - + Weekdays روزهای هفته - + Weekends آخر هفته‌ها - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy حریم خصوصی - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: نوع رمزگذاری: - + Require encryption نیاز به رمزگذاری است - + Disable encryption رمزگذاری غیرفعال شود - + Enable when using a proxy or a VPN connection - + Enable anonymous mode فعال کردن حالت ناشناس - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + آستانه نرخ آپلود: - + Download rate threshold: - + آستانه نرخ دانلود: - - - - + + + + sec seconds ثانیه - + Torrent inactivity timer: زمان سنج غیر فعال بودن تورنت: - + then سپس - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: گواهینامه: - + Key: کلید: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password تغییر گذرواژه فعلی - - Use alternative Web UI - - - - + Files location: محل فایل ها: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security امنیت - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + افزودن هدرهای HTTP سفارشی - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: سرویس: - + Register ثبت نام - + Domain name: نام دامنه: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. هیچ شرط توقفی تنظیم نشده است. - + Torrent will stop after metadata is received. - + تورنت پس از دریافت ابرداده متوقف می شود. - + Torrent will stop after files are initially checked. - + پس از بررسی اولیه فایل‌ها، تورنت متوقف می‌شود. - + This will also download metadata if it wasn't there initially. - + اگر در ابتدا فرا‌داده نبود، این هم دانلود می‌کند. - + %N: Torrent name - + %L: Category - + %L: دسته - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %D: مسیر ذخیره - + %C: Number of files - + %C: تعداد فایلها - + %Z: Torrent size (bytes) - + %Z: اندازه تورنت (بایت) - + %T: Current tracker - + %T: ردیاب فعلی - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + امتحان ایمیل + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (هیچ کدام) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate گواهینامه - + Select certificate انتخاب گواهینامه - + Private key کلید خصوصی - + Select private key انتخاب کلید خصوصی - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory انتخاب مسیر برای خروجی گرفتن - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + تورنت هایی که در ابتدا دارای ابرداده هستند به عنوان متوقف شده اضافه می شوند. - + Choose an IP filter file - + All supported filters همه فیلترهای پشتیبانی شده - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences تنظیمات - + Time Error خطا در زمان - + The start time and the end time can't be the same. - - + + Length Error خطا در طول @@ -7295,241 +7738,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown ناشناس - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + کشور/منطقه - + IP/Address - + Port پورت - + Flags علامت‌ها - + Connection اتصال - + Client i.e.: Client application سرویس گیرنده - + Peer ID Client i.e.: Client resolved from Peer ID - + مشتری شناسه همتا - + 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. ارتباط - + Files i.e. files that are being downloaded right now پرونده‌ها - + Column visibility نمایش ستون - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید - + Add peers... - + افزودن همتایان... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A در دسترس نیست - + Copy IP:port کپی آی‌پی:پروت @@ -7539,7 +7987,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Add Peers - + افزودن همتایان @@ -7547,7 +7995,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port @@ -7588,27 +8036,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: فایل‌ها در این قسمت - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information برای دیدن اطلاعات دقیق تا آماده شدن متادیتا صبر کنید - + Hold Shift key for detailed information برای اطلاعات جامع کلید شیفت را نگه دارید @@ -7621,58 +8069,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not جستجوی افزونه‌ها - + Installed search plugins: افزونه‌ی جستجوی نصب شده: - + Name نام - + Version نسخه - + Url آدرس - - + + Enabled فعال شده - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. هشدار: هنگام بارگیری تورنت از هر یک از این موتورهای جستجو ، حتماً از قوانین کپی رایت کشور خود پیروی کنید. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one نصب یک نمونه جدید - + Check for updates بررسی به روز رسانی‌های جدید - + Close بستن - + Uninstall پاک کردن @@ -7792,100 +8240,67 @@ Those plugins were disabled. منبع افزونه - + Search plugin source: منبع افزونه جستجو: - + Local file پرونده محلی - + Web link پیوند وب - - PowerManagement - - - qBittorrent is active - کیوبیت‌تورنت فعال است - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview پیش نمایش - + Name نام - + Size سایز - + Progress پیشرفت - + Preview impossible پیش نمایش غیر ممکن است - + Sorry, we can't preview this file: "%1". متاسفانه قادر به پیش‌نمایش این فایل نیستیم: "%1" - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید @@ -7896,27 +8311,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7957,12 +8372,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: دانلود شده: - + Availability: در دسترس: @@ -7977,53 +8392,53 @@ Those plugins were disabled. جابه‌جایی - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) مدت زمان فعال بودن: - + ETA: زمان حدودی اتمام: - + Uploaded: آپلود شده: - + Seeds: سید ها: - + Download Speed: سرعت دانلود: - + Upload Speed: سرعت آپلود: - + Peers: - + همتایان: - + Download Limit: محدودیت دانلود: - + Upload Limit: محدودیت آپلود: - + Wasted: هدر رفت: @@ -8033,193 +8448,220 @@ Those plugins were disabled. اتصالات: - + Information اطلاعات - + Info Hash v1: - + هش اطلاعات ن1: - + Info Hash v2: - + هش اطلاعات ن2 - + Comment: نظر: - + Select All انتخاب همه - + Select None هیچ‌کدام - + Share Ratio: نسبت اشتراک گذاری: - + Reannounce In: اعلام دوباره در: - + Last Seen Complete: آخرین بار کامل دیده شده - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: سایز نهایی: - + Pieces: قطعات: - + Created By: ساخته شده توسط: - + Added On: اضافه شده در: - + Completed On: کامل شده در: - + Created On: ساخته شده در: - + + Private: + + + + Save Path: مسیر ذخیره سازی: - + Never هرگز - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 در %2 (%3 دارد) - - + + %1 (%2 this session) - + %1 (%2 در این جلسه) - - + + + N/A در دسترس نیست - + + Yes + بله + + + + No + نه + + + %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) + + + + Add web seed + Add HTTP source - - New Web seed + + Add web seed: - - Remove Web seed + + + This web seed is already in the list. - - Copy Web seed URL - - - - - Edit Web seed URL - - - - + Filter files... صافی کردن فایلها... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8227,33 +8669,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. فرمت داده نامعتبر است. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format فرمت داده نامعتبر است. - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8261,22 +8703,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8312,12 +8754,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. فید آراس‌اس نامعتبر است. - + %1 (line: %2, column: %3, offset: %4). @@ -8325,103 +8767,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. پوشه ریشه را نمی‌توان جابجا کرد. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. پوشه ریشه را نمی‌توان پاک کرد. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + آدرس: + + + + Refresh interval: + فاصله بازخوانی: + + + + sec + ثانیه + + + + Default + پیش فرض + + RSSWidget @@ -8441,8 +8924,8 @@ Those plugins were disabled. - - + + Mark items read موارد به صورت خوانده شده علامت گذاری شود @@ -8467,132 +8950,115 @@ Those plugins were disabled. - - + + Delete پاک کردن - + Rename... تغییر نام ... - + Rename تغییر نام - - + + Update به‌روزرسانی - + New subscription... اشتراک جدید... - - + + Update all feeds به‌روزرسانی همه‌ی فیدها - + Download torrent دانلود تورنت - + Open news URL بازکردن آدرس خبر - + Copy feed URL کپی آدرس فید - + New folder... پوشه جدید ... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name لطفا یک نام برای پوشه انتخاب کنید - + Folder name: نام پوشه: - + New folder پوشه جدید - - - Please type a RSS feed URL - لطفا آدرس فید را تایپ کنید - - - - - Feed URL: - آدرس فید: - - - + 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: نام فید جدید: - + Rename failed تغییر نام با شکست مواجه شد - + Date: تاریخ: - + Feed: - + Author: مولف: @@ -8600,38 +9066,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. برای استفاده از موتور جستجو باید پایتون نصب باشد. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins در حال به‌روزرسانی %1 افزونه - + Updating plugin %1 به‌روزرسانی افزونه %1 - + Failed to check for plugin updates: %1 @@ -8706,237 +9172,247 @@ Those plugins were disabled. حجم: - + 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 - موتور جستجو - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only فقط نام های تورنت - + Everywhere همه جا - + Use regular expressions استفاده از عبارات با قاعده - + Open download window - + Download بارگیری - + Open description page باز کردن صفحه توضیحات - + Copy کپی - + Name نام - + Download link لینک بارگیری - + Description page URL لینک صفحه توضیحات - + Searching... در حال جستجو... - + Search has finished جستجو به پایان رسید - + Search aborted جستجو به پایان نرسید - + An error occurred during search... جستجو با یک خطا مواجه شد... - + Search returned no results جستجو نتیجه ای نداشت - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility نمایش ستون - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. یک ویرایش تازه تر این افزونه از پیش نصب شده. - + Plugin %1 is not supported. افزونه %1 پشتیبانی نمی‌شود. - - + + Plugin is not supported. افزونه پشتیبانی نمی‌شود. - + Plugin %1 has been successfully updated. افزونه %1 با موفقیت بروزرسانی شد - + All categories همه دسته‌ها - + Movies فیلم - + TV shows برنامه های تلویزیونی - + Music موزیک - + Games بازی - + Anime انیمه - + Software نرم‌افزار - + Pictures عکس - + Books کتاب - + Update server is temporarily unavailable. %1 سرور بروزرسانی موقتا در دسترس نیست. %1 - - + + Failed to download the plugin file. %1 بارگیری فایل افزونه ناموفق بود. %1 - + Plugin "%1" is outdated, updating to version %2 افزونه "%1" قدیمی است، در حال بروزرسانی به نسخه %2 - + Incorrect update info received for %1 out of %2 plugins. اطلاعات نادرست بروزرسانی برای %1 از %2 افزونه دریافت شد. - + Search plugin '%1' contains invalid version string ('%2') @@ -8946,113 +9422,144 @@ Those plugins were disabled. - - - - Search جستجو - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... جستجوی افزونه ها... - + A phrase to search for. یک عبارت برای جستجو. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example مثال: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins همه افزونه‌ها - + Only enabled فقط فعال شده - + + + Invalid data format. + فرمت داده نامعتبر است. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab بستن زبانه - + Close all tabs بستن همه زبانه‌ها - + Select... انتخاب... - - - + + Search Engine موتور جستجو - + + Please install Python to use the Search Engine. لطفا برای استفاده از موتور جستجو، پایتون را نصب کنید. - + Empty search pattern الگوی جستجوی خالی - + Please type a search pattern first لطفا ابتدا یک الگوی جستجو را وارد کنید - + + Stop توقف + + + SearchWidget::DataStorage - - Search has finished - جستجو به پایان رسید + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - جستجو ناموفق بود + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9165,34 +9672,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: آپلود: - - - + + + - - - + + + KiB/s کیبی‌بایت/ثانیه - - + + Download: دانلود: - + Alternative speed limits @@ -9384,39 +9891,39 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + بارگذاری تمام وقت: - + Total buffer size: - + اندازه کل بافر: Performance statistics - + آمار عملکرد @@ -9424,12 +9931,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9448,51 +9955,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: وضعیت اتصال: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes - + qBittorrent needs to be restarted! کیوبیت‌تورنت نیاز به راه اندازی مجدد دارد! - - - + + + Connection Status: وضعیت اتصال: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online برخط - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9522,13 +10055,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - + Running (0) + در‌حال اجرا (0) - Paused (0) - + Stopped (0) + متوقف (0) @@ -9543,27 +10076,27 @@ Click the "Search plugins..." button at the bottom right of the window Stalled (0) - متوقف شده (0) + متوقف (0) Stalled Uploading (0) - + بارگذاری متوقف‌شده (0) Stalled Downloading (0) - + بارگیری متوقف‌شده (0) Checking (0) - + بررسی (0) Moving (0) - + انتقال دادن (0) @@ -9578,47 +10111,47 @@ Click the "Search plugins..." button at the bottom right of the window Downloading (%1) - در حال دانلود (%1) + در‌حال دانلود (%1) Seeding (%1) - در حال سید کردن (%1) + در‌حال سید کردن (%1) Completed (%1) - کامل شده (%1) + کامل‌شده (%1) + + + + Running (%1) + در‌حال اجرا (%1) - Paused (%1) - متوقف شده (%1) + Stopped (%1) + متوقف (%1) + + + + Start torrents + شروع تورنت‌ها + + + + Stop torrents + توقف تورنت‌ها Moving (%1) - - - - - Resume torrents - ادامه دانلود تورنتها - - - - Pause torrents - توقف دانلود تورنتها + انتقال (%1) Remove torrents - - - - - Resumed (%1) - ادامه دانلود (%1) + حذف تورنت‌‌ها @@ -9638,22 +10171,22 @@ Click the "Search plugins..." button at the bottom right of the window Stalled Uploading (%1) - + بارگذاری متوقف‌شده (%1) Stalled Downloading (%1) - + بارگیری متوقف‌شده (%1) Checking (%1) - + بررسی (%1) Errored (%1) - + خطا (%1) @@ -9691,31 +10224,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags حذف برچسب‌های استفاده نشده + + + Remove torrents + حذف تورنت‌‌ها + - Resume torrents - ادامه دانلود تورنتها + Start torrents + شروع تورنت‌ها - Pause torrents - توقف دانلود تورنتها - - - - Remove torrents - - - - - New Tag - برچسب جدید + Stop torrents + توقف تورنت‌ها Tag: برچسب‌: + + + Add tag + افزودن برچسب + Invalid tag name @@ -9752,12 +10285,12 @@ Click the "Search plugins..." button at the bottom right of the window Save path for incomplete torrents: - + مسیر ذخیره برای تورنت‌های ناقص: Use another path for incomplete torrents: - + از مسیر دیگری برای تورنت های ناقص استفاده کنید: @@ -9787,12 +10320,12 @@ Click the "Search plugins..." button at the bottom right of the window Choose save path - انتخاب مسیر ذخیره سازی + انتخاب محل ذخیره Choose download path - + انتخاب محل بارگیری @@ -9809,7 +10342,9 @@ Click the "Search plugins..." button at the bottom right of the window Category name cannot contain '\'. Category name cannot start/end with '/'. Category name cannot contain '//' sequence. - + نام دسته نمی تواند حاوی "\" باشد. +نام دسته نمی تواند با "/" شروع/پایان یابد. +نام دسته نمی تواند حاوی دنباله "//" باشد. @@ -9820,7 +10355,8 @@ Category name cannot contain '//' sequence. Category with the given name already exists. Please choose a different name and try again. - + دسته ای با نام داده شده از قبل وجود دارد. +لطفاً نام دیگری انتخاب و دوباره امتحان کنید. @@ -9859,32 +10395,32 @@ Please choose a different name and try again. TorrentContentModel - + Name نام - + Progress پیشرفت - + Download Priority اولویت دانلود - + Remaining باقیمانده - + Availability در دسترس - + Total Size سایز نهایی @@ -9929,118 +10465,118 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error خطا در تغییر نام - + Renaming در حال تغییر نام - + New name: نام جدید: - + Column visibility نمایش ستون - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید - + Open باز کردن - + Open containing folder - + باز کردن پوشه حاوی - + Rename... تغییر نام ... - + Priority اولویت - - + + Do not download دانلود نکن - + Normal معمولی - + High بالا - + Maximum حداکثر - + By shown file order - + با ترتیب فایل نشان داده شده - + Normal priority اولویت عادی - + High priority اولویت بالا - + Maximum priority اولویت بیشینه - + Priority by shown file order - + اولویت با ترتیب فایل نشان داده شده TorrentCreatorController - + Too many active tasks - + وظایف فعال بیش از حد - + Torrent creation is still unfinished. - + ایجاد تورنت هنوز ناتمام است. - + Torrent creation failed. - + ایجاد تورنت ناموفق بود. @@ -10067,13 +10603,13 @@ Please choose a different name and try again. - + Select file انتخاب فایل - + Select folder انتخاب پوشه @@ -10110,12 +10646,12 @@ Please choose a different name and try again. Private torrent (Won't distribute on DHT network) - + تورنت خصوصی (در شبکه DHT توزیع نمی شود) Start seeding immediately - + شروع فوری سید‌کردن @@ -10125,12 +10661,12 @@ Please choose a different name and try again. Optimize alignment - + بهینه سازی تراز Align to piece boundary for files larger than: - + تراز کردن مرز برای فایل های بزرگتر از: @@ -10148,87 +10684,83 @@ Please choose a different name and try again. زمینه‌ها - + You can separate tracker tiers / groups with an empty line. - + می توانید ردیف ها / گروه های ردیاب را با یک خط خالی جدا کنید. - + Web seed URLs: - + آدرس‌های سید وب: - + Tracker URLs: - آدرس‌های ترکر: + آدرس‌های ردیاب: - + Comments: نظرات: - + Source: منبع: - + Progress: پیشرفت: - + Create Torrent ساختن تورنت - - + + Torrent creation failed ساختن تورنت با شکست مواجه شد - + Reason: Path to file/folder is not readable. - + دلیل: مسیر فایل/پوشه قابل خواندن نیست. - + Select where to save the new torrent - + محل ذخیره تورنت جدید را انتخاب کنید - + Torrent Files (*.torrent) فایل های تورنت (*.torrent) - Reason: %1 - علت: %1 - - - + Add torrent to transfer list failed. - + افزودن تورنت به لیست انتقال ناموفق بود. - + Reason: "%1" - + دلیل: "%1" - + Add torrent failed - + تورنت اضافه نشد - + Torrent creator سازنده تورنت - + Torrent created: تورنت ایجاد شد: @@ -10236,32 +10768,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10269,42 +10801,29 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - - - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - متادیتا نامعتبر + پوشه مشاهده‌شده. "%1" @@ -10317,7 +10836,7 @@ Please choose a different name and try again. Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - + حالت خودکار به این معنی است که ویژگی‌های تورنت مختلف (مثلاً مسیر ذخیره) توسط دسته مرتبط تعیین می‌شود @@ -10332,176 +10851,164 @@ Please choose a different name and try again. Use another path for incomplete torrent - + برای تورنت ناقص از مسیر دیگری استفاده کنید - + Category: دسته بندی: - - Torrent speed limits + + Torrent Share Limits - + Download: بارگیری: - - + + - - + + Torrent Speed Limits + + + + + KiB/s کیبی‌بایت/ثانیه - + These will not exceed the global limits - + Upload: بارگذاری: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - تنظیم مقدار اشتراک گذاری به - - - - ratio - نسبت - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order بارگیری به ترتیب پی در پی - + Disable PeX for this torrent - + Download first and last pieces first ابتدا قطعه های اول و آخر را بارگیری کن - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path انتخاب مسیر ذخیره سازی - + Not applicable to private torrents - - - No share limit method selected - هیچ روشی برای محدودیت به اشتراک گذاری انتخاب نشده است - - - - Please select a limit method first - لطفا ابتدا یک روش محدودیت گذاری انتخاب کنید - TorrentShareLimitsWidget - - - + + + + Default - پیش فرض + پیش فرض + + + + + + Unlimited + نامحدود - - - Unlimited - - - - - - + + Set to - + تنظیم کردن - + Seeding time: - - - - + + + + + + min minutes - + حداقل - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + توقف تورنت + + + + Remove torrent + پاک کردن تورنت + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10514,32 +11021,32 @@ Please choose a different name and try again. - - New Tag - برچسب جدید + + Add tag + افزودن برچسب - + Tag: برچسب‌: - + Invalid tag name نام برچسب نامعتبر است - + Tag name '%1' is invalid. - + Tag exists برچسب وجود دارد - + Tag name already exists. نام برچسب از قبل وجود دارد @@ -10547,115 +11054,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. خطا: '%1' فایل تورنت معتبری نمی‌باشد. - + Priority must be an integer اولویت باید یک عدد صحیح باشد - + Priority is not valid اولویت نامعتبر است - + Torrent's metadata has not yet downloaded - + File IDs must be integers شناسه فایل ها باید یک عدد صحیح باشد - + File ID is not valid شناسه فایل نامعتبر است - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty محل ذخیره نمی‌تواند خالی باشد - - + + Cannot create target directory - - + + Category cannot be empty دسته بندی نمی‌تواند خالی باشد - + Unable to create category نمی‌توان دسته بندی را ایجاد کرد - + Unable to edit category نمی‌توان دسته بندی را ویرایش کرد - + Unable to export torrent file. Error: %1 - + Cannot make save path نمی توان محل ذخیره‌سازی را ایجاد کرد - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid پارامتر 'مرتب‌سازی' نامعتبر است - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name نام تورنت نادرست است - - + + Incorrect category name نام دسته‌بندی نادرست است @@ -10681,196 +11203,191 @@ Please choose a different name and try again. TrackerListModel - + Working در حال کار - + Disabled غیرفعال شده - + Disabled for this torrent - + This torrent is private این تورنت خصوصی است - + N/A در دسترس نیست - + Updating... در حال بروزرسانی... - + Not working کار نمی‌کند - - - Tracker error - - - - - Unreachable - - + Tracker error + خطای ردیاب + + + + Unreachable + دست‌نیافتنی + + + Not contacted yet هنوز تماس حاصل نشده است - - Invalid status! - - - - - URL/Announce endpoint - + + Invalid state! + حالت نامعتبر! - Tier - - - - - Protocol + URL/Announce Endpoint + BT Protocol + پروتکل BT + + + + Next Announce + + + + + Min Announce + + + + + Tier + ردیف + + + Status وضعیت - + Peers پییرها - + Seeds سیدها - + Leeches لیچ‌ها - - - Times Downloaded - - - Message - پیام + Times Downloaded + بار دانلود شده - Next announce - - - - - Min announce - - - - - v%1 - + Message + پیام TrackerListWidget - + This torrent is private این تورنت خصوصی است - + Tracker editing ویرایش ترکر - + Tracker URL: آدرس ترکر: - - + + Tracker editing failed ویرایش ترکر با شکست مواجه شد - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker پاک کردن ترکر - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید - + Add trackers... - + افزودن ردیاب‌ها... - + Column visibility نمایش ستون @@ -10880,7 +11397,7 @@ Please choose a different name and try again. Add trackers - + اضافه کردن ردیاب @@ -10888,37 +11405,37 @@ Please choose a different name and try again. - + µTorrent compatible list URL: - + Download trackers list - + Add افزودن - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10926,62 +11443,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) اخطار (%1) - + Trackerless (%1) بدون ترکر (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker پاک کردن ترکر - - Resume torrents - ادامه دانلود تورنتها + + Start torrents + شروع تورنت‌ها - - Pause torrents - توقف دانلود تورنتها + + Stop torrents + توقف تورنت‌ها - + Remove torrents - + حذف تورنت‌‌ها - + Removal confirmation - + تأیید حذف - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter همه (%1) @@ -10990,7 +11507,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11041,7 +11558,7 @@ Please choose a different name and try again. [F] Downloading metadata Used when forced to load a magnet link. You probably shouldn't translate the F. - + [F] در حال بارگیری فراداده @@ -11080,12 +11597,7 @@ Please choose a different name and try again. 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. - - - - - Paused - متوقف شده + بررسی داده های رزومه @@ -11110,561 +11622,573 @@ Please choose a different name and try again. خطا داده شد - + Name i.e: torrent name نام - + Size i.e: torrent size سایز - + Progress % Done پیشرفت - + + Stopped + متوقف شده + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) وضعیت - + Seeds i.e. full sources (often untranslated) سیدها - + Peers i.e. partial sources (often untranslated) پییرها - + Down Speed i.e: Download speed سرعت بارگیری - + Up Speed i.e: Upload speed سرعت بارگذاری - + Ratio Share ratio نسبت - + + Popularity + محبوبیت + + + ETA i.e: Estimated Time of Arrival / Time left زمان تقریبی - + Category دسته بندی - + Tags برچسب‌ها - + Added On Torrent was added to transfer list on 01/01/2010 08:00 اضافه شده در - + Completed On Torrent was completed on 01/01/2010 08:00 کامل شده در - + Tracker ترکر - + Down Limit i.e: Download limit حد بارگیری - + Up Limit i.e: Upload limit حد بارگذاری - + Downloaded Amount of data downloaded (e.g. in MB) بارگیری شده - + Uploaded Amount of data uploaded (e.g. in MB) بارگذاری شده - + 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) بارگذاری در این نشست - + Remaining Amount of data left to download (e.g. in MB) باقیمانده - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) مدت زمان فعال بودن - - Save Path - Torrent save path - + + Yes + بله - + + No + نه + + + + Save Path + Torrent save path + مسیر ذخیره + + + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) کامل شده - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded آخرین فعالیت - + Total Size i.e. Size including unwanted data سایز نهایی - + Availability The number of distributed copies of the torrent در دسترس - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + خصوصی + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A در دسترس نیست - + %1 ago e.g.: 1h 20m ago - + %1 قبل - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + % 1 (سید برای %2) TransferListWidget - + Column visibility نمایش ستون - + Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? - + Rename تغییر نام - + New name: نام جدید: - + Choose save path انتخاب مسیر ذخیره سازی - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + تغییر اندازه ستون‌ها - + Resize all non-hidden columns to the size of their contents - + اندازه تمام ستون‌های پنهان را به اندازه محتوای آنها تغییر دهید - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - افزودن تگ - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags حذف تمامی تگها - + Remove all tags from selected torrents? - + Comma-separated tags: - + برچسب‌های جدا شده با کاما: - + Invalid tag تگ نامعتبر - + Tag name: '%1' is invalid نام برچسب '%1' نامعتبر است - - &Resume - Resume/start the torrent - ادامه - - - - &Pause - Pause the torrent - توقف - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + نظر - + &Name - + اسم - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + دسته - + &New... New category... - + جدید... - + &Reset Reset category - + بازنشانی - + Ta&gs - + برچسب‌ها - + &Add... Add / assign multiple tags... - + افزودن... - + &Remove All Remove all tags + حذف همه + + + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking - + &Queue - + صف - + &Copy - + رونوشت - + Exported torrent is not necessarily the same as the imported - + Download in sequential order بارگیری به ترتیب پی در پی - + + Add tags + افزودن برچسب + + + Errors occurred when exporting .torrent files. Check execution log for details. - - &Remove - Remove the torrent - + + &Start + Resume/start the torrent + شروع - + + Sto&p + Stop the torrent + توقف + + + + Force Star&t + Force Resume/start the torrent + توقف اجباری + + + + &Remove + Remove the torrent + حذف + + + Download first and last pieces first ابتدا قطعه های اول و آخر را بارگیری کن - + Automatic Torrent Management مدیریت خودکار تورنت - - - Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - - - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category + حالت خودکار به این معنی است که ویژگی‌های تورنت مختلف (مثلاً مسیر ذخیره) توسط دسته مرتبط تعیین می‌شود + + + Super seeding mode حالت به اشتراک‌گذاری فوق‌العاده @@ -11674,63 +12198,63 @@ Please choose a different name and try again. UI Theme Configuration - + پیکربندی تم رابط Colors - + رنگ‌ها Color ID - + شناسه رنگ Light Mode - + حالت روشن Dark Mode - + حالت تیره Icons - + نماد‌ها Icon ID - + شناسه نماد - + UI Theme Configuration. - + پیکربندی تم رابط. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11738,7 +12262,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11769,20 +12298,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11790,32 +12320,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11853,22 +12383,22 @@ Please choose a different name and try again. Watched Folder Options - + گزینه‌های پوشه مشاهده شده <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> - + <html><head/><body><p>پوشه و همه زیرپوشه های آن را تماشا خواهد کرد. در حالت مدیریت تورنت دستی، نام زیرپوشه را نیز به مسیر ذخیره انتخاب شده اضافه می کند.</p></body></html> Recursive mode - + حالت بازگشتی Torrent parameters - + پارامترهای تورنت @@ -11876,7 +12406,7 @@ Please choose a different name and try again. Watched Folder - + پوشه مشاهده شده @@ -11907,72 +12437,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. نوع فایل غیرقابل قبول، فقط فایل معمولی مجاز است. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11980,128 +12510,136 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + خطای ناشناخته + + misc - + B bytes ‌بایت - + KiB kibibytes (1024 bytes) کیبی‌بایت - + MiB mebibytes (1024 kibibytes) مبی‌بایت - + GiB gibibytes (1024 mibibytes) گیبی‌بایت - + TiB tebibytes (1024 gibibytes) تبی‌بایت - + PiB pebibytes (1024 tebibytes) پبی‌بایت - + EiB exbibytes (1024 pebibytes) اگزبی‌بایت - + /s per second /s - + %1s e.g: 10 seconds - + %1m e.g: 10 minutes - + %1م - + %1h %2m e.g: 3 hours 5 minutes - + %1س %2د - + %1d %2h e.g: 2 days 10 hours - + %1ر %2س - + %1y %2d e.g: 2 years 10 days - + %1س %2ر - - + + Unknown Unknown (size) ناشناس - + qBittorrent will shutdown the computer now because all downloads are complete. کیوبیت‌تورنت اکنون رایانه را خاموش می‌کند چون تمامی بارگیری‌ها به اتمام رسیده اند. - + < 1m < 1 minute - + < 1د diff --git a/src/lang/qbittorrent_fi.ts b/src/lang/qbittorrent_fi.ts index be6a9ee7e..c7923a044 100644 --- a/src/lang/qbittorrent_fi.ts +++ b/src/lang/qbittorrent_fi.ts @@ -14,77 +14,77 @@ Yleistä - + Authors Kehittäjät - + Current maintainer Nykyinen ylläpitäjä - + Greece Kreikka - - + + Nationality: Kansallisuus: - - + + E-mail: Sähköposti: - - + + Name: Nimi: - + Original author Alkuperäinen kehittäjä - + France Ranska - + Special Thanks Erityiskiitokset - + Translators Kääntäjät - + License Lisenssi - + Software Used Käytetyt ohjelmistot - + qBittorrent was built with the following libraries: qBittorrent rakennettiin käyttäen seuraavia kirjastoja: - + Copy to clipboard - + Kopioi leikepöydälle @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Tekijänoikeus %1 2006-2024 qBittorrent -hanke + Copyright %1 2006-2025 The qBittorrent project + Tekijänoikeus %1 2006-2025 qBittorrent -hanke @@ -166,15 +166,10 @@ Tallennuskohde - + Never show again Älä näytä tätä uudelleen - - - Torrent settings - Torrentin asetukset - Set as default category @@ -191,12 +186,12 @@ Aloita torrent - + Torrent information Torrentin tiedot - + Skip hash check Ohita tarkistussumman laskeminen @@ -205,6 +200,11 @@ Use another path for incomplete torrent Käytä keskeneräisille torrenteille eri sijaintia + + + Torrent options + Torrentin asetukset + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - + Napsauta [...]-painiketta lisätäksesi tai poistaaksesi tunnisteita. @@ -231,75 +231,75 @@ Pysäytysehto: - - + + None Ei mitään - - + + Metadata received Metatiedot vastaanotettu - + Torrents that have metadata initially will be added as stopped. - - + + Files checked Tiedostot tarkastettu - + Add to top of queue Lisää jonon kärkeen - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Kun valittu, .torrent-tiedostoa ei poisteta "Lataukset"-sivun asetuksista riippumatta - + Content layout: Sisällön asettelu: - + Original Alkuperäinen - + Create subfolder Luo alikansio - + Don't create subfolder Älä luo alikansiota - + Info hash v1: Infotarkistussumma v1: - + Size: Koko: - + Comment: Kommentti: - + Date: Päiväys: @@ -329,151 +329,147 @@ Muista viimeksi käytetty tallennussijainti - + Do not delete .torrent file Älä poista .torrent-tiedostoa - + Download in sequential order Lataa järjestyksessä - + Download first and last pieces first Lataa ensin ensimmäinen ja viimeinen osa - + Info hash v2: Infotarkistussumma v2: - + Select All Valitse kaikki - + Select None Älä valitse mitään - + Save as .torrent file... Tallenna .torrent-tiedostona... - + I/O Error I/O-virhe - + Not Available This comment is unavailable Ei saatavilla - + Not Available This date is unavailable Ei saatavilla - + Not available Ei saatavilla - + Magnet link Magnet-linkki - + Retrieving metadata... Noudetaan metatietoja... - - + + Choose save path Valitse tallennussijainti - + No stop condition is set. Pysäytysehtoa ei ole määritetty. - + Torrent will stop after metadata is received. Torrent pysäytetään, kun metatiedot on vastaanotettu. - Torrents that have metadata initially aren't affected. - Ei koske torrenteja, joihin metatiedot sisältyvät jo valmiiksi. - - - + Torrent will stop after files are initially checked. Torrent pysäytetään, kun tiedostojen alkutarkastus on suoritettu. - + This will also download metadata if it wasn't there initially. Tämä myös lataa metatiedot, jos niitä ei alunperin ollut. - - + + N/A Ei saatavilla - + %1 (Free space on disk: %2) %1 (Vapaata levytilaa: %2) - + Not available This size is unavailable. Ei saatavilla - + Torrent file (*%1) Torrent-tiedosto (*%1) - + Save as torrent file Tallenna torrent-tiedostona - + Couldn't export torrent metadata file '%1'. Reason: %2. Torrentin siirtäminen epäonnistui: '%1'. Syy: %2 - + Cannot create v2 torrent until its data is fully downloaded. Ei voida luoda v2 -torrentia ennen kuin sen tiedot on saatu kokonaan ladattua. - + Filter files... Suodata tiedostoja... - + Parsing metadata... Jäsennetään metatietoja... - + Metadata retrieval complete Metatietojen noutaminen valmis @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Ladataan torrent... Lähde: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Torrentin lisääminen epäonnistui. Lähde: "%1". Syy: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent Seurantapalvelimia ei voida yhdistää, koska torrent on yksityinen - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -556,7 +552,7 @@ Click [...] button to add/remove tags. - + Napsauta [...]-painiketta lisätäksesi tai poistaaksesi tunnisteita. @@ -571,7 +567,7 @@ Start torrent: - + Käynnistä torrent: @@ -596,7 +592,7 @@ Torrent share limits - Torrentin jakorajoitukset + Torrentin jakorajoitukset @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Tarkista torrentit uudelleen niiden valmistuttua - - + + ms milliseconds ms - + Setting Asetus - + Value Value set for this setting Arvo - + (disabled) (ei käytössä) - + (auto) (autom.) - + + min minutes min - + All addresses Kaikki osoitteet - + qBittorrent Section qBittorrentin asetukset - - + + Open documentation Avaa dokumentaatio - + All IPv4 addresses Kaikki IPv4-osoitteet - + All IPv6 addresses Kaikki IPv6-osoitteet - + libtorrent Section libtorrentin asetukset - + Fastresume files Pikajatka tiedostoja - + SQLite database (experimental) SQLite-tietokanta (kokeellinen) - + Resume data storage type (requires restart) Jatka data-säilötyyppi (vaatii uudelleenkäynnistyksen) - + Normal Normaali - + Below normal Alle normaali - + Medium Keskitaso - + Low Matala - + Very low Erittäin matala - + Physical memory (RAM) usage limit Fyysisen muistin (RAM) käytön rajoitus - + Asynchronous I/O threads Asynkroniset I/O-säikeet - + Hashing threads Tunnisteketjut - + File pool size Tiedostokertymäkoko - + Outstanding memory when checking torrents Muistin varaus tarkistettaessa torrent-tiedostoja - + Disk cache Levyn välimuisti - - - - + + + + + s seconds s - + Disk cache expiry interval Levyn välimuistin päättymisväli - + Disk queue size Levyjonon koko - - + + Enable OS cache Ota käyttöön käyttöjärjestelmän välimuisti - + Coalesce reads & writes Yhdistä luku- ja kirjoitustoimet - + Use piece extent affinity Käytä palasjatkeiden mieluisuustoimintoa - + Send upload piece suggestions Välitä tiedostonlähetysehdotukset - - - - + + + + + 0 (disabled) - + 0 (ei käytössä) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer Yksittäiselle vertaiselle lähetettyjen odottavien pyyntöjen enimmäismäärä - - - - - + + + + + KiB KiB - + (infinite) - + (system default) + (järjestelmän oletus) + + + + Delete files permanently + Poista tiedostot pysyvästi + + + + Move files to trash (if possible) + Siirrä tiedostot roskakoriin (jos mahdollista) + + + + Torrent content removing mode - + This option is less effective on Linux Valinnalla on vähemmän vaikutusta Linux-käyttöjärjestelmässä - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Oletus - + Memory mapped files Muistikartoitettu tiedosto - + POSIX-compliant POSIX-määritysten mukainen - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Levyn IO-tyyppi (vaatii uudelleenkäynnistyksen) - - + + Disable OS cache Älä käytä käyttöjärjestelmän välimuistia - + Disk IO read mode Tallennusmedian IO-lukutila - + Write-through Write through on tallennustapa, jossa tiedot kirjoitetaan välimuistiin ja vastaavaan päämuistipaikkaan samanaikaisesti. - + Disk IO write mode Tallennusmedian IO-kirjoitustila - + Send buffer watermark Välitä puskurivesileima - + Send buffer low watermark Välitä alemmantason puskurivesileima - + Send buffer watermark factor Välitä puskurivesileiman määre - + Outgoing connections per second Lähteviä yhteyksiä per sekunti - - + + 0 (system default) - + 0 (järjestelmän oletus) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Kantakirjausalueen koko - - .torrent file size limit + + Save statistics interval [0: disabled] + How often the statistics file is saved. - + + .torrent file size limit + .torrent-tiedoston kokoraja + + + Type of service (ToS) for connections to peers Palvelun malli (Type of Service / ToS) yhteyksille vertaiskäyttäjiä ajatellen - + Prefer TCP Suosi TCP:tä - + Peer proportional (throttles TCP) Vertaissuhteutus (TCP-kiihdytys) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Kansainvälistetty domain-nimituki (IDN) - + Allow multiple connections from the same IP address Salli useita yhteyksiä samasta IP-osoitteesta - + Validate HTTPS tracker certificates Vahvista HTTPS-trakkereiden varmenteet - + Server-side request forgery (SSRF) mitigation Pyyntötyöstön helpotusmenetelmä palvelinpuolella - (Server-side request forgery / SSRF) - + Disallow connection to peers on privileged ports Evää vertaisyhteydet ensisijaistettuihin portteihin - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates Määrittää sisäisen tilapäivitystiheyden, joka puolestaan vaikuttaa käyttöliittymän päivittymiseen. - + Refresh interval Päivitystiheys - + Resolve peer host names Selvitä vertaisten isäntänimet - + IP address reported to trackers (requires restart) Selonteko IP-osoitteesta seurantatyökaluille (vaatii uudelleenkäynnistyksen) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Julkaise kaikki seurantapalvelimet uudelleen kun IP-osoite tai portti muuttuu - + Enable icons in menus Näytä kuvakkeet valikoissa - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Käytä porttiohjausta sisäiselle trakkerille - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - - (Auto detect if empty) + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) - + + Ignore SSL errors + + + + + (Auto detect if empty) + (Havaitse automaattisesti jos tyhjä) + + + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - Vertaiskierron katkaisuprosentuaali - - - - Peer turnover threshold percentage - Vertaiskierron kynnysprosentuaali - - - - Peer turnover disconnect interval - Vertaiskierron katkaisuväliaika - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + s + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + Vertaiskierron katkaisuprosentuaali + + + + Peer turnover threshold percentage + Vertaiskierron kynnysprosentuaali + + + + Peer turnover disconnect interval + Vertaiskierron katkaisuväliaika + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Näytä ilmoitukset - + Display notifications for added torrents Näytä ilmoitukset lisätyille torrenteille - + Download tracker's favicon Lataa seurantapalvelimen favicon - + Save path history length Tallennussijaintihistorian pituus - + Enable speed graphs Käytä nopeuskaavioita - + Fixed slots Kiinteät paikat - + Upload rate based Lähetysnopeuteen perustuva - + Upload slots behavior Lähetyspaikkojen käyttäytyminen - + Round-robin Kiertovuorottelu - + Fastest upload Nopein lähetys - + Anti-leech Pelkän latauksen vastainen - + Upload choking algorithm Lähetyksen kuristusalgoritmi - + Confirm torrent recheck Vahvista torrentin uudelleentarkistus - + Confirm removal of all tags Vahvista kaikkien tunnisteiden poisto - + Always announce to all trackers in a tier Julkaise aina kaikille seuraimille tasollisesti - + Always announce to all tiers Julkaise aina kaikille tasoille - + Any interface i.e. Any network interface Mikä tahansa liitäntä - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP sekoitetun mallin algoritmi - + Resolve peer countries Selvitä vertaisten maat - + Network interface Verkkosovitin - + Optional IP address to bind to Vaihtoehtoinen IP-osoite, johon sitoutua - + Max concurrent HTTP announces Samanaikaisten HTTP-julkistusten enimmäismäärä - + Enable embedded tracker Ota käyttöön upotettu seurantapalvelin - + Embedded tracker port Upotetun seurantapalvelimen portti + + AppController + + + + Invalid directory path + + + + + Directory does not exist + Kansiota ei ole olemassa + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Käytetään kanettavassa tilassa. Profiilikansion sijainniksi tunnistettiin automaattisesti: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Havaittiin tarpeeton komentorivin lippu: "%1". Kannettava tila viittaa suhteelliseen pikajatkoon. - + Using config directory: %1 Käytetään asetuskansiota: %1 - + Torrent name: %1 Torrentin nimi: %1 - + Torrent size: %1 Torrentin koko: %1 - + Save path: %1 Tallennussijainti: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrentin lataus kesti %1. - + + Thank you for using qBittorrent. Kiitos kun käytit qBittorrentia. - + Torrent: %1, sending mail notification Torrentti: %1, lähetetään sähköposti-ilmoitus - + Add torrent failed Torrentin lisääminen epäonnistui - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Suoritetaan uilkoista sovellusta. Torrent: "%1". Komento: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torrentin "%1" lataus on valmistunut - + WebUI will be started shortly after internal preparations. Please wait... Verkkokäyttöliittymä käynnistyy pian sisäisten valmistelujen jälkeen. Odota... - - + + Loading torrents... Torrenteja ladataan... - + E&xit Sulje - + I/O Error i.e: Input/Output Error I/O-virhe - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Syy: %2 - + Torrent added Torrent lisättiin - + '%1' was added. e.g: xxx.avi was added. "% 1" lisättiin. - + Download completed Lataus on valmis - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + Testisähköposti + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. "%1" lataus on valmis. - + Information Tiedot - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 Avaa selainkäyttöliittymä ohjataksesi qBittorrentia: %1 - + Exit Sulje - + Recursive download confirmation Rekursiivisen latauksen vahvistus - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrentti '%1' sisältää .torrent-tiedostoja, haluatko jatkaa niiden latausta? - + Never Ei koskaan - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Torrentin sisältämän .torrent-tiedoston rekursiivinen lataus. Lähdetorrent: "%1". Tiedosto: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Fyysisen muistin (RAM) rajoituksen asetus epäonnistui. Virhekoodi: %1. Virheviesti: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated qBittorentin sulku on aloitettu - + qBittorrent is shutting down... qBittorrentia suljetaan... - + Saving torrent progress... Tallennetaan torrentin edistymistä... - + qBittorrent is now ready to exit qBittorrent on valmis suljettavaksi @@ -1609,12 +1715,12 @@ Tärkeysaste: - + Must Not Contain: Ei saa sisältää: - + Episode Filter: Jaksosuodatin: @@ -1667,263 +1773,263 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo &Vie... - + Matches articles based on episode filter. Täsmää nimikkeisiin jotka perustuvat jaksosuodattimeen. - + Example: Esimerkki: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match poimii 2, 5, 8 ja läpi 15, 30 sekä jaksot siitä eteenpäin kaudesta yksi - + Episode filter rules: Jaksosuodattimen säännöt: - + Season number is a mandatory non-zero value Tuotantokauden numero on oltava enemmän kuin nolla - + Filter must end with semicolon Suodattimen on päätyttävä puolipisteeseen - + Three range types for episodes are supported: Jaksoille tuetaan kolmea aluetyyppiä: - + Single number: <b>1x25;</b> matches episode 25 of season one Yksi numero: <b>1x25;</b> vastaa ensimmäisen kauden jaksoa 25 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normaali jakauma: <b>1x25-40;</b> vastaa ensimmäisen kauden jaksoja 25-40 - + Episode number is a mandatory positive value Jakson numero on oltava positiivinen arvo - + Rules Säännöt - + Rules (legacy) Säännöt (perinteiset) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Rajoittamaton alue: <b>1x25-;</b> poimii jaksot 25 ja siitä ylöspäin kaudesta yksi, myös kaikki jaksot myöhemmistä kausista - + Last Match: %1 days ago Viimeisin täsmäys: %1 päivää sitten - + Last Match: Unknown Viimeisin täsmäys: ei tiedossa - + 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'? Haluatko varmasti poistaa lataussäännön '%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 - + Invalid action Virheellinen toiminto - + The list is empty, there is nothing to export. Luettelo on tyhjä, ei mitään vietävää. - + Export RSS rules Vie RSS-säännöt - + I/O Error I/O-virhe - + Failed to create the destination file. Reason: %1 Kohdetiedoston luominen epäonnistui. Syy: %1 - + Import RSS rules Tuo RSS-säännöt - + Failed to import the selected rules file. Reason: %1 Valitun sääntöluettelon tuonti epäonnistui. Syy: %1 - + 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 - + Clear downloaded episodes... Tyhjennä ladatut jaksot... - + Rule renaming Säännön nimeäminen uudelleen - + Please type the new rule name Anna uusi säännön nimi - + Clear downloaded episodes Tyhjennä ladatut jaksot - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Oletko varma että haluat tyhjentää ladattujen jaksojen luettelon valitulle säännölle? - + Regex mode: use Perl-compatible regular expressions Regex-tila: käytä Perl-yhteensopivia säännöllisiä lausekkeita - - + + Position %1: %2 Sijainti %1: %2 - + Wildcard mode: you can use Jokerimerkkitila: voit käyttää - - + + Import error - + Failed to read the file. %1 - + Tiedoston lukeminen epäonnistui. %1 - + ? to match any single character ? vastaamaan mitä tahansa yksittäistä merkkiä - + * to match zero or more of any characters * vastaamaan nolla tai enemmän mitä tahansa merkkiä - + Whitespaces count as AND operators (all words, any order) Tyhjät välit lasketaan JA toimintoina (kaikki sanat, mikä tahansa järjestys) - + | is used as OR operator | käytetään OR-operaattorina - + If word order is important use * instead of whitespace. Jos sanajärjestys on tärkeä, käytä * välilyönnin sijaan. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Pyyntö tyhjällä %1 lausekkeella (esim. %2) - + will match all articles. tulee täsmäämään kaikkien nimikkeiden kanssa. - + will exclude all articles. Sulkee pois kaikki artikkelit. @@ -1965,7 +2071,7 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Torrentin jatkokansiota ei voitu luoda: "%1" @@ -1975,28 +2081,38 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Jatkotietoja ei voida jäsentää: virheellinen muoto - - + + Cannot parse torrent info: %1 Torrentin tietoja ei voida jäsentää: %1 - + Cannot parse torrent info: invalid format Torrentin tietoja ei voida jäsentää: virheellinen muoto - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Torrentin sisäisdataa ei saatu tallennettua '%1'. Virhe: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Torrentin jatkotietoja ei voitu tallentaa kohteeseen '%1'. Virhe: %2. @@ -2007,16 +2123,17 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo + Cannot parse resume data: %1 Jatkotietoja ei voida jäsentää: %1 - + Resume data is invalid: neither metadata nor info-hash was found Jatkotiedot ovat virheelliset: metatietoja tai tietojen hajautusarvoa ei löytynyt - + Couldn't save data to '%1'. Error: %2 Dataa ei saatu tallennettua '%1'. Virhe: %2 @@ -2024,38 +2141,60 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo BitTorrent::DBResumeDataStorage - + Not found. Ei löydy. - + Couldn't load resume data of torrent '%1'. Error: %2 Torrentin '%1' jatkotietoja ei voitu ladata. Virhe: %2 - - + + Database is corrupted. Tietokanta on turmeltunut. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Write-Ahead Logging (WAL) -päiväkirjaustilaa ei voitu ottaa käyttöön. Virhe: %1. - + Couldn't obtain query result. Kyselyn tulosta ei voitu saada. - + WAL mode is probably unsupported due to filesystem limitations. WAL-tilaa ei luultavasti tueta tiedostojärjestelmän rajoitusten vuoksi. - + + + Cannot parse resume data: %1 + Jatkotietoja ei voida jäsentää: %1 + + + + + Cannot parse torrent info: %1 + Torrentin tietoja ei voida jäsentää: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Torrentin sisäistä dataa ei saatu tallennettua. Virhe: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Torrentin '%1' jatkotietoja ei voitu säilyttää. Virhe: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Torrentin '%1' jatkotietoja ei voitu tallentaa. Virhe: %2 - + Couldn't store torrents queue positions. Error: %1 Torrent-jonopaikkoja ei saatu säilytettyä. Virhe: %1 @@ -2086,457 +2225,503 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Distributed Hash Table (DHT) -tuki: %1 - - - - - - - - - + + + + + + + + + ON KÄYTÖSSÄ - - - - - - - - - + + + + + + + + + OFF EI KÄYTÖSSÄ - - + + Local Peer Discovery support: %1 Local Peer Discovery -tuki: %1 - + Restart is required to toggle Peer Exchange (PeX) support Peer Exchange (PeX) -tuen kytkentä edellyttää uudelleenkäynnistystä - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrentin jatko epäonnistui. Torrent: "%1". Syy: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrentin jatko epäonnistui: havaittiin yhteensopimaton torrentin ID. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Havaittiin yhteensopimattomia tietoja: kategoria puuttuu asetustiedostosta. Kategoria palautetaan, mutta sen asetukset palautetaan oletuksiin. Torrent: "%1". Kategoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Havaittiin yhteensopimattomia tietoja: virheellinen kategoria. Torrent: "%1". Kategoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Palautetun kategorian ja torrentin nykyisen tallennussijainnin välillä havaittiin ristiriita. Torrent on nyt vaihdettu manuaaliseen tilaan. Torrent: "%1". Kategoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Havaittiin yhteensopimattomia tietoja: tunniste puuttuu asetustiedostosta. Tunniste palautetaan. Torrent: "%1". Tunniste: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Havaittiin yhteensopimattomia tietoja: virheellinen tunniste. Torrent: "%1". Tunniste: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" Vertais-ID: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peer Exchange (PeX) -tuki: %1 - - + + Anonymous mode: %1 Nimetön tila: %1 - - + + Encryption support: %1 Salauksen tuki: %1 - - + + FORCED PAKOTETTU - + Could not find GUID of network interface. Interface: "%1" Verkkosovittimen GUID-tunnistetta ei löytynyt. Sovitin: "%1" - + Trying to listen on the following list of IP addresses: "%1" Pyritään kuuntelemaan seuraavaa IP-osoiteluetteloa: "%1" - + Torrent reached the share ratio limit. Torrent saavutti jakosuhderajoituksen. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent poistettiin. - - - - - - Removed torrent and deleted its content. - Torrent sisältöineen poistettiin. - - - - - - Torrent paused. - Torrent tauotettiin. - - - - - + Super seeding enabled. Superlähetys käynnissä. - + Torrent reached the seeding time limit. Torrent saavutti jakoaikarajoituksen. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Torrentin lataus epäonnistui. Syy: "%1" - + I2P error. Message: "%1". - + I2P-virhe. Viesti: "%1". - + UPnP/NAT-PMP support: ON UPnP-/NAT-PMP-tuki: KÄYTÖSSÄ - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + Torrent pysäytetty. + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + Torrent poistettu. Torrent: "%1" + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + Seurantapalvelimia ei voida yhdistää, koska torrent on yksityinen + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF UPnP-/NAT-PMP-tuki: EI KÄYTÖSSÄ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrentin vienti epäonnistui. Torrent: "%1". Kohde: "%2". Syy: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Jatkotietojen tallennus keskeutettiin. Jäljellä olevien torrentien määrä: %1 - + The configured network address is invalid. Address: "%1" Määritetty verkko-osoite on virheellinen. Osoite: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Kuuntelemaan määritettyä verkko-osoitetta ei löytynyt. Osoite 1" - + The configured network interface is invalid. Interface: "%1" Määritetty verkkosovitin on virheellinen. Sovitin: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Virheellinen IP-osoite hylättiin sovellettaessa estettyjen IP-osoitteiden listausta. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrentille lisättiin seurantapalvelin. Torrentti: %1". Seurantapalvelin: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Torrentilta poistettiin seurantapalvelin. Torrentti: %1". Seurantapalvelin: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Torrentille lisättiin URL-jako. Torrent: %1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Torrentilta poistettiin URL-jako. Torrent: %1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent tauotettiin. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrentia jatkettiin. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrentin lataus valmistui. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrentin siirto peruttiin: Torrent: "%1". Lähde: "%2". Kohde: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Torrentin siirron lisäys jonoon epäonnistui. Torrent: "%1". Lähde: "%2". Kohde: "%3". Syy: torrentia siirretään kohteeseen parhaillaan - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Torrentin siirron lisäys jonoon epäonnistui. Torrent: "%1". Lähde: "%2" Kohde: "%3". Syy: molemmat tiedostosijainnit osoittavat samaan kohteeseen - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrentin siirto lisättiin jonoon. Torrent: "%1". Lähde: "%2". Kohde: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrentin siirto aloitettiin. Torrent: "%1". Kohde: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Kategoriamääritysten tallennus epäonnistui. Tiedosto: "%1". Virhe: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Kategoriamääritysten jäsennys epäonnistui. Tiedosto: "%1". Virhe: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP-suodatintiedoston jäsennys onnistui. Sovellettujen sääntöjen määrä: %1 - + Failed to parse the IP filter file IP-suodatintiedoston jäsennys epäonnistui - + Restored torrent. Torrent: "%1" Torrent palautettiin. Torrent: "%1" - + Added new torrent. Torrent: "%1" Uusi torrent lisättiin. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent kohtasi virheen. Torrent: "%1". Virhe: "%2" - - - Removed torrent. Torrent: "%1" - Torrent poistettiin. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent sisältöineen poistettiin. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Varoitus tiedostovirheestä. Torrent: "%1". Tiedosto: "%2". Syy: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP-/NAT-PMP-porttien määritys epäonnistui. Viesti: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP-/NAT-PMP-porttien määritys onnistui. Viesti: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP-suodatin - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). suodatettu portti (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 sekoitetun mallin rajoitukset - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 ei ole käytössä - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 ei ole käytössä - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL-jaon DNS-selvitys epäonnistui. Torrent: "%1". URL: "%2". Virhe: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" URL-jaolta vastaanotettiin virheilmoitus. Torrent: "%1". URL: "%2". Viesti: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" IP-osoitteen kuuntelu onnistui. IP: "%1". Portti: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" IP-osoitteen kuuntelu epäonnistui. IP: "%1". Portti: "%2/%3". Syy: "%4" - + Detected external IP. IP: "%1" Havaittiin ulkoinen IP-osoite. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Virhe: Sisäinen hälytysjono on täynnä ja hälytyksiä tulee lisää, jonka seurauksena voi ilmetä heikentynyttä suorituskykyä. Halytyksen tyyppi: "%1". Viesti: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrentin siirto onnistui. Torrent: "%1". Kohde: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrentin siirto epäonnistui. Torrent: "%1". Lähde: "%2". Kohde: "%3". Syy: "%4" @@ -2546,19 +2731,19 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Failed to start seeding. - + Jakamisen aloittaminen epäonnistui. BitTorrent::TorrentCreator - + Operation aborted - Toimenpide keskeytetty + Toimenpide keskeytettiin - - + + Create new torrent file failed. Reason: %1. Uuden torrent-tiedoston luonti epäonnistui. Syy: %1. @@ -2566,67 +2751,67 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Vertaisen "%1" lisäys torrentille "%2" epäonnistui. Syy: %3 - + Peer "%1" is added to torrent "%2" Vertainen "%1" lisättiin torrentille "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Tiedostoa ei voitu tallentaa. Syy: "%1". Torrent on nyt "vain lähetys" -tilassa. - + Download first and last piece first: %1, torrent: '%2' Lataa ensimmäinen ja viimeinen osa ensin: %1, torrent: '%2' - + On Päällä - + Off Pois päältä - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Jatkotietojen luonti epäonnistui. Torrent: "%1". Syy: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrentin palautus epäonnistui. Tiedostot on luultavasti siirretty tai tallennusmedia ei ole käytettävissä. Torrent: "%1". Syy: "%2" - + Missing metadata Metatietoja puuttuu - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Tiedoston nimeäminen uudelleen epäonnistui. Torrent: "%1", tiedosto: "%2", syy: "%3" - + Performance alert: %1. More info: %2 Suorituskykyvaroitus: %1. Lisätietoja: %2 @@ -2647,189 +2832,189 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: Käyttö: - + [options] [(<filename> | <url>)...] - + Options: Valinnat: - + Display program version and exit Näytä sovellusversio ja sulje - + Display this help message and exit Näytä tämä ohjeviesti ja sulje - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port portti - + Change the WebUI port - + Change the torrenting port - + Disable splash screen Poista aloituskuva käytöstä - + Run in daemon-mode (background) Suorita daemon-tilassa (taustalla) - + dir Use appropriate short form or abbreviation of "directory" kansio - + Store configuration files in <dir> - - + + name nimi - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Murtaudu libtorrentin pikajatkotiedostoihin ja suhteuta tiedostopolut proffilikansioon - + files or URLs tiedostoja tai URL-osoitteita - + Download the torrents passed by the user - + Options when adding new torrents: Valinnat uusia torrenteja lisätessä: - + path sijainti - + Torrent save path Torrentin tallennussijainti - - Add torrents as started or paused - Lisää torrent käynnistettynä tai pysäytettynä + + Add torrents as running or stopped + - + Skip hash check Ohita hajautusarvon tarkistus - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Lataa tiedostot järjestyksessä - + Download first and last pieces first Lataa ensin ensimmäinen ja viimeinen osa - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Ohje @@ -2881,12 +3066,12 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo - Resume torrents - Jatka torrentteja + Start torrents + Käynnistä torrentit - Pause torrents + Stop torrents Pysäytä torrentit @@ -2898,15 +3083,20 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo ColorWidget - + Edit... - + Muokkaa... - + Reset Palauta + + + System + Järjestelmä + CookiesDialog @@ -2947,12 +3137,12 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo - Also permanently delete the files - Poista myös tiedostot pysyvästi + Also remove the content files + Poista myös sisältötiedostot - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Haluatko varmasti poistaa torrentin '%1' siirtolistalta? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Haluatko varmasti poistaa nämä %1 torrentia siirtolistalta? - + Remove Poista @@ -3008,12 +3198,12 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Lataa URL-osoitteista - + Add torrent links Lisää torrent-linkit - + One link per line (HTTP links, Magnet links and info-hashes are supported) Yksi linkki riviä kohden (tuetaan HTTP-linkkejä, Magnet-linkkejä ja infotarkistussummia) @@ -3023,12 +3213,12 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Lataa - + No URL entered Et antanut verkko-osoitetta - + Please type at least one URL. Anna vähintään yksi verkko-osoite. @@ -3188,24 +3378,47 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo - GUIAddTorrentManager + FilterPatternFormatMenu - - Downloading torrent... Source: "%1" + + Pattern Format - - Trackers cannot be merged because it is a private torrent - Seurantapalvelimia ei voida yhdistää, koska torrent on yksityinen + + Plain text + - + + Wildcards + + + + + Regular expression + Säännöllinen lauseke + + + + GUIAddTorrentManager + + + Downloading torrent... Source: "%1" + Ladataan torrent... Lähde: "%1" + + + Torrent is already present Torrent on jo olemassa - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' on jo siirtolistalla. Haluatko yhdistää seurantapalvelimet uudesta lähteestä? @@ -3213,38 +3426,38 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo GeoIPDatabase - - + + Unsupported database file size. Ei-tuettu tietokannan tiedostokoko. - + Metadata error: '%1' entry not found. Metatietovirhe: merkintää "%1" ei löydy. - + Metadata error: '%1' entry has invalid type. Metatietovirhe: merkinnän "%1" tyyppi on virheellinen. - + Unsupported database version: %1.%2 Ei-tuettu tietokannan versio: %1.%2 - + Unsupported IP version: %1 Ei-tuettu IP-osoitteen versio: %1 - + Unsupported record size: %1 Ei.tuettu tietueen koko: %1 - + Database corrupted: no data section found. Tietokanta on vioittunut: tietoaluetta ei löydy. @@ -3252,17 +3465,17 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-pyynnön koko ylittää rajoituksen, socket suljetaan. Rajoitus: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Virheellinen HTTP-pyyntö, socket suljetaan. IP: %1 @@ -3303,23 +3516,57 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo IconWidget - + Browse... Selaa... - + Reset Palauta - + Select icon + Valitse kuvake + + + + Supported image files + Tuetut kuvatiedostot + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 - - Supported image files + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3348,19 +3595,19 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Press 'Enter' key to continue... - + Paina 'Enter' jatkaaksesi... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 estettiin. Syy: %2. - + %1 was banned 0.0.0.0 was banned %1 estettiin @@ -3369,60 +3616,60 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 on tuntematon komentoriviparametri. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,607 +3682,678 @@ Nämä muodot ovat tuetut: S01E01, 1x1, 2017.12.31 ja 31.12.2017 (päiväysmuodo &Muokkaa - + &Tools &Työkalut - + &File &Tiedosto - + &Help &Ohje - + On Downloads &Done Latausten &valmistuttua... - + &View &Näytä - + &Options... &Asetukset... - - &Resume - &Jatka - - - + &Remove &Poista - + Torrent &Creator Luo uusi &torrent... - - + + Alternative Speed Limits Vaihtoehtoiset nopeusrajoitukset - + &Top Toolbar &Työkalupalkki - + Display Top Toolbar Näytä työkalupalkki - + Status &Bar Tila&palkki - + Filters Sidebar Suodattimien sivupalkki - + S&peed in Title Bar No&peudet otsikkorivillä - + Show Transfer Speed in Title Bar Näytä siirtonopeudet otsikkorivillä - + &RSS Reader &RSS-lukija - + Search &Engine Haku&kone - + L&ock qBittorrent L&ukitse qBittorrent - + Do&nate! La&hjoita! - + + Sh&utdown System + Samm&uta järjestelmä + + + &Do nothing &Älä tee mitään - + Close Window Sulje ikkuna - - R&esume All - J&atka kaikkia - - - + Manage Cookies... Evästeiden hallinta... - + Manage stored network cookies Hallinnoi tallennettuja verkkoevästeitä - + Normal Messages Normaalit viestit - + Information Messages Tiedotusviestit - + Warning Messages Varoitusviestit - + Critical Messages Kriittiset viestit - + &Log &Loki - + + Sta&rt + &Käynnistä + + + + Sto&p + &Pysäytä + + + + R&esume Session + &Palauta istunto + + + + Pau&se Session + &Keskeytä istunto + + + Set Global Speed Limits... Määritä järjestelmänlaajuiset nopeusrajoitukset... - + Bottom of Queue Jonon viimeiseksi - + Move to the bottom of the queue Siirrä jonon viimeiseksi - + Top of Queue Jonon kärkeen - + Move to the top of the queue Siirrä jonon kärkeen - + Move Down Queue Siirrä alas jonossa - + Move down in the queue Siirrä alas jonossa - + Move Up Queue Siirrä ylös jonossa - + Move up in the queue Siirrä ylös jonossa - + &Exit qBittorrent &Sulje qBittorrent - + &Suspend System &Aseta tietokone lepotilaan - + &Hibernate System &Aseta tietokone horrostilaan - - S&hutdown System - &Sammuta tietokone - - - + &Statistics &Tilastot - + Check for Updates Tarkista päivitykset - + Check for Program Updates Tarkista ohjelmapäivitykset - + &About &Tietoja - - &Pause - &Pysäytä - - - - P&ause All - Py&säytä kaikki - - - + &Add Torrent File... &Lisää torrent... - + Open Avaa - + E&xit Lo&peta - + Open URL Avaa osoite - + &Documentation &Dokumentaatio - + Lock Lukitse - - - + + + Show Näytä - + Check for program updates Tarkista sovelluspäivitykset - + Add Torrent &Link... Avaa torrent &osoitteesta... - + If you like qBittorrent, please donate! Jos pidät qBittorrentista, lahjoita! - - + + Execution Log Suoritusloki - + Clear the password Poista salasana - + &Set Password &Aseta salasana - + Preferences Asetukset - + &Clear Password &Poista salasana - + Transfers Siirrot - - + + qBittorrent is minimized to tray qBittorrent on pienennetty ilmoitusalueelle - - - + + + This behavior can be changed in the settings. You won't be reminded again. Tätä toimintaa voi muuttaa asetuksista. Sinua ei muistuteta uudelleen. - + 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: - + Are you sure you want to clear the password? Haluatko varmasti poistaa salasanan? - + Use regular expressions Käytä säännöllisiä lausekkeita - + + + Search Engine + Hakukone + + + + Search has failed + Haku epäonnistui + + + + Search has finished + Haku on päättynyt + + + Search Etsi - + Transfers (%1) Siirrot (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent päivitettiin juuri ja se on käynnistettävä uudelleen, jotta muutokset tulisivat voimaan. - + qBittorrent is closed to tray qBittorrent on suljettu ilmoitusalueelle - + Some files are currently transferring. Joitain tiedostosiirtoja on vielä meneillään. - + Are you sure you want to quit qBittorrent? Haluatko varmasti lopettaa qBittorrentin? - + &No &Ei - + &Yes &Kyllä - + &Always Yes &Aina kyllä - + Options saved. Valinnat tallennettu. - + + [PAUSED] %1 + %1 is the rest of the window title + [KESKEYTETTY] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + Python-asennus onnistui. + + + + Exit code: %1. + + + + + Reason: installer crashed. + Syy: asennusohjelma kaatui. + + + + Python installation failed. + Python-asennus epäonnistui. + + + + Launching Python installer. File: "%1". + Käynnistetään Python-asennusohjelma. Tiedosto: "%1". + + + + Missing Python Runtime Puuttuva Python-suoritusympäristö - + qBittorrent Update Available qBittorrentin päivitys saatavilla - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Käyttääksesi hakukonetta, sinun täytyy asentaa Python. Haluatko asentaa sen nyt? - + Python is required to use the search engine but it does not seem to be installed. Käyttääksesi hakukonetta, sinun täytyy asentaa Python. - - + + Old Python Runtime Vanha Python-suoritusympäristö - + A new version is available. Uusi versio on saatavilla. - + Do you want to download %1? Haluatko ladata %1? - + Open changelog... Avaa muutosloki... - + No updates available. You are already using the latest version. Päivityksiä ei ole saatavilla. Käytät jo uusinta versiota. - + &Check for Updates &Tarkista päivitykset - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Käyttämäsi Python-versio (%1) on vanhentunut. Vähimmäisvaatimus: %2. Haluatko asentaa uudemman version nyt? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Pysäytetty + + + Checking for Updates... Tarkistetaan päivityksiä... - + Already checking for program updates in the background Sovelluspäivityksiä tarkistetaan jo taustalla - + + Python installation in progress... + Python-asennus on meneillään... + + + + Failed to open Python installer. File: "%1". + Python-asennusohjelman avaaminen epäonnistui. Tiedosto: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Lataamisvirhe - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python-asennuksen lataaminen epäonnistui, syy: %1. -Python täytyy asentaa manuaalisesti. - - - - + + Invalid password Virheellinen salasana - + Filter torrents... Suodata torrentteja... - + Filter by: Suodatin: - + The password must be at least 3 characters long Salasanan tulee olla vähintään 3 merkkiä pitkä - - - + + + RSS (%1) RSS (%1) - + 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 - [Lataus: %1, Lähetys: %2] qBittorrent %3 - - - + Hide Piilota - + Exiting qBittorrent Suljetaan qBittorrent - + Open Torrent Files Avaa torrent-tiedostot - + Torrent Files Torrent-tiedostot @@ -4230,7 +4548,12 @@ Python täytyy asentaa manuaalisesti. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Ohitetaan SSL-virhe, URL: "%1", virheet: "%2" @@ -5524,47 +5847,47 @@ Python täytyy asentaa manuaalisesti. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 Todennus epäonnistui, viesti: %1 - + <mail from> was rejected by server, msg: %1 Palvelin hylkäsi lähettäjän <mail from>, viesti: %1 - + <Rcpt to> was rejected by server, msg: %1 Palvelin hylkäsi vastaanottajan <Rcpt to>, viesti: %1 - + <data> was rejected by server, msg: %1 Palvelin hylkäsi tiedon <data>, viesti: %1 - + Message was rejected by the server, error: %1 Palvelin hylkäsi viestin, virhe: %1 - + Both EHLO and HELO failed, msg: %1 Sekä EHLO, että HELO epäonnistui, viesti: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 Sähköposti-ilmoitusvirhe: %1 @@ -5602,299 +5925,283 @@ Python täytyy asentaa manuaalisesti. BitTorrent - + RSS RSS - - Web UI - Selainkäyttö - - - + Advanced Lisäasetukset - + Customize UI Theme... - + Mukauta käyttöliittymän teemaa... - + Transfer List Siirtolista - + Confirm when deleting torrents Vahvista torrentin poisto - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Käytä vaihtelevia rivivärejä - + Hide zero and infinity values Piilota nolla- ja äärettömyysarvot - + Always Aina - - Paused torrents only - Vain pysäytetyt torrentit - - - + Action on double-click Toiminta kaksoisnapsautuksella - + Downloading torrents: Torrentteja ladatessa: - - - Start / Stop Torrent - Aloita / pysäytä torrent - - - - + + Open destination folder Avaa kohdekansio - - + + No action Ei toimintoa - + Completed torrents: Valmistuneet torrentit: - + Auto hide zero status filters - + Desktop Työpöytä - + Start qBittorrent on Windows start up Käynnistä qBittorrent Windowsin käynnistyessä - + Show splash screen on start up Näytä aloituskuva käynnistettäessä - + Confirmation on exit when torrents are active Vahvista ohjelman sulku kun torrenteja on käynnissä - + Confirmation on auto-exit when downloads finish Vahvista automaattinen lopetus kun lataukset ovat valmiita - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB Kt - + + Show free disk space in status bar + + + + Torrent content layout: Torrentin sisällön asettelu: - + Original Alkuperäinen - + Create subfolder Luo alikansio - + Don't create subfolder Älä luo alikansiota - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue Lisää jonon kärkeen - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Lisää... - + Options.. Asetukset... - + Remove Poista - + Email notification &upon download completion Sähköposti-ilmoitus latauksen valmistuttua - + + Send test email + Lähetä testisähköposti + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Vertaisyhteyksien protokolla: - + Any - + I2P (experimental) I2P (kokeellinen) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy RSS-syötteet käyttävät välityspalvelinta - + Use proxy for RSS purposes Käytä välityspalvelinta RSS-tarkoituksiin - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering &IP-suodatus - + Schedule &the use of alternative rate limits Aseta aikataulu vaihtoehtoisille nopeusrajoituksille - + From: From start time Alkaa: - + To: To end time Päättyy: - + Find peers on the DHT network Etsi vertaisia DHT-verkosta - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5903,145 +6210,190 @@ Vaadi salaus: Yhdistä vain salattua protokollaa käyttäviin vertaisiin Älä käytä salausta: Yhdistä vain vertaisiin, jotka eivät käytä salattua protokollaa - + Allow encryption Salli salaus - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Lisätietoja</a>) - + Maximum active checking torrents: - + &Torrent Queueing Torrentien &jonotus - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Lisää nämä seurantapalvelimet uusille latauksille automaattisesti: - - - + RSS Reader RSS-lukija - + Enable fetching RSS feeds Ota käyttöön RSS-syötteiden haku - + Feeds refresh interval: RSS-syötteen päivitystiheys: - + Same host request delay: - + Maximum number of articles per feed: Artikkeleiden enimmäismäärä syötettä kohden: - - - + + + min minutes min - + Seeding Limits Jakorajoitukset - - Pause torrent - Pysäytä torrent - - - + Remove torrent Poista torrentti - + Remove torrent and its files Poista torrentti ja sen tiedostot - + Enable super seeding for torrent Käytä torrentille superjakoa - + When ratio reaches Jakosuhteen muuttuessa - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Pysäytä torrent + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + Historian pituus + + + RSS Torrent Auto Downloader RSS-torrenttien automaattinen lataaja - + Enable auto downloading of RSS torrents Ota käyttöön RSS-torrenttien automaattinen lataus - + Edit auto downloading rules... Muokkaa automaattisten latausten sääntöjä... - + RSS Smart Episode Filter Älykäs RSS-jaksosuodatin - + Download REPACK/PROPER episodes Lataa REPACK/PROPER-jaksot - + Filters: Suodattimet: - + Web User Interface (Remote control) Web-käyttöliittymä (Etäohjaus) - + IP address: IP-osoite: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6049,42 +6401,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv Määritä IPv4- tai IPv6-osoite. Voit käyttää '0.0.0.0' kaikille IPv4-, '::' kaikille IPv6- tai '*' kaikille iPV4- ja IPv6-osoitteille. - + Ban client after consecutive failures: Estä asiakas perättäisistä epäonnistumissista: - + Never Ei koskaan - + ban for: eston kesto: - + Session timeout: Istunnon aikakatkaisu: - + Disabled Ei käytössä - - Enable cookie Secure flag (requires HTTPS) - Käytä evästeen Secure-lippua (vaatii HTTPS:n) - - - + Server domains: Palvelimen verkkotunnukset: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6093,442 +6440,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP Käytä HTTPS:ää HTTP:n sijaan - + Bypass authentication for clients on localhost Ohita tunnistautuminen localhostista saapuvien asiakkaiden kohdalla - + Bypass authentication for clients in whitelisted IP subnets Ohita tunnistautuminen valkolistattujen IP-aliverkkojen asiakkaiden kohdalla - + IP subnet whitelist... IP-aliverkkojen valkolista... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Päivitä dynaamisen verkkotunnukseni nimi - + Minimize qBittorrent to notification area Pienennä qBittorrent ilmoitusalueelle - + + Search + Etsi + + + + WebUI + + + + Interface Käyttöliittymä - + Language: Kieli: - + + Style: + Tyyli: + + + + Color scheme: + Väriteema: + + + + Stopped torrents only + + + + + + Start / stop torrent + Käynnistä/pysäytä torrent + + + + + Open torrent options dialog + + + + Tray icon style: Ilmaisinalueen kuvakkeen tyyli: - - + + Normal Normaali - + File association Tiedostosidonnaisuudet - + Use qBittorrent for .torrent files Käytä qBittorrenttia .torrent-tiedostoihin - + Use qBittorrent for magnet links Käytä qBittorrenttia magnet-linkkeihin - + Check for program updates Tarkista sovelluksen päivitykset - + Power Management Virranhallinta - + + &Log Files + + + + Save path: Tallennussijainti: - + Backup the log file after: Ota lokista varmuuskopio, kun sen koko ylittää: - + Delete backup logs older than: Poista varmuuskopiot, jotka ovat vanhempia kuin: - + + Show external IP in status bar + Näytä ulkoinen IP tilarivillä + + + When adding a torrent Kun lisätään torrent-tiedostoa - + Bring torrent dialog to the front Tuo torrent-ikkuna päällimmäiseksi - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Poista myös torrent-tiedostot, joiden lisääminen peruutettiin - + Also when addition is cancelled Myös silloin, kun lisäys peruutetaan - + Warning! Data loss possible! Varoitus! Tietojen menetys on mahdollista! - + Saving Management Tallennuksen hallinta - + Default Torrent Management Mode: Torrentien oletusarvoinen hallintatila: - + Manual Manuaalinen - + Automatic Automaattinen - + When Torrent Category changed: Kun torrentin kategoria muutetaan: - + Relocate torrent Uudelleensijoita torrentti - + Switch torrent to Manual Mode Vaihda torrent manuaaliseen tilaan - - + + Relocate affected torrents Uudelleensijoita vaikuttuneet torrentit - - + + Switch affected torrents to Manual Mode Vaihda vaikuttuneet torrentit manuaaliseen tilaan - + Use Subcategories Käytä alikategorioita - + Default Save Path: Tallennuksen oletussijainti: - + Copy .torrent files to: Kopioi .torrent-tiedostot kohteeseen: - + Show &qBittorrent in notification area Näytä &qBittorrent ilmoitusalueella - - &Log file - &Lokitiedosto - - - + Display &torrent content and some options Näytä &torrentin sisältö ja joitakin valintoja - + De&lete .torrent files afterwards Poista .torrent-tiedostot &lisäämisen jälkeen - + Copy .torrent files for finished downloads to: Kopioi valmistuneiden latausten .torrent-tiedostot kohteeseen: - + Pre-allocate disk space for all files Varaa kaikille tiedostoille levytila ennakkoon - + Use custom UI Theme Käytä mukautettua käyttöliittymän teemaa - + UI Theme file: Käyttöliittymäteeman tiedosto: - + Changing Interface settings requires application restart Käyttöliittymän asetusten muuttaminen vaatii sovelluksen uudelleenkäynnistyksen - + Shows a confirmation dialog upon torrent deletion Näyttää vahvistusikkunan torrentia poistaessa - - + + Preview file, otherwise open destination folder Esikatsele tiedosto, muuten avaa kohdekansio - - - Show torrent options - Näytä torrentin asetukset - - - + Shows a confirmation dialog when exiting with active torrents Näyttää vahvistusikkunan sovellusta suljettaessa kun torrentteja on käynnissä - + When minimizing, the main window is closed and must be reopened from the systray icon Pienennettäessä, pääikkuna suljetaan ja on avattavissa uudelleen tehtäväpalkin ilmoitusalueen kuvakkeesta - + The systray icon will still be visible when closing the main window Tehtäväpalkin ilmoitusalueen kuvake pysyy näkyvissä myös suljettaessa pääikkuna - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Sulje qBittorrent ilmoitusalueelle - + Monochrome (for dark theme) Harmaasävy (tummille teemoille) - + Monochrome (for light theme) Harmaasävy (vaaleille teemoille) - + Inhibit system sleep when torrents are downloading Estä järjestelmän lepotila, kun torrentteja on latautumassa - + Inhibit system sleep when torrents are seeding Estä järjestelmän lepotila, kun torrentteja jaetaan - + Creates an additional log file after the log file reaches the specified file size Luo uuden tiedoston, kun nykyinen lokitiedosto ylittää tietyn tiedostokoon - + days Delete backup logs older than 10 days päivää - + months Delete backup logs older than 10 months kuukautta - + years Delete backup logs older than 10 years vuotta - + Log performance warnings Lokita suorituskykyvaroitukset - - The torrent will be added to download list in a paused state - Torrent lisätään latauksiin pysäytetynä - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Älä aloita lataamista automaattisesti - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Varaa tiedostojen vaatima tallennustila ennen latauksen aloitusta levyn pirstaloitumisen vähentämiseksi. Hyödyllinnen vain mekaanisille kiintolevyille. - + Append .!qB extension to incomplete files Lisää .!qB pääte keskeneräisille tiedostoille - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Kun torrentti on ladattu, ehdota sen sisältämien .torrent-tiedostojen lisäystä - + Enable recursive download dialog Käytä rekursiivista latausikkunaa - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automaattinen: Monet torrenttien määritykset, kuten tallennussijainti, asetetaan liitetyn kategorian perusteella Manuaalinen: Monet torrenttien määritykset, kuten tallennussijainti, on asetettava manuaalisesti - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Kategorian tallennussijainnin muuttuessa: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one Selvitä suhteellinen tallennussijainti tallennuksen oletussijainnin sijaan sopivan kategorian sijainnilla - + Use icons from system theme Käytä järjestelmäteeman kuvakkeita - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: Torrentin pysäytysehto: - - + + None Ei mitään - - + + Metadata received Metatiedot vastaanotettu - - + + Files checked Tiedostot tarkastettu - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Käytä keskeneräisille torrenteille eri sijaintia: - + Automatically add torrents from: Lisää torrentit automaattisesti kohteesta: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6545,770 +6933,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Vastaanottaja - + To: To receiver Vastaanottaja: - + SMTP server: SMTP-palvelin: - + Sender Lähettäjä - + From: From sender Lähettäjä: - + This server requires a secure connection (SSL) Tämä palvelin vaatii suojatun yhteyden (SSL) - - + + Authentication Tunnistautuminen - - - - + + + + Username: Käyttäjänimi: - - - - + + + + Password: Salasana: - + Run external program Suorita ulkoinen ohjelma - - Run on torrent added - Suorita kun torrent lisätään - - - - Run on torrent finished - Suorita kun torrent valmistuu - - - + Show console window Näytä konsoli-ikkuna - + TCP and μTP TCP ja μTP - + Listening Port Kuunteluportti - + Port used for incoming connections: Portti sisääntuleville yhteyksille: - + Set to 0 to let your system pick an unused port - + Random Satunnainen - + Use UPnP / NAT-PMP port forwarding from my router Käytä UPnP-/NAT-PMP-portinohjausta reitittimeltä - + Connections Limits Yhteyksien rajat - + Maximum number of connections per torrent: Yhteyksien enimmäismäärä torrenttia kohden: - + Global maximum number of connections: Kaikkien yhteyksien enimmäismäärä: - + Maximum number of upload slots per torrent: Lähetyspaikkojen enimmäismäärä torrentia kohden: - + Global maximum number of upload slots: Kaikkien lähetyspaikkojen enimmäismäärä: - + Proxy Server Välityspalvelin - + Type: Tyyppi: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Isäntä: - - - + + + Port: Portti: - + 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 Käytä välityspalvelinta vertaisyhteyksille - + A&uthentication T&unnistautuminen - - Info: The password is saved unencrypted - Tärkeää: Salasana tallennetaan salaamattomana - - - + Filter path (.dat, .p2p, .p2b): Suodatustiedoston sijainti (.dat, .p2p, p2b): - + Reload the filter Lataa suodatin uudelleen - + Manually banned IP addresses... Manuaalisesti estetyt IP-osoitteet... - + Apply to trackers Käytä seurantapalvelimille - + Global Rate Limits Yleiset nopeusrajoitukset - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s Kt/s - - + + Upload: Lähetys: - - + + Download: Lataus: - + Alternative Rate Limits Vaihtoehtoiset nopeusrajoitukset - + Start time Aloitusaika - + End time Päättymisaika - + When: Ajankohta: - + Every day Joka päivä - + Weekdays Arkisin - + Weekends Viikonloppuisin - + Rate Limits Settings Nopeusrajoitusasetukset - + Apply rate limit to peers on LAN Käytä nopeusrajoitusta paikallisverkossa (LAN) oleviin vertaisiin - + Apply rate limit to transport overhead Käytä nopeusrajoitusta siirron rasiteliikenteelle - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Käytä nopeusrajoitusta µTP-protokollaan - + Privacy Yksityisyys - + Enable DHT (decentralized network) to find more peers Käytä vertaishakuun hajautettua DHT (distributed hash table) -protokollaa - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vaihda vertaisia yhteensopivien BitTorrent-päätteiden (µTorrent, Vuze...) kanssa - + Enable Peer Exchange (PeX) to find more peers Käytä vertaishakuun PeX (Peer Exchange) -protokollaa - + Look for peers on your local network Etsi vertaisia lähiverkosta - + Enable Local Peer Discovery to find more peers Käytä vertaishakuun Local Peer Discovery -protokollaa - + Encryption mode: Salaustila: - + Require encryption Vaadi salaus - + Disable encryption Ei salausta - + Enable when using a proxy or a VPN connection Ota käyttöön välityspalvelinta tai VPN-yhteyttä käytettäessä - + Enable anonymous mode Käytä anonyymitilaa - + Maximum active downloads: Aktiivisia latauksia enintään: - + Maximum active uploads: Aktiivisia lähetyksiä enintään: - + Maximum active torrents: Aktiivisia torrentteja enintään: - + Do not count slow torrents in these limits Älä laske hitaita torrenteja näihin rajoituksiin - + Upload rate threshold: Lähetysnopeuden raja: - + Download rate threshold: Latausnopeuden raja: - - - - + + + + sec seconds s - + Torrent inactivity timer: - + then sitten - + Use UPnP / NAT-PMP to forward the port from my router Käytä UPnP:tä / NAT-PMP:tä porttiohjaukseen reitittimeltä - + Certificate: Varmenne: - + Key: Avain: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Tietoa varmenteista</a> - + Change current password Vaihda nykyinen salasana - - Use alternative Web UI - Käytä vaihtoehtoista selainkäyttölittymän ulkoasua - - - + Files location: Tiedostojen sijainti: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Tietoturva - + Enable clickjacking protection Käytä clickjacking-suojausta - + Enable Cross-Site Request Forgery (CSRF) protection Käytä Cross-Site Request Forgery (CSRF) -suojausta - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Käytä Host-otsakkeen validointia - + Add custom HTTP headers Lisää mukautetut HTTP-otsakkeet - + Header: value pairs, one per line - + Enable reverse proxy support Käytä käänteisen välityspalvelimen tukea - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Palvelu: - + Register Rekisteröidy - + Domain name: Verkkotunnuksen nimi: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ottamalla nämä asetukset käyttöön, voit <strong>peruuttamattomasti menettää</strong> torrent-tiedostosi! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file Valitse qBittorrentin käyttöliittymäteeman tiedosto - + Choose Alternative UI files location - + Supported parameters (case sensitive): Tuetut parametrit (kirjainkoolla on merkitystä): - + Minimized Pienennetty - + Hidden Piilotettu - + Disabled due to failed to detect system tray presence - + No stop condition is set. Pysäytysehtoa ei ole määritetty. - + Torrent will stop after metadata is received. Torrent pysäytetään, kun metatiedot on vastaanotettu. - Torrents that have metadata initially aren't affected. - Ei koske torrenteja, joihin metatiedot sisältyvät jo valmiiksi. - - - + Torrent will stop after files are initially checked. Torrent pysäytetään, kun tiedostojen alkutarkastus on suoritettu. - + This will also download metadata if it wasn't there initially. Tämä myös lataa metatiedot, jos niitä ei alunperin ollut. - + %N: Torrent name %N: Torrentin nimi - + %L: Category %L: Kategoria - + %F: Content path (same as root path for multifile torrent) %F: Sisällön sijainti (vastaa monitiedostoisen torrentin juurikansiota) - + %R: Root path (first torrent subdirectory path) %R: Juurisijainti (torrentin ensimmäisen alihakemiston polku) - + %D: Save path %D: Tallennussijainti - + %C: Number of files %C: Tiedostojen määrä - + %Z: Torrent size (bytes) %Z: Torrenin koko (tavua) - + %T: Current tracker %T: Nykyinen seurantapalvelin - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + Testisähköposti + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Ei mikään) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrentti tulkitaan hitaaksi, jos sen lataus- ja lähetysnopeudet pysyvät "Torrentin passiivisuusaika" -arvojen alla - + Certificate Varmenne - + Select certificate Valitse varmenne - + Private key Yksityinen avain - + Select private key Valitse yksityinen avain - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + Järjestelmä + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + Tumma + + + + Light + Light color scheme + Vaalea + + + + System + System color scheme + Järjestelmä + + + Select folder to monitor Valitse valvottava kansio - + Adding entry failed Merkinnän llsääminen epäonnistui - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Sijaintivirhe - - + + Choose export directory Valitse vientihakemisto - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Kun nämä asetukset ovat käytössä, qBittorrent <strong>poistaa</strong>.torrent-tiedostot sen jälkeen kun niiden lisäys latausjonoon onnistui (ensimmäinen valinta) tai ei onnistunut (toinen valinta). Tätä <strong>ei käytetä pelkästään</strong> &rdquo;Lisää torrentti&rdquo; -valinnan kautta avattuihin tiedostoihin, vaan myös <strong>tiedostotyypin kytkennän</strong> kautta avattuihin teidostoihin. - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrentin käyttöliittymän teematiedosto (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Tunnisteet (pilkuin eroteltuna) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Valitse tallennushakemisto - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Valitse IP-suodatustiedosto - + All supported filters Kaikki tuetut suodattimet - + The alternative WebUI files location cannot be blank. - + Parsing error Jäsennysvirhe - + Failed to parse the provided IP filter Annetun IP-suodattimen jäsentäminen epäonnistui - + Successfully refreshed Päivitetty onnistuneesti - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Annetun IP-suodattimen jäsentäminen onnistui: %1 sääntöä otettiin käyttöön. - + Preferences Asetukset - + Time Error Aikavirhe - + The start time and the end time can't be the same. Aloitus- ja päättymisaika eivät voi olla samoja. - - + + Length Error Pituusvirhe @@ -7316,241 +7745,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Tuntematon - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection Saapuva yhteys - + Peer from DHT Vertainen DHT:stä - + Peer from PEX Vertainen PEX:istä - + Peer from LSD Vertainen LSD:stä - + Encrypted traffic Salattu liikenne - + Encrypted handshake Salattu kättely + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Maa/Alue - + IP/Address IP/Osoite - + Port Portti - + Flags Liput - + Connection Yhteys - + Client i.e.: Client application Asiakassovellus - + Peer ID Client i.e.: Client resolved from Peer ID Vertaisen asiakassovelluksen tunniste - + 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. Merkityksellisyys - + Files i.e. files that are being downloaded right now Tiedostot - + Column visibility Sarakkeen näkyvyys - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön - + Add peers... Lisää vertaisia... - - + + Adding peers Lisätään vertaisia - + Some peers cannot be added. Check the Log for details. Joitain vertaisia ei voi lisätä. Katso lokista lisätietoja. - + Peers are added to this torrent. Vertaiset lisätään tähän torrentiin. - - + + Ban peer permanently Estä vertainen pysyvästi - + Cannot add peers to a private torrent Vertaisia ei voida lisätä yksityiseen torrentiin - + Cannot add peers when the torrent is checking Vertaisia ei voida lisätä tarkistettaessa torrentia - + Cannot add peers when the torrent is queued Vertaisia ei voida lisätä torrentin ollessa jonossa - + No peer was selected Vertaisia ei valittu - + Are you sure you want to permanently ban the selected peers? Haluatko varmasti estää valitut vertaiset pysyvästi? - + Peer "%1" is manually banned Vertainen "%1" on estetty manuaalisesti - + N/A Ei saatavilla - + Copy IP:port Kopioi IP:portti @@ -7568,7 +8002,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Lista lisättävistä vertaisista (yksi IP riviä kohden): - + Format: IPv4:port / [IPv6]:port Muoto: IPv4:portti / [IPv6]:portti @@ -7609,27 +8043,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Tässä osassa olevat tiedostot: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information Odota kunnes metatiedot tulevat saataville nähdäksesi tarkemmat tiedot - + Hold Shift key for detailed information Pidä Vaihto-näppäintä pohjassa saadaksesi yksityiskohtaista tietoa @@ -7642,58 +8076,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Hakuliitännäiset - + Installed search plugins: Asennetut hakuliitännäiset: - + Name Nimi - + Version Versio - + Url Url - - + + Enabled Käytössä - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Varoitus: Muista noudattaa maasi tekijänoikeuslakeja, kun lataat torrentteja mistä tahansa näistä hakukoneista. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Asenna uusi - + Check for updates Tarkista päivitykset - + Close Sulje - + Uninstall Poista @@ -7813,98 +8247,65 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Liitännäisen lähde - + Search plugin source: Hakuliitännäisen lähde: - + Local file Paikallinen tiedosto - + Web link Web-linkki - - PowerManagement - - - qBittorrent is active - qBittorrent on käynnissä - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Seuraavat tiedostot torrentista "%1" tukevat esikatselua, valitse yksi niistä: - + Preview Esikatsele - + Name Nimi - + Size Koko - + Progress Edistyminen - + Preview impossible Esikatselu ei onnistu - + Sorry, we can't preview this file: "%1". Valitettavasti tätä tiedostoa ei voi esikatsella: "%1". - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön @@ -7917,27 +8318,27 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Private::FileLineEdit - + Path does not exist Polkua ei ole olemassa - + Path does not point to a directory - + Path does not point to a file Polku ei osoita tiedostoon - + Don't have read permission to path Ei lukuoikeutta polkuun - + Don't have write permission to path Ei kirjoitusoikeutta polkuun @@ -7978,12 +8379,12 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. PropertiesWidget - + Downloaded: Ladattu: - + Availability: Saatavuus: @@ -7998,53 +8399,53 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Siirto - + Time Active: - Time (duration) the torrent is active (not paused) - Käynnissä: + Time (duration) the torrent is active (not stopped) + Aktiivisena - + ETA: Aika: - + Uploaded: Lähetetty: - + Seeds: Jakajia: - + Download Speed: Latausnopeus: - + Upload Speed: Lähetysnopeus: - + Peers: Vertaisia: - + Download Limit: Latausraja: - + Upload Limit: Lähetysraja: - + Wasted: Hukattu: @@ -8054,193 +8455,220 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Yhteydet: - + Information Tiedot - + Info Hash v1: - + Info Hash v2: - + Comment: Kommentti: - + Select All Valitse kaikki - + Select None Poista valinnat - + Share Ratio: Jakosuhde: - + Reannounce In: Julkaise uudelleen: - + Last Seen Complete: Viimeksi nähty valmistuneen: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + Suosio: + + + Total Size: Koko yhteensä: - + Pieces: Osia: - + Created By: Luonut: - + Added On: Lisätty: - + Completed On: Valmistunut: - + Created On: Luotu: - + + Private: + Yksityinen: + + + Save Path: Tallennussijainti: - + Never Ei koskaan - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (hallussa %3) - - + + %1 (%2 this session) %1 (tässä istunnossa %2) - - + + + N/A Ei saatavilla - + + Yes + Kyllä + + + + No + Ei + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (jaettu %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (enintään %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 yhteensä) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (keskimäärin %2) - - New Web seed - Uusi web-jako + + Add web seed + Add HTTP source + Lisää web-jako - - Remove Web seed - Poista web-jako + + Add web seed: + Lisää web-jako: - - Copy Web seed URL - Kopioi web-jaon URL-osoite + + + This web seed is already in the list. + - - Edit Web seed URL - Muokkaa web-jaon URL-osoitetta - - - + Filter files... Suodata tiedostot... - + + Add web seed... + Lisää web-jako... + + + + Remove web seed + Poista web-jako + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Uusi URL-jako - - - - New URL seed: - Uusi URL-jako: - - - - - This URL seed is already in the list. - URL-jako on jo listalla. - - - + Web seed editing Web-jaon muokkaus - + Web seed URL: Web-jaon URL-osoite @@ -8248,33 +8676,33 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Virheellinen tietomuoto - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... Rss-artikkeli '%1' on hyväksytty säännöllä '%2'. Yritetään lisätä torrenttia... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8282,22 +8710,22 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 RSS-syötteen lataaminen osoitteesta '%1' epäonnistui. Syy: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-syöte päivitetty osoitteesta '%1'. Lisättiin %2 uutta artikkelia. - + Failed to parse RSS feed at '%1'. Reason: %2 RSS-syötteen jäsentäminen osoitteesta '%1' epäonnistui. Syy: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-syötteen lataaminen osoitteesta '%1' onnistui. Aloitetaan sen jäsentäminen. @@ -8333,12 +8761,12 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. RSS::Private::Parser - + Invalid RSS feed. Virheellinen RSS-syöte. - + %1 (line: %2, column: %3, offset: %4). @@ -8346,103 +8774,144 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. Annetulla URL-osoitteella on jo olemassa RSS-syöte: %1. - + Feed doesn't exist: %1. Syötettä ei ole olemassa: %1 - + Cannot move root folder. Juurikansiota ei voi siirtää. - - + + Item doesn't exist: %1. Tietuetta ei ole olemassa: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Juurikansiota ei voi poistaa. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. RSS-syötettä ei voitu ladata. Syöte: "%1". Syy: osoite vaaditaan. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. RSS-syötettä ei voitu ladata. Syöte: "%1". Syy: Virheellinen UID. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Väärä RSS-kohteen sijainti: %1. - + RSS item with given path already exists: %1. RSS-kohde ilmoitetulla sijainnilla on jo olemassa: %1. - + Parent folder doesn't exist: %1. Ylemmän tason kansiota ei ole olemassa: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Syötettä ei ole olemassa: %1 + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Päivitystiheys: + + + + sec + s + + + + Default + Oletus + + RSSWidget @@ -8462,8 +8931,8 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. - - + + Mark items read Merkitse kohteet luetuiksi @@ -8488,132 +8957,115 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Torrentit: (kaksoisnapsauta ladataksesi) - - + + Delete Poista - + Rename... Nimeä uudelleen... - + Rename Nimeä uudelleen - - + + Update Päivitä - + New subscription... Uusi tilaus... - - + + Update all feeds Päivitä kaikki syötteet - + Download torrent Lataa torrentti - + Open news URL Avaa uutisten osoite - + Copy feed URL Kopioi syötteen osoite - + New folder... Uusi kansio... - - Edit feed URL... - Muokkaa syötteen osoitetta... + + Feed options... + - - Edit feed URL - Muokkaa syötteen osoitetta - - - + Please choose a folder name Valitse kansion nimi - + Folder name: Kansion nimi: - + New folder Uusi kansio - - - Please type a RSS feed URL - Anna RSS-syötteen verkko-osoite. - - - - - Feed URL: - Syötteen osoite: - - - + Deletion confirmation Poistamisen vahvistus - + Are you sure you want to delete the selected RSS feeds? Haluatko varmasti poistaa valitut RSS-syötteet? - + Please choose a new name for this RSS feed Valitse uusi nimi tälle RSS-syötteelle - + New feed name: Uusi syötteen nimi: - + Rename failed Uudelleennimeäminen epäonnistui - + Date: Päiväys: - + Feed: Syöte: - + Author: Tekijä: @@ -8621,38 +9073,38 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. SearchController - + Python must be installed to use the Search Engine. Python tulee olla asennettu, jotta hakukonetta voi käyttää. - + Unable to create more than %1 concurrent searches. Ei voi luoda enempää kuin %1 samanaikaista hakua. - - + + Offset is out of range - + All plugins are already up to date. Kaikki liitännäiset ovat jo ajan tasalla. - + Updating %1 plugins Päivitetään %1 liitännäistä - + Updating plugin %1 Päivitetään liitännäinen %1 - + Failed to check for plugin updates: %1 Liitännäisten päivitysten tarkistaminen epäonnistui: %1 @@ -8727,132 +9179,142 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. Koko: - + Name i.e: file name Nimi - + Size i.e: file size Koko - + Seeders i.e: Number of full sources Jakoja - + Leechers i.e: Number of partial sources Lataajia - - Search engine - Hakukone - - - + Filter search results... Suodata hakutulokset... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Tulokset (näytetään <i>%1</i>/<i>%2</i>): - + Torrent names only Vain torrentin nimestä - + Everywhere Kaikkialta - + Use regular expressions Käytä säännöllisiä lausekkeita - + Open download window Avaa latausikkuna - + Download Lataa - + Open description page Avaa kuvaussivu - + Copy Kopioi - + Name Nimi - + Download link Lataa linkki - + Description page URL Kuvaussivun osoite - + Searching... Haetaan... - + Search has finished Haku on päättynyt - + Search aborted - Haku keskeytetty + Haku keskeytettiin - + An error occurred during search... Haun aikana tapahtui virhe... - + Search returned no results Haku ei palauttanut tuloksia - + + Engine + + + + + Engine URL + + + + + Published On + Julkaistu + + + Column visibility Sarakkeen näkyvyys - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön @@ -8860,104 +9322,104 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. SearchPluginManager - + Unknown search engine plugin file format. Tuntematon hakukoneliitännäisen tiedostomuoto. - + Plugin already at version %1, which is greater than %2 Liitännäinen on jo versiossa %1, mikä on suurempi kuin %2 - + A more recent version of this plugin is already installed. Uudempi versio tästä liitännäisestä on jo asennettu. - + Plugin %1 is not supported. Liitännäinen %1 ei ole tuettu. - - + + Plugin is not supported. Liitännäinen ei ole tuettu. - + Plugin %1 has been successfully updated. Liitännäinen %1 on päivitetty onnistuneesti. - + All categories Kaikki kategoriat - + Movies Elokuvat - + TV shows TV-ohjelmat - + Music Musiikki - + Games Pelit - + Anime Anime - + Software Ohjelmat - + Pictures Kuvat - + Books Kirjat - + Update server is temporarily unavailable. %1 Päivityspalvelin ei ole juuri nyt käytettävissä. %1 - - + + Failed to download the plugin file. %1 Liitännäistiedoston lataus epäonnistui. %1 - + Plugin "%1" is outdated, updating to version %2 Liitännäinen "%1" on vanhentunut, päivitetään versioon %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8967,114 +9429,145 @@ Valitut alkuperäisliitännäiset ovat poistettu käytöstä. - - - - Search Etsi - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Hakuliitännäisiä ei ole asennettu. Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta asentaaksesi liitännäisiä. - + Search plugins... Hakuliitännäiset - + A phrase to search for. Haku fraasi. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Esimerkki: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins Kaikki liitännäiset - + Only enabled Vain käytössä olevat - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + Päivitä + + + Close tab Sulje välilehti - + Close all tabs Sulje kaikki välilehdet - + Select... Valitse... - - - + + Search Engine Hakukone - + + Please install Python to use the Search Engine. Asenna Python käyttääksesi hakukonetta. - + Empty search pattern Tyhjä hakulauseke - + Please type a search pattern first Kirjoita ensin hakulauseke - + + Stop Pysäytä + + + SearchWidget::DataStorage - - Search has finished - Haku valmis + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Haku epäonnistui + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9187,34 +9680,34 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta - + Upload: Lähetys: - - - + + + - - - + + + KiB/s Kt/s - - + + Download: Lataus: - + Alternative speed limits Vaihtoehtoiset nopeusrajoitukset @@ -9406,32 +9899,32 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta Keskimääräinen aika jonossa: - + Connected peers: Yhdistetyt vertaiset: - + All-time share ratio: Jakosuhde yhteensä: - + All-time download: Ladattu yhteensä: - + Session waste: Hukattu tässä istunnossa: - + All-time upload: Lähetetty yhteensä: - + Total buffer size: Puskurien koko yhteensä: @@ -9446,12 +9939,12 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta Jonoon asetetut I/O-työt: - + Write cache overload: Kirjoitusvälimuistin ylikuormitus: - + Read cache overload: Lukuvälimuistin ylikuormitus: @@ -9470,51 +9963,77 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta StatusBar - + Connection status: Yhteyden tila: - - + + No direct connections. This may indicate network configuration problems. Ei suoria yhteyksiä. Tämä voi olla merkki verkko-ongelmista. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 solmua - + qBittorrent needs to be restarted! qBittorrent pitää käynnistää uudelleen! - - - + + + Connection Status: Yhteyden tila: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Ei yhteyttä. Yleensä tämä tarkoittaa, että qBittorrent ei pystynyt kuuntelemaan sisääntulevien yhteyksien porttia. - + Online Verkkoyhteydessä - + + Free space: + + + + + External IPs: %1, %2 + Ulkoiset IP:t: %1, %2 + + + + External IP: %1%2 + Ulkoinen IP: %1%2 + + + Click to switch to alternative speed limits Napsauta vaihtaaksesi vaihtoehtoisiin nopeusrajoituksiin - + Click to switch to regular speed limits Napsauta vaihtaaksesi tavallisiin nopeusrajoituksiin @@ -9544,38 +10063,38 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta - Resumed (0) - Jatkettu (0) + Running (0) + Käynnissä (0) - Paused (0) + Stopped (0) Pysäytetty (0) Active (0) - Käynnissä (0) + Aktiivinen (0) Inactive (0) - Ei käynnissä (0) + Passiivinen (0) Stalled (0) - Pysähtynyt (0) + Viivästynyt (0) Stalled Uploading (0) - Pysähtynyt lähetys (0) + Viivästynyt lähetys (0) Stalled Downloading (0) - Pysähtynyt lataus (0) + Viivästynyt lataus (0) @@ -9612,60 +10131,60 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta Completed (%1) Valmistunut (%1) + + + Running (%1) + Käynnissä (%1) + - Paused (%1) + Stopped (%1) Pysäytetty (%1) + + + Start torrents + Käynnistä torrentit + + + + Stop torrents + Pysäytä torrentit + Moving (%1) Siirretään (%1) - - - Resume torrents - Käynnistä torrentit - - - - Pause torrents - Keskeytä torrentit - Remove torrents Poista torrentit - - - Resumed (%1) - Jatkettu (%1) - Active (%1) - Käynnissä (%1) + Aktiivinen (%1) Inactive (%1) - Ei käynnissä (%1) + Passiivinen (%1) Stalled (%1) - Pysähtynyt (%1) + Viivästynyt (%1) Stalled Uploading (%1) - Pysähtynyt lähetys (%1) + Viivästynyt lähetys (%1) Stalled Downloading (%1) - Pysähtynyt lataus (%1) + Viivästynyt lataus (%1) @@ -9713,31 +10232,31 @@ Napsauta "Hakuliitännäiset"-painiketta ikkunan oikeasta alakulmasta Remove unused tags Poista käyttämättömät tunnisteet - - - Resume torrents - Käynnistä torrentit - - - - Pause torrents - Pysäytä torrentit - Remove torrents Poista torrentit - - New Tag - Uusi tunniste + + Start torrents + Käynnistä torrentit + + + + Stop torrents + Pysäytä torrentit Tag: Tunniste: + + + Add tag + Lisää tunniste + Invalid tag name @@ -9882,32 +10401,32 @@ Valitse toinen nimi ja yritä uudelleen. TorrentContentModel - + Name Nimi - + Progress Edistyminen - + Download Priority Latauksen tärkeysaste - + Remaining Jäljellä - + Availability Saatavuus - + Total Size Koko yhteensä @@ -9952,98 +10471,98 @@ Valitse toinen nimi ja yritä uudelleen. TorrentContentWidget - + Rename error Virhe nimettäessä uudelleen - + Renaming Nimetään uudelleen - + New name: Uusi nimi: - + Column visibility Sarakkeen näkyvyys - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön - + Open Avaa - + Open containing folder Avaa sisältävä kansio - + Rename... Nimeä uudelleen... - + Priority Tärkeysaste - - + + Do not download Älä lataa - + Normal Normaali - + High Korkea - + Maximum Maksimi - + By shown file order Näkyvien tiedostojen järjestysmallissa - + Normal priority Normaali tärkeysaste - + High priority Korkea tärkeysaste - + Maximum priority Maksimi tärkeysaste - + Priority by shown file order Ensisijaisuus näkyvän tiedoston järjestyksessä @@ -10051,19 +10570,19 @@ Valitse toinen nimi ja yritä uudelleen. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. - + Torrentin luonti epäonnistui. @@ -10090,13 +10609,13 @@ Valitse toinen nimi ja yritä uudelleen. - + Select file Valitse tiedosto - + Select folder Valitse kansio @@ -10171,87 +10690,83 @@ Valitse toinen nimi ja yritä uudelleen. Kentät - + You can separate tracker tiers / groups with an empty line. Voit erottaa seurantapalvelinten tasot/ryhmät tyhjällä rivillä - + Web seed URLs: Web-jaot: - + Tracker URLs: Seurantapalvelimien osoitteet: - + Comments: Kommentit: - + Source: Lähde: - + Progress: Edistyminen: - + Create Torrent Luo torrent - - + + Torrent creation failed Torrentin luonti epäonnistui - + Reason: Path to file/folder is not readable. Syy: Tiedoston/kansion sijainti ei ole luettavissa. - + Select where to save the new torrent Valitse minne uusi torrent tallennetaan - + Torrent Files (*.torrent) Torrent-tiedostot (*.torrent) - Reason: %1 - Syy: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" Syy: "%1" - + Add torrent failed Torrentin lisääminen epäonnistui - + Torrent creator Torrentin luonti - + Torrent created: Torrent luotu: @@ -10259,32 +10774,32 @@ Valitse toinen nimi ja yritä uudelleen. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. Seurantun kansion sijainti ei voi olla tyhjä. - + Watched folder Path cannot be relative. Seurantun kansion sijainti ei voi olla suhteellinen. @@ -10292,42 +10807,29 @@ Valitse toinen nimi ja yritä uudelleen. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - - - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Virheellinen metadata + Tarkkaillaan kansiota: "%1" @@ -10358,176 +10860,164 @@ Valitse toinen nimi ja yritä uudelleen. Käytä keskeneräisille torrenteille eri sijaintia - + Category: Kategoria: - - Torrent speed limits - Torrentin nopeusrajoitukset + + Torrent Share Limits + Torrent-jakorajoitukset - + Download: Lataus: - - + + - - + + Torrent Speed Limits + Torrent-nopeusrajoitukset + + + + KiB/s Kt/s - + These will not exceed the global limits - + Upload: Lähetys: - - Torrent share limits - Torrentin jakorajoitukset - - - - Use global share limit - Käytä yleistä jako rajoitusta - - - - Set no share limit - Älä aseta jakorajoitusta - - - - Set share limit to - Aseta jakorajoitukseksi - - - - ratio - Jakosuhde - - - - total minutes - yhteensä minuutteja - - - - inactive minutes - ei käynnissä minuutteja - - - + Disable DHT for this torrent Poista DHT käytöstä tältä torrentilta - + Download in sequential order Lataa järjestyksessä - + Disable PeX for this torrent Poista PeX käytöstä tältä torrentilta - + Download first and last pieces first Lataa ensin ensimmäinen ja viimeinen osa - + Disable LSD for this torrent Poista LSD käytöstä tältä torrentilta - + Currently used categories - - + + Choose save path Valitse tallennussijainti - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - Oletus + Oletus - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - - Ratio: + + Action when the limit is reached: + + + Stop torrent + Pysäytä torrent + + + + Remove torrent + Poista torrentti + + + + Remove torrent and its content + Poista torrent ja sen sisältö + + + + Enable super seeding for torrent + Käytä torrentille superjakoa + + + + Ratio: + Jakosuhde: + TorrentTagsDialog @@ -10537,32 +11027,32 @@ Valitse toinen nimi ja yritä uudelleen. Torrentin tunnisteet - - New Tag - Uusi tunniste + + Add tag + Lisää tunniste - + Tag: Tunniste: - + Invalid tag name Virheellinen tunniste nimi - + Tag name '%1' is invalid. - + Tunnisteen nimi '%1' on virheellinen. - + Tag exists Tunniste on olemassa - + Tag name already exists. Tunnisteen nimi on jo olemassa @@ -10570,115 +11060,130 @@ Valitse toinen nimi ja yritä uudelleen. TorrentsController - + Error: '%1' is not a valid torrent file. Virhe: '%1' ei ole kelvollinen torrent-tiedosto. - + Priority must be an integer Ensisijaisuuden on oltava kokonaisluku - + Priority is not valid Ensisijaisuus on virheellinen - + Torrent's metadata has not yet downloaded Torrentin metatietoja ei ole vielä ladattu - + File IDs must be integers Tiedoston ID:n on oltava kokonaisluku - + File ID is not valid Tiedoston ID on virheellinen - - - - + + + + Torrent queueing must be enabled Torrentien jonotus tulee olla käytössä - - + + Save path cannot be empty Tallennussijainti ei voi olla tyhjä - - + + Cannot create target directory - - + + Category cannot be empty Kategoria ei voi olla tyhjä - + Unable to create category Kategorian luominen ei onnistu - + Unable to edit category Kategorian muokkaaminen ei onnistu - + Unable to export torrent file. Error: %1 - + Cannot make save path Tallennusijainnin luonti ei onnistu - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 'sort'-parametri on virheellinen - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Kansioon ei voi kirjoittaa - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name Torrentin nimi on virheellinen - - + + Incorrect category name Väärä kategorian nimi @@ -10704,196 +11209,191 @@ Valitse toinen nimi ja yritä uudelleen. TrackerListModel - + Working Toiminnassa - + Disabled Pois käytöstä - + Disabled for this torrent - + This torrent is private Torrent on yksityinen - + N/A Ei saatavilla - + Updating... Päivitetään... - + Not working Ei toimi - + Tracker error Seurantapalvelimen virhe - + Unreachable Ei saavutettavissa - + Not contacted yet Ei yhteyttä vielä - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Taso - - - - Protocol + URL/Announce Endpoint - Status - Tila - - - - Peers - Käyttäjät - - - - Seeds - Jakajia - - - - Leeches - Lataajat - - - - Times Downloaded - Latauskerrat - - - - Message - Viesti - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Taso + + + + Status + Tila + + + + Peers + Käyttäjät + + + + Seeds + Jakajia + + + + Leeches + Lataajat + + + + Times Downloaded + Latauskerrat + + + + Message + Viesti + TrackerListWidget - + This torrent is private Torrent on yksityinen - + Tracker editing Seurantapalvelimen muokkaus - + Tracker URL: Seurantapalvelimen osoite: - - + + Tracker editing failed Seurantapalvelimen muokkaaminen epäonnistui - + The tracker URL entered is invalid. Kirjoitettu seurantapalvelimen osoite on virheellinen. - + The tracker URL already exists. Seurantapalvelimen osoite on jo olemassa. - + Edit tracker URL... Muokkaa seurantapalvelimen osoitetta... - + Remove tracker Poista seurantapalvelin - + Copy tracker URL Kopioi seurantapalvelimen osoite - + Force reannounce to selected trackers Pakota uudelleenjulkaisu valituille seurantapalvelimille - + Force reannounce to all trackers Pakota uudelleenjulkaisu kaikille seurantapalvelimille - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön - + Add trackers... Lisää seurantapalvelimia... - + Column visibility Sarakkeen näkyvyys @@ -10911,37 +11411,37 @@ Valitse toinen nimi ja yritä uudelleen. Lisättävät seurantapalvelimet (yksi per rivi): - + µTorrent compatible list URL: µTorrent-yhteensopivan listan osoite: - + Download trackers list - + Add Lisää - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10949,62 +11449,62 @@ Valitse toinen nimi ja yritä uudelleen. TrackersFilterWidget - + Warning (%1) Varoitus (%1) - + Trackerless (%1) Ei seurantapalvelinta (%1) - + Tracker error (%1) Seurantapalvelimen virhe (%1) - + Other error (%1) Muu virhe (%1) - + Remove tracker Poista seurantapalvelin - - Resume torrents - Jatka torrentteja + + Start torrents + Käynnistä torrentit - - Pause torrents - Keskeytä torrentit + + Stop torrents + Pysäytä torrentit - + Remove torrents Poista torrentit - + Removal confirmation Poistovahvistus - + Are you sure you want to remove tracker "%1" from all torrents? Haluatko varmasti poistaa seurantapalvelimen "%1" kaikista torrenteista? - + Don't ask me again. Älä kysy uudelleen. - + All (%1) this is for the tracker filter Kaikki (%1) @@ -11013,7 +11513,7 @@ Valitse toinen nimi ja yritä uudelleen. TransferController - + 'mode': invalid argument @@ -11052,7 +11552,7 @@ Valitse toinen nimi ja yritä uudelleen. Stalled Torrent is waiting for download to begin - Pysähtynyt + Viivästynyt @@ -11105,11 +11605,6 @@ Valitse toinen nimi ja yritä uudelleen. 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. Tarkistetaan jatkotietoja - - - Paused - Keskeytetty - Completed @@ -11133,220 +11628,252 @@ Valitse toinen nimi ja yritä uudelleen. Virhe - + Name i.e: torrent name Nimi - + Size i.e: torrent size Koko - + Progress % Done Edistyminen - + + Stopped + Pysäytetty + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Tila - + Seeds i.e. full sources (often untranslated) Jaot - + Peers i.e. partial sources (often untranslated) Vertaisia - + Down Speed i.e: Download speed Latausnopeus - + Up Speed i.e: Upload speed Lähetysnopeus - + Ratio Share ratio Jakosuhde - + + Popularity + Suosio + + + ETA i.e: Estimated Time of Arrival / Time left Aika - + Category Kategoria - + Tags Tunnisteet - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Lisätty - + Completed On Torrent was completed on 01/01/2010 08:00 Valmistunut - + Tracker Seurantapalvelin - + Down Limit i.e: Download limit Latausraja - + Up Limit i.e: Upload limit Lähetysraja - + Downloaded Amount of data downloaded (e.g. in MB) Ladattu - + Uploaded Amount of data uploaded (e.g. in MB) Lähetetty - + Session Download Amount of data downloaded since program open (e.g. in MB) Ladattu tässä istunnossa - + Session Upload Amount of data uploaded since program open (e.g. in MB) Lähetetty tässä istunnossa - + Remaining Amount of data left to download (e.g. in MB) Jäljellä - + Time Active - Time (duration) the torrent is active (not paused) - Käynnissä + Time (duration) the torrent is active (not stopped) + Aktiivisena - + + Yes + Kyllä + + + + No + Ei + + + Save Path Torrent save path Tallennussijainti - + Incomplete Save Path Torrent incomplete save path Keskeneräisen tallennussijainti - + Completed Amount of data completed (e.g. in MB) Valmistunut - + Ratio Limit Upload share ratio limit Jakosuhteen raja - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Viimeksi nähty valmistuneen - + Last Activity Time passed since a chunk was downloaded/uploaded Viimeisin toiminta - + Total Size i.e. Size including unwanted data Koko yhteensä - + Availability The number of distributed copies of the torrent Saatavuus - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + Yksityinen + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Ei saatavilla - + %1 ago e.g.: 1h 20m ago %1 sitten - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (jaettu %2) @@ -11355,339 +11882,319 @@ Valitse toinen nimi ja yritä uudelleen. TransferListWidget - + Column visibility Sarakkeen näkyvyys - + Recheck confirmation Uudelleentarkistuksen vahvistus - + Are you sure you want to recheck the selected torrent(s)? Haluatko varmasti tarkistaa uudelleen valitut torrentit? - + Rename Nimeä uudelleen - + New name: Uusi nimi: - + Choose save path Valitse tallennussijainti - - Confirm pause - Vahvista keskeytys - - - - Would you like to pause all torrents? - Haluatko keskeyttää kaikki torrentit? - - - - Confirm resume - Vahvista jatkaminen - - - - Would you like to resume all torrents? - Haluatko jatkaa kaikkia torrenteja? - - - + Unable to preview Esikatselu ei onnistu - + The selected torrent "%1" does not contain previewable files Valittu torrent "%1" ei sisällä esikatseluun soveltuvia tiedostoja - + Resize columns Muuta sarakkeiden kokoa - + Resize all non-hidden columns to the size of their contents Sovita kaikkien piilottamattomien sarakkeiden koko niiden sisältöön - + Enable automatic torrent management - + Käytä torrentien automaattista hallintaa - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Lisää tunnisteita - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Tiedosto samalla nimellä on jo olemassa - + Export .torrent file error - + Remove All Tags Poista kaikki tunnisteet - + Remove all tags from selected torrents? Poistetaanko valituista torrenteista kaikki tunnisteet? - + Comma-separated tags: Pilkulla erotetut tunnisteet: - + Invalid tag Virheellinen tunniste - + Tag name: '%1' is invalid Tunnisteen nimi '%1' ei kelpaa - - &Resume - Resume/start the torrent - &Jatka - - - - &Pause - Pause the torrent - &Keskeytä - - - - Force Resu&me - Force Resume/start the torrent - Pakota jatka&minen - - - + Pre&view file... &Esikatsele tiedosto... - + Torrent &options... Torrentin &asetukset... - + Open destination &folder Avaa kohde&kansio - + Move &up i.e. move up in the queue Siirrä &ylös - + Move &down i.e. Move down in the queue Siirrä &alas - + Move to &top i.e. Move to top of the queue Siirrä &kärkeen - + Move to &bottom i.e. Move to bottom of the queue Siirrä &viimeiseksi - + Set loc&ation... Aseta sij&ainti... - + Force rec&heck Pakota uudelleen&tarkastus - + Force r&eannounce Pakota uudelleen&julkaisu - + &Magnet link - + &Magnet-linkki - + Torrent &ID - + &Comment - + &Kommentti - + &Name &Nimi - + Info &hash v1 - + Info h&ash v2 - + Re&name... Ni&meä uudelleen... - + Edit trac&kers... Muokkaa seuranta&palvelimia - + E&xport .torrent... &Vie .torrent... - + Categor&y Kategori&a - + &New... New category... &Uusi... - + &Reset Reset category &Palauta - + Ta&gs &Tunnisteet - + &Add... Add / assign multiple tags... &Lisää... - + &Remove All Remove all tags &Poista kaikki - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Jono - + &Copy &Kopioi - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Lataa järjestyksessä - + + Add tags + Lisää tunnisteita + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + &Käynnistä + + + + Sto&p + Stop the torrent + &Pysäytä + + + + Force Star&t + Force Resume/start the torrent + Pakota aloi&tus + + + &Remove Remove the torrent &Poista - + Download first and last pieces first Lataa ensin ensimmäinen ja viimeinen osa - + Automatic Torrent Management Automaattinen torrentien hallintatila - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automaattisessa tilassa monet torrenttien määritykset, kuten tallennussijainti, asetetaan liitetyn kategorian perusteella - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Superjako-tila @@ -11697,7 +12204,7 @@ Valitse toinen nimi ja yritä uudelleen. UI Theme Configuration - + Käyttöliittymän teeman määritys @@ -11713,13 +12220,13 @@ Valitse toinen nimi ja yritä uudelleen. Light Mode - + Vaalea tila Dark Mode - + Tumma tila @@ -11732,28 +12239,28 @@ Valitse toinen nimi ja yritä uudelleen. - + UI Theme Configuration. - + Käyttöliittymän teeman määritys. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Kuvaketiedostoa ei voitu poistaa. Tiedosto: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11761,7 +12268,12 @@ Valitse toinen nimi ja yritä uudelleen. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Ulkoasun lataus tiedostosta epäonnistui: "%1" @@ -11792,20 +12304,21 @@ Valitse toinen nimi ja yritä uudelleen. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11813,34 +12326,34 @@ Valitse toinen nimi ja yritä uudelleen. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Python-suoritustiedosto löydetty. Nimi: "%1". Versio: "%2" - + Failed to find Python executable. Path: "%1". - + Python-suoritustiedoston paikantaminen epäonnistui. Polku: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable - + Python-suoritustiedoston paikantaminen epäonnistui @@ -11848,7 +12361,7 @@ Valitse toinen nimi ja yritä uudelleen. File open error. File: "%1". Error: "%2" - + Tiedoston avausvirhe. Tiedosto: "%1". Virhe: "%2" @@ -11863,7 +12376,7 @@ Valitse toinen nimi ja yritä uudelleen. File read error. File: "%1". Error: "%2" - + Tiedoston lukuvirhe. Tiedosto: "%1". Virhe: "%2" @@ -11930,72 +12443,72 @@ Valitse toinen nimi ja yritä uudelleen. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Epäkelpo tiedostotyyppi. Vain tavallinen tiedosto sallitaan. - + Symlinks inside alternative UI folder are forbidden. Symboliset linkit ovat kiellettyjä vaihtoehtoisen UI:n kansiossa. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Verkkokäyttöliittymän mukautetusta HTTP-otsikosta puuttuu ':'-erotin: "%1" - + Web server error. %1 - + Web-palvelimen virhe. %1 - + Web server error. Unknown error. - + Web-palvelimen virhe. Tuntematon virhe. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12003,125 +12516,133 @@ Valitse toinen nimi ja yritä uudelleen. WebUI - + Credentials are not set - + Kirjautumistietoja ei ole asetettu - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Tuntematon virhe + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1 min {1s?} + - + %1m e.g: 10 minutes %1 min - + %1h %2m e.g: 3 hours 5 minutes %1 h %2 min - + %1d %2h e.g: 2 days 10 hours %1 d %2 h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_fr.ts b/src/lang/qbittorrent_fr.ts index 35aa47100..1ae949511 100644 --- a/src/lang/qbittorrent_fr.ts +++ b/src/lang/qbittorrent_fr.ts @@ -6,7 +6,7 @@ About qBittorrent - À propos de qBittorrent + À propos de qBitTorrent @@ -14,75 +14,75 @@ À propos - + Authors Auteurs - + Current maintainer Responsable actuel - + Greece Grèce - - + + Nationality: Nationalité : - - + + E-mail: Courriel : - - + + Name: Nom : - + Original author Auteur original - + France France - + Special Thanks Remerciements - + Translators Traducteurs - + License Licence - + Software Used Logiciels utilisés - + qBittorrent was built with the following libraries: - qBittorrent a été conçu à l'aide des bibliothèques logicielles suivantes : + qBitTorrent a été conçu à l'aide des bibliothèques logicielles suivantes : - + Copy to clipboard Copier dans le presse-papier @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 Le projet qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 Le projet qBitTorrent @@ -166,15 +166,10 @@ Sauvegarder sous - + Never show again Ne plus afficher - - - Torrent settings - Paramètres du torrent - Set as default category @@ -191,12 +186,12 @@ Démarrer le torrent - + Torrent information Informations sur le torrent - + Skip hash check Ne pas vérifier les données du torrent @@ -205,6 +200,11 @@ Use another path for incomplete torrent Utiliser un autre répertoire pour un torrent incomplet + + + Torrent options + Options du torrent + Tags: @@ -231,75 +231,75 @@ Condition d'arrêt : - - + + None Aucun - - + + Metadata received Métadonnées reçues - + Torrents that have metadata initially will be added as stopped. - + Les torrents qui ont initialement des métadonnées seront ajoutés comme arrêtés. - - + + Files checked Fichiers vérifiés - + Add to top of queue Ajouter en haut de la file d'attente - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Lorsque coché, le fichier .torrent ne sera pas supprimé malgré les paramètres de la page « Téléchargements » des Options - + Content layout: Agencement du contenu : - + Original Original - + Create subfolder Créer un sous-dossier - + Don't create subfolder Ne pas créer de sous-dossier - + Info hash v1: Info hash v1 : - + Size: Taille : - + Comment: Commentaire : - + Date: Date : @@ -329,151 +329,147 @@ Se souvenir du dernier répertoire de destination utilisé - + Do not delete .torrent file Ne pas supprimer le fichier .torrent - + Download in sequential order Télécharger en ordre séquentiel - + Download first and last pieces first Télécharger les premiers et derniers morceaux en premier - + Info hash v2: Info hash v2 : - + Select All Tout sélectionner - + Select None Ne rien sélectionner - + Save as .torrent file... Enregistrer le fichier .torrent sous… - + I/O Error Erreur E/S - + Not Available This comment is unavailable Non disponible - + Not Available This date is unavailable Non disponible - + Not available Non disponible - + Magnet link Lien magnet - + Retrieving metadata... Récupération des métadonnées… - - + + Choose save path Choisir un répertoire de destination - + No stop condition is set. Aucune condition d'arrêt n'est définie. - + Torrent will stop after metadata is received. Le torrent s'arrêtera après la réception des métadonnées. - Torrents that have metadata initially aren't affected. - Les torrents qui ont initialement des métadonnées ne sont pas affectés. - - - + Torrent will stop after files are initially checked. Le torrent s'arrêtera après la vérification initiale des fichiers. - + This will also download metadata if it wasn't there initially. Cela téléchargera également les métadonnées si elles n'y étaient pas initialement. - - + + N/A N/D - + %1 (Free space on disk: %2) %1 (Espace libre sur le disque : %2) - + Not available This size is unavailable. Non disponible - + Torrent file (*%1) Fichier torrent (*%1) - + Save as torrent file Enregistrer le fichier torrent sous - + Couldn't export torrent metadata file '%1'. Reason: %2. Impossible d'exporter le fichier de métadonnées du torrent '%1'. Raison : %2. - + Cannot create v2 torrent until its data is fully downloaded. Impossible de créer un torrent v2 tant que ses données ne sont pas entièrement téléchargées. - + Filter files... Filtrer les fichiers… - + Parsing metadata... Analyse syntaxique des métadonnées... - + Metadata retrieval complete Récuperation des métadonnées terminée @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Téléchargement du torrent ... Source : "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Échec de l'ajout du torrent. Source : "%1". Raison : "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Détection d'une tentative d'ajouter un torrent en double. Source : %1. Torrent existant : %2. Résultat : %3 - - - + Merging of trackers is disabled fusion de trackers désactivé - + Trackers cannot be merged because it is a private torrent Les trackers ne peuvent pas être fusionnés car le torrent est privé - + Trackers are merged from new source Les trackers ont fusionné depuis la nouvelle source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Limites de partage du torrent + Limites de partage du torrent @@ -672,763 +668,864 @@ AdvancedSettings - - - - + + + + MiB Mio - + Recheck torrents on completion Revérifier les torrents lorsqu'ils sont terminés - - + + ms milliseconds ms - + Setting Paramètre - + Value Value set for this setting Valeur - + (disabled) (désactivé) - + (auto) (automatique) - + + min minutes min - + All addresses Toutes les adresses - + qBittorrent Section - Section qBittorrent + Section qBitTorrent - - + + Open documentation Ouvrir la documentation - + All IPv4 addresses Toutes les adresses IPv4 - + All IPv6 addresses Toutes les adresses IPv6 - + libtorrent Section Section libtorrent - + Fastresume files Fichiers de reprise rapide - + SQLite database (experimental) Base de données SQLite (expérimental) - + Resume data storage type (requires restart) Type de stockage des données de reprise (redémarrage requis) - + Normal Normale - + Below normal Sous la normale - + Medium Moyenne - + Low Basse - + Very low Très basse - + Physical memory (RAM) usage limit Limite d’utilisation de la mémoire physique (RAM) - + Asynchronous I/O threads Fils d'E/S asynchrones - + Hashing threads Fils de hachage - + File pool size Taille du pool de fichiers - + Outstanding memory when checking torrents Mémoire en suspens lors de la vérification des torrents : - + Disk cache Cache disque - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalle de l'expiration du cache disque - + Disk queue size Taille de la file d’attente du disque - - + + Enable OS cache Activer le cache du système d’exploitation - + Coalesce reads & writes Fusionner les lectures et écritures - + Use piece extent affinity Utiliser l'affinité par extension de morceau - + Send upload piece suggestions Envoyer des suggestions de morceaux de téléversement - - - - + + + + + 0 (disabled) 0 (désactivé) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Intervalle de sauvegarde des données de reprise [0: désactivé] - + Outgoing ports (Min) [0: disabled] Ports de sortie (Min.) [0: désactivé] - + Outgoing ports (Max) [0: disabled] Ports de sortie (Max.) [0: désactivé] - + 0 (permanent lease) 0 (allocation permanente) - + UPnP lease duration [0: permanent lease] Durée de l'allocation UPnP [0: allocation permanente] - + Stop tracker timeout [0: disabled] Délai d'attente lors de l’arrêt du tracker [0: désactivé] - + Notification timeout [0: infinite, -1: system default] Délai de notification [0 : infini, -1 : valeur par défaut] - + Maximum outstanding requests to a single peer Requêtes en suspens maximales vers un seul pair - - - - - + + + + + KiB Kio - + (infinite) (infini) - + (system default) (valeur par défaut) - + + Delete files permanently + Supprimer les fichiers définitivement + + + + Move files to trash (if possible) + Déplacer dans la corbeille (si possible) + + + + Torrent content removing mode + Mode de retrait de contenu du Torrent + + + This option is less effective on Linux Cette option est moins efficace sous Linux - + Process memory priority Priorité de la mémoire de processus - + Bdecode depth limit Limite de la profondeur pour Bdecode - + Bdecode token limit Limite de jetons pour Bdecode - + Default Par défaut - + Memory mapped files Fichiers mappés en mémoire - + POSIX-compliant Compatible POSIX - + + Simple pread/pwrite + Pread/pwrite simple + + + Disk IO type (requires restart) Type d'E/S du disque (redémarrage requis) - - + + Disable OS cache Désactiver le cache du système d’exploitation - + Disk IO read mode Mode de lecture des E/S du disque - + Write-through Double écriture - + Disk IO write mode Mode d'écriture des E/S du disque - + Send buffer watermark Filigrane pour le tampon d'envoi - + Send buffer low watermark Filigrane faible pour le tampon d'envoi - + Send buffer watermark factor Facteur du filigrane pour le tampon d'envoi - + Outgoing connections per second Connexions sortantes par seconde - - + + 0 (system default) 0 (valeur par défaut) - + Socket send buffer size [0: system default] Taille du cache d'envoi au Socket [0: valeur par défaut] - + Socket receive buffer size [0: system default] Taille du cache de réception du Socket [0: valeur par défaut] - + Socket backlog size Taille de la liste des tâches du socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervalle de sauvegarde des données [0: désactivé] + + + .torrent file size limit Limite de la taille d'un fichier .torrent - + Type of service (ToS) for connections to peers Type de service (ToS) pour les connexions aux pairs - + Prefer TCP Préférer les connexions TCP - + Peer proportional (throttles TCP) Proportionnel par pair (limite les connexions TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Support des noms de domaines internationalisés (IDN) - + Allow multiple connections from the same IP address Permettre des connexions multiples depuis la même adresse IP - + Validate HTTPS tracker certificates Valider les certificats HTTPS des trackers - + Server-side request forgery (SSRF) mitigation Atténuation de la falsification des demandes côté serveur (SSRF) - + Disallow connection to peers on privileged ports Interdire la connexion à des pairs sur des ports privilégiés - + It appends the text to the window title to help distinguish qBittorent instances - + Cela ajoute le texte au titre de la fenêtre pour aider à distinguer les instances de qBitTorent - + Customize application instance name - + Personnaliser le nom de l'instance d'application - + It controls the internal state update interval which in turn will affect UI updates Ceci contrôle l'intervalle de mise à jour de l'état interne qui, à son tour, affectera les mises à jour de l'IU - + Refresh interval Intervalle d'actualisation - + Resolve peer host names Afficher le nom d'hôte des pairs - + IP address reported to trackers (requires restart) Adresse IP annoncée aux trackers (redémarrage requis) - + + Port reported to trackers (requires restart) [0: listening port] + Port annoncé aux trackers (redémarrage requis) +[0 : port d'écoute] + + + Reannounce to all trackers when IP or port changed Réannoncer à tous les trackers lorsque l'IP ou le port a changé - + Enable icons in menus Activer les icônes dans les menus - + + Attach "Add new torrent" dialog to main window + Ancrer la boîte de dialogue « Ajouter un nouveau torrent » à la fenêtre principale + + + Enable port forwarding for embedded tracker Activer la redirection de port pour le tracker intégré - + Enable quarantine for downloaded files Activer la quarantaine pour les fichiers téléchargés - + Enable Mark-of-the-Web (MOTW) for downloaded files Activer Mark-of-the-Web (MOTW) pour les fichiers téléchargés - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Affecte la validation des certificats et les activités du protocole non torrent (p. ex. les flux RSS, les mises à jour de programmes, les fichiers torrent, la base de données geoip, etc.) + + + + Ignore SSL errors + Ignorer les erreurs SSL + + + (Auto detect if empty) (Détection automatique si vide) - + Python executable path (may require restart) Chemin de l’exécutable Python (peut nécessiter un redémarrage) - + + Start BitTorrent session in paused state + Démarrer la session BitTorrent en pause + + + + sec + seconds + sec. + + + + -1 (unlimited) + -1 (Illimité) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Temps maximal de fermeture de BitTorrent [-1: illimité] + + + Confirm removal of tracker from all torrents Confirmer le retrait du tracker de tous les torrents - + Peer turnover disconnect percentage Pourcentage de déconnexion par roulement de pair - + Peer turnover threshold percentage Pourcentage de seuil de roulement de pair - + Peer turnover disconnect interval Intervalle de déconnexion par roulement de pair - + Resets to default if empty Réinitialise aux valeurs par défaut si vide - + DHT bootstrap nodes Nœud d’amorçage DHT - + I2P inbound quantity Quantité entrante sur I2P - + I2P outbound quantity Quantité sortante sur I2P - + I2P inbound length Longueur entrante sur I2P - + I2P outbound length Longueur sortante sur I2P - + Display notifications Afficher les notifications - + Display notifications for added torrents Afficher les notifications pour les torrents ajoutés - + Download tracker's favicon Télécharger les favicon des trackers - + Save path history length Enregistrer la longueur de l'historique des répertoires - + Enable speed graphs Activer les graphiques de vitesse - + Fixed slots Emplacements fixes - + Upload rate based Basé sur la vitesse d'envoi - + Upload slots behavior Comportement des emplacements d'envoi - + Round-robin Répartition de charge - + Fastest upload Envoi le plus rapide - + Anti-leech Anti-leech - + Upload choking algorithm Envoyer l'algorithme d'étouffement - + Confirm torrent recheck Confirmer la revérification du torrent - + Confirm removal of all tags Confirmer la suppression de toutes les étiquettes - + Always announce to all trackers in a tier Toujours annoncer à tous les trackers d'un niveau - + Always announce to all tiers Toujours annoncer à tous les niveaux - + Any interface i.e. Any network interface N'importe quelle interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algorithme du mode mixte %1-TCP - + Resolve peer countries Déterminer les pays des pairs - + Network interface Interface réseau - + Optional IP address to bind to Adresse IP optionnelle à laquelle se relier - + Max concurrent HTTP announces Nombre maximal d'annonces HTTP simultanées - + Enable embedded tracker Activer le tracker intégré - + Embedded tracker port Port du tracker intégré + + AppController + + + + Invalid directory path + Chemin de dossier invalide + + + + Directory does not exist + Dossier inexistant + + + + Invalid mode, allowed values: %1 + Mode invalide, valeurs autorisées : %1 + + + + cookies must be array + Les cookies doivent être des tableaux + + Application - + Running in portable mode. Auto detected profile folder at: %1 Fonctionnement en mode portable. Dossier de profil détecté automatiquement : %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Indicateur de ligne de commandes redondant détecté : « %1 ». Le mode portable implique une reprise relativement rapide. - + Using config directory: %1 Utilisation du dossier de configuration : %1 - + Torrent name: %1 Nom du torrent : %1 - + Torrent size: %1 Taille du torrent : %1 - + Save path: %1 Répertoire de destination : %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. + Merci d'utiliser qBitTorrent. - + Torrent: %1, sending mail notification Torrent : %1, envoi du courriel de notification - + Add torrent failed Échec de l'ajout du torrent - + Couldn't add torrent '%1', reason: %2. N'a pas pu ajouter le torrent "%1", raison : %2 - + The WebUI administrator username is: %1 Le nom d'utilisateur de l'administrateur de l'IU Web est : %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Le mot de passe de l'administrateur de l'IU Web n'a pas été défini. Un mot de passe temporaire est fourni pour cette session : %1 - + You should set your own password in program preferences. Vous devriez définir votre propre mot de passe dans les préférences du programme. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. L'interface web est désactivée ! Pour activer l'interface web, éditer le fichier de configuration manuellement. - + Running external program. Torrent: "%1". Command: `%2` Exécution d'un programme externe en cours. Torrent : « %1 ». Commande : `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Échec de l’exécution du programme externe. Torrent : « %1 ». Commande : '%2' - + Torrent "%1" has finished downloading Le téléchargement du torrent « %1 » est terminé - + WebUI will be started shortly after internal preparations. Please wait... L'IU Web sera lancé peu de temps après les préparatifs internes. Veuillez patienter… - - + + Loading torrents... Chargement des torrents en cours… - + E&xit &Quitter - + I/O Error i.e: Input/Output Error Erreur d'E/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,102 +1534,112 @@ Raison : %2 - + Torrent added Torrent ajouté - + '%1' was added. e.g: xxx.avi was added. '%1' a été ajouté. - + Download completed - Téléchargement terminé + Téléchargement complété - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - qBittorrent %1 a démarré. ID de processus : %2 + qBitTorrent %1 a démarré. ID de processus : %2 - + + This is a test email. + Ceci est un courriel test. + + + + Test email + Courriel test + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Le téléchargement du torrent '%1' est terminé. - + Information Information - + To fix the error, you may need to edit the config file manually. Pour réparer cette erreur, vous aurez peut-être besoin d'éditer le fichier de configuration manuellement. - + To control qBittorrent, access the WebUI at: %1 - Pour contrôler qBittorrent, accédez à l’IU Web à : %1 + Pour contrôler qBitTorrent, accédez à l’IU Web à : %1 - + Exit Quitter - + Recursive download confirmation Confirmation pour téléchargement récursif - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Le torrent « %1 » contient des fichiers .torrent, voulez-vous poursuivre avec leurs téléchargements? - + Never Jamais - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Téléchargement récursif du fichier .torrent dans le torrent. Torrent source : « %1 ». Fichier : « %2 » - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Échec lors de la définition de la limite d’utilisation de la mémoire physique (RAM). Code d'erreur : %1. Message d'erreur : « %2 » - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Échec lors de la définition de la limite d’utilisation de la mémoire physique (RAM). Taille demandée : %1. Limite du système : %2. Code d’erreur : %3. Message d’erreur : « %4 » - + qBittorrent termination initiated - Arrêt de qBittorrent initié + Arrêt de qBitTorrent initié - + qBittorrent is shutting down... - qBittorrent s'arrête… + qBitTorrent s'arrête… - + Saving torrent progress... Sauvegarde de l'avancement du torrent. - + qBittorrent is now ready to exit - qBittorrent est maintenant prêt à quitter + qBitTorrent est maintenant prêt à quitter @@ -1609,12 +1716,12 @@ Raison : %2 Priorité : - + Must Not Contain: Ne doit pas contenir : - + Episode Filter: Filtre d'épisode : @@ -1667,263 +1774,263 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date &Exporter... - + 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 - + 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 - + Episode number is a mandatory positive value Le numéro d'épisode est une valeur obligatoire positive - + Rules Règles - + Rules (legacy) Règles (héritées) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Intervalle infini : <b>1x25-;</b> correspond aux épisodes 25 et suivants de la saison 1, et tous les épisodes des saisons postérieures - + 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 - + Invalid action Action invalide - + The list is empty, there is nothing to export. La liste est vide, il n'y a rien à exporter. - + Export RSS rules Exporter les règles RSS - + I/O Error Erreur d'E/S - + Failed to create the destination file. Reason: %1 Erreur lors de la création du fichier de destination. Raison : %1 - + Import RSS rules Importer des règles RSS - + Failed to import the selected rules file. Reason: %1 Impossible d'importer le fichier sélectionné des règles. Raison : %1 - + 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 - + Clear downloaded episodes... Effacer les épisodes téléchargés… - + Rule renaming Renommage de la règle - + Please type the new rule name Veuillez enter le nouveau nom pour la règle - + Clear downloaded episodes Effacer les épisodes téléchargés - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Êtes-vous sûr de vouloir effacer la liste des épisodes téléchargés pour la règle sélectionnée ? - + Regex mode: use Perl-compatible regular expressions Mode Regex : utiliser des expressions régulières compatibles à celles de Perl - - + + Position %1: %2 Position %1 : %2 - + Wildcard mode: you can use Mode caractère de remplacement : vous pouvez utiliser - - + + Import error Erreur d'importation - + Failed to read the file. %1 Échec de lecture du fichier : %1 - + ? to match any single character ? pour correspondre à n'importe quel caractère - + * to match zero or more of any characters * pour correspondre à aucun caractère ou davantage - + Whitespaces count as AND operators (all words, any order) Les espaces comptent comme des opérateurs ET (tous les mots, dans n'importe quel ordre) - + | is used as OR operator | est utilisé comme opérateur OU - + If word order is important use * instead of whitespace. Si l'ordre des mots est important, utilisez * au lieu d'un espace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Une expression avec une clause vide %1 (p. ex. %2) - + will match all articles. va correspondre à tous les articles. - + will exclude all articles. va exclure tous les articles. @@ -1965,7 +2072,7 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Impossible de créer le dossier de reprise du torrent : « %1 » @@ -1975,28 +2082,38 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Impossible d'analyser les données de reprise : format invalide - - + + Cannot parse torrent info: %1 Impossible d'analyser l'information du torrent : %1 - + Cannot parse torrent info: invalid format Impossible d'analyser l'information du torrent : format invalide - + Mismatching info-hash detected in resume data Info hash incompatible détecté dans les données de reprise - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Impossible d'enregistrer les métadonnées du torrent dans '%1'. Erreur : %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Impossible d'enregistrer les données de reprise du torrent vers '%1'. Erreur : %2. @@ -2007,16 +2124,17 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date + Cannot parse resume data: %1 Impossible d'analyser les données de reprise : %1 - + Resume data is invalid: neither metadata nor info-hash was found Les données de reprise sont invalides : ni les métadonnées ni l'info-hash n'ont été trouvés - + Couldn't save data to '%1'. Error: %2 Impossible d’enregistrer les données dans '%1'. Erreur : %2 @@ -2024,38 +2142,60 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date BitTorrent::DBResumeDataStorage - + Not found. Introuvable. - + Couldn't load resume data of torrent '%1'. Error: %2 Impossible de charger les données de reprise du torrent « %1 ». Erreur : %2 - - + + Database is corrupted. La base de données est corrompue. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Impossible d'activer le mode de journalisation Write-Ahead Logging (WAL). Erreur : %1. - + Couldn't obtain query result. Impossible d'obtenir le résultat de la requête. - + WAL mode is probably unsupported due to filesystem limitations. Le mode WAL n'est probablement pas pris en charge en raison des limitations du système de fichiers. - + + + Cannot parse resume data: %1 + Impossible d'analyser les données de reprise : %1 + + + + + Cannot parse torrent info: %1 + Impossible d'analyser l'information du torrent : %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Début de transaction impossible. Erreur: %1 @@ -2063,22 +2203,22 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Impossible d'enregistrer les métadonnées du torrent. Erreur : %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Impossible de stocker les données de reprise pour le torrent « %1 ». Erreur : %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Impossible de supprimer les données de reprise du torrent « %1 ». Erreur : %2 - + Couldn't store torrents queue positions. Error: %1 Impossible de stocker les positions de la file d’attente des torrents. Erreur : %1 @@ -2086,457 +2226,503 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Prise en charge de la table de hachage distribuée (DHT) : %1 - - - - - - - - - + + + + + + + + + ON ACTIVÉE - - - - - - - - - + + + + + + + + + OFF DÉSACTIVÉE - - + + Local Peer Discovery support: %1 Prise en charge de la découverte de pairs sur le réseau local : %1 - + Restart is required to toggle Peer Exchange (PeX) support Un redémarrage est nécessaire pour basculer la prise en charge des échanges entre pairs (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Échec de la reprise du torrent. Torrent : « %1 ». Raison : « %2 » - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Échec de la reprise du torrent : un ID de torrent incohérent a été détecté. Torrent : « %1 » - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Données incohérentes détectées : la catégorie est absente du fichier de configuration. La catégorie sera récupérée, mais ses paramètres seront réinitialisés par défaut. Torrent : « %1 ». Catégorie : « %2 » - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Données incohérentes détectées : catégorie invalide. Torrent : « %1 ». Catégorie : « %2 » - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Incompatibilité détectée entre les répertoires de destination de la catégorie récupérée et le répertoire de destination actuel du torrent. Le torrent est maintenant passé en mode manuel. Torrent : « %1 ». Catégorie : « %2 » - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Données incohérentes détectées : l'étiquette est manquante dans le fichier de configuration. L'étiquette sera restaurée. Torrent : « %1 ». Étiquette : « %2 » - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Données incohérentes détectées : étiquette invalide. Torrent : « %1 ». Étiquette : « %2 » - + System wake-up event detected. Re-announcing to all the trackers... Événement de réveil du système détecté. Réannonce à tous les trackers en cours… - + Peer ID: "%1" ID du pair : « %1 » - + HTTP User-Agent: "%1" Agent utilisateur HTTP : « %1 » - + Peer Exchange (PeX) support: %1 Prise en charge des échanges entre pairs (PeX) : %1 - - + + Anonymous mode: %1 Mode anonyme : %1 - - + + Encryption support: %1 Prise en charge du chiffrement : %1 - - + + FORCED FORCÉE - + Could not find GUID of network interface. Interface: "%1" Impossible de trouver le GUID de l’interface réseau. Interface : « %1 » - + Trying to listen on the following list of IP addresses: "%1" Tentative d’écoute sur la liste d’adresses IP suivante : « %1 » - + Torrent reached the share ratio limit. Le torrent a atteint la limite du ratio de partage. - - - + Torrent: "%1". Torrent : « %1 ». - - - - Removed torrent. - Torrent retiré. - - - - - - Removed torrent and deleted its content. - Torrent retiré et son contenu supprimé. - - - - - - Torrent paused. - Torrent mis en pause. - - - - - + Super seeding enabled. Super partage activé. - + Torrent reached the seeding time limit. Le torrent a atteint la limite de temps de partage. - + Torrent reached the inactive seeding time limit. Le torrent a atteint la limite de temps de partage inactif. - + Failed to load torrent. Reason: "%1" Échec du chargement du torrent. Raison : « %1 » - + I2P error. Message: "%1". Erreur I2P. Message : "%1". - + UPnP/NAT-PMP support: ON Prise en charge UPnP/NAT-PMP : ACTIVÉE - + + Saving resume data completed. + Sauvegarde des données de reprise complétée. + + + + BitTorrent session successfully finished. + Session BitTorrent correctement terminée. + + + + Session shutdown timed out. + Temps de fermeture de session dépassé. + + + + Removing torrent. + Retrait du torrent. + + + + Removing torrent and deleting its content. + Retrait du torrent et suppression de son contenu. + + + + Torrent stopped. + Torrent arrêté. + + + + Torrent content removed. Torrent: "%1" + Contenu du torrent retiré. Torrent : "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Échec du retrait du contenu du torrent. Torrent : "%1". Erreur : "%2" + + + + Torrent removed. Torrent: "%1" + Torrent retiré. Torrent: "%1" + + + + Merging of trackers is disabled + fusion de trackers désactivé + + + + Trackers cannot be merged because it is a private torrent + Les trackers ne peuvent pas être fusionnés car le torrent est privé + + + + Trackers are merged from new source + Les trackers ont fusionné depuis la nouvelle source + + + UPnP/NAT-PMP support: OFF Prise en charge UPnP/NAT-PMP : DÉSACTIVÉE - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Échec de l’exportation du torrent. Torrent : « %1 ». Destination : « %2 ». Raison : « %3 » - + Aborted saving resume data. Number of outstanding torrents: %1 Annulation de l’enregistrement des données de reprise. Nombre de torrents en suspens : %1 - + The configured network address is invalid. Address: "%1" L’adresse réseau configurée est invalide. Adresse : « %1 » - - + + Failed to find the configured network address to listen on. Address: "%1" Échec de la recherche de l’adresse réseau configurée pour l’écoute. Adresse : « %1 » - + The configured network interface is invalid. Interface: "%1" L’interface réseau configurée est invalide. Interface : « %1 » - + + Tracker list updated + La liste des trackers a été mise a jour + + + + Failed to update tracker list. Reason: "%1" + Échec de la mise à jour de la liste des trackers. Raison : "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Adresse IP invalide rejetée lors de l’application de la liste des adresses IP bannies. IP : « %1 » - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Tracker ajouté au torrent. Torrent : « %1 ». Tracker : « %2 » - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tracker retiré du torrent. Torrent : « %1 ». Tracker : « %2 » - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Ajout de l'URL de la source au torrent. Torrent : « %1 ». URL : « %2 » - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Retrait de l'URL de la source au torrent. Torrent : « %1 ». URL : « %2 » - - Torrent paused. Torrent: "%1" - Torrent mis en pause. Torrent : « %1 » + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Échec de la suppression du partfile. Torrent : "%1". Raison : "%2". - + Torrent resumed. Torrent: "%1" Reprise du torrent. Torrent : « %1 » - + Torrent download finished. Torrent: "%1" Téléchargement du torrent terminé. Torrent : « %1 » - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Déplacement du torrent annulé. Torrent : « %1 ». Source : « %2 ». Destination : « %3 » - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent arrêté. Torrent : « %1 » + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Échec de la mise en file d’attente du déplacement du torrent. Torrent : « %1 ». Source : « %2 ». Destination : « %3 ». Raison : le torrent est actuellement en cours de déplacement vers la destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Échec de la mise en file d’attente du déplacement du torrent. Torrent : « %1 ». Source : « %2 ». Destination : « %3 ». Raison : les deux chemins pointent vers le même emplacement - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Mise en file d’attente du déplacement du torrent. Torrent : « %1 ». Source : « %2 ». Destination : « %3 ». - + Start moving torrent. Torrent: "%1". Destination: "%2" Démarrer le déplacement du torrent. Torrent : « %1 ». Destination : « %2 » - + Failed to save Categories configuration. File: "%1". Error: "%2" Échec de l’enregistrement de la configuration des catégories. Fichier : « %1 ». Erreur : « %2 » - + Failed to parse Categories configuration. File: "%1". Error: "%2" Échec de l’analyse de la configuration des catégories. Fichier : « %1 ». Erreur : « %2 » - + Successfully parsed the IP filter file. Number of rules applied: %1 Analyse réussie du fichier de filtre IP. Nombre de règles appliquées : %1 - + Failed to parse the IP filter file Échec de l’analyse du fichier de filtre IP - + Restored torrent. Torrent: "%1" Torrent restauré. Torrent : « %1 » - + Added new torrent. Torrent: "%1" Ajout d’un nouveau torrent. Torrent : « %1 » - + Torrent errored. Torrent: "%1". Error: "%2" Torrent erroné. Torrent : « %1 ». Erreur : « %2 » - - - Removed torrent. Torrent: "%1" - Torrent retiré. Torrent : « %1 » - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent retiré et son contenu supprimé. Torrent : « %1 » - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Des paramètres SSL dans le torrent sont manquants. Torrent : « %1 ». Message : « %2 » - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alerte d’erreur d’un fichier. Torrent : « %1 ». Fichier : « %2 ». Raison : « %3 » - + UPnP/NAT-PMP port mapping failed. Message: "%1" Échec du mappage du port UPnP/NAT-PMP. Message : « %1 » - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Le mappage du port UPnP/NAT-PMP a réussi. Message : « %1 » - + IP filter this peer was blocked. Reason: IP filter. Filtre IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). port filtré (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). port privilégié (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + La connexion à l'URL seed a échouée. Torrent : « %1 ». URL : « %2 ». Erreur : « %3 » + + + BitTorrent session encountered a serious error. Reason: "%1" La session BitTorrent a rencontré une erreur sérieuse. Raison : "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Erreur du proxy SOCKS5. Adresse : %1. Message : « %2 ». - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restrictions du mode mixte - + Failed to load Categories. %1 Échec du chargement des Catégories : %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Échec du chargement de la configuration des Catégories. Fichier : « %1 ». Erreur : « Format de données invalide » - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent supprimé, mais la suppression de son contenu et/ou de ses fichiers .parts a échoué. Torrent : « %1 ». Erreur : « %2 » - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 est désactivé - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 est désactivé - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Échec de la recherche DNS de l’URL de la source. Torrent : « %1 ». URL : « %2 ». Erreur : « %3 » - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Message d’erreur reçu de l’URL de la source. Torrent : « %1 ». URL : « %2 ». Message : « %3 » - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Écoute réussie sur l’IP. IP : « %1 ». Port : « %2/%3 » - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Échec de l’écoute sur l’IP. IP : « %1 ». Port : « %2/%3 ». Raison : « %4 » - + Detected external IP. IP: "%1" IP externe détectée. IP : « %1 » - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Erreur : la file d’attente d’alertes internes est pleine et des alertes sont supprimées, vous pourriez constater une dégradation des performances. Type d'alerte supprimée : « %1 ». Message : « %2 » - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Déplacement du torrent réussi. Torrent : « %1 ». Destination : « %2 » - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Échec du déplacement du torrent. Torrent : « %1 ». Source : « %2 ». Destination : « %3 ». Raison : « %4 » @@ -2546,19 +2732,19 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Failed to start seeding. - + Échec au démarrage du partage. BitTorrent::TorrentCreator - + Operation aborted Opération annulée - - + + Create new torrent file failed. Reason: %1. Échec de la création d'un nouveau fichier torrent. Raison : %1. @@ -2566,67 +2752,67 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Échec de l'ajout du pair « %1 » au torrent « %2 ». Raison : %3 - + Peer "%1" is added to torrent "%2" Le pair « %1 » est ajouté au torrent « %2 » - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Données inattendues détectées. Torrent : %1. Données : total_recherché=%2 total_recherché_terminé=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Échec de l'écriture dans le fichier. Raison : « %1 ». Le torrent est maintenant en mode « envoi seulement ». - + Download first and last piece first: %1, torrent: '%2' Télécharger d'abord le premier et le dernier morceau : %1, torrent : %2 - + On Activé - + Off Désactivé - + Failed to reload torrent. Torrent: %1. Reason: %2 Échec du rechargement du torrent. Torrent : « %1 ». Raison : « %2 » - + Generate resume data failed. Torrent: "%1". Reason: "%2" Échec de la génération des données de reprise. Torrent : « %1 ». Raison : « %2 » - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Échec de la restauration du torrent. Les fichiers ont probablement été déplacés ou le stockage n’est pas accessible. Torrent : « %1 ». Raison : « %2 » - + Missing metadata Métadonnées manquantes - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Renommage du fichier échoué. Torrent : « %1 », fichier : « %2 », raison : « %3 » - + Performance alert: %1. More info: %2 Alerte de performance : %1. Plus d’informations : %2 @@ -2647,189 +2833,189 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Le paramètre '%1' doit suivre la syntaxe '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Le paramètre '%1' doit suivre la syntaxe '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Nombre entier attendu dans la variable d'environnement '%1', mais '%2' reçu - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Le paramètre '%1' doit suivre la syntaxe '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' %1 attendu dans la variable d'environnement '%2', mais '%3' reçu - - + + %1 must specify a valid port (1 to 65535). %1 doit spécifier un port valide (1 à 65535). - + Usage: Utilisation : - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)…] - + Options: Options - + Display program version and exit Afficher la version du programme et quitter - + Display this help message and exit Afficher ce message d'aide et quitter - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Le paramètre '%1' doit suivre la syntaxe '%1=%2' + + + Confirm the legal notice Confirmer les mentions légales - - + + port port - + Change the WebUI port Changer le port de l'IU Web - + Change the torrenting port Changer le port des torrents - + Disable splash screen Désactiver l'écran de démarrage - + Run in daemon-mode (background) Exécuter en mode daemon (arrière-plan) - + dir Use appropriate short form or abbreviation of "directory" dossier - + Store configuration files in <dir> Stocker les fichiers de configuration sous <dir> - - + + name nom - + Store configuration files in directories qBittorrent_<name> - Stocker les fichiers de configuration dans les répertoires qBittorrent_<name> + Stocker les fichiers de configuration dans les répertoires qBitTorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hacke les fichiers fastresume de libtorrent et rend les chemins des fichiers relatifs au répertoire du profil - + files or URLs fichiers ou URLs - + Download the torrents passed by the user Télécharger les torrents transmis par l'utilisateur - + Options when adding new torrents: Options lors de l'ajout d'un nouveau torrent : - + path chemin - + Torrent save path Répertoire de destination du torrent - - Add torrents as started or paused - Ajouter les torrents comme démarrés ou mis en pause + + Add torrents as running or stopped + Ajouter les torrents comme en cours ou arrêtés. - + Skip hash check Sauter la vérification du hachage - + Assign torrents to category. If the category doesn't exist, it will be created. Affecter des torrents à la catégorie. Si la catégorie n'existe pas, elle sera créée. - + Download files in sequential order Télécharger les fichiers en ordre séquentiel - + Download first and last pieces first Télécharger les premiers et derniers morceaux en premier - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Préciser si la fenêtre « Ajouter un nouveau torrent » s'ouvre lors de l'ajout d'un torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Les valeurs des options peuvent être renseignées par les variables d'environnement. Pour une option nommée 'parameter-name', le nom de la variable d'environnement est 'QBT_PARAMETER_NAME' (en majuscules, en remplaçant '-' par '_'). Pour renseigner une valeur sentinelle, réglez la variable sur '1' ou 'TRUE'. Par exemple, pour désactiver l'écran d’accueil : - + Command line parameters take precedence over environment variables Les paramètres de la ligne de commande ont priorité sur les variables d'environnement - + Help Aide @@ -2881,13 +3067,13 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date - Resume torrents - Reprendre les torrents + Start torrents + Démarrer les torrents - Pause torrents - Mettre les torrents en pause + Stop torrents + Arrêter les torrents @@ -2898,15 +3084,20 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date ColorWidget - + Edit... Éditer… - + Reset Réinitialiser + + + System + Système + CookiesDialog @@ -2947,12 +3138,12 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date CustomThemeSource - + Failed to load custom theme style sheet. %1 Échec du chargement de la feuille de style du thème personnalisé. %1 - + Failed to load custom theme colors. %1 Échec du chargement des couleurs du thème personnalisé. %1 @@ -2960,7 +3151,7 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date DefaultThemeSource - + Failed to load default theme colors. %1 Échec du chargement des couleurs du thème par défaut. %1 @@ -2979,23 +3170,23 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date - Also permanently delete the files - Supprimer également les fichiers de manière définitive + Also remove the content files + Retirer également les fichiers de contenu - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Voulez-vous vraiment retirer '%1' de la liste des transferts ? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Êtes-vous sûr de vouloir retirer ces %1 torrents de la liste des transferts ? - + Remove Retirer @@ -3008,12 +3199,12 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Télécharger depuis des URLs - + Add torrent links Ajouter des liens torrents - + One link per line (HTTP links, Magnet links and info-hashes are supported) Un lien par ligne (les liens HTTP, les liens magnet et les info-hashes sont supportés) @@ -3023,12 +3214,12 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Télécharger - + No URL entered Aucune URL saisie - + Please type at least one URL. Veuillez saisir au moins une URL. @@ -3187,25 +3378,48 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Erreur d'analyse : le fichier de filtrage n'est pas un fichier P2B PeerGuardian valide. + + FilterPatternFormatMenu + + + Pattern Format + Format du modèle + + + + Plain text + Texte plein + + + + Wildcards + Jokers + + + + Regular expression + Expression régulière + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Téléchargement du torrent ... Source : "%1" - - Trackers cannot be merged because it is a private torrent - Les trackers ne peuvent pas être fusionnés car le torrent est privé - - - + Torrent is already present Le torrent existe déjà - + + Trackers cannot be merged because it is a private torrent. + Les trackers ne peuvent pas être fusionnés car le torrent est privé + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Le torrent '%1' est déjà dans la liste des transferts. Voulez-vous fusionner les trackers de la nouvelle source ? @@ -3213,38 +3427,38 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date 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 - + Database corrupted: no data section found. Base de données corrompue : section data introuvable. @@ -3252,17 +3466,17 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Taille de requête HTTP trop grande, fermeture du socket. Limite: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Mauvaise méthode de requête HTTP, fermeture du socket. IP : %1. Méthode : « %2 » - + Bad Http request, closing socket. IP: %1 Mauvaise requête HTTP, fermeture du socket. IP : %1 @@ -3303,26 +3517,60 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date IconWidget - + Browse... Parcourir… - + Reset Réinitialiser - + Select icon Sélectionner une icône - + Supported image files Formats d'image supportés + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + La gestion de l'alimentation a trouvé une interface D-Bus approprié. Interface : %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Erreur de la gestion de l'alimentation. Action : %1. Erreur : %2 + + + + Power management unexpected error. State: %1. Error: %2 + Erreur Inattendue de la gestion de l'alimentation. Etat : %1. Erreur : %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3333,7 +3581,7 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date 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. - qBittorrent est un logiciel de partage de fichiers. Lorsque vous ajoutez un torrent, ses données sont mises à la disposition des autres pour leur envoyer. Tout contenu que vous partagez est de votre unique responsabilité. + qBitTorrent est un logiciel de partage de fichiers. Lorsque vous ajoutez un torrent, ses données sont mises à la disposition des autres pour leur envoyer. Tout contenu que vous partagez est de votre unique responsabilité. @@ -3354,13 +3602,13 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 a été bloqué. Raison : %2. - + %1 was banned 0.0.0.0 was banned %1 a été banni @@ -3369,60 +3617,60 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 est un paramètre de ligne de commande inconnu. - - + + %1 must be the single command line parameter. %1 doit être le paramètre de ligne de commande unique. - + Run application with -h option to read about command line parameters. Exécuter le programme avec l'option -h pour afficher les paramètres de ligne de commande. - + Bad command line Mauvaise ligne de commande - + Bad command line: Mauvaise ligne de commande : - + An unrecoverable error occurred. Une erreur irrécupérable a été rencontrée. + - qBittorrent has encountered an unrecoverable error. - qBittorrent a rencontré une erreur irrécupérable. + qBitTorrent a rencontré une erreur irrécupérable. - + You cannot use %1: qBittorrent is already running. - Vous ne pouvez pas utiliser %1 : qBittorrent est déjà en cours d'exécution. + Vous ne pouvez pas utiliser %1 : qBitTorrent est déjà en cours d'exécution. - + Another qBittorrent instance is already running. - Une autre instance de qBittorrent est déjà en cours d'exécution. + Une autre instance de qBitTorrent est déjà en cours d'exécution. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Instance qBitTorrent inattendue trouvée. Fermeture de cette instance. ID de processus actuel : %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - Instance qBittorrent inattendue trouvée. Fermeture de cette instance. ID de processus actuel : %1. - - - Error when daemonizing. Reason: "%1". Error code: %2. Erreur lors de la daemonisation. Raison : « %1 ». Code d'erreur : %2. @@ -3435,609 +3683,681 @@ Les formats supportés : S01E01, 1x1, 2017.12.31 et 31.12.2017 (les formats date &É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... - - &Resume - &Démarrer - - - + &Remove &Retirer - + Torrent &Creator &Créateur de torrent - - + + Alternative Speed Limits Limites de vitesse alternatives - + &Top Toolbar Barre d'ou&tils - + Display Top Toolbar Afficher la barre d'outils - + Status &Bar &Barre d'état - + Filters Sidebar Barre latérale des filtres - + 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 - + Do&nate! Faire un do&n ! - + + Sh&utdown System + É&teindre le système + + + &Do nothing &Ne rien faire - + Close Window Fermer la fenêtre - - R&esume All - Tout Dé&marrer - - - + Manage Cookies... Gérer les cookies… - + Manage stored network cookies Gérer les cookies réseau stockées - + Normal Messages Messages normaux - + Information Messages Messages d'information - + Warning Messages Messages d'avertissement - + Critical Messages Messages critiques - + &Log &Journal - + + Sta&rt + Déma&rrer + + + + Sto&p + Arrê&ter + + + + R&esume Session + R&elancer la session + + + + Pau&se Session + Mettre en pause + + + Set Global Speed Limits... Définir les limites de vitesse globale… - + Bottom of Queue Bas de la file d'attente - + Move to the bottom of the queue Déplacer au bas de la file d’attente - + Top of Queue Haut de la file d'attente - + Move to the top of the queue Déplacer au haut de la file d'attente - + Move Down Queue Descendre dans la file d’attente - + Move down in the queue Descendre dans la file d'attente - + Move Up Queue Monter dans la file d’attente - + Move up in the queue Monter dans la file d'attente - + &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 - - - + &Statistics &Statistiques - + Check for Updates Vérifier les mises à jour - + Check for Program Updates Vérifier les mises à jour du programm - + &About &À propos - - &Pause - Mettre en &pause - - - - P&ause All - Tout &mettre en pause - - - + &Add Torrent File... &Ajouter un fichier torrent… - + Open Ouvrir - + E&xit &Quitter - + Open URL Ouvrir URL - + &Documentation &Documentation - + Lock Verrouiller - - - + + + Show Afficher - + Check for program updates Vérifier la disponibilité de mises à jour du logiciel - + Add Torrent &Link... Ajouter &lien vers un torrent… - + If you like qBittorrent, please donate! Si vous aimez qBittorrent, faites un don ! - - + + Execution Log Journal d'exécution - + Clear the password Effacer le mot de passe - + &Set Password &Définir le mot de pass - + Preferences Préférences - + &Clear Password &Supprimer le mot de pass - + Transfers Transferts - - + + qBittorrent is minimized to tray - qBittorrent est réduit dans la barre des tâches + qBitTorrent est réduit dans la barre des tâches - - - + + + This behavior can be changed in the settings. You won't be reminded again. Ce comportement peut être modifié dans les réglages. Il n'y aura plus de rappel. - + 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 : - + Are you sure you want to clear the password? Êtes vous sûr de vouloir effacer le mot de passe ? - + Use regular expressions Utiliser les expressions régulières - + + + Search Engine + Moteur de recherche + + + + Search has failed + La recherche a échoué + + + + Search has finished + La recherche est terminée + + + Search Recherche - + Transfers (%1) Transferts (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - qBittorrent vient d'être mis à jour et doit être redémarré pour que les changements soient pris en compte. + qBitTorrent vient d'être mis à jour et doit être redémarré pour que les changements soient pris en compte. - + qBittorrent is closed to tray qBittorrent est fermé dans la barre des tâches - + Some files are currently transferring. Certains fichiers sont en cours de transfert. - + Are you sure you want to quit qBittorrent? Êtes-vous sûr de vouloir quitter qBittorrent ? - + &No &Non - + &Yes &Oui - + &Always Yes &Oui, toujours - + Options saved. Options enregistrées. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [EN PAUSE] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [R : %1, E : %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + L’installateur Python ne peut pas être téléchargé. Erreur : %1. +Veuillez l’installer manuellement. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Le renommage du programme d'installation Python a échoué. Source : "%1". Destination : "%2". + + + + Python installation success. + L'installation de Python est réussie. + + + + Exit code: %1. + Code de fin d’exécution: %1. + + + + Reason: installer crashed. + Raison : l'installateur a planté. + + + + Python installation failed. + Échec de l'installation de Python. + + + + Launching Python installer. File: "%1". + Lancement de l'installateur Python. Fichier : "%1". + + + + Missing Python Runtime L'environnement d'exécution Python est manquant - + qBittorrent Update Available Mise à jour de qBittorrent disponible - + 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é. - - + + Old Python Runtime L'environnement d'exécution Python est obsolète - + A new version is available. Une nouvelle version est disponible. - + Do you want to download %1? Voulez-vous télécharger %1 ? - + Open changelog... Ouvrir le journal des modifications… - + 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 à jour - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Votre version de Python (%1) est obsolète. Configuration minimale requise : %2. Voulez-vous installer une version plus récente maintenant ? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Votre version de Python (%1) est obsolète. Veuillez la mettre à niveau à la dernière version pour que les moteurs de recherche fonctionnent. Configuration minimale requise : %2. - + + Paused + En pause + + + 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 installation in progress... + Installation de Python en cours... + + + + Failed to open Python installer. File: "%1". + Échec à l'ouverture de l'installateur Python. Fichier : "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Échec de la vérification du hachage MD5 pour l'installateur Python. Fichier : "%1". Résultat du hachage : "%2". Hachage attendu : "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Échec de la vérification du hachage SHA3-512 pour l'installateur Python. Fichier : "%1". Résultat du hachage : "%2". Hachage attendu : "%3". + + + 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 - + Filter torrents... Filtrer les torrents… - + Filter by: Filtrer par: - + The password must be at least 3 characters long Le mot de passe doit comporter au moins 3 caractères - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Ouvrir fichiers torrent - + Torrent Files Fichiers torrent @@ -4067,7 +4387,7 @@ Veuillez l’installer manuellement. Dynamic DNS error: qBittorrent was blacklisted by the service, please submit a bug report at https://bugs.qbittorrent.org. - Erreur du DNS dynamique : qBittorrent a été mis sur liste noire par le service, veuillez soumettre un rapport de bogue sur https://bugs.qbittorrent.org. + Erreur du DNS dynamique : qBitTorrent a été mis sur liste noire par le service, veuillez soumettre un rapport de bogue sur https://bugs.qbittorrent.org. @@ -4232,7 +4552,12 @@ Veuillez l’installer manuellement. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Erreur SSL, URL : « %1 », erreurs : « %2 » + + + Ignoring SSL error, URL: "%1", errors: "%2" Erreur SSL ignorée, URL : « %1 », erreurs : « %2 » @@ -5526,47 +5851,47 @@ Veuillez l’installer manuellement. Net::Smtp - + Connection failed, unrecognized reply: %1 Échec de la connexion, réponse non reconnue : %1 - + Authentication failed, msg: %1 Échec de l’authentification, message : %1 - + <mail from> was rejected by server, msg: %1 <mail from> a été rejeté par le serveur, message : %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> a été rejeté par le serveur, message : %1 - + <data> was rejected by server, msg: %1 <data> a été rejeté par le serveur, message : %1 - + Message was rejected by the server, error: %1 Le message a été rejeté par le serveur, erreur : %1 - + Both EHLO and HELO failed, msg: %1 Échec d’EHLO et HELO, message : %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Le serveur SMTP ne semble prendre en charge aucun des modes d’authentification que nous prenons en charge [CRAM-MD5|PLAIN|LOGIN], authentification ignorée, sachant qu’elle risque d’échouer… Modes d’authentification du serveur : %1 - + Email Notification Error: %1 Erreur de la notification par courriel : %1 @@ -5604,446 +5929,475 @@ Veuillez l’installer manuellement. BitTorrent - + RSS RSS - - Web UI - IU Web - - - + Advanced Avancées - + Customize UI Theme... Personnaliser le thème de l'interface… - + Transfer List Liste des transferts - + Confirm when deleting torrents Confirmer la suppression des torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Affiche une boîte de dialogue de confirmation lors de la pause/reprise de tous les torrents - - - - Confirm "Pause/Resume all" actions - Confirmer les actions "Suspendre/Reprendre tout" - - - + Use alternating row colors In table elements, every other row will have a grey background. Utiliser des couleurs de ligne alternées - + Hide zero and infinity values Cacher les valeurs zéro et infini - + Always Toujours - - Paused torrents only - Seulement les torrents en pause - - - + Action on double-click Action du double-clic - + Downloading torrents: Torrents en téléchargement : - - - Start / Stop Torrent - Démarrer/Arrêter le torrent - - - - + + Open destination folder Ouvrir le répertoire de destination - - + + No action Aucune action - + Completed torrents: Torrents téléchargés: - + Auto hide zero status filters Cacher automatiquement les filtres dont le résultat est zéro - + Desktop Bureau - + Start qBittorrent on Windows start up Démarrer qBittorrent au démarrage de windows - + Show splash screen on start up Afficher l'écran de démarrage - + Confirmation on exit when torrents are active Confirmer la fermeture lorsque des torrents sont actifs - + Confirmation on auto-exit when downloads finish Confirmation de l'auto-extinction à la fin des téléchargements - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - <html><head/><body><p>Pour définir qBittorrent comme programme par défaut pour les fichiers .torrent et/ou les liens Magnet<br/>vous pouvez utiliser la page<span style=" font-weight:600;">Applications par défaut</span> des <span style=" font-weight:600;">Paramêtres</span>.</p></body></html> + <html><head/><body><p>Pour définir qBitTorrent comme programme par défaut pour les fichiers .torrent et/ou les liens Magnet<br/>vous pouvez utiliser la page<span style=" font-weight:600;">Applications par défaut</span> des <span style=" font-weight:600;">Paramêtres</span>.</p></body></html> - + KiB Kio - + + Show free disk space in status bar + + + + Torrent content layout: Agencement du contenu du torrent : - + Original Original - + Create subfolder Créer un sous-dossier - + Don't create subfolder Ne pas créer de sous-dossier - + The torrent will be added to the top of the download queue Le torrent sera ajouté en haut de la file d'attente de téléchargement - + Add to top of queue The torrent will be added to the top of the download queue Ajouter en haut de la file d'attente - + When duplicate torrent is being added Lorsqu'un torrent doublon est ajouté - + Merge trackers to existing torrent Fusionner les trackers avec le torrent existant - + Keep unselected files in ".unwanted" folder Conserver les fichiers non sélectionnés dans le dossier « .unwanted » - + Add... Ajouter… - + Options.. Options.. - + Remove Retirer - + Email notification &upon download completion - Notification par courriel &une fois le téléchargement terminé + Notifier par courriel &une fois le téléchargement complété - + + Send test email + Envoyer un courriel test + + + + Run on torrent added: + Exécution sur torrent ajoutée : + + + + Run on torrent finished: + Exécuter à la complétion d'un torrent: + + + Peer connection protocol: Protocole de connexion au pair : - + Any N'importe quel - + I2P (experimental) - I2P (expérimental) + Activer I2P (expérimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Si &quot;mode mixte&quot; est activé, les torrents I2P sont autorisés a obtenir des pairs venant d'autres sources que le tracker et a se connecter à des IPs classiques sans fournir d'anonymisation. Cela peut être utile si l'utilisateur n'est pas intéressé par l'anonymisation de I2P mais veux tout de même être capable de se connecter à des pairs I2P.</p></body></html> - - - + Mixed mode Mode mixte - - Some options are incompatible with the chosen proxy type! - Certaines options sont incompatibles avec le type de proxy choisi ! - - - + If checked, hostname lookups are done via the proxy Si cochée, les recherches de nom d'hôte sont effectuées via le proxy - + Perform hostname lookup via proxy Recherche du nom d'hôte via un proxy - + Use proxy for BitTorrent purposes Utiliser un proxy à des fins BitTorrent - + RSS feeds will use proxy Les flux RSS utiliseront un proxy - + Use proxy for RSS purposes Utiliser un proxy à des fins RSS - + Search engine, software updates or anything else will use proxy Le moteur de recherche, les mises à jour logicielles ou toute autre chose utiliseront le proxy - + Use proxy for general purposes Utiliser un proxy à des fins générales - + IP Fi&ltering Fi&ltrage IP - + Schedule &the use of alternative rate limits Planifier &l'utilisation des limites de vitesse alternatives - + From: From start time De : - + To: To end time À : - + Find peers on the DHT network Trouver des pairs sur le réseau DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption Autoriser le chiffrement : Se connecter aux pairs indépendamment de la configuration -Exiger le chiffrement : Se connecter uniquement aux pairs avec protocole de chiffrement +Exiger le chiffrement : Se connecter uniquement aux pairs avec protocole de chiffrement Désactiver le chiffrement : Se connecter uniquement aux pairs sans protocole de chiffrement - + Allow encryption Autoriser le chiffrement - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Plus d'informations</a>) - + Maximum active checking torrents: Torrents actifs maximum en vérification : - + &Torrent Queueing File d'attente des &torrents - + When total seeding time reaches Lorsque la durée totale de partage atteint - + When inactive seeding time reaches Lorsque la durée de partage inactif atteint - - A&utomatically add these trackers to new downloads: - Ajo&uter automatiquement ces trackers aux nouveaux téléchargements : - - - + RSS Reader Lecteur RSS - + Enable fetching RSS feeds Active la réception de flux RSS - + Feeds refresh interval: Intervalle de rafraîchissement des flux : - + Same host request delay: - + Délai de la requête au même hôte : - + Maximum number of articles per feed: Nombre maximum d'articles par flux : - - - + + + min minutes min - + Seeding Limits Limites de partage - - Pause torrent - Mettre en pause le torrent - - - + Remove torrent Retirer le torrent - + Remove torrent and its files Retirer le torrent et ses fichiers - + Enable super seeding for torrent Activer le super partage pour ce torrent - + When ratio reaches Lorsque le ratio atteint - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Arrêter les torrents + + + + A&utomatically append these trackers to new downloads: + Ajouter automatiquement ces trackers aux nouveaux téléchargements : + + + + Automatically append trackers from URL to new downloads: + Ajouter automatiquement les trackeurs de l'URL aux nouveaux téléchargements : + + + + URL: + URL : + + + + Fetched trackers + Trackeurs récupérés + + + + Search UI + Recherche UI + + + + Store opened tabs + Enregistrer les onglets ouverts + + + + Also store search results + Enregistrer aussi les résultats de recherche + + + + History length + Durée de l'historique + + + RSS Torrent Auto Downloader Téléchargeur automatique de torrents RSS - + Enable auto downloading of RSS torrents Active le téléchargement automatique des torrents par RSS - + Edit auto downloading rules... Éditer les règles de téléchargement automatique… - + RSS Smart Episode Filter Filtre d'épisode intelligent par RSS - + Download REPACK/PROPER episodes Télécharger les épisodes REPACK/PROPER - + Filters: Filtres : - + Web User Interface (Remote control) - Interface utilisateur Web (contrôle distant) + Activer l'interface utilisateur Web (contrôle distant) - + IP address: Adresse IP : - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6406,37 @@ Renseignez une adresse IPv4 ou IPv6. Vous pouvez renseigner « 0.0.0.0 » pour n « :: » pour n'importe quelle adresse IPv6, ou bien « * » pour l'IPv4 et l'IPv6. - + Ban client after consecutive failures: Bannir le client suite à des échecs consécutifs : - + Never Jamais - + ban for: Banni pour : - + Session timeout: Expiration de la session : - + Disabled Désactivé - - Enable cookie Secure flag (requires HTTPS) - Activer l'indicateur de sécurité des cookies (nécessite HTTPS) - - - + Server domains: Domaines de serveur : - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6099,442 +6448,483 @@ Afin de se défendre contre les attaques par DNS rebinding, vous devez consigner Utiliser ';' pour diviser plusieurs entrées. Le caractère générique '*' peut être utilisé. - + &Use HTTPS instead of HTTP &Utiliser HTTPS au lieu de HTTP - + Bypass authentication for clients on localhost Ignorer l'authentification pour les clients locaux - + Bypass authentication for clients in whitelisted IP subnets Ignorer l'authentification pour les clients de sous-réseaux en liste blanche - + IP subnet whitelist... Liste blanche des sous-réseaux IP… - + + Use alternative WebUI + Utiliser l'IU Web alternative + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Spécifier les adresses IP du proxy inverse (ou les sous-réseaux, p. ex. 0.0.0.0/24) afin d'utiliser l'adresse client transférée (attribut X-Forwarded-For). Utiliser ';' pour séparer plusieurs entrées. - + Upda&te my dynamic domain name Met&tre à jour mon nom de domaine dynamique - + Minimize qBittorrent to notification area - Réduire qBittorrent dans la zone de notification + Réduire qBitTorrent dans la zone de notification - + + Search + Rechercher + + + + WebUI + IU Web + + + Interface Interface - + Language: Langue : - + + Style: + Style : + + + + Color scheme: + Modèle de couleur : + + + + Stopped torrents only + Seulement les torrents stoppés + + + + + Start / stop torrent + Démarrer / Arrêter le torrent + + + + + Open torrent options dialog + Ouvrir la boîte de dialogue des options du torrent + + + Tray icon style: Style d'icône de la barre des tâches : - - + + Normal Normal - + File association Association des fichiers - + Use qBittorrent for .torrent files - Utiliser qBittorrent pour les fichiers .torrent + Utiliser qBitTorrent pour les fichiers .torrent - + Use qBittorrent for magnet links - Utiliser qBittorrent pour les liens magnet + Utiliser qBitTorrent pour les liens magnet - + Check for program updates Vérifier la disponibilité de mises à jour du logiciel - + Power Management Gestion d'alimentation - + + &Log Files + &Fichier journal + + + Save path: Chemin de sauvegarde : - + Backup the log file after: Sauvegarder le Log après : - + Delete backup logs older than: Supprimer les journaux antérieurs à : - + + Show external IP in status bar + Afficher l'adresse IP externe dans la barre d'état + + + When adding a torrent À l'ajout d'un torrent - + Bring torrent dialog to the front Mettre la boite de dialogue du torrent en avant-plan - + + The torrent will be added to download list in a stopped state + Le torrent sera ajouté à la liste de téléchargement en étant arrêté + + + Also delete .torrent files whose addition was cancelled Supprimer également les fichiers .torrent dont l'ajout a été annulé - + Also when addition is cancelled Aussi quand l'ajout est annulé - + Warning! Data loss possible! Avertissement ! Perte de données possible ! - + Saving Management Gestion de la sauvegarde - + Default Torrent Management Mode: Mode de gestion de torrent par défaut : - + Manual Manuel - + Automatic Automatique - + When Torrent Category changed: Quand la catégorie du torrent change : - + Relocate torrent Relocaliser le torrent - + Switch torrent to Manual Mode Basculer le torrent en mode manuel - - + + Relocate affected torrents Relocaliser les torrents affectés - - + + Switch affected torrents to Manual Mode Basculer les torrents affectés en mode manuel - + Use Subcategories Utiliser les sous-catégories - + Default Save Path: Chemin de sauvegarde par défaut : - + Copy .torrent files to: Copier les fichiers .torrent dans : - + Show &qBittorrent in notification area - Afficher l'icône de &qBittorrent dans la zone de notification + Afficher l'icône de &qBitTorrent dans la zone de notification - - &Log file - Fichier journa&l - - - + Display &torrent content and some options Afficher le contenu du &torrent et quelques options - + De&lete .torrent files afterwards Supprimer &les fichiers .torrent par la suite - + Copy .torrent files for finished downloads to: Copier les fichiers .torrent des téléchargements terminés dans : - + Pre-allocate disk space for all files Préallouer l'espace disque pour tous les fichiers - + Use custom UI Theme Utiliser un thème d'IU personnalisé - + UI Theme file: Fichier de thème d'IU : - + Changing Interface settings requires application restart Modifier des paramètres de l'interface requiert un redémarrage de l'application - + Shows a confirmation dialog upon torrent deletion Afficher une fenêtre de confirmation lors de la suppression d'un torrent - - + + Preview file, otherwise open destination folder Afficher un aperçu du fichier, sinon ouvrir le dossier de destination - - - Show torrent options - Afficher les options du torrent - - - + Shows a confirmation dialog when exiting with active torrents Affiche une fenêtre de confirmation lors de la fermeture avec des torrents actifs - + When minimizing, the main window is closed and must be reopened from the systray icon Lors de la réduction, la fenêtre principale sera fermée et devra être réouverte via l’icône dans la barre des tâches - + The systray icon will still be visible when closing the main window L’icône dans la barre des tâches restera visible lorsque la fenêtre principale est fermée - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - Conserver dans la zone de notification à la fermeture + Fermer qBitTorrent dans la zone de notification - + Monochrome (for dark theme) Monochrome (pour le thème sombre) - + Monochrome (for light theme) Monochrome (pour le thème clair) - + Inhibit system sleep when torrents are downloading Empêcher la mise en veille du système lorsque des torrents sont en téléchargement - + Inhibit system sleep when torrents are seeding Empêcher la mise en veille du système lorsque des torrents sont en partage - + Creates an additional log file after the log file reaches the specified file size Génère un fichier journal supplémentaire lorsque le fichier journal atteint la taille spécifiée - + days Delete backup logs older than 10 days jours - + months Delete backup logs older than 10 months mois - + years Delete backup logs older than 10 years années - + Log performance warnings Journaliser les avertissements de performances - - The torrent will be added to download list in a paused state - Le torrent sera ajouté à la file de téléchargement en état de pause - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ne pas démarrer le téléchargement automatiquement - + Whether the .torrent file should be deleted after adding it Si le fichier .torrent devrait être supprimé après l'avoir ajouté - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Allouer les tailles entières des fichiers sur le disque avant de commencer les téléchargements, afin de minimiser la fragmentation. Utile uniquement pour les disques durs HDDs. - + Append .!qB extension to incomplete files Ajouter l'extension .!qB aux noms des fichiers incomplets - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Lorsqu'un torrent est téléchargé, proposer d'ajouter les torrents depuis les fichiers .torrent trouvés à l'intérieur de celui-ci - + Enable recursive download dialog Activer les fenêtres de téléchargement récursif - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatique : Certaines propriétés du torrent (p. ex. le répertoire de destination) seront décidées par la catégorie associée Manuel : Certaines propriétés du torrent (p. ex. le répertoire de destination) devront être saisies manuellement - + When Default Save/Incomplete Path changed: Lorsque le répertoire de destination/incomplet par défaut a été modifié : - + When Category Save Path changed: Lorsque le répertoire de destination de la catégorie change : - + Use Category paths in Manual Mode Utiliser les chemins des catégories en mode manuel - + Resolve relative Save Path against appropriate Category path instead of Default one Résoudre le répertoire de destination relatif par rapport au chemin de la catégorie approprié au lieu de celui par défaut - + Use icons from system theme Utiliser les icônes du thème système - + Window state on start up: État de la fenêtre au démarrage : - + qBittorrent window state on start up - État de la fenêtre qBittorrent au démarrage + État de la fenêtre qBitTorrent au démarrage - + Torrent stop condition: Condition d'arrêt du torrent : - - + + None Aucun - - + + Metadata received Métadonnées reçues - - + + Files checked Fichiers vérifiés - + Ask for merging trackers when torrent is being added manually Demander une fusion des trackers lorsque le torrent est ajouté manuellement - + Use another path for incomplete torrents: Utiliser un autre répertoire pour les torrents incomplets : - + Automatically add torrents from: Ajouter automatiquement les torrents présents sous : - + Excluded file names - Noms de fichiers exclus + Exclure les noms de fichiers - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6563,770 +6953,811 @@ readme.txt : filtre le nom exact du fichier. readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mais pas 'readme10.txt'. - + Receiver Destinataire - + To: To receiver À : - + SMTP server: Serveur SMTP : - + Sender Émetteur - + From: From sender De : - + This server requires a secure connection (SSL) - Ce serveur nécessite une connexion sécurisée (SSL) + Nécessite une connexion sécurisée (SSL) - - + + Authentication Authentification - - - - + + + + Username: Nom d'utilisateur : - - - - + + + + Password: Mot de passe : - + Run external program Exécuter un programme externe - - Run on torrent added - Exécuter à l'ajout d'un torrent - - - - Run on torrent finished - Exécuter à la complétion d'un torrent - - - + Show console window Afficher la fenêtre de la console - + TCP and μTP TCP et μTP - + Listening Port Port d'écoute - + Port used for incoming connections: Port pour les connexions entrantes : - + Set to 0 to let your system pick an unused port Régler sur 0 pour laisser votre système choisir un port inutilisé - + Random Aléatoire - + Use UPnP / NAT-PMP port forwarding from my router Utiliser la redirection de port sur mon routeur via UPnP/NAT-PMP - + Connections Limits Limites de connexions - + Maximum number of connections per torrent: Nombre maximum de connexions par torrent : - + Global maximum number of connections: Nombre maximum global de connexions : - + Maximum number of upload slots per torrent: Nombre maximum d'emplacements d'envoi par torrent : - + Global maximum number of upload slots: Nombre maximum global d'emplacements d'envoi : - + Proxy Server Serveur proxy - + Type: Type : - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Hôte : - - - + + + Port: Port : - + 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 proxy pour se connecter aux pairs - + A&uthentication A&uthentification - - Info: The password is saved unencrypted - Info : le mot de passe est enregistré en texte clair - - - + Filter path (.dat, .p2p, .p2b): Chemin du filtre (.dat, .p2p, .p2b) : - + Reload the filter Recharger le filtre - + Manually banned IP addresses... Adresses IP bannies manuellement… - + Apply to trackers Appliquer aux trackers - + Global Rate Limits Limites de vitesse globales - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s Kio/s - - + + Upload: Envoi : - - + + Download: Réception : - + Alternative Rate Limits Limites de vitesse alternatives - + Start time Heure de début - + End time Heure de fin - + When: Quand : - + Every day Tous les jours - + Weekdays Jours ouvrés - + Weekends Week-ends - + Rate Limits Settings Paramètres des limites de vitesse - + Apply rate limit to peers on LAN Appliquer les limites de vitesse sur le réseau local - + Apply rate limit to transport overhead Appliquer les limites de vitesse au surplus généré par le protocole - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Si le « mode mixte » est activé, les torrents I2P sont également autorisés à obtenir des pairs provenant d'autres sources que le trackeur et à se connecter à des IP normales, sans fournir d'anonymisation. Cela peut être utile si l'utilisateur n'est pas intéressé par l'anonymisation de l'I2P, mais souhaite tout de même pouvoir se connecter à des pairs I2P</p></body></html> + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Échanger des pairs avec les applications compatibles (µTorrent, Vuze…) - + 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 Local Peer Discovery to find more peers Activer la découverte de sources sur le réseau local - + Encryption mode: Mode de chiffrement : - + Require encryption Chiffrement requis - + Disable encryption Chiffrement désactivé - + Enable when using a proxy or a VPN connection Activer lors de l'utilisation d'un proxy ou d'une connexion VPN - + Enable anonymous mode Activer le mode anonyme - + 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 : - + Do not count slow torrents in these limits Ne pas compter les torrents lents dans ces limites - + Upload rate threshold: Limite de vitesse d'envoi : - + Download rate threshold: Limite de vitesse de téléchargement : - - - - + + + + sec seconds sec. - + Torrent inactivity timer: Minuterie d'inactivité du torrent : - + then alors - + Use UPnP / NAT-PMP to forward the port from my router Utiliser la redirection de port sur mon routeur via UPnP/NAT-PMP - + Certificate: Certificat : - + Key: Clé : - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information sur les certificats</a> - + Change current password Changer le mot de passe actuel - - Use alternative Web UI - Utiliser l'IU Web alternative - - - + Files location: Emplacement des fichiers : - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Liste des WebUI alternatives</a> + + + Security Sécurité - + Enable clickjacking protection Activer la protection contre le détournement de clic - + Enable Cross-Site Request Forgery (CSRF) protection Activer la protection contre la falsification de requêtes intersites (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Activer le cookie "Secure flag" (nécessite une connexion HTTPS ou Localhost) + + + Enable Host header validation Activer la validation de l'en-tête hôte - + Add custom HTTP headers Ajouter des en-têtes HTTP personnalisées - + Header: value pairs, one per line En-tête : paires clé-valeur, une par ligne - + Enable reverse proxy support Activer la prise en charge du proxy inverse - + Trusted proxies list: Liste des proxys de confiance : - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Exemples de configuration de proxy inverse</a> + + + Service: Service : - + Register S'inscrire - + Domain name: Nom de domaine : - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! En activant ces options, vous pouvez <strong>perdre à tout jamais</strong> vos fichiers .torrent ! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Si vous activez la seconde option (&ldquo;également lorsque l'ajout est annulé&rdquo;) le fichier .torrent <strong>sera supprimé</strong> même si vous pressez &ldquo;<strong>Annuler</strong>&rdquo; dans la boîte de dialogue &ldquo;Ajouter un torrent&rdquo; - + Select qBittorrent UI Theme file - Sélectionner le fichier de thème d'lU qBittorrent + Sélectionner le fichier de thème d'lU qBitTorrent - + Choose Alternative UI files location Choisir l'emplacement des fichiers d'IU alternatives - + Supported parameters (case sensitive): Paramètres supportés (sensible à la casse) : - + Minimized Réduite - + Hidden Cachée - + Disabled due to failed to detect system tray presence Désactivé en raison de l'échec de la détection d'une présence dans la barre des tâches - + No stop condition is set. Aucune condition d'arrêt n'est définie. - + Torrent will stop after metadata is received. Le torrent s'arrêtera après la réception des métadonnées. - Torrents that have metadata initially aren't affected. - Les torrents qui ont initialement des métadonnées ne sont pas affectés. - - - + Torrent will stop after files are initially checked. Le torrent s'arrêtera après la vérification initiale des fichiers. - + This will also download metadata if it wasn't there initially. Cela téléchargera également les métadonnées si elles n'y étaient pas initialement. - + %N: Torrent name %N : Nom du torrent - + %L: Category %L : Catégorie - + %F: Content path (same as root path for multifile torrent) %F : Répertoire du contenu (le même que le répertoire racine pour les torrents composés de plusieurs fichiers) - + %R: Root path (first torrent subdirectory path) %R : Répertoire racine (premier répertoire du sous-dossier du torrent) - + %D: Save path %D : Répertoire de destination - + %C: Number of files %C : Nombre de fichiers - + %Z: Torrent size (bytes) %Z : Taille du torrent (en octets) - + %T: Current tracker %T : Tracker actuel - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Astuce : Encapsuler le paramètre entre guillemets pour éviter que le texte soit coupé au niveau des espaces (p. ex. "%N") - + + Test email + Courriel test + + + + Attempted to send email. Check your inbox to confirm success + Tentative d'envoi d'un courriel. Vérifiez votre boîte de réception pour confirmer la réussite + + + (None) (Aucun) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Un torrent sera considéré comme lent si ses vitesses de réception et d'envoi restent en dessous des valeurs en secondes du « Minuteur d'inactivité du torrent » - + Certificate Certificat - + Select certificate Sélectionner un certificat - + Private key Clé privée - + Select private key Sélectionner une clé privée - + WebUI configuration failed. Reason: %1 La configuration de l'IU Web a échoué. Raison : %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 est recommandé pour une meilleure compatibilité avec le mode sombre de Windows + + + + System + System default Qt style + Système + + + + Let Qt decide the style for this system + Laisser Qt décider du style pour ce système + + + + Dark + Dark color scheme + Sombre + + + + Light + Light color scheme + Clair + + + + System + System color scheme + Système + + + Select folder to monitor Sélectionner un dossier à surveiller - + Adding entry failed Impossible d'ajouter l'entrée - + The WebUI username must be at least 3 characters long. Le nom d'utilisateur pour l'IU Web doit comporter au moins 3 caractères. - + The WebUI password must be at least 6 characters long. Le mot de passe pour l'IU Web doit comporter au moins 6 caractères. - + Location Error Erreur d'emplacement - - + + Choose export directory Choisir un dossier pour l'exportation - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - Lorsque ces options sont actives, qBittorrent va <strong>supprimer</strong> les fichiers .torrent après qu'ils aient été ajoutés à la file d’attente de téléchargement avec succès (première option) ou non (seconde option). Ceci sera appliqué <strong>non seulement</strong> aux fichiers ouverts via l'action du menu &ldquo;Ajouter un torrent&rdquo; mais également à ceux ouverts via <strong>l'association de types de fichiers</strong> + Lorsque ces options sont actives, qBitTorrent va <strong>supprimer</strong> les fichiers .torrent après qu'ils aient été ajoutés à la file d’attente de téléchargement avec succès (première option) ou non (seconde option). Ceci sera appliqué <strong>non seulement</strong> aux fichiers ouverts via l'action du menu &ldquo;Ajouter un torrent&rdquo; mais également à ceux ouverts via <strong>l'association de types de fichiers</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) - Fichier de thème d'IU qBittorrent (*.qbtheme config.json) + Fichier de thème d'IU qBitTorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G : Étiquettes (séparées par des virgules) - + %I: Info hash v1 (or '-' if unavailable) %I : Info hash v1 (ou '-' si indisponible) - + %J: Info hash v2 (or '-' if unavailable) %J : info hash v2 (ou '-' si indisponible) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K : ID du torrent (soit l'info hash SHA-1 pour un torrent v1 ou l'info hash tronquée SHA-256 pour un torrent v2/hybride) - - - + + + Choose a save directory Choisir un dossier de sauvegarde - + Torrents that have metadata initially will be added as stopped. - + Les torrents qui ont initialement des métadonnées seront ajoutés comme arrêtés. - + Choose an IP filter file Choisissez un fichier de filtre IP - + All supported filters Tous les filtres supportés - + The alternative WebUI files location cannot be blank. L'emplacement des fichiers pour l'IU Web alternative ne peut pas être vide. - + Parsing error Erreur lors de l'analyse syntaxique - + Failed to parse the provided IP filter Impossible de charger le filtre IP fourni - + Successfully refreshed Actualisation réussie - + 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. - + Preferences Préférences - + Time Error Erreur de temps - + The start time and the end time can't be the same. Les heures de début et de fin ne peuvent pas être identiques. - - + + Length Error Erreur de longueur @@ -7334,241 +7765,246 @@ readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mai PeerInfo - + Unknown Inconnue - + 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) - + 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) - + Optimistic unchoke Non-engorgement optimiste - + Peer snubbed Pair snobé - + Incoming connection Connexion entrante - + Peer from DHT Pair issu du DHT - + Peer from PEX Pair issu des PEX - + Peer from LSD Pair issu du LSD - + Encrypted traffic Trafic chiffré - + Encrypted handshake Établissement de liaison chiffrée + + + Peer is using NAT hole punching + le pair utilise le hole punching NAT + PeerListWidget - + Country/Region Pays/Région - + IP/Address IP/Adresse - + Port Port - + Flags Indicateurs - + Connection Connexion - + Client i.e.: Client application Logiciel - + Peer ID Client i.e.: Client resolved from Peer ID ID du pair - + 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 - + Files i.e. files that are being downloaded right now Fichiers - + Column visibility Visibilité de la colonne - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu - + Add peers... Ajouter des pairs… - - + + Adding peers Ajout de pairs - + Some peers cannot be added. Check the Log for details. Certains pairs n'ont pas pu être ajoutés. Consultez le Journal pour plus d'informations. - + Peers are added to this torrent. Les pairs sont ajoutés à ce torrent. - - + + Ban peer permanently Bloquer le pair indéfiniment - + Cannot add peers to a private torrent Impossible d'ajouter des pairs à un torrent privé - + Cannot add peers when the torrent is checking Impossible d'ajouter des pairs quand le torrent est en cours de vérification - + Cannot add peers when the torrent is queued Impossible d'ajouter des pairs quand le torrent est en file d'attente - + No peer was selected Aucun pair n'a été sélectionné - + Are you sure you want to permanently ban the selected peers? Êtes-vous sûr de vouloir bannir les pairs sélectionnés de façon permanente ? - + Peer "%1" is manually banned Le pair « %1 » est banni manuellement - + N/A N/D - + Copy IP:port Copier l'IP:port @@ -7586,7 +8022,7 @@ readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mai Liste des pairs à ajouter (une IP par ligne) : - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7627,27 +8063,27 @@ readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mai PiecesBar - + Files in this piece: Fichiers dans ce morceau : - + File in this piece: Fichier dans ce morceau : - + File in these pieces: Fichier dans ces morceaux : - + Wait until metadata become available to see detailed information Attendre que les métadonnées soient disponibles pour voir les informations détaillées - + Hold Shift key for detailed information Maintenir la touche Maj. pour les informations détaillées @@ -7660,58 +8096,58 @@ readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mai Greffons de recherche - + Installed search plugins: Greffons de recherche installés : - + Name Nom - + Version Version - + Url URL - - + + Enabled Activé - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Avertissement : assurez-vous d'être en conformité avec les lois sur le droit d'auteur de votre pays lorsque vous téléchargez des torrents à partir d'un de ces moteurs de recherche. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Vous pouvez obtenir de nouveaux greffons de recherche ici : <a href="https://plugins.qbittorrent.org">https://plugins.qbittorent.org</a> - + Install a new one Installer un nouveau - + Check for updates Vérifier les mises à jour - + Close Fermer - + Uninstall Désinstaller @@ -7739,7 +8175,8 @@ readme[0-9].txt : filtre 'readme1.txt' et 'readme2.txt', mai 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 inclus dans qBittorrent. Seulement ceux que vous avez vous-même ajoutés peuvent être désinstallés. Ces derniers ont été désactivés. + Certains greffons n'ont pas pu être désinstallés car ils sont inclus dans qBitTorrent. Seulement ceux que vous avez vous-même ajoutés peuvent être désinstallés. +Ces derniers ont été désactivés. @@ -7794,7 +8231,7 @@ Those plugins were disabled. qBittorrent search plugin - Greffon de recherche de qBittorrent + Greffon de recherche de qBitTorrent @@ -7830,98 +8267,65 @@ Those plugins were disabled. Source du greffon - + Search plugin source: Source du greffon de recherche : - + Local file Fichier local - + Web link Lien Web - - PowerManagement - - - qBittorrent is active - qBittorrent est actif - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - La gestion de l'alimentation a trouvé une interface D-Bus approprié. Interface : %1 - - - - Power management error. Did not found suitable D-Bus interface. - Erreur de la gestion de l'alimentation. Interface D-Bus appropriée non trouvée. - - - - - - Power management error. Action: %1. Error: %2 - Erreur de la gestion de l'alimentation. Action : %1. Erreur : %2 - - - - Power management unexpected error. State: %1. Error: %2 - Erreur Inattendue de la gestion de l'alimentation. Etat : %1. Erreur : %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Les fichiers suivants du torrent « %1 » permettent l'affichage d'un aperçu, veuillez en sélectionner un : - + Preview Prévisualiser - + Name Nom - + Size Taille - + Progress Progression - + Preview impossible Prévisualisation impossible - + Sorry, we can't preview this file: "%1". Désolé, nous ne pouvons pas prévisualiser ce fichier : « %1 ». - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu @@ -7934,27 +8338,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Le chemin n'existe pas - + Path does not point to a directory Le chemin ne pointe pas vers un répertoire - + Path does not point to a file Le chemin ne pointe pas vers un fichier - + Don't have read permission to path N'a pas l'autorisation de lire dans le chemin - + Don't have write permission to path N'a pas l'autorisation d'écrire dans le chemin @@ -7995,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Téléchargé : - + Availability: Disponibilité : @@ -8015,53 +8419,53 @@ Those plugins were disabled. Transfert - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Actif pendant : - + ETA: Temps restant : - + Uploaded: Envoyé : - + 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 : - + Wasted: Gaspillé : @@ -8071,193 +8475,220 @@ Those plugins were disabled. Connexions : - + Information Informations - + Info Hash v1: Info hash v1 : - + Info Hash v2: Info hash v2 : - + Comment: Commentaire : - + Select All Tout sélectionner - + Select None Ne rien sélectionner - + Share Ratio: Ratio de partage : - + Reannounce In: Annoncer dans : - + Last Seen Complete: Dernière fois vu complet : - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Temps Actif (en mois), indique la popularité du torrent + + + + Popularity: + Popularité : + + + Total Size: Taille totale : - + Pieces: Morceaux : - + Created By: Créé par : - + Added On: Ajouté le : - + Completed On: Complété le : - + Created On: Créé le : - + + Private: + Privé : + + + Save Path: Chemin de sauvegarde : - + Never Jamais - + %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) - - + + + N/A N/D - + + Yes + Oui + + + + No + Non + + + %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) - - New Web seed - Nouvelle source web + + Add web seed + Add HTTP source + Ajouter une source web - - Remove Web seed - Supprimer la source web + + Add web seed: + Ajouter une source web: - - Copy Web seed URL - Copier l'URL de la source web + + + This web seed is already in the list. + Cette source web est déjà dans la liste. - - Edit Web seed URL - Modifier l'URL de la source web - - - + Filter files... Filtrer les fichiers… - + + Add web seed... + Ajouter une 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 + + + Speed graphs are disabled Les graphiques de vitesse sont désactivés - + You can enable it in Advanced Options Vous pouvez l'activer sous Options Avancées - - 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. - - - + Web seed editing Modification de la source web - + Web seed URL: URL de la source web : @@ -8265,33 +8696,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Format de données invalide. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Impossible d'enregistrer les données de téléchargement automatique RSS vers %1. Erreur : %2 - + Invalid data format Format de données invalide - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... Le flux RSS '%1' est accepté par la règle '%2'. Tentative d'ajout du torrent en cours... - + Failed to read RSS AutoDownloader rules. %1 Échec de la lecture des règles de téléchargement automatique RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Impossible de charger les règles de téléchargement automatique RSS. Raison : %1 @@ -8299,22 +8730,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Échec de téléchargement du flux RSS à '%1'. Raison : %2 - + RSS feed at '%1' updated. Added %2 new articles. Flux RSS à '%1' mis à jour. %2 nouveaux articles ajoutés. - + Failed to parse RSS feed at '%1'. Reason: %2 Échec de l'analyse du flux RSS à '%1'. Raison : %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Le flux RSS %1 a été téléchargé avec succès. Lancement de l'analyse. @@ -8350,12 +8781,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Flux RSS invalide. - + %1 (line: %2, column: %3, offset: %4). %1 (ligne : %2, colonne : %3, décalage : %4). @@ -8363,103 +8794,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Impossible d’enregistrer la configuration de la session RSS. Fichier : « %1 ». Erreur : « %2 » - + Couldn't save RSS session data. File: "%1". Error: "%2" Impossible d’enregistrer les données de la session RSS. Fichier : « %1 ». Erreur : « %2 » - - + + RSS feed with given URL already exists: %1. Le flux RSS avec l'URL donnée existe déjà : %1. - + Feed doesn't exist: %1. Flux inexistant : %1. - + Cannot move root folder. Ne peut pas déplacer le dossier racine. - - + + Item doesn't exist: %1. L'élément n'existe pas : %1. - - Couldn't move folder into itself. - Impossible de déplacer le dossier vers lui-même. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Ne peut pas supprimer le dossier racine. - + Failed to read RSS session data. %1 Échec de la lecture des données de session RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Échec de l'analyse des données de session RSS. Fichier : « %1 ». Erreur : « %2 » - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Échec du chargement des données de session RSS. Fichier : « %1 ». Erreur : « Format de données invalide. » - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Impossible de charger le flux RSS. Flux : « %1 ». Raison : l’URL est requise. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Impossible de charger le flux RSS. Flux : « %1 ». Raison : l’UID est invalide. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Doublon du flux RSS trouvé. UID : « %1 ». Erreur : La configuration semble être corrompue. - + Couldn't load RSS item. Item: "%1". Invalid data format. Impossible de charger l’élément RSS. Élément : « %1 ». Format de données invalide. - + Corrupted RSS list, not loading it. Liste RSS corrompue, chargement annulé. - + Incorrect RSS Item path: %1. Chemin d'article RSS Incorrect : %1. - + RSS item with given path already exists: %1. L'article RSS avec le chemin donné existe déjà : %1. - + Parent folder doesn't exist: %1. Le dossier parent n'existe pas : %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Flux inexistant : %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL : + + + + Refresh interval: + Intervalle d'actualisation + + + + sec + sec. + + + + Default + Par défaut + + RSSWidget @@ -8479,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read Marquer comme lu @@ -8505,132 +8977,115 @@ Those plugins were disabled. Torrents : (double-clic pour télécharger) - - + + Delete Supprimer - + Rename... Renommer… - + Rename Renommer - - + + Update Mettre à jour - + New subscription... Nouvel abonnement… - - + + Update all feeds Mettre à jour tous les flux - + Download torrent Télécharger le torrent - + Open news URL Ouvrir une nouvelle URL - + Copy feed URL Copier l'URL du flux - + New folder... Nouveau dossier… - - Edit feed URL... - Éditer l'URL du flux… + + Feed options... + - - Edit feed URL - Éditer l'URL du flux - - - + Please choose a folder name Veuillez choisir un nouveau nom de dossier - + Folder name: Nom du dossier : - + New folder Nouveau dossier - - - Please type a RSS feed URL - Veuillez entrer une URL de flux RSS - - - - - Feed URL: - URL du flux : - - - + Deletion confirmation Confirmation de la 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 : - + Rename failed Échec du renommage - + Date: Date : - + Feed: Flux : - + Author: Auteur : @@ -8638,38 +9093,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Python doit être installé afin d'utiliser le moteur de recherche. - + Unable to create more than %1 concurrent searches. Impossible d'effectuer plus de %1 recherches simultanées. - - + + Offset is out of range Offset hors plage - + All plugins are already up to date. Tous les greffons sont déjà à jour. - + Updating %1 plugins Mise à jour de %1 greffons - + Updating plugin %1 Mise à jour du greffon %1 - + Failed to check for plugin updates: %1 Échec de la recherche de mise à jour pour le greffon : %1 @@ -8744,132 +9199,142 @@ Those plugins were disabled. Taille : - + 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 - - - + Filter search results... Filtrer les résultats… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Résultats (affiche <i>%1</i> sur <i>%2</i>) : - + Torrent names only Noms de torrents seulement - + Everywhere Partout - + Use regular expressions Utiliser les expressions régulières - + Open download window Ouvrir la fenêtre de téléchargement - + Download - Téléchargement + Télécharger - + Open description page Ouvrir la page de description - + Copy Copier - + Name Nom - + Download link Lien de téléchargement - + Description page URL URL de la page de description - + Searching... Recherche en cours… - + Search has finished La recherche est terminée - + Search aborted Recherche annulée - + An error occurred during search... Une erreur s'est produite lors de la recherche… - + Search returned no results La recherche n'a retourné aucun résultat - + + Engine + Moteur + + + + Engine URL + URL du moteur + + + + Published On + Publié sur + + + Column visibility Visibilité de la colonne - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu @@ -8877,104 +9342,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Format de fichier du greffon de recherche inconnu. - + Plugin already at version %1, which is greater than %2 Le greffon est déjà à la version %1, qui est plus récente que la %2 - + A more recent version of this plugin is already installed. Une version plus récente de ce greffon est déjà installée. - + Plugin %1 is not supported. Le greffon %1 n'est pas supporté. - - + + Plugin is not supported. Greffon non supporté. - + Plugin %1 has been successfully updated. Le greffon %1 a été correctement mis à jour. - + All categories Toutes les catégories - + Movies Films - + TV shows Émissions de télévision - + Music Musique - + Games Jeux - + Anime Animes - + Software Logiciels - + Pictures Photos - + Books Livres - + Update server is temporarily unavailable. %1 Serveur de mise à jour temporairement indisponible. %1 - - + + Failed to download the plugin file. %1 Échec du téléchargement du fichier du greffon. %1 - + Plugin "%1" is outdated, updating to version %2 Le greffon « %1 » est obsolète, mise à jour vers la version %2 - + Incorrect update info received for %1 out of %2 plugins. Informations de mise à jour incorrectes reçues de %1 greffons sur %2. - + Search plugin '%1' contains invalid version string ('%2') Le numéro de version ('%2') du greffon de recherche '%1' est invalide @@ -8984,114 +9449,145 @@ Those plugins were disabled. - - - - Search Recherche - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Il n'y a aucun greffon de recherche installé. Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fenêtre pour en installer. - + Search plugins... Greffons de recherche... - + A phrase to search for. Une phrase à rechercher. - + Spaces in a search term may be protected by double quotes. Les espaces dans un terme de recherche peuvent être protégés par des guillemets. - + Example: Search phrase example Exemple : - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b> : rechercher <b>foo bar</b> - + All plugins Tous les greffons - + Only enabled Greffons activés - + + + Invalid data format. + Format de données invalide. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: rechercher <b>foo</b> et <b>bar</b> - + + Refresh + Rafraichir + + + Close tab Fermer l'onglet - + Close all tabs Fermer tous les onglets - + Select... Sélectionner… - - - + + 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 - + + Stop Arrêter + + + SearchWidget::DataStorage - - Search has finished - Recherche terminée + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Échec du chargement des données d'état enregistrées de l'interface utilisateur de recherche. Fichier : "%1". Erreur : "%2" - - Search has failed - La recherche a échoué + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Échec du chargement des résultats de recherche enregistrés. Onglet : "%1". Fichier : "%2". Erreur : "%3". + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Échec de l'enregistrement de l'état de l'interface de recherche. Fichier : "%1". Erreur : "%2". + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Échec de l'enregistrement des résultats de recherche. Onglet : "%1". Fichier : "%2". Erreur : "%3". + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Échec du chargement de l'historique de l'interface de recherche. Fichier : "%1". Erreur : "%2". + + + + Failed to save search history. File: "%1". Error: "%2" + Échec de l'enregistrement de l'historique de recherche. Fichier : "%1". Erreur : "%2" @@ -9127,7 +9623,7 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen qBittorrent will now exit. - qBittorent va se fermer. + qBitTorent va se fermer. @@ -9204,34 +9700,34 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen - + Upload: Envoi : - - - + + + - - - + + + KiB/s Kio/s - - + + Download: Téléchargement : - + Alternative speed limits Limites de vitesse alternatives @@ -9423,32 +9919,32 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Temps moyen passé en file d'attente : - + Connected peers: Clients connectés : - + All-time share ratio: Total du ratio de partage : - + All-time download: Total téléchargé : - + Session waste: Gaspillé durant la session : - + All-time upload: Total envoyé : - + Total buffer size: Taille totale du tampon : @@ -9463,12 +9959,12 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Actions d'E/S en file d'attente : - + Write cache overload: Surcharge du tampon d'écriture : - + Read cache overload: Surcharge du tampon de lecture : @@ -9487,51 +9983,77 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen StatusBar - + Connection status: Statut de la connexion : - - + + No direct connections. This may indicate network configuration problems. Aucune connexion directe. Ceci peut être signe d'une mauvaise configuration réseau. - - + + Free space: N/A + + + + + + External IP: N/A + IP externe : N/A + + + + DHT: %1 nodes DHT : %1 nœuds - + qBittorrent needs to be restarted! - qBittorrent doit être redémarré ! + qBitTorrent doit être redémarré ! - - - + + + Connection Status: État de la connexion : - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Hors ligne. Ceci signifie généralement que qBittorrent s'a pas pu se mettre en écoute sur le port défini pour les connexions entrantes. - + Online Connecté - + + Free space: + + + + + External IPs: %1, %2 + IPs externes : %1, %2 + + + + External IP: %1%2 + IP externe : %1%2 + + + Click to switch to alternative speed limits Cliquez ici pour utiliser les limites de vitesse alternatives - + Click to switch to regular speed limits Cliquez ici pour utiliser les limites de vitesse normales @@ -9557,17 +10079,17 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Completed (0) - Terminés (0) + Complétés (0) - Resumed (0) - Repris (0) + Running (0) + En cours (0) - Paused (0) - En pause (0) + Stopped (0) + Arrêtés (0) @@ -9582,17 +10104,17 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Stalled (0) - Bloqué (0) + Bloqués (0) Stalled Uploading (0) - Bloqué en envoi (0) + Bloqués en envoi (0) Stalled Downloading (0) - Bloqué en téléchargement (0) + Bloqués en réception (0) @@ -9627,38 +10149,38 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Completed (%1) - Terminés (%1) + Complétés (%1) + + + + Running (%1) + En cours (%1) - Paused (%1) - En pause (%1) + Stopped (%1) + Arrêtés (%1) + + + + Start torrents + Démarrer les torrents + + + + Stop torrents + Arrêter les torrents Moving (%1) En déplacement (%1) - - - Resume torrents - Reprendre les torrents - - - - Pause torrents - Mettre en pause les torrents - Remove torrents Retirer les torrents - - - Resumed (%1) - Repris (%1) - Active (%1) @@ -9682,7 +10204,7 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Stalled Downloading (%1) - Bloqués en téléchargement (%1) + Bloqués en réception (%1) @@ -9730,31 +10252,31 @@ Cliquez sur le bouton « Recherche de greffons… » en bas à droite de la fen Remove unused tags Retirer les étiquettes inutilisées - - - Resume torrents - Reprendre les torrents - - - - Pause torrents - Mettre en pause les torrents - Remove torrents Retirer les torrents - - New Tag - Nouvelle étiquette + + Start torrents + Démarrer les torrents + + + + Stop torrents + Arrêter les torrents Tag: Étiquette : + + + Add tag + Ajouter une étiquette + Invalid tag name @@ -9901,32 +10423,32 @@ Veuillez en choisir un autre. TorrentContentModel - + Name Nom - + Progress Progression - + Download Priority Priorité de téléchargement - + Remaining Restant - + Availability Disponibilité - + Total Size Taille totale @@ -9971,98 +10493,98 @@ Veuillez en choisir un autre. TorrentContentWidget - + Rename error Erreur de renommage - + Renaming Renommage - + New name: Nouveau nom : - + Column visibility Visibilité de la colonne - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu - + Open Ouvrir - + Open containing folder Ouvrir le dossier contenant - + Rename... Renommer… - + Priority Priorité - - + + Do not download Ne pas télécharger - + Normal Normale - + High Haute - + Maximum Maximale - + By shown file order Par ordre de fichier affiché - + Normal priority Priorité normale - + High priority Haute priorité - + Maximum priority Priorité maximale - + Priority by shown file order Priorité par ordre de fichier affiché @@ -10070,19 +10592,19 @@ Veuillez en choisir un autre. TorrentCreatorController - + Too many active tasks - + Trop de tâches actives - + Torrent creation is still unfinished. - + La création de torrent est encore inachevée. - + Torrent creation failed. - + Échec de la création du torrent. @@ -10109,13 +10631,13 @@ Veuillez en choisir un autre. - + Select file Sélectionner un fichier - + Select folder Sélectionner un dossier @@ -10190,87 +10712,83 @@ Veuillez en choisir un autre. Champs - + You can separate tracker tiers / groups with an empty line. Vous pouvez séparer les groupes / niveaux de trackers avec une ligne vide. - + Web seed URLs: URL des sources Web : - + Tracker URLs: URL des trackers : - + Comments: Commentaires : - + Source: Source : - + Progress: Progression : - + Create Torrent Créer le torrent - - + + Torrent creation failed Échec de la création du torrent - + Reason: Path to file/folder is not readable. Raison : Le chemin vers le fichier/dossier n'est pas accessible en lecture. - + Select where to save the new torrent Sélectionner où enregistrer le nouveau torrent - + Torrent Files (*.torrent) Fichiers torrents (*.torrent) - Reason: %1 - Raison : %1 - - - + Add torrent to transfer list failed. Échec de l'ajout du torrent dans la liste de transfert. - + Reason: "%1" Raison : "%1" - + Add torrent failed Échec de l'ajout du torrent - + Torrent creator Créateur de torrent - + Torrent created: Torrent créé : @@ -10278,32 +10796,32 @@ Veuillez en choisir un autre. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Échec du chargement de la configuration des dossiers surveillés. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Échec de l'analyse de la configuration des dossiers surveillés à partir de %1. Erreur : « %2 » - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Échec du chargement de la configuration des dossiers surveillés à partir de %1. Erreur : « Format de données invalide. » - + Couldn't store Watched Folders configuration to %1. Error: %2 Impossible de stocker la configuration des dossiers surveillés dans %1. Erreur : %2 - + Watched folder Path cannot be empty. Le chemin du dossier surveillé ne peut pas être vide. - + Watched folder Path cannot be relative. Le chemin du dossier surveillé ne peut pas être relatif. @@ -10311,44 +10829,31 @@ Veuillez en choisir un autre. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 URI du Magnet invalide. URI : %1. Raison : %2 - + Magnet file too big. File: %1 Fichier magnet trop volumineux. Fichier : %1 - + Failed to open magnet file: %1 Échec de l'ouverture du fichier magnet : %1 - + Rejecting failed torrent file: %1 Échec du rejet du fichier torrent : %1 - + Watching folder: "%1" Dossier de surveillance : %1 - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Impossible d'allouer de la mémoire lors de la lecture du fichier. Fichier : « %1 ». Erreur : « %2 » - - - - Invalid metadata - Métadonnées invalides - - TorrentOptionsDialog @@ -10377,175 +10882,163 @@ Veuillez en choisir un autre. Utiliser un autre répertoire pour un torrent incomplet - + Category: Catégorie : - - Torrent speed limits - Limites de vitesse du torrent + + Torrent Share Limits + Limites de partage du torrent - + Download: Téléchargement : - - + + - - + + Torrent Speed Limits + Limites de vitesse du torrent + + + + KiB/s Kio/s - + These will not exceed the global limits Celles-ci ne dépasseront pas les limites globales - + Upload: Envoi : - - Torrent share limits - Limites de partage du torrent - - - - Use global share limit - Utiliser la limite de partage globale - - - - Set no share limit - Définir aucune limite de partage - - - - Set share limit to - Définir la limite de partage à - - - - ratio - ratio - - - - total minutes - minutes totales - - - - inactive minutes - minutes inactives - - - + Disable DHT for this torrent Désactiver le DHT pour ce torrent - + Download in sequential order Télécharger dans l'ordre séquentiel - + Disable PeX for this torrent Désactiver les PeX pour ce torrent - + Download first and last pieces first Télécharger les premiers et derniers morceaux en premier - + Disable LSD for this torrent Désactiver le LSD pour ce torrent - + Currently used categories Catégories actuellement utilisées - - + + Choose save path Choisir le répertoire de destination - + Not applicable to private torrents Non applicable aux torrents privés - - - No share limit method selected - Aucune méthode de limite de partage sélectionnée - - - - Please select a limit method first - Merci de sélectionner d'abord un méthode de limite - TorrentShareLimitsWidget - - - + + + + Default - Par défaut + Par défaut + + + + + + Unlimited + Illimité - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Définit à + + + + Seeding time: + Temps en partage : + + + + + + + + min minutes - + min - + Inactive seeding time: - + Temps en partage inactif : - + + Action when the limit is reached: + Action lorsque la limite est atteinte : + + + + Stop torrent + Arrêter le torrent + + + + Remove torrent + Retirer le torrent + + + + Remove torrent and its content + Retiré les torrent et son contenu + + + + Enable super seeding for torrent + Activer le super partage pour ce torrent + + + Ratio: - + Ratio : @@ -10556,32 +11049,32 @@ Veuillez en choisir un autre. Étiquettes du torrent - - New Tag - Nouvelle étiquette + + Add tag + Ajouter une étiquette - + Tag: Étiquette : - + Invalid tag name Nom de l’étiquette invalide - + Tag name '%1' is invalid. Le nom de l’étiquette '%1' est invalide. - + Tag exists L'étiquette existe déjà - + Tag name already exists. Le nom de l'étiquette existe déjà. @@ -10589,115 +11082,130 @@ Veuillez en choisir un autre. TorrentsController - + Error: '%1' is not a valid torrent file. Erreur : '%1' n'est pas un fichier torrent valide. - + Priority must be an integer La priorité doit être un nombre - + Priority is not valid Priorité invalide - + Torrent's metadata has not yet downloaded Les métadonnées du torrent n’ont pas encore été téléchargées - + File IDs must be integers Les identifiants de fichier doivent être des entiers - + File ID is not valid L'ID du fichier n'est pas valide - - - - + + + + Torrent queueing must be enabled La mise en file d'attente du torrent doit être activée - - + + Save path cannot be empty Le répertoire de destination ne peut être vide - - + + Cannot create target directory Impossible de créer le répertoire cible - - + + Category cannot be empty La catégorie ne peut être vide - + Unable to create category Impossible de créer la catégorie - + Unable to edit category Impossible d'éditer la catégorie - + Unable to export torrent file. Error: %1 Échec de l’exportation du fichier torrent. Erreur : %1 - + Cannot make save path Impossible de créer le répertoire de destination - + + "%1" is not a valid URL + "%1" n'est pas une URL valide + + + + URL scheme must be one of [%1] + Le schéma d'URL doit être l'un des [%1] + + + 'sort' parameter is invalid Le paramètre de tri 'sort' est invalide - + + "%1" is not an existing URL + "%1" n'est pas une URL existante + + + "%1" is not a valid file index. « %1 » n’est pas un index de fichier valide. - + Index %1 is out of bounds. L’index %1 est hors limites. - - + + Cannot write to directory Impossible d'écrire dans le répertoire - + WebUI Set location: moving "%1", from "%2" to "%3" Définir l'emplacement de l'IU Web: déplacement de « %1 », de « %2 » vers « %3 » - + Incorrect torrent name Nom de torrent incorrect - - + + Incorrect category name Nom de catégorie incorrect @@ -10728,196 +11236,191 @@ Veuillez en choisir un autre. TrackerListModel - + Working Fonctionnel - + Disabled Désactivé - + Disabled for this torrent Désactivé pour ce torrent - + This torrent is private Ce torrent est privé - + N/A N/D - + Updating... Mise à jour en cours… - + Not working Non fonctionnel - + Tracker error Erreur du tracker - + Unreachable Injoignable - + Not contacted yet Pas encore contacté - - Invalid status! + + Invalid state! État invalide ! - - URL/Announce endpoint - URL/Terminaison de l'annonce + + URL/Announce Endpoint + URL/Announce Endpoint - + + BT Protocol + Protocole BT + + + + Next Announce + Prochaine Annonce + + + + Min Announce + Annonce minimum + + + Tier Niveau - - Protocol - Protocole - - - + Status État - + Peers Pairs - + Seeds Sources - + Leeches Téléchargeurs - + Times Downloaded Nombre de fois téléchargé - + Message Message - - - Next announce - Annonce suivante - - - - Min announce - Annonce minimum - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Ce torrent est privé - + Tracker editing Édition du tracker - + Tracker URL: URL du tracker : - - + + Tracker editing failed Échec de l’édition du tracker - + The tracker URL entered is invalid. L'URL du tracker saisie est invalide. - + The tracker URL already exists. L'URL du tracker existe déjà. - + Edit tracker URL... Éditer l'URL du tracker… - + Remove tracker Retirer le tracker - + Copy tracker URL Copier l'URL du tracker - + Force reannounce to selected trackers Forcer la réannonce aux trackers sélectionnés - + Force reannounce to all trackers Forcer la réannonce à tous les trackers - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu - + Add trackers... Ajouter des trackers… - + Column visibility Visibilité de la colonne @@ -10935,37 +11438,37 @@ Veuillez en choisir un autre. Liste des trackers à ajouter (un par ligne) : - + µTorrent compatible list URL: URL de la liste compatible µTorrent : - + Download trackers list Télécharger la liste des trackers - + Add Ajouter - + Trackers list URL error Erreur d'URL de la liste des trackers - + The trackers list URL cannot be empty L'URL de la liste des trackers ne peut pas être vide - + Download trackers list error Erreur lors du téléchargement de la liste des trackers - + Error occurred when downloading the trackers list. Reason: "%1" Une erreur s'est produite lors du téléchargement de la liste des trackers. Raison : « %1 » @@ -10973,62 +11476,62 @@ Veuillez en choisir un autre. TrackersFilterWidget - + Warning (%1) Avertissements (%1) - + Trackerless (%1) Sans tracker (%1) - + Tracker error (%1) Erreur du tracker (%1) - + Other error (%1) Autre erreur (%1) - + Remove tracker Retirer le tracker - - Resume torrents + + Start torrents Démarrer les torrents - - Pause torrents - Mettre en pause les torrents + + Stop torrents + Arrêter les torrents - + Remove torrents Retirer les torrents - + Removal confirmation Confirmation du retrait - + Are you sure you want to remove tracker "%1" from all torrents? Êtes-vous sûr de vouloir supprimer le tracker "%1" de tous les torrents ? - + Don't ask me again. Ne pas me redemander. - + All (%1) this is for the tracker filter Tous (%1) @@ -11037,7 +11540,7 @@ Veuillez en choisir un autre. TransferController - + 'mode': invalid argument 'mode' : argument invalide @@ -11129,15 +11632,10 @@ Veuillez en choisir un autre. 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 reprise - - - Paused - En pause - Completed - Terminé + Complété @@ -11157,220 +11655,252 @@ Veuillez en choisir un autre. Erroné - + Name i.e: torrent name Nom - + Size i.e: torrent size Taille - + Progress % Done Progression - - Status - Torrent status (e.g. downloading, seeding, paused) - État + + Stopped + Arrêté - + + Status + Torrent status (e.g. downloading, seeding, stopped) + Statut + + + Seeds i.e. full sources (often untranslated) Sources - + Peers i.e. partial sources (often untranslated) Pairs - + Down Speed i.e: Download speed Réception - + Up Speed i.e: Upload speed Envoi - + Ratio Share ratio Ratio - + + Popularity + Popularité + + + ETA i.e: Estimated Time of Arrival / Time left Temps restant estimé - + Category Catégorie - + Tags Étiquettes - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Ajouté le - + Completed On Torrent was completed on 01/01/2010 08:00 - Terminé le + Complété le - + Tracker Tracker - + Down Limit i.e: Download limit Limite de réception - + Up Limit i.e: Upload limit Limite d'envoi - + Downloaded Amount of data downloaded (e.g. in MB) Téléchargé - + Uploaded Amount of data uploaded (e.g. in MB) Envoyé - + Session Download Amount of data downloaded since program open (e.g. in MB) Téléchargé durant la session - + Session Upload Amount of data uploaded since program open (e.g. in MB) Envoi durant la session - + Remaining Amount of data left to download (e.g. in MB) Restant - + Time Active - Time (duration) the torrent is active (not paused) - Actif pendant + Time (duration) the torrent is active (not stopped) + Temps actif - + + Yes + Oui + + + + No + Non + + + Save Path Torrent save path Répertoire de destination - + Incomplete Save Path Torrent incomplete save path Répertoire de destination incomplet - + Completed Amount of data completed (e.g. in MB) - Terminé + Complété - + Ratio Limit Upload share ratio limit Limite du ratio - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Dernière fois vu complet - + Last Activity Time passed since a chunk was downloaded/uploaded Dernière activité - + Total Size i.e. Size including unwanted data Taille totale - + Availability The number of distributed copies of the torrent Disponibilité - + Info Hash v1 i.e: torrent info hash v1 Info hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info hash v2 - + Reannounce In Indicates the time until next trackers reannounce Réannonce dans - - + + Private + Flags private torrents + Privé + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Temps Actif (en mois), indique la popularité du torrent + + + + + N/A N/D - + %1 ago e.g.: 1h 20m ago Il y a %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (partagé pendant %2) @@ -11379,339 +11909,319 @@ Veuillez en choisir un autre. TransferListWidget - + Column visibility Visibilité des colonnes - + Recheck confirmation Revérifier la confirmation - + Are you sure you want to recheck the selected torrent(s)? Êtes-vous sur de vouloir revérifier le ou les torrent(s) sélectionné(s) ? - + Rename Renommer - + New name: Nouveau nom : - + Choose save path Choix du répertoire de destination - - Confirm pause - Confirmer la mise en pause - - - - Would you like to pause all torrents? - Souhaitez-vous mettre en pause tous les torrents ? - - - - Confirm resume - Confirmer la reprise - - - - Would you like to resume all torrents? - Souhaitez-vous reprendre tous les torrents ? - - - + Unable to preview Impossible de prévisualiser - + The selected torrent "%1" does not contain previewable files Le torrent sélectionné « %1 » ne contient pas de fichier prévisualisable - + Resize columns Redimensionner les colonnes - + Resize all non-hidden columns to the size of their contents Redimensionner toutes les colonnes non masquées à la taille de leur contenu - + Enable automatic torrent management Activer la gestion de torrent automatique - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Êtes-vous certain de vouloir activer la gestion de torrent automatique pour le(s) torrent(s) sélectionné(s) ? Ils pourraient être déplacés. - - Add Tags - Ajouter des étiquettes - - - + Choose folder to save exported .torrent files Choisir le dossier pour enregistrer les fichiers .torrent exportés - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Échec de l'exportation du fichier .torrent. Torrent : « %1 ». Répertoire de destination : « %2 ». Raison : « %3 » - + A file with the same name already exists Un fichier du même nom existe déjà - + Export .torrent file error Erreur d’exportation du fichier .torrent - + Remove All Tags Retirer toutes les étiquettes - + Remove all tags from selected torrents? Retirer toutes les étiquettes des torrents sélectionnés ? - + Comma-separated tags: Étiquettes séparées par des virgules : - + Invalid tag Étiquette invalide - + Tag name: '%1' is invalid Nom d'étiquette : '%1' est invalide - - &Resume - Resume/start the torrent - &Reprendre - - - - &Pause - Pause the torrent - Mettre en &pause - - - - Force Resu&me - Force Resume/start the torrent - &Forcer la reprise - - - + Pre&view file... Pré&visualiser le fichier… - + Torrent &options... &Options du torrent… - + Open destination &folder Ouvrir le répertoire de &destination - + Move &up i.e. move up in the queue Déplacer vers le &haut - + Move &down i.e. Move down in the queue Déplacer vers le &bas - + Move to &top i.e. Move to top of the queue Déplacer au hau&t - + Move to &bottom i.e. Move to bottom of the queue Déplacer au &bas - + Set loc&ation... Définir l’emp&lacement… - + Force rec&heck For&cer une revérification - + Force r&eannounce Forcer une réannonc&e - + &Magnet link Lien &magnet - + Torrent &ID &ID du torrent - + &Comment &Commentaire - + &Name &Nom - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Re&nommer… - + Edit trac&kers... Éditer les trac&kers… - + E&xport .torrent... E&xporter le .torrent… - + Categor&y Catégor&ie - + &New... New category... &Nouvelle… - + &Reset Reset category &Réinitialiser - + Ta&gs Éti&quettes - + &Add... Add / assign multiple tags... &Ajouter… - + &Remove All Remove all tags &Retirer tout - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Impossible de forcer la réannonce si le torrent est arrêté / en file d’attente / en erreur / en cours de vérification + + + &Queue &File d’attente - + &Copy &Copier - + Exported torrent is not necessarily the same as the imported Le torrent exporté n'est pas nécessairement le même que celui importé - + Download in sequential order Télécharger dans l'ordre séquentiel - + + Add tags + Ajouter des étiquettes + + + Errors occurred when exporting .torrent files. Check execution log for details. Des erreurs se sont produites lors de l’exportation des fichiers .torrent. Consultez le journal d’exécution pour plus de détails. - + + &Start + Resume/start the torrent + &Démarrer + + + + Sto&p + Stop the torrent + Arrê&ter + + + + Force Star&t + Force Resume/start the torrent + &Forcer le démarrage + + + &Remove Remove the torrent &Retirer - + Download first and last pieces first Télécharger les premiers et derniers morceaux en premier - + Automatic Torrent Management Gestion de torrent automatique - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Le mode automatique signifie que diverses propriétés du torrent (p. ex. le répertoire de destination) seront décidées par la catégorie associée - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Impossible de forcer la réannonce si le torrent est en pause / file d’attente / erroné / cours de vérification - - - + Super seeding mode Mode de super-partage @@ -11756,28 +12266,28 @@ Veuillez en choisir un autre. ID de l’icône - + UI Theme Configuration. Configuration du thème de l'interface. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - Les changements du thème de l'interface n'ont pas pu être pleinement appliqués. Les détails peuvent être trouvés dans les logs. + Les changements du thème de l'interface n'ont pas pu être pleinement appliqués. Les détails peuvent être trouvés dans le fichier journal. - + Couldn't save UI Theme configuration. Reason: %1 La configuration du thème de l'interface n'a pas pu être sauvegardé. Raison: %1 - - + + Couldn't remove icon file. File: %1. Le fichier d'icône n'a pas pu être retiré. Fichier: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Le fichier d'icône n'a pas pu être copié. Source: %1. Destination: %2. @@ -11785,7 +12295,12 @@ Veuillez en choisir un autre. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Échec de la définition du style de l'application. Style inconnu : « %1 » + + + Failed to load UI theme from file: "%1" Échec du chargement du thème de l'IU à partir du fichier : « %1 » @@ -11816,20 +12331,21 @@ Veuillez en choisir un autre. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Échec de la migration des préférences : IU Web HTTPS, fichier : « %1 », erreur : « %2 » - + Migrated preferences: WebUI https, exported data to file: "%1" Échec de la migration des préférences : IU Web HTTPS, données exportées vers le fichier : « %1 » - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Valeur invalide trouvée dans le fichier de configuration, rétablissement de sa valeur par défaut. Clé : « %1 ». Valeur invalide : « %2 ». @@ -11837,32 +12353,32 @@ Veuillez en choisir un autre. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Exécutable Python trouvé. Nom : "%1". Version : "%2" - + Failed to find Python executable. Path: "%1". Exécutable Python non trouvé. Chemin : "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Exécutable 'python3' non trouvé dans la variable d'environnement PATH. PATH : "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Exécutable 'python' non trouvé dans la variable d'environnement PATH. PATH : "%1" - + Failed to find `python` executable in Windows Registry. Exécutable 'python' non trouvé dans le registre Windows. - + Failed to find Python executable Exécutable Python non trouvé @@ -11954,72 +12470,72 @@ Veuillez en choisir un autre. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Un nom de cookie de session inacceptable est spécifié : '%1'. Celui par défaut est utilisé. - + Unacceptable file type, only regular file is allowed. Type de fichier inacceptable, seul un fichier normal est autorisé. - + Symlinks inside alternative UI folder are forbidden. Les liens symboliques sont interdits dans les dossiers d'IU alternatives. - + Using built-in WebUI. Utilisation de l'IU Web intégrée. - + Using custom WebUI. Location: "%1". Utilisation d'une IU Web personnalisée. Emplacement : « %1 ». - + WebUI translation for selected locale (%1) has been successfully loaded. La traduction de l'IU Web pour les paramètres régionaux sélectionnés (%1) a été chargée avec succès. - + Couldn't load WebUI translation for selected locale (%1). Impossible de charger la traduction de l'IU Web pour les paramètres régionaux sélectionnés (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Séparateur ':' manquant dans l'en-tête HTTP personnalisé de l'IU Web : « %1 » - + Web server error. %1 Erreur du serveur Web. %1 - + Web server error. Unknown error. Erreur de serveur Web. Erreur inconnue. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' IU Web : Disparité entre l'en-tête d'origine et l'origine de la cible ! IP source : '%1'. En-tête d'origine : '%2'. Origine de la cible : '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' IU Web : Disparité entre l'en-tête du référent et l'origine de la cible ! IP source : '%1'. En-tête du référent : '%2'. Origine de la cible : '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' IU Web : En-tête d'hôte invalide, non-concordance du port. IP source de la requête : '%1'. Port du serveur : '%2'. En-tête d'hôte reçu : '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' IU Web : En-tête d'hôte invalide. IP source de la requête : '%1'. En-tête d'hôte reçu : '%2' @@ -12027,125 +12543,133 @@ Veuillez en choisir un autre. WebUI - + Credentials are not set Les informations d'identification ne sont pas définies - + WebUI: HTTPS setup successful IU Web : Configuration HTTPS réussie - + WebUI: HTTPS setup failed, fallback to HTTP IU Web : Échec de la configuration HTTPS, retour à HTTP - + WebUI: Now listening on IP: %1, port: %2 IU Web : En écoute sur l'adresse IP : %1, port : %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 IU Web : Impossible de se lier à l'adresse IP : %1, port : %2. Raison : %3 + + fs + + + Unknown error + Erreur inconnue + + misc - + B bytes Oct - + KiB kibibytes (1024 bytes) Kio - + MiB mebibytes (1024 kibibytes) Mio - + GiB gibibytes (1024 mibibytes) Gio - + TiB tebibytes (1024 gibibytes) Tio - + PiB pebibytes (1024 tebibytes) Pio - + EiB exbibytes (1024 pebibytes) Eio - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 min - + %1h %2m e.g: 3 hours 5 minutes %1 h %2 min - + %1d %2h e.g: 2 days 10 hours %1j %2h - + %1y %2d e.g: 2 years 10 days %1 a %2 j - - + + 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 diff --git a/src/lang/qbittorrent_gl.ts b/src/lang/qbittorrent_gl.ts index e1965a27f..5588765b6 100644 --- a/src/lang/qbittorrent_gl.ts +++ b/src/lang/qbittorrent_gl.ts @@ -14,77 +14,77 @@ Sobre - + Authors Autores - + Current maintainer Responsábel actual - + Greece Grecia - - + + Nationality: Nacionalidade: - - + + E-mail: Correo-e: - - + + Name: Nome: - + Original author Autor orixinal - + France Francia - + Special Thanks Grazas especiais a - + Translators Tradutores - + License Licenza - + Software Used Software usado - + qBittorrent was built with the following libraries: qBittorrent construiuse coas seguintes bibliotecas: - + Copy to clipboard - + Copiar no portapapeis @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Dereitos de autor %1 ©2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Dereitos de autor %1 ©2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Gardar como - + Never show again Non mostrar de novo - - - Torrent settings - Opcións torrent - Set as default category @@ -191,12 +186,12 @@ Iniciar o torrent - + Torrent information Información do torrent - + Skip hash check Saltar a comprobación hash @@ -205,20 +200,25 @@ Use another path for incomplete torrent Usar outra ruta para os torrents incompletos + + + Torrent options + Opcións de torrent + Tags: - + Etiquetas: Click [...] button to add/remove tags. - + Fai clic no botón [...] para engadir/eliminar etiquetas. Add/remove tags - + Engadir/eliminar etiquetas @@ -228,78 +228,78 @@ Stop condition: - + Condición de parada: - - + + None - + Ningún - - + + Metadata received - + Metadatos recibidos - + Torrents that have metadata initially will be added as stopped. - + Os torrents que teñan metadatos inicialmente engadiranse como parados. - - + + Files checked - + Ficheiros comprobados - + Add to top of queue - + Engadir á parte superior da cola - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Se está marcado, o ficheiro .torrent non se eliminará a pesar dos axustes na páxina «Descargas» do diálogo de opcións - + Content layout: Disposición do contido: - + Original Orixinal - + Create subfolder Crear subcartafol - + Don't create subfolder Non crear subcartafol - + Info hash v1: Info hash v1: - + Size: Tamaño: - + Comment: Comentario: - + Date: Data: @@ -329,147 +329,147 @@ Lembrar a última ruta usada para gardar - + Do not delete .torrent file Non eliminar o ficheiro .torrent - + Download in sequential order Descargar en orde secuencial - + Download first and last pieces first Descargar primeiro os anacos inicial e final - + Info hash v2: Información do hash v2: - + Select All Seleccionar todo - + Select None Non seleccionar nada - + Save as .torrent file... Gardar como ficheiro .torrent... - + I/O Error Erro de E/S - + Not Available This comment is unavailable Non dispoñíbel - + Not Available This date is unavailable Non dispoñíbel - + Not available Non dispoñíbel - + Magnet link Ligazón magnet - + Retrieving metadata... Recuperando os metadatos... - - + + Choose save path Seleccionar a ruta onde gardar - - - No stop condition is set. - - - - - Torrent will stop after metadata is received. - - - - - Torrent will stop after files are initially checked. - - - This will also download metadata if it wasn't there initially. - + No stop condition is set. + Non se establece ningunha condición de parada. - - + + Torrent will stop after metadata is received. + O torrent deterase despois de recibir os metadatos. + + + + Torrent will stop after files are initially checked. + O torrent deterase despois de que se comproben inicialmente os ficheiros. + + + + This will also download metadata if it wasn't there initially. + Isto tamén descargará metadatos se non estaban alí inicialmente. + + + + N/A N/D - + %1 (Free space on disk: %2) %1 (espazo libre no disco: %2) - + Not available This size is unavailable. Non dispoñíbel - + Torrent file (*%1) Ficheiro torrent (*%1) - + Save as torrent file Gardar como ficheiro torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Non foi posíbel exportar os metadatos do torrent: «%1». Razón: %2. - + Cannot create v2 torrent until its data is fully downloaded. Non é posíbel crear torrent v2 ata que se descarguen todos os datos. - + Filter files... Filtrar ficheiros... - + Parsing metadata... Analizando os metadatos... - + Metadata retrieval complete Completouse a recuperación dos metadatos @@ -477,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Descargando torrent... Fonte: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Produciuse un erro ao engadir o torrent. Fonte: "%1". Motivo: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + A combinación de rastrexadores está desactivada - + Trackers cannot be merged because it is a private torrent - + Non se poden combinar os rastrexadores porque é un torrent privado - + Trackers are merged from new source + Os rastreadores combínanse desde unha nova fonte + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -532,7 +532,7 @@ Note: the current defaults are displayed for reference. - + Nota: os valores predeterminados actuais móstranse como referencia. @@ -547,17 +547,17 @@ Tags: - + Etiquetas: Click [...] button to add/remove tags. - + Fai clic no botón [...] para engadir/eliminar etiquetas. Add/remove tags - + Engadir/eliminar etiquetas @@ -567,7 +567,7 @@ Start torrent: - + Iniciar torrent: @@ -577,12 +577,12 @@ Stop condition: - + Condición de parada: Add to top of queue: - + Engadir á parte superior da cola: @@ -592,7 +592,7 @@ Torrent share limits - Límites de compartición do torrent + Límites de compartición do torrent @@ -652,779 +652,879 @@ None - + Ningún Metadata received - + Metadatos recibidos Files checked - + Ficheiros comprobados AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Volver comprobar os torrents ao rematar - - + + ms milliseconds ms - + Setting Configuración - + Value Value set for this setting Valor - + (disabled) (desactivado) - + (auto) (auto) - + + min minutes min. - + All addresses Todos os enderezos - + qBittorrent Section Sección qBittorrent - - + + Open documentation Abrir a documentación - + All IPv4 addresses Todos os enderezos IPv4 - + All IPv6 addresses Todos os enderezos IPv6 - + libtorrent Section Sección libtorrent - + Fastresume files Ficheiros de continuación rápida - + SQLite database (experimental) Base de datos SQLite (experimental) - + Resume data storage type (requires restart) Tipo de almacenaxe dos datos de continuación (necesita reiniciar) - + Normal Normal - + Below normal Inferior ao normal - + Medium Medio - + Low Baixo - + Very low Moi baixo - + Physical memory (RAM) usage limit Límite de uso de memoria física (RAM) - + Asynchronous I/O threads Supbrocesos de E/S asíncronos - + Hashing threads Fíos do hash - + File pool size Tamaño da agrupación de ficheiros - + Outstanding memory when checking torrents Memoria adicional na comprobación dos torrents - + Disk cache Caché do disco - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalo de caducidade da caché do disco - + Disk queue size Tamaño da cola en disco - - + + Enable OS cache Activar a caché do SO - + Coalesce reads & writes Fusionar lecturas e escrituras - + Use piece extent affinity Usar similitude no tamaño dos anacos - + Send upload piece suggestions Enviar suxestións de anacos para subida - - - - - - 0 (disabled) - - - - - Save resume data interval [0: disabled] - How often the fastresume file is saved. - - - - - Outgoing ports (Min) [0: disabled] - - - - - Outgoing ports (Max) [0: disabled] - - - 0 (permanent lease) - + + + + + 0 (disabled) + 0 (desactivado) + Save resume data interval [0: disabled] + How often the fastresume file is saved. + Intervalo de gardado de datos de reanudación [0: desactivado] + + + + Outgoing ports (Min) [0: disabled] + Portos de saída (mínimo) [0: desactivado] + + + + Outgoing ports (Max) [0: disabled] + Portos de saída (máx.) [0: desactivado] + + + + 0 (permanent lease) + 0 (concesión permanente) + + + UPnP lease duration [0: permanent lease] - + Duración da concesión UPnP [0: concesión permanente] - + Stop tracker timeout [0: disabled] - + Deter o tempo de espera do rastrexador [0: desactivado] - + Notification timeout [0: infinite, -1: system default] - + Tempo de espera da notificación [0: infinito, -1: predeterminado do sistema] - + Maximum outstanding requests to a single peer Límite de peticións extraordinarias por par - - - - - + + + + + KiB KiB - + (infinite) - + (infinito) - + (system default) - + (predeterminado do sistema) - + + Delete files permanently + Eliminar ficheiros permanentemente + + + + Move files to trash (if possible) + Mover ficheiros á papeleira (se é posible) + + + + Torrent content removing mode + Modo de eliminación de contido de torrent + + + This option is less effective on Linux Esta opción é menos importante en Linux - + Process memory priority - + Prioridade da memoria do proceso - + Bdecode depth limit - + Límite de profundidade de Bdecode - + Bdecode token limit - + Límite de token Bdecode - + Default Predeterminado - + Memory mapped files Ficheiros cargados en memoria - + POSIX-compliant Compatible coa POSIX - + + Simple pread/pwrite + pread/pwrite simple + + + Disk IO type (requires restart) Tipo de E/S de disco (precisarase reiniciar) - - + + Disable OS cache Desactivar a caché do SO - + Disk IO read mode Modo de lectura en disco - + Write-through Escritura simultánea - + Disk IO write mode Modo de escritura en disco - + Send buffer watermark Nivel do búfer de envío - + Send buffer low watermark Nivel baixo do búfer de envío - + Send buffer watermark factor Factor do nivel do búfer de envío - + Outgoing connections per second Conexións saíntes por segundo - - + + 0 (system default) - + 0 (predeterminado do sistema) - + Socket send buffer size [0: system default] - + Tamaño do búfer de envío do socket [0: predeterminado do sistema] - + Socket receive buffer size [0: system default] - + Tamaño do búfer de recepción do socket [0: predeterminado do sistema] - + Socket backlog size Tamaño dos traballos pendentes do socket - - .torrent file size limit - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervalo para gardar as estatísticas [0: desactivado] - + + .torrent file size limit + Límite de tamaño do ficheiro .torrent + + + Type of service (ToS) for connections to peers Tipo de servizo (TdS) para as conexións cos pares - + Prefer TCP Preferir TCP - + Peer proportional (throttles TCP) Par proporcional (compensa a velocidade do TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Admisión de nomes de dominio internacionalizados (IDN) - + Allow multiple connections from the same IP address Permitir múltiples conexións desde a mesma IP - + Validate HTTPS tracker certificates Validar os certificados HTTPS dos localizadores - + Server-side request forgery (SSRF) mitigation Mitigación da falsificación de solicitudes do lado do servidor (SSRF) - + Disallow connection to peers on privileged ports Non permitir conexións con pares en portos privilexiados - + It appends the text to the window title to help distinguish qBittorent instances - + Engade o texto ao título da xanela para axudar a distinguir as instancias de qBittorent - + Customize application instance name - + Personaliza o nome da instancia da aplicación - + It controls the internal state update interval which in turn will affect UI updates Controla a frecuencia de actualización do estado interno, o que afecta a frecuencia de actualización da interface - + Refresh interval Intervalo de actualización - + Resolve peer host names Mostrar os servidores dos pares - + IP address reported to trackers (requires restart) Enderezo IP informada aos localizadores (necesita reiniciar) - + + Port reported to trackers (requires restart) [0: listening port] + Porto informado aos rastrexadores (require reinicio) [0: porto de escoita] + + + Reannounce to all trackers when IP or port changed Anunciar de novo a todos os localizadores cando a IP ou o porto cambien - + Enable icons in menus Activar iconas nos menús - + + Attach "Add new torrent" dialog to main window + Engade o diálogo "Engadir novo torrent" á xanela principal + + + Enable port forwarding for embedded tracker - + Activa o reenvío de portos para o rastrexador incorporado - + Enable quarantine for downloaded files - + Activar corentena para os ficheiros descargados - + Enable Mark-of-the-Web (MOTW) for downloaded files - + Activa a marca da web (MOTW) para os ficheiros descargados - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Afecta á validación de certificados e ás actividades de protocolos non-torrent (por exemplo, feeds RSS, actualizacións do programa, ficheiros torrent, base de datos geoip, etc). + + + + Ignore SSL errors + Ignorar erros SSL + + + (Auto detect if empty) - + (Detección automática se está baleiro) - + Python executable path (may require restart) - + Camiño do executable de Python (pode requirir reinicio) - + + Start BitTorrent session in paused state + Inicia a sesión de BitTorrent en estado de pausa + + + + sec + seconds + s + + + + -1 (unlimited) + -1 (ilimitado) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Tempo de espera de apagado da sesión de BitTorrent [-1: ilimitado] + + + Confirm removal of tracker from all torrents - + Confirmar a eliminación do rastrexador de todos os torrents - + Peer turnover disconnect percentage Porcentaxe de desconexión da rotación de pares - + Peer turnover threshold percentage Porcentaxe límite de desconexión da rotación de pares - + Peer turnover disconnect interval Intervalo de desconexión da rotación de pares - + Resets to default if empty - + Restablece aos valores predeterminados se está baleiro - + DHT bootstrap nodes - + Nodos de arranque DHT - + I2P inbound quantity - + Cantidade de conexións entrantes I2P - + I2P outbound quantity - + Cantidade de conexións saintes I2P - + I2P inbound length - + Duración das conexións entrantes I2P - + I2P outbound length - + Duración das conexións saintes I2P - + Display notifications Mostrar as notificacións - + Display notifications for added torrents Mostrar as notificacións dos torrents engadidos - + Download tracker's favicon Descargar iconas dos localizadores - + Save path history length Gardar o tamaño do historial de rutas - + Enable speed graphs Activar gráficos de velocidade - + Fixed slots Slots fixos - + Upload rate based Baseado na velocidade de envío - + Upload slots behavior Comportamento dos slots de envío - + Round-robin Round-robin - + Fastest upload Envío máis rápido - + Anti-leech Anti-samesugas - + Upload choking algorithm Algoritmo de rexeitamento de envíos - + Confirm torrent recheck Confirmar nova comprobación do torrent - + Confirm removal of all tags Confirmar a eliminación de todas as etiquetas - + Always announce to all trackers in a tier Anunciar sempre a todos os localizadores dun nivel - + Always announce to all tiers Anunciar sempre a todos os niveis - + Any interface i.e. Any network interface Calquera interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritmo modo mixto %1-TCP - + Resolve peer countries Mostrar os países dos pares - + Network interface Interface de rede - + Optional IP address to bind to Enderezo IP opcional ao que ligar - + Max concurrent HTTP announces Anuncios HTTP simultáneos máximos - + Enable embedded tracker Activar o localizador integrado - + Embedded tracker port Porto do localizador integrado + + AppController + + + + Invalid directory path + Ruta de directorio non válida + + + + Directory does not exist + O directorio non existe + + + + Invalid mode, allowed values: %1 + Modo non válido, valores permitidos: %1 + + + + cookies must be array + As cookies deben ser un array + + Application - + Running in portable mode. Auto detected profile folder at: %1 Executándose en modo portátil. Cartafol do perfil detectado automaticamente en: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Detectouse unha marca en liña de ordes redundante: «%1». O modo portátil implica continuacións rápidas relativas. - + Using config directory: %1 Usando o cartafol de configuración: %1 - + Torrent name: %1 Nome do torrent: %1 - + Torrent size: %1 Tamaño do torrent: %1 - + Save path: %1 Ruta onde gardar: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds O torrent descargouse en %1. - + + Thank you for using qBittorrent. Grazas por usar o qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, enviando notificación por correo electrónico - + Add torrent failed - + Engadir torrent fallou - + Couldn't add torrent '%1', reason: %2. - + Non se puido engadir o torrent '%1', razón: %2. - + The WebUI administrator username is: %1 - + O nome de usuario do administrador da WebUI é: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + Non se fixou un contrasinal para o administrador da WebUI. Proporcionase un contrasinal temporal para esta sesión: %1 - + You should set your own password in program preferences. - + Deberías establecer o teu propio contrasinal nas preferencias do programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + A WebUI (interface de usuario web) está desactivada! Para habilitar a WebUI, edita manualmente o ficheiro de configuración. - + Running external program. Torrent: "%1". Command: `%2` Executar programa externo. Torrent: «%1». Orde: «%2» - + Failed to run external program. Torrent: "%1". Command: `%2` - + Fallou ao executar o programa externo. Torrent: '%1'. Comando: `%2` - + Torrent "%1" has finished downloading Rematou a descarga do torrent «%1» - + WebUI will be started shortly after internal preparations. Please wait... A interface web iniciarase tras unha breve preparación. Agarde... - - + + Loading torrents... Cargando torrents... - + E&xit &Saír - + I/O Error i.e: Input/Output Error Fallo de E/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ Razón: %2 - + Torrent added Engadiuse o torrent - + '%1' was added. e.g: xxx.avi was added. Engadiuse «%1». - + Download completed Descarga completada - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1 iniciado. Identificador do proceso: %2 - + + This is a test email. + Este é un correo electrónico de proba. + + + + Test email + Correo electrónico de proba + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Rematou a descarga de «%1» - + Information Información - + To fix the error, you may need to edit the config file manually. - + Para solucionar o erro, pode que necesites editar manualmente o ficheiro de configuración. - + To control qBittorrent, access the WebUI at: %1 Para controlar o qBittorrent, acceda á interface web en : %1 - + Exit Saír - + Recursive download confirmation Confirmación de descarga recursiva - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + O torrent '%1' contén arquivos .torrent. Queres continuar coas súas descargas? - + Never Nunca - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Descarga recursiva dun ficheiro .torrent dentro do torrent. Torrent fonte: '%1'. Ficheiro: '%2' - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Non se puido limitar o uso de memoria física (RAM). Código de fallo: %1. Mensaxe de fallo: «%2» - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + Fallou ao establecer o límite máximo de uso de memoria física (RAM). Tamaño solicitado: %1. Límite máximo do sistema: %2. Código de erro: %3. Mensaxe de erro: '%4' - + qBittorrent termination initiated Inicializado qBittorrent - + qBittorrent is shutting down... O qBittorrent vai pechar... - + Saving torrent progress... Gardando o progreso do torrent... - + qBittorrent is now ready to exit qBittorrent está preparado para o apagado @@ -1597,20 +1707,20 @@ Rename selected rule. You can also use the F2 hotkey to rename. - + Renomea a regra seleccionada. Tamén podes usar a tecla de atallo F2 para renomear. Priority: - + Prioridade: - + Must Not Contain: Non debe conter: - + Episode Filter: Filtro de episodios: @@ -1663,263 +1773,263 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d &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 - + 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 - + Episode number is a mandatory positive value O número de episodio debe ser un número positivo - + Rules Regras - + Rules (legacy) Regras (herdadas) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Intervalo infinito: <b>1x25-;</b> son os episodios do 25 en diante da primeira tempada e todos os episodios das tempadas seguintes - + 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'? Confirma a eliminación da regra de descarga chamada %1? - + Are you sure you want to remove the selected download rules? Confirma a eliminación das regras de descarga seleccionadas? - + Rule deletion confirmation Confirmación de eliminación da regra - + Invalid action Acción non válida - + The list is empty, there is nothing to export. A lista está baleira, non hai nada que exportar. - + Export RSS rules Exportar regras do RSS - + I/O Error Erro de E/S - + Failed to create the destination file. Reason: %1 Produciuse un fallo creando o ficheiro de destino. Razón: %1 - + Import RSS rules Importar regras do RSS - + Failed to import the selected rules file. Reason: %1 Produciuse un fallo ao importar o ficheiro de regras seleccionado. Razón: %1 - + 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 - + Clear downloaded episodes... Limpar episodios descargados... - + Rule renaming Cambio do nome da regra - + Please type the new rule name Escriba o nome da regra nova - + Clear downloaded episodes Limpar episodios descargados - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Confirma a eliminación da lista de episodios descargados pola regra seleccionada? - + Regex mode: use Perl-compatible regular expressions Modo Regex: usar expresións regulares compatíbeis con Perl - - + + Position %1: %2 Posición %1: %2 - + Wildcard mode: you can use Modo comodín: pode usar - - + + Import error - + Erro ao importar - + Failed to read the file. %1 - + Produciuse un erro ao ler o ficheiro. %1 - + ? to match any single character ? para substituír calquera carácter - + * to match zero or more of any characters * para substituír cero ou máis caracteres calquera - + Whitespaces count as AND operators (all words, any order) Os espazos en branco contan como operadores AND (todas as palabras, en calquera orde) - + | is used as OR operator | úsase como operador OR - + If word order is important use * instead of whitespace. Se a orde das palabras importa, use * no canto dun espazo en branco. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Unha expresión cunha condición baleira %1 (p.e.: %2) - + will match all articles. incluirá todos os artigos. - + will exclude all articles. excluirá todos os artigos. @@ -1961,7 +2071,7 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Non é posíbel crear o cartafol de continuación do torrent: «%1» @@ -1971,28 +2081,38 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Non se puideron entender os datos de continuación: formato inválido - - + + Cannot parse torrent info: %1 Non se puido entender a información do torrent: %1 - + Cannot parse torrent info: invalid format Non se puido entender a información do torrent: formato inválido - + Mismatching info-hash detected in resume data + Detectouse un info-hash non coincidente nos datos de reanudación + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Non foi posíbel gardar os metadatos do torrent en «%1». Erro: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Non foi posíbel gardar os datos de continuación do torrent en «%1». Erro: %2. @@ -2003,16 +2123,17 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d + Cannot parse resume data: %1 Non se puideron entender os datos de continuación: %1 - + Resume data is invalid: neither metadata nor info-hash was found Os datos de retorno son inválidos: non se atoparon nin metadatos nin hash de información - + Couldn't save data to '%1'. Error: %2 Non foi posíbel gardar os datos en «%1». Erro: %2 @@ -2020,61 +2141,83 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d BitTorrent::DBResumeDataStorage - + Not found. Non atopado - + Couldn't load resume data of torrent '%1'. Error: %2 Non foi posíbel cargar os datos de continuación do torrent «%1». Erro: %2 - - + + Database is corrupted. A base de datos está corrompida. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Non se puido activar o modo de rexistro de rexistro de escritura anticipada (WAL). Erro: %1. - + Couldn't obtain query result. - + Non se puido obter o resultado da consulta. - + WAL mode is probably unsupported due to filesystem limitations. + O modo WAL probablemente non sexa compatible debido ás limitacións do sistema de ficheiros. + + + + + Cannot parse resume data: %1 + Non se puideron entender os datos de continuación: %1 + + + + + Cannot parse torrent info: %1 + Non se puido entender a información do torrent: %1 + + + + Corrupted resume data: %1 - - Couldn't begin transaction. Error: %1 + + save_path is invalid + + + Couldn't begin transaction. Error: %1 + Non se puido comezar a transacción. Erro: %1 + BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Non foi posíbel gardar os metadatos do torrent. Erro: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Non foi posíbel gardar os datos de continuación do torrent «%1». Erro: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Non foi posíbel eliminar os datos de continuación do torrent «%1». Erro: %2 - + Couldn't store torrents queue positions. Error: %1 Non foi posíbel gardar as posicións na cola de torrents. Erro: %1 @@ -2082,459 +2225,505 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Compatible con Táboa de Hash Distribuída (DHT): %1 - - - - - - - - - + + + + + + + + + ON ACTIVADO - - - - - - - - - + + + + + + + + + OFF DESACTIVADO - - + + Local Peer Discovery support: %1 Compatible coa busca de pares locais: %1 - + Restart is required to toggle Peer Exchange (PeX) support Precísase reiniciar para activar ou desactivar o intercambio de pares (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Non se puido continuar co torrent. Torrent: «%1». Motivo: «%2» - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Non se puido continuar co torrent: Detectado identificador do torrent inconsistente. Torrent: «%1» - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Detectados datos inconsistentes: non hai categoría no ficheiro de configuración. Recuperarase a categoría, pero coa configuración predeterminada. Torrent: «%1». Categoría: «%2» - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Detectados datos inconsistentes: categoría inválida. Torrent: «%1». Categoría: «%2» - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" A ruta onde gardar o torrent actual e o da categoría recuperada non coinciden. O torrent pasará a modo Manual. Torrent: «%1». Categoría: «%2» - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Datos inconsistentes: non se atopou etiqueta no ficheiro de configuración. A etiqueta recuperarase. Torrent: «%1». Etiqueta: «%2» - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + Detectáronse datos incoherentes: etiqueta non válida. Torrent: "%1". Etiqueta: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Detectouse un evento de activación do sistema. Volve a anunciar a todos os rastrexadores... - + Peer ID: "%1" - + ID do par: "%1" - + HTTP User-Agent: "%1" - + Axente de usuario HTTP: "%1" - + Peer Exchange (PeX) support: %1 - + Soporte para intercambio de pares (PeX): %1 - - + + Anonymous mode: %1 Modo anónimo: %1 - - + + Encryption support: %1 Compatibilidade co cifrado: %1 - - + + FORCED FORZADO - + Could not find GUID of network interface. Interface: "%1" Non foi posíbel atopar o GUID da interface de rede. Interface: «%1» - + Trying to listen on the following list of IP addresses: "%1" - + Tentando escoitar a seguinte lista de enderezos IP: "%1" - + Torrent reached the share ratio limit. - + O torrent alcanzou o límite de proporción de compartición. - - - + Torrent: "%1". Torrent: «%1». - - - - Removed torrent. - Torrent retirado. - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - Torrent detido - - - - - + Super seeding enabled. Modo super-sementeira activado. - + Torrent reached the seeding time limit. - + Torrent chegou ao límite de tempo de sementeira. - + Torrent reached the inactive seeding time limit. - + Torrent alcanzou o límite de tempo de semente inactivo. - + Failed to load torrent. Reason: "%1" - + Produciuse un erro ao cargar o torrent. Motivo: "%1" - + I2P error. Message: "%1". - + Erro I2P. Mensaxe: "%1". - + UPnP/NAT-PMP support: ON - + Soporte UPnP/NAT-PMP: ACTIVADO - + + Saving resume data completed. + Gardado dos datos de reanudación completado. + + + + BitTorrent session successfully finished. + A sesión de BitTorrent rematou correctamente. + + + + Session shutdown timed out. + Esgotouse o tempo de apagado da sesión. + + + + Removing torrent. + Eliminando torrent. + + + + Removing torrent and deleting its content. + Eliminando torrent e eliminando o seu contido. + + + + Torrent stopped. + Torrent parou. + + + + Torrent content removed. Torrent: "%1" + Eliminouse o contido do torrent. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Produciuse un erro ao eliminar o contido do torrent. Torrent: "%1". Erro: "%2" + + + + Torrent removed. Torrent: "%1" + Eliminouse o torrent. Torrent: "%1" + + + + Merging of trackers is disabled + A combinación de rastrexadores está desactivada + + + + Trackers cannot be merged because it is a private torrent + Non se poden combinar os rastrexadores porque é un torrent privado + + + + Trackers are merged from new source + Os rastreadores combínanse desde unha nova fonte + + + UPnP/NAT-PMP support: OFF - + Soporte UPnP/NAT-PMP: DESACTIVADO - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Produciuse un erro ao exportar o torrent. Torrent: "%1". Destino: "%2". Motivo: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + Cancelouse o gardado dos datos de reanudación. Número de torrents pendentes: %1 - + The configured network address is invalid. Address: "%1" - + O enderezo de rede configurado non é válido. Enderezo: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + Produciuse un erro ao atopar o enderezo de rede configurado para escoitar. Enderezo: "%1" - + The configured network interface is invalid. Interface: "%1" - + A interface de rede configurada non é válida. Interface: "%1" - + + Tracker list updated + Lista de rastrexadores actualizada + + + + Failed to update tracker list. Reason: "%1" + Fallou a actualización da lista de rastrexadores. Razón: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Rexeitouse unha dirección IP non válida ao aplicar a lista de enderezos IP bloqueados. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Engadiuse un rastrexador ao torrent. Torrent: "%1". Rastrexador: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Eliminouse o rastrexador do torrent. Torrent: "%1". Rastrexador: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Engadiuse a semente de URL ao torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - + Eliminouse a semente URL do torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Produciuse un erro ao eliminar o ficheiro parcial. Torrent: "%1". Motivo: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent reanudado. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Rematou a descarga do torrent. Torrent: "% 1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" + Cancelouse o traslado do torrent. Torrent: "%1". Orixe: "%2". Destino: "%3" + + + + Duplicate torrent - + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent parou. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Fallou ao engadir o traslado do torrent á cola. Torrent: "%1". Orixe: "%2". Destino: "%3". Razón: o torrent está actualmente en proceso de traslado ao destino - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Fallou ao engadir o traslado do torrent á cola. Torrent: "%1". Orixe: "%2". Destino: "%3". Razón: ambos camiños apuntan á mesma ubicación - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Traslado do torrent engadido á cola. Torrent: "%1". Orixe: "%2". Destino: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Comezar a mover o torrent. Torrent: "%1". Destino: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Produciuse un erro ao gardar a configuración das categorías. Ficheiro: "%1". Erro: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Produciuse un erro ao analizar a configuración das categorías. Ficheiro: "%1". Erro: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Analizouse correctamente o ficheiro de filtro IP. Número de regras aplicadas: %1 - + Failed to parse the IP filter file - + Produciuse un erro ao analizar o ficheiro do filtro IP - + Restored torrent. Torrent: "%1" - + Torrent restaurado. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Engadiuse un novo torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - + Erro no torrent. Torrent: "%1". Erro: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Faltan parámetros SSL ao torrent. Torrent: "%1". Mensaxe: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + Alerta de erro do ficheiro. Torrent: "%1". Ficheiro: "%2". Motivo: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + Produciuse un erro na asignación de portos UPnP/NAT-PMP. Mensaxe: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + A asignación de portos UPnP/NAT-PMP realizouse correctamente. Mensaxe: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtro IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + porto filtrado (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + porto privilexiado (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Fallou a conexión do seed de URL. Torrent: "%1". URL: "%2". Erro: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" - + A sesión de BitTorrent atopou un erro grave. Motivo: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + Erro de proxy SOCKS5. Enderezo: %1. Mensaxe: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. Restricións no modo mixto %1 - + Failed to load Categories. %1 - + Produciuse un erro ao cargar as categorías. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - + Produciuse un erro ao cargar a configuración das categorías. Ficheiro: "%1". Erro: "Formato de datos non válido" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 está desactivado - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 está desactivado - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Recibiuse unha mensaxe de erro da semente de URL. Torrent: "%1". URL: "%2". Mensaxe: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Escoitando con éxito en IP. IP: "%1". Porto: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Produciuse un erro ao escoitar en IP. IP: "%1". Porto: "%2/%3". Motivo: "%4" - + Detected external IP. IP: "%1" - + IP externa detectada. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Erro: a cola de alertas internas está chea e as alertas quítanse, é posible que vexa un rendemento degradado. Tipo de alerta eliminada: "%1". Mensaxe: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Moveuse o torrent correctamente. Torrent: "%1". Destino: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" - + Produciuse un erro ao mover o torrent. Torrent: "%1". Orixe: "%2". Destino: "%3". Motivo: "%4" @@ -2542,19 +2731,19 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Failed to start seeding. - + Non se puido comezar a sementar. BitTorrent::TorrentCreator - + Operation aborted Operación cancelada - - + + Create new torrent file failed. Reason: %1. Fallou a creación dun novo ficheiro torrent. Razón: %1. @@ -2562,69 +2751,69 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Produciuse un fallo engadindo o par «%1» ao torrent «%2». Razón: %3 - + Peer "%1" is added to torrent "%2" Par «1%» engadido ao torrent «%2» - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Detectaronse datos inesperados. Torrent: %1. Datos: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Non se puido escribir no ficheiro. Razón: "%1". O torrent agora está en modo "só carga". - + Download first and last piece first: %1, torrent: '%2' Descargar primeiro os anacos inicial e final: %1, torrent: «%2» - + On Activado - + Off Desactivado - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Fallou ao recargar o torrent. Torrent: %1. Razón: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Fallou ao xerar datos de reanudación. Torrent: "%1". Razón: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Fallou ao restaurar o torrent. Probablemente, os ficheiros foron movidos ou o almacenamento non está accesible. Torrent: "%1". Razón: "%2" - + Missing metadata - + Faltan metadatos - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Produciuse un fallo renomeando o ficheiro. Torrent: «%1», ficheiro: «%2», razón: «%3» - + Performance alert: %1. More info: %2 - + Alerta de rendemento: %1. Máis información: %2 @@ -2643,189 +2832,189 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' O parámetro «%1» deber seguir a sintaxe «%1=%2» - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' O parámetro «%1» deber seguir a sintaxe «%1=%2» - + Expected integer number in environment variable '%1', but got '%2' Agardábase un número enteiro na variábel de contorno «%1» pero obtívose o «%2» - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - O parámetro «%1» deber seguir a sintaxe «%1=%2» - - - + Expected %1 in environment variable '%2', but got '%3' Agardábase %1 na variábel de contorno «%2» pero obtívose «%3» - - + + %1 must specify a valid port (1 to 65535). %1 debe especificar un porto válido (1 a 65535). - + Usage: Utilización: - + [options] [(<filename> | <url>)...] - + [Opcións] [(<filename> | <url>)...] - + Options: Opcións: - + Display program version and exit Mostrar a versión do programa e saír - + Display this help message and exit Mostrar esta axuda e saír - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + O parámetro «%1» deber seguir a sintaxe «%1=%2» - - + + Confirm the legal notice + Confirme o aviso legal + + + + port porto - + Change the WebUI port - + Cambia o porto WebUI - + Change the torrenting port - + Cambia o porto de torrenting - + Disable splash screen Desactivar a pantalla de inicio - + Run in daemon-mode (background) Executar no modo daemon (en segundo plano) - + dir Use appropriate short form or abbreviation of "directory" cart. - + Store configuration files in <dir> Gardar os ficheiros de configuración en <dir> - - + + name nome - + Store configuration files in directories qBittorrent_<name> Gardar os ficheiros de configuración en cartafoles qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Acceder aos ficheiros co resumo rápido de libtorrent e facer rutas de ficheiros relativas ao cartafol do perfil - + files or URLs ficheiros ou URL - + Download the torrents passed by the user Descargar os torrents pasados polo usuario - + Options when adding new torrents: Opcións cando se engaden torrents novos: - + path ruta - + Torrent save path Ruta onde gardar os torrents - - Add torrents as started or paused - Engadir torrents como iniciados ou detidos + + Add torrents as running or stopped + Engadir torrents como activos ou detidos - + Skip hash check Saltar a comprobación hash - + Assign torrents to category. If the category doesn't exist, it will be created. Asignar torrents a unha categoría. Se a categoría non existe, crearase. - + Download files in sequential order Descargar ficheiros en orde secuencial - + Download first and last pieces first Descargar primeiro os anacos inicial e final - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Especificar se o diálogo de «Engadir novo torrent» se abre ao engadir un torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Os valores pódense subministrar vía variábeis do contorno. Para a opción chamada «nome do parámetro», o nome da variábel de contorno é «QBT_PARAMETER_NAME» (en maiúsculas, o «-» substitúese por «_»). Para pasar os valores das marcas, estabeleza a variábel a «1» ou «TRUE». Por exemplo, para desactivar a pantalla de presentación: - + Command line parameters take precedence over environment variables Os parámetros da liña de ordes teñen prioridade sobre a variabeis de contorno - + Help Axuda @@ -2877,32 +3066,37 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d - Resume torrents - Continuar os torrents + Start torrents + Iniciar torrents - Pause torrents - Deter os torrents + Stop torrents + Deter torrents Remove torrents - + Eliminar torrents ColorWidget - + Edit... - + Editar... - + Reset Restabelecer + + + System + Sistema + CookiesDialog @@ -2943,22 +3137,22 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Produciuse un erro ao cargar a folla de estilo do tema personalizado. %1 - + Failed to load custom theme colors. %1 - + Produciuse un erro ao cargar as cores do tema personalizado. %1 DefaultThemeSource - + Failed to load default theme colors. %1 - + Produciuse un erro ao cargar as cores predeterminadas do tema. %1 @@ -2966,7 +3160,7 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Remove torrent(s) - + Eliminar torrent(s) @@ -2975,23 +3169,23 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d - Also permanently delete the files - - - - - Are you sure you want to remove '%1' from the transfer list? - Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Also remove the content files + Elimina tamén os ficheiros de contido - Are you sure you want to remove these %1 torrents from the transfer list? - Are you sure you want to remove these 5 torrents from the transfer list? - + Are you sure you want to remove '%1' from the transfer list? + Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? + Estás seguro de que queres eliminar "%1" da lista de transferencias? - + + Are you sure you want to remove these %1 torrents from the transfer list? + Are you sure you want to remove these 5 torrents from the transfer list? + Estás seguro de que queres eliminar estes %1 torrents da lista de transferencias? + + + Remove Eliminar @@ -3004,12 +3198,12 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Descargar desde URL - + Add torrent links Engadir ligazóns torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Unha ligazón por liña (acepta ligazóns HTTP, magnet e info-hashes) @@ -3019,12 +3213,12 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Descargar - + No URL entered Non se introduciu ningún URL - + Please type at least one URL. Escriba polo menos un URL. @@ -3183,25 +3377,48 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Erro de análise: o ficheiro de filtros non é un ficheiro Peer Guardian P2B correcto. + + FilterPatternFormatMenu + + + Pattern Format + Formato do patrón + + + + Plain text + Texto simple + + + + Wildcards + Comodíns + + + + Regular expression + Expresión regular + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Descargando torrent... Fonte: "% 1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present O torrent xa existe - + + Trackers cannot be merged because it is a private torrent. + Non se poden combinar os trackers porque é un torrent privado. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? O torrent «%1» xa está na lista de transferencias. Quere combinar os localizadores da nova fonte? @@ -3209,38 +3426,38 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d 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 - + Database corrupted: no data section found. Base de datos corrompida: non se atopou a sección dos datos. @@ -3248,17 +3465,17 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 O tamaño da petición http excede o límite, péchase o socket. Límite: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Método de solicitude Http incorrecto, pechando o socket. IP: %1. Método: "%2" - + Bad Http request, closing socket. IP: %1 Mala petición Http, péchase o socket. IP: %1 @@ -3299,23 +3516,57 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d IconWidget - + Browse... Explorar... - + Reset Restabelecer - + Select icon + Seleccione a icona + + + + Supported image files + Ficheiros de imaxe compatibles + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + A xestión de enerxía atopou a interface D-Bus adecuada. Interface: %1 + + + + Power management error. Did not find a suitable D-Bus interface. - - Supported image files + + + + Power management error. Action: %1. Error: %2 + Erro de xestión de enerxía. Acción: %1. Erro: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Erro inesperado na xestión de enerxía. Estado: %1. Erro: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3339,24 +3590,24 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + Se liches o aviso legal, podes usar a opción de liña de comandos `--confirm-legal-notice` para suprimir esta mensaxe. Press 'Enter' key to continue... - + Preme a tecla "Intro" para continuar... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 foi bloqueado. Razón: %2. - + %1 was banned 0.0.0.0 was banned %1 foi expulsado @@ -3365,62 +3616,62 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 é un parámetro descoñecido para a liña de ordes. - - + + %1 must be the single command line parameter. %1 debe ser o parámetro único para a liña de ordes. - + Run application with -h option to read about command line parameters. Executar o aplicativo coa opción -h para saber os parámetros da liña de ordes. - + Bad command line Liña de ordes incorrecta - + Bad command line: Liña de ordes incorrecta: - + An unrecoverable error occurred. - + Produciuse un erro irrecuperable. + - qBittorrent has encountered an unrecoverable error. - + qBittorrent atopou un erro irrecuperable. - + You cannot use %1: qBittorrent is already running. - + Non pode usar %1: qBittorrent xa está en execución. - + Another qBittorrent instance is already running. - + Xa se está a executar outra instancia de qBittorrent. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + Atopouse unha instancia de qBittorrent inesperada. Saíndo desta instancia. ID do proceso actual: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + Erro ao tentar converter en servizo. Razón: "%1". Código de erro: %2. @@ -3431,609 +3682,680 @@ Compatíbel cos formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (os formatos da d &Editar - + &Tools Ferramen&tas - + &File &Ficheiro - + &Help &Axuda - + On Downloads &Done Ao rematar as &descargas - + &View &Ver - + &Options... &Opcións... - - &Resume - Continua&r - - - + &Remove - + Elimina&r - + Torrent &Creator &Creador de torrents - - + + Alternative Speed Limits Límites alternativos de velocidade - + &Top Toolbar Barra &superior - + Display Top Toolbar Mostrar a barra superior - + Status &Bar &Barra de estado - + Filters Sidebar - + Barra lateral de filtros - + 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 &Buscador - + L&ock qBittorrent Bl&oquear o qBittorrent - + Do&nate! D&oar! - + + Sh&utdown System + A&pagar o sistema + + + &Do nothing Non facer na&da - + Close Window Pechar xanela - - R&esume All - Co&ntinuar todo - - - + Manage Cookies... Xestión das cookies... - + Manage stored network cookies Xestionar as cookies de rede gardadas - + Normal Messages Mensaxes ordinarias - + Information Messages Mensaxes informativas - + Warning Messages Mensaxes de aviso - + Critical Messages Mensaxes críticas - + &Log &Rexistro - + + Sta&rt + Comeza&r + + + + Sto&p + De&ter + + + + R&esume Session + R&eanudar a sesión + + + + Pau&se Session + Poñer en pau&sa a sesión + + + Set Global Speed Limits... Estabelecer os límites globais de velocidade... - + Bottom of Queue Final da cola - + Move to the bottom of the queue Mover ao final da cola - + Top of Queue Principio da cola - + Move to the top of the queue Mover ao principio da cola - + Move Down Queue Mover abaixo na cola - + Move down in the queue Mover abaixo na cola - + Move Up Queue Mover arriba na cola - + Move up in the queue Mover arriba na cola - + &Exit qBittorrent Saír do qBittorr&ent - + &Suspend System &Suspender o sistema - + &Hibernate System &Hibernar o sistema - - S&hutdown System - Pe&char o sistema - - - + &Statistics E&stadísticas - + Check for Updates Buscar actualizacións - + Check for Program Updates Buscar actualizacións do programa - + &About &Sobre - - &Pause - &Deter - - - - P&ause All - D&eter todo - - - + &Add Torrent File... Eng&adir un ficheiro torrent... - + Open Abrir - + E&xit &Saír - + Open URL Abrir URL - + &Documentation &Documentación - + Lock Bloquear - - - + + + Show Mostrar - + Check for program updates Buscar actualizacións do programa - + 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 - + Clear the password Limpar o contrasinal - + &Set Password E&stabelecer o contrasinal - + Preferences Preferencias - + &Clear Password &Limpar o contrasinal - + Transfers Transferencias - - + + qBittorrent is minimized to tray O qBittorrent está minimizado na bandexa - - - + + + This behavior can be changed in the settings. You won't be reminded again. Pode cambiar este comportamento nos axustes. Non será avisado de novo. - + 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: - + Are you sure you want to clear the password? Confirma a eliminación do contrasinal? - + Use regular expressions Usar expresións regulares - + + + Search Engine + Motor de busca + + + + Search has failed + A busca fallou + + + + Search has finished + A busca rematou + + + Search Buscar - + Transfers (%1) Transferencias (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. O qBittorrent foi actualizado e necesita reiniciarse para que os cambios sexan efectivos. - + qBittorrent is closed to tray O qBittorrent está pechado na bandexa - + Some files are currently transferring. Neste momento estanse transferindo algúns ficheiros. - + Are you sure you want to quit qBittorrent? Confirma que desexa saír do qBittorrent? - + &No &Non - + &Yes &Si - + &Always Yes &Sempre si - + Options saved. Opcións gardadas. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSADO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Non se puido descargar o instalador de Python. Erro: %1. Por favor, instálao manualmente. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Fallou o cambio de nome do instalador de Python. Fonte: "%1". Destino: "%2". + + + + Python installation success. + Instalación de Python completada con éxito. + + + + Exit code: %1. + Código de saída: %1. + + + + Reason: installer crashed. + Razón: o instalador fallou. + + + + Python installation failed. + A instalación de Python fallou. + + + + Launching Python installer. File: "%1". + Iniciando o instalador de Python. Ficheiro: "%1". + + + + Missing Python Runtime Falta o tempo de execución do Python - + qBittorrent Update Available Hai dipoñíbel unha actualización do qBittorrent - + 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. - - + + Old Python Runtime Tempo de execución de Python antigo - + A new version is available. Hai dispoñíbel unha nova versión. - + Do you want to download %1? Desexa descargar %1? - + Open changelog... Abrir o rexistro de cambios... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? A versión do Python (%1) non está actualizada. Requerimento mínimo: %2 Desexa instalar unha versión máis recente? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. A súa versión de Python (%1) non está actualizada. Anove á última versión para que os motores de busca funcionen. Requirimento mínimo: %2. - + + Paused + Detido + + + 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 installation in progress... + Instalación de Python en progreso... + + + + Failed to open Python installer. File: "%1". + Non se puido abrir o instalador de Python. Ficheiro: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Fallou a verificación do hash MD5 para o instalador de Python. Ficheiro: "%1". Hash resultante: "%2". Hash esperado: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Fallou a verificación do hash SHA3-512 para o instalador de Python. Ficheiro: "%1". Hash resultante: "%2". Hash esperado: "%3". + + + 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 - + Filter torrents... - + Filtrar torrents... - + Filter by: - + Filtrar por: - + The password must be at least 3 characters long O contrasinal debe ter polo menos 3 caracteres. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Abrir os ficheiros torrent - + Torrent Files Ficheiros torrent @@ -4063,12 +4385,12 @@ Instálea manualmente. Dynamic DNS error: qBittorrent was blacklisted by the service, please submit a bug report at https://bugs.qbittorrent.org. - + Erro de DNS dinámico: qBittorrent foi incluído na lista negra do servizo, envíe un informe de erro en https://bugs.qbittorrent.org. Dynamic DNS error: %1 was returned by the service, please submit a bug report at https://bugs.qbittorrent.org. - + Erro de DNS dinámico: %1 foi devolto polo servizo, envíe un informe de erro en https://bugs.qbittorrent.org. @@ -4228,7 +4550,12 @@ Instálea manualmente. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Erro SSL, URL: "%1", erros: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorando erro SSL, URL: «%1», erros: «%2» @@ -5522,49 +5849,49 @@ Instálea manualmente. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Fallou a conexión, resposta non recoñecida: %1 - + Authentication failed, msg: %1 - + Fallou a autenticación, mensaxe: %1 - + <mail from> was rejected by server, msg: %1 - + <mail from> foi rexeitado polo servidor, mensaxe: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <Rcpt to> foi rexeitado polo servidor, mensaxe: %1 - + <data> was rejected by server, msg: %1 - + <data> foi rexeitado polo servidor, mensaxe: %1 - + Message was rejected by the server, error: %1 - + O servidor rexeitou a mensaxe, erro: %1 - + Both EHLO and HELO failed, msg: %1 - + Tanto EHLO como HELO fallaron, mensaxe: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Parece que o servidor SMTP non admite ningún dos modos de autenticación que admitimos [CRAM-MD5|PLAIN|LOGIN], omitindo a autenticación, sabendo que é probable que falle... Modos de autenticación do servidor: %1 - + Email Notification Error: %1 - + Erro de notificación por correo electrónico: %1 @@ -5600,299 +5927,283 @@ Instálea manualmente. BitTorrent - + RSS RSS - - Web UI - Interface web - - - + Advanced Avanzado - + Customize UI Theme... - + Personalizar o tema da IU... - + Transfer List Lista de transferencias - + Confirm when deleting torrents Confirmar a eliminación dos torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Alternar as cores das filas - + Hide zero and infinity values Ocultar os valores cero e infinito - + Always Sempre - - Paused torrents only - Só os torrents detidos - - - + Action on double-click Acción co dobre clic - + Downloading torrents: Descargando os torrents: - - - Start / Stop Torrent - Iniciar / Parar o torrent - - - - + + Open destination folder Abrir o cartafol de destino - - + + No action Sen acción - + Completed torrents: Torrents completados: - + Auto hide zero status filters - + Ocultar automaticamente filtros de estado cero - + Desktop Escritorio - + Start qBittorrent on Windows start up Iniciar qBittorrent cando se inicie Windows - + Show splash screen on start up Mostrar a pantalla de presentación ao iniciar - + Confirmation on exit when torrents are active Confirmar a saída cando haxa torrents activos - + Confirmation on auto-exit when downloads finish Confirmación de saída automática ao rematar as descargas - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + <html><head/><body><p>Para establecer qBittorrent como programa predeterminado para ficheiros .torrent e/ou ligazóns Magnet<br/>pode usar o diálogo <span style=" font-weight:600;">Programas predeterminados</span> do <span style=" font-weight:600;">Panel de control</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Disposición do contido torrent: - + Original Orixinal - + Create subfolder Crear subcartafol - + Don't create subfolder Non crear subcartafol - + The torrent will be added to the top of the download queue - + O torrent será engadido á parte superior da cola de descargas - + Add to top of queue The torrent will be added to the top of the download queue - + Engadir á parte superior da cola - + When duplicate torrent is being added - + Cando se engade torrent duplicado - + Merge trackers to existing torrent - + Combina rastrexadores co torrent existente - + Keep unselected files in ".unwanted" folder - + Manteña os ficheiros non seleccionados no cartafol ".unwanted". - + Add... Engadir... - + Options.. Opcións... - + Remove Eliminar - + Email notification &upon download completion Enviar unha notificación por &correo-e ao rematar a descarga - + + Send test email + Enviar correo electrónico de proba + + + + Run on torrent added: + Executar no torrent engadido: + + + + Run on torrent finished: + Execucutar no torrent rematado: + + + Peer connection protocol: Protocolo de conexión de pares: - + Any Calquera - + I2P (experimental) - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - + Modo mixto - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Se está marcado, as buscas de nomes de host realízanse a través do proxy - + Perform hostname lookup via proxy - + Realizar a busca do nome de host a través do proxy - + Use proxy for BitTorrent purposes - + Use proxy para propósitos de BitTorrent - + RSS feeds will use proxy - + As fontes RSS usarán un proxy - + Use proxy for RSS purposes - + Use proxy para propósitos RSS - + Search engine, software updates or anything else will use proxy - + O buscador, as actualizacións de software ou calquera outra cousa usarán proxy - + Use proxy for general purposes - + Use proxy para fins xerais - + IP Fi&ltering Fi&ltrado de IPs - + Schedule &the use of alternative rate limits Programar o uso de lími&tes alternativos de velocidade - + From: From start time De: - + To: To end time A: - + Find peers on the DHT network Buscar pares na rede DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5901,145 +6212,190 @@ Requirir cifrado: conectarse só cos pares con protocolo de cifrado. Desactivar cifrado: conectarse só cos pares sen protocolo de cifrado. - + Allow encryption Permitir cifrado - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Máis información</a>) - + Maximum active checking torrents: - + Número máximo de torrents en comprobación activa: - + &Torrent Queueing &Cola de torrents - + When total seeding time reaches - + Cando o tempo total de compartición alcance - + When inactive seeding time reaches - + Cando o tempo de compartición inactiva alcance - - A&utomatically add these trackers to new downloads: - Engadir &automaticamente estes localizadores ás novas descargas: - - - + RSS Reader Lector RSS - + Enable fetching RSS feeds Activar a busca de fontes RSS - + Feeds refresh interval: Intervalo de actualización de fontes: - + Same host request delay: - + Retraso na solicitude ao mesmo anfitrión: - + Maximum number of articles per feed: Número máximo de artigos por fonte: - - - + + + min minutes min. - + Seeding Limits Límites da sementeira - - Pause torrent - Deter o torrent - - - + Remove torrent Retirar o torrent - + Remove torrent and its files Eliminar o torrent e os ficheiros - + Enable super seeding for torrent Activar a supersementeira para o torrent - + When ratio reaches Cando a taxa alcance - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Deter torrent + + + + A&utomatically append these trackers to new downloads: + Engade a&utomaticamente estes rastrexadores ás novas descargas: + + + + Automatically append trackers from URL to new downloads: + Engadir automaticamente os rastreadores desde a URL ás novas descargas: + + + + URL: + URL: + + + + Fetched trackers + Rastrexadores obtidos + + + + Search UI + Interfaz de busca + + + + Store opened tabs + Gardar as pestanas abertas + + + + Also store search results + Tamén gardar os resultados da busca + + + + History length + Lonxitude do historial + + + RSS Torrent Auto Downloader Xestor de descargas automático de torrents por RSS - + Enable auto downloading of RSS torrents Activar a descarga automática dos torrents do RSS - + Edit auto downloading rules... Editar as regras da descarga automática... - + RSS Smart Episode Filter Filtro intelixente de episodios RSS - + Download REPACK/PROPER episodes Descargar episodios con novas versións - + Filters: Filtros: - + Web User Interface (Remote control) Interface de usuario web (control remoto) - + IP address: Enderezo IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6049,42 +6405,37 @@ Especificar un enderezo IPv4 ou IPv6. Pode especificar «0.0.0.0» IPv6 ou «*» para ambos os IPv4 e IPv6. - + Ban client after consecutive failures: Prohibir clientes despois de fallos sucesivos: - + Never Nunca - + ban for: prohibir durante: - + Session timeout: Tempo límite da sesión: - + Disabled Desactivado - - Enable cookie Secure flag (requires HTTPS) - Activar o indicador de seguranza para cookies (require HTTPS) - - - + Server domains: Dominios do servidor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6097,442 +6448,483 @@ deberia poñer nomes de dominios usados polo servidor WebUI. Usar «;» para dividir entradas múltiples. Pode usar o comodín «*». - + &Use HTTPS instead of HTTP &Usar HTTPS no canto de HTTP - + Bypass authentication for clients on localhost Omitir autenticación para clientes no servidor local - + Bypass authentication for clients in whitelisted IP subnets Omitir a autenticación para clientes nas subredes con IP incluídas na lista branca - + IP subnet whitelist... Lista branca de subredes con IP... - - Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + + Use alternative WebUI + Use unha WebUI alternativa - + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. + Especifica as IPs do proxy inverso (ou subredes, por exemplo, 0.0.0.0/24) para usar a dirección do cliente reencamiñada (cabeceira X-Forwarded-For). Usa ';' para separar varias entradas. + + + Upda&te my dynamic domain name Actualizar o no&me do dominio dinámico - + Minimize qBittorrent to notification area Minimizar o qBittorrent á area de notificacións - + + Search + Buscar + + + + WebUI + WebUI + + + Interface Interface - + Language: Idioma: - + + Style: + Estilo: + + + + Color scheme: + Esquema de cores: + + + + Stopped torrents only + Só torrents detidos + + + + + Start / stop torrent + Iniciar/deter o torrent + + + + + Open torrent options dialog + Abrir o diálogo de opcións de torrent + + + Tray icon style: Estilo da icona da bandexa: - - + + Normal Normal - + File association Asociación de ficheiros - + Use qBittorrent for .torrent files Usar o qBittorrent para ficheiros .torrent - + Use qBittorrent for magnet links Usar o qBittorrent para ligazóns magnet - + Check for program updates Buscar actualizacións do programa - + Power Management Xestión de enerxía - + + &Log Files + &Ficheiros de rexistro + + + Save path: Ruta onde gardar: - + Backup the log file after: Facer copia do ficheiro do rexistro despois de: - + Delete backup logs older than: Eliminar rexistros das copias de seguranza con máis de: - + + Show external IP in status bar + Mostra a IP externa na barra de estado + + + When adding a torrent Cando engada un torrent - + Bring torrent dialog to the front Traer ao primeiro plano o diálogo torrent - + + The torrent will be added to download list in a stopped state + O torrent engadirase á lista de descargas no estado detido + + + Also delete .torrent files whose addition was cancelled Eliminar tamén os ficheiros .torrent cando se cancele a adición - + Also when addition is cancelled Tamén cando se cancele a adición - + Warning! Data loss possible! Aviso! É posíbel que se perdan datos. - + Saving Management Xestión de gardar no disco - + Default Torrent Management Mode: Modo de xestión de torrents predeterminado: - + Manual Manual - + Automatic Automático - + When Torrent Category changed: Cando a categoría do torrent cambiou: - + Relocate torrent Mover o torrent - + Switch torrent to Manual Mode Cambiar o torrent a modo manual - - + + Relocate affected torrents Mover os torrents afectados - - + + Switch affected torrents to Manual Mode Cambiar os torrents afectados ao modo manual - + Use Subcategories Usar subcategorías - + Default Save Path: Ruta de gardado predeterminada: - + Copy .torrent files to: Copiar os ficheiros torrent a: - + Show &qBittorrent in notification area Mostrar o &qBittorrent na área de notificacións - - &Log file - &Ficheiro do rexistro - - - + Display &torrent content and some options Mostrar o contido do &torrent e algunhas opcións - + De&lete .torrent files afterwards E&liminar os ficheiros .torrent despois - + Copy .torrent files for finished downloads to: Copiar os ficheiros torrent das descargas rematadas a: - + Pre-allocate disk space for all files Pre-asignar espazo no disco a todos os ficheiros - + Use custom UI Theme Usar tema personalizado para a interface - + UI Theme file: Ficheiro co tema da interface: - + Changing Interface settings requires application restart Cambiar os axustes da interface require reiniciar a aplicación - + Shows a confirmation dialog upon torrent deletion Mostra unha pregunta de confirmación para eliminar un torrent - - + + Preview file, otherwise open destination folder Previsualizar ficheiro, do contrario abrir o cartafol de destino - - - Show torrent options - Mostrar as opcións de torrent - - - + Shows a confirmation dialog when exiting with active torrents Mostra unha pregunta de confirmación para saír se hai torrents activos - + When minimizing, the main window is closed and must be reopened from the systray icon Ao minimizar, a xanela principal péchase e deberá abrirse de novo desde a icona da bandexa do sistema - + The systray icon will still be visible when closing the main window A icona da bandexa do sistema será visíbel incluso coa xanela principal pechada - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Pechar o qBittorrent á área de notificacións - + Monochrome (for dark theme) Monocromo (para tema escuro) - + Monochrome (for light theme) Monocromo (para tema claro) - + Inhibit system sleep when torrents are downloading Inhibir a suspensión do sistema cando se está descargando algún torrent - + Inhibit system sleep when torrents are seeding Inhibir a suspensión do sistema cando haxa torrents sementando - + Creates an additional log file after the log file reaches the specified file size Crea un ficheiro de rexistro adicional cando o o anterior alcanza o tamaño especificado - + days Delete backup logs older than 10 days días - + months Delete backup logs older than 10 months meses - + years Delete backup logs older than 10 years anos - + Log performance warnings - + Rexistrar avisos de rendemento - - The torrent will be added to download list in a paused state - O torrent engadirase á lista e descarga en estado detido - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Non iniciar a descarga automaticamente - + Whether the .torrent file should be deleted after adding it Indica se se debe eliminar o ficheiro .torrent despois de engadilo - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Asignar os tamaños completos dos ficheiros no disco antes de iniciar as descargas para minimizar así a fragmentación. Só útil para HDD. - + Append .!qB extension to incomplete files Anexar a extensión !qB aos nomes dos ficheiros incompletos - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Descargado un torrent, ofrecer engadir torrents de calquera ficheiro .torrent atopado dentro del. - + Enable recursive download dialog Activar o diálogo de descarga recursiva - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automático: varias propiedades do torrent (p.e: a ruta de gardado) serán decididas pola categoría asociada. Manual: varias propiedades do torrent (p.e: a ruta de gardado) deben asignarse manualmente. - + When Default Save/Incomplete Path changed: - + Cando se cambie a Ruta de Gardado/ Incompleta por Defecto: - + When Category Save Path changed: Cando a ruta de gardado da categoría cambiou: - + Use Category paths in Manual Mode Usar as rutas de Categoría no modo manual - + Resolve relative Save Path against appropriate Category path instead of Default one Determinar a Ruta Onde Gardar relativa segundo a ruta da Categoría apropiada no canto da predeterminada. - + Use icons from system theme - + Usa iconas do tema do sistema - + Window state on start up: - + Estado da xanela ao inicio: - + qBittorrent window state on start up - + Estado da xanela de qBittorrent ao iniciar - + Torrent stop condition: - + Condición de parada do torrent: - - + + None - + Ningún - - + + Metadata received - + Metadatos recibidos - - + + Files checked - + Ficheiros comprobados - + Ask for merging trackers when torrent is being added manually - + Solicitar a combinación de rastrexadores cando se engade o torrent manualmente - + Use another path for incomplete torrents: Usar outra ruta para os torrents incompletos: - + Automatically add torrents from: Engadir automaticamente os torrents desde: - + Excluded file names - + Nomes de ficheiros excluídos - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6546,769 +6938,826 @@ Examples readme.txt: filter exact file name. ?.txt: filter 'a.txt', 'b.txt' but not 'aa.txt'. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not 'readme10.txt'. - + Lista negra de nomes de ficheiros filtrados para que se descarguen de torrent(s). +Os ficheiros que coincidan con calquera dos filtros desta lista terán a súa prioridade automaticamente configurada como "Non descargar". + +Use novas liñas para separar varias entradas. Pode usar comodíns como se indica a continuación. +*: coincide con cero ou máis de calquera carácter. +?: coincide con calquera carácter. +[...]: os conxuntos de caracteres pódense representar entre corchetes. + +Exemplos +*.exe: extensión de ficheiro de filtro ".exe". +readme.txt: filtra o nome do ficheiro exacto. +?.txt: filtra 'a.txt', 'b.txt' pero non 'aa.txt'. +readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt' pero non 'readme10.txt'. - + Receiver Receptor - + To: To receiver A: - + SMTP server: Servidor SMTP: - + Sender Remitente - + From: From sender De: - + This server requires a secure connection (SSL) Este servidor require unha conexión segura (SSL) - - + + Authentication Autenticación - - - - + + + + Username: Nome do usuario: - - - - + + + + Password: Contrasinal: - + Run external program - + Executar programa externo - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Mostrar a xanela da consola - + TCP and μTP TCP e μTP - + Listening Port Porto de escoita - + Port used for incoming connections: Porto usado para as conexións entrantes: - + Set to 0 to let your system pick an unused port Estabelézao en 0 para que o seu sistema escolla un porto non utilizado - + Random Aleatorio - + Use UPnP / NAT-PMP port forwarding from my router Usar un porto UPnP / NAT-PMP para reencamiñar desde o router - + Connections Limits Límites da conexión - + Maximum number of connections per torrent: Número máximo de conexións por torrent: - + Global maximum number of connections: Número máximo global de conexións: - + Maximum number of upload slots per torrent: Número máximo de slots de envío por torrent: - + Global maximum number of upload slots: Número máximo global de slots de envío: - + Proxy Server Servidor proxy - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Servidor: - - - + + + Port: Porto: - + 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 - + A&uthentication A&utenticación - - Info: The password is saved unencrypted - Información: o contrasinal gárdase sen cifrar - - - + Filter path (.dat, .p2p, .p2b): Ruta do filtro (.dat, .p2p, .p2b): - + Reload the filter Recargar o filtro - + Manually banned IP addresses... Enderezos IP bloqueados manualmente... - + Apply to trackers Aplicar aos localizadores - + Global Rate Limits Límites globais de velocidade - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Enviar: - - + + Download: Descargar: - + Alternative Rate Limits Límites alternativos de velocidade - + Start time Hora de inicio - + End time Hora de remate - + When: Cando: - + Every day Todos os días - + Weekdays Entresemana - + Weekends Fins de semana - + Rate Limits Settings Axustes dos límites de velocidade - + Apply rate limit to peers on LAN Aplicar o límite de velocidade aos pares da LAN - + Apply rate limit to transport overhead Aplicar os límites de velocidade ás sobrecargas do transporte - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Se o "modo mixto" está activado, os torrents I2P tamén poden obter pares doutras fontes que non sexan o rastrexador e conectarse a IPs habituais, sen proporcionar ningún anonimato. Isto pode ser útil se o usuario non está interesado na anonimización de I2P, pero aínda así quere poder conectarse a pares I2P.</p></body></html> + + + Apply rate limit to µTP protocol Aplicar o límite de velocidade ao protocolo uTP - + Privacy Confidencialidade - + Enable DHT (decentralized network) to find more peers Activar o DHT (rede descentralizada) para encontrar máis pares - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Clientes de bittorrent compatíbeis co intercambio de pares (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Activar a busca de pares locais (LPD) para encontrar máis pares - + Encryption mode: Modo cifrado: - + Require encryption Precisa cifrado - + Disable encryption Desactivar o cifrado - + 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 - + Maximum active downloads: Descargas activas máximas: - + Maximum active uploads: Envíos activos máximos: - + Maximum active torrents: Torrents activos máximos: - + Do not count slow torrents in these limits Non ter en conta os torrents lentos nestes límites - + Upload rate threshold: Límite da velocidade de envío: - + Download rate threshold: Límite da velocidade de descarga: - - - - + + + + sec seconds s - + Torrent inactivity timer: Temporizador de inactividade do torrent: - + then despois - + Use UPnP / NAT-PMP to forward the port from my router Usar un porto UPnP / NAT-PMP para reencamiñar desde o router - + Certificate: Certificado: - + Key: Chave: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Información sobre certificados</a> - + Change current password Cambiar o contrasinal actual - - Use alternative Web UI - Usar a interface web alternativa - - - + Files location: Localización dos ficheiros: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Lista de WebUI alternativos </a> + + + Security Seguranza - + Enable clickjacking protection Activar a protección contra clics enganosos - + Enable Cross-Site Request Forgery (CSRF) protection Activar a protección contra falsificacións de peticións entre sitios web (CSRF). - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Activar a marca de cookies segura (require HTTPS ou conexión localhost) + + + Enable Host header validation Activar a validación da cabeceira do servidor - + Add custom HTTP headers Engadir cabeceiras HTTP personalizadas - + Header: value pairs, one per line Cabeceira: pares de valores, un por liña - + Enable reverse proxy support Activar a compatibilidade co proxy inverso - + Trusted proxies list: Lista de proxys de confiaza: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Exemplos de configuración de proxy inverso</a> + + + Service: Servizo: - + Register Rexistro - + Domain name: Nome do dominio: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Activando estas opcións, pode <strong>perder definitivamente</strong> os seus ficheiros .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Se activa a segunda opción (&ldquo;Tamén cando se cancele a edición&rdquo;) o ficheiro .torrent <strong>eliminarase</strong> incluso se vostede preme &ldquo;<strong>Cancelar</strong>&rdquo; no diálogo &ldquo;Engadir torrent&rdquo; - + Select qBittorrent UI Theme file Seleccionar o tema da interface para qBittorrent - + Choose Alternative UI files location Seleccione localización alternativa dos ficheiros da interface de usuario - + Supported parameters (case sensitive): Parámetros aceptados (sensíbel ás maiúsc.) - + Minimized - + Minimizado - + Hidden - + Oculto - + Disabled due to failed to detect system tray presence - + Desactivado debido a que non se puido detectar a presenza da bandexa do sistema - + No stop condition is set. - + Non se establece ningunha condición de parada. - + Torrent will stop after metadata is received. - + O torrent deterase despois de recibir os metadatos. - + Torrent will stop after files are initially checked. - + O torrent deterase despois de que se comproben inicialmente os ficheiros. - + This will also download metadata if it wasn't there initially. - + Isto tamén descargará metadatos se non estaban alí inicialmente. - + %N: Torrent name %N: Nome do torrent - + %L: Category %L: Categoría - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Consello: escriba o parámetro entre comiñas para evitar que o texto se corte nos espazos en branco (p.e: "%N") - + + Test email + Correo electrónico de proba + + + + Attempted to send email. Check your inbox to confirm success + Tentouse enviar correo electrónico. Comprobe a súa caixa de entrada para confirmar o éxito + + + (None) (Ningún) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Un torrent considerarase lento se a descarga e o envío se manteñen por debaixo dos valores do «Temporizador de inactividade do torrent» en segundos. - + Certificate Certificado - + Select certificate Seleccionar certificado - + Private key Chave privada - + Select private key Seleccionar a chave privada - + WebUI configuration failed. Reason: %1 - + Fallou a configuración da WebUI. Motivo: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Recoméndase %1 para a mellor compatibilidade co modo escuro de Windows. + + + + System + System default Qt style + Sistema + + + + Let Qt decide the style for this system + Deixar que Qt decida o estilo para este sistema + + + + Dark + Dark color scheme + Escuro + + + + Light + Light color scheme + Claro + + + + System + System color scheme + Sistema + + + Select folder to monitor Seleccionar o cartafol a monitorizar - + Adding entry failed Produciuse un fallo engadindo a entrada - + The WebUI username must be at least 3 characters long. - + O nome de usuario da WebUI debe ter polo menos 3 caracteres. - + The WebUI password must be at least 6 characters long. - + O contrasinal da WebUI debe ter polo menos 6 caracteres. - + Location Error Erro de localización - - + + Choose export directory Seleccionar un cartafol de exportación - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Cando estas opcións están activadas, o qBittorent <strong>elimina</strong> os ficheiros .torrent despois de seren engadidos correctamente (primeira opción) ou non (segunda opción) á cola de descargas. Isto aplicarase <strong>non só</strong> aos ficheiros abertos desde o menú &ldquo;Engadir torrent&rdquo; senón tamén a aqueles abertos vía <strong>asociación co tipo de ficheiro</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Ficheiro co tema da interface do qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiquetas (separadas por coma) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (ou '-' se non está dispoñíbel) - + %J: Info hash v2 (or '-' if unavailable) %I: Info hash v2 (ou '-' se non está dispoñíbel) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) % K: ID do torrent (hash de información sha-1 para torrent v1 ou hash de información sha-256 truncado para v2 / torrent híbrido) - - - + + + Choose a save directory Seleccionar un cartafol onde gardar - + Torrents that have metadata initially will be added as stopped. - + Os torrents que teñan metadatos inicialmente engadiranse como parados. - + Choose an IP filter file Seleccionar un ficheiro cos filtros de ip - + All supported filters Todos os ficheiros compatíbeis - + The alternative WebUI files location cannot be blank. - + A localización alternativa dos ficheiros WebUI non pode estar en branco. - + 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. - + Preferences Preferencias - + Time Error Erro de hora - + The start time and the end time can't be the same. A hora de inicio e de remate teñen que ser distintas. - - + + Length Error Erro de lonxitude @@ -7316,241 +7765,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Descoñecido - + 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) - + Not interested (local) and unchoked (peer) Non interesado (local) e aceptado (par) - + Not interested (peer) and unchoked (local) Non interesado (par) e aceptado (local) - + Optimistic unchoke Aceptado optimista - + Peer snubbed Par desbotado - + Incoming connection Conexión entrante - + Peer from DHT Par de DHT - + Peer from PEX Par de PEX - + Peer from LSD Par de LSD - + Encrypted traffic Tráfico cifrado - + Encrypted handshake Handshake cifrado + + + Peer is using NAT hole punching + O par está a usar NAT hole punching + PeerListWidget - + Country/Region País/Rexión - + IP/Address - + IP/Enderezo - + Port Porto - + Flags Marcas - + Connection Conexión - + Client i.e.: Client application Cliente - + Peer ID Client i.e.: Client resolved from Peer ID - + Cliente de identificación de pares - + Progress i.e: % downloaded Progreso - + Down Speed i.e: Download speed Vel. 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 - + Files i.e. files that are being downloaded right now Ficheiros - + Column visibility Visibilidade da columna - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos - + Add peers... Engadir pares... - - + + Adding peers Engadindo pares - + Some peers cannot be added. Check the Log for details. Non foi posíbel engadir algúns pares. Mira o rexistro para obter máis información. - + Peers are added to this torrent. Os pares son engadidos a este torrent. - - + + Ban peer permanently Bloquear este par pemanentemente - + Cannot add peers to a private torrent Non é posíbel engadir pares a un torrent privado - + Cannot add peers when the torrent is checking Non é posíbel engadir pares cando o torrent está en comprobación - + Cannot add peers when the torrent is queued Non é posíbel engadir pares cando o torrent está na cola - + No peer was selected Non se seleccionou ningún par - + Are you sure you want to permanently ban the selected peers? Confirma o bloqueo permantemente dos pares seleccionados? - + Peer "%1" is manually banned O par «%1» está expulsado manualmente - + N/A N/D - + Copy IP:port Copiar IP:porto @@ -7568,7 +8022,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Lista de pares a engadir (unha IP por liña): - + Format: IPv4:port / [IPv6]:port Formato: IPv4:porto / [IPv6]:porto @@ -7609,27 +8063,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Ficheiros neste anaco: - + File in this piece: - - - - - File in these pieces: - + Ficheiro nesta parte: + File in these pieces: + Ficheiro nestas partes: + + + Wait until metadata become available to see detailed information Agarde a que estean dispoñíbeis os metadatos para ter información máis detallada - + Hold Shift key for detailed information Manter premida a tecla Maiús. para obter máis información @@ -7642,58 +8096,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Engadidos de busca - + Installed search plugins: Engadidos de busca instalados: - + Name Nome - + Version Versión - + Url Url - - + + Enabled Activado - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Aviso: asegúrese de cumprir as leis sobre dereitos de autor do seu país cando descargue torrents con calquera destes motores de busca. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Podes obter novos complementos de buscadores aquí: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalar un novo - + Check for updates Buscar actualizacións - + Close Pechar - + Uninstall Desinstalar @@ -7814,98 +8268,65 @@ Desactiváronse estes engadidos. Fonte do engadido - + Search plugin source: Fonte do engadido de busca: - + Local file Ficheiro local - + Web link Ligazón web - - PowerManagement - - - qBittorrent is active - O qBittorrent está activo - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Os seguintes ficheiros do torrent «%1» admiten a vista previa, seleccione un deles: - + Preview Previsualizar - + Name Nome - + Size Tamaño - + Progress Progreso - + Preview impossible A previsualización non é posíbel - + Sorry, we can't preview this file: "%1". Sentímolo, non é posíbel previsualizar este ficheiro: «%1». - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos @@ -7918,29 +8339,29 @@ Desactiváronse estes engadidos. Private::FileLineEdit - + Path does not exist - + O camiño non existe - + Path does not point to a directory - + O camiño non apunta a un directorio - + Path does not point to a file - + O camiño non apunta a un ficheiro - + Don't have read permission to path - + Non tes permiso de lectura para o camiño - + Don't have write permission to path - + Non tes permiso de escritura para o camiño @@ -7979,12 +8400,12 @@ Desactiváronse estes engadidos. PropertiesWidget - + Downloaded: Descargado: - + Availability: Dispoñíbel: @@ -7999,53 +8420,53 @@ Desactiváronse estes engadidos. Transferencia - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 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: @@ -8055,193 +8476,220 @@ Desactiváronse estes engadidos. Conexións: - + Information Información - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Comentario: - + Select All Seleccionar todo - + Select None Non seleccionar nada - + Share Ratio: Taxa de compartición: - + Reannounce In: Anunciar de novo en: - + Last Seen Complete: Visto completo por última vez: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Tempo activo (en meses), indica a popularidade do torrent + + + + Popularity: + Popularidade: + + + Total Size: Tamaño total: - + Pieces: Anacos: - + Created By: Creado por: - + Added On: Engadido o: - + Completed On: Completado o: - + Created On: Creado o: - + + Private: + Privado: + + + Save Path: Ruta: - + 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 nesta sesión) - - + + + N/A N/D - + + Yes + Si + + + + No + Non + + + %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 de media) - - New Web seed - Nova semente web + + Add web seed + Add HTTP source + Engade semente web - - Remove Web seed - Retirar semente web + + Add web seed: + Engade semente web: - - Copy Web seed URL - Copiar URL da semente web + + + This web seed is already in the list. + Esta semente web xa está na lista. - - Edit Web seed URL - Editar URL da semente web - - - + Filter files... Ficheiros dos filtros... - + + Add web seed... + Engadir semente web... + + + + Remove web seed + Elimina a semente web + + + + Copy web seed URL + Copiar o URL de semente web + + + + Edit web seed URL... + Editar URL de semente web... + + + Speed graphs are disabled Os gráficos de velocidade están desactivados - + You can enable it in Advanced Options Pode activalo nas opcións avanzadas - - 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: @@ -8249,33 +8697,33 @@ Desactiváronse estes engadidos. RSS::AutoDownloader - - + + Invalid data format. O formato dos datos non é válido. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Non foi posíbel gardar os datos do descargador automátido de RSS en %1. Erro: %2 - + Invalid data format O formato dos datos non é válido - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + O artigo RSS '%1' é aceptado pola regra '%2'. Tentando engadir torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Produciuse un erro ao ler as regras de descarga automática de RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Non foi posíbel cargar as regras do descargador automático de RSS. Razón: %1 @@ -8283,22 +8731,22 @@ Desactiváronse estes engadidos. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Produciuse un fallo descargando a fonte RSS en: %1. Razón: %2 - + RSS feed at '%1' updated. Added %2 new articles. Actualizouse a fonte RSS de «%1». Engadidos %2 artigos novos. - + Failed to parse RSS feed at '%1'. Reason: %2 Produciuse un fallo analizando a fonte RSS de «%1». Razón: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Descargouse correctamente a fonte RSS en «%1». Iniciando a análise. @@ -8308,12 +8756,12 @@ Desactiváronse estes engadidos. Failed to read RSS session data. %1 - + Produciuse un erro ao ler os datos da sesión RSS. %1 Failed to save RSS feed in '%1', Reason: %2 - + Produciuse un erro ao gardar a fonte RSS en '%1', Razón: %2 @@ -8334,12 +8782,12 @@ Desactiváronse estes engadidos. RSS::Private::Parser - + Invalid RSS feed. Fonte RSS incorrecta. - + %1 (line: %2, column: %3, offset: %4). %1 (liña: %2, columna: %3, compensación: %4). @@ -8347,103 +8795,144 @@ Desactiváronse estes engadidos. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Non se puido gardar a configuración da sesión RSS. Ficheiro: "%1". Erro: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - + Non se puideron gardar os datos da sesión RSS. Ficheiro: "%1". Erro: "%2" - - + + RSS feed with given URL already exists: %1. Xa existe unha fonte RSS con esa URL: %1 - + Feed doesn't exist: %1. - + O feed non existe: %1. - + Cannot move root folder. Non é posíbel mover o cartafol raíz. - - + + Item doesn't exist: %1. O elemento non existe: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Non é posíbel eliminar o cartafol raíz. - + Failed to read RSS session data. %1 - - - - - Failed to parse RSS session data. File: "%1". Error: "%2" - + Produciuse un erro ao ler os datos da sesión RSS. %1 + Failed to parse RSS session data. File: "%1". Error: "%2" + Produciuse un erro ao analizar os datos da sesión RSS. Ficheiro: "%1". Erro: "%2" + + + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Produciuse un erro ao cargar os datos da sesión RSS. Ficheiro: "%1". Erro: "Formato de datos non válido". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - - - - - Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Non se puido cargar o feed RSS. Feed: "%1". Motivo: o URL é necesario. + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. + Non se puido cargar o feed RSS. Feed: "%1". Motivo: o UID non é válido. + + + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Atopouse un feed RSS duplicado. UID: "%1". Erro: a configuración parece estar danada. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Non se puido cargar o elemento RSS. Elemento: "%1". Formato de datos non válido. - + Corrupted RSS list, not loading it. - + Lista RSS danada, sen cargala. - + Incorrect RSS Item path: %1. Ruta incorrecta ao elemento do RSS: %1 - + RSS item with given path already exists: %1. Xa existe un elemento RSS con esa ruta: %1 - + Parent folder doesn't exist: %1. O cartafol pai non existe: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + O feed non existe: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Intervalo de actualización: + + + + sec + s + + + + Default + Predeterminado + + RSSWidget @@ -8463,8 +8952,8 @@ Desactiváronse estes engadidos. - - + + Mark items read Marcar como lidos @@ -8489,132 +8978,115 @@ Desactiváronse estes engadidos. Torrents: (dobre clic para descargar) - - + + Delete Eliminar - + Rename... Cambiar o nome... - + Rename Cambiar o nome - - + + Update Actualizar - + New subscription... Subscrición nova... - - + + Update all feeds Actualizar todas as fontes - + Download torrent Descargar o torrent - + Open news URL Abrir a URL das novas - + Copy feed URL Copiar a URL da fonte - + New folder... Cartafol novo... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Seleccione un nome de cartafol - + Folder name: Nome do cartafol: - + New folder Cartafol novo - - - Please type a RSS feed URL - Escriba unha URL de fonte RSS - - - - - Feed URL: - URL da fonte: - - - + Deletion confirmation Confirmación da 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: - + Rename failed O cambio de nome fallou - + Date: Data: - + Feed: - + Feed: - + Author: Autor: @@ -8622,38 +9094,38 @@ Desactiváronse estes engadidos. SearchController - + Python must be installed to use the Search Engine. Debe instalar Python para usar o motor de buscas. - + Unable to create more than %1 concurrent searches. Non é posíbel crear máis de %1 buscas simultáneas. - - + + Offset is out of range A compensación está fóra dos límites - + All plugins are already up to date. Xa están actualizados todos os engadidos. - + Updating %1 plugins Actualizando %1 engadidos - + Updating plugin %1 Actualizando o engadido %1 - + Failed to check for plugin updates: %1 Produciuse un fallo na busca de actualizacións dos engadidos: %1 @@ -8678,32 +9150,32 @@ Desactiváronse estes engadidos. Set minimum and maximum allowed number of seeders - + Establecer o número mínimo e máximo permitido de sementadoras Minimum number of seeds - + Número mínimo de sementes Maximum number of seeds - + Número máximo de sementes Set minimum and maximum allowed size of a torrent - + Establece o tamaño mínimo e máximo permitido dun torrent Minimum torrent size - + Tamaño mínimo do torrent Maximum torrent size - + Tamaño máximo do torrent @@ -8728,132 +9200,142 @@ Desactiváronse estes engadidos. Tamaño: - + 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 - - - + Filter search results... Filtrar resultados da busca... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultados (mostrando <i>%1</i> de <i>%2</i>): - + Torrent names only Só nos nomes dos torrents - + Everywhere En todo - + Use regular expressions Usar expresións regulares - + Open download window Abrir a xanela de descargas - + Download Descargar - + Open description page Abrir a páxina da descrición - + Copy Copiar - + Name Nome - + Download link Descargar ligazón - + Description page URL URL da descrición - + Searching... Buscando... - + Search has finished A busca rematou - + Search aborted Busca cancelada - + An error occurred during search... Produciuse un erro durante a busca... - + Search returned no results A busca non obtivo resultados - + + Engine + Motor + + + + Engine URL + URL do motor + + + + Published On + Publicado o + + + Column visibility Visibilidade da columna - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos @@ -8861,104 +9343,104 @@ Desactiváronse estes engadidos. SearchPluginManager - + Unknown search engine plugin file format. Formato descoñecido do ficheiro co engadido do motor de busca. - + Plugin already at version %1, which is greater than %2 O engadido xa está na versión %1, a cal é máis recente que %2 - + A more recent version of this plugin is already installed. Xa está instalada unha versión máis recente do engadido. - + Plugin %1 is not supported. Engadido: %1 non é compatíbel. - - + + Plugin is not supported. O engadido non é compatíbel. - + Plugin %1 has been successfully updated. O engadido %1 actualizouse correctamente. - + 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 - + 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 - + Plugin "%1" is outdated, updating to version %2 O engadido «%1» non está actualizado, actualizando á versión %2 - + Incorrect update info received for %1 out of %2 plugins. A información recibida sobre a actualización é incorrecta para %1 dos %2 engadidos. - + Search plugin '%1' contains invalid version string ('%2') O engadido de busca «%1» contén unha cadea incorrecta da versión («%2») @@ -8968,114 +9450,145 @@ Desactiváronse estes engadidos. - - - - Search Buscar - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Non hai engadidos de busca instalados. Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela para instalar algún. - + Search plugins... Engadidos de busca - + A phrase to search for. Unha frase que buscar. - + Spaces in a search term may be protected by double quotes. Os espazos nos termos de busca poden protexerse con comiñas. - + Example: Search phrase example Exemplo: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: buscar <b>foo bar</b> - + All plugins Todos os engadidos - + Only enabled Activados - + + + Invalid data format. + O formato dos datos non é válido. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: buscar <b>foo</b> e <b>bar</b> - + + Refresh + Actualizar + + + Close tab Pechar lapela - + Close all tabs Pechar todas as lapelas - + Select... Seleccionar... - - - + + Search Engine Buscador - + + 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 - + + Stop Parar + + + SearchWidget::DataStorage - - Search has finished - A busca rematou + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Produciuse un erro ao cargar os datos de estado gardados da IU de busca. Ficheiro: "% 1". Erro: "% 2" - - Search has failed - A busca fallou + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Produciuse un erro ao cargar os resultados da busca gardados. Pestana: "% 1". Ficheiro: "% 2". Erro: "% 3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Produciuse un erro ao gardar o estado da IU de busca. Ficheiro: "% 1". Erro: "% 2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Produciuse un erro ao gardar os resultados da busca. Pestana: "% 1". Ficheiro: "% 2". Erro: "% 3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Produciuse un erro ao cargar o historial da IU de busca. Ficheiro: "% 1". Erro: "% 2" + + + + Failed to save search history. File: "%1". Error: "%2" + Produciuse un erro ao gardar o historial de busca. Ficheiro: "% 1". Erro: "% 2" @@ -9188,34 +9701,34 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa - + Upload: Enviar: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Descargar: - + Alternative speed limits Límites alternativos de velocidade @@ -9407,32 +9920,32 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa Tempo medio na cola: - + Connected peers: Pares conectados: - + All-time share ratio: Taxa de compartición total: - + All-time download: Descarga total: - + Session waste: Desbotado na sesión: - + All-time upload: Envío total: - + Total buffer size: Tamaño total do búfer: @@ -9447,12 +9960,12 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa Traballos na cola E/S: - + Write cache overload: Sobrecarga da caché de escritura: - + Read cache overload: Sobrecarga da caché de lectura: @@ -9471,51 +9984,77 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa StatusBar - + Connection status: Estado da conexión: - - + + No direct connections. This may indicate network configuration problems. Non hai conexións directas. Isto pode significar que hai problemas na configuración da rede. - - + + Free space: N/A + + + + + + External IP: N/A + IP externa: N/A + + + + DHT: %1 nodes DHT: %1 nodos - + qBittorrent needs to be restarted! É necesario reiniciar o qBittorrent - - - + + + Connection Status: Estado da conexión: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Desconectado. Isto significa, normalmente, que o programa fallou ao escoitar o porto seleccionado para conexións entrantes. - + Online Conectado - + + Free space: + + + + + External IPs: %1, %2 + IPs externas: % 1, % 2 + + + + External IP: %1%2 + IP externa: % 1% 2 + + + Click to switch to alternative speed limits Prema para cambiar aos límites alternativos de velocidade - + Click to switch to regular speed limits Prema para cambiar aos límites normais de velocidade @@ -9545,13 +10084,13 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa - Resumed (0) - Continuado (0) + Running (0) + En execución (0) - Paused (0) - Detidos (0) + Stopped (0) + Detido (0) @@ -9586,7 +10125,7 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa Moving (0) - + Movendo (0) @@ -9613,35 +10152,35 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa Completed (%1) Completados (%1) + + + Running (%1) + En execución (%1) + - Paused (%1) - Detidos (%1) + Stopped (%1) + Detido (%1) + + + + Start torrents + Iniciar torrents + + + + Stop torrents + Deter torrents Moving (%1) - - - - - Resume torrents - Continuar os torrents - - - - Pause torrents - Deter os torrents + Movendo (%1) Remove torrents - - - - - Resumed (%1) - Retomados (%1) + Eliminar torrents @@ -9714,31 +10253,31 @@ Prema no botón «Engadidos de busca...» na parte inferior dereita da xanela pa Remove unused tags Eliminar as etiquetas non usadas + + + Remove torrents + Eliminar torrents + - Resume torrents - Continuar os torrents + Start torrents + Iniciar torrents - Pause torrents - Deter os torrents - - - - Remove torrents - - - - - New Tag - Etiqueta nova + Stop torrents + Deter torrents Tag: Etiqueta: + + + Add tag + Engadir etiqueta + Invalid tag name @@ -9885,32 +10424,32 @@ Seleccione un nome diferente e ténteo de novo. TorrentContentModel - + Name Nome - + Progress Progreso - + Download Priority Prioridade da descarga - + Remaining Restante - + Availability Dispoñíbilidade - + Total Size Tamaño total @@ -9955,98 +10494,98 @@ Seleccione un nome diferente e ténteo de novo. TorrentContentWidget - + Rename error Erro ao cambiar o nome - + Renaming Cambiar o nome - + New name: Nome novo: - + Column visibility Visibilidade das columnas - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos - + Open Abrir - + Open containing folder - + Abrir cartafol contedor - + Rename... Cambiar o nome... - + Priority Prioridade - - + + Do not download Non descargar - + Normal Normal - + High Alta - + Maximum Máxima - + By shown file order Por orde de ficheiro mostrado - + Normal priority Prioridade normal - + High priority Prioridade alta - + Maximum priority Prioridade máxima - + Priority by shown file order Prioridade pola orde dos ficheiros mostrados @@ -10054,19 +10593,19 @@ Seleccione un nome diferente e ténteo de novo. TorrentCreatorController - + Too many active tasks - + Demasiadas tarefas activas - + Torrent creation is still unfinished. - + A creación do torrente aínda está sen rematar. - + Torrent creation failed. - + Produciuse un erro ao crear o torrent. @@ -10093,13 +10632,13 @@ Seleccione un nome diferente e ténteo de novo. - + Select file Seleccionar ficheiro - + Select folder Seleccionar cartafol @@ -10174,87 +10713,83 @@ Seleccione un nome diferente e ténteo de novo. Campos - + You can separate tracker tiers / groups with an empty line. Pode separar os grupos / tiers de localizadores cunha liña en branco. - + Web seed URLs: URLs da semente web: - + Tracker URLs: URLs do localizador: - + Comments: Comentarios: - + Source: Fonte: - + Progress: Progreso: - + Create Torrent Crear torrent - - + + Torrent creation failed Produciuse un fallo na creación do torrent - + Reason: Path to file/folder is not readable. Razón: non é posíbel ler a ruta ao cartafol/ficheiro. - + Select where to save the new torrent Seleccionar onde gardar o torrent novo - + Torrent Files (*.torrent) Ficheiros torrent (*.torrent) - Reason: %1 - Razón: %1 - - - + Add torrent to transfer list failed. - + Produciuse un erro en engadir torrent á lista de transferencias. - + Reason: "%1" - + Motivo: "%1" - + Add torrent failed - + Engadir torrent fallou - + Torrent creator Creador de torrents - + Torrent created: Creouse o torrent: @@ -10262,32 +10797,32 @@ Seleccione un nome diferente e ténteo de novo. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Produciuse un erro ao cargar a configuración dos cartafoles vixiados. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Produciuse un erro ao analizar a configuración dos cartafois vixiados de %1. Erro: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Produciuse un erro ao cargar a configuración dos cartafois vixiados desde %1. Erro: "Formato de datos non válido". - + Couldn't store Watched Folders configuration to %1. Error: %2 Non foi posíbel gardar os axustes dos cartafoles observados en %1. Erro: %2 - + Watched folder Path cannot be empty. A ruta ao cartafol observado non pode estar baleira. - + Watched folder Path cannot be relative. A ruta do cartafol observado non pode ser relativa. @@ -10295,44 +10830,31 @@ Seleccione un nome diferente e ténteo de novo. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + URI Magnet non válida. URI: %1. Motivo: %2 - + Magnet file too big. File: %1 - + O ficheiro magnet é demasiado grande. Ficheiro: %1 - + Failed to open magnet file: %1 Produciuse un fallo abrindo o ficheiro magnet: %1 - + Rejecting failed torrent file: %1 Rexeitando o ficheiro torrent con fallos: %1 - + Watching folder: "%1" Cartafol observado: «%1» - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadatos incorrectos - - TorrentOptionsDialog @@ -10361,175 +10883,163 @@ Seleccione un nome diferente e ténteo de novo. Usar outra ruta para os torrents incompletos - + Category: Categoría: - - Torrent speed limits - Límites de velocidade do torrent + + Torrent Share Limits + Límites compartidos de torrent - + Download: Descargar: - - + + - - + + Torrent Speed Limits + Límites de velocidade do torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Estes non superarán os límites globais - + Upload: Enviar: - - Torrent share limits - Límites de compartición do torrent - - - - Use global share limit - Usar o límite de compartición global - - - - Set no share limit - Non estabelecer límite - - - - Set share limit to - Estabelecer o límite de compartición en - - - - ratio - taxa - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Desactivar o DHT neste torrent - + Download in sequential order Descargar en orde secuencial - + Disable PeX for this torrent Desactivar o PeX neste torrent - + Download first and last pieces first Descargar primeiro os anacos inicial e final - + Disable LSD for this torrent Desactivar o LSD neste torrent - + Currently used categories Categorías usadas actualmente - - + + Choose save path Seleccionar a ruta onde gardar - + Not applicable to private torrents Non aplicábel a torrents privados - - - No share limit method selected - Non se seleccionou ningún método de límite de compartición - - - - Please select a limit method first - Seleccione primeiro un método para os límites - TorrentShareLimitsWidget - - - + + + + Default - Predeterminado + Predeterminado + + + + + + Unlimited + Ilimitado - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Establecer en + + + + Seeding time: + Tempo de sementeira: + + + + + + + + min minutes - min. + min. - + Inactive seeding time: - + Tempo de sementeira inactivo: - + + Action when the limit is reached: + Acción cando se alcance o límite: + + + + Stop torrent + Deter torrent + + + + Remove torrent + Retirar o torrent + + + + Remove torrent and its content + Eliminar o torrent e o seu contido + + + + Enable super seeding for torrent + Activar a supersementeira para o torrent + + + Ratio: - + Ratio: @@ -10537,35 +11047,35 @@ Seleccione un nome diferente e ténteo de novo. Torrent Tags - - - - - New Tag - Etiqueta nova + Etiquetas de torrent + Add tag + Engadir etiqueta + + + Tag: Etiqueta: - + Invalid tag name O nome da etiqueta non é correcto - + Tag name '%1' is invalid. - + O nome da etiqueta '%1' non é válido. - + Tag exists A etiqueta xa existe - + Tag name already exists. O nome da etiqueta xa existe. @@ -10573,115 +11083,130 @@ Seleccione un nome diferente e ténteo de novo. TorrentsController - + Error: '%1' is not a valid torrent file. Erro: «%1» non é un ficheiro torrent correcto. - + Priority must be an integer A prioridade debe ser un enteiro - + Priority is not valid A prioridade non é correcta - + Torrent's metadata has not yet downloaded Aínda non se descargaron os metadatos do torrent - + File IDs must be integers Os identificadores de ficheiro deben ser enteiros - + File ID is not valid O identificador de ficheiro non é correcto - - - - + + + + Torrent queueing must be enabled A cola de torrents debe estar activada - - + + Save path cannot be empty A ruta de gardado non pode estar baleira - - + + Cannot create target directory Non é posíbel crear o cartafol de destino - - + + Category cannot be empty A categoría non pode estar baleira - + Unable to create category Non é posíbel crear unha categoría - + Unable to edit category Non é posíbel editar a categoría - + Unable to export torrent file. Error: %1 - + Non se puido exportar o ficheiro torrent. Erro: %1 - + Cannot make save path Non é posíbel facer unha ruta de gardado - + + "%1" is not a valid URL + "% 1" non é un URL válido + + + + URL scheme must be one of [%1] + O esquema de URL debe ser un dos seguintes: [%1] + + + 'sort' parameter is invalid O parámetro «sort» é incorrecto - + + "%1" is not an existing URL + "% 1" non é un URL existente + + + "%1" is not a valid file index. «%1» non é un índice de ficheiro correcto. - + Index %1 is out of bounds. O índice %1 está fóra dos límites. - - + + Cannot write to directory Non é posíbel escribir no cartafol - + WebUI Set location: moving "%1", from "%2" to "%3" Localización da interface web: movendo «%1» de «%2» a «%3» - + Incorrect torrent name Nome incorrecto de torrent - - + + Incorrect category name Nome incorrecto de categoría @@ -10712,196 +11237,191 @@ Seleccione un nome diferente e ténteo de novo. TrackerListModel - + Working Funcionando - + Disabled Desactivado - + Disabled for this torrent Desactivar este torrent - + This torrent is private Este torrent é privado - + N/A N/D - + Updating... Actualizando... - + Not working Non está funcionando - - - Tracker error - - - - - Unreachable - - + Tracker error + Erro do rastreador + + + + Unreachable + Inalcanzable + + + Not contacted yet Aínda sen contactar - - Invalid status! - - - - - URL/Announce endpoint - + + Invalid state! + Estado non válido! + URL/Announce Endpoint + URL/Anunciar punto final + + + + BT Protocol + Protocolo BT + + + + Next Announce + Próximo anuncio + + + + Min Announce + Anuncio mínimo + + + Tier Nivel - - Protocol - - - - + Status Estado - + Peers Pares - + Seeds Sementes - + Leeches Samesugas - - - Times Downloaded - - - Message - Mensaxe + Times Downloaded + Veces descargado - Next announce - - - - - Min announce - - - - - v%1 - + Message + Mensaxe TrackerListWidget - + This torrent is private Este torrent é privado - + Tracker editing Edición do localizador - + Tracker URL: URL do localizador: - - + + Tracker editing failed Fallou a edición do localizador - + The tracker URL entered is invalid. A URL introducida para o localizador non é correcta. - + The tracker URL already exists. A URL do localizador xa existe. - + Edit tracker URL... Editar URL do localizador - + Remove tracker Eliminar o localizador - + Copy tracker URL Copiar url dos localizadores - + Force reannounce to selected trackers Forzar outro anuncio nos localizadores seleccionados - + Force reannounce to all trackers Forzar outro anuncio en todos os localizadores - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos - + Add trackers... - + Engadir rastrexadores... - + Column visibility Visibilidade da columna @@ -10911,7 +11431,7 @@ Seleccione un nome diferente e ténteo de novo. Add trackers - + Engadir rastrexadores @@ -10919,100 +11439,100 @@ Seleccione un nome diferente e ténteo de novo. Lista de localizadores a engadir (un por liña): - + µTorrent compatible list URL: URL da lista compatíbel con µTorrent: - + Download trackers list - + Descargar lista de rastrexadores - + Add Engadir - + Trackers list URL error - + Erro de URL da lista de rastrexadores - + The trackers list URL cannot be empty - + O URL da lista de rastrexadores non pode estar baleiro - + Download trackers list error - + Erro da lista de rastrexadores de descarga - + Error occurred when downloading the trackers list. Reason: "%1" - + Produciuse un erro ao descargar a lista de rastrexadores. Motivo: "%1" TrackersFilterWidget - + Warning (%1) Avisos (%1) - + Trackerless (%1) Sen localizador (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Erro do rastrexador (%1) - + + Other error (%1) + Outro erro (%1) + + + Remove tracker Eliminar o localizador - - Resume torrents - Continuar os torrents + + Start torrents + Iniciar torrents - - Pause torrents - Deter os torrents + + Stop torrents + Deter torrents - + Remove torrents - + Eliminar torrents - + Removal confirmation - + Confirmación de eliminación - + Are you sure you want to remove tracker "%1" from all torrents? - + Estás seguro de que queres eliminar o rastrexador "%1" de todos os torrents? - + Don't ask me again. - + Non me volvas preguntar. - + All (%1) this is for the tracker filter Todos (%1) @@ -11021,9 +11541,9 @@ Seleccione un nome diferente e ténteo de novo. TransferController - + 'mode': invalid argument - + 'mode': argumento non válido @@ -11113,11 +11633,6 @@ Seleccione un nome diferente e ténteo de novo. 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. Comprobando os datos de continuación - - - Paused - Detidos - Completed @@ -11141,220 +11656,252 @@ Seleccione un nome diferente e ténteo de novo. Con erros - + Name i.e: torrent name Nome - + Size i.e: torrent size Tamaño - + Progress % Done Progreso - + + Stopped + Parado + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Estado - + Seeds i.e. full sources (often untranslated) Sementes - + Peers i.e. partial sources (often untranslated) Pares - + Down Speed i.e: Download speed Vel. de descarga - + Up Speed i.e: Upload speed Vel. de envío - + Ratio Share ratio Taxa - + + Popularity + Popularidade + + + ETA i.e: Estimated Time of Arrival / Time left Tempo restante - + Category Categoría - + Tags Etiquetas - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Engadido o - + Completed On Torrent was completed on 01/01/2010 08:00 Completado o - + Tracker Localizador - + Down Limit i.e: Download limit Límite de descarga - + Up Limit i.e: Upload limit Límite de envío - + Downloaded Amount of data downloaded (e.g. in MB) Descargado - + Uploaded Amount of data uploaded (e.g. in MB) Enviado - + Session Download Amount of data downloaded since program open (e.g. in MB) Desc. na sesión - + Session Upload Amount of data uploaded since program open (e.g. in MB) Env. na sesión - + Remaining Amount of data left to download (e.g. in MB) Restante - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tempo en activo - + + Yes + Si + + + + No + Non + + + Save Path Torrent save path - + Gardar camiño - + Incomplete Save Path Torrent incomplete save path - + Ruta de gardado incompleta - + Completed Amount of data completed (e.g. in MB) Completado - + Ratio Limit Upload share ratio limit Límite da taxa - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Visto completo por última vez - + Last Activity Time passed since a chunk was downloaded/uploaded Última actividade - + Total Size i.e. Size including unwanted data Tamaño total - + Availability The number of distributed copies of the torrent Dispoñíbilidade - + Info Hash v1 i.e: torrent info hash v1 - Info Hash v2: {1?} + Hash de información v1 - + Info Hash v2 i.e: torrent info hash v2 - Info Hash v2: {2?} + Hash de información v2 - + Reannounce In Indicates the time until next trackers reannounce - + Reanunciar en - - + + Private + Flags private torrents + Privado + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Ratio / Tempo activo (en meses), indica a popularidade do torrent + + + + + N/A N/D - + %1 ago e.g.: 1h 20m ago Hai %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sementou durante %2) @@ -11363,339 +11910,319 @@ Seleccione un nome diferente e ténteo de novo. TransferListWidget - + Column visibility Visibilidade da columna - + Recheck confirmation Confirmación da nova comprobación - + Are you sure you want to recheck the selected torrent(s)? Desexa unha nova comprobación dos torrents seleccionados? - + Rename Cambiar o nome - + New name: Nome novo: - + Choose save path Seleccionar unha ruta onde gardar - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview Non é posíbel a previsualización - + The selected torrent "%1" does not contain previewable files O torrent «%1» seleccionado non contén ficheiros previsualizábeis - + Resize columns Redimensionar columnas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as columnas visíbeis ao tamaño dos contidos - + Enable automatic torrent management Activar a xestión automática dos torrents - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Confirma a activación do Xestor Automático de Torrents para os torrents seleccionado(s)? Poden ser resituados. - - Add Tags - Engadir etiquetas + + Choose folder to save exported .torrent files + Escolla o cartafol para gardar os ficheiros .torrent exportados - - Choose folder to save exported .torrent files - + + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" + Produciuse un erro ao exportar o ficheiro .torrent. Torrente: "%1". Gardar o camiño: "%2". Motivo: "%3" - Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - - - - A file with the same name already exists - + Xa existe un ficheiro co mesmo nome - + Export .torrent file error - + Erro ao exportar o ficheiro .torrent - + Remove All Tags Eliminar todas as etiquetas - + Remove all tags from selected torrents? Desexa eliminar todas as etiquetas dos torrents seleccionados? - + Comma-separated tags: Etiquetas separadas por comas: - + Invalid tag Etiqueta incorrecta - + Tag name: '%1' is invalid O nome da etiqueta: «%1» non é válido - - &Resume - Resume/start the torrent - Continua&r - - - - &Pause - Pause the torrent - &Deter - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Pre&visualizar ficheiro... - + Torrent &options... - + &Opcións de torrent... - + Open destination &folder - + Abre o &cartafol de destino - + Move &up i.e. move up in the queue - + Mover &arriba - + Move &down i.e. Move down in the queue - + Mover a&baixo - + Move to &top i.e. Move to top of the queue - + Mover o &comezo - + Move to &bottom i.e. Move to bottom of the queue - + Mover ao &derradeiro - + Set loc&ation... - + Definir loc&alización... - + Force rec&heck - + Forzar a rec&omprobación - + Force r&eannounce - + Forzar r&eanunciar - + &Magnet link - + Enlace &Magnet - + Torrent &ID - + &ID do torrent - + &Comment - + &Comentario - + &Name - + &Nome - + Info &hash v1 - + &Hash de información v1 - + Info h&ash v2 - + H&ash de información v2 + + + + Re&name... + Re&nomear... - Re&name... - - - - Edit trac&kers... - - - - - E&xport .torrent... - - - - - Categor&y - - - - - &New... - New category... - - - - - &Reset - Reset category - - - - - Ta&gs - - - - - &Add... - Add / assign multiple tags... - - - - - &Remove All - Remove all tags - - - - - &Queue - - - - - &Copy - - - - - Exported torrent is not necessarily the same as the imported - + Editar ras&trexadores... + E&xport .torrent... + E&xportar .torrent... + + + + Categor&y + Categor&ía + + + + &New... + New category... + &Novo... + + + + &Reset + Reset category + &Restablecer + + + + Ta&gs + Eti&quetas + + + + &Add... + Add / assign multiple tags... + &Engadir... + + + + &Remove All + Remove all tags + &Eliminar todo + + + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Non se pode forzar a reanuncio se o torrent está Detido/En cola/Con erro/En comprobación + + + + &Queue + C&ola + + + + &Copy + &Copia + + + + Exported torrent is not necessarily the same as the imported + O torrent exportado non é necesariamente o mesmo co importado + + + Download in sequential order Descargar en orde secuencial - - Errors occurred when exporting .torrent files. Check execution log for details. - + + Add tags + Engadir etiquetas - + + Errors occurred when exporting .torrent files. Check execution log for details. + Producíronse erros ao exportar ficheiros .torrent. Consulte o rexistro de execución para obter máis detalles. + + + + &Start + Resume/start the torrent + &Comezar + + + + Sto&p + Stop the torrent + Dete&r + + + + Force Star&t + Force Resume/start the torrent + Forzar inici&o + + + &Remove Remove the torrent - + Elimina&r - + Download first and last pieces first Descargar primeiro os anacos inicial e final - + Automatic Torrent Management Xestión automática dos torrents - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category O modo automático significa que varias propiedades dos torrents (p.e: ruta onde gardar) decidiraas a categoría asociada - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Modo super-sementeira @@ -11705,71 +12232,76 @@ Seleccione un nome diferente e ténteo de novo. UI Theme Configuration - + Configuración do tema da IU Colors - + Cores Color ID - + ID da cor Light Mode - + Modo Claro Dark Mode - + Modo Escuro Icons - + Iconas Icon ID - + ID da icona - + UI Theme Configuration. - + Configuración do tema da IU. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Non se puideron aplicar completamente os cambios no tema da IU. Os detalles pódense atopar no rexistro. - + Couldn't save UI Theme configuration. Reason: %1 - + Non se puido gardar a configuración do tema da IU. Motivo: %1 - - + + Couldn't remove icon file. File: %1. - + Non se puido eliminar o ficheiro de icona. Ficheiro: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - + Non se puido copiar o ficheiro de icona. Fonte: %1. Destino: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Non se pudo establecer o estilo da app. Estilo descoñecido: "%1" + + + Failed to load UI theme from file: "%1" Produciuse un fallo ao cargar o tema da interface de usuario: «%1» @@ -11779,12 +12311,12 @@ Seleccione un nome diferente e ténteo de novo. Couldn't parse UI Theme configuration file. Reason: %1 - + Non se puido analizar o ficheiro de configuración do tema da IU. Motivo: %1 UI Theme configuration file has invalid format. Reason: %1 - + O ficheiro de configuración do tema da IU non ten un formato válido. Motivo: %1 @@ -11800,21 +12332,22 @@ Seleccione un nome diferente e ténteo de novo. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Produciuse un fallo migrando as preferencias: WebUI htttps, ficheiro: «%1», erro: «%2» - + Migrated preferences: WebUI https, exported data to file: "%1" Preferencias migradas: WebUI https, os datos exportáronse ao ficheiro: «%1» - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Encontrouse un valor incorrecto no ficheiro de comprobación, volvendo ao predeterminado. Clave: «%1». Valor incorrecto: «%2». @@ -11822,34 +12355,34 @@ erro: «%2» Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Atopouse o executable de Python. Nome: "%1". Versión: "%2" - + Failed to find Python executable. Path: "%1". - + Produciuse un erro ao atopar o executable de Python. Camiño: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Non se atendeu o executábel `python3` na variable de entorno PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - - - - - Failed to find `python` executable in Windows Registry. - + Non se atendeu o executábel `python` na variable de entorno PATH. PATH: "%1" + Failed to find `python` executable in Windows Registry. + Produciuse un erro ao atopar o executable `python` no Rexistro de Windows. + + + Failed to find Python executable - + Produciuse un erro ao atopar o executable de Python @@ -11857,27 +12390,27 @@ erro: «%2» File open error. File: "%1". Error: "%2" - + Erro ao abrir o ficheiro. Ficheiro: "%1". Erro: "%2" File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - + O tamaño do ficheiro supera o límite. Ficheiro: "%1". Tamaño do ficheiro: %2. Límite de tamaño: %3 File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + O tamaño do ficheiro supera o límite de tamaño de datos. Ficheiro: "%1". Tamaño do ficheiro: %2. Límite de matriz: %3 File read error. File: "%1". Error: "%2" - + Erro de lectura do ficheiro. Ficheiro: "%1". Erro: "%2" Read size mismatch. File: "%1". Expected: %2. Actual: %3 - + O tamaño de lectura non coincide. Ficheiro: "%1". Esperábase: %2. Actual: %3 @@ -11939,73 +12472,73 @@ erro: «%2» WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Especificouse un nome de cookie de sesión inaceptable: '%1'. Úsase un predeterminado. - + Unacceptable file type, only regular file is allowed. Tipo de ficheiro non permitido, só se permite o ficheiro normal. - + Symlinks inside alternative UI folder are forbidden. As ligazóns simbólicas están prohibidas dentro do cartafol da interface de usuario alternativa. - + Using built-in WebUI. - + Usando WebUI incorporado. - + Using custom WebUI. Location: "%1". - + Usando WebUI personalizado. Localización: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + A tradución da WebUI para a configuración rexional seleccionada (%1) foi cargada correctamente. - + Couldn't load WebUI translation for selected locale (%1). - + Non se puido cargar a tradución da WebUI para a configuración rexional seleccionada (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1"   Falta o separador «:» na cabeceira HTTP personalizada de WebUI: «% 1» - + Web server error. %1 - + Erro do servidor web. %1 - + Web server error. Unknown error. - + Erro do servidor web. Erro descoñecido. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Interface web: a cabeceira da orixe e do destino non coinciden. IP da orixe: «%1». Cabeceira da orixe: «%2». Orixe do destino: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Interface web: a cabeceira do referente e a orixe do destino non coinciden. IP da orixe: «%1». Cabeceira do referente: «%2». Orixe do destino: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Interface web: a cabeceira do servidor e o porto non coinciden. IP da orixe da petición: «%1». Porto do servidor: «%2». Cabeceira do servidor: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Interface web: A cabeceira do servidor non é válida. IP da orixe da petición: «%1». Cabeceira recibida do servidor: «%2» @@ -12013,125 +12546,133 @@ Falta o separador «:» na cabeceira HTTP personalizada de WebUI: «% 1» WebUI - + Credentials are not set - + As credenciais non están definidas - + WebUI: HTTPS setup successful - + WebUI: configuración HTTPS correcta - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: fallou a configuración de HTTPS, volveuse a HTTP - + WebUI: Now listening on IP: %1, port: %2 - + WebUI: agora escoitando a IP: %1, porto: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - + Non foi posíbel vincular a IP: %1, porto: %2. Motivo: %3 + + + + fs + + + Unknown error + Erro descoñecido misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1 m {1s?} + %1s - + %1m e.g: 10 minutes %1 m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_he.ts b/src/lang/qbittorrent_he.ts index eafbcbd4c..a195c1105 100644 --- a/src/lang/qbittorrent_he.ts +++ b/src/lang/qbittorrent_he.ts @@ -14,77 +14,77 @@ אודות - + Authors מחברים - + Current maintainer מתחזק נוכחי - + Greece יוון - - + + Nationality: לאום: - - + + E-mail: דוא״ל: - - + + Name: שם: - + Original author מחבר מקורי - + France צרפת - + Special Thanks תודות מיוחדות - + Translators מתרגמים - + License רישיון - + Software Used תוכנות בשימוש - + qBittorrent was built with the following libraries: qBittorrent נבנה עם הסיפריות הבאות: - + Copy to clipboard - העתק ללוח עריכה + העתקה ללוח העריכה @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - זכויות יוצרים %1 2006-2024 מיזם qBittorrent + Copyright %1 2006-2025 The qBittorrent project + זכויות יוצרים %1 2006-2025 מיזם qBittorrent @@ -166,15 +166,10 @@ שמור ב - + Never show again אל תראה שוב אף פעם - - - Torrent settings - הגדרות טורנט - Set as default category @@ -191,12 +186,12 @@ התחל טורנט - + Torrent information מידע על טורנט - + Skip hash check דלג על בדיקת גיבוב @@ -205,6 +200,11 @@ Use another path for incomplete torrent השתמש בנתיב אחר עבור טורנט בלתי שלם + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ תנאי עצירה : - - + + None ללא - - + + Metadata received מטא־נתונים התקבלו - + Torrents that have metadata initially will be added as stopped. - - + + Files checked קבצים שנבדקו - + Add to top of queue הוספה לראש התור - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog כאשר מסומן, קובץ הטורנט לא יימחק בלי קשר אל ההגדרות בדף הורדה של הדו־שיח אפשרויות. - + Content layout: סידור תוכן: - + Original מקורי - + Create subfolder צור תת־תיקייה - + Don't create subfolder אל תיצור תת־תיקייה - + Info hash v1: גיבוב מידע גרסה 1: - + Size: גודל: - + Comment: הערה: - + Date: תאריך: @@ -329,147 +329,147 @@ זכור נתיב שמירה אחרון שהיה בשימוש - + Do not delete .torrent file אל תמחק קובץ טורנט - + Download in sequential order הורד בסדר עוקב - + Download first and last pieces first הורד חתיכה ראשונה ואחרונה תחילה - + Info hash v2: גיבוב מידע גרסה 2: - + Select All בחר הכול - + Select None בחר כלום - + Save as .torrent file... שמור כקובץ torrent… - + I/O Error שגיאת ק/פ - + Not Available This comment is unavailable לא זמין - + Not Available This date is unavailable לא זמין - + Not available לא זמין - + Magnet link קישור מגנט - + Retrieving metadata... מאחזר מטא־נתונים… - - + + Choose save path בחירת נתיב שמירה - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A לא זמין - + %1 (Free space on disk: %2) %1 (שטח פנוי בדיסק: %2) - + Not available This size is unavailable. לא זמין - + Torrent file (*%1) קובץ טורנט (*%1) - + Save as torrent file שמור כקובץ טורנט - + Couldn't export torrent metadata file '%1'. Reason: %2. לא היה ניתן לייצא קובץ מטא־נתונים של טורנט '%1'. סיבה: %2. - + Cannot create v2 torrent until its data is fully downloaded. לא ניתן ליצור טורנט גרסה 2 עד שהנתונים שלו מוקדים באופן מלא. - + Filter files... סנן קבצים… - + Parsing metadata... מאבחן מטא־נתונים… - + Metadata retrieval complete אחזור מטא־נתונים הושלם @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" מוריד טורנט… מקור: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - ניסיון להוסיף טורנט כפול התגלה. מקור: %1. טורנט קיים: %2. תוצאה: %3 - - - + Merging of trackers is disabled מיזוג עוקבנים מושבת - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -592,7 +592,7 @@ Torrent share limits - מגבלות שיתוף של טורנט + מגבלות שיתוף של טורנט @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB מ״ב - + Recheck torrents on completion בדוק מחדש טורנטים בעת השלמה - - + + ms milliseconds מילי שנייה - + Setting הגדרה - + Value Value set for this setting ערך - + (disabled) (מושבת) - + (auto) (אוטומטי) - + + min minutes דק' - + All addresses כל הכתובות - + qBittorrent Section קטע qBittorrent - - + + Open documentation פתח תיעוד - + All IPv4 addresses כל כתובות IPv4 - + All IPv6 addresses כל כתובות IPv6 - + libtorrent Section קטע libtorrent - + Fastresume files קבצי המשכה מהירה - + SQLite database (experimental) מסד נתונים SQLite (ניסיוני) - + Resume data storage type (requires restart) סוג אחסון של נתוני המשכה (דורש הפעלה מחדש) - + Normal רגילה - + Below normal מתחת לרגילה - + Medium בינונית - + Low נמוכה - + Very low נמוכה מאוד - + Physical memory (RAM) usage limit מגבלת שימוש בזיכרון פיזי (RAM) - + Asynchronous I/O threads תהליכוני ק/פ אי־סינכרוניים - + Hashing threads תהליכוני גיבוב - + File pool size גודל בריכת קבצים - + Outstanding memory when checking torrents זיכרון חריג בעת בדיקת טורנטים - + Disk cache מטמון דיסק - - - - + + + + + s seconds ש' - + Disk cache expiry interval מרווח תפוגת מטמון דיסק - + Disk queue size גודל תור בדיסק - - + + Enable OS cache אפשר מטמון מערכת הפעלה - + Coalesce reads & writes לכד קריאות וכתיבות - + Use piece extent affinity השתמש במידת קירבה של חתיכות - + Send upload piece suggestions שלח הצעות של חתיכות העלאה - - - - + + + + + 0 (disabled) 0 (מושבת) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer בקשות חריגות מרביות אל עמית יחיד - - - - - + + + + + KiB ק״ב - + (infinite) (אין־סופי) - + (system default) (ברירת מחדל) - + + Delete files permanently + מחק קבצים לצמיתות + + + + Move files to trash (if possible) + העבר קבצים אל סל המיחזור (אם אפשרי) + + + + Torrent content removing mode + מצב הסרת תכני טורנטים + + + This option is less effective on Linux אפשרות זו פחות יעילה על Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default ברירת מחדל - + Memory mapped files קבצים ממופי זיכרון - + POSIX-compliant תואם POSIX - + + Simple pread/pwrite + + + + Disk IO type (requires restart) סוג ק/פ של דיסק (דורש הפעלה מחדש) - - + + Disable OS cache השבת מטמון OS - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark שלח סימן מים של חוצץ - + Send buffer low watermark שלח סימן מים נמוך של חוצץ - + Send buffer watermark factor שלח גורם סימן מים של חוצץ - + Outgoing connections per second חיבורים יוצאים לשנייה - - + + 0 (system default) 0 (ברירת מחדל) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size גודל מצבור תושבת - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit מגבלת גודל של קובץ טורנט - + Type of service (ToS) for connections to peers סוג של שירות (ToS) עבור חיבורים אל עמיתים - + Prefer TCP העדף TCP - + Peer proportional (throttles TCP) יַחֲסִי עמית (משנקי TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) תמוך בשם בינלאומי של תחום (IDN) - + Allow multiple connections from the same IP address התר חיבורים רבים מאותה כתובת IP - + Validate HTTPS tracker certificates וודא תעודות עוקבן מסוג HTTPS - + Server-side request forgery (SSRF) mitigation שיכוך של זיוף בקשות צד־שרת (SSRF) - + Disallow connection to peers on privileged ports אל תתיר חיבור אל עמיתים על פתחות בעלות זכויות - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval מרווח ריענון - + Resolve peer host names פתור שמות מארחי עמיתים - + IP address reported to trackers (requires restart) כתובת IP דווחה אל עוקבנים (דורש הפעלה מחדש) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed הכרז מחדש אל כל העוקבנים כאשר IP או פתחה השתנו - + Enable icons in menus אפשר איקונים בתפריטים - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files אפשר הסגר עבור קבצים מורדים - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + התעלם משגיאות SSL + + + (Auto detect if empty) (גילוי אוטומטי אם ריק) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - אפשר הסרה של עוקבן מכל הטורנטים - - - - Peer turnover disconnect percentage - אחוז של ניתוק תחלופת עמיתים - - - - Peer turnover threshold percentage - אחוז של סף תחלופת עמיתים - - - - Peer turnover disconnect interval - מרווח ניתוק תחלופת עמיתים - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + שניות + + + + -1 (unlimited) + -1 (בלתי מוגבל) + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + אפשר הסרה של עוקבן מכל הטורנטים + + + + Peer turnover disconnect percentage + אחוז של ניתוק תחלופת עמיתים + + + + Peer turnover threshold percentage + אחוז של סף תחלופת עמיתים + + + + Peer turnover disconnect interval + מרווח ניתוק תחלופת עמיתים + + + + Resets to default if empty + מתאפס אל ברירת מחדל אם זה ריק + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications הצג התראות - + Display notifications for added torrents הצג התראות עבור טורנטים שהתווספו - + Download tracker's favicon הורד איקון של עוקבן - + Save path history length אורך היסטורית שמירת נתיבים - + Enable speed graphs אפשר גרפי מהירות - + Fixed slots חריצים מקובעים - + Upload rate based מבוסס קצב העלאה - + Upload slots behavior העלה התנהגות חריצים - + Round-robin סבב־רובין - + Fastest upload ההעלאה הכי מהירה - + Anti-leech נגד־עלוקה - + Upload choking algorithm אלגוריתם מחנק העלאה - + Confirm torrent recheck אשר בדיקה מחדש של טורנט - + Confirm removal of all tags אשר הסרת כל התגיות - + Always announce to all trackers in a tier הכרז תמיד לכל העוקבנים בנדבך - + Always announce to all tiers הכרז תמיד לכל הנדבכים - + Any interface i.e. Any network interface כל ממשק שהוא - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm אלגוריתם של מצב מעורבב %1-TCP - + Resolve peer countries פתור מדינות עמיתים - + Network interface ממשק רשת - + Optional IP address to bind to כתובת IP רשותית לחבור אליה - + Max concurrent HTTP announces הכרזות HTTP מרביות במקביל - + Enable embedded tracker אפשר עוקבן משובץ - + Embedded tracker port פתחת עוקבן משובץ + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 מריץ במצב נייד. תיקיית פרופילים מזוהה־אוטומטית ב: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. דגל עודף של שורת הפקודה התגלה: "%1". מצב נייד מרמז על המשכה מהירה קשורה. - + Using config directory: %1 משתמש בתיקיית תיצור: %1 - + 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. - + Torrent: %1, sending mail notification טורנט: %1, שולח התראת דוא״ל - + Add torrent failed הוספת טורנט נכשלה - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... טוען טורנטים… - + E&xit &צא - + I/O Error i.e: Input/Output Error שגיאת ק/פ - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ סיבה: %2 - + Torrent added טורנט התווסף - + '%1' was added. e.g: xxx.avi was added. '%1' התווסף. - + Download completed הורדה הושלמה - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + זהו דוא״ל בחינה. + + + + Test email + בחן דוא״ל + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. ההורדה של %1 הסתיימה. - + Information מידע - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 כדי לשלוט ב־qBittorrent, השג גישה אל WebUI ב: %1 - + Exit צא - + Recursive download confirmation אישור הורדה נסיגתית - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? הטורנט '%1' מכיל קבצי טורנט, האם אתה רוצה להמשיך עם הורדותיהם? - + Never אף פעם - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" הורדה נסיגתית של קובץ .torrent בתוך טורנט. טורנט מקור: "%1". קובץ: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" הגדרת מגבלת שימוש בזיכרון פיזי (RAM) נכשלה. קוד שגיאה: %1. הודעת שגיאה: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... qBittorrent מתכבה… - + Saving torrent progress... שומר התקדמות טורנט… - + qBittorrent is now ready to exit @@ -1605,12 +1715,12 @@ עדיפות: - + Must Not Contain: חייב לא להכיל: - + Episode Filter: מסנן פרקים: @@ -1663,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &ייצא… - + 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 מספר עונה הוא ערך בלתי אפסי הכרחי - + 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 של עונה ראשונה - + Episode number is a mandatory positive value מספר פרק הוא ערך חיובי הכרחי - + Rules כללים - + Rules (legacy) כללים (מורשת) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons טווח אינסופי: <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 אישור מחיקת כלל - + Invalid action פעולה בלתי תקפה - + The list is empty, there is nothing to export. הרשימה ריקה, אין מה לייצא. - + Export RSS rules ייצא כללי RSS - + I/O Error שגיאת ק/פ - + Failed to create the destination file. Reason: %1 יצירת קובץ היעד נכשלה. סיבה: %1 - + Import RSS rules ייבא כללי RSS - + Failed to import the selected rules file. Reason: %1 יבוא קובץ הכללים הנבחר נכשל. סיבה: %1 - + Add new rule... הוסף כלל חדש… - + Delete rule מחק כלל - + Rename rule... שנה שם כלל… - + Delete selected rules מחק כללים נבחרים - + Clear downloaded episodes... נקה פרקים שירדו… - + Rule renaming שינוי שם כלל - + Please type the new rule name אנא הקלד את השם של הכלל החדש - + Clear downloaded episodes נקה פרקים שירדו - + Are you sure you want to clear the list of downloaded episodes for the selected rule? האם אתה בטוח שאתה רוצה לנקות את רשימת הפרקים שירדו עבור הכלל הנבחר? - + Regex mode: use Perl-compatible regular expressions מצב Regex: השתמש בביטויים רגולריים תואמי Perl - - + + Position %1: %2 מיקום %1: %2 - + Wildcard mode: you can use מצב תו כללי: אתה יכול להשתמש ב - - + + Import error שגיאת יבוא - + Failed to read the file. %1 - + כישלון בקריאת הקובץ. %1 - + ? to match any single character ? כדי להתאים תו יחיד כלשהו - + * to match zero or more of any characters * כדי להתאים אפס או יותר מתווים כלשהם - + Whitespaces count as AND operators (all words, any order) רווחים לבנים נחשבים כאופרטורי AND (כל המילים, כל סדר שהוא) - + | is used as OR operator | משמש כאופרטור OR - + If word order is important use * instead of whitespace. אם סדר מילים חשוב, השתמש ב־* במקום רווח לבן. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) ביטוי עם סעיף %1 ריק (לדוגמה %2) - + will match all articles. יתאים את כל המאמרים. - + will exclude all articles. יחריג את כל המאמרים. @@ -1961,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" לא ניתן ליצור תיקיית המשכת טורנטים: "%1" @@ -1971,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. לא היה ניתן לשמור מטא־נתונים של טורנט אל '%1'. שגיאה: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. לא היה ניתן לשמור נתוני המשכה של טורנט אל '%1'. שגיאה: %2. @@ -2003,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 לא היה ניתן לשמור נתונים אל '%1'. שגיאה: %2 @@ -2020,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. לא נמצא. - + Couldn't load resume data of torrent '%1'. Error: %2 לא היה ניתן לטעון נתוני המשכה של הטורנט '%1'. שגיאה: %2 - - + + Database is corrupted. בסיס הנתונים פגום. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2059,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. לא היה ניתן לשמור מטא־נתונים של טורנט. שגיאה: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 לא היה ניתן לאחסן נתוני המשכה עבור הטורנט '%1'. שגיאה: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 לא היה ניתן למחוק נתוני המשכה של הטורנט '%1'. שגיאה: %2 - + Couldn't store torrents queue positions. Error: %1 לא היה ניתן לאחסן מיקומי תור של טורנטים. שגיאה: %1 @@ -2082,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 תמיכה בטבלת גיבוב מבוזרת (DHT): %1 - - - - - - - - - + + + + + + + + + ON מופעל - - - - - - - - - + + + + + + + + + OFF כבוי - - + + Local Peer Discovery support: %1 תמיכה בגילוי עמיתים מקומיים: %1 - + Restart is required to toggle Peer Exchange (PeX) support הפעלה מחדש נדרשת כדי לעורר תמיכה בחילוף עמיתים (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" המשכת טורנט נכשלה: זהות טורנט אי־עקבית התגלתה. טורנט: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" נתונים בלתי עקביים התגלו: קטגוריה חסרה בקובץ התצורה. הקטגוריה תושב אבל ההגדרות שלה יאופסו אל ברירת מחדל. טורנט: "%1". קטגוריה: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" נתונים בלתי עקביים התגלו: קטגוריה בלתי תקפה. טורנט: "%1". קטגוריה: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" אי־התאמה התגלתה בין נתיבי השמירה של הקטגוריה המושבת ונתיב השמירה הנוכחי של הטורנט. הטורנט מוחלף כעת אל מצב ידני. טורנט: "%1". קטגוריה: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" זהות עמית: "%1" - + HTTP User-Agent: "%1" סוכן־משתמש HTTP: "%1" - + Peer Exchange (PeX) support: %1 תמיכה בחילוף עמיתים (PeX): %1 - - + + Anonymous mode: %1 מצב אלמוני: %1 - - + + Encryption support: %1 תמיכה בהצפנה: %1 - - + + FORCED מאולץ - + Could not find GUID of network interface. Interface: "%1" לא היה ניתן למצוא GUID של ממשק רשת. ממשק: "%1" - + Trying to listen on the following list of IP addresses: "%1" מנסה להאזין על הרשימה הבאה של כתובת IP: "%1" - + Torrent reached the share ratio limit. טורנט הגיע אל מגבלת יחס השיתוף. - - - + Torrent: "%1". טורנט: "%1". - - - - Removed torrent. - טורנט הוסר. - - - - - - Removed torrent and deleted its content. - טורנט הוסר ותוכנו נמחק. - - - - - - Torrent paused. - טורנט הושהה. - - - - - + Super seeding enabled. זריעת־על אופשרה. - + Torrent reached the seeding time limit. טורנט הגיע אל מגבלת יחס הזריעה. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" טעינת טורנט נכשלה. סיבה: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON תמיכה ב־UPnP/NAT-PMP: מופעלת - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + מסיר טורנט. + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + טורנט נעצר. + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + טורנט הוסר. טורנט: "%1" + + + + Merging of trackers is disabled + מיזוג עוקבנים מושבת + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF תמיכה ב־UPnP/NAT-PMP: כבויה - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" יצוא טורנט נכשל. טורנט: "%1". יעד: "%2". סיבה: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 שמירת נתוני המשכה בוטלה. מספר של טורנטים חריגים: %1 - + The configured network address is invalid. Address: "%1" הכתובת המתוצרת של הרשת בלתי תקפה. כתובת: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" כישלון במציאה של כתובת מתוצרת של רשת להאזין עליה. כתובת: "%1" - + The configured network interface is invalid. Interface: "%1" ממשק הרשת המתוצר בלתי תקף. ממשק: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" כתובת IP בלתי תקפה סורבה בזמן החלת הרשימה של כתובות IP מוחרמות. IP הוא: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" עוקבן התווסף אל טורנט. טורנט: "%1". עוקבן: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" עוקבן הוסר מטורנט. טורנט: "%1". עוקבן: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" מען זריעה התווסף אל טורנט. טורנט: "%1". מען: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" מען זריעה הוסר מטורנט. טורנט: "%1". מען: "%2" - - Torrent paused. Torrent: "%1" - טורנט הושהה. טורנט: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" טורנט הומשך. טורנט: "%1" - + Torrent download finished. Torrent: "%1" הורדת טורנט הסתיימה. טורנט: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" העברת טורנט בוטלה. טורנט: "%1". מקור: "%2". יעד: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + טורנט נעצר. טורנט: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination הוספה אל תור של העברת טורנט נכשלה. טורנט: "%1". מקור: "%2". יעד: "%3". סיבה: הטורנט מועבר כרגע אל היעד - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location הוספה אל תור של העברת טורנט נכשלה. טורנט: "%1". מקור: "%2". יעד: "%3". סיבה: שני הנתיבים מצביעים על אותו מיקום - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" העברת טורנט התווספה אל תור. טורנט: "%1". מקור: "%2". יעד: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" העברת טורנט התחילה. טורנט: "%1". יעד: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" שמירת תצורת קטגוריות נכשלה. קובץ: "%1". שגיאה: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" ניתוח תצורת קטגוריות נכשל. קובץ: "%1". שגיאה: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 ניתוח של קובץ מסנני IP הצליח. מספר של כללים מוחלים: %1 - + Failed to parse the IP filter file ניתוח של קובץ מסנני IP נכשל - + Restored torrent. Torrent: "%1" טורנט שוחזר. טורנט: "%1" - + Added new torrent. Torrent: "%1" טורנט חדש התווסף. טורנט: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" טורנט נתקל בשגיאה: "%1". שגיאה: "%2" - - - Removed torrent. Torrent: "%1" - טורנט הוסר. טורנט: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - טורנט הוסר ותוכנו נמחק. טורנט: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" התרעת שגיאת קובץ. טורנט: "%1". קובץ: "%2". סיבה: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" מיפוי פתחת UPnP/NAT-PMP נכשל. הודעה: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" מיפוי פתחת UPnP/NAT-PMP הצליח. הודעה: "%1" - + IP filter this peer was blocked. Reason: IP filter. מסנן IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 מגבלות מצב מעורבב - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 מושבת - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 מושבת - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - חיפוש מען DNS של זריעה נכשל. טורנט: "%1". מען: "%2". שגיאה: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" הודעת שגיאה התקבלה ממען זריעה. טורנט: "%1". מען: "%2". הודעה: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" מאזין בהצלחה על כתובת IP. כתובת IP: "%1". פתחה: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" האזנה על IP נכשלה. IP הוא: "%1". פתחה: "%2/%3". סיבה: "%4" - + Detected external IP. IP: "%1" IP חיצוני זוהה. IP הוא: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" שגיאה: התרעה פנימית של תור מלא והתרעות מושמטות, ייתכן שתחווה ביצוע ירוד. סוג התרעה מושמטת: "%1". הודעה: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" טורנט הועבר בהצלחה. טורנט: "%1". יעד: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" העברת טורנט נכשלה. טורנט: "%1". מקור: "%2". יעד: "%3". סיבה: "%4" @@ -2542,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + כישלון בהתחלת זריעה. BitTorrent::TorrentCreator - + Operation aborted הפעולה בוטלה - - + + Create new torrent file failed. Reason: %1. יצירת קובץ חדש של טורנט נכשלה. סיבה: %1. @@ -2562,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 כישלון בהוספת העמית "%1" אל הטורנט "%2". סיבה: %3 - + Peer "%1" is added to torrent "%2" העמית "%1" מתווסף אל הטורנט "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. לא היה ניתן לכתוב אל קובץ. סיבה: "%1". הטורנט נמצא עכשיו במצב "העלאה בלבד". - + Download first and last piece first: %1, torrent: '%2' הורד חתיכה ראשונה ואחרונה תחילה: %1, טורנט: '%2' - + On מופעל - + Off כבוי - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" כישלון בשחזור טורנט. הקבצים כנראה הועברו או האחסון בלתי נגיש. טורנט: "%1". סיבה: "%2" - + Missing metadata מטא־נתונים חסרים - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" שינוי שם קובץ נכשל. טורנט: "%1", קובץ: "%2", סיבה: "%3" - + Performance alert: %1. More info: %2 התרעת ביצוע: %1. עוד מידע: %2 @@ -2643,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' הפרמטר '%1' חייב לעקוב אחר התחביר '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' הפרמטר '%1' חייב לעקוב אחר התחביר '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' מספר שלם צפוי במשתנה סביבה '%1', אך התקבל '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - הפרמטר '%1' חייב לעקוב אחר התחביר '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' צפוי %1 במשתנה סביבה '%2', אך התקבל '%3' - - + + %1 must specify a valid port (1 to 65535). %1 חייב לציין פתחה תקפה (1 עד 65535). - + Usage: שימוש: - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)...] - + Options: אפשרויות: - + Display program version and exit מציג גרסת תוכנית ויוצא - + Display this help message and exit מציג הודעה זו של עזרה ויוצא - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + הפרמטר '%1' חייב לעקוב אחר התחביר '%1=%2' - - + + Confirm the legal notice + אשר את ההודעה המשפטית + + + + port פתחה - + Change the WebUI port - + Change the torrenting port - + Disable splash screen השבת מסך מתז - + Run in daemon-mode (background) הרץ במצב דימון (רקע) - + dir Use appropriate short form or abbreviation of "directory" סיפרייה - + Store configuration files in <dir> אחסן קבצי תצורה ב<dir> - - + + name שם - + Store configuration files in directories qBittorrent_<name> אחסן קבצי תצורה בתיקיות qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory פרוץ לתוך קבצי המשכה מהירה של libtorrent ועשה נתיבי קבצים קשורי משפחה אל תיקיית הפרופיל - + files or URLs קבצים או כתובות - + Download the torrents passed by the user מוריד את הטורנטים שדולגו ע״י המשתמש - + Options when adding new torrents: אפשרויות בעת הוספת טורנטים חדשים: - + path נתיב - + Torrent save path נתיב שמירת טורנט - - Add torrents as started or paused - הוסף טורנטים כמותחלים או מושהים + + Add torrents as running or stopped + - + Skip hash check דלג על בדיקת גיבוב - + Assign torrents to category. If the category doesn't exist, it will be created. הקצה טורנטים אל קטגוריה. אם הקטגוריה אינה קיימת, היא תיווצר. - + Download files in sequential order הורד קבצים בסדר עוקב - + Download first and last pieces first הורד חתיכה ראשונה ואחרונה תחילה - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. מציין האם הדו־שיח "הוספת טורנט חדש" נפתח בעת הוספת טורנט. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: ערכי אפשרות יכולים להיות מסופקים באמצעות משתני סביבה. לאפשרות בשם 'parameter-name', שם משתנה סביבה הוא 'QBT_PARAMETER_NAME' (ברישיות גדולה, '-' מוחלף עם '_'). כדי לחלוף על ערכי דגל, הגדר את המשתנה אל '1' או 'TRUE'. לדוגמה, כדי להשבית את מסך המתז: - + Command line parameters take precedence over environment variables פרמטרי שורת פקודה לוקחים קדימות על משתני סביבה - + Help עזרה @@ -2877,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - המשך טורנטים + Start torrents + התחל טורנטים - Pause torrents - השהה טורנטים + Stop torrents + עצור טורנטים @@ -2894,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... ערוך… - + Reset אפס + + + System + מערכת + CookiesDialog @@ -2943,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2956,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2975,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - בנוסף מחק את הקבצים לצמיתות + Also remove the content files + הסר גם את קבצי התוכן - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? האם אתה בטוח שאתה רוצה להסיר את '%1' מרשימת ההעברות? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? האם אתה בטוח שאתה רוצה להסיר %1 טורנטים אלו מרשימת ההעברות? - + Remove הסר @@ -3004,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also הורד מכתובות - + Add torrent links הוסף קישורי טורנט - + One link per line (HTTP links, Magnet links and info-hashes are supported) קישור אחד לשורה (קישורי HTTP, קישורי מגנט ומידע־גיבובים נתמכים). @@ -3019,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also הורד - + No URL entered לא הוכנסה כתובת - + Please type at least one URL. אנא הקלד לפחת כתובת אחת. @@ -3062,7 +3256,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Copy - העתק + העתקה @@ -3183,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also שגיאת אבחון: קובץ המסנן אינו קובץ PeerGuardian P2B תקין. + + FilterPatternFormatMenu + + + Pattern Format + תסדיר דפוס + + + + Plain text + מלל פשוט + + + + Wildcards + תווים כלליים + + + + Regular expression + ביטוי רגולרי + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" מוריד טורנט… מקור: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present טורנט נוכח כבר - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3209,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. מסד־נתונים פגום: לא נמצא קטע נתונים. @@ -3248,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 גודל בקשת HTTP חורג מגבלה, סוגר תושבת. מגבלה: %1, IP שכתובותו: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 בקשת HTTP רעה, סוגר תושבת. IP שכתובתו: %1 @@ -3299,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... עיין… - + Reset אפס - + Select icon בחר איקון - + Supported image files קבצי תמונה נתמכים + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3350,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 נחסם. סיבה: %2. - + %1 was banned 0.0.0.0 was banned %1 הוחרם @@ -3365,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 חייב להיות הפרמטר היחיד של שורת הפקודה. - + Run application with -h option to read about command line parameters. הרץ יישום עם אפשרות -h כדי לקרוא על פרמטרי שורת הפקודה. - + Bad command line שורת פקודה גרועה - + Bad command line: שורת פקודה גרועה: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3431,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ע&ריכה - + &Tools &כלים - + &File &קובץ - + &Help &עזרה - + On Downloads &Done ב&סיום הורדות - + &View &תצוגה - + &Options... &אפשרויות… - - &Resume - &המשך - - - + &Remove &הסר - + Torrent &Creator יו&צר הטורנטים - - + + Alternative Speed Limits מגבלות מהירות חלופיות - + &Top Toolbar &סרגל כלים עליון - + Display Top Toolbar הצג סרגל כלים עליון - + Status &Bar שורת מעמד - + Filters Sidebar סרגל צד של מסננים - + S&peed in Title Bar מ&הירות בשורת הכותרת - + Show Transfer Speed in Title Bar הראה מהירות העברה בשורת הכותרת - + &RSS Reader קורא &RSS - + Search &Engine &מנוע חיפוש - + L&ock qBittorrent &נעל את qBittorrent - + Do&nate! ת&רום! - + + Sh&utdown System + + + + &Do nothing &אל תעשה דבר - + Close Window סגור חלון - - R&esume All - ה&משך הכול - - - + Manage Cookies... נהל עוגיות… - + Manage stored network cookies נהל עוגיות רשת מאוחסנות - + Normal Messages הודעות רגילות - + Information Messages הודעות מידע - + Warning Messages הודעות אזהרה - + Critical Messages הודעות חשובות - + &Log &יומן - + + Sta&rt + התח&ל + + + + Sto&p + עצ&ור + + + + R&esume Session + + + + + Pau&se Session + הש&הה שיח + + + Set Global Speed Limits... קבע מגבלות מהירות כלליות… - + Bottom of Queue תחתית התור - + Move to the bottom of the queue הזז אל תחתית התור - + Top of Queue ראש התור - + Move to the top of the queue הזז אל ראש התור - + Move Down Queue הזז למטה בתור - + Move down in the queue הזז למטה בתור - + Move Up Queue הזז למעלה בתור - + Move up in the queue הזז למעלה בתור - + &Exit qBittorrent &צא מ־qBittorrent - + &Suspend System &השעה מערכת - + &Hibernate System &חרוף מערכת - - S&hutdown System - &כבה מערכת - - - + &Statistics &סטטיסטיקה - + Check for Updates בדוק אחר עדכונים - + Check for Program Updates בדוק אחר עדכוני תוכנה - + &About &אודות - - &Pause - ה&שהה - - - - P&ause All - השהה ה&כל - - - + &Add Torrent File... הוסף קובץ &טורנט… - + Open פתח - + E&xit &צא - + Open URL פתח כתובת - + &Documentation &תיעוד - + Lock נעל - - - + + + Show הראה - + Check for program updates בדוק אחר עדכוני תוכנה - + Add Torrent &Link... הוסף &קישור טורנט… - + If you like qBittorrent, please donate! אם אתה אוהב את qBittorrent, אנא תרום! - - + + Execution Log דוח ביצוע - + Clear the password נקה את הסיסמה - + &Set Password &הגדר סיסמה - + Preferences העדפות - + &Clear Password &נקה סיסמה - + Transfers העברות - - + + qBittorrent is minimized to tray qBittorrent ממוזער למגש - - - + + + This behavior can be changed in the settings. You won't be reminded again. התנהגות זו יכולה להשתנות דרך ההגדרות. לא תתוזכר שוב. - + Icons Only צלמיות בלבד - + Text Only מלל בלבד - + Text Alongside Icons מלל לצד צלמיות - + Text Under Icons מלל מתחת לצלמיות - + Follow System Style עקוב אחר סגנון מערכת - - + + UI lock password סיסמת נעילת UI - - + + Please type the UI lock password: אנא הקלד את סיסמת נעילת ה־UI: - + Are you sure you want to clear the password? האם אתה בטוח שאתה רוצה לנקות את הסיסמה? - + Use regular expressions השתמש בביטויים רגולריים - + + + Search Engine + מנוע חיפוש + + + + Search has failed + החיפוש נכשל + + + + Search has finished + החיפוש הסתיים + + + Search חיפוש - + Transfers (%1) העברות (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent עודכן כרגע וצריך להיפעל מחדש כדי שהשינויים יחולו. - + qBittorrent is closed to tray qBittorrent סגור למגש - + Some files are currently transferring. מספר קבצים מועברים כרגע. - + Are you sure you want to quit qBittorrent? האם אתה בטוח שאתה רוצה לצאת מ־qBittorrent? - + &No &לא - + &Yes &כן - + &Always Yes &תמיד כן - + Options saved. אפשרויות נשמרו. - + + [PAUSED] %1 + %1 is the rest of the window title + [מושהה] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title + [הורדה: %1, העלאה: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. - - + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime זמן ריצה חסר של פייתון - + qBittorrent Update Available זמין qBittorent עדכון - + 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. פייתון נדרש כדי להשתמש במנוע החיפוש אבל נראה שהוא אינו מותקן. - - + + Old Python Runtime זמן ריצה ישן של פייתון - + A new version is available. גרסה חדשה זמינה. - + Do you want to download %1? האם אתה רוצה להוריד את %1? - + Open changelog... - פתח יומן שינויים… + פתיחת יומן השינויים… - + No updates available. You are already using the latest version. אין עדכונים זמינים. אתה משתמש כבר בגרסה האחרונה. - + &Check for Updates &בדוק אחר עדכונים - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? גרסת פייתון שלך (%1) אינה עדכנית. דרישת מיזער: %2. האם אתה רוצה להתקין גרסה חדשה יותר עכשיו? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. גרסת פייתון שלך (%1) אינה עדכנית. אנא שדרג אל הגרסה האחרונה כדי שמנועי חיפוש יעבדו. דרישת מיזער: %2. - + + Paused + מושהה + + + Checking for Updates... בודק אחר עדכונים… - + Already checking for program updates in the background בודק כבר אחר עדכוני תוכנה ברקע - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error שגיאת הורדה - - Python setup could not be downloaded, reason: %1. -Please install it manually. - התקנת פייתון לא יכלה לרדת, סיבה: %1. -אנא התקן אותו באופן ידני. - - - - + + Invalid password סיסמה בלתי תקפה - + Filter torrents... סנן טורנטים… - + Filter by: סנן לפי: - + The password must be at least 3 characters long הסיסמה חייבת להיות באורך 3 תווים לפחות - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files פתיחת קבצי טורנט - + Torrent Files קבצי טורנט @@ -4228,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" מתעלם משגיאת SSL, כתובת: "%1", שגיאות: "%2" @@ -5522,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 חיבור נכשל, תשובה בלתי מזוהה: %1 - + Authentication failed, msg: %1 אימות נכשל, הודעה: %1 - + <mail from> was rejected by server, msg: %1 <mail from> סורב על ידי השרת, הודעה: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> סורב על ידי השרת, הודעה: %1 - + <data> was rejected by server, msg: %1 <data> סורב על ידי השרת, הודעה: %1 - + Message was rejected by the server, error: %1 הודעה סורבה על ידי השרת, שגיאה: %1 - + Both EHLO and HELO failed, msg: %1 גם EHLO וגם HELO נכשלו, הודעה: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 נראה כי שרת SMTP אינו תומך במצבי אימות כלשהם שאנחנו תומכים בהם [CRAM-MD5|PLAIN|LOGIN], מדלג על אימות, בידיעה שהוא קרוב לוודאי ייכשל… מצבי אימות שרת: %1 - + Email Notification Error: %1 שגיאת התראת דוא״ל: %1 @@ -5600,299 +5927,283 @@ Please install it manually. ביטורנט - + RSS RSS - - Web UI - ממשק רשת - - - + Advanced מתקדם - + Customize UI Theme... - + התאם אישית ערכת נושא… - + Transfer List רשימת העברות - + Confirm when deleting torrents אשר בעת מחיקת טורנטים - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. השתמש בצבעי שורות לסירוגין - + Hide zero and infinity values הסתר ערכים של אפס ואינסוף - + Always תמיד - - Paused torrents only - טורנטים מושהים בלבד - - - + Action on double-click פעולה בלחיצה כפולה - + Downloading torrents: טורנטים בהורדה: - - - Start / Stop Torrent - התחל / עצור טורנט - - - - + + Open destination folder פתח תיקיית יעד - - + + No action ללא פעולה - + Completed torrents: טורנטים שלמים: - + Auto hide zero status filters - + Desktop שולחן עבודה - + Start qBittorrent on Windows start up הפעל את qBittorrent בהזנק Windows - + Show splash screen on start up הראה מסך מתז בהזנק - + Confirmation on exit when torrents are active אישור ביציאה כאשר טורנטים פעילים - + Confirmation on auto-exit when downloads finish אישור ביציאה אוטומטית בעת סיום הורדות - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB ק״ב - + + Show free disk space in status bar + + + + Torrent content layout: סידור תוכן של טורנט: - + Original מקורי - + Create subfolder צור תת־תיקייה - + Don't create subfolder אל תיצור תת־תיקייה - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue הוסף לראש התור - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... הוסף… - + Options.. אפשרויות… - + Remove הסר - + Email notification &upon download completion שלח בדוא״ל התראה בעת השלמת הורדה - + + Send test email + שלח דוא״ל בחינה + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: פרוטוקול חיבור עמיתים: - + Any כל דבר - + I2P (experimental) I2P (ניסיוני) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode מצב מעורבב - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering &סינון IP - + Schedule &the use of alternative rate limits תזמן את ה&שימוש במגבלות קצב חלופיות - + From: From start time מן: - + To: To end time אל: - + Find peers on the DHT network מצא עמיתים על רשת DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5901,145 +6212,190 @@ Disable encryption: Only connect to peers without protocol encryption השבת הצפנה: התחבר רק אל עמיתים בלי הצפנת פרוטוקול - + Allow encryption התר הצפנה - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">עוד מידע</a>) - + Maximum active checking torrents: טורנטים נבדקים פעילים מרביים: - + &Torrent Queueing תור &טורנטים - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - הוסף באופן &אוטומטי עוקבנים אלו להורדות חדשות: - - - + RSS Reader קורא RSS - + Enable fetching RSS feeds אפשר משיכת הזנות RSS - + Feeds refresh interval: מרווח ריענון הזנות: - + Same host request delay: - + Maximum number of articles per feed: מספר מרבי של מאמרים להזנה: - - - + + + min minutes דק' - + Seeding Limits מגבלות זריעה - - Pause torrent - השהה טורנט - - - + Remove torrent הסר טורנט - + Remove torrent and its files הסר טורנט ואת קבציו - + Enable super seeding for torrent אפשר זריעת־על עבור טורנט - + When ratio reaches כאשר יחס מגיע אל - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + עצור טורנט + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + כתובת: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader מורידן אוטומטי של טורנטי RSS - + Enable auto downloading of RSS torrents אפשר הורדה אוטומטית של טורנטי RSS - + Edit auto downloading rules... ערוך כללי הורדה אוטומטית… - + RSS Smart Episode Filter מסנן פרקים חכם RSS - + Download REPACK/PROPER episodes הורד פרקי REPACK/PROPER - + Filters: מסננים: - + Web User Interface (Remote control) ממשק משתמש של רשת (שלט רחוק) - + IP address: כתובת IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6047,42 +6403,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv ציין כתובת IPv4 או כתובת IPv6. אתה יכול לציין "0.0.0.0" עבור כתובת IPv4 כלשהי, "::" עבור כתובת IPv6 כלשהי, או "*" עבור IPv4 וגם IPv6. - + Ban client after consecutive failures: החרם לקוח לאחר כישלונות רצופים: - + Never אף פעם - + ban for: החרם למשך: - + Session timeout: פסק זמן של שיח: - + Disabled מושבת - - Enable cookie Secure flag (requires HTTPS) - אפשר דגל של עוגייה מאובטחת (דורש HTTPS) - - - + Server domains: תחומי שרת: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6095,442 +6446,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &השתמש ב־HTTPS במקום ב־HTTP - + Bypass authentication for clients on localhost עקוף אימות עבור לקוחות על localhost - + Bypass authentication for clients in whitelisted IP subnets עקוף אימות עבור לקוחות אשר בתת־רשתות IP ברשימה לבנה - + IP subnet whitelist... רשימה לבנה של תת־רשתות IP… - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name &עדכן את השם של התחום הדינמי שלי - + Minimize qBittorrent to notification area מזער את qBittorrent לאזור ההתראות - + + Search + חיפוש + + + + WebUI + + + + Interface ממשק - + Language: שפה: - + + Style: + סגנון: + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: סגנון איקון המגש: - - + + Normal רגיל - + File association שיוך קבצים - + Use qBittorrent for .torrent files השתמש ב־qBittorrent עבור קבצי torrent. - + Use qBittorrent for magnet links השתמש ב־qBittorrent עבור קישורי מגנט - + Check for program updates בדוק אחר עדכוני תוכנה - + Power Management ניהול צריכת חשמל - + + &Log Files + + + + Save path: נתיב שמירה: - + Backup the log file after: גבה את קובץ היומן לאחר: - + Delete backup logs older than: מחק יומני גיבוי שישנים יותר מן: - + + Show external IP in status bar + + + + When adding a torrent בעת הוספת טורנט - + Bring torrent dialog to the front הבא את דו שיח הטורנט לחזית - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled מחק גם קבצי טורנט שהוספתם בוטלה - + Also when addition is cancelled גם כאשר הוספה מבוטלת - + Warning! Data loss possible! אזהרה! אבדן נתונים אפשרי! - + Saving Management ניהול שמירה - + Default Torrent Management Mode: מצב ברירת מחדל של ניהול טורנטים: - + Manual ידני - + Automatic אוטומטי - + When Torrent Category changed: כאשר קטגורית טורנט השתנתה: - + Relocate torrent מקם מחדש טורנט - + Switch torrent to Manual Mode החלף טורנט למצב ידני - - + + Relocate affected torrents מקם מחדש טורנטים מושפעים - - + + Switch affected torrents to Manual Mode החלף טורנטים מושפעים למצב ידני - + Use Subcategories השתמש בתת־קטגוריות - + Default Save Path: נתיב ברירת מחדל של שמירה: - + Copy .torrent files to: העתק קבצי torrent. אל: - + Show &qBittorrent in notification area הראה את &qBittorrent באזור ההתראות - - &Log file - קובץ &יומן - - - + Display &torrent content and some options הצג תוכן &טורנט ומספר אפשרויות - + De&lete .torrent files afterwards מ&חק קבצי .torrent לאחר מכן - + Copy .torrent files for finished downloads to: העתק קבצי torrent. עבור הורדות שהסתיימו אל: - + Pre-allocate disk space for all files הקצה מראש מקום בכונן עבור כל הקבצים - + Use custom UI Theme השתמש בערכת נושא UI מותאמת אישית - + UI Theme file: קובץ ערכת נושא UI: - + Changing Interface settings requires application restart שינוי הגדרות ממשק דורש הפעלה מחדש של היישום - + Shows a confirmation dialog upon torrent deletion מראה דו־שיח אימות בעת מחיקת טורנט - - + + Preview file, otherwise open destination folder הצג מראש קובץ, אחרת פתח תיקיית יעד - - - Show torrent options - הראה אפשרויות טורנט - - - + Shows a confirmation dialog when exiting with active torrents מראה דו־שיח אימות בעת יציאה עם טורנטים פעילים - + When minimizing, the main window is closed and must be reopened from the systray icon בעת מיזעור, החלון הראשי נסגר וחייב להיפתח מחדש מאיקון אזור ההתראות - + The systray icon will still be visible when closing the main window איקון אזור ההתראות ייראה בזמן סגירת החלון הראשי - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window סגור את qBittorrent לאזור ההתראות - + Monochrome (for dark theme) מונוכרום (עבור ערכת נושא כהה) - + Monochrome (for light theme) מונוכרום (עבור ערכת נושא בהירה) - + Inhibit system sleep when torrents are downloading עכב שינת מערכת כאשר טורנטים יורדים - + Inhibit system sleep when torrents are seeding עכב שינת מערכת כאשר טורנטים נזרעים - + Creates an additional log file after the log file reaches the specified file size יוצר קובץ יומן נוסף לאחר שקובץ היומן מגיע אל הגודל המצוין של הקובץ - + days Delete backup logs older than 10 days ימים - + months Delete backup logs older than 10 months חודשים - + years Delete backup logs older than 10 years שנים - + Log performance warnings כתוב ביומן אזהרות ביצוע - - The torrent will be added to download list in a paused state - הטורנט יתווסף אל רשימת ההורדות במצב מושהה - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state אל תתחיל את ההורדה באופן אוטומטי - + Whether the .torrent file should be deleted after adding it האם על קובץ הטורנט להימחק לאחר הוספתו - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. הקצה גדלי קובץ מלאים בכונן לפני התחלת הורדות, כדי למזער קיטוע. שימושי רק עבור כוננים קשיחים. - + Append .!qB extension to incomplete files הוסף סיומת .!qB אל קבצים בלתי שלמים - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it כאשר טורנט מורד, הצע להוסיף טורנטים מקבצי .torrent כלשהם שנמצאים בתוכו - + Enable recursive download dialog אפשר דו־שיח של הורדה נסיגתית - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually אוטומטי: קניניי טורנט שונים (לדוג' נתיב שמירה) יוחלטו ע״י הקטגוריה המשויכת ידני: קניניי טורנט שונים (לדוג' נתיב שמירה) חייבים להיקצות באופן ידני - + When Default Save/Incomplete Path changed: כאשר נתיב ברירת מחדל של שמירה/אי־שלמות השתנה: - + When Category Save Path changed: כאשר נתיב שמירת קטגוריה השתנה: - + Use Category paths in Manual Mode השתמש בנתיבי קטגוריה במצב ידני - + Resolve relative Save Path against appropriate Category path instead of Default one פתור נתיב שמירה קשור משפחה כנגד נתיב קטגוריה הולם במקום נתיב ברירת המחדל - + Use icons from system theme - + Window state on start up: מצב חלון בהזנק: - + qBittorrent window state on start up - + Torrent stop condition: תנאי עצירה : - - + + None (כלום) - - + + Metadata received מטא־נתונים התקבלו - - + + Files checked קבצים שנבדקו - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: השתמש בנתיב אחר עבור טורנטים בלתי שלמים: - + Automatically add torrents from: הוסף טורנטים באופן אוטומטי מן: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6547,766 +6939,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver מקבל - + To: To receiver אל: - + SMTP server: שרת SMTP: - + Sender שולח - + From: From sender מאת: - + This server requires a secure connection (SSL) שרת זה דורש חיבור מאובטח (SSL) - - + + Authentication אימות - - - - + + + + Username: שם משתמש: - - - - + + + + Password: סיסמה: - + Run external program הרץ תוכנית חיצונית - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window הראה חלון מסוף - + TCP and μTP TCP ו־μTP - + Listening Port פתחת האזנה - + Port used for incoming connections: פתחה המשמשת לחיבורים נכנסים: - + Set to 0 to let your system pick an unused port הגדר אל 0 כדי לתת למערכת שלך לבחור פתחה שאינה בשימוש - + Random אקראי - + Use UPnP / NAT-PMP port forwarding from my router השתמש בקידום פתחות UPnP / NAT-PMP מהנתב שלי - + Connections Limits מגבלות חיבורים - + Maximum number of connections per torrent: מספר מרבי של חיבורים לכל טורנט: - + Global maximum number of connections: מספר מרבי כללי של חיבורים: - + Maximum number of upload slots per torrent: מספר מרבי של חריצי העלאה לכל טורנט: - + Global maximum number of upload slots: מספר מרבי כללי של חריצי העלאה: - + Proxy Server שרת ייפוי כוח - + Type: סוג: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: מארח: - - - + + + Port: פתחה: - + Otherwise, the proxy server is only used for tracker connections אחרת, שרת ייפוי הכוח משמש רק לחיבורי עוקבנים - + Use proxy for peer connections השתמש בייפוי כוח עבור חיבורי עמיתים - + A&uthentication &אימות - - Info: The password is saved unencrypted - מידע: הסיסמה נשמרת באופן בלתי מוצפן - - - + Filter path (.dat, .p2p, .p2b): נתיב מסנן (.dat, .p2p, .p2b): - + Reload the filter טען מחדש את המסנן - + Manually banned IP addresses... כתובות IP מוחרמות באופן ידני… - + Apply to trackers החל על עוקבנים - + Global Rate Limits מגבלות קצב כלליות - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s ק״ב/ש - - + + Upload: העלאה: - - + + Download: הורדה: - + Alternative Rate Limits מגבלות קצב חלופיות - + Start time זמן התחלה - + End time זמן סוף - + When: מתי: - + Every day כל יום - + Weekdays ימי חול - + Weekends סופי שבוע - + Rate Limits Settings הגדרות מגבלות קצב - + Apply rate limit to peers on LAN החל מגבלת קצב על עמיתים ב־LAN - + Apply rate limit to transport overhead החל מגבלת קצב על תקורת תעבורה - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol החל מגבלת קצב על פרוטוקול µTP - + Privacy פרטיות - + Enable DHT (decentralized network) to find more peers אפשר DHT (רשת מבוזרת) כדי למצוא יותר עמיתים - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) החלף עמיתים עם לקוחות ביטורנט תואמים (µTorrent, Vuze, …) - + Enable Peer Exchange (PeX) to find more peers אפשר החלפת עמיתים (PeX) כדי למצוא יותר עמיתים - + Look for peers on your local network חפש עמיתים על הרשת המקומית שלך - + Enable Local Peer Discovery to find more peers אפשר גילוי עמיתים מקומיים כדי למצוא יותר עמיתים - + Encryption mode: מצב הצפנה: - + Require encryption דרוש הצפנה - + Disable encryption השבת הצפנה - + Enable when using a proxy or a VPN connection אפשר בעת שימוש בחיבור ייפוי כוח או בחיבור VPN - + Enable anonymous mode אפשר מצב אלמוני - + Maximum active downloads: הורדות פעילות מרביות: - + Maximum active uploads: העלאות פעילות מרביות: - + Maximum active torrents: טורנטים פעילים מרביים: - + Do not count slow torrents in these limits אל תחשיב טורנטים איטיים במגבלות אלו - + Upload rate threshold: סף קצב העלאה: - + Download rate threshold: סף קצב הורדה: - - - - + + + + sec seconds שניות - + Torrent inactivity timer: קוצב־זמן של אי־פעילות טורנט: - + then לאחר מכן - + Use UPnP / NAT-PMP to forward the port from my router השתמש ב־UPnP / NAT-PMP כדי להעביר הלאה את הפתחה מהנתב שלי - + Certificate: תעודה: - + Key: מפתח: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>מידע אודות תעודות</a> - + Change current password שנה סיסמה נוכחית - - Use alternative Web UI - השתמש בממשק רשת חלופי - - - + Files location: מיקום קבצים: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security אבטחה - + Enable clickjacking protection אפשר הגנה מפני מחטף לחיצה - + Enable Cross-Site Request Forgery (CSRF) protection אפשר הגנה מפני זיוף בקשות חוצות־אתרים (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation אפשר תיקוף של כותרת מארח - + Add custom HTTP headers הוסף כותרות HTTP מותאמות אישית - + Header: value pairs, one per line כותרת: זוגות ערכים, אחד לשורה - + Enable reverse proxy support אפשר תמיכה בייפוי כוח מהופך - + Trusted proxies list: רשימת ייפויי כוח מהימנים: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: שירות: - + Register הירשם - + Domain name: שם תחום: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! על ידי אפשור אפשרויות אלו, אתה יכול <strong>לאבד בצורה בלתי הפיכה</strong> את קבצי הטורנט שלך! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog אם תאפשר את האפשרות השנייה (&ldquo;גם כאשר הוספה מבוטלת &rdquo;) קובץ הטורנט <strong>יימחק</strong> אפילו אם תלחץ על &ldquo;<strong>ביטול</strong>&rdquo; בדו־שיח &ldquo;הוספת טורנט&rdquo; - + Select qBittorrent UI Theme file בחר קובץ ערכת נושא UI של qBittorrent - + Choose Alternative UI files location בחר מיקום של קבצי ממשק חלופי - + Supported parameters (case sensitive): פרמטרים נתמכים (תלוי רישיות): - + Minimized ממוזער - + Hidden מוסתר - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: שם טורנט - + %L: Category %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: עוקבן נוכחי - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") עצה: תמצת פרמטר בעזרת סימני ציטוט כדי למנוע ממלל להיחתך בשטח לבן (לדוגמה, "%N") - + + Test email + בחן דוא״ל + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (כלום) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds טורנט ייחשב איטי אם הקצבים של הורדתו והעלאתו נשארים מתחת לערכים אלו עבור שניות "קוצב־זמן של אי־פעילות טורנט" - + Certificate תעודה - + Select certificate בחר תעודה - + Private key מפתח פרטי - + Select private key בחר מפתח פרטי - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + מערכת + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + מערכת + + + Select folder to monitor בחר תיקייה לניטור - + Adding entry failed הוספת כניסה נכשלה - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error שגיאת מיקום - - + + Choose export directory בחר תיקיית ייצוא - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well כאשר אפשרויות אלו מאופשרות, qBittorrent <strong>ימחק</strong> קבצי טורנט לאחר שהם התווספו בהצלחה (האפשרות הראשונה) או לא (האפשרות השנייה) לתור ההורדות. זה יחול <strong>לא רק</strong> על הקבצים שנפתחו דרך פעולת התפריט &ldquo;הוספת טורנט&rdquo; אלא גם על אלו שנפתחו דרך <strong>שיוך סוג קובץ</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI קובץ (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: תגיות (מופרדות ע״י פסיק) - + %I: Info hash v1 (or '-' if unavailable) %I: גיבוב מידע גרסה 1 (או '-' אם לא זמין) - + %J: Info hash v2 (or '-' if unavailable) %J: גיבוב מידע גרסה 2 (או '-' אם לא זמין) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: זהות טורנט (או גיבוב מידע SHA-1 עבור טורנט גרסה 1 או גיבוב מידע SHA-256 קטום עבור טורנט גרסה 2/היברידי) - - - + + + Choose a save directory בחירת תיקיית שמירה - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file בחר קובץ מסנן IP - + All supported filters כל המסננים הנתמכים - + The alternative WebUI files location cannot be blank. - + 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 כללים הוחלו. - + Preferences העדפות - + Time Error שגיאת זמן - + The start time and the end time can't be the same. זמן ההתחלה וזמן הסוף אינם יכולים להיות אותו הדבר. - - + + Length Error שגיאת אורך @@ -7314,241 +7751,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown לא ידוע - + Interested (local) and choked (peer) מעוניין (מקומי) וחנוק (עמית) - + Interested (local) and unchoked (peer) מעוניין (מקומי) ולא חנוק (עמית) - + Interested (peer) and choked (local) מעוניין (עמית) וחנוק (מקומי) - + Interested (peer) and unchoked (local) מעוניין (עמית) ולא חנוק (מקומי) - + Not interested (local) and unchoked (peer) לא מעוניין (מקומי) ולא חנוק (עמית) - + Not interested (peer) and unchoked (local) לא מעוניין (עמית) ולא חנוק (מקומי) - + Optimistic unchoke לא חנוק אופטימי - + Peer snubbed עמית השתחצן - + Incoming connection חיבור נכנס - + Peer from DHT עמית מן DHT - + Peer from PEX עמית מן PEX - + Peer from LSD עמית מן LSD - + Encrypted traffic תעבורה מוצפנת - + Encrypted handshake לחיצת יד מוצפנת + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region מדינה/אזור - + IP/Address IP/כתובת - + Port פתחה - + Flags דגלים - + Connection חיבור - + Client i.e.: Client application לקוח - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. רלוונטיות - + Files i.e. files that are being downloaded right now קבצים - + Column visibility נראות עמודות - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן - + Add peers... הוסף עמיתים… - - + + Adding peers מוסיף עמיתים - + Some peers cannot be added. Check the Log for details. מספר עמיתים אינם יכולים להתווסף. בדוק את היומן לפרטים. - + Peers are added to this torrent. עמיתים מתווספים אל טורנט זה. - - + + Ban peer permanently החרם עמית לצמיתות - + Cannot add peers to a private torrent לא ניתן להוסיף עמיתים אל טורנט פרטי - + Cannot add peers when the torrent is checking לא ניתן להוסיף עמיתים כאשר הטורנט נבדק - + Cannot add peers when the torrent is queued לא ניתן להוסיף עמיתים כאשר הטורנט בתור - + No peer was selected עמית לא נבחר - + Are you sure you want to permanently ban the selected peers? האם אתה בטוח שאתה רוצה להחרים לצמיתות את העמיתים הנבחרים? - + Peer "%1" is manually banned עמית "%1" מוחרם באופן ידני - + N/A לא זמין - + Copy IP:port העתק IP:פתחה @@ -7566,7 +8008,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not רשימת עמיתים להוספה (IP אחד לשורה): - + Format: IPv4:port / [IPv6]:port תסדיר: IPv4:פתחה / [IPv6]:פתחה @@ -7607,27 +8049,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: קבצים בחתיכה זו: - + File in this piece: קובץ בחתיכה זו: - + File in these pieces: קובץ בחתיכות אלו: - + Wait until metadata become available to see detailed information המתן עד שמטא־נתונים יהפכו לזמינים כדי לראות מידע מפורט - + Hold Shift key for detailed information החזק את מקש Shift למידע מפורט @@ -7640,58 +8082,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not מתקעי חיפוש - + Installed search plugins: מתקעי חיפוש מותקנים: - + Name שם - + Version גרסה - + Url כתובת - - + + Enabled מאופשר - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. אזהרה: הייה בטוח להיענות לחוקי זכויות היוצרים של מדינתך בעת הורדת טורנטים מכל אחד ממנועי חיפוש אלו. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one התקן אחד חדש - + Check for updates בדוק אחר עדכונים - + Close סגור - + Uninstall הסר התקנה @@ -7811,98 +8253,65 @@ Those plugins were disabled. מקור מתקע - + Search plugin source: מקור מתקע חיפוש: - + Local file קובץ מקומי - + Web link קישור רשת - - PowerManagement - - - qBittorrent is active - qBittorrent פעיל - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: הקבצים הבאים מטורנט "%1" תומכים בהצגה מראש, אנא בחר אחד מהם: - + Preview הצג מראש - + Name שם - + Size גודל - + Progress התקדמות - + Preview impossible תצוגה מקדימה בלתי אפשרית - + Sorry, we can't preview this file: "%1". סליחה, בלתי ניתן להציג מראש קובץ זה: "%1". - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן @@ -7915,27 +8324,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist נתיב אינו קיים - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7976,12 +8385,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: ירד: - + Availability: זמינות: @@ -7996,53 +8405,53 @@ Those plugins were disabled. העברה - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) משך זמן פעיל: - + ETA: זמן משוער שנותר: - + Uploaded: הועלה: - + Seeds: זורעים: - + Download Speed: מהירות הורדה: - + Upload Speed: מהירות העלאה: - + Peers: עמיתים: - + Download Limit: מגבלת הורדה: - + Upload Limit: מגבלת העלאה: - + Wasted: בוזבז: @@ -8052,193 +8461,220 @@ Those plugins were disabled. חיבורים: - + Information מידע - + Info Hash v1: גיבוב מידע גרסה 1: - + Info Hash v2: גיבוב מידע גרסה 2: - + Comment: הערה: - + Select All בחר הכול - + Select None אל תבחר כלום - + Share Ratio: יחס שיתוף: - + Reannounce In: הכרז מחדש בעוד: - + Last Seen Complete: נראה לאחרונה שלם: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + פופולריות: + + + Total Size: גודל כולל: - + Pieces: חתיכות: - + Created By: נוצר ע״י: - + Added On: התווסף ב: - + Completed On: הושלם ב: - + Created On: נוצר ב: - + + Private: + פרטי: + + + Save Path: נתיב שמירה: - + Never אף פעם - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (יש %3) - - + + %1 (%2 this session) %1 (%2 שיח נוכחי) - - + + + N/A לא זמין - + + Yes + כן + + + + No + לא + + + %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 ממוצע) - - New Web seed - זורע רשת חדש + + Add web seed + Add HTTP source + - - Remove Web seed - הסר זורע רשת + + Add web seed: + - - Copy Web seed URL - העתק כתובת זורע רשת + + + This web seed is already in the list. + - - Edit Web seed URL - ערוך כתובת זורע רשת - - - + Filter files... סנן קבצים… - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled גרפי מהירות מושבתים - + You can enable it in Advanced Options אתה יכול לאפשר את זה באפשרויות מתקדמות - - New URL seed - New HTTP source - זורע כתובת חדש - - - - New URL seed: - זורע כתובת חדש: - - - - - This URL seed is already in the list. - זורע כתובת זה נמצא כבר ברשימה. - - - + Web seed editing עריכת זורע רשת - + Web seed URL: כתובת זורע רשת: @@ -8246,33 +8682,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. תסדיר נתונים בלתי תקף. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 לא היה ניתן לשמור נתוני מורידן אוטומטי RSS ב־%1. שגיאה: %2 - + Invalid data format תסדיר נתונים בלתי תקף - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 לא היה ניתן לטעון כללי מורידן אוטומטי RSS. סיבה: %1 @@ -8280,22 +8716,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 כישלון בהורדת הזנת RSS ב־'%1'. סיבה: %2 - + RSS feed at '%1' updated. Added %2 new articles. הזנת RSS ב־'%1' עודכנה. %2 מאמרים חדשים התווספו. - + Failed to parse RSS feed at '%1'. Reason: %2 כישלון בניתוח הזנת RSS ב־'%1'. סיבה: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. הזנת RSS ב-'%1' ירדה בהצלחה. אבחון שלה מתחיל. @@ -8331,12 +8767,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. הזנת RSS בלתי תקפה. - + %1 (line: %2, column: %3, offset: %4). %1 (שורה: %2, עמודה: %3, קיזוז: %4). @@ -8344,103 +8780,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" לא היה ניתן לשמור תצורת שיח RSS. קובץ: "%1". שגיאה: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" לא היה ניתן לשמור נתוני שיח RSS. קובץ: "%1". שגיאה: "%2" - - + + RSS feed with given URL already exists: %1. הזנת RSS עם הכתובת שניתנה קיימת כבר: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. לא ניתן להעביר תיקיית שורש. - - + + Item doesn't exist: %1. פריט אינו קיים: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. לא ניתן למחוק תיקיית שורש. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. לא היה ניתן לטעון הזנת RSS. הזנה: "%1". סיבה: מען נדרש. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. לא היה ניתן לטעון הזנת RSS. הזנה: "%1". סיבה: מזהה משתמש בלתי תקף. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. הזנת RSS כפולה התגלתה. מזהה משתמש: "%1". שגיאה: התצורה נראית פגומה. - + Couldn't load RSS item. Item: "%1". Invalid data format. לא היה ניתן לטעון פריט RSS. פריט: "%1". תסדיר נתונים בלתי תקף. - + Corrupted RSS list, not loading it. רשימת RSS פגומה, בלתי אפשרי לטעון אותה. - + Incorrect RSS Item path: %1. נתיב שגוי של פריט RSS: %1. - + RSS item with given path already exists: %1. פריט RSS עם הנתיב שניתן קיים כבר: %1. - + Parent folder doesn't exist: %1. תיקיית הורה אינה קיימת: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + כתובת: + + + + Refresh interval: + מרווח ריענון: + + + + sec + שניות + + + + Default + ברירת מחדל + + RSSWidget @@ -8460,8 +8937,8 @@ Those plugins were disabled. - - + + Mark items read סמן פריטים כנקראו @@ -8486,132 +8963,115 @@ Those plugins were disabled. טורנטים: (לחיצה כפולה כדי להוריד) - - + + Delete מחק - + Rename... שנה שם… - + Rename שנה שם - - + + Update עדכן - + New subscription... מינוי חדש… - - + + Update all feeds עדכן את כל ההזנות - + Download torrent הורד טורנט - + Open news URL פתיחת כתובת חדשות - + Copy feed URL העתקת כתובת הזנה - + New folder... תיקייה חדשה… - - Edit feed URL... - ערוך כתובת הזנה… + + Feed options... + - - Edit feed URL - ערוך כתובת הזנה - - - + Please choose a folder name אנא בחר שם תיקייה - + Folder name: שם תיקייה: - + New folder תיקייה חדשה - - - Please type a RSS feed URL - אנא הקלד כתובת של הזנת RSS - - - - - Feed URL: - כתובת הזנה: - - - + 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: שם הזנה חדשה: - + Rename failed שינוי שם נכשל - + Date: תאריך: - + Feed: הזנה: - + Author: מחבר: @@ -8619,38 +9079,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. פייתון חייב להיות מותקן כדי להשתמש במנוע החיפוש. - + Unable to create more than %1 concurrent searches. לא היה ניתן ליצור יותר מן %1 חיפושים במקביל. - - + + Offset is out of range קיזוז מחוץ לטווח - + All plugins are already up to date. כל המתקעים כבר מעודכנים. - + Updating %1 plugins מעדכן %1 מתקעים - + Updating plugin %1 מעדכן מתקע %1 - + Failed to check for plugin updates: %1 כישלון בבדיקה אחר עדכוני מתקע: %1 @@ -8725,132 +9185,142 @@ Those plugins were disabled. גודל: - + 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 - מנוע חיפוש - - - + Filter search results... סנן תוצאות חיפוש… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results תוצאות (מראה <i>%1</i> מתוך <i>%2</i>): - + Torrent names only שמות טורנט בלבד - + Everywhere בכל מקום - + Use regular expressions השתמש בביטויים רגולריים - + Open download window - פתח חלון הורדה + פתיחת חלון ההורדה - + Download הורד - + Open description page - פתח דף תיאור + פתיחת דף התיאור - + Copy - העתק + העתקה - + Name שם - + Download link קישור הורדה - + Description page URL כתובת של דף תיאור - + Searching... מחפש… - + Search has finished החיפוש הסתיים - + Search aborted החיפוש בוטל - + An error occurred during search... שגיאה התרחשה במהלך החיפוש… - + Search returned no results החיפוש לא הניב תוצאות - + + Engine + מנוע + + + + Engine URL + כתובת מנוע + + + + Published On + פורסם + + + Column visibility נראות עמודות - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן @@ -8858,104 +9328,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. תסדיר בלתי ידוע של קובץ מתקע של מנוע חיפוש. - + Plugin already at version %1, which is greater than %2 מתקע כבר בגרסה %1, שהיא גדולה יותר מן %2 - + A more recent version of this plugin is already installed. גרסה חדשה יותר של מתקע זה מותקנת כבר. - + Plugin %1 is not supported. המתקע %1 אינו נתמך. - - + + Plugin is not supported. המתקע אינו נתמך. - + Plugin %1 has been successfully updated. המתקע %1 עודכן בהצלחה. - + All categories כל הקטגוריות - + Movies סרטים - + TV shows סדרות - + Music מוזיקה - + Games משחקים - + Anime אנימה - + Software תוכנות - + Pictures תמונות - + Books ספרים - + Update server is temporarily unavailable. %1 שרת העדכון אינו זמין זמנית. %1 - - + + Failed to download the plugin file. %1 כישלון בהורדת קובץ המתקע. %1 - + Plugin "%1" is outdated, updating to version %2 המתקע "%1" מיושן, מעדכן אל גרסה %2 - + Incorrect update info received for %1 out of %2 plugins. מידע שגוי של עדכון התקבל עבור %1 מתוך %2 מתקעים. - + Search plugin '%1' contains invalid version string ('%2') מתקע החיפוש '%1' מכיל מחרוזת של גרסה בלתי תקפה ('%2') @@ -8965,114 +9435,145 @@ Those plugins were disabled. - - - - Search חיפוש - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. אין מתקעי חיפוש כלשהם מותקנים. לחץ על הכפתור "חפש מתקעים…" בתחתית ימין החלון כדי להתקין כמה. - + Search plugins... מתקעי חיפוש… - + A phrase to search for. ביטוי לחפש אחריו. - + Spaces in a search term may be protected by double quotes. רווחים במונח חיפוש יכולים להתמגן ע״י מרכאות כפולות. - + Example: Search phrase example דוגמה: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: חפש אחר <b>foo bar</b> - + All plugins כל המתקעים - + Only enabled רק מאופשרים - + + + Invalid data format. + תסדיר נתונים בלתי תקף. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: חפש אחר <b>foo</b> ו־<b>bar</b> - + + Refresh + + + + Close tab סגור לשונית - + Close all tabs סגור את כל הלשוניות - + Select... בחר… - - - + + Search Engine מנוע חיפוש - + + Please install Python to use the Search Engine. אנא התקן פייתון כדי להשתמש במנוע החיפוש. - + Empty search pattern תבנית חיפוש ריקה - + Please type a search pattern first אנא הקלד תבנית חיפוש תחילה - + + Stop עצור + + + SearchWidget::DataStorage - - Search has finished - החיפוש הסתיים + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - החיפוש נכשל + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9185,34 +9686,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: העלאה: - - - + + + - - - + + + KiB/s ק״ב/ש - - + + Download: הורדה: - + Alternative speed limits מגבלות מהירות חלופיות @@ -9404,32 +9905,32 @@ Click the "Search plugins..." button at the bottom right of the window זמן ממוצע בתור: - + Connected peers: עמיתים מחוברים: - + All-time share ratio: יחס שיתוף של כל הזמנים: - + All-time download: הורדה של כל הזמנים: - + Session waste: בזבוז שיח: - + All-time upload: העלאה של כל הזמנים: - + Total buffer size: סה״כ גודל מאגר: @@ -9444,12 +9945,12 @@ Click the "Search plugins..." button at the bottom right of the window משרות ק/פ בתור: - + Write cache overload: עומס יתר מטמון כתיבה: - + Read cache overload: עומס יתר מטמון קריאה: @@ -9468,51 +9969,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: מעמד חיבור: - - + + No direct connections. This may indicate network configuration problems. אין חיבורים ישירים. זה עלול להעיד על בעיות בתצורת הרשת. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 צמתים - + qBittorrent needs to be restarted! qBittorrent צריך להיפעל מחדש! - - - + + + Connection Status: מעמד חיבור: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. לא מקוון. זה אומר בד״כ ש־qBittorrent נכשל להאזין אל הפתחה הנבחרת עבור חיבורים נכנסים. - + Online מקוון - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits לחץ כדי להחליף אל מגבלות מהירות חלופיות - + Click to switch to regular speed limits לחץ כדי להחליף אל מגבלות מהירות רגילה @@ -9542,13 +10069,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - מומשך (0) + Running (0) + רץ (0) - Paused (0) - מושהה (0) + Stopped (0) + נעצר (0) @@ -9610,36 +10137,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) הושלם (%1) + + + Running (%1) + רץ (%1) + - Paused (%1) - מושהה (%1) + Stopped (%1) + נעצר (%1) + + + + Start torrents + התחל טורנטים + + + + Stop torrents + עצור טורנטים Moving (%1) מעביר (%1) - - - Resume torrents - המשך טורנטים - - - - Pause torrents - השהה טורנטים - Remove torrents הסר טורנטים - - - Resumed (%1) - מומשך (%1) - Active (%1) @@ -9711,31 +10238,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags הסר תגיות שאינן בשימוש - - - Resume torrents - המשך טורנטים - - - - Pause torrents - השהה טורנטים - Remove torrents הסר טורנטים - - New Tag - תגית חדשה + + Start torrents + התחל טורנטים + + + + Stop torrents + עצור טורנטים Tag: תגית: + + + Add tag + + Invalid tag name @@ -9882,32 +10409,32 @@ Please choose a different name and try again. TorrentContentModel - + Name שם - + Progress התקדמות - + Download Priority עדיפות הורדה - + Remaining נותר - + Availability זמינות - + Total Size גודל כולל @@ -9952,98 +10479,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error שגיאת שינוי שם - + Renaming משנה שם - + New name: שם חדש: - + Column visibility נראות עמודות - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן - + Open - פתח + פתיחה - + Open containing folder - פתח תיקייה מכילה + פתיחת התיקייה המכילה - + Rename... שנה שם… - + Priority עדיפות - - + + Do not download אל תוריד - + Normal רגיל - + High גבוהה - + Maximum מרבית - + By shown file order לפי סדר קבצים נראים - + Normal priority עדיפות רגילה - + High priority עדיפות גבוהה - + Maximum priority עדיפות מרבית - + Priority by shown file order עדיפות לפי סדר קבצים נראים @@ -10051,17 +10578,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10090,13 +10617,13 @@ Please choose a different name and try again. - + Select file בחר קובץ - + Select folder בחר תיקייה @@ -10171,87 +10698,83 @@ Please choose a different name and try again. שדות - + You can separate tracker tiers / groups with an empty line. אתה יכול להפריד מדרגים/קבוצות של עוקבן באמצעות שורה ריקה. - + Web seed URLs: כתובות זורעי רשת: - + Tracker URLs: כתובות עוקבנים: - + Comments: הערות: - + Source: מקור: - + Progress: התקדמות: - + Create Torrent צור טורנט - - + + Torrent creation failed יצירת טורנט נכשלה - + Reason: Path to file/folder is not readable. סיבה: נתיב אל קובץ/תיקייה אינו קריא. - + Select where to save the new torrent בחר איפה לשמור את הטורנט החדש - + Torrent Files (*.torrent) קבצי טורנט (*.torrent) - Reason: %1 - סיבה: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" סיבה: "%1" - + Add torrent failed הוספת טורנט נכשלה - + Torrent creator יוצר הטורנטים - + Torrent created: טורנט נוצר: @@ -10259,32 +10782,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 לא היה ניתן לאחסן תצורה של תיקיות תחת מעקב אל %1. שגיאה: %2 - + Watched folder Path cannot be empty. נתיב של תיקייה תחת מעקב אינו יכול להיות ריק. - + Watched folder Path cannot be relative. נתיב של תיקייה תחת מעקב אינו יכול להיות קרוב משפחה. @@ -10292,44 +10815,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 כישלון בפתיחת קובץ מגנט: %1 - + Rejecting failed torrent file: %1 מסרב קובץ טורנט כושל: %1 - + Watching folder: "%1" מעקב אחר תיקייה: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - מטא־נתונים בלתי תקפים - - TorrentOptionsDialog @@ -10358,176 +10868,164 @@ Please choose a different name and try again. השתמש בנתיב אחר עבור טורנט בלתי שלם - + Category: קטגוריה: - - Torrent speed limits - מגבלות מהירות של טורנט + + Torrent Share Limits + - + Download: הורדה: - - + + - - + + Torrent Speed Limits + + + + + KiB/s ק״ב/ש - + These will not exceed the global limits אלו לא יחרגו מהמגבלות הכלליות - + Upload: העלאה: - - Torrent share limits - מגבלות שיתוף של טורנט - - - - Use global share limit - השתמש במגבלת שיתוף כללית - - - - Set no share limit - אל תגדיר מגבלת שיתוף - - - - Set share limit to - הגדר מגבלת שיתוף אל - - - - ratio - יחס - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent השבת DHT עבור טורנט זה - + Download in sequential order הורד בסדר עוקב - + Disable PeX for this torrent השבת PeX עבור טורנט זה - + Download first and last pieces first הורד תחילה חתיכה ראשונה ואחרונה - + Disable LSD for this torrent השבת LSD עבור טורנט זה - + Currently used categories קטגוריות שנמצאות בשימוש כרגע - - + + Choose save path בחר נתיב שמירה - + Not applicable to private torrents בלתי ישים על טורנטים פרטיים - - - No share limit method selected - שיטת מגבלת שיתוף לא נבחרה - - - - Please select a limit method first - אנא בחר תחילה שיטת מגבלה - TorrentShareLimitsWidget - - - + + + + Default - ברירת מחדל + ברירת מחדל - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - דק' + דק' - + Inactive seeding time: - - Ratio: + + Action when the limit is reached: + + + Stop torrent + עצור טורנט + + + + Remove torrent + הסר טורנט + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + אפשר זריעת־על עבור טורנט + + + + Ratio: + יחס: + TorrentTagsDialog @@ -10537,32 +11035,32 @@ Please choose a different name and try again. - - New Tag - תגית חדשה + + Add tag + - + Tag: תגית: - + Invalid tag name שם תגית בלתי תקף - + Tag name '%1' is invalid. - + Tag exists תגית קיימת - + Tag name already exists. שם תגית קיים כבר. @@ -10570,115 +11068,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. שגיאה: '%1' הוא אינו קובץ תקף של טורנט. - + Priority must be an integer עדיפות חייבת להיות מספר שלם - + Priority is not valid עדיפות אינה תקפה - + Torrent's metadata has not yet downloaded מטא־נתונים של טורנט עדין לא ירדו - + File IDs must be integers זהויות קובץ חייבות להיות מספר שלם - + File ID is not valid זהות קובץ אינה תקפה - - - - + + + + Torrent queueing must be enabled תור טורנטים חייב להיות מאופשר - - + + Save path cannot be empty נתיב שמירה אינו יכול להיות ריק - - + + Cannot create target directory לא ניתן ליצור תיקיית מטרה - - + + Category cannot be empty קטגוריה אינה יכולה להיות ריקה - + Unable to create category לא היה ניתן ליצור קטגוריה - + Unable to edit category לא היה ניתן לערוך קטגוריה - + Unable to export torrent file. Error: %1 לא היה ניתן לייצא קובץ טורנט. שגיאה: %1 - + Cannot make save path לא ניתן ליצור נתיב שמירה - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid הפרמטר 'מיון' בלתי תקף - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" אינו מדדן תקף של קובץ. - + Index %1 is out of bounds. הקשרים של מדדן %1 אזלו. - - + + Cannot write to directory לא ניתן לכתוב בתיקייה - + WebUI Set location: moving "%1", from "%2" to "%3" קביעת מיקום של ממשק רשת: מעביר את "%1" מן "%2" אל "%3" - + Incorrect torrent name שם לא נכון של טורנט - - + + Incorrect category name שם לא נכון של קטגוריה @@ -10709,196 +11222,191 @@ Please choose a different name and try again. TrackerListModel - + Working עובד - + Disabled מושבת - + Disabled for this torrent מושבת עבור טורנט זה - + This torrent is private הטורנט הזה פרטי - + N/A לא זמין - + Updating... מעדכן… - + Not working לא עובד - + Tracker error - + שגיאת עוקבן - + Unreachable - + Not contacted yet קשר לא נוצר עדין - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! + URL/Announce Endpoint + + + + + BT Protocol + פרוטוקול BT + + + + Next Announce + ההכרזה הבאה + + + + Min Announce + + + + Tier נדבך - - Protocol - פרוטוקול - - - + Status מיצב - + Peers עמיתים - + Seeds זורעים - + Leeches עלוקות - + Times Downloaded פעמים שהורד - + Message הודעה - - - Next announce - - - - - Min announce - - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private הטורנט הזה פרטי - + Tracker editing עריכת עוקבן - + Tracker URL: כתובת עוקבן: - - + + Tracker editing failed עריכת עוקבן נכשלה - + The tracker URL entered is invalid. כתובת העוקבן שהוכנסה אינה תקפה. - + The tracker URL already exists. כתובת העוקבן קיימת כבר. - + Edit tracker URL... ערוך כתובת עוקבן… - + Remove tracker הסר עוקבן - + Copy tracker URL - העתק כתובת עוקבן + העתקת כתובת העוקבן - + Force reannounce to selected trackers אלץ הכרזה מחדש אל עוקבנים נבחרים - + Force reannounce to all trackers אלץ הכרזה מחדש לכל העוקבנים - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן - + Add trackers... הוסף עוקבנים… - + Column visibility נראות עמודות @@ -10916,37 +11424,37 @@ Please choose a different name and try again. רשימת עוקבנים להוספה (אחד לשורה): - + µTorrent compatible list URL: כתובת של רשימה תואמת µTorrent: - + Download trackers list - + Add הוסף - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10954,62 +11462,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) אזהרה (%1) - + Trackerless (%1) חסר־עוקבנים (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + שגיאת עוקבן (%1) - + + Other error (%1) + שגיאה אחרת (%1) + + + Remove tracker הסר גשש - - Resume torrents - המשך טורנטים + + Start torrents + התחל טורנטים - - Pause torrents - השהה טורנטים + + Stop torrents + עצור טורנטים - + Remove torrents הסר טורנטים - + Removal confirmation - + אישור הסרה - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + אל תשאל אותי שוב - + All (%1) this is for the tracker filter הכול (%1) @@ -11018,7 +11526,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11110,11 +11618,6 @@ Please choose a different name and try again. 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. בודק נתוני המשכה - - - Paused - מושהה - Completed @@ -11138,220 +11641,252 @@ Please choose a different name and try again. נתקל בשגיאה - + Name i.e: torrent name שם - + Size i.e: torrent size גודל - + Progress % Done התקדמות - - Status - Torrent status (e.g. downloading, seeding, paused) - מעמד + + Stopped + נעצר - + + Status + Torrent status (e.g. downloading, seeding, stopped) + מיצב + + + Seeds i.e. full sources (often untranslated) זורעים - + Peers i.e. partial sources (often untranslated) עמיתים - + Down Speed i.e: Download speed מהירות הורדה - + Up Speed i.e: Upload speed מהירות העלאה - + Ratio Share ratio יחס - + + Popularity + פופולריות + + + ETA i.e: Estimated Time of Arrival / Time left זמן משוער שנותר - + Category קטגוריה - + Tags תגיות - + Added On Torrent was added to transfer list on 01/01/2010 08:00 התווסף בתאריך - + Completed On Torrent was completed on 01/01/2010 08:00 הושלם בתאריך - + Tracker עוקבן - + Down Limit i.e: Download limit מגבלת הורדה - + Up Limit i.e: Upload limit מגבלת העלאה - + Downloaded Amount of data downloaded (e.g. in MB) ירד - + Uploaded Amount of data uploaded (e.g. in MB) הועלה - + 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) העלאה בשיח - + Remaining Amount of data left to download (e.g. in MB) נותר - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) משך זמן פעיל - + + Yes + כן + + + + No + לא + + + Save Path Torrent save path נתיב שמירה - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) הושלם - + Ratio Limit Upload share ratio limit מגבלת יחס - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole נראה לאחרונה שלם - + Last Activity Time passed since a chunk was downloaded/uploaded פעילות אחרונה - + Total Size i.e. Size including unwanted data גודל כולל - + Availability The number of distributed copies of the torrent זמינות - + Info Hash v1 i.e: torrent info hash v1 - גיבוב מידע גרסה 2: {1?} - - - - Info Hash v2 - i.e: torrent info hash v2 - גיבוב מידע גרסה 2: {2?} - - - - Reannounce In - Indicates the time until next trackers reannounce - - + + Info Hash v2 + i.e: torrent info hash v2 + + + + + Reannounce In + Indicates the time until next trackers reannounce + הכרז מחדש בעוד + + + + Private + Flags private torrents + פרטי + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A לא זמין - + %1 ago e.g.: 1h 20m ago %1 קודם לכן - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (נזרע למשך %2) @@ -11360,339 +11895,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility נראות עמודות - + Recheck confirmation אישור בדיקה מחדש - + Are you sure you want to recheck the selected torrent(s)? האם אתה בטוח שאתה רוצה לבדוק מחדש את הטורנטים הנבחרים? - + Rename שינוי שם - + New name: שם חדש: - + Choose save path בחירת נתיב שמירה - - Confirm pause - - - - - Would you like to pause all torrents? - האם אתה רוצה לעצור את כל הטורנטים ? - - - - Confirm resume - - - - - Would you like to resume all torrents? - האם אתה רוצה להמשיך את כל הטורנטים ? - - - + Unable to preview לא היה ניתן להציג מראש - + The selected torrent "%1" does not contain previewable files הטורנט הנבחר "%1" אינו מכיל קבצים ברי־הצגה מראש - + Resize columns שנה גודל עמודות - + Resize all non-hidden columns to the size of their contents שנה גודל של כל העמודות הבלתי מוסתרות אל הגודל של התכנים שלהן - + Enable automatic torrent management אפשר ניהול טורנטים אוטומטי - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. האם אתה בטוח שאתה רוצה לאפשר ניהול טורנטים אוטומטי עבור הטורנטים הנבחרים? ייתכן שהם ימוקמו מחדש. - - Add Tags - הוסף תגיות - - - + Choose folder to save exported .torrent files בחר תיקייה לשמור קבצי טורנט מיוצאים - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" יצוא קובץ טורנט נכשל. טורנט: "%1". נתיב שמירה: "%2". סיבה: "%3" - + A file with the same name already exists קובץ עם אותו השם קיים כבר - + Export .torrent file error שגיאת יצוא קובץ טורנט - + Remove All Tags הסר את כל התגיות - + Remove all tags from selected torrents? האם להסיר את כל התגיות מהטורנטים הנבחרים? - + Comma-separated tags: תגיות מופרדות ע״י פסיקים: - + Invalid tag תגית בלתי תקפה - + Tag name: '%1' is invalid שם התגית: '%1' אינו תקף - - &Resume - Resume/start the torrent - &המשך - - - - &Pause - Pause the torrent - ה&שהה - - - - Force Resu&me - Force Resume/start the torrent - אלץ ה&משכה - - - + Pre&view file... ה&צג מראש קובץ… - + Torrent &options... &אפשרויות טורנט… - + Open destination &folder - פתח &תיקיית יעד + פתיחת &תיקיית היעד - + Move &up i.e. move up in the queue הזז למ&עלה - + Move &down i.e. Move down in the queue הזז למ&טה - + Move to &top i.e. Move to top of the queue הזז ל&ראש - + Move to &bottom i.e. Move to bottom of the queue הזז ל&תחתית - + Set loc&ation... הגדר מי&קום… - + Force rec&heck אלץ &בדיקה חוזרת - + Force r&eannounce אלץ ה&כרזה מחדש - + &Magnet link קישור &מגנט - + Torrent &ID &זהות טורנט - + &Comment - + &Name &שם - + Info &hash v1 &גיבוב מידע גרסה 1 - + Info h&ash v2 ג&יבוב מידע גרסה 2 - + Re&name... שנה &שם… - + Edit trac&kers... ערוך &עוקבנים… - + E&xport .torrent... יי&צא טורנט… - + Categor&y קטגור&יה - + &New... New category... &חדש… - + &Reset Reset category &אפס - + Ta&gs ת&גיות - + &Add... Add / assign multiple tags... &הוסף… - + &Remove All Remove all tags ה&סר הכול - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &תור - + &Copy ה&עתק - + Exported torrent is not necessarily the same as the imported - + Download in sequential order הורד בסדר עוקב - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + &התחל + + + + Sto&p + Stop the torrent + עצ&ור + + + + Force Star&t + Force Resume/start the torrent + אלץ ה&תחלה + + + &Remove Remove the torrent &הסר - + Download first and last pieces first הורד חתיכה ראשונה ואחרונה תחילה - + Automatic Torrent Management ניהול טורנטים אוטומטי - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category מצב אוטומטי אומר שאפיוני טורנט שונים (למשל, נתיב שמירה) יוחלטו ע״י הקטגוריה המשויכת - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - לא יכול לאלץ הכרזה מחדש אם טורנט מושהה/בתור/מאולץ/נבדק - - - + Super seeding mode מצב זריעת־על @@ -11737,28 +12252,28 @@ Please choose a different name and try again. זהות איקון - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11766,7 +12281,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" כישלון בטעינת ערכת נושא UI מהקובץ: "%1" @@ -11797,20 +12317,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" שילוב העדפות נכשל. WebUI https, קובץ: "%1", שגיאה: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" העדפות שולבו: WebUI https, נתונים יוצאו אל קובץ: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". ערך בלתי תקף נמצא בקובץ התצורה, מחזיר אותו אל ברירת מחדל. מפתח: "%1". ערך בלתי תקף: "%2". @@ -11818,32 +12339,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11935,72 +12456,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. סוג בלתי קביל של קובץ, רק קובץ רגיל מותר. - + Symlinks inside alternative UI folder are forbidden. קישורים סמליים בתוך תיקיית ממשק חלופי הם אסורים. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" חסר מפריד ':' בכותרת HTTP מותאמת אישית של ממשק רשת: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' ממשק רשת: כותרת מוצא ומוצא מטרה אינם תואמים! IP מקור: '%1'. כותרת מוצא: '%2'. מוצא מטרה: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' ממשק רשת: כותרת אזכור ומוצא מטרה אינם תואמים! IP מקור: '%1'. כותרת אזכור: '%2'. מוצא מטרה: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' ממשק רשת: כותרת מארח בלתי תקפה, פתחה בלתי תואמת. בקש IP מקור: '%1'. פתחת שרת: '%2'. התקבלה כותרת מארח: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' ממשק רשת: כותרת מארח בלתי תקפה. בקש IP מקור: '%1'. התקבלה כותרת מארח: '%2' @@ -12008,125 +12529,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + שגיאה בלתי ידועה + + misc - + B bytes ב - + KiB kibibytes (1024 bytes) ק״ב - + MiB mebibytes (1024 kibibytes) מ״ב - + GiB gibibytes (1024 mibibytes) ג״ב - + TiB tebibytes (1024 gibibytes) ט״ב - + PiB pebibytes (1024 tebibytes) פ״ב - + EiB exbibytes (1024 pebibytes) ה״ב - + /s per second - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 דקות - + %1h %2m e.g: 3 hours 5 minutes %1 ש' %2 ד' - + %1d %2h e.g: 2 days 10 hours %1 י' %2 ש' - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) לא ידוע - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent יכבה כעת את המחשב כי כל ההורדות שלמות. - + < 1m < 1 minute פחות מדקה diff --git a/src/lang/qbittorrent_hi_IN.ts b/src/lang/qbittorrent_hi_IN.ts index 997a64ee9..648967847 100644 --- a/src/lang/qbittorrent_hi_IN.ts +++ b/src/lang/qbittorrent_hi_IN.ts @@ -14,77 +14,77 @@ बारे में - + Authors निर्माता - + Current maintainer वर्तमान अनुरक्षक - + Greece ग्रीस - - + + Nationality: नागरिकता : - - + + E-mail: ईमेल : - - + + Name: नाम : - + Original author मूल निर्माता - + France फ्रांस - + Special Thanks सादर आभार - + Translators अनुवादक - + License लाइसेंस - + Software Used प्रयुक्त सॉफ्टवेयर - + qBittorrent was built with the following libraries: क्यूबिटटाॅरेंट निम्नलिखित लाइब्रेरी द्वारा निर्मित है : - + Copy to clipboard - + कर्तनपट्टी पर टांकें @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - सर्वाधिकार %1 2006-2024 qBittorrent परियोजना + Copyright %1 2006-2025 The qBittorrent project + सर्वाधिकार %1 2006-2025 qBittorrent परियोजना @@ -166,15 +166,10 @@ यहाँ संचित करें - + Never show again पुनः कभी नहीं दिखायें - - - Torrent settings - टाॅरेंट सेटिंग्स - Set as default category @@ -191,12 +186,12 @@ टाॅरेंट आरंभ करें - + Torrent information टौरेंट सूचना - + Skip hash check हैश जाँच निरस्त @@ -205,6 +200,11 @@ Use another path for incomplete torrent अपूर्ण टॉरेंट हेतु अन्य पथ का प्रयोग करें + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ रोकने की स्थिति - - + + None कोई नहीं - - + + Metadata received मेटाडाटा प्राप्त - + Torrents that have metadata initially will be added as stopped. - - + + Files checked जंची हुई फाइलें - + Add to top of queue कतार में सबसे ऊपर रखें - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog चेक किए जाने पर, विकल्प संवाद के "डाउनलोड" पृष्ठ पर सेटिंग्स की परवाह किए बिना .torrent फ़ाइल को हटाया नहीं जाएगा - + Content layout: सामग्री का अभिविन्यास : - + Original मूल - + Create subfolder उपफोल्डर बनायें - + Don't create subfolder उपफोल्डर न बनायें - + Info hash v1: जानकारी हैश v1 : - + Size: आकार : - + Comment: टिप्पणी : - + Date: दिनांक : @@ -329,151 +329,147 @@ अंतिम बार प्रयुक्त संचय पथ स्मरण करें - + Do not delete .torrent file .torrent फाइल न मिटाएं - + Download in sequential order क्रमबद्ध डाउनलोड करें - + Download first and last pieces first प्रथम व अंतिम खण्ड सबसे पहले डाउनलोड करें - + Info hash v2: जानकारी हैश v2 : - + Select All सभी चुनें - + Select None कुछ न चुनें - + Save as .torrent file... .torrent फाइल के रूप में संचित करें... - + I/O Error इनपुट/आउटपुट त्रुटि - + Not Available This comment is unavailable अनुपलब्ध - + Not Available This date is unavailable अनुपलब्ध - + Not available अनुपलब्ध - + Magnet link अज्ञात मैग्नेट लिंक - + Retrieving metadata... मेटाडाटा प्राप्ति जारी... - - + + Choose save path संचय पथ चुनें - + No stop condition is set. रुकने की स्थिति निर्धारित नहीं है। - + Torrent will stop after metadata is received. मेटाडेटा प्राप्त होने के बाद टॉरेंट बंद हो जाएगा। - Torrents that have metadata initially aren't affected. - जिन टोरेंटों में मेटाडेटा होता है, वे शुरू में प्रभावित नहीं होते हैं। - - - + Torrent will stop after files are initially checked. फाइलों की प्रारंभिक जाँच के बाद टॉरेंट रुक जाएगा। - + This will also download metadata if it wasn't there initially. - - + + N/A लागू नहीं - + %1 (Free space on disk: %2) %1 (डिस्क पर अप्रयुक्त स्पेस : %2) - + Not available This size is unavailable. अनुपलब्ध - + Torrent file (*%1) टॉरेंट फाइल (*%1) - + Save as torrent file टोरेंट फाइल के रूप में संचित करें - + Couldn't export torrent metadata file '%1'. Reason: %2. टाॅरेंट मेटाडाटा फाइल '%1' का निर्यात नहीं हो सका। कारण : %2 - + Cannot create v2 torrent until its data is fully downloaded. जब तक इसका डेटा पूरी तरह से डाउनलोड नहीं हो जाता तब तक v2 टॉरेंट नहीं बना सकता। - + Filter files... फाइलें फिल्टर करें... - + Parsing metadata... मेटाडेटा प्राप्यता जारी... - + Metadata retrieval complete मेटाडेटा प्राप्ति पूर्ण @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + टॉरेंट डाउनलोड हो रहा है... स्रोत: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - टाॅरेंट साझा करने की सीमाएं + टाॅरेंट साझा करने की सीमाएं @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB एमबी - + Recheck torrents on completion पूर्ण होने पर टाॅरेंट पुनः जाँचें - - + + ms milliseconds मिलीसे० - + Setting सेटिंग - + Value Value set for this setting मान - + (disabled) (निष्क्रिय) - + (auto) (स्वत:) - + + min minutes मिनट - + All addresses सभी पते - + qBittorrent Section क्यूबिटटोरेंट खंड - - + + Open documentation शास्त्र खोलें - + All IPv4 addresses सभी आईपी4 पते - + All IPv6 addresses सभी आईपी6 पते - + libtorrent Section libtorrent खंड - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal सामान्य - + Below normal सामान्य से कम - + Medium मध्यम - + Low कम - + Very low सबसे कम - + Physical memory (RAM) usage limit - + Asynchronous I/O threads अतुल्यकालिक इनपुट/आउटपुट प्रक्रिया - + Hashing threads हैश प्रक्रिया - + File pool size फाइल पूल आकार - + Outstanding memory when checking torrents टोरेंट जाँच हेतु सक्रिय मेमोरी - + Disk cache डिस्क कैश - - - - + + + + + s seconds से० - + Disk cache expiry interval डिस्क कैश मान्यता समाप्ति अंतराल - + Disk queue size - - + + Enable OS cache OS कैश चालू करें - + Coalesce reads & writes पढ़ना और लिखना सम्मिलित रूप से करें - + Use piece extent affinity - + Send upload piece suggestions खण्डों को अपलोड करने के सुझावों को भेजें - - - - + + + + + 0 (disabled) 0 (निष्क्रिय) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] नोटिफिकेशन काल [0: अनन्त, -1:सिस्टम निर्धारित] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB केबी - + (infinite) (अनन्त) - + (system default) (सिस्टम में पूर्व निर्धारित) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default पूर्व निर्धारित - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) 0 (सिस्टम में पूर्व निर्धारित) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit .torrent फाइल के आकार की सीमा - + Type of service (ToS) for connections to peers सहकर्मियों के कनेक्शानों के लिए सेवा का प्रकार (ToS) - + Prefer TCP TCP को वरीयता - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) अन्तर्राष्ट्रीय डोमेन नाम (IDN) समर्थन - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval ताजगी का अन्तराल - + Resolve peer host names सहकर्मी के होस्ट के नाम दिखायें - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus मेनू में चित्र दिखायें - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + सेक + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications नोटिफिकेशन दिखायें - + Display notifications for added torrents जोड़े गए टौरेंटों के लिए नोटिफिकेशन दिखायें - + Download tracker's favicon ट्रैकर का प्रतीक चित्र डाउनलोड करें - + Save path history length इतने सञ्चय पथ याद रखें - + Enable speed graphs गति के ग्राफ दिखायें - + Fixed slots निश्चित स्लॉट - + Upload rate based अपलोड दर पर आधारित - + Upload slots behavior अपलोड स्लॉटों का व्यवहार - + Round-robin राउंड-रॉबिन - + Fastest upload तीव्रतम अपलोड - + Anti-leech जोंकरोधी - + Upload choking algorithm अपलोड अवरुद्ध करने की विधि - + Confirm torrent recheck टाॅरेंट पुनर्जांच की पुष्टि करें - + Confirm removal of all tags सभी उपनामों को हटाने की पुष्टि करें - + Always announce to all trackers in a tier एक परत पर हमेशा सभी ट्रैकर्स को सूचित करें - + Always announce to all tiers हमेशा सभी परतो पर घोषणा करें - + Any interface i.e. Any network interface कोई भी पद्धति - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries सहकर्मी के देशों को दिखायें - + Network interface नेटवर्क पद्धति - + Optional IP address to bind to - + Max concurrent HTTP announces एकसाथ अधिकतम एचटीटीपी उद्घोषणाएं - + Enable embedded tracker सम्मिलित ट्रैकर सक्रिय करें - + Embedded tracker port सम्मिलित ट्रैकर का पोर्ट + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + 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. क्यूबिटटोरेंट उपयोग करने हेतु धन्यवाद। - + Torrent: %1, sending mail notification टाॅरेंट : %1, मेल अधिसूचना भेज रहा है - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading टॉरेंट "%1" का डाउनलोड पूर्ण हो गया है - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... टॉरेंटों को लोड किया जा रहा है... - + E&xit बाहर निकलें (&X) - + I/O Error i.e: Input/Output Error I/O त्रुटि - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ कारण : %2 - + Torrent added टॉरेंट जोड़ा गया - + '%1' was added. e.g: xxx.avi was added. '%1' को जोड़ा गया। - + Download completed डाउनलोड हो गया - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' डाउनलोड हो चुका है। - + Information सूचना - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit निकास - + Recursive download confirmation पुनरावर्ती डाउनलोड हेतु पुष्टि - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? टॉरेंट '%1' में .torrent फाइलें हैं, क्या आप इन्हें भी डाउनलोड करना चाहते हैं? - + Never कभी नहीं - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated क्यूबिटटाॅरेंट बन्द करने की प्रक्रिया शुरू हो गयी है - + qBittorrent is shutting down... क्यूबिटटाॅरेंट बन्द हो रहा है... - + Saving torrent progress... टाॅरेंट की प्रगति सञ्चित हो रही है - + qBittorrent is now ready to exit क्यूबिटटाॅरेंट बन्द होने के लिए तैयार है... @@ -1609,12 +1715,12 @@ प्राथमिकता: - + Must Not Contain: शामिल नहीं होना चाहिए : - + Episode Filter: एपिसोड फिल्टर : @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also निर्यात करें... (&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 सीजन एक के 2, 5, 8 से 15, 30 व आगे तक के एपिसोडों से मिलान करेगा - + Episode filter rules: एपिसोड फिल्टर के नियम : - + Season 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 तक एपिसोडों का मिलान करता है - + Episode number is a mandatory positive value सीजन क्रमांक एक अनिवार्य व अशून्य संख्या है - + Rules नियम - + Rules (legacy) नियम (पुराने) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons असीमित चाप : <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 नियम हटाने हेतु पुष्टि - + Invalid action अमान्य चाल - + The list is empty, there is nothing to export. सूची खाली है, निर्यात करने के लिए कुछ भी नहीं है। - + Export RSS rules RSS नियमों को निर्यात करें - + I/O Error I/O त्रुटि - + Failed to create the destination file. Reason: %1 गंतव्य फाइल बनाने में असफल। कारण : %1 - + Import RSS rules RSS नियमों को आयात करें - + Failed to import the selected rules file. Reason: %1 चुनी हुई नियमों की फाइल आयात करने में असफल। कारण : %1 - + Add new rule... नया नियम जोड़ें… - + Delete rule नियम मिटायें - + Rename rule... नियम का नाम बदलें… - + Delete selected rules चयनित नियम हटाएँ - + Clear downloaded episodes... डाउनलोड किये हुए एपिसोडों को हटायें... - + Rule renaming नियम नाम परिवर्तन - + Please type the new rule name नए नियम का नाम टाइप करें - + Clear downloaded episodes डाउनलोड किये हुए एपिसोडों को हटायें - + Are you sure you want to clear the list of downloaded episodes for the selected rule? क्या आप निश्चित ही चयनित नियमों के डाउनलोड हो चुके एपिसोडों को सूची से हटाना चाहते हैं? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 स्थिति %1 : %2 - + Wildcard mode: you can use सर्वमृगया विधा : आप प्रयोग कर सकते हैं - - + + Import error आयात में त्रुटि - + Failed to read the file. %1 फाइल पढ़ने में असफल। %1 - + ? to match any single character केवल एक अक्षर का मिलान करने के लिए ? - + * to match zero or more of any characters शून्य या अधिक अक्षरों का मिलान करनें के लिए * - + Whitespaces count as AND operators (all words, any order) रिक्तता को (किसी भी क्रम में आने वाले सभी शब्दों के बीच) 'तथा' संक्रिया माना जाता है - + | is used as OR operator | का प्रयोग 'अथवा' संक्रिया के लिये किया जाता है - + If word order is important use * instead of whitespace. यदि शब्द क्रम महत्त्वपूर्ण है तो रिक्तता के स्थान पर * का प्रयोग कीजिये। - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) रिक्त %1 वाक्यांश वाली एक अभिव्यंजना (उदाहरण - %2) - + will match all articles. सभी लेखों से मिलान करेगा। - + will exclude all articles. किसी भी लेख से मिलान नहीं करेगा। @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 टॉरेंट की जानकारी ज्ञात पायी: %1 - + Cannot parse torrent info: invalid format टॉरेंट की जानकारी ज्ञात नहीं हो पायी: गलत स्वरुप - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. टॉरेंट मेटाडाटा का '%1' में सञ्चय नहीं हो सका। त्रुटि: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 डाटा को '%1' में सञ्चित नहीं कर सके। त्रुटि : %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. नहीं मिला। - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. डेटाबेस दूषित है। - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + टॉरेंट की जानकारी ज्ञात पायी: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. टॉरेंट मेटाडाटा का सञ्चय नहीं हो सका। त्रुटि : %1 - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2086,459 +2225,505 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON खोलें - - - - - - - - - + + + + + + + + + OFF बंद करें - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" सहकर्मी की आईडी: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 अनाम रीति: %1 - - + + Encryption support: %1 गोपनीयकरण समर्थन : %1 - - + + FORCED बलपूर्वक - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. टॉरेंट वितरण अनुपात की सीमा को पार कर चुका है। - - - + Torrent: "%1". टॉरेंट: "%1". - - - - Removed torrent. - टॉरेंट हटा दिया गया है। - - - - - - Removed torrent and deleted its content. - टॉरेंट को हटा दिया व इसके सामान को मिटा दिया। - - - - - - Torrent paused. - टॉरेंट विरामित। - - - - - + Super seeding enabled. महास्रोत सक्रिय कर दिया गया है। - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" टॉरेंट लोड नहीं हो सका। कारण: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" टॉरेंट से ट्रैकर हटा दिया। टॉरेंट: "%1"। ट्रैकर: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" टॉरेंट से बीज यूआरएल हटा दिया। टॉरेंट: "%1"। यूआरएल: "%2" - - Torrent paused. Torrent: "%1" - टॉरेंट विरामित। टॉरेंट: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" टॉरेंट प्रारम्भ। टॉरेंट: "%1" - + Torrent download finished. Torrent: "%1" टॉरेंट डाउनलोड पूर्ण। टॉरेंट: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" नया टॉरेंट जोड़ा गया। टॉरेंट: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" टॉरेंट में त्रुटि। टॉरेंट: "%1"। त्रुटि: %2 - - - Removed torrent. Torrent: "%1" - टॉरेंट हटाया गया। टॉरेंट: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - टॉरेंट को हटा दिया व इसके सामान को मिटा दिया। टॉरेंट: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP फिल्टर - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - टॉरेंट को हटा दिया व लेकिन इसके सामान को नहीं मिटा पाए। टॉरेंट: "%1"। त्रुटि: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 अक्षम है - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 अक्षम है - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" - + टोरेंट को स्थानांतरित करने में विफल। टोरेंट: "%1"। स्त्रोत: "%2"। गंतव्य: "%3"। कारण: "%4"। @@ -2552,13 +2737,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted क्रिया को रोका गया - - + + Create new torrent file failed. Reason: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 सहकर्मी "%1" को टाॅरेंट "%2" में जोड़ने में असफल। कारण : "%3" - + Peer "%1" is added to torrent "%2" सहकर्मी "%1" को टाॅरेंट "%2" में जोड़ा गया - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' पहले प्रथम व अन्तिम खण्ड को डाउनलोड करें : %1, टाॅरेंट : '%2' - + On खोलें - + Off बंद करें - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata मेटाडेटा नहीं मिला - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" फाइल का नाम बदलने में असफल। टाॅरेंट : "%1", फाइल : "%2", कारण : "%3" - + Performance alert: %1. More info: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). %1 को एक मान्य पोर्ट होना चाहिए (1 से 65535)। - + Usage: समुपयोग : - + [options] [(<filename> | <url>)...] [विकल्प] [(<filename>|<url>)...] - + Options: विकल्प : - + Display program version and exit प्रोग्राम संस्करण को प्रदर्शित करें और बाहर निकलें - + Display this help message and exit इस सहायता सन्देश को प्रदर्शित करें और बाहर निकलें - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port पोर्ट - + Change the WebUI port - + Change the torrenting port - + Disable splash screen आरंभ स्क्रीन अक्षम करें - + Run in daemon-mode (background) डेमन-रीति में चलायें (पृष्ठभूमि) - + dir Use appropriate short form or abbreviation of "directory" फोल्डर - + Store configuration files in <dir> - - + + name नाम - + Store configuration files in directories qBittorrent_<name> विन्यास फाइलें इन डायरेक्टरी में संचित करें क्यूबिटटाॅरेंट_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs फाइलें व URL - + Download the torrents passed by the user - + Options when adding new torrents: नये टॉरेंट जोड़ते समय विकल्प : - + path पथ - + Torrent save path टॉरेंट संचय पथ - - Add torrents as started or paused - टॉरेंट को आरम्भित या विरामित की तरह जोड़े + + Add torrents as running or stopped + - + Skip hash check हैश की जाँच रहने दे - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order फाइलों को क्रम में डाउनलोड करें - + Download first and last pieces first प्रथम व अंतिम खण्ड सबसे पहले डाउनलोड करें - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help सहायता @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - टौरेंटो को प्रारम्भ करें + Start torrents + - Pause torrents - टौरेंटो को विराम दें + Stop torrents + @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... संशोधन करें... - + Reset मूल स्थिति में लाएं + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - फाइलों को भी मिटा दें + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? क्या आप निश्चित ही स्थानान्तरण सूची से '%1' को हटाना चाहते हैं? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? क्या आप निश्चित ही इन %1 टाॅरेंटों को स्थानान्तरण सूची से हटाना चाहते हैं? - + Remove हटायें @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also URLओं से डाउनलोड करें - + Add torrent links टौरेंट लिंकों को जोड़ें - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also डाउनलोड - + No URL entered कोई URL नहीं भरा गया - + Please type at least one URL. कम से कम एक URL भरें। @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also समझने में त्रुटि : फिल्टर फाइल मान्य PeerGuardian P2B फाइल नहीं है। + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + टॉरेंट डाउनलोड हो रहा है... स्रोत: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present टोरेंट पहले से मौजूद है - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 असंगत आईपी संस्करण : %1 - + Unsupported record size: %1 असंगत अभिलेख आकार : %1 - + Database corrupted: no data section found. खराब डाटाबेस : डाटा भाग नहीं मिला। @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... ब्राउज करें... - + Reset मूल स्थिति में लाएं - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 को अवरुद्धित किया। कारण : %2 - + %1 was banned 0.0.0.0 was banned %1 को प्रतिबन्धित किया @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 एकल कमाण्ड लाइन शब्द हो। - + Run application with -h option to read about command line parameters. कमाण्ड लाइन शब्दों के विषय में जानने के लिये एप्लीकेशन को -h विकल्प के साथ चलायें। - + Bad command line गलत कमाण्ड लाइन - + Bad command line: गलत कमाण्ड लाइन : - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,607 +3682,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also संपादन (&E) - + &Tools साधन (&T) - + &File फाइल (&F) - + &Help सहायता (&H) - + On Downloads &Done डाउनलोडों के पूरा होने पर (&D) - + &View देंखे (&V) - + &Options... विकल्प… (&O) - - &Resume - प्रारम्भ (&R) - - - + &Remove हटायें (&R) - + Torrent &Creator टॉरेंट निर्माणक (&C) - - + + Alternative Speed Limits गति की वैकल्पिक सीमायें - + &Top Toolbar शीर्ष उपकरण पट्टी (&T) - + Display Top Toolbar शीर्ष उपकरण पट्टी दिखाएं - + Status &Bar स्थिति पट्टी (&B) - + Filters Sidebar छन्नी साइडबार - + S&peed in Title Bar शीर्षक पट्टी में गति (&P) - + Show Transfer Speed in Title Bar शीर्षक पट्टी में गति दिखायें - + &RSS Reader RSS पाठक (&R) - + Search &Engine खोज इन्जन (&E) - + L&ock qBittorrent क्यूबिटटॉरेंट लॉक करें (&O) - + Do&nate! दान करें! (&N) - + + Sh&utdown System + + + + &Do nothing कुछ न करें (&D) - + Close Window विंडो बंद करें - - R&esume All - सभी आरंभ (&E) - - - + Manage Cookies... कुकी प्रबन्धित करें... - + Manage stored network cookies संचित नेटवर्क कुकी प्रबंधन करें - + Normal Messages सामान्य सन्देश - + Information Messages सूचना सन्देश - + Warning Messages चेतावनी सन्देश - + Critical Messages जोखिम सन्देश - + &Log लॉग (&L) - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... सार्वभौम गति सीमाएं निर्धारित करें... - + Bottom of Queue पंक्ति में अन्तिम - + Move to the bottom of the queue पंक्ति में अन्तिम पर ले जाएं - + Top of Queue पंक्ति में प्रथम - + Move to the top of the queue पंक्ति में प्रथम पर ले जाएं - + Move Down Queue पंक्ति में पीछे ले जाएं - + Move down in the queue पंक्ति में पीछे ले जाएं - + Move Up Queue पंक्ति में आगे ले जाएं - + Move up in the queue पंक्ति में आगे ले जाएं - + &Exit qBittorrent क्यूबिटटॉरेंट बंद करें (&E) - + &Suspend System सिस्टम को निलंबित करें (&S) - + &Hibernate System सिस्टम को अतिसुप्त करें (&H) - - S&hutdown System - सिस्टम बंद करें (&H) - - - + &Statistics आंकड़े (&S) - + Check for Updates अद्यतन के लिए जाँचे - + Check for Program Updates प्रोग्राम अद्यतन के लिए जाँच करें - + &About बारे में (&A) - - &Pause - रोकें (&P) - - - - P&ause All - सभी रोकें (&A) - - - + &Add Torrent File... टॉरेंट फाइल जोड़ें... (&A) - + Open खोलें - + E&xit बाहर निकलें (&X) - + Open URL यूआरएल खोलें - + &Documentation शास्त्र (&D) - + Lock लॉक - - - + + + Show दिखाएँ - + Check for program updates कार्यक्रम अद्यतन के लिए जाँच करें - + Add Torrent &Link... टॉरेंट लिंक जोड़ें... (&L) - + If you like qBittorrent, please donate! यदि क्यूबिटटाॅरेंट आपके कार्यों हेतु उपयोगी हो तो कृपया दान करें! - - + + Execution Log निष्पादन वृतांत - + Clear the password पासवर्ड रद्द करें - + &Set Password पासवर्ड लगायें (&S) - + Preferences वरीयताएं - + &Clear Password पासवर्ड हटायें (&C) - + Transfers अंतरण - - + + qBittorrent is minimized to tray क्यूबिटटॉरेंट ट्रे आइकन रूप में संक्षिप्त - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only केवल चित्र - + Text Only केवल लेख - + Text Alongside Icons चित्र के बगल लेख - + Text Under Icons चित्र के नीचे लेख - + Follow System Style सिस्टम की शैली का पालन करें - - + + UI lock password उपयोक्ता अंतरफलक लॉक हेतु कूटशब्द - - + + Please type the UI lock password: उपयोक्ता अंतरफलक लॉक हेतु कूटशब्द दर्ज करें : - + Are you sure you want to clear the password? क्या आप निश्चित है कि आप पासवर्ड रद्द करना चाहते हैं? - + Use regular expressions रेगुलर एक्सप्रेसन्स का प्रयोग करें - + + + Search Engine + खोज इन्जन + + + + Search has failed + खोज असफल हुई + + + + Search has finished + खोज समाप्त हुई + + + Search खोजें - + Transfers (%1) अंतरण (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. क्यूबिटटोरेंट अपडेट किया गया व परिवर्तन लागू करने हेतु इसे पुनः आरंभ आवश्यक है। - + qBittorrent is closed to tray क्यूबिटटोरेंट ट्रे आइकन रूप में संक्षिप्त - + Some files are currently transferring. अभी कुछ फाइलों का स्थानान्तरण हो रहा है। - + Are you sure you want to quit qBittorrent? क्या आप निश्चित ही क्यूबिटटॉरेंट बंद करना चाहते हैं? - + &No नहीं (&N) - + &Yes हां (&Y) - + &Always Yes हमेशा हां (&A) - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime पायथन रनटाइम अनुपस्थित है - + qBittorrent Update Available क्यूबिटटॉरेंट अपडेट उपलब्ध है - + 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. खोज इन्जन का उपगोय करने के लिए पायथन आवश्यक है लेकिन ये स्थापित नहीं है। - - + + Old Python Runtime पायथन रनटाइम पुराना है - + A new version is available. नया वर्जन उपलब्ध है| - + Do you want to download %1? क्या आप %1 को डाउनलोड करना चाहते हैं? - + Open changelog... परिवर्तनलॉग खोलें... - + No updates available. You are already using the latest version. अद्यतन उपलब्ध नहीं है। आप पहले से ही नवीनतम संस्करण प्रयोग कर रहे हैं। - + &Check for Updates अद्यतन के लिए जाँचे (&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. आपका पायथन संस्करण (%1) पुराना है। खोज इन्जन के लिए सबसे नए संस्करण पर उन्नत करें। न्यूनतम आवश्यक: %2। - + + Paused + विरामित + + + Checking for Updates... अद्यतन के लिए जाँचा चल रही है... - + Already checking for program updates in the background कार्यक्रम अद्यतन की जाँच पहले से ही पृष्टभूमि में चल रही है - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error डाउनलोड त्रुटि - - Python setup could not be downloaded, reason: %1. -Please install it manually. - पायथन का सेटअप डाउनलोड नहीं हो सका, कारण : %1। -इसे आप स्वयं स्थापित करें। - - - - + + Invalid password अमान्य कूटशब्द - + Filter torrents... टाॅरेंटों को छानें... - + Filter by: से छानें: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + 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 - - - + Hide अदृश्य करें - + Exiting qBittorrent क्यूबिटटाॅरेंट बंद हो रहा है - + Open Torrent Files टाॅरेंट फाइल खोलें - + Torrent Files टाॅरेंट फाइलें @@ -4230,7 +4548,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5524,47 +5847,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5602,486 +5925,510 @@ Please install it manually. बिटटॉरेंट - + RSS RSS - - Web UI - वेब UI - - - + Advanced उन्नत - + Customize UI Theme... UI रंगरूप स्वनिर्मित करें... - + Transfer List स्थानांतरण सूची - + Confirm when deleting torrents टाॅरेंट मिटाते समय पुष्टि करें - - Shows a confirmation dialog upon pausing/resuming all the torrents - सभी टाॅरेंटों को विरामित या प्रारम्भ करने पर पुष्टि करने का डायलॉग दिखाता है - - - - Confirm "Pause/Resume all" actions - "सभी को विरामित/प्रारम्भ करने" की क्रिया की पुष्टि करें - - - + Use alternating row colors In table elements, every other row will have a grey background. पंक्तियों में एकांतरित रंगों का प्रयोग करें - + Hide zero and infinity values शुन्य व अनन्त को छुपायें - + Always हमेशा - - Paused torrents only - केवल विरामित टॉरेंट - - - + Action on double-click डबल-क्लिक पर क्रिया - + Downloading torrents: डाउनलोड हो रहे टाॅरेंट: - - - Start / Stop Torrent - टाॅरेंट चालू / बन्द करें - - - - + + Open destination folder गन्तव्य फोल्डर खोलें - - + + No action कोई कार्यवाही नहीं - + Completed torrents: पूर्ण हो चुके टाॅरेंट: - + Auto hide zero status filters - + Desktop डेस्कट‍ॉप - + Start qBittorrent on Windows start up विंडोज के साथ ही क्यूबिटटॉरेंट आरंभ करें - + Show splash screen on start up शुरू करते समय आरंभ स्क्रीन दिखायें - + Confirmation on exit when torrents are active टाॅरेंटों के सक्रिय होने पर बाहर निकलने की पुष्टि करें - + Confirmation on auto-exit when downloads finish डाउनलोडों के समाप्त होने पर स्वतः बाहर निकलने की पुष्टि - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB केबी - + + Show free disk space in status bar + + + + Torrent content layout: टॉरेंट सामग्री का अभिविन्यास: - + Original मूल - + Create subfolder उपफोल्डर बनायें - + Don't create subfolder उपफोल्डर न बनायें - + The torrent will be added to the top of the download queue टॉरेंट को डाउनलोड पंक्ति में सबसे ऊपर जोड़ा जाएगा - + Add to top of queue The torrent will be added to the top of the download queue कतार में सबसे ऊपर रखा - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... जोड़ें... - + Options.. विकल्प... - + Remove हटायें - + Email notification &upon download completion डाउनलोड पूरा होने पर ईमेल अधिसूचना (&U) - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: सहकर्मी कनेक्शन की पद्धति : - + Any कोई भी - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode मिश्रित रीति - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP फिल्टर करना (&L) - + Schedule &the use of alternative rate limits दर की वैकल्पिक सीमाओं के लागू होने का समय निर्धारित करें (&T) - + From: From start time से : - + To: To end time को : - + Find peers on the DHT network DHT नेटवर्क पर सहकर्मी ढूँढे - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption गोपनीयता का प्रयोग करें - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">अधिक जानकारी</a>) - + Maximum active checking torrents: - + &Torrent Queueing टॉरेंट पंक्तिबद्धीकरण (&T) - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - इन ट्रैकरों को नए डाउनलोडों में स्वतः जोड़ दें (&U): - - - + RSS Reader RSS पाठक - + Enable fetching RSS feeds RSS स्रोतों को लाना सक्षम करें - + Feeds refresh interval: स्रोतों को ताजा करने का अन्तराल : - + Same host request delay: - + Maximum number of articles per feed: प्रति स्रोत अधिकतम लेखों की संख्या : - - - + + + min minutes न्यूनतम - + Seeding Limits स्रोत की सीमाएं - - Pause torrent - टॉरेंट को विराम दें - - - + Remove torrent टॉरेंट को हटायें - + Remove torrent and its files टॉरेंट और उसकी फाइलों को हटायें - + Enable super seeding for torrent इसे महास्रोत बनायें - + When ratio reaches जब अनुपात तक पहुँचे - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS टाॅरेंट स्वतः डाउनलोडर - + Enable auto downloading of RSS torrents RSS टाॅरेंटों को स्वतः डाउनलोड करना सक्षम करें - + Edit auto downloading rules... स्वतः डाउनलोड के नियमों को बदलें... - + RSS Smart Episode Filter बुद्धिमान RSS एपिसोड फिल्टर - + Download REPACK/PROPER episodes REPACK/PROPER एपिसोडों को डाउनलोड करें - + Filters: छन्नियां: - + Web User Interface (Remote control) वेब यूजर इन्टरफेस (रिमोट कण्ट्रोल) - + IP address: IP पता : - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: लगातार विफलताओं के बाद क्लाइंट को प्रतिबंधित करें : - + Never कभी नहीं - + ban for: के लिए प्रतिबन्ध : - + Session timeout: सत्र का समयान्त : - + Disabled अक्षम - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: सर्वर डोमेन : - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6090,441 +6437,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP HTTP के स्थान पर HTTPS प्रयोग करें (&U) - + Bypass authentication for clients on localhost लोकलहोस्ट पर मौजूद प्रयोक्ताओं का प्रमाणीकरण रहने दें - + Bypass authentication for clients in whitelisted IP subnets आईपी सबनेटों की सज्जनसूची में आने वाले प्रयोक्ताओं का प्रमाणीकरण रहने दें - + IP subnet whitelist... आईपी सबनेट सज्जनसूची... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name मेरा परिवर्तनशील डोमेन नाम अद्यतित करें (&T) - + Minimize qBittorrent to notification area क्यूबिटटोरेंट को अधिसूचना क्षेत्र में संक्षिप्त करें - + + Search + खोंजे + + + + WebUI + + + + Interface पद्धति - + Language: भाषा : - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: ट्रे चित्र की शैली : - - + + Normal सामान्य - + File association फाइल संगठन - + Use qBittorrent for .torrent files .torrent फाइल हेतु क्यूबिटटोरेंट उपयोग करें - + Use qBittorrent for magnet links मैग्नेट लिंक हेतु क्यूबिटटोरेंट उपयोग करें - + Check for program updates प्रोग्राम अद्यतन के लिए जाँच करें - + Power Management ऊर्जा प्रबन्धन - + + &Log Files + + + + Save path: संचय पथ : - + Backup the log file after: के बाद लॉग फाइल का बैकअप लें : - + Delete backup logs older than: इससे पुरानी बैकअप लॉग फाइलों को मिटा दें : - + + Show external IP in status bar + + + + When adding a torrent टॉरेंट जोड़ते समय - + Bring torrent dialog to the front टॉरेंट डायलॉग को सम्मुख लायें - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled .torrent फाइलें भी मिटा दें जिनका जोड़ना रद्द हो गया - + Also when addition is cancelled जोड़ना रद्द करने पर भी - + Warning! Data loss possible! चेतावनी! डाटा खो सकता है! - + Saving Management सञ्चय प्रबन्धन - + Default Torrent Management Mode: पूर्व निर्धारित टॉरेंट प्रबंधन मोड : - + Manual स्वयं - + Automatic स्वतः - + When Torrent Category changed: जब टॉरेंट की श्रेणी बदल जाए : - + Relocate torrent टाॅरेंट स्थानांतरित करें - + Switch torrent to Manual Mode टाॅरेंट को स्वयं प्रबन्धित करें - - + + Relocate affected torrents प्रभावित टाॅरेंटों को स्थानांतरित करें - - + + Switch affected torrents to Manual Mode प्रभावित टाॅरेंटों को स्वयं प्रबन्धित करें - + Use Subcategories उपश्रेणियाँ प्रयोग करें - + Default Save Path: पूर्व निर्धारित संचय पथ : - + Copy .torrent files to: .torrent फाइलों की नकल यहां करें : - + Show &qBittorrent in notification area क्यूबिटटोरेंट को अधिसूचना क्षेत्र में दिखाएँ (&Q) - - &Log file - लॉग फाइल (&L) - - - + Display &torrent content and some options टाॅरेंट सामग्री व कुछ विकल्प दिखायें (&T) - + De&lete .torrent files afterwards बाद में .torrent फाइलें मिटा दें (&L) - + Copy .torrent files for finished downloads to: पूरे हो चुके डाउनलोडों की .torrent फाइलों को यहां प्रतिलिपि करें : - + Pre-allocate disk space for all files सभी फाइलों के लिए डिस्क में स्थान पूर्व-निर्धारित करें - + Use custom UI Theme बाहरी रंगरूप का उपयोग करें - + UI Theme file: UI थीम फाइल : - + Changing Interface settings requires application restart इन्टरफेस की सेटिंग बदलने पर एप्लीकेशन को पुनः आरम्भ करना आवश्यक है - + Shows a confirmation dialog upon torrent deletion टाॅरेंट को मिटाने पर पुष्टि करने का डायलॉग दिखाता है - - + + Preview file, otherwise open destination folder - - - Show torrent options - टाॅरेंट के विकल्प दिखायें - - - + Shows a confirmation dialog when exiting with active torrents जब टाॅरेंट सक्रिय हों तब बाहर जाने पर पुष्टि करने का डायलॉग दिखाता है - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window क्यूबिटटोरेंट को अधिसूचना क्षेत्र में बंद करें - + Monochrome (for dark theme) एकवर्णीय (गहरी थीम के लिए) - + Monochrome (for light theme) एकवर्णीय (हल्की थीम के लिए) - + Inhibit system sleep when torrents are downloading जब टाॅरेंट डाउनलोड हो रहे हों तब सिस्टम को सुप्त न होने दें - + Inhibit system sleep when torrents are seeding जब टाॅरेंट स्रोत बने हुए हों तब सिस्टम को सुप्त न होने दें - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days दिन - + months Delete backup logs older than 10 months माह - + years Delete backup logs older than 10 years वर्ष - + Log performance warnings - - The torrent will be added to download list in a paused state - टौरेंट को सूची में विरामित अवस्था में जोड़ा जाएगा - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state डाउनलोड स्वतः आरम्भ न करें - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files अपूर्ण फाइलों में .!qB एक्सटेंशन जोड़े - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: टाॅरेंट रोकने की स्थिति: - - + + None कोई नहीं - - + + Metadata received मेटाडाटा प्राप्त - - + + Files checked जंची हुई फाइलें - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: अपूर्ण टॉरेंट हेतु अन्य पथ का प्रयोग करें: - + Automatically add torrents from: यहाँ से टौरेंट स्वतः जोड़े : - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6541,771 +6929,812 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver प्राप्तकर्ता - + To: To receiver को : - + SMTP server: SMTP सर्वर : - + Sender प्रेषक - + From: From sender से : - + This server requires a secure connection (SSL) यह सर्वर एक सुरक्षित संपर्क (SSL) की अपेक्षा करता है - - + + Authentication प्रमाणीकरण - - - - + + + + Username: यूजरनेम : - - - - + + + + Password: कूटशब्द : - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP व μTP - + Listening Port श्रवण पोर्ट - + Port used for incoming connections: आवक कनेक्शनों के लिए पत्तन : - + Set to 0 to let your system pick an unused port - + Random यादृच्छिक - + Use UPnP / NAT-PMP port forwarding from my router मेरे रूटर से UPnP / NAT-PMP पोर्ट अग्रेषण का प्रयोग करो - + Connections Limits कनेक्शन सीमायें - + Maximum number of connections per torrent: प्रति टॉरेंट अधिकतम संपर्कों की संख्या : - + Global maximum number of connections: सार्वभौम अधिकतम संपर्कों की संख्या : - + Maximum number of upload slots per torrent: प्रति टौरेंट अधिकतम अपलोड स्थानों की संख्या : - + Global maximum number of upload slots: अधिकतम सार्वभौम अपलोड स्थानों की संख्या : - + Proxy Server प्रॉक्सी सर्वर - + Type: प्रकार : - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: पोषद : - - - + + + Port: पत्तन : - + Otherwise, the proxy server is only used for tracker connections अन्यथा, प्रॉक्सी सर्वर को केवल ट्रैकर संपर्कों के लिये प्रयुक्त किया जाता है - + Use proxy for peer connections सहकर्मी कनेक्शनों के लिए प्रॉक्सी का उपयोग करें - + A&uthentication प्रमाणीकरण (&U) - - Info: The password is saved unencrypted - सूचना : कूटशब्द को कूटबद्ध किये बिना संचित किया गया है - - - + Filter path (.dat, .p2p, .p2b): फिल्टर पथ (.dat, .p2p, .p2b) : - + Reload the filter फिल्टर पुनः लोड करें - + Manually banned IP addresses... आपके द्वारा प्रतिबन्धित किए गए IP पते... - + Apply to trackers ट्रैकरों पर लागू करें - + Global Rate Limits सीमाओं की सार्वभौम दर - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s केबी/से० - - + + Upload: अपलोड : - - + + Download: डाउनलोड : - + Alternative Rate Limits दर की वैकल्पिक सीमायें - + Start time आरम्भ का समय - + End time अन्त समय - + When: कब : - + Every day प्रत्येक दिन - + Weekdays कार्यदिवसों - + Weekends अवकाशदिवस - + Rate Limits Settings दर सीमा की सैटिंग - + Apply rate limit to peers on LAN LAN के सहकर्मियों पर दर सीमा लागू करें - + Apply rate limit to transport overhead अतिरिक्त के यातायात की दर की सीमा तय करें - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol µTP पद्धति पर दर सीमा लागू करें - + Privacy निजता - + Enable DHT (decentralized network) to find more peers ज्यादा सहकर्मियों को ढूँढने के लिए DHT (विकेन्द्रित नेटवर्क) सक्षम करें - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) संगत बिटटोरेंट साधन (µTorrent, Vuze, ...) से पीयर अंतरण - + Enable Peer Exchange (PeX) to find more peers ज्यादा सहकर्मियों को ढूँढने के लिए सहकर्मी आदान-प्रदान (PeX) सक्षम करें - + Look for peers on your local network अपने स्थानीय नेटवर्क पर सहकर्मीं ढूँढे - + Enable Local Peer Discovery to find more peers ज्यादा सहकर्मियों को ढूँढने के लिए स्थानीय सहकर्मी खोज सक्षम करें - + Encryption mode: गोपनीयकरण रीति : - + Require encryption गोपनीयकरण आवश्यक है - + Disable encryption गोपनीयकरण अक्षम करें - + Enable when using a proxy or a VPN connection प्रॉक्सी या VPN प्रयोग करते समय सक्षम करें - + Enable anonymous mode अनाम रीति सक्षम करें - + Maximum active downloads: अधिकतम सक्रिय डाउनलोड : - + Maximum active uploads: अधिकतम सक्रिय अपलोड : - + Maximum active torrents: अधिकतम सक्रिय टॉरेंट : - + Do not count slow torrents in these limits इन सीमाओं में धीमे टौरेंटों को न गिनें - + Upload rate threshold: अपलोड गति की दहलीज : - + Download rate threshold: डाउनलोड गति की दहलीज : - - - - + + + + sec seconds सेक - + Torrent inactivity timer: - + then फिर - + Use UPnP / NAT-PMP to forward the port from my router मेरे रूटर से पोर्ट अग्रेषित करने के लिये UPnP / NAT-PMP का प्रयोग करो - + Certificate: प्रमाणपत्र : - + Key: कुँजी : - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>प्रमाणपत्रों के बारे में जानकारी</a> - + Change current password पासवर्ड बदलें - - Use alternative Web UI - किसी अन्य वेब UI का प्रयोग करें - - - + Files location: फाइलों का स्थान : - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security सुरक्षा - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support रिवर्स प्रॉक्सी को सक्षम करें - + Trusted proxies list: विश्वसनीय प्रॉक्सियों की सूची : - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: सेवा : - + Register पंजीकृत हों - + Domain name: डोमेन का नाम : - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! ये विकल्प चालू करने के बाद आप अपनी .torrent फाइलों को <strong>स्थायी रूप से</strong> खो देंगे! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog यदि आप दूसरा विकल्प सक्रिय करते हैं (&ldquo;या जब जोड़ना रद्द किया जाता है&rdquo;) तो &ldquo;टॉरेंट जोड़ें&rdquo; डायलॉग में &ldquo;<strong>रद्द करें</strong>&rdquo; दबाने पर भी .torrent फाइल <strong>मिटा दी जायेगी</strong> - + Select qBittorrent UI Theme file क्यूबिटटोरेंट उपयोक्ता अंतरफलक थीम फाइल चयन - + Choose Alternative UI files location अन्य UI की फाइलों के स्थान को चुनें - + Supported parameters (case sensitive): समर्थित पैरामीटर (लघु-गुरू संवेदनशील) : - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. रुकने की स्थिति निर्धारित नहीं है। - + Torrent will stop after metadata is received. मेटाडेटा प्राप्त होने के बाद टोरेंट बंद हो जाएगा। - Torrents that have metadata initially aren't affected. - जिन टोरेंटों में मेटाडेटा होता है, वे शुरू में प्रभावित नहीं होते हैं। - - - + Torrent will stop after files are initially checked. फाइलों की प्रारंभिक जाँच के बाद टॉरेंट रुक जाएगा। - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: टॉरेंट नाम - + %L: Category %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: निवर्तमान ट्रैकर - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") सुझाव : लेखन के बीच में आने वाली रिक्तता (उदाहरण - "%N") से होने वाली परेशानी से बचने के लिये मापदण्डों को उद्धरण चिह्नों से घेरिये - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (कोई नहीं) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate प्रमाणपत्र - + Select certificate प्रमाणपत्र चुनें - + Private key निजी कुँजी - + Select private key निजी कुँजी चुनें - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor निरीक्षण के लिए फोल्डर चुनें - + Adding entry failed प्रविष्टि जोड़ना में असफल - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error स्थान त्रुटि - - + + Choose export directory निर्यात के लिए फोल्डर चुनें - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well ये विकल्प सक्रिय होने पर क्यूबिटटोरेंट द्वारा डाउनलोड पंक्ति में सफलतापूर्वक जोड़ी गई (पहला विकल्प) या नहीं जोड़ी गई (दूसरा विकल्प) .torrent फाइलों को <strong>हटा</strong> दिया जाएगा। यह &ldquo;टोरेंट जोड़ें&rdquo; मेन्यू कार्य के <strong>साथ</strong> ही <strong>संलग्न फाइल प्रकार</strong> द्वारा प्रयुक्त फाइलों पर भी लागू होगा - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) %I: जानकारी हैश v1 (या '-' यदि अनुपलब्ध हो तो) - + %J: Info hash v2 (or '-' if unavailable) %J: जानकारी हैश v2 (या '-' यदि अनुपलब्ध हो तो) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory संचय फोल्डर चुनें - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file IP फिल्टर की फाइल चुनें - + All supported filters सभी समर्थित छन्नियां - + The alternative WebUI files location cannot be blank. - + 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 नियमों को लागू किया। - + Preferences वरीयताएं - + Time Error समय त्रुटि - + The start time and the end time can't be the same. शुरुआत और अन्त का समय एक जैसे नहीं हो सकते। - - + + Length Error लम्बाई त्रुटि @@ -7313,241 +7742,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown अज्ञात - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - DHT का सहकर्मी + DHT का सहभागी - + Peer from PEX - PEX का सहकर्मी + PEX का सहभागी - + Peer from LSD - LSD का सहकर्मी + LSD का सहभागी - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + सहभागी NAT होल पंचिंग का उपयोग कर रहा है + PeerListWidget - + Country/Region देश/छेत्र - + IP/Address - + Port पोर्ट - + Flags फ्लैग - + Connection कनेक्शन - + Client i.e.: Client application - प्रोग्राम - - - - Peer ID Client - i.e.: Client resolved from Peer ID - + क्लाइंट + Peer ID Client + i.e.: Client resolved from Peer ID + सहभागी ID क्लाइंट + + + 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. अनुकूलता - + Files i.e. files that are being downloaded right now फाइलों - + Column visibility स्तंभ दृश्यता - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें - + Add peers... - - + + Adding peers सहकर्मियों को जोड़ रहे हैं - + Some peers cannot be added. Check the Log for details. कुछ सहकर्मियों को जोड़ा नहीं जा सका। अधिक जानकारी के लिए लॉग देखें। - + Peers are added to this torrent. इस टाॅरेंट में सहकर्मियों को जोड़ा गया। - - + + Ban peer permanently सहकर्मी को स्थायी रूप से अवरुद्ध करें - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? क्या आप निश्चिंत है कि आप चयनित सहकर्मियों को स्थायी रुप से प्रतिबंधित करना चाहते हैं? - + Peer "%1" is manually banned सहकर्मी "%1" को आपके द्वारा प्रतिबन्धित किया गया - + N/A लागू नहीं - + Copy IP:port IP:पोर्ट की प्रतिलिपि बनायें @@ -7565,7 +7999,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not जोड़ने के लिए सहकर्मियों की सूची (प्रति पंक्ति एक) : - + Format: IPv4:port / [IPv6]:port प्रारूप : IPv4:पोर्ट / [IPv6]:पोर्ट @@ -7606,27 +8040,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: इस खण्ड में फाइलें : - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information ज्यादा जानकारी देखने के लिए मेटाडाटा उपलब्ध होने की प्रतीक्षा करें - + Hold Shift key for detailed information सविस्तार जानकारी देखने के लिए शिफ्ट कुँजी दबाए रखें @@ -7639,58 +8073,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not खोज प्लगिन - + Installed search plugins: स्थापित खोज प्लगिनें : - + Name नाम - + Version संस्करण - + Url URL - - + + Enabled सक्षम - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. चेतावनी : इनमें से किसी भी खोज इन्जन से टाॅरेंटों को डाउनलोड करते समय अपने देश के कॉपीराइट नियमों का पालन करें। - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one नए की स्थापना करें - + Check for updates अद्यतन के लिए जाँचे - + Close बंद करें - + Uninstall अस्थापना करें @@ -7810,98 +8244,65 @@ Those plugins were disabled. प्लगिन स्रोत - + Search plugin source: प्लगिन स्रोत खोजें: - + Local file स्थानीय फाइल - + Web link वेब लिंक - - PowerManagement - - - qBittorrent is active - क्यूबिटटोरेंट सक्रिय है - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: टाॅरेंट %1 की निम्नलिखित फाइलों का पूर्वावलोकन किया जा सकता है, इनमें से किसी एक का चयन करें : - + Preview पूर्वदर्शन - + Name नाम - + Size आकार - + Progress प्रगति - + Preview impossible पूर्वावलोकन असंभव - + Sorry, we can't preview this file: "%1". क्षमा कीजिए, हम फाइल का पूर्वावलोकन नहीं करा सकते हैं : "%1"। - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें @@ -7914,27 +8315,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7975,12 +8376,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: डाउनलोड : - + Availability: उपलब्धता : @@ -7995,53 +8396,53 @@ Those plugins were disabled. अंतरण - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) सक्रिय काल : - + ETA: शेष समय : - + Uploaded: अपलोड : - + Seeds: स्रोत : - + Download Speed: डाउनलोड गति : - + Upload Speed: अपलोड गति : - + Peers: सहकर्मीं : - + Download Limit: डाउनलोड सीमा : - + Upload Limit: अपलोड सीमा : - + Wasted: व्यर्थ : @@ -8051,193 +8452,220 @@ Those plugins were disabled. संपर्क : - + Information सूचना - + Info Hash v1: जानकारी हैश v1: - + Info Hash v2: जानकारी हैश v2: - + Comment: टिप्पणी : - + Select All सभी चुनें - + Select None कुछ न चुनें - + Share Ratio: अंश अनुपात : - + Reannounce In: के बाद पुनर्घोषणा: - + Last Seen Complete: अन्तिम बार पूर्ण देखा गया : - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: कुल आकार : - + Pieces: टुकड़े : - + Created By: निर्माता : - + Added On: जोड़ने का समय : - + Completed On: पूर्ण होने का समय : - + Created On: निर्माण का समय : - + + Private: + + + + Save Path: संचय पथ : - + Never कभी नहीं - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (हैं %3) - - + + %1 (%2 this session) %1 (%2 इस सत्र में) - - + + + N/A लागू नहीं - + + Yes + हाँ + + + + No + नहीं + + + %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 औसत) - - New Web seed - नया वेब स्रोत + + Add web seed + Add HTTP source + - - Remove Web seed - वेब स्रोत को हटाएँ + + Add web seed: + - - Copy Web seed URL - वेब स्रोत यूआरएल कॉपी करें + + + This web seed is already in the list. + - - Edit Web seed URL - वेब स्रोत का यूआरएल संपादित करें - - - + Filter files... फाइलें फिल्टर करें... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - नया युआरएल स्रोत - - - - New URL seed: - नया URL स्रोत : - - - - - This URL seed is already in the list. - यह युआरएल स्रोत पहले से ही सूची में है। - - - + Web seed editing वेब स्रोत का संपादन - + Web seed URL: वेब स्रोत URL : @@ -8245,33 +8673,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. अमान्य डाटा प्रारूप। - + Couldn't save RSS AutoDownloader data in %1. Error: %2 RSS स्वतः डाउनलोडर की जानकारी %1 में सञ्चित नहीं की जा सकी। त्रुटि : %2 - + Invalid data format अमान्य डाटा प्रारूप - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS स्वतः डाउनलोडर के नियम लोड नहीं हो सके। कारण : %1 @@ -8279,22 +8707,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 RSS स्रोत '%1' को डाउनलोड करने में असफल। कारण : %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS स्रोत '%1' का अद्यतन हो गया। %2 नए लेख जोड़े। - + Failed to parse RSS feed at '%1'. Reason: %2 RSS स्रोत '%1' समझ से बाहर है। कारण : %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. '%1' के RSS स्रोत को डाउनलोड कर लिया है। इसे समझने की शुरुआत कर दी है। @@ -8330,12 +8758,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. RSS स्रोत अमान्य है। - + %1 (line: %2, column: %3, offset: %4). %1 (पंक्ति : %2, स्तंभ : %3, ऑफसेट : %4)। @@ -8343,103 +8771,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. दिए गए URL का RSS पहले से ही है : %1 - + Feed doesn't exist: %1. - + Cannot move root folder. मूल फोल्डर को स्थानान्तरित नहीं कर सकते। - - + + Item doesn't exist: %1. वस्तु अस्तित्व में नहीं है : %1। - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. मूल फोल्डर को डिलीट नहीं कर सकते। - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. RSS वस्तु का पथ गलत है : %1 - + RSS item with given path already exists: %1. प्रदत्त पथ वाली RSS वस्तु पहले से मौजूद है : %1 - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + सेक + + + + Default + पूर्व निर्धारित + + RSSWidget @@ -8459,8 +8928,8 @@ Those plugins were disabled. - - + + Mark items read वस्तुओं को पढ़ा हुआ चिन्हित करें @@ -8485,132 +8954,115 @@ Those plugins were disabled. टाॅरेंट : (डाउनलोड करने के लिए दो बार क्लिक करें) - - + + Delete मिटाएं - + Rename... नाम बदलें... - + Rename नाम बदलें - - + + Update अद्यतन - + New subscription... नयी सदस्यता... - - + + Update all feeds सभी स्रोत अद्यतित करें - + Download torrent डाउनलोड टौरेंट - + Open news URL समाचार यूआरएल खोलें - + Copy feed URL स्रोत URL की प्रतिलिपि बनायें - + New folder... नया फोल्डर - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name फोल्डर के नाम का चुनाव करें - + Folder name: फोल्डर का नाम : - + New folder नया फोल्डर - - - Please type a RSS feed URL - RSS स्रोत का URL भरें - - - - - Feed URL: - स्रोत URL: - - - + 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: नया स्रोत नाम: - + Rename failed नाम बदलनें में असफल - + Date: दिनांक: - + Feed: - + Author: रचनाकार: @@ -8618,38 +9070,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. खोज इन्जन का उपगोय करने के लिए पायथन की स्थापना करें। - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. सभी प्लगिन पहले से ही आधुनिक हैं - + Updating %1 plugins %1 प्लगिनों को अद्यतित कर रहे हैं - + Updating plugin %1 प्लगिन %1 को अद्यतित कर रहे हैं - + Failed to check for plugin updates: %1 प्लगिन अद्यतन जाँचने में असफल: %1 @@ -8724,132 +9176,142 @@ Those plugins were disabled. आकार: - + 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 - खोज इन्जन - - - + Filter search results... खोज परिणाम फिल्टर करें... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results परिणाम (<i>%2</i> में से <i>%1</i> प्रदर्शित): - + Torrent names only केवल टौरेंटों के नाम - + Everywhere हर जगह - + Use regular expressions रेगुलर एक्सप्रेसन्स का प्रयोग करें - + Open download window - + Download डाउनलोड - + Open description page विवरण पृष्ठ खोलें - + Copy प्रतिलिपि बनाए - + Name नाम - + Download link डाउनलोड लिंक - + Description page URL विवरण पृष्ठ का यूआरएल - + Searching... खोज रहे हैं... - + Search has finished खोज समाप्त हुई - + Search aborted खोज रोक दी गयी - + An error occurred during search... खोज के दौरान एक त्रुटि घटी... - + Search returned no results खोज का कोई परिणाम नहीं मिला - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility स्तंभ दृश्यता - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें @@ -8857,104 +9319,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. खोज इन्जन प्लगिन फाइल का प्रारूप अज्ञात है। - + Plugin already at version %1, which is greater than %2 प्लगिन पहले से ही संस्करण %1 पर है, जो %2 से आधुनिक है - + A more recent version of this plugin is already installed. इस प्लगिन का ज्यादा नया संस्करण पहले ही से स्थापित है। - + Plugin %1 is not supported. प्लगिन %1 समर्थित नहीं है। - - + + Plugin is not supported. प्लगिन समर्थित नहीं है। - + Plugin %1 has been successfully updated. प्लगिन %1 अद्यतित हो गयी है। - + All categories सभी श्रेणियाँ - + Movies फिल्में - + TV shows टीवी शो - + Music गानें - + Games गेम्स - + Anime एनीमे - + Software सॉफ्टवेयर - + Pictures फोटो - + Books किताबें - + Update server is temporarily unavailable. %1 अद्यतन सर्वर अभी काम नहीं कर रहा है। %1 - - + + Failed to download the plugin file. %1 प्लगिन फाइल डाउनलोड करने में असफल। %1 - + Plugin "%1" is outdated, updating to version %2 प्लगिन %1 पुरानी है, संस्करण %2 पर अद्यतित कर रहे हैं - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8964,114 +9426,145 @@ Those plugins were disabled. - - - - Search खोंजे - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. कोई भी खोज करने की प्लगिन स्थापित नहीं है। स्थापित करने के लिए नीचे की ओर दायीं तरफ "प्लगिनें खोजें..." बटन पर क्लिक करें। - + Search plugins... प्लगिनें खोजें... - + A phrase to search for. खोजने के लिए शब्द: - + Spaces in a search term may be protected by double quotes. डबल कोट द्वारा खोजपद में मौजूद रिक्तताओं की रक्षा की जा सकती है। - + Example: Search phrase example उदाहरण : - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;राम श्याम&quot;</b> : <b>राम श्याम</b> खोजें - + All plugins सभी प्लगिनें - + Only enabled केवल सक्षम - + + + Invalid data format. + अमान्य डाटा प्रारूप। + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>राम श्याम</b> : <b>राम</b> या <b>श्याम</b> खोजें - + + Refresh + + + + Close tab टैब बंद करें - + Close all tabs सभी टैबें बंद करें - + Select... चुनें... - - - + + Search Engine खोज इन्जन - + + Please install Python to use the Search Engine. खोज इन्जन का उपगोय करने के लिए पायथन की स्थापना करें। - + Empty search pattern रिक्त खोज पैटर्न - + Please type a search pattern first खोज पैटर्न भरें - + + Stop रोकें + + + SearchWidget::DataStorage - - Search has finished - खोज समाप्त हुई + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - खोज असफल हुई + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9184,34 +9677,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: अपलोड: - - - + + + - - - + + + KiB/s केबी/से० - - + + Download: डाउनलोड: - + Alternative speed limits गति की वैकल्पिक सीमायें @@ -9403,32 +9896,32 @@ Click the "Search plugins..." button at the bottom right of the window पंक्ति में औसत समय: - + Connected peers: जुड़े हुए सहकर्मीं: - + All-time share ratio: अब तक का वितरण अनुपात: - + All-time download: अब तक डाउनलोड: - + Session waste: सत्र में बर्बादी: - + All-time upload: अब तक अपलोड: - + Total buffer size: कुल बफर आकार: @@ -9443,12 +9936,12 @@ Click the "Search plugins..." button at the bottom right of the window पंक्तिबद्ध I/O कार्य: - + Write cache overload: लेखन द्रुतिका अतिभार: - + Read cache overload: पाठ्य द्रुतिका अतिभार: @@ -9467,51 +9960,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: संपर्क स्थिति: - - + + No direct connections. This may indicate network configuration problems. कोई प्रत्यक्ष कनेक्शन नहीं। नेटवर्क विन्यास समस्या संभव है। - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 नोड - + qBittorrent needs to be restarted! क्यूबिटटोरेंट पुनः आरंभ करना आवश्यक है! - - - + + + Connection Status: संपर्क स्थिति: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. ऑफलाइन। सदारणतः ऐसा तब होता है जब क्यूबिटटाॅरेंट आवक कनेक्शनों के लिए चयनित पोर्टों पर डाटा प्राप्त नहीं कर पाता है। - + Online ऑनलाइन - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits गति की वैकल्पिक सीमायें उपयोग करने हेतु क्लिक करें - + Click to switch to regular speed limits सामान्य गति सीमाएँ उपयोग करने हेतु क्लिक करें @@ -9541,13 +10060,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - प्रारम्भित(0) + Running (0) + - Paused (0) - विरामित (0) + Stopped (0) + @@ -9609,36 +10128,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) पूर्ण (%1) + + + Running (%1) + + - Paused (%1) - विरामित (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) स्थानान्तरित हो रहे (%1) - - - Resume torrents - टौरेंटो को प्रारम्भ करें - - - - Pause torrents - टौरेंटो को विराम दें - Remove torrents टौरेंटो को हटायें - - - Resumed (%1) - प्रारम्भित(%1) - Active (%1) @@ -9710,31 +10229,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags अनुपयोगी श्रेणियां हटायें - - - Resume torrents - टौरेंटो को प्रारम्भ करें - - - - Pause torrents - टौरेंटो को विराम दें - Remove torrents टौरेंटो को हटायें - - New Tag - नया चिह्न + + Start torrents + + + + + Stop torrents + Tag: उपनाम: + + + Add tag + + Invalid tag name @@ -9879,32 +10398,32 @@ Please choose a different name and try again. TorrentContentModel - + Name नाम - + Progress प्रगति - + Download Priority डाउनलोड प्राथमिकता - + Remaining बचा हुआ - + Availability उपलब्धता - + Total Size कुल आकर @@ -9949,98 +10468,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error नाम बदलनें में त्रुटि - + Renaming पुनः नामकरण - + New name: नया नाम: - + Column visibility स्तंभ दृश्यता - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें - + Open खोलें - + Open containing folder धारक फोल्डर को खोलें - + Rename... नाम बदलें... - + Priority प्राथमिकता - - + + Do not download डाउनलोड न करें - + Normal सामान्य - + High उच्च - + Maximum सर्वोच्च - + By shown file order फ़ाइल अनुक्रम में दिखाया गया है - + Normal priority सामान्य वरीयता - + High priority उच्च वरीयता - + Maximum priority सर्वोच्च वरीयता - + Priority by shown file order दृश्य फाइल क्रमानुसार प्राथमिकता @@ -10048,17 +10567,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10087,13 +10606,13 @@ Please choose a different name and try again. - + Select file फाइल चुनें - + Select folder फोल्डर चुनें @@ -10168,87 +10687,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. आप ट्रैकर्स के समूह को एक खाली पंक्ति के साथ अलग कर सकतें हैं. - + Web seed URLs: वेब स्रोत URL : - + Tracker URLs: ट्रैकर URL : - + Comments: टिप्पणियाँ : - + Source: स्रोत : - + Progress: प्रगति : - + Create Torrent टाॅरेंट बनायें - - + + Torrent creation failed टाॅरेंट बनाने में असफलता - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent नया टौरेंट संचित करने के स्थान को चुनें - + Torrent Files (*.torrent) टाॅरेंट फाइलें (*.torrent) - Reason: %1 - कारण : %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator टाॅरेंट निर्माणक - + Torrent created: टाॅरेंट निर्मित : @@ -10256,32 +10771,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10289,44 +10804,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 चुम्बकीय फाइल खोलने में असफल : %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - अमान्य मेटाडेटा - - TorrentOptionsDialog @@ -10355,173 +10857,161 @@ Please choose a different name and try again. अपूर्ण टॉरेंट हेतु अन्य पथ का प्रयोग करें - + Category: श्रेणी : - - Torrent speed limits - टाॅरेंट गति सीमा + + Torrent Share Limits + - + Download: डाउनलोड : - - + + - - + + Torrent Speed Limits + + + + + KiB/s केबी/से० - + These will not exceed the global limits ये सार्वभौम सीमा को पार नहीं करेगा - + Upload: अपलोड : - - Torrent share limits - टाॅरेंट साझा करने की सीमाएं - - - - Use global share limit - सीमाओं की सार्वभौम दर का प्रयोग करें - - - - Set no share limit - साझा करने की कोई सीमा निर्धारित न करें - - - - Set share limit to - साझा करने की सीमा हो - - - - ratio - अनुपात - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent इस टाॅरेंट के लिए DHT अक्षम करें - + Download in sequential order क्रमबद्ध डाउनलोड करें - + Disable PeX for this torrent - + Download first and last pieces first प्रथम व अंतिम खण्ड सबसे पहले डाउनलोड करें - + Disable LSD for this torrent इस टाॅरेंट के लिए LSD अक्षम करें - + Currently used categories - - + + Choose save path संचय पथ चुनें - + Not applicable to private torrents प्राइवेट टाॅरेंटों पर लागू नहीं है - - - No share limit method selected - असीमित वितरण अनुपात का चुना गया है - - - - Please select a limit method first - पहले सीमा की विधि का चयन करें - TorrentShareLimitsWidget - - - + + + + Default - पूर्व निर्धारित + पूर्व निर्धारित - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + न्यूनतम - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + टॉरेंट को हटायें + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + इसे महास्रोत बनायें + + + Ratio: @@ -10534,32 +11024,32 @@ Please choose a different name and try again. टाॅरेंट के उपनाम - - New Tag - नया चिह्न + + Add tag + - + Tag: उपनाम: - + Invalid tag name अमान्य उपनाम - + Tag name '%1' is invalid. उपनाम का नाम '%1' अमान्य है। - + Tag exists उपनाम अस्तित्व में है - + Tag name already exists. उपनाम पहले से ही अस्तित्व में है। @@ -10567,115 +11057,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. त्रुटि : '%1' एक मान्य टाॅरेंट फाइल नहीं है। - + Priority must be an integer प्राथमिकता एक पूर्ण संख्या होनी चाहिए - + Priority is not valid यह प्राथमिकता अमान्य है - + Torrent's metadata has not yet downloaded टाॅरेंट का मेटाडाटा अभी डाउनलोड नहीं हुआ है - + File IDs must be integers - + File ID is not valid फाइल आईडी अमान्य है - - - - + + + + Torrent queueing must be enabled टौरेंट पंक्तिबद्धीकरण अवश्य ही सक्षम हो - - + + Save path cannot be empty सञ्चय पथ रिक्त नहीं हो सकता - - + + Cannot create target directory - - + + Category cannot be empty श्रेणी रिक्त नहीं हो सकती - + Unable to create category श्रेणी बनाने में अक्षम - + Unable to edit category श्रेणी संशोधित करने में अक्षम - + Unable to export torrent file. Error: %1 - + Cannot make save path सञ्चय पथ नहीं बन सका - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory फोल्डर पर नहीं लिख सके - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name टाॅरेंट का नाम गलत है - - + + Incorrect category name श्रेणी का नाम गलत है @@ -10701,196 +11206,191 @@ Please choose a different name and try again. TrackerListModel - + Working काम कर रहा है - + Disabled अक्षम - + Disabled for this torrent इस टाॅरेंट के लिए अक्षम है - + This torrent is private यह टाॅरेंट निजी है - + N/A लागू नहीं - + Updating... अद्यतन कर रहा है... - + Not working काम नहीं कर रहा - + Tracker error - + Unreachable - + Not contacted yet अभी तक संपर्क नहीं किया - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - परत - - - - Protocol + URL/Announce Endpoint - Status - स्थिति - - - - Peers - सहकर्मीं - - - - Seeds - स्रोत - - - - Leeches - जोंके - - - - Times Downloaded - - - - - Message - संदेश - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + परत + + + + Status + स्थिति + + + + Peers + सहकर्मीं + + + + Seeds + स्रोत + + + + Leeches + जोंके + + + + Times Downloaded + + + + + Message + संदेश + TrackerListWidget - + This torrent is private यह टाॅरेंट निजी है - + Tracker editing ट्रैकर संपादन - + Tracker URL: ट्रैकर URL : - - + + Tracker editing failed ट्रैकर संपादन विफल रहा - + The tracker URL entered is invalid. भरा गया ट्रैकर URL अमान्य है। - + The tracker URL already exists. यह टाॅरेंट URL पहले से ही है। - + Edit tracker URL... ट्रैकर URL संशोधित करें... - + Remove tracker ट्रैकर हटाएँ - + Copy tracker URL ट्रैकर URL की प्रतिलिपि बनायें - + Force reannounce to selected trackers चयनित ट्रैकर्स पर बलपूर्वक घोषणा करें - + Force reannounce to all trackers सभी ट्रैकर्स पर बलपूर्वक घोषणा करें - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें - + Add trackers... - + Column visibility स्तंभ दृश्यता @@ -10908,37 +11408,37 @@ Please choose a different name and try again. जोड़ने के लिए ट्रैकर्स की सूची (प्रति पंक्ति एक) : - + µTorrent compatible list URL: µTorrent संगत URL सूची: - + Download trackers list - + Add जोड़ें - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10946,62 +11446,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) चेतावनी (%1) - + Trackerless (%1) ट्रैकर रहित (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker ट्रैकर हटाएँ - - Resume torrents - टौरेंटो को प्रारम्भ करें + + Start torrents + - - Pause torrents - टौरेंटो को विराम दें + + Stop torrents + - + Remove torrents टौरेंटो को हटायें - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter सभी (%1) @@ -11010,7 +11510,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11102,11 +11602,6 @@ Please choose a different name and try again. 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. प्रारम्भ करनें की जानकारी को जांचा जा रहा है - - - Paused - विरामित - Completed @@ -11130,220 +11625,252 @@ Please choose a different name and try again. त्रुटिपूर्ण - + Name i.e: torrent name नाम - + Size i.e: torrent size आकार - + Progress % Done प्रगति - + + Stopped + रुका हुआ + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) स्थिति - + Seeds i.e. full sources (often untranslated) स्रोत - + Peers i.e. partial sources (often untranslated) सहकर्मीं - + Down Speed i.e: Download speed डाउनलोड गति - + Up Speed i.e: Upload speed अपलोड गति - + Ratio Share ratio अनुपात - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left बचा हुआ समय - + Category श्रेणी - + Tags उपनाम - + Added On Torrent was added to transfer list on 01/01/2010 08:00 जोड़ने का समय - + Completed On Torrent was completed on 01/01/2010 08:00 पूर्ण होने का समय - + Tracker ट्रैकर - + Down Limit i.e: Download limit डाउनलोड सीमा - + Up Limit i.e: Upload limit अपलोड सीमा - + Downloaded Amount of data downloaded (e.g. in MB) डाउनलोड हो चुका - + Uploaded Amount of data uploaded (e.g. in MB) अपलोड - + 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) सत्र में अपलोड - + Remaining Amount of data left to download (e.g. in MB) बचा हुआ - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) सक्रिय काल - + + Yes + हाँ + + + + No + नहीं + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) पूर्ण - + Ratio Limit Upload share ratio limit अनुपात की सीमा - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole अन्तिम बार पूर्ण देखा गया - + Last Activity Time passed since a chunk was downloaded/uploaded अन्तिम गतिविधि - + Total Size i.e. Size including unwanted data कुल आकर - + Availability The number of distributed copies of the torrent उपलब्धता - + Info Hash v1 i.e: torrent info hash v1 - जानकारी हैश v2: {1?} + - + Info Hash v2 i.e: torrent info hash v2 - जानकारी हैश v2: {2?} + - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A लागू नहीं - + %1 ago e.g.: 1h 20m ago %1 पहले - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (स्रोत काल %2) @@ -11352,339 +11879,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility स्तंभ दृश्यता - + Recheck confirmation पुन: जाँच हेतु पु‍ष्टि - + Are you sure you want to recheck the selected torrent(s)? क्या आप निश्चित ही चयनित टोरेंट(ओं) को पुनः जाँचना चाहते हैं? - + Rename नाम बदलें - + New name: नया नाम : - + Choose save path संचय पथ चुनें - - Confirm pause - विरामित करने की पुष्टि करें - - - - Would you like to pause all torrents? - - - - - Confirm resume - प्रारम्भ करने की पुष्टि करें - - - - Would you like to resume all torrents? - - - - + Unable to preview पूर्वावलोकन करने में अक्षम - + The selected torrent "%1" does not contain previewable files - + Resize columns स्तंभों का आकार बदलें - + Resize all non-hidden columns to the size of their contents सभी गैर-ओझल स्तंभों का आकार उनकी अंतर्वस्तु के अनुसार बदलें - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - उपनाम जोड़ें - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags सभी उपनाम हटायें - + Remove all tags from selected torrents? चुनें हुए टाॅरेंटों से सभी उपनाम हटायें? - + Comma-separated tags: अल्पविराम द्वारा विभाजित उपनाम : - + Invalid tag अमान्य उपनाम - + Tag name: '%1' is invalid उपनाम : '%1' अमान्य है - - &Resume - Resume/start the torrent - प्रारम्भ (&R) - - - - &Pause - Pause the torrent - रोकें (&P) - - - - Force Resu&me - Force Resume/start the torrent - बलपूर्वक प्रारम्भ करें (&M) - - - + Pre&view file... फाइल पूर्वावलोकन... (&V) - + Torrent &options... टाॅरेंट विकल्प... (&O) - + Open destination &folder गन्तव्य फोल्डर खोलें (&F) - + Move &up i.e. move up in the queue ऊपर करें (&U) - + Move &down i.e. Move down in the queue नीचे लाएँ (&D) - + Move to &top i.e. Move to top of the queue शीर्ष पर ले जाएँ (&T) - + Move to &bottom i.e. Move to bottom of the queue अंत में ले जाएँ (&B) - + Set loc&ation... स्थान चुनें... (&A) - + Force rec&heck बलपूर्वक पुनर्जांच करें (&H) - + Force r&eannounce बलपूर्वक पुनर्घोषणा (&E) - + &Magnet link चुम्बकीय लिंक (&M) - + Torrent &ID टाॅरेंट ID (&I) - + &Comment - + &Name नाम (&N) - + Info &hash v1 जानकारी हैश v1 (&H) - + Info h&ash v2 जानकारी हैश v2 (&A) - + Re&name... नाम बदलें... (&N) - + Edit trac&kers... ट्रैकर संशोधित करें... (&K) - + E&xport .torrent... .torrent निर्यात करें (&X) - + Categor&y श्रेणी (&Y) - + &New... New category... नवीन... (&N) - + &Reset Reset category मूल स्थिति में लाएं (&R) - + Ta&gs उपनाम (&G) - + &Add... Add / assign multiple tags... जोड़ें... (&A) - + &Remove All Remove all tags सभी हटायें (&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue पंक्ति (&Q) - + &Copy प्रतिलिपि बनाए (&C) - + Exported torrent is not necessarily the same as the imported - + Download in sequential order क्रमबद्ध डाउनलोड करें - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent हटायें (&R) - + Download first and last pieces first प्रथम व अंतिम खण्ड सबसे पहले डाउनलोड करें - + Automatic Torrent Management स्वतः टाॅरेंट प्रबन्धन - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode महास्रोत रीति @@ -11729,36 +12236,41 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. चित्र फाइल नहीं हटा पाये। फाइल: %1। - + Couldn't copy icon file. Source: %1. Destination: %2. - + आइकॉन फाइल की प्रतिलिपि नहीं बना पाये। स्त्रोत: %1। गंतव्य: %2। UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11789,20 +12301,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11810,32 +12323,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11927,72 +12440,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. अन्य UI के फोल्डर में सिमलिंक वर्जित हैं। - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12000,125 +12513,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + अज्ञात त्रुटि + + misc - + B bytes बा० - + KiB kibibytes (1024 bytes) केबी - + MiB mebibytes (1024 kibibytes) एमबी - + GiB gibibytes (1024 mibibytes) जीबी - + TiB tebibytes (1024 gibibytes) टीबी - + PiB pebibytes (1024 tebibytes) पीबी - + EiB exbibytes (1024 pebibytes) ईबी - + /s per second /से० - + %1s e.g: 10 seconds - %1मिनट {1s?} + - + %1m e.g: 10 minutes %1मिनट - + %1h %2m e.g: 3 hours 5 minutes %1घण्टे %2मिनट - + %1d %2h e.g: 2 days 10 hours %1दिन %2घण्टे - + %1y %2d e.g: 2 years 10 days %1 वर्ष %2 दिन - - + + Unknown Unknown (size) अज्ञात - + qBittorrent will shutdown the computer now because all downloads are complete. सभी डाउनलोड पूर्ण होने के कारण अब क्यूबिटटाॅरेंट द्वारा कंप्यूटर बंद किया जाएगा। - + < 1m < 1 minute < 1 मिनट diff --git a/src/lang/qbittorrent_hr.ts b/src/lang/qbittorrent_hr.ts index 8d8b19e71..e708485c3 100644 --- a/src/lang/qbittorrent_hr.ts +++ b/src/lang/qbittorrent_hr.ts @@ -14,75 +14,75 @@ O programu - + Authors Autori - + Current maintainer Trenutni održavatelj - + Greece Grčka - - + + Nationality: Nacionalnost: - - + + E-mail: E-pošta: - - + + Name: Ime: - + Original author Izvorni autor - + France Francuska - + Special Thanks Posebne zahvale - + Translators Prevoditelji - + License Licenca - + Software Used Korišteni softver - + qBittorrent was built with the following libraries: qBittorrent je napravljen pomoću sljedećh biblioteka: - + Copy to clipboard Kopiraj u međuspremnik @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Autorsko pravo %1 2006-2024 qBittorrent projekt + Copyright %1 2006-2025 The qBittorrent project + Autorsko pravo %1 2006-2025 qBittorrent projekt @@ -166,15 +166,10 @@ Spremi na - + Never show again Ne pokazuj više - - - Torrent settings - Postavke torrenta - Set as default category @@ -191,12 +186,12 @@ Započni torrent - + Torrent information Torrent informacije - + Skip hash check Preskoči hash provjeru @@ -205,6 +200,11 @@ Use another path for incomplete torrent Koristite drugu putanju za nepotpuni torrent + + + Torrent options + Mogućnosti Torrenta + Tags: @@ -231,75 +231,75 @@ Uvjet zaustavljanja: - - + + None Nijedno - - + + Metadata received Metapodaci primljeni - + Torrents that have metadata initially will be added as stopped. - + Torrenti koji inicijalno imaju metapodatke bit će dodani kao zaustavljeni. - - + + Files checked Provjerene datoteke - + Add to top of queue Dodaj na vrh reda čekanja - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Kada je označeno, .torrent datoteka neće biti obrisana bez obzira na postavke na stranici "Preuzimanje" dijaloškog okvira Opcija - + Content layout: Izgled sadržaja: - + Original Original - + Create subfolder Stvori podmapu - + Don't create subfolder Ne stvaraj podmapu - + Info hash v1: Info hash v1: - + Size: Veličina: - + Comment: Komentar: - + Date: Datum: @@ -329,151 +329,147 @@ Zapamti posljednju korištenu putanju spremanja - + Do not delete .torrent file Nemoj izbrisati .torrent datoteku - + Download in sequential order Preuzmi u sekvencijskom poretku - + Download first and last pieces first Preuzmi prve i zadnje dijelove prije ostalih. - + Info hash v2: Info hash v2: - + Select All Odaberi sve - + Select None Obrnuti odabir - + Save as .torrent file... Spremi kao .torrent datoteku... - + I/O Error I/O greška - + Not Available This comment is unavailable Nije dostupno - + Not Available This date is unavailable Nije dostupno - + Not available Nije dostupan - + Magnet link Magnet poveznica - + Retrieving metadata... Preuzimaju se metapodaci... - - + + Choose save path Izaberite putanju spremanja - + No stop condition is set. Nije postavljen uvjet zaustavljanja. - + Torrent will stop after metadata is received. Torrent će se zaustaviti nakon što primi metapodatke. - Torrents that have metadata initially aren't affected. - Torenti koji inicijalno imaju metapodatke nisu pogođeni. - - - + Torrent will stop after files are initially checked. Torrent će se zaustaviti nakon početne provjere datoteka. - + This will also download metadata if it wasn't there initially. Ovo će također preuzeti metapodatke ako nisu bili tu u početku. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Slobodni prostor na disku: %2) - + Not available This size is unavailable. Nije dostupno - + Torrent file (*%1) Torrent datoteka (*%1) - + Save as torrent file Spremi kao torrent datoteku - + Couldn't export torrent metadata file '%1'. Reason: %2. Nije moguće izvesti datoteku metapodataka torrenta '%1'. Razlog: %2. - + Cannot create v2 torrent until its data is fully downloaded. Ne može se stvoriti v2 torrent dok se njegovi podaci u potpunosti ne preuzmu. - + Filter files... Filter datoteka... - + Parsing metadata... Razrješavaju se metapodaci... - + Metadata retrieval complete Preuzimanje metapodataka dovršeno @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Preuzimanje torrenta... Izvor: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Dodavanje torrenta nije uspjelo. Izvor: "%1". Razlog: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Otkriven je pokušaj dodavanja duplikata torrenta. Izvor: %1. Postojeći torrent: %2. Rezultat: %3 - - - + Merging of trackers is disabled Spajanje trackera je onemogućeno - + Trackers cannot be merged because it is a private torrent Trackeri se ne mogu spojiti jer se radi o privatnom torrentu - + Trackers are merged from new source Trackeri su spojeni iz novog izvora + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Ograničenja dijeljenja torrenta + Ograničenja dijeljenja torrenta @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Ponovno provjeri torrente pri dopunjavanju - - + + ms milliseconds ms - + Setting Postavka - + Value Value set for this setting Vrijednost - + (disabled) (onemogućeno) - + (auto) (auto) - + + min minutes min - + All addresses Sve adrese - + qBittorrent Section qBittorrent dio - - + + Open documentation Otvori dokumentaciju - + All IPv4 addresses Sve IPv4 adrese - + All IPv6 addresses Sve IPv6 adrese - + libtorrent Section libtorrent dio - + Fastresume files Fastresume datoteke - + SQLite database (experimental) SQLite baza podataka (experimentalno) - + Resume data storage type (requires restart) Nastavi vrstu pohrane podataka (zahtijeva ponovno pokretanje) - + Normal Normalno - + Below normal Ispod normale - + Medium Srednje - + Low Nisko - + Very low Jako nisko - + Physical memory (RAM) usage limit Ograničenje upotrebe fizičke memorije (RAM) - + Asynchronous I/O threads Asinkrone I/O niti - + Hashing threads Hashing niti - + File pool size Veličina pool datoteke - + Outstanding memory when checking torrents Izvanredna memorija pri provjeravanju torrenta - + Disk cache Predmemorija diska - - - - + + + + + s seconds s - + Disk cache expiry interval Interval isteka predmemorije diska - + Disk queue size Veličina reda čekanja na disku - - + + Enable OS cache Omogući OS predmemoriju - + Coalesce reads & writes Spajati čitanje & pisanje - + Use piece extent affinity Koristite komade srodnosti opsega - + Send upload piece suggestions Pošaljite prijedloge komada za prijenos - - - - + + + + + 0 (disabled) 0 (onemogućeno) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Spremi interval podataka o nastavku [0: onemogućeno] - + Outgoing ports (Min) [0: disabled] Odlazni portovi (min.) [0: onemogućeno] - + Outgoing ports (Max) [0: disabled] Dolazni portovi (min.) [0: onemogućeno] - + 0 (permanent lease) 0 (trajni najam) - + UPnP lease duration [0: permanent lease] Trajanje UPnP najma [0: trajni najam] - + Stop tracker timeout [0: disabled] Istek vremena trackera [0: onemogućeno] - + Notification timeout [0: infinite, -1: system default] Istek obavijesti [0: beskonačno, -1: zadano za sustav] - + Maximum outstanding requests to a single peer Maksimalan broj neriješenih zahtjeva za jednog ravnopravnog korisnika - - - - - + + + + + KiB KiB - + (infinite) (beskonačno) - + (system default) (zadano za sustav) - + + Delete files permanently + Trajno brisanje datoteka + + + + Move files to trash (if possible) + Premjestite datoteke u smeće (ako je moguće) + + + + Torrent content removing mode + Torrent način za uklanjanje sadržaja + + + This option is less effective on Linux Ova je opcija manje učinkovita na Linuxu - + Process memory priority Prioritet memorije procesa - + Bdecode depth limit Bdecode ograničenje dubine - + Bdecode token limit Bdecode ograničenje tokena - + Default Zadano - + Memory mapped files Memorijski mapirane datoteke - + POSIX-compliant POSIX-compliant - + + Simple pread/pwrite + Jednostavno pčitanje/ppisanje + + + Disk IO type (requires restart) Vrsta IO diska (zahtijeva ponovno pokretanje) - - + + Disable OS cache Onemogući predmemoriju OS-a - + Disk IO read mode Disk IO način čitanja - + Write-through Pisanje-kroz - + Disk IO write mode Disk IO način pisanja - + Send buffer watermark Pošalji međuspremnik vodenog žiga - + Send buffer low watermark Pošalji međuspremnik niske razine vodenog žiga - + Send buffer watermark factor Pošalji faktor međuspremnika vodenog žiga - + Outgoing connections per second Odlazne veze u sekundi - - + + 0 (system default) 0 (zadano za sustav) - + Socket send buffer size [0: system default] Veličina međuspremnika za priključak slanja [0: zadano za sustav] - + Socket receive buffer size [0: system default] Veličina međuspremnika priključak primanja [0: zadano za sustav] - + Socket backlog size Veličina backlog zaostataka - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Spremi interval statistike [0: onemogućeno] + + + .torrent file size limit Ograničenje veličine .torrent datoteke - + Type of service (ToS) for connections to peers Vrsta usluge (ToS) za veze s peerovima - + Prefer TCP Preferiraj TCP - + Peer proportional (throttles TCP) Proporcionalno peer (prigušuje TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Podrška internacionaliziranom nazivu domene (IDN) - + Allow multiple connections from the same IP address Dopustite više veza s iste IP adrese - + Validate HTTPS tracker certificates Potvrdite certifikate HTTPS trackera - + Server-side request forgery (SSRF) mitigation Ublažavanje krivotvorenja zahtjeva na strani poslužitelja (SSRF). - + Disallow connection to peers on privileged ports Zabrani povezivanje s ravnopravnim uređajima na privilegiranim portovima - + It appends the text to the window title to help distinguish qBittorent instances - + Dodaje tekst u naslov prozora kako bi qBittorent lakše razlikovao instance - + Customize application instance name - + Prilagodite naziv instance aplikacije - + It controls the internal state update interval which in turn will affect UI updates Kontrolira interni interval ažuriranja stanja koji će zauzvrat utjecati na ažuriranja korisničkog sučelja - + Refresh interval Interval osvježavanja - + Resolve peer host names Razrješi nazive peer hostova - + IP address reported to trackers (requires restart) IP adresa prijavljena trackerima (zahtijeva ponovno pokretanje) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Ponovno najavite svim trackerima kada se IP ili port promijeni - + Enable icons in menus Omogućite ikone u izbornicima - + + Attach "Add new torrent" dialog to main window + Priloži dijalog "Dodaj novi torrent" u glavni prozor + + + Enable port forwarding for embedded tracker Omogući prosljeđivanje priključka za ugrađeni alat za praćenje - + Enable quarantine for downloaded files Omogući karantenu za preuzete datoteke - + Enable Mark-of-the-Web (MOTW) for downloaded files Omogućite Mark-of-the-Web (MOTW) za preuzete datoteke - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Utječe na provjeru valjanosti certifikata i aktivnosti ne-torrent protokola (npr. RSS feedove, ažuriranja programa, torrent datoteke, geoip db, itd.) + + + + Ignore SSL errors + Ignoriraj SSL pogreške + + + (Auto detect if empty) (Automatsko otkrivanje ako je prazno) - + Python executable path (may require restart) Python izvršna putanja (možda će biti potrebno ponovno pokretanje) - + + Start BitTorrent session in paused state + Pokrenite BitTorrent sesiju u pauziranom stanju + + + + sec + seconds + sek + + + + -1 (unlimited) + -1 (neograničeno) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Istek vremena za isključivanje BitTorrent sesije [-1: neograničeno] + + + Confirm removal of tracker from all torrents Potvrdite uklanjanje trackera sa svih torrenta - + Peer turnover disconnect percentage Postotak prekida veze među peerovima - + Peer turnover threshold percentage Postotak praga fluktuacije među peerovima - + Peer turnover disconnect interval Interval isključenja peer prometa - + Resets to default if empty Vraća se na zadano ako je prazno - + DHT bootstrap nodes DHT čvorovi za pokretanje - + I2P inbound quantity I2P ulazna količina - + I2P outbound quantity I2P izlazna količina - + I2P inbound length I2P ulazna duljina - + I2P outbound length I2P izlazna duljina - + Display notifications Prikaži obavijesti - + Display notifications for added torrents Prikaži obavijesti za dodane torrente - + Download tracker's favicon Preuzmi ikonu trackera - + Save path history length Spremi putanju duljine povijesti - + Enable speed graphs Omogući grafikone brzine - + Fixed slots Fiksni slotovi - + Upload rate based Na temelju brzine prijenosa - + Upload slots behavior Ponašanje slota učitavanja - + Round-robin Okruglo - + Fastest upload Najbrže učitavanje - + Anti-leech Anti-leech - + Upload choking algorithm Učitaj algoritam za gušenje - + Confirm torrent recheck Potvrdi ponovnu provjeru torrenta - + Confirm removal of all tags Potvrdi uklanjanje svih oznaka - + Always announce to all trackers in a tier Uvijek najavi svim trackerima u nizu - + Always announce to all tiers Uvijek najavi svim razinama - + Any interface i.e. Any network interface Bilo koje sučelje - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP algoritam mješovitog načina rada - + Resolve peer countries Rješavanje zemalja peerova - + Network interface Mrežno sučelje - + Optional IP address to bind to Opcionalna IP adresa za povezivanje - + Max concurrent HTTP announces Maksimalan broj istodobnih HTTP najava - + Enable embedded tracker Omogući ugrađeni tracker - + Embedded tracker port Port ugrađenog trackera + + AppController + + + + Invalid directory path + Nevažeća putanja mape + + + + Directory does not exist + Mapa ne postoji + + + + Invalid mode, allowed values: %1 + Nevažeći način, dopuštene vrijednosti: %1 + + + + cookies must be array + Kolačići moraju biti niz + + Application - + Running in portable mode. Auto detected profile folder at: %1 Radi u portabilnom načinu rada. Automatski otkrivena mapa profila na: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Otkrivena zastavica redundantnog naredbenog retka: "%1". Prijenosni način rada podrazumijeva relativno brz nastavak. - + Using config directory: %1 Korištenje konfiguracijskog direktorija: %1 - + Torrent name: %1 Ime 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 za %1. - + + Thank you for using qBittorrent. Hvala što koristite qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, šaljem obavijest e-poštom - + Add torrent failed Dodavanje torrenta nije uspjelo - + Couldn't add torrent '%1', reason: %2. Nije moguće dodati torrent '%1', razlog: %2. - + The WebUI administrator username is: %1 WebUI administratorsko korisničko ime je: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 WebUI administratorska lozinka nije postavljena. Za ovu sesiju dana je privremena lozinka: %1 - + You should set your own password in program preferences. Trebali biste postaviti vlastitu lozinku u postavkama aplikacije. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI je onemogućen! Da biste omogućili WebUI, ručno uredite konfiguracijsku datoteku. - + Running external program. Torrent: "%1". Command: `%2` Pokretanje vanjskog programa. Torrent: "%1". Naredba: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Pokretanje vanjskog programa nije uspjelo. Torrent: "%1". Naredba: `%2` - + Torrent "%1" has finished downloading Torrent "%1" je završio s preuzimanjem - + WebUI will be started shortly after internal preparations. Please wait... WebUI će biti pokrenut ubrzo nakon internih priprema. Molimo pričekajte... - - + + Loading torrents... Učitavanje torrenta... - + E&xit I&zlaz - + I/O Error i.e: Input/Output Error I/O greška - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1436,100 +1532,110 @@ Došlo je do I/O pogreške za torrent '%1'. Razlog: %2 - + Torrent added Torrent je dodan - + '%1' was added. e.g: xxx.avi was added. '%1' je dodan. - + Download completed Preuzimanje dovršeno - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 je pokrenut. ID procesa: %2 - + + This is a test email. + Ovo je testna e-pošta. + + + + Test email + Testna e-pošta. + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' je završio preuzimanje. - + Information Informacija - + To fix the error, you may need to edit the config file manually. Da biste ispravili pogrešku, možda ćete morati ručno urediti konfiguracijsku datoteku. - + To control qBittorrent, access the WebUI at: %1 Za kontrolu qBittorrenta pristupite WebUI na: %1 - + Exit Izlaz - + Recursive download confirmation Potvrda rekurzivnog preuzimanja - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' sadrži .torrent datoteke, želite li nastaviti s njihovim preuzimanjem? - + Never Nikada - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekurzivno preuzimanje .torrent datoteke unutar torrenta. Izvor torrenta: "%1". Datoteka: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Postavljanje ograničenja upotrebe fizičke memorije (RAM) nije uspjelo. Šifra pogreške: %1. Poruka o pogrešci: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Neuspješno postavljanje ograničenja upotrebe fizičke memorije (RAM). Tražena veličina: %1. Čvrsto ograničenje sustava: %2. Šifra pogreške: %3. Poruka o pogrešci: "%4" - + qBittorrent termination initiated Pokrenuto prekidanje qBittorrenta - + qBittorrent is shutting down... qBittorrent se gasi... - + Saving torrent progress... Spremanje napretka torrenta... - + qBittorrent is now ready to exit qBittorrent je sada spreman za izlaz @@ -1608,12 +1714,12 @@ Prioritet: - + Must Not Contain: Ne smije sadržavati: - + Episode Filter: Filter epizoda: @@ -1665,263 +1771,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Izv&ezi... - + 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 - + 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 - + Episode number is a mandatory positive value Broj epizode je obavezna pozitivna vrijednost - + Rules Pravila - + Rules (legacy) Pravila (nasljeđena) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Beskonačni domet: 1x25-; odgovara epizodama 25 i više od prve sezone i svim epizodama kasnijih sezona - + Last Match: %1 days ago Posljednje podudaranje: prije %1 dan(a) - + Last Match: Unknown Posljednje podudaranje: Nepoznato - + New rule name Naziv novog pravila - + Please type the name of the new download rule. Upišite naziv novog pravila preuzimanja. - - + + Rule name conflict Konflikt naziva pravila - - + + A rule with this name already exists, please choose another name. 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'? - + 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 - + Invalid action Neispravna radnja - + The list is empty, there is nothing to export. Popis je prazan. Nema se što izvesti. - + Export RSS rules Izvoz RSS pravila - + I/O Error I/O greška - + Failed to create the destination file. Reason: %1 Stvaranje odredišne ​​datoteke nije uspjelo. Razlog: %1 - + Import RSS rules Uvoz RSS pravila - + Failed to import the selected rules file. Reason: %1 Uvoz odabrane datoteke s pravilima nije uspio. Razlog: %1 - + Add new rule... Dodaj novo pravilo... - + Delete rule Ukloni pravilo - + Rename rule... Preimenuj pravilo... - + Delete selected rules Ukloni odabrana pravila - + Clear downloaded episodes... Obriši preuzete epizode... - + Rule renaming Preimenovanje pravila - + Please type the new rule name Upišite naziv novog pravila - + Clear downloaded episodes Brisanje preuzetih epizoda - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Jeste li sigurni da želite obrisati popis preuzetih epizoda za odabrano pravilo? - + Regex mode: use Perl-compatible regular expressions Regex mod: koristite Perl-kompatibilne regularne izraze - - + + Position %1: %2 Pozicija %1: %2 - + Wildcard mode: you can use Način zamjenskog znaka: možete koristiti - - + + Import error Pogreška uvoza - + Failed to read the file. %1 Čitanje datoteke nije uspjelo. %1 - + ? to match any single character ? odgovarati bilo kojem pojedinačnom znaku - + * to match zero or more of any characters * za podudaranje s nula ili više bilo kojih znakova - + Whitespaces count as AND operators (all words, any order) Razmaci se računaju kao operatori I (sve riječi, bilo kojim redoslijedom) - + | is used as OR operator | se koristi kao ILI operator - + If word order is important use * instead of whitespace. Ako je redoslijed riječi važan, koristite * umjesto razmaka. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Izraz s praznom klauzulom %1 (npr. %2) - + will match all articles. će odgovarati svim artiklima. - + will exclude all articles. isključit će sve artikle. @@ -1963,7 +2069,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nije moguće stvoriti mapu za nastavak torrenta: "%1" @@ -1973,28 +2079,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Nije moguće analizirati podatke nastavka: nevažeći format - - + + Cannot parse torrent info: %1 Ne mogu analizirati informacije o torrentu: %1 - + Cannot parse torrent info: invalid format Ne mogu analizirati podatke o torrentu: nevažeći format - + Mismatching info-hash detected in resume data U podatcima je otkriven nepodudarni hash informacija - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Nije moguće spremiti metapodatke torrenta u '%1'. Pogreška: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Nije moguće spremiti podatke o nastavku torrenta u '%1'. Pogreška: %2. @@ -2005,16 +2121,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Nije moguće analizirati podatke o nastavku: %1 - + Resume data is invalid: neither metadata nor info-hash was found Podaci o nastavku nisu valjani: nisu pronađeni ni metapodaci ni hash informacija - + Couldn't save data to '%1'. Error: %2 Nije moguće spremiti podatke u '%1'. Pogreška: %2 @@ -2022,38 +2139,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Nije pronađeno. - + Couldn't load resume data of torrent '%1'. Error: %2 Nije moguće učitati podatke o nastavku torrenta '%1'. Pogreška: %2 - - + + Database is corrupted. Baza podataka je oštećena. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Nije moguće omogućiti način vođenja dnevnika Write-Ahead Logging (WAL). Pogreška: %1. - + Couldn't obtain query result. Nije moguće dobiti rezultat upita. - + WAL mode is probably unsupported due to filesystem limitations. WAL način rada vjerojatno nije podržan zbog ograničenja datotečnog sustava. - + + + Cannot parse resume data: %1 + Nije moguće analizirati podatke o nastavku: %1 + + + + + Cannot parse torrent info: %1 + Ne mogu analizirati informacije o torrentu: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Nije moguće započeti transakciju. Pogreška: %1 @@ -2061,22 +2200,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Nije moguće spremiti metapodatke torrenta. Pogreška: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nije moguće pohraniti podatke o nastavku za torrent '%1'. Pogreška: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nije moguće izbrisati podatke o nastavku torrenta '%1'. Pogreška: %2 - + Couldn't store torrents queue positions. Error: %1 Nije moguće pohraniti položaje čekanja torrenta. Pogreška: %1 @@ -2084,457 +2223,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Podrška za distribuiranu hash tablicu (DHT): %1 - - - - - - - - - + + + + + + + + + ON UKLJ - - - - - - - - - + + + + + + + + + OFF ISKLJ - - + + Local Peer Discovery support: %1 Podrška za lokalno otkrivanje ravnopravnih korisnika: %1 - + Restart is required to toggle Peer Exchange (PeX) support Ponovno pokretanje potrebno je za uključivanje podrške za Peer Exchange (PeX). - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Nastavljanje torrenta nije uspjelo. Torrent: "%1". Razlog: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Nastavljanje torrenta nije uspjelo: otkriven je nedosljedan ID torrenta. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Otkriveni nedosljedni podaci: kategorija nedostaje u konfiguracijskoj datoteci. Kategorija će se vratiti, ali će se njezine postavke vratiti na zadane. Torrent: "%1". Kategorija: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Otkriveni nedosljedni podaci: nevažeća kategorija. Torrent: "%1". Kategorija: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Otkrivena nepodudarnost između staza spremanja oporavljene kategorije i trenutne staze spremanja torrenta. Torrent je sada prebačen u ručni način rada. Torrent: "%1". Kategorija: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Otkriveni nedosljedni podaci: oznaka nedostaje u konfiguracijskoj datoteci. Oznaka će biti oporavljena. Torrent: "%1". Oznaka: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Otkriveni nedosljedni podaci: nevažeća oznaka. Torrent: "%1". Oznaka: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Otkriven je događaj buđenja sustava. Ponovno javljanje svim trackerima... - + Peer ID: "%1" Peer ID: "%1" - + HTTP User-Agent: "%1" HTTP Korisnički-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peer Exchange (PeX) podrška: %1 - - + + Anonymous mode: %1 Anonimni način rada: %1 - - + + Encryption support: %1 Podrška za šifriranje: %1 - - + + FORCED PRISILNO - + Could not find GUID of network interface. Interface: "%1" Nije moguće pronaći GUID mrežnog sučelja. Sučelje: "%1" - + Trying to listen on the following list of IP addresses: "%1" Pokušavam slušati sljedeći popis IP adresa: "%1" - + Torrent reached the share ratio limit. Torrent je dosegao ograničenje omjera dijeljenja. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Uklonjen torrent. - - - - - - Removed torrent and deleted its content. - Uklonjen torrent i izbrisan njegov sadržaj. - - - - - - Torrent paused. - Torrent je pauziran. - - - - - + Super seeding enabled. Super dijeljenje omogućeno. - + Torrent reached the seeding time limit. Torrent je dosegao vremensko ograničenje dijeljenja. - + Torrent reached the inactive seeding time limit. Torrent je dosegao ograničenje vremena neaktivnog seedanja. - + Failed to load torrent. Reason: "%1" Neuspješno učitavanje torrenta. Razlog: "%1" - + I2P error. Message: "%1". I2P greška. Poruka: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP podrška: UKLJ - + + Saving resume data completed. + Spremanje nastavka podataka dovršeno. + + + + BitTorrent session successfully finished. + BitTorrent sesija uspješno završena. + + + + Session shutdown timed out. + Gašenje sesije je isteklo. + + + + Removing torrent. + Uklanjanje torrenta. + + + + Removing torrent and deleting its content. + Uklanjanje torrenta i brisanje njegovog sadržaja + + + + Torrent stopped. + Torrent je zaustavljen. + + + + Torrent content removed. Torrent: "%1" + Torrent sadržaj uklonjen. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Uklanjanje torrent sadržaja nije uspjelo. Torrent: "%1". Greška: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent uklonjen. Torrent: "%1" + + + + Merging of trackers is disabled + Spajanje trackera je onemogućeno + + + + Trackers cannot be merged because it is a private torrent + Trackeri se ne mogu spojiti jer se radi o privatnom torrentu + + + + Trackers are merged from new source + Trackeri su spojeni iz novog izvora + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP podrška: ISKLJ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Izvoz torrenta nije uspio. Torrent: "%1". Odredište: "%2". Razlog: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Prekinuto spremanje podataka o nastavku. Broj neizvršenih torrenta: %1 - + The configured network address is invalid. Address: "%1" Konfigurirana mrežna adresa nije važeća. Adresa: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Nije uspjelo pronalaženje konfigurirane mrežne adrese za slušanje. Adresa: "%1" - + The configured network interface is invalid. Interface: "%1" Konfigurirano mrežno sučelje nije važeće. Sučelje: "%1" - + + Tracker list updated + Popis trackera ažuriran + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Odbijena nevažeća IP adresa tijekom primjene popisa zabranjenih IP adresa. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Dodan tracker torrentu. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Uklonjen tracker iz torrenta. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Torrentu je dodan URL dijeljenja. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Uklonjen URL dijeljenja iz torrenta. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent je pauziran. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Uklanjanje djelomične datoteke nije uspjelo. Torrent: "%1". Razlog: "%2". - + Torrent resumed. Torrent: "%1" Torrent je nastavljen. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Preuzimanje torrenta završeno. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Premještanje torrenta otkazano. Torrent: "%1". Izvor: "%2". Odredište: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent je zaustavljen. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Premještanje torrenta u red čekanja nije uspjelo. Torrent: "%1". Izvor: "%2". Odredište: "%3". Razlog: torrent se trenutno kreće prema odredištu - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Premještanje torrenta u red čekanja nije uspjelo. Torrent: "%1". Izvor: "%2" Odredište: "%3". Razlog: obje staze pokazuju na isto mjesto - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Premještanje torrenta u red čekanja. Torrent: "%1". Izvor: "%2". Odredište: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Počnite pomicati torrent. Torrent: "%1". Odredište: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Spremanje konfiguracije kategorija nije uspjelo. Datoteka: "%1". Greška: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nije uspjelo analiziranje konfiguracije kategorija. Datoteka: "%1". Greška: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Datoteka IP filtera uspješno je analizirana. Broj primijenjenih pravila: %1 - + Failed to parse the IP filter file Nije uspjelo analiziranje IP filtera datoteke - + Restored torrent. Torrent: "%1" Obnovljen torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Dodan novi torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Pogreška u torrentu. Torrent: "%1". Greška: "%2" - - - Removed torrent. Torrent: "%1" - Uklonjen torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Uklonjen torrent i izbrisan njegov sadržaj. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentu nedostaju SSL parametri. Torrent: "%1". Poruka: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Torrent je uklonjen, ali nije uspio izbrisati njegov sadržaj. Torrent: "%1". Greška: "%2". Razlog: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP mapiranje porta nije uspjelo. Poruka: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP port mapping succeeded.Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrirani port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). povlašteni port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent sesija naišla je na ozbiljnu pogrešku. Razlog: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy pogreška. Adresa 1. Poruka: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 ograničenja mješovitog načina rada - + Failed to load Categories. %1 Učitavanje kategorija nije uspjelo. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Nije uspjelo učitavanje konfiguracije kategorija. Datoteka: "%1". Pogreška: "Nevažeći format podataka" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent je uklonjen, ali nije uspio izbrisati njegov sadržaj i/ili dio datoteke. Torrent: "%1". Greška: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 je onemogućen - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 je onemogućen - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL dijeljenje DNS pretraživanje nije uspjelo. Torrent: "%1". URL: "%2". Greška: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Primljena poruka o pogrešci od URL seeda. Torrent: "%1". URL: "%2". Poruka: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Uspješno slušanje IP-a. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Slušanje IP-a nije uspjelo. IP: "%1". Port: "%2/%3". Razlog: "%4" - + Detected external IP. IP: "%1" Otkriven vanjski IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Pogreška: Interni red čekanja upozorenja je pun i upozorenja su izostavljena, mogli biste vidjeti smanjene performanse. Vrsta ispuštenog upozorenja: "%1". Poruka: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent je uspješno premješten. Torrent: "%1". Odredište: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Premještanje torrenta nije uspjelo. Torrent: "%1". Izvor: "%2". Odredište: "%3". Razlog: "%4" @@ -2544,19 +2729,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Pokretanje seedanja nije uspjelo. BitTorrent::TorrentCreator - + Operation aborted Postupak prekinut - - + + Create new torrent file failed. Reason: %1. Stvaranje nove torrent datoteke nije uspjelo. Razlog: %1. @@ -2564,67 +2749,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Nije uspjelo dodavanje peera "%1" u torrent "%2". Razlog: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" dodan je torrentu "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Otkriveni su neočekivani podaci. Torrent: %1. Podaci: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nije moguće pisati u datoteku. Razlog: "%1". Torrent je sada u načinu rada "samo slanje". - + Download first and last piece first: %1, torrent: '%2' Prvo preuzmite prvi i zadnji dio: %1, torrent: '%2' - + On Uklj - + Off Isklj - + Failed to reload torrent. Torrent: %1. Reason: %2 Ponovno učitavanje torrenta nije uspjelo. Torrent: %1. Razlog: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generiranje podataka nastavka nije uspjelo. Torrent: "%1". Razlog: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Vraćanje torrenta nije uspjelo. Datoteke su vjerojatno premještene ili pohrana nije dostupna. Torrent: "%1". Razlog: "%2" - + Missing metadata Nedostaju metapodaci - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Preimenovanje datoteke nije uspjelo. Torrent: "%1", datoteka: "%2", razlog: "%3" - + Performance alert: %1. More info: %2 Upozorenje o performansama: %1. Više informacija: %2 @@ -2645,189 +2830,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametar '%1' mora slijediti sintaksu '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametar '%1' mora slijediti sintaksu '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Očekivan cijeli broj u varijabli okoline '%1', ali dobiven je '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametar '%1' mora slijediti sintaksu '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Očekivan %1 u varijabli okruženja '%2', ali dobiven je '%3' - - + + %1 must specify a valid port (1 to 65535). %1 mora navesti važeći port (1 do 65535). - + Usage: Upotreba: - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)...] - + Options: Postavke: - + Display program version and exit Prikaz verzije programa i izlaz - + Display this help message and exit Prikaz ove poruke pomoći i izlaz - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametar '%1' mora slijediti sintaksu '%1=%2' + + + Confirm the legal notice Potvrdite pravnu obavijest - - + + port port - + Change the WebUI port Promijenite WebUI port - + Change the torrenting port Promijenite port za torrentiranje - + Disable splash screen Onemogući najavni ekran - + Run in daemon-mode (background) Pokreni u pozadinskom načinu - + dir Use appropriate short form or abbreviation of "directory" mapa - + Store configuration files in <dir> Pohranite konfiguracijske datoteke u <dir> - - + + name naziv - + Store configuration files in directories qBittorrent_<name> Pohranite konfiguracijske datoteke u direktorije qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hakirajte datoteke libtorrent fastresume i napravite putanje datoteka relativnim prema direktoriju profila - + files or URLs datoteke ili URL-ovi - + Download the torrents passed by the user Preuzmite torrente koje je korisnik prenio - + Options when adding new torrents: Opcije pri dodavanju novih torrenta: - + path putanja - + Torrent save path Putanja za spremanje torrenta - - Add torrents as started or paused - Dodajte torrente kao pokrenute ili pauzirane + + Add torrents as running or stopped + Dodajte torrente kao pokrenute ili zaustavljene - + Skip hash check Preskoči provjeru hasha - + Assign torrents to category. If the category doesn't exist, it will be created. Dodijelite torrente kategoriji. Ako kategorija ne postoji, bit će stvorena. - + Download files in sequential order Preuzmite datoteke redoslijedom - + Download first and last pieces first Preuzmi prve i zadnje dijelove prije drugih. - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Odredite hoće li se prilikom dodavanja torrenta otvoriti dijaloški okvir "Dodaj novi torrent". - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Vrijednosti opcija mogu se dostaviti putem varijabli okoline. Za opciju pod nazivom 'naziv-parametra', naziv varijable okruženja je 'QBT_PARAMETER_NAME' (u velikim slovima, '-' zamijenjeno s '_'). Za prijenos vrijednosti zastavice postavite varijablu na '1' ili 'TRUE'. Na primjer, da biste onemogućili početni ekran: - + Command line parameters take precedence over environment variables Parametri naredbenog retka imaju prednost nad varijablama okruženja - + Help Pomoć @@ -2879,13 +3064,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Nastavi torrente + Start torrents + Pokreni torrente - Pause torrents - Pauziraj torrente + Stop torrents + Zaustavi torrente @@ -2896,15 +3081,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Uredi... - + Reset Poništi + + + System + Sustav + CookiesDialog @@ -2945,12 +3135,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Nije uspjelo učitavanje lista stilova prilagođene teme. %1 - + Failed to load custom theme colors. %1 Učitavanje prilagođenih boja teme nije uspjelo. %1 @@ -2958,7 +3148,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Učitavanje zadanih boja teme nije uspjelo. %1 @@ -2977,23 +3167,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Također trajno izbrišite datoteke + Also remove the content files + Također uklonite datoteke sadržaja - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Jeste li sigurni da želite ukloniti '%1' s popisa prijenosa? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Jeste li sigurni da želite ukloniti ove %1 torrente s popisa prijenosa? - + Remove Ukloni @@ -3006,12 +3196,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Preuzimanje s URL-ova - + Add torrent links Dodajte torrent linkove - + One link per line (HTTP links, Magnet links and info-hashes are supported) Jedna veza po retku (podržani su HTTP linkovi, Magnet linkovi i info-hashovi) @@ -3021,12 +3211,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Preuzimanje - + No URL entered URL nije unesen - + Please type at least one URL. Unesite barem jedan URL. @@ -3185,25 +3375,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Greška analiziranja: Filter datoteka nije valjana PeerGuardian P2B datoteka. + + FilterPatternFormatMenu + + + Pattern Format + Format uzorka + + + + Plain text + Običan tekst + + + + Wildcards + Zamjenski znakovi + + + + Regular expression + Uobičajeni izraz + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Preuzimanje torrenta... Izvor: "%1" - - Trackers cannot be merged because it is a private torrent - Trackeri se ne mogu spojiti jer se radi o privatnom torrentu - - - + Torrent is already present Torrent je već prisutan - + + Trackers cannot be merged because it is a private torrent. + Trackeri se ne mogu spojiti jer se radi o privatnom torrentu. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' je već na popisu prijenosa. Želite li spojiti trackere iz novog izvora? @@ -3211,38 +3424,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + 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 - + Database corrupted: no data section found. Korumpirana baza podataka: nije pronađen podatkovni dio. @@ -3250,17 +3463,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Veličina Http zahtjeva premašuje ograničenje, zatvara se priključak. Ograničenje: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Loša metoda Http zahtjeva, zatvaranje priključka. IP: %1. Metoda: "%2" - + Bad Http request, closing socket. IP: %1 Loš Http zahtjev, zatvara se priključak. IP: %1 @@ -3301,26 +3514,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Pretraži... - + Reset Poništi - + Select icon Odaberi ikonu - + Supported image files Podržane slikovne datoteke + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Upravljanje napajanjem pronašlo je odgovarajuće D-Bus sučelje. Sučelje: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Pogreška upravljanja napajanjem. Radnja: %1. Pogreška: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Neočekivana pogreška upravljanja napajanjem. Stanje: %1. Pogreška: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3352,13 +3599,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 je blokiran. Razlog: %2. - + %1 was banned 0.0.0.0 was banned %1 je zabranjen @@ -3367,60 +3614,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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. - + 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: - + An unrecoverable error occurred. Došlo je do nepopravljive pogreške. + - qBittorrent has encountered an unrecoverable error. qBittorrent je naišao na nepopravljivu pogrešku. - + You cannot use %1: qBittorrent is already running. Ne možete koristiti %1: qBittorrent je već pokrenut. - + Another qBittorrent instance is already running. Još jedna instanca qBittorrenta je već pokrenuta. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Pronađena neočekivana instanca qBittorrenta. Izlaz iz ove instance. ID trenutnog procesa: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Pogreška prilikom demoniziranja. Razlog: "%1". Šifra pogreške: %2. @@ -3433,607 +3680,679 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Ur&edi - + &Tools Ala&ti - + &File &Datoteka - + &Help &Pomoć - + On Downloads &Done Ka&d preuzimanje završi - + &View Po&gled - + &Options... &Opcije... - - &Resume - Nastavi - - - + &Remove &Ukloni - + Torrent &Creator St&varač torrenta - - + + Alternative Speed Limits Alternativno ograničenje brzine - + &Top Toolbar Gornja alatna &traka - + Display Top Toolbar Prikaži gornju alatnu traku - + Status &Bar Tra&ka statusa - + Filters Sidebar Bočna traka filtera - + 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 - + Do&nate! Do&niraj! - + + Sh&utdown System + Is&ključi sustav + + + &Do nothing Ne čin&i ništa - + Close Window Zatvori prozor - - R&esume All - Nastavi sve - - - + Manage Cookies... Upravljaj kolačićima... - + Manage stored network cookies Upravljaj spremljenim mrežnim kolačićima - + Normal Messages Normalne poruke - + Information Messages Informacijske poruke - + Warning Messages Poruke upozorenja - + Critical Messages Kritične poruke - + &Log &Dnevnik - + + Sta&rt + Sta&rt + + + + Sto&p + Sto&p + + + + R&esume Session + N&astavi sesiju + + + + Pau&se Session + Pauziraj &sesiju + + + Set Global Speed Limits... Postavi globalna ograničenja brzine... - + Bottom of Queue Dno reda čekanja - + Move to the bottom of the queue Pomaknite na dno reda čekanja - + Top of Queue Vrh reda čekanja - + Move to the top of the queue Pomaknite na vrh reda čekanja - + Move Down Queue Pomaknite dolje u redu čekanja - + Move down in the queue Pomaknite dolje u redu čekanja - + Move Up Queue Pomaknite gore u redu čekanja - + Move up in the queue Pomaknite gore u redu čekanja - + &Exit qBittorrent Izlaz iz qBittorr&enta - + &Suspend System &Suspendiraj sustav - + &Hibernate System &Hiberniraj sustav - - S&hutdown System - U&gasi sustav - - - + &Statistics &Statistika - + Check for Updates Provjeri ažuriranja - + Check for Program Updates Provjeri ažuriranje programa - + &About &O programu - - &Pause - &Pauziraj - - - - P&ause All - P&auziraj sve - - - + &Add Torrent File... Dod&aj torrent datoteku... - + Open Otvori - + E&xit &Izlaz - + Open URL Otvori URL - + &Documentation &Dokumentacija - + Lock Zaključaj - - - + + + Show Prikaži - + Check for program updates Provjeri ažuriranja programa - + Add Torrent &Link... Dodaj torrent &poveznicu... - + If you like qBittorrent, please donate! Ako vam se sviđa qBittorrent donirajte! - - + + Execution Log Dnevnik izvršavanja - + Clear the password Izbriši lozinku - + &Set Password Namje&sti lozinku - + Preferences Postavke - + &Clear Password &Očisti lozinku - + Transfers Prijenosi - - + + qBittorrent is minimized to tray qBittorrent je minimiziran u traku - - - + + + This behavior can be changed in the settings. You won't be reminded again. Ovo se ponašanje može promijeniti u postavkama. Nećete više dobiti podsjetnik. - + 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: - + Are you sure you want to clear the password? Želite li sigurno izbrisati lozinku? - + Use regular expressions Koristi uobičajene izraze - + + + Search Engine + Dodaci za pretraživanje + + + + Search has failed + Pretraga nije uspjela + + + + Search has finished + Pretraga je završila + + + Search Traži - + Transfers (%1) Prijenosi (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent je upravo ažuriran i potrebno ga je ponovno pokrenuti kako bi promjene bile učinkovite. - + qBittorrent is closed to tray qBittorrent je zatvoren u traku - + Some files are currently transferring. Neke datoteke se trenutno prenose. - + Are you sure you want to quit qBittorrent? Jeste li sigurni da želite napustiti qBittorrent? - + &No &Ne - + &Yes &Da - + &Always Yes Uvijek d&a - + Options saved. Opcije spremljene. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUZIRANO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Nije moguće preuzeti Python instalacijski program. Pogreška: "%1". +Molimo instalirajte Python ručno. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Preimenovanje Python instalacijskog programa nije uspjela. Izvor: "%1". Odredište: "%2". + + + + Python installation success. + Instalacija Pythona je uspješna. + + + + Exit code: %1. + Kod pri izlazu: %1. + + + + Reason: installer crashed. + Razlog: instalacijski program se srušio. + + + + Python installation failed. + Instalacija Pythona nije uspješna. + + + + Launching Python installer. File: "%1". + Pokretanje Python instalacijskog programa. Datoteka: "%1". + + + + Missing Python Runtime Nedostaje Python Runtime - + qBittorrent Update Available qBittorrent ažuriranje dostupno - + 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. - - + + Old Python Runtime Stari Python Runtime - + A new version is available. Dostupna je nova verzija. - + Do you want to download %1? Želite li preuzeti %1? - + Open changelog... Otvori dnevnik promjena... - + No updates available. You are already using the latest version. Nema dostupnih ažuriranja. Već koristite posljednju verziju. - + &Check for Updates &Provjeri ažuriranja - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Vaša verzija Pythona (%1) je zastarjela. Minimalni zahtjev: %2. Želite li sada instalirati noviju verziju? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Vaša verzija Pythona (%1) je zastarjela. Nadogradite na najnoviju verziju kako bi tražilice radile. Minimalni zahtjev: %2. - + + Paused + Pauzirano + + + Checking for Updates... Provjeravanje ažuriranja... - + Already checking for program updates in the background Već se provjeravaju softverska ažuriranja u pozadini - + + Python installation in progress... + Instalacija Pythona u tijeku... + + + + Failed to open Python installer. File: "%1". + Pogreška pri pokretanju Python instalacijskog programa. Datoteka: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Pogreška pri provjeri MD5 sažetka Python instalacijskog programa. Datoteka: "%1". Rezultirani sažetak: "%2". Očekivani sažetak: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Pogreška pri provjeri SHA3-512 sažetka Python instalacijskog programa. Datoteka: "%1". Rezultirani sažetak: "%2". Očekivani sažetak: "%3". + + + 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 - + Filter torrents... Filtrirajte torrente... - + Filter by: Filtrirati po: - + The password must be at least 3 characters long Lozinka mora imati najmanje 3 znaka - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Otvori torrent datoteke - + Torrent Files Torrent datoteke @@ -4228,7 +4547,12 @@ Instalirajte ručno. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL pogreška, URL: "%1", pogreške: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoriranje SSL pogreške, URL: "%1", pogreške: "%2" @@ -5522,47 +5846,47 @@ Instalirajte ručno. Net::Smtp - + Connection failed, unrecognized reply: %1 Povezivanje nije uspjelo, neprepoznat odgovor: %1 - + Authentication failed, msg: %1 Provjera autentičnosti nije uspjela, poruka: %1 - + <mail from> was rejected by server, msg: %1 <mail from> poslužitelj je odbio, poruka: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> poslužitelj je odbio, poruka: %1 - + <data> was rejected by server, msg: %1 <data> odbijen od strane poslužitelja, poruka: %1 - + Message was rejected by the server, error: %1 Poslužitelj je odbio poruku, greška: %1 - + Both EHLO and HELO failed, msg: %1 I EHLO i HELO nisu uspjeli, poruka: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Čini se da SMTP poslužitelj ne podržava niti jedan od modova provjere autentičnosti koje podržavamo [CRAM-MD5|PLAIN|LOGIN], preskakanje provjere autentičnosti, znajući da vjerojatno neće uspjeti... Načini provjere autentičnosti poslužitelja: %1 - + Email Notification Error: %1 Pogreška obavijesti putem e-pošte: %1 @@ -5600,487 +5924,511 @@ Instalirajte ručno. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Napredno - + Customize UI Theme... Prilagodite temu korisničkog sučelja... - + Transfer List Popis prijenosa - + Confirm when deleting torrents Potvrdi prilikom brisanja torrenta - - Shows a confirmation dialog upon pausing/resuming all the torrents - Prikazuje dijaloški okvir potvrde nakon pauziranja/nastavljanja svih torrenta - - - - Confirm "Pause/Resume all" actions - Potvrdite radnje "Pauziraj/nastavi sve". - - - + Use alternating row colors In table elements, every other row will have a grey background. Koristi alternativne boje redova - + Hide zero and infinity values Sakrij nulte i beskonačne vrijednosti - + Always Uvijek - - Paused torrents only - Samo pauzirani torrenti - - - + Action on double-click Radnja na dvostruki klik - + Downloading torrents: Preuzimanje torrenta: - - - Start / Stop Torrent - Start / Stop Torrent - - - - + + Open destination folder Otvori odredišnu mapu - - + + No action Bez radnje - + Completed torrents: Dovršeni torrenti: - + Auto hide zero status filters Automatsko skrivanje filtera nultog statusa - + Desktop Radna površina - + Start qBittorrent on Windows start up Pokreni qBittorrent pri pokretanju Windowsa - + Show splash screen on start up Prikaži početni zaslon pri pokretanju - + Confirmation on exit when torrents are active Potvrda pri izlasku kada su torrenti aktivni - + Confirmation on auto-exit when downloads finish Potvrda pri automatskom izlasku kada se preuzimanja završe - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Kako biste postavili qBittorrent kao zadani program za .torrent datoteke i/ili Magnet veze<br/>možete koristiti<span style=" font-weight:600;">Zadani programi</span> dijaloški okvir <span style=" font-weight:600;">na upravljačkoj ploči.</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Izgled sadržaja torrenta: - + Original Original - + Create subfolder Stvori podmapu - + Don't create subfolder Nemoj stvarati podmapu - + The torrent will be added to the top of the download queue Torrent će biti dodan na vrh čekanja za preuzimanje - + Add to top of queue The torrent will be added to the top of the download queue Dodaj na vrh reda čekanja - + When duplicate torrent is being added Kada se dodaje dvostruki torrent - + Merge trackers to existing torrent Spojite trackere na postojeći torrent - + Keep unselected files in ".unwanted" folder Držite neodabrane datoteke u mapi ".neželjeno" - + Add... Dodaj... - + Options.. Mogućnosti.. - + Remove Ukloni - + Email notification &upon download completion Obavijest e-poštom &nakon završetka - + + Send test email + Pošalji probnu e-poštu + + + + Run on torrent added: + + + + + Run on torrent finished: + Pokreni kad torrent završi: + + + Peer connection protocol: Peer protokol povezivanja: - + Any Bilo koje - + I2P (experimental) I2P (eksperimentalno) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Ako je omogućen "mješoviti način rada", I2P torrentima je dopušteno da također dobiju vršnjake iz drugih izvora osim trackera, i povezuju se na regularne IP adrese, ne pružajući nikakvu anonimizaciju. Ovo može biti korisno ako korisnik nije zainteresiran za anonimizaciju I2P-a, ali i dalje želi imati mogućnost povezivanja s I2P peerovima.</p></body></html> - - - + Mixed mode Mješoviti način rada - - Some options are incompatible with the chosen proxy type! - Neke opcije nisu kompatibilne s odabranom vrstom proxyja! - - - + If checked, hostname lookups are done via the proxy Ako je označeno, traženje naziva hosta vrši se putem proxyja - + Perform hostname lookup via proxy Izvršite traženje naziva hosta putem proxyja - + Use proxy for BitTorrent purposes Koristite proxy za BitTorrent svrhe - + RSS feeds will use proxy RSS izvori će koristiti proxy - + Use proxy for RSS purposes Koristite proxy za RSS svrhe - + Search engine, software updates or anything else will use proxy Tražilica, ažuriranja softvera ili bilo što drugo koristit će proxy - + Use proxy for general purposes Koristite proxy za općenite svrhe - + IP Fi&ltering IP Fi&ltriranje - + Schedule &the use of alternative rate limits Raspored i korištenje alternativnih ograničenja brzine - + From: From start time Od: - + To: To end time Do: - + Find peers on the DHT network Pronađite peerove na DHT mreži - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption Dopusti enkripciju: Poveži se s peerovima bez obzira na postavku. Zahtijeva enkripciju: Poveži se samo s peerovima s enkripcijom protokola. Onemogući enkripciju: Poveži se samo s peerovima bez enkripcije protokola - + Allow encryption Dopusti enkripciju - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Više informacija</a>) - + Maximum active checking torrents: Najviše aktivnih torrenta: - + &Torrent Queueing Red čekanja &torrenta - + When total seeding time reaches Kada ukupno vrijeme seedanja dosegne - + When inactive seeding time reaches Kada neaktivno vrijeme seedanja dosegne - - A&utomatically add these trackers to new downloads: - A&utomatski dodaj ove trackere za nova preuzimanja: - - - + RSS Reader RSS čitač - + Enable fetching RSS feeds Omogući dohvaćanje RSS izvora - + Feeds refresh interval: Interval osvježavanja feedova: - + Same host request delay: - + Odgoda zahtjeva istog hosta: - + Maximum number of articles per feed: Najveći broj članaka po kanalu: - - - + + + min minutes min - + Seeding Limits Ograničenja dijeljenja - - Pause torrent - Pauziraj torrente - - - + Remove torrent Ukloni torrent - + Remove torrent and its files Ukloni torrent i njegove datoteke - + Enable super seeding for torrent Omogući super dijeljenje za torrent - + When ratio reaches Kada se dosegne omjer - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Zaustavi torrent + + + + A&utomatically append these trackers to new downloads: + A&utomatski dodaj ove alate za praćenje novim preuzimanjima: + + + + Automatically append trackers from URL to new downloads: + Automatski dodaj trackere iz poveznice novim preuzimanjima: + + + + URL: + URL: + + + + Fetched trackers + Dohvaćeni trackeri + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + Duljina povijesti + + + RSS Torrent Auto Downloader RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents Omogući automatsko preuzimanje RSS torrenta - + Edit auto downloading rules... Uredi pravila automatskog preuzimanja... - + RSS Smart Episode Filter RSS pametni filtar epizoda - + Download REPACK/PROPER episodes Preuzmite REPACK/PROPER epizode - + Filters: Filteri: - + Web User Interface (Remote control) Web korisničko sučelje (daljinsko upravljanje) - + IP address: IP addresa: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. IP adresa na koju će se vezati web sučelje. Navedite IPv4 ili IPv6 adresu. Možete navesti "0.0.0.0" za bilo koju IPv4 adresu, "::" za bilo koju IPv6 adresu ili "*" za IPv4 i IPv6. - + Ban client after consecutive failures: Ban klijenta nakon uzastopnih neuspjeha: - + Never Nikad - + ban for: zabrana za: - + Session timeout: Istek sesije: - + Disabled Onemogućeno - - Enable cookie Secure flag (requires HTTPS) - Omogući sigurnu oznaku kolačića (zahtijeva HTTPS) - - - + Server domains: Domene poslužitelja: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6093,442 +6441,483 @@ trebali biste unijeti nazive domena koje koristi WebUI poslužitelj. Koristite ';' za razdvajanje više unosa. Možete koristiti zamjenski znak '*'. - + &Use HTTPS instead of HTTP &Koristite HTTPS umjesto HTTP-a - + Bypass authentication for clients on localhost Zaobilaženje autentifikacije za klijente na lokalnom hostu - + Bypass authentication for clients in whitelisted IP subnets Zaobilaženje autentifikacije za klijente u IP podmrežama na popisu dopuštenih - + IP subnet whitelist... Popis dopuštenih IP podmreža... - + + Use alternative WebUI + Koristite alternativni WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Navedite obrnute proxy IP adrese (ili podmreže, npr. 0.0.0.0/24) kako biste koristili prosljeđenu adresu klijenta (X-Prosljeđeno-Za zaglavlje). Koristite ';' za razdvajanje više unosa. - + Upda&te my dynamic domain name Ažuriraj &moj dinamički naziv domene - + Minimize qBittorrent to notification area Minimiziraj qBittorrent u prostor obavijesti - + + Search + Traži + + + + WebUI + WebUI + + + Interface Sučelje - + Language: Jezik: - + + Style: + Stil: + + + + Color scheme: + Tema: + + + + Stopped torrents only + Samo zaustavljeni torrenti + + + + + Start / stop torrent + Započni / zaustavi torrent + + + + + Open torrent options dialog + Otvori dijaloški okvir s opcijama torrenta + + + Tray icon style: Izgled ikone na sistemskoj traci: - - + + Normal Normalno - + File association Pridruživanje datoteka - + Use qBittorrent for .torrent files Koristi qBittorrent za .torrent datoteke - + Use qBittorrent for magnet links Koristi qBittorrent za magnetne poveznice - + Check for program updates Provjeri ažuriranja programa - + Power Management Upravljanje napajanjem - + + &Log Files + + + + Save path: Putanja spremanja: - + Backup the log file after: Sigurnosno kopiraj datoteku zapisa nakon: - + Delete backup logs older than: Izbriši sigurnosne zapisnike starije od: - + + Show external IP in status bar + Pokaži eksternalni IP u traci statusa + + + When adding a torrent Prilikom dodavanja torrenta - + Bring torrent dialog to the front Postavi dijalog torrenta ispred. - + + The torrent will be added to download list in a stopped state + Torrent će biti dodan na popis preuzimanja u zaustavljenom stanju + + + Also delete .torrent files whose addition was cancelled Također izbrišite .torrent datoteke čije je dodavanje otkazano - + Also when addition is cancelled Također kada je dodavanje poništeno - + Warning! Data loss possible! Upozorenje! Moguć gubitak podataka! - + Saving Management Upravljanje spremanjem - + Default Torrent Management Mode: Zadani način upravljanja torrentom: - + Manual Ručno - + Automatic Automatski - + When Torrent Category changed: Kada se promjeni torrent kategorija: - + Relocate torrent Premjesti torrent - + Switch torrent to Manual Mode Prebaci torrent u ručni način rada - - + + Relocate affected torrents Premjestite pogođene torrente - - + + Switch affected torrents to Manual Mode Prebacite pogođene torrente u ručni način rada - + Use Subcategories Koristite potkategorije - + Default Save Path: Zadana putanja spremanja: - + Copy .torrent files to: Kopiraj .torrent datoteke u: - + Show &qBittorrent in notification area Prikaži &qBittorrent u području obavijesti - - &Log file - &Datoteka zapisa - - - + Display &torrent content and some options Prikaži &torrent sadržaj i neke opcije - + De&lete .torrent files afterwards Nakon &toga izbrišite .torrent datoteke - + Copy .torrent files for finished downloads to: Kopirajte .torrent datoteke za završena preuzimanja u: - + Pre-allocate disk space for all files - Prethodno dodijelite prostor na disku za sve datoteke + Unaprijed dodijeli prostor na disku za sve datoteke - + Use custom UI Theme Koristite prilagođenu temu korisničkog sučelja - + UI Theme file: Datoteka teme korisničkog sučelja: - + Changing Interface settings requires application restart Promjena postavki sučelja zahtijeva ponovno pokretanje aplikacije - + Shows a confirmation dialog upon torrent deletion Prikazuje dijaloški okvir za potvrdu nakon brisanja torrenta - - + + Preview file, otherwise open destination folder Pregledajte datoteku, ili otvorite odredišnu mapu - - - Show torrent options - Prikaži opcije torrenta - - - + Shows a confirmation dialog when exiting with active torrents Prikazuje dijaloški okvir za potvrdu pri izlasku s aktivnim torrentima - + When minimizing, the main window is closed and must be reopened from the systray icon Prilikom minimiziranja, glavni prozor se zatvara i mora se ponovno otvoriti iz ikone na traci - + The systray icon will still be visible when closing the main window Ikona sistemske trake i dalje će biti vidljiva kada zatvorite glavni prozor - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Zatvorite qBittorrent u područje obavijesti - + Monochrome (for dark theme) Jednobojno (za tamnu temu) - + Monochrome (for light theme) Jednobojno (za svjetlu temu) - + Inhibit system sleep when torrents are downloading Onemogući stanje mirovanja sustava kada se torrenti preuzimaju - + Inhibit system sleep when torrents are seeding Onemogući stanje mirovanja sustava kada se torrenti dijele - + Creates an additional log file after the log file reaches the specified file size Stvara dodatnu datoteku dnevnika nakon što datoteka dnevnika dosegne navedenu veličinu datoteke - + days Delete backup logs older than 10 days dana - + months Delete backup logs older than 10 months mjeseci - + years Delete backup logs older than 10 years godine - + Log performance warnings Zapis upozorenja o performansama - - The torrent will be added to download list in a paused state - Torrent će biti dodan na popis preuzimanja u pauziranom stanju - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nemojte automatski pokretati preuzimanje - + Whether the .torrent file should be deleted after adding it Treba li .torrent datoteku izbrisati nakon dodavanja - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Dodijelite punu veličinu datoteke na disku prije početka preuzimanja kako biste smanjili fragmentaciju. Korisno samo za HDD. - + Append .!qB extension to incomplete files Dodajte ekstenziju .!qB nepotpunim datotekama - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Kada se torrent preuzme, ponudite dodavanje torrenta iz bilo koje .torrent datoteke koja se nalazi u njemu - + Enable recursive download dialog Omogući rekurzivni dijaloški okvir preuzimanja - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatski: Različita svojstva torrenta (npr. put spremanja) odlučit će pridružena kategorija Ručno: različita svojstva torrenta (npr. put spremanja) moraju se dodijeliti ručno - + When Default Save/Incomplete Path changed: Kada se promijeni zadana putanja spremanja/nepotpunog: - + When Category Save Path changed: Kada se putanja spremanja kategorije promijenila: - + Use Category paths in Manual Mode Koristite putanje kategorija u ručnom načinu rada - + Resolve relative Save Path against appropriate Category path instead of Default one Razriješi relativnu putanju spremanja s odgovarajućom putanjom kategorije umjesto zadane - + Use icons from system theme Koristite ikone iz teme sustava - + Window state on start up: Stanje prozora pri pokretanju: - + qBittorrent window state on start up Stanje prozora qBittorrent pri pokretanju - + Torrent stop condition: Uvjet zaustavljanja torrenta: - - + + None Nijedno - - + + Metadata received Metapodaci primljeni - - + + Files checked Provjerene datoteke - + Ask for merging trackers when torrent is being added manually Traži spajanje trackera kada se torrent dodaje ručno - + Use another path for incomplete torrents: Koristite drugu putanju za nepotpune torrente: - + Automatically add torrents from: Automatski dodaj torrente iz: - + Excluded file names Izuzeti nazivi datoteka - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6557,770 +6946,811 @@ readme.txt: filtrirajte točan naziv datoteke. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' ali ne i 'readme10.txt'. - + Receiver Primatelj - + To: To receiver Za: - + SMTP server: SMTP poslužitelj: - + Sender Pošiljatelj - + From: From sender Od: - + This server requires a secure connection (SSL) Ovaj poslužitelj zahtijeva sigurnu vezu (SSL) - - + + Authentication Autentifikacija - - - - + + + + Username: Korisničko ime: - - - - + + + + Password: Lozinka: - + Run external program Pokrenite vanjski program - - Run on torrent added - Pokretanje na dodanom torrentu - - - - Run on torrent finished - Pokretanje na završenom torrentu - - - + Show console window Prikaži prozor konzole - + TCP and μTP TCP i μTP - + Listening Port Port za slušanje - + Port used for incoming connections: Port koji se koristi za dolazne veze: - + Set to 0 to let your system pick an unused port Postavite na 0 kako bi vaš sustav odabrao neiskorišteni port - + Random Nasumično - + Use UPnP / NAT-PMP port forwarding from my router Koristi UPnP / NAT-PMP prosljeđivanje portova s ​​mog usmjerivača - + Connections Limits Ograničenja veza - + Maximum number of connections per torrent: Maksimalan broj veza po torrentu: - + Global maximum number of connections: Ukupno najveći broj veza: - + Maximum number of upload slots per torrent: Maksimalan broj utora za učitavanje po torrentu: - + Global maximum number of upload slots: Globalno najveći broj slotova za učitavanje: - + Proxy Server Proxy poslužitelj - + Type: Vrsta: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Inače, proxy poslužitelj koristi se samo za veze s trackerom - + Use proxy for peer connections Koristite proxy za peer veze - + A&uthentication A&utentifikacija - - Info: The password is saved unencrypted - Info: Lozinka je spremljena nekriptirana - - - + Filter path (.dat, .p2p, .p2b): Putanja filtera (.dat, .p2p, .p2b): - + Reload the filter Ponovno učitaj filter - + Manually banned IP addresses... Ručno zabranjene IP adrese... - + Apply to trackers Primjeni na trackere - + Global Rate Limits Globalno ograničenje brzine - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Slanje: - - + + Download: Preuzimanje: - + Alternative Rate Limits Alternativno ograničenje brzine - + Start time Vrijeme početka - + End time Vrijeme završetka - + When: Kada: - + Every day Svaki dan - + Weekdays Radni dani - + Weekends Vikend - + Rate Limits Settings Postavke ograničenja brzine - + Apply rate limit to peers on LAN Primijeni ograničenje brzine na peerove na LAN-u - + Apply rate limit to transport overhead Primijeni ograničenje stope na troškove prijenosa - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Primijeni ograničenje brzine na µTP protokol - + Privacy Privatnost - + Enable DHT (decentralized network) to find more peers Omogućite DHT (decentraliziranu mrežu) za pronalaženje više peerova - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Razmjena peerova s kompatibilnim Bittorrent klijentima (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Omogućite Peer Exchange (PeX) da pronađete više peerova - + Look for peers on your local network Potražite peerove na svojoj lokalnoj mreži - + Enable Local Peer Discovery to find more peers Omogućite Local Peer Discovery za pronalaženje više peerova - + Encryption mode: Način kriptiranja: - + Require encryption Zahtjevaj kriptiranje - + Disable encryption Onemogući kriptiranje - + Enable when using a proxy or a VPN connection Omogućite kada koristite proxy ili VPN vezu - + Enable anonymous mode Omogući anonimni način rada - + Maximum active downloads: Maksimalan broj aktivnih preuzimanja: - + Maximum active uploads: Maksimalan broj aktivnih slanja: - + Maximum active torrents: Maksimalni broj aktivnih torrenta: - + Do not count slow torrents in these limits Ne ubrajajte spore torrente u ova ograničenja - + Upload rate threshold: Prag brzine slanja: - + Download rate threshold: Prag brzine preuzimanja: - - - - + + + + sec seconds sek - + Torrent inactivity timer: Odbrojavanje vremena neaktivnosti torrenta: - + then tada - + Use UPnP / NAT-PMP to forward the port from my router Koristite UPnP / NAT-PMP za prosljeđivanje porta s mog usmjerivača - + Certificate: Certifikat: - + Key: Ključ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informacije o certifikatima</a> - + Change current password Promjena trenutne lozinke - - Use alternative Web UI - Koristite alternativno web sučelje - - - + Files location: Lokacija datoteka: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Sigurnost - + Enable clickjacking protection Omogući zaštitu od clickjackinga - + Enable Cross-Site Request Forgery (CSRF) protection Omogućite Cross-Site Request Forgery (CSRF) zaštitu - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Omogući provjeru valjanosti zaglavlja hosta - + Add custom HTTP headers Dodajte prilagođena HTTP zaglavlja - + Header: value pairs, one per line Zaglavlje: parovi vrijednosti, jedan po retku - + Enable reverse proxy support Omogući podršku za obrnuti proxy - + Trusted proxies list: Popis pouzdanih proxyja: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Servis: - + Register Registar - + Domain name: Naziv domene: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Uključivanjem ovih opcija možete <strong>nepovratno izgubiti </strong>svoje .torrent datoteke! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Ako omogućite drugu opciju (“Također kada je dodavanje otkazano”), .torrent datoteka <strong>će biti izbrisana</strong> čak i ako pritisnete <strong>Odustani</strong> u dijaloškom okviru “Dodaj torrent” - + Select qBittorrent UI Theme file Odaberite datoteku teme korisničkog sučelja za qBittorrent - + Choose Alternative UI files location Odaberite lokaciju alternativnih datoteka korisničkog sučelja - + Supported parameters (case sensitive): Podržani parametri (razlikuje velika i mala slova): - + Minimized Minimizirano - + Hidden Skriveno - + Disabled due to failed to detect system tray presence Onemogućeno jer nije uspjelo otkriti prisutnost programske trake - + No stop condition is set. Nije postavljen uvjet zaustavljanja. - + Torrent will stop after metadata is received. Torrent će se zaustaviti nakon što primi metapodatke. - Torrents that have metadata initially aren't affected. - Torenti koji inicijalno imaju metapodatke nisu pogođeni. - - - + Torrent will stop after files are initially checked. Torrent će se zaustaviti nakon početne provjere datoteka. - + This will also download metadata if it wasn't there initially. Ovo će također preuzeti metapodatke ako nisu bili tu na početku. - + %N: Torrent name %N: Ime torrenta - + %L: Category %L: Kategorija - + %F: Content path (same as root path for multifile torrent) %F: Putanja sadržaja (isto kao korijenska putanja za torrent s više datoteka) - + %R: Root path (first torrent subdirectory path) %R: korijenska putanja (putnja prvog torrent poddirektorija) - + %D: Save path %D: Putanja za spremanje - + %C: Number of files %C: Broj datoteka - + %Z: Torrent size (bytes) %Z: Veličina torrenta (bajtovi) - + %T: Current tracker %T: Trenutni tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Savjet: Enkapsulirajte parametar s navodnicima kako biste izbjegli odsijecanje teksta na razmaku (npr. "%N") - + + Test email + Testna e-pošta. + + + + Attempted to send email. Check your inbox to confirm success + Pokušano slanje e-pošte. Provjerite svoju pristiglu poštu kako biste potvrdili uspjeh + + + (None) (Nijedno) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent će se smatrati sporim ako njegove stope preuzimanja i slanja ostaju ispod ovih vrijednosti za "Odbrojavanje vremena neaktivnosti torrenta" sekunde - + Certificate Certifikat - + Select certificate Odaberi certifikat - + Private key Privatni ključ - + Select private key Odaberi privatni ključ - + WebUI configuration failed. Reason: %1 WebUI konfiguracija nije uspjela. Razlog: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 preporučuje se za najbolju kompatibilnost s tamnim načinom rada sustava Windows + + + + System + System default Qt style + Sustav + + + + Let Qt decide the style for this system + Neka Qt odluči stil za ovaj sustav + + + + Dark + Dark color scheme + Tamna + + + + Light + Light color scheme + Svijetla + + + + System + System color scheme + Sustav + + + Select folder to monitor Odaberite mapu za praćenje - + Adding entry failed Dodavanje unosa nije uspjelo - + The WebUI username must be at least 3 characters long. WebUI korisničko ime mora imati najmanje 3 znaka. - + The WebUI password must be at least 6 characters long. WebUI lozinka mora imati najmanje 6 znakova. - + Location Error Pogreška lokacije - - + + Choose export directory Odaberite direktorij za izvoz - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Kada su ove opcije omogućene, qBittorrent će <strong>izbrisati</strong> .torrent datoteke nakon što su uspješno (prva opcija) ili ne (druga opcija) dodane u njegov red čekanja za preuzimanje. Ovo će se primijeniti <strong>ne samo</strong> na datoteke otvorene putem radnje izbornika "Dodaj torrent", već i na one otvorene putem <strong>povezivanja vrste datoteke</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Datoteka teme qBittorrent UI (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Oznake (odvojene zarezom) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (ili '-' ako nije dostupno) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (ili '-' ako nije dostupno) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID torrenta (ili sha-1 info hash za v1 torrent ili skraćeni sha-256 info hash za v2/hybrid torrent) - - - + + + Choose a save directory Izaberite direktorij za spremanje - + Torrents that have metadata initially will be added as stopped. - + Torrenti koji inicijalno imaju metapodatke bit će dodani kao zaustavljeni. - + Choose an IP filter file Odaberi datoteku IP filtera - + All supported filters Svi podržani filteri - + The alternative WebUI files location cannot be blank. Alternativna lokacija WebUI datoteka ne može biti prazna. - + Parsing error Greška razrješavanja - + Failed to parse the provided IP filter Razrješavanje danog IP filtera nije uspjelo - + Successfully refreshed Uspješno osvježeno - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspješno analiziran osigurani IP filter: %1 pravila su primijenjena. - + Preferences Postavke - + Time Error Vremenska pogreška - + The start time and the end time can't be the same. Vrijeme početka i vrijeme završetka ne može biti isto. - - + + Length Error Pogreška duljine @@ -7328,241 +7758,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' ali ne PeerInfo - + Unknown Nepoznato - + 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) - + Not interested (local) and unchoked (peer) Nezainteresiran (lokalni) i nezagušen (peer) - + Not interested (peer) and unchoked (local) Nezainteresiran (peer) i nezagušen (lokalno) - + Optimistic unchoke Optimističan nezagušen - + Peer snubbed Peer je prezreo - + Incoming connection Dolazna veza - + Peer from DHT Peer iz DHT-a - + Peer from PEX Peer iz PEX-a - + Peer from LSD Peer iz LSD-a - + Encrypted traffic Šifrirani promet - + Encrypted handshake kriptirano usklađivanje + + + Peer is using NAT hole punching + Peer koristi NAT bušenje rupa + PeerListWidget - + Country/Region Država/regija - + IP/Address IP/Adresa - + Port Port - + Flags Zastave - + Connection Spajanje - + Client i.e.: Client application Klijent - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 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 - + Files i.e. files that are being downloaded right now Datoteke - + Column visibility Vidljivost stupaca - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promjena veličine svih neskrivenih stupaca na veličinu njihovog sadržaja - + Add peers... Dodaj peerove... - - + + Adding peers Dodavanje peerova - + Some peers cannot be added. Check the Log for details. Neki peerovi se ne mogu dodati. Za detalje provjerite Zapisnik. - + Peers are added to this torrent. Ovom torrentu dodaju se peerovi. - - + + Ban peer permanently Trajno isključi peer - + Cannot add peers to a private torrent Nije moguće dodati peerove privatnom torrentu - + Cannot add peers when the torrent is checking Nije moguće dodati peerove dok se torrent provjerava - + Cannot add peers when the torrent is queued Nije moguće dodati peerove kada je torrent na čekanju - + No peer was selected Nijedan peer nije odabran - + Are you sure you want to permanently ban the selected peers? Jeste li sigurni da želite trajno zabraniti odabrane peerove? - + Peer "%1" is manually banned Peer "%1" je ručno zabranjen - + N/A N/A - + Copy IP:port Kopiraj IP:port @@ -7580,7 +8015,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' ali ne Popis peerova za dodavanje (jedan IP po retku): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7621,27 +8056,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' ali ne PiecesBar - + Files in this piece: Datoteke u ovom dijelu: - + File in this piece: Datoteka u ovom dijelu: - + File in these pieces: Datoteka u ovom dijelovima: - + Wait until metadata become available to see detailed information Pričekajte dok metapodaci ne postanu dostupni da biste vidjeli detaljne informacije - + Hold Shift key for detailed information Držite tipku Shift za detaljne informacije @@ -7654,59 +8089,59 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' ali ne Dodaci za pretraživanja - + Installed search plugins: Instalirani dodaci za pretraživanja: - + Name Naziv - + Version Verzija - + Url Url - - + + Enabled Omogućeno - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Upozorenje: Budite u skladu sa zakonima o autorskim pravima vaše zemlje kada preuzimate torrente s bilo koje od ovih tražilica. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Nove dodatke za tražilice možete preuzeti ovdje:<a href="https://plugins.qbittorrent.org"> https://plugins.qbittorrent.org</a> - + Install a new one Instalirajte novi - + Check for updates Provjerite ažuriranja - + Close Zatvori - + Uninstall Deinstalirajte @@ -7826,98 +8261,65 @@ Ti dodaci su onemogućeni. Izvor dodatka - + Search plugin source: Pretražite izvor dodatka: - + Local file Lokalna datoteka - + Web link Web link - - PowerManagement - - - qBittorrent is active - qBittorrent je aktivan - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Upravljanje napajanjem pronašlo je odgovarajuće D-Bus sučelje. Sučelje: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Pogreška upravljanja napajanjem. Nije pronađeno odgovarajuće D-Bus sučelje. - - - - - - Power management error. Action: %1. Error: %2 - Pogreška upravljanja napajanjem. Radnja: %1. Pogreška: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Neočekivana pogreška upravljanja napajanjem. Stanje: %1. Pogreška: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Sljedeće datoteke iz torrenta "%1" podržavaju pretpregled, odaberite jednu od njih: - + Preview Pregled - + Name Naziv - + Size Veličina - + Progress Napredak - + Preview impossible Pregled nije moguć - + Sorry, we can't preview this file: "%1". Nažalost, ne možemo pregledati ovu datoteku: "%1". - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promijenite veličinu svih neskrivenih stupaca na veličinu njihovog sadržaja @@ -7930,27 +8332,27 @@ Ti dodaci su onemogućeni. Private::FileLineEdit - + Path does not exist Putanja ne postoji. - + Path does not point to a directory Putanja ne pokazuje na direktorij - + Path does not point to a file Put ne pokazuje na datoteku - + Don't have read permission to path Nemate dopuštenje za čitanje putanje - + Don't have write permission to path Nemate dopuštenje za pisanje na putanju @@ -7991,12 +8393,12 @@ Ti dodaci su onemogućeni. PropertiesWidget - + Downloaded: Preuzeto: - + Availability: Dostupnost: @@ -8011,53 +8413,53 @@ Ti dodaci su onemogućeni. Prijenos - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivno vrijeme: - + ETA: ETA: - + Uploaded: Poslano: - + Seeds: Seederi: - + Download Speed: Brzina preuzimanja: - + Upload Speed: Brzina slanja: - + Peers: Peerovi: - + Download Limit: Ograničenje preuzimanja: - + Upload Limit: Ograničenje slanja: - + Wasted: Izgubljeno: @@ -8067,193 +8469,220 @@ Ti dodaci su onemogućeni. Spajanja: - + Information Informacija - + Info Hash v1: Info hash v1: - + Info Hash v2: Info hash v2: - + Comment: Komentar: - + Select All Odaberi sve - + Select None Ne odaberi ništa - + Share Ratio: Omjer dijeljenja: - + Reannounce In: Ponovno najavi za: - + Last Seen Complete: Zadnje viđen završeni: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Omjer / vrijeme aktivnosti (u mjesecima), pokazuje koliko je torrent popularan + + + + Popularity: + Popularnost: + + + Total Size: Ukupna veličina: - + Pieces: Dijelovi: - + Created By: Stvorio: - + Added On: Dodan: - + Completed On: Završen: - + Created On: Napravljan: - + + Private: + Privatno: + + + Save Path: Putanja spremanja: - + Never 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) - - + + + N/A N/A - + + Yes + Da + + + + No + Ne + + + %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.) - - New Web seed - Novi web seed + + Add web seed + Add HTTP source + - - Remove Web seed - Ukloni web seed + + Add web seed: + - - Copy Web seed URL - Kopiraj URL web seeda + + + This web seed is already in the list. + - - Edit Web seed URL - Uredi URL web seeda - - - + Filter files... Filtriraj datoteke... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Grafikoni brzine su onemogućeni - + You can enable it in Advanced Options Možete omogućiti u naprednim opcijama - - 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. - - - + Web seed editing Uređivanje web seeda - + Web seed URL: URL web seeda: @@ -8261,33 +8690,33 @@ Ti dodaci su onemogućeni. RSS::AutoDownloader - - + + Invalid data format. Nevažeći format podataka. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nije moguće spremiti podatke RSS AutoDownloadera u %1. Pogreška: %2 - + Invalid data format Nevažeći format podataka - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS članak '%1' prihvaća pravilo '%2'. Pokušavam dodati torrent... - + Failed to read RSS AutoDownloader rules. %1 Neuspješno čitanje RSS AutoDownloader pravila. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nije moguće učitati pravila RSS AutoDownloadera. Razlog: %1 @@ -8295,22 +8724,22 @@ Ti dodaci su onemogućeni. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Nije uspjelo preuzimanje RSS kanala na '%1'. Razlog: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS kanal je ažuriran na '%1'. Dodano %2 nova članka. - + Failed to parse RSS feed at '%1'. Reason: %2 Nije uspjelo analiziranje RSS kanala na '%1'. Razlog: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS kanal na '%1' je uspješno preuzet. Započeto analiziranje. @@ -8346,12 +8775,12 @@ Ti dodaci su onemogućeni. RSS::Private::Parser - + Invalid RSS feed. Nevažeći RSS kanal. - + %1 (line: %2, column: %3, offset: %4). %1 (redak: %2, stupac: %3, pomak: %4). @@ -8359,103 +8788,144 @@ Ti dodaci su onemogućeni. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nije moguće spremiti konfiguraciju RSS sesije. Datoteka: "%1". Greška: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Nije moguće spremiti podatke RSS sesije. Datoteka: "%1". Greška: "%2" - - + + RSS feed with given URL already exists: %1. RSS kanal s danim URL-om već postoji: %1. - + Feed doesn't exist: %1. Feed ne postoji: %1. - + Cannot move root folder. Nije moguće premjestiti korijensku mapu. - - + + Item doesn't exist: %1. Stavka ne postoji: %1. - - Couldn't move folder into itself. - Nije moguće premjestiti mapu u samu mapu. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Nije moguće izbrisati korijensku mapu. - + Failed to read RSS session data. %1 Neuspješno čitanje RSS sesije podataka. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Nije uspjelo analiziranje podataka RSS sesije. Datoteka: "%1". Greška: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Nije uspjelo učitavanje podataka RSS sesije. Datoteka: "%1". Pogreška: "Nevažeći format podataka." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nije moguće učitati RSS feed. Feed: "%1". Razlog: potreban je URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Nije moguće učitati RSS feed. Feed: "%1". Razlog: UID je nevažeći. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Duplicirani RSS feed pronađen. UID: "%1". Pogreška: Čini se da je konfiguracija oštećena. - + Couldn't load RSS item. Item: "%1". Invalid data format. Nije moguće učitati RSS stavku. Stavka: "%1". Nevažeći format podataka. - + Corrupted RSS list, not loading it. Oštećen RSS popis, ne učitava se. - + Incorrect RSS Item path: %1. Neispravna putanja RSS stavke: %1. - + RSS item with given path already exists: %1. RSS stavka s danom putanjom već postoji: %1. - + Parent folder doesn't exist: %1. Nadređena mapa ne postoji: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed ne postoji: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Interval osvježavanja: + + + + sec + sek + + + + Default + Zadano + + RSSWidget @@ -8475,8 +8945,8 @@ Ti dodaci su onemogućeni. - - + + Mark items read Označi stavke kao pročitane @@ -8501,132 +8971,115 @@ Ti dodaci su onemogućeni. Torrenti: (dupli klik za preuzimanje) - - + + Delete Ukloni - + Rename... Preimenuj... - + Rename Preimenovanje - - + + Update Ažuriraj - + New subscription... Nova pretplata... - - + + Update all feeds Ažuriraj sve kanale - + Download torrent Preuzimanje torrenta - + Open news URL Otvori URL vijesti - + Copy feed URL Kopiraj URL kanala - + New folder... Nova mapa... - - Edit feed URL... - Uredi URL feeda... + + Feed options... + - - Edit feed URL - Uredi URL feeda - - - + Please choose a folder name Izaberite naziv mape - + Folder name: Naziv mape: - + New folder Nova mapa - - - Please type a RSS feed URL - Molimo upišite URL RSS kanala - - - - - Feed URL: - URL kanala: - - - + Deletion confirmation Potvrda brisanja - + Are you sure you want to delete the selected RSS feeds? Jeste li sigurni da želite izbrisati odabrane RSS kanale? - + Please choose a new name for this RSS feed Odaberite novi naziv za ovaj RSS kanal - + New feed name: Novi naziv kanala: - + Rename failed Preimenovanje nije uspjelo - + Date: Datum: - + Feed: Feed: - + Author: Autor: @@ -8634,38 +9087,38 @@ Ti dodaci su onemogućeni. SearchController - + Python must be installed to use the Search Engine. Python mora biti instaliran za korištenje tražilice. - + Unable to create more than %1 concurrent searches. Nije moguće stvoriti više od %1 istodobnih pretraga. - - + + Offset is out of range Pomak je izvan raspona - + All plugins are already up to date. Svi dodaci su već ažurirani. - + Updating %1 plugins Ažuriranje %1 dodataka - + Updating plugin %1 Ažuriranje dodatka %1 - + Failed to check for plugin updates: %1 Provjera ažuriranja dodataka nije uspjela: %1 @@ -8740,132 +9193,142 @@ Ti dodaci su onemogućeni. Veličina: - + 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 - Pretraživač - - - + Filter search results... Filtriraj rezultate pretraživanja... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultati (prikazano <i>%1</i> od <i>%2</i>): - + Torrent names only Samo nazivi torrenta - + Everywhere Svugdje - + Use regular expressions Koristite regularne izraze - + Open download window Otvori prozor za preuzimanje - + Download Preuzimanje - + Open description page Otvaranje stranice opisa - + Copy Kopiraj - + Name Ime - + Download link Link preuzimanja - + Description page URL URL stranice opisa - + Searching... Pretraživanje... - + Search has finished Pretraga je završila - + Search aborted Pretraga prekinuta - + An error occurred during search... Greška prilikom pretrage... - + Search returned no results Potraga vraćena bez rezultata - + + Engine + Pogon + + + + Engine URL + URL pogona + + + + Published On + Objavljeno dana + + + Column visibility Vidljivost stupca - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promjena veličine svih neskrivenih stupaca na veličinu njihovog sadržaja @@ -8873,104 +9336,104 @@ Ti dodaci su onemogućeni. SearchPluginManager - + Unknown search engine plugin file format. Nepoznat format datoteke dodatka za pretraživanje - + Plugin already at version %1, which is greater than %2 Dodatak je već u verziji %1, koja je veća od %2 - + A more recent version of this plugin is already installed. Novija verzija ovog dodatka je već instalirana. - + Plugin %1 is not supported. Dodatak %1 nije podržan. - - + + Plugin is not supported. Dodatak nije podržan. - + Plugin %1 has been successfully updated. Dodatak %1 je uspješno ažuriran. - + All categories Sve kategorije - + Movies Filmovi - + TV shows TV serije - + Music Glazba - + Games Igre - + Anime Animirani - + Software Softver - + Pictures Slike - + Books Knjige - + 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 - + Plugin "%1" is outdated, updating to version %2 Dodatak "%1" je zastario, ažurira se na verziju %2 - + Incorrect update info received for %1 out of %2 plugins. Primljene su netočne informacije o ažuriranju za %1 od %2 dodataka. - + Search plugin '%1' contains invalid version string ('%2') Dodatak za pretraživanje '%1' sadrži nevažeći niz verzije ('%2') @@ -8980,114 +9443,145 @@ Ti dodaci su onemogućeni. - - - - Search Traži - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nema instaliranih dodataka za pretraživanje. Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da biste instalirali neke. - + Search plugins... Dodaci za pretraživanje... - + A phrase to search for. Izraz za pretraživanje. - + Spaces in a search term may be protected by double quotes. Razmaci u izrazu pretraživanja mogu biti zaštićeni sa duplim navodnicima. - + Example: Search phrase example Primjer: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: traži <b>foo bar</b> - + All plugins Svi dodaci - + Only enabled Samo omogućeno - + + + Invalid data format. + Nevažeći format podataka. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: traži <b>foo</b> i <b>bar</b> - + + Refresh + Osvježi + + + Close tab Zatvori karticu - + Close all tabs Zatvori sve kartice - + Select... Odaberi... - - - + + Search Engine 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 obrazac za pretraživanje - + Please type a search pattern first Prvo upišite obrazac za pretraživanje - + + Stop Zaustavi + + + SearchWidget::DataStorage - - Search has finished - Pretraga je završila + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Pretraga nije uspjela + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9200,34 +9694,34 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi - + Upload: Slanje: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Preuzimanje: - + Alternative speed limits Alternativni limiti brzine @@ -9419,32 +9913,32 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi Prosječno vrijeme u redu čekanja: - + Connected peers: Povezanih peerova: - + All-time share ratio: Sveukupni omjer udjela: - + All-time download: Sveukupno preuzimanje: - + Session waste: Gubitak sesije: - + All-time upload: Sveukupno slanje: - + Total buffer size: Ukupna veličina međumemorije: @@ -9459,12 +9953,12 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi Poslova I/O u redu: - + Write cache overload: Preopterećenje pisanja predmemorije: - + Read cache overload: Preopterećenje čitanja predmemorije: @@ -9483,51 +9977,77 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi StatusBar - + Connection status: Status veze: - - + + No direct connections. This may indicate network configuration problems. Nema izravnih spajanja. Ovo može značiti probleme u postavkama mreže. - - + + Free space: N/A + + + + + + External IP: N/A + Vanjski IP: N/A + + + + DHT: %1 nodes DHT: %1 čvorova - + qBittorrent needs to be restarted! qBittorrent treba ponovno pokrenuti! - - - + + + Connection Status: Status spajanja: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Odspojeno. Ovo najčešće znači da qBittorrent nije uspio u očekivanju veze na odabranom portu za dolazna spajanja. - + Online Spojeno - + + Free space: + + + + + External IPs: %1, %2 + Vanjski IP-jevi: %1, %2 + + + + External IP: %1%2 + Vanjski IP: %1%2 + + + Click to switch to alternative speed limits Kliknite za prelazak na alternativna ograničenja brzine - + Click to switch to regular speed limits Kliknite za prelazak na uobičajena ograničenja brzine @@ -9557,13 +10077,13 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi - Resumed (0) - Nastavljeno (0) + Running (0) + Pokrenuto (0) - Paused (0) - Pauzirano (0) + Stopped (0) + Zaustavljeno (0) @@ -9625,36 +10145,36 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi Completed (%1) Završeno (%1) + + + Running (%1) + Pokrenuto (%1) + - Paused (%1) - Pauzirano (%1) + Stopped (%1) + Zaustavljeno (%1) + + + + Start torrents + Pokreni torrente + + + + Stop torrents + Zaustavi torrente Moving (%1) Premještanje (%1) - - - Resume torrents - Nastavi torrente - - - - Pause torrents - Pauziraj torrente - Remove torrents Ukloni torrente - - - Resumed (%1) - Nastavljeno (%1) - Active (%1) @@ -9726,31 +10246,31 @@ Pritisnite gumb "Traži dodatke..." u donjem desnom kutu prozora da bi Remove unused tags Ukloni nekorištene oznake - - - Resume torrents - Nastavi torrente - - - - Pause torrents - Pauziraj torrente - Remove torrents Ukloni torrente - - New Tag - Nova oznaka + + Start torrents + Pokreni torrente + + + + Stop torrents + Zaustavi torrente Tag: Oznaka: + + + Add tag + Dodaj oznaku + Invalid tag name @@ -9897,32 +10417,32 @@ Odaberite drugo ime i pokušajte ponovno. TorrentContentModel - + Name Naziv - + Progress Napredak - + Download Priority Prioritet preuzimanja - + Remaining Preostaje - + Availability Dostupnost - + Total Size Ukupna veličina @@ -9967,98 +10487,98 @@ Odaberite drugo ime i pokušajte ponovno. TorrentContentWidget - + Rename error Pogreška preimenovanja - + Renaming Preimenovanje - + New name: Novi naziv: - + Column visibility Vidljivost stupca - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promijenite veličinu svih neskrivenih stupaca na veličinu njihovog sadržaja - + Open Otvori - + Open containing folder Otvori mapu koja sadrži - + Rename... Preimenuj... - + Priority Prioritet - - + + Do not download Ne preuzimaj - + Normal Normalno - + High Visoko - + Maximum Maksimalno - + By shown file order Po prikazanom redoslijedu datoteka - + Normal priority Normalan prioritet - + High priority Visok prioritet - + Maximum priority Najviši prioritet - + Priority by shown file order Prioritet prema prikazanom redoslijedu datoteka @@ -10066,19 +10586,19 @@ Odaberite drugo ime i pokušajte ponovno. TorrentCreatorController - + Too many active tasks - + Previše aktivnih zadataka - + Torrent creation is still unfinished. - + Stvaranje torrenta još nije dovršeno. - + Torrent creation failed. - + Stvaranje torrenta nije uspjelo @@ -10105,13 +10625,13 @@ Odaberite drugo ime i pokušajte ponovno. - + Select file Odaberi datoteku - + Select folder Odaberi mapu @@ -10186,87 +10706,83 @@ Odaberite drugo ime i pokušajte ponovno. Polja - + You can separate tracker tiers / groups with an empty line. Možete razdvojiti razine/grupe tragača praznom linijom. - + Web seed URLs: URL web seeda: - + Tracker URLs: URL-ovi trackera: - + Comments: Komentari: - + Source: Izvor: - + Progress: Napredak: - + Create Torrent Stvori torrent - - + + Torrent creation failed Stvaranje torrenta nije uspjelo - + Reason: Path to file/folder is not readable. Razlog: Putanja do datoteke/mape nije čitljiva. - + Select where to save the new torrent Odaberite gdje želite spremiti novi torrent - + Torrent Files (*.torrent) Torrent datoteke (*.torrent) - Reason: %1 - Razlog: %1 - - - + Add torrent to transfer list failed. Dodavanje torrenta na popis prijenosa nije uspjelo. - + Reason: "%1" Razlog: "%1" - + Add torrent failed Dodavanje torrenta nije uspjelo - + Torrent creator Kreator torrenta - + Torrent created: Torrent stvoren: @@ -10274,32 +10790,32 @@ Odaberite drugo ime i pokušajte ponovno. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Nije uspjelo učitavanje konfiguracije nadziranih mapa. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Neuspješno analiziranje konfiguracije nadziranih mapa iz %1. Greška: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Nije uspjelo učitavanje konfiguracije nadziranih mapa iz %1. Pogreška: "Nevažeći format podataka." - + Couldn't store Watched Folders configuration to %1. Error: %2 Nije moguće pohraniti konfiguraciju nadziranih mapa u %1. Pogreška: %2 - + Watched folder Path cannot be empty. Putanja promatrane mape ne može biti prazna. - + Watched folder Path cannot be relative. Putanja promatrane mape ne može biti relativna. @@ -10307,44 +10823,31 @@ Odaberite drugo ime i pokušajte ponovno. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Nevažeći URI magneta. URI: %1. Razlog: %2 - + Magnet file too big. File: %1 Magnet datoteka je prevelika. Datoteka: %1 - + Failed to open magnet file: %1 Neuspješno otvaranje magnet datoteke: %1 - + Rejecting failed torrent file: %1 Odbijanje neuspjele torrent datoteke: %1 - + Watching folder: "%1" Promatrana mapa: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Neuspješna dodjela memorije prilikom čitanja datoteke. Datoteka: "%1". Greška: "%2" - - - - Invalid metadata - Nevažeći metapodaci - - TorrentOptionsDialog @@ -10373,175 +10876,163 @@ Odaberite drugo ime i pokušajte ponovno. Koristite drugu putanju za nepotpuni torrent - + Category: Kategorija: - - Torrent speed limits - Ograničenja brzine torrenta + + Torrent Share Limits + Ograničenja dijeljenja torrenta - + Download: Preuzimanje: - - + + - - + + Torrent Speed Limits + Ograničenja brzine torrenta + + + + KiB/s KiB/s - + These will not exceed the global limits To neće premašiti globalna ograničenja - + Upload: Slanje: - - Torrent share limits - Ograničenja dijeljenja torrenta - - - - Use global share limit - Koristite globalno ograničenje dijeljenja - - - - Set no share limit - Postavi ograničenje nedijeljenja - - - - Set share limit to - Postavi ograničenje dijeljenja na - - - - ratio - omjer - - - - total minutes - ukupno minuta - - - - inactive minutes - neaktivnih minuta - - - + Disable DHT for this torrent Onemogući DHT za ovaj torrent - + Download in sequential order Preuzimanje redoslijedom - + Disable PeX for this torrent Onemogući PeX za ovaj torrent - + Download first and last pieces first Prvo preuzmite prve i zadnje komade - + Disable LSD for this torrent Onemogući LSD za ovaj torrent - + Currently used categories Trenutno korištene kategorije - - + + Choose save path Odaberi putanju spremanja - + Not applicable to private torrents Nije primjenjivo na privatne torrente - - - No share limit method selected - Nije odabrana metoda ograničenja udjela - - - - Please select a limit method first - Najprije odaberite metodu ograničenja - TorrentShareLimitsWidget - - - + + + + Default - Zadano + Zadano + + + + + + Unlimited + Neograničeno - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Postavljeno + + + + Seeding time: + Vrijeme seedanja: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Neaktivno vrijeme seedanja: - + + Action when the limit is reached: + Postupak kada se dosegne ograničenje: + + + + Stop torrent + Zaustavi torrent + + + + Remove torrent + Ukloni torrent + + + + Remove torrent and its content + Ukloni torrent i njegov sadržaj + + + + Enable super seeding for torrent + Omogući super dijeljenje za torrent + + + Ratio: - + Omjer: @@ -10552,32 +11043,32 @@ Odaberite drugo ime i pokušajte ponovno. Torrent oznake - - New Tag - Nova oznaka + + Add tag + Dodaj oznaku - + Tag: Oznaka: - + Invalid tag name Nevažeći naziv oznake - + Tag name '%1' is invalid. Naziv oznake '%1' nije valjan. - + Tag exists Oznaka postoji - + Tag name already exists. Naziv oznake već postoji. @@ -10585,115 +11076,130 @@ Odaberite drugo ime i pokušajte ponovno. TorrentsController - + Error: '%1' is not a valid torrent file. Pogreška: '%1' nije valjana torrent datoteka. - + Priority must be an integer Prioritet mora biti cijeli broj - + Priority is not valid Prioritet nije valjan - + Torrent's metadata has not yet downloaded Metapodaci Torrenta još nisu preuzeti - + File IDs must be integers ID-ovi datoteka moraju biti cijeli brojevi - + File ID is not valid ID datoteke nije valjan - - - - + + + + Torrent queueing must be enabled Torrent čekanje mora biti omogućeno - - + + Save path cannot be empty Putanja za spremanje ne može biti prazna - - + + Cannot create target directory Nije moguće stvoriti ciljni direktorij - - + + Category cannot be empty Kategorija ne može biti prazna - + Unable to create category Nije moguće stvoriti kategoriju - + Unable to edit category Nije moguće urediti kategoriju - + Unable to export torrent file. Error: %1 Nije moguće izvesti torrent datoteku. Pogreška: %1 - + Cannot make save path Nije moguće napraviti putanju spremanja - + + "%1" is not a valid URL + "%1" nije važeći indeks URL. + + + + URL scheme must be one of [%1] + URL shema mora biti jedna od [%1] + + + 'sort' parameter is invalid 'sort' parametar je nevažeći - + + "%1" is not an existing URL + "%1" nije postojeći URL + + + "%1" is not a valid file index. "%1" nije važeći indeks datoteke. - + Index %1 is out of bounds. Indeks %1 je izvan granica. - - + + Cannot write to directory Ne može se pisati u direktorij - + WebUI Set location: moving "%1", from "%2" to "%3" Postavljanje lokacije Web sučelja: premještanje "%1", iz "%2" u "%3" - + Incorrect torrent name Netočan naziv torrenta - - + + Incorrect category name Netočan naziv kategorije @@ -10724,196 +11230,191 @@ Odaberite drugo ime i pokušajte ponovno. TrackerListModel - + Working Radi - + Disabled Onemogućeno - + Disabled for this torrent Onemogućeno za ovaj torrent - + This torrent is private Ovaj torrent je privatan - + N/A N/A - + Updating... Ažuriranje... - + Not working Ne radi - + Tracker error - Pogreška tragača + Pogreška trackera - + Unreachable Nedostupno - + Not contacted yet Još nije kontaktirano - - Invalid status! - Nevažeći status! - - - - URL/Announce endpoint - URL/Najava krajnje točke + + Invalid state! + Nevažeće stanje! + URL/Announce Endpoint + URL/Najava krajnje točke + + + + BT Protocol + BT Protokol + + + + Next Announce + Sljedeća najava + + + + Min Announce + Min. najava + + + Tier Razina - - Protocol - Protokol - - - + Status Status - + Peers Peerovi - + Seeds Seedovi - + Leeches Leechevi - + Times Downloaded Broj preuzimanja - + Message Poruka - - - Next announce - Sljedeća najava - - - - Min announce - Najmanja najava - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Ovaj torrent je privatan - + Tracker editing Uređivanje trackera - + Tracker URL: URL trackera: - - + + Tracker editing failed Uređivanje trackera nije uspjelo - + The tracker URL entered is invalid. Uneseni URL trackera nije valjan. - + The tracker URL already exists. URL trackera već postoji. - + Edit tracker URL... Uredi URL trackera... - + Remove tracker Ukloni trackera - + Copy tracker URL Kopiraj URL trackera - + Force reannounce to selected trackers Prisilno ponovno najavi odabranim trackerima - + Force reannounce to all trackers Prisilno ponovno najavi svim trackerima - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promjena veličine svih neskrivenih stupaca na veličinu njihovog sadržaja - + Add trackers... Dodaj trackere... - + Column visibility Vidljivost stupca @@ -10931,37 +11432,37 @@ Odaberite drugo ime i pokušajte ponovno. Popis trackera za dodati (jedan po liniji): - + µTorrent compatible list URL: Popis URL-ova kompatibilan s µTorrentom: - + Download trackers list Preuzmite popis trackera - + Add Dodaj - + Trackers list URL error Pogreška URL-a popisa trackera - + The trackers list URL cannot be empty URL popisa trackera ne može biti prazan - + Download trackers list error Pogreška preuzimanja popisa trackera - + Error occurred when downloading the trackers list. Reason: "%1" Došlo je do pogreške prilikom preuzimanja popisa trackera. Razlog: "%1" @@ -10969,62 +11470,62 @@ Odaberite drugo ime i pokušajte ponovno. TrackersFilterWidget - + Warning (%1) Upozorenje (%1) - + Trackerless (%1) Bez trackera (%1) - + Tracker error (%1) - Pogreška tragača (%1) + Pogreška trackera (%1) - + Other error (%1) Ostala pogreška (%1) - + Remove tracker Ukloni trackera - - Resume torrents - Nastavi torrente + + Start torrents + Pokreni torrente - - Pause torrents - Pauziraj torrente + + Stop torrents + Zaustavi torrente - + Remove torrents Ukloni torrente - + Removal confirmation Potvrda o uklanjanju - + Are you sure you want to remove tracker "%1" from all torrents? Jeste li sigurni da želite ukloniti tracker "%1" iz svih torrenta? - + Don't ask me again. Ne pitaj me više. - + All (%1) this is for the tracker filter Sve (%1) @@ -11033,7 +11534,7 @@ Odaberite drugo ime i pokušajte ponovno. TransferController - + 'mode': invalid argument 'način': nevažeći argument @@ -11125,11 +11626,6 @@ Odaberite drugo ime i pokušajte ponovno. 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 nastavka - - - Paused - Pauzirano - Completed @@ -11144,7 +11640,7 @@ Odaberite drugo ime i pokušajte ponovno. Missing Files - Nedostajuće datoteke + Nedostaju datoteke @@ -11153,220 +11649,252 @@ Odaberite drugo ime i pokušajte ponovno. S greškom - + Name i.e: torrent name Naziv - + Size i.e: torrent size Veličina - + Progress % Done Napredak - + + Stopped + Zaustavljeno + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seedovi - + Peers i.e. partial sources (often untranslated) Peerovi - + Down Speed i.e: Download speed Brzina preuzimanja - + Up Speed i.e: Upload speed Brzina slanja - + Ratio Share ratio Omjer - + + Popularity + Popularnost + + + ETA i.e: Estimated Time of Arrival / Time left Preostalo vrijeme - + Category Kategorija - + Tags Oznake - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Dodano - + Completed On Torrent was completed on 01/01/2010 08:00 Dovršeno - + Tracker Tracker - + Down Limit i.e: Download limit Ograničenje preuzimanja - + Up Limit i.e: Upload limit Ograničenje slanja - + Downloaded Amount of data downloaded (e.g. in MB) Preuzeto - + Uploaded Amount of data uploaded (e.g. in MB) Poslano - + 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 - + Remaining Amount of data left to download (e.g. in MB) Preostalo - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Vrijeme aktivnosti - + + Yes + Da + + + + No + Ne + + + Save Path Torrent save path Putanja za spremanje - + Incomplete Save Path Torrent incomplete save path Nepotpuna putanja spremanja - + Completed Amount of data completed (e.g. in MB) Završeno - + 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 - + Last Activity Time passed since a chunk was downloaded/uploaded Posljednja aktivnost - + Total Size i.e. Size including unwanted data Ukupna veličina - + Availability The number of distributed copies of the torrent Dostupnost - + Info Hash v1 i.e: torrent info hash v1 Info hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info hash v2 - + Reannounce In Indicates the time until next trackers reannounce Ponovno najavi za - - + + Private + Flags private torrents + Privatno + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Omjer / vrijeme aktivnosti (u mjesecima), pokazuje koliko je torrent popularan + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago prije %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedano za %2) @@ -11375,339 +11903,319 @@ Odaberite drugo ime i pokušajte ponovno. TransferListWidget - + Column visibility Vidljivost stupca - + Recheck confirmation Ponovno provjeri potvrđivanje - + Are you sure you want to recheck the selected torrent(s)? Jeste li sigurni da želite ponovno provjeriti odabrani/e torrent(e)? - + Rename Preimenovanje - + New name: Novi naziv: - + Choose save path Izaberi putanju spremanja - - Confirm pause - Potvrdite pauzu - - - - Would you like to pause all torrents? - Želite li pauzirati sve torrente? - - - - Confirm resume - Potvrdite nastavak - - - - Would you like to resume all torrents? - Želite li nastaviti sa svim torrentima? - - - + Unable to preview Pregled nije moguć - + The selected torrent "%1" does not contain previewable files Odabrani torrent "%1" ne sadrži datoteke koje se mogu pregledati - + Resize columns Promjena veličine stupaca - + Resize all non-hidden columns to the size of their contents Promjena veličine svih neskrivenih stupaca na veličinu njihovog sadržaja - + Enable automatic torrent management Omogući automatsko upravljanje torrentima - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Jeste li sigurni da želite omogućiti automatsko upravljanje torrentima za odabrani torrent(e)? Mogu biti premješteni. - - Add Tags - Dodaj oznake - - - + Choose folder to save exported .torrent files Odaberite mapu za spremanje izvezenih .torrent datoteka - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Izvoz .torrent datoteke nije uspio. Torrent: "%1". Putanja spremanja: "%2". Razlog: "%3" - + A file with the same name already exists Datoteka s istim nazivom već postoji - + Export .torrent file error Pogreška izvoza .torrent datoteke - + Remove All Tags Ukloni sve oznake - + Remove all tags from selected torrents? Ukloniti sve oznake s odabranih torrenta? - + Comma-separated tags: Oznake odvojene zarezima: - + Invalid tag Nevažeća oznaka - + Tag name: '%1' is invalid Naziv oznake: '%1' nije valjan - - &Resume - Resume/start the torrent - Nastavi - - - - &Pause - Pause the torrent - &Pauziraj - - - - Force Resu&me - Force Resume/start the torrent - Pri&sili nastavak - - - + Pre&view file... Pre&gled datoteke... - + Torrent &options... &Opcije torrenta... - + Open destination &folder Otvori odredišnu &mapu - + Move &up i.e. move up in the queue Pomakni g&ore - + Move &down i.e. Move down in the queue Pomakni &dolje - + Move to &top i.e. Move to top of the queue Pomakni na &vrh - + Move to &bottom i.e. Move to bottom of the queue Pomakni na &dno - + Set loc&ation... Postavi &lokaciju... - + Force rec&heck Prisili ponovnu prov&jeru - + Force r&eannounce Prisili ponovne &oglase - + &Magnet link &Magnet link - + Torrent &ID Torrent &ID - + &Comment &Komentar - + &Name &Naziv - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Preime&nuj... - + Edit trac&kers... Uredi trac&kere - + E&xport .torrent... Uve&zi .torrent... - + Categor&y Kategor&ija - + &New... New category... &Novi - + &Reset Reset category &Poništi - + Ta&gs Ozna&ke - + &Add... Add / assign multiple tags... Dod&aj - + &Remove All Remove all tags &Ukloni sve - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Ne može se prisilno ponovno oglasiti ako je torrent Zaustavljen/U redu čekanja/Pogreška/Provjera + + + &Queue &Red čekanja - + &Copy &Kopiraj - + Exported torrent is not necessarily the same as the imported Izvezeni torrent nije nužno isti kao uvezeni - + Download in sequential order Preuzmi u sekvencijskom poretku - + + Add tags + Dodaj oznake + + + Errors occurred when exporting .torrent files. Check execution log for details. Došlo je do pogreške prilikom izvoza .torrent datoteka. Za detalje provjerite zapisnik izvršenja. - + + &Start + Resume/start the torrent + &Start + + + + Sto&p + Stop the torrent + Sto&p + + + + Force Star&t + Force Resume/start the torrent + Prisilni Star&t + + + &Remove Remove the torrent Uk&loni - + Download first and last pieces first Preuzmi prve i zadnje dijelove prije drugih. - + Automatic Torrent Management Automatsko upravljanje torrentima - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatski način rada znači da će različita svojstva torrenta (npr. putanja spremanja) biti određena pridruženom kategorijom - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Ne može se prisilno ponovno najaviti ako je torrent pauziran/u redu čekanja/pogreška/provjera - - - + Super seeding mode Način superseedanja @@ -11752,28 +12260,28 @@ Odaberite drugo ime i pokušajte ponovno. ID ikone - + UI Theme Configuration. Konfiguracija teme korisničkog sučelja. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Promjene teme korisničkog sučelja nisu se mogle u potpunosti primijeniti. Detalje možete pronaći u Dnevniku. - + Couldn't save UI Theme configuration. Reason: %1 Nije moguće spremiti konfiguraciju teme korisničkog sučelja. Razlog: %1 - - + + Couldn't remove icon file. File: %1. Nije moguće ukloniti datoteku ikone. Datoteka: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Nije moguće kopirati datoteku ikone. Izvor: %1. Odredište: %2. @@ -11781,7 +12289,12 @@ Odaberite drugo ime i pokušajte ponovno. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Postavljanje stila aplikacije nije uspjelo. Nepoznati stil: "%1" + + + Failed to load UI theme from file: "%1" Nije uspjelo učitavanje teme korisničkog sučelja iz datoteke: "%1" @@ -11812,20 +12325,21 @@ Odaberite drugo ime i pokušajte ponovno. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Postavke migracije nisu uspjele: WebUI https, datoteka: "%1", pogreška: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrirane postavke: WebUI https, izvezeni podaci u datoteku: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Nevažeća vrijednost pronađena u konfiguracijskoj datoteci, vraća se na zadanu vrijednost. Ključ: "%1". Nevažeća vrijednost: "%2". @@ -11833,32 +12347,32 @@ Odaberite drugo ime i pokušajte ponovno. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Pronađena Python izvršna datoteka. Naziv: "%1". Verzija: "%2" - + Failed to find Python executable. Path: "%1". Neuspješno pronalaženje Python izvršne datoteke. Putanja: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Nije uspjelo pronalaženje izvršne datoteke `python3` u varijabli okruženja PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Nije uspjelo pronalaženje izvršne datoteke `python` u varijabli okruženja PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Nije uspjelo pronalaženje izvršne datoteke `python` u registru sustava Windows. - + Failed to find Python executable Neuspješno pronalaženje Python izvršne datoteke @@ -11950,72 +12464,72 @@ Odaberite drugo ime i pokušajte ponovno. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Naveden je neprihvatljiv naziv kolačića sesije: '%1'. Koristi se zadana. - + Unacceptable file type, only regular file is allowed. Neprihvatljiva vrsta datoteke, dopuštena je samo regularna datoteka. - + Symlinks inside alternative UI folder are forbidden. Zabranjene su simboličke veze unutar mape alternativnog korisničkog sučelja. - + Using built-in WebUI. Korištenje ugrađenog WebUI. - + Using custom WebUI. Location: "%1". Korištenje prilagođenog WebUI. Lokacija: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. WebUI prijevod za odabranu lokalizaciju (%1) je uspješno učitan. - + Couldn't load WebUI translation for selected locale (%1). Nije moguće učitati prijevod WebUI-a za odabrani jezik (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Nedostaje ':' separator u WebUI prilagođenom HTTP zaglavlju: "%1" - + Web server error. %1 Greška web poslužitelja. %1 - + Web server error. Unknown error. Greška web poslužitelja. Nepoznata pogreška. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: neusklađenost zaglavlja izvora i ishodišta cilja! Izvor IP: '%1'. Izvorno zaglavlje: '%2'. Ciljano podrijetlo: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Nepodudaranje zaglavlja preporuke i ciljanog porijekla! Izvor IP: '%1'. Zaglavlje preporuke: '%2'. Ciljano podrijetlo: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: nevažeće zaglavlje hosta, nepodudaranje portova. IP izvora zahtjeva: '%1'. Port poslužitelja: '%2'. Primljeno Host zaglavlje: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: nevažeće zaglavlje hosta. IP izvora zahtjeva: '%1'. Primljeno Host zaglavlje: '%2' @@ -12023,125 +12537,133 @@ Odaberite drugo ime i pokušajte ponovno. WebUI - + Credentials are not set Vjerodajnice nisu postavljene - + WebUI: HTTPS setup successful WebUI: HTTPS postavljanje uspješno - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: postavljanje HTTPS-a nije uspjelo, povratak na HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Sada osluškuje IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Nije moguće vezati se na IP: %1, port: %2. Razlog: %3 + + fs + + + Unknown error + Nepoznata greška + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1s %2m - + %1d %2h e.g: 2 days 10 hours %1d %2s - + %1y %2d e.g: 2 years 10 days %1g %2d - - + + 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 diff --git a/src/lang/qbittorrent_hu.ts b/src/lang/qbittorrent_hu.ts index 3843153ca..a52f2879b 100644 --- a/src/lang/qbittorrent_hu.ts +++ b/src/lang/qbittorrent_hu.ts @@ -14,75 +14,75 @@ Névjegy - + Authors Szerzők - + Current maintainer Jelenlegi projektvezető - + Greece Görögország - - + + Nationality: Nemzetiség: - - + + E-mail: E-mail: - - + + Name: Név: - + Original author Eredeti szerző - + France Franciaország - + Special Thanks Külön köszönet - + Translators Fordítók - + License Licenc - + Software Used Használatban lévő szoftver - + qBittorrent was built with the following libraries: A qBittorrent a következő könyvtárak felhasználásával került kiadásra: - + Copy to clipboard Másolás a vágólapra @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Szerzői joggal védve %1 2006-2024 A qBittorrent projekt + Copyright %1 2006-2025 The qBittorrent project + Szerzői joggal védve %1 2006-2025 A qBittorrent projekt @@ -166,15 +166,10 @@ Mentés helye - + Never show again Ne mutasd újra - - - Torrent settings - Torrent beállítások - Set as default category @@ -191,12 +186,12 @@ Torrent indítása - + Torrent information Torrent információk - + Skip hash check Hash ellenőrzés kihagyása @@ -205,6 +200,11 @@ Use another path for incomplete torrent Használjon másik elérési utat a befejezetlen torrenthez + + + Torrent options + Torrent beállítások + Tags: @@ -231,75 +231,75 @@ Stop feltétel: - - + + None Nincs - - + + Metadata received Metaadat fogadva - + Torrents that have metadata initially will be added as stopped. - + Az eredetileg metaadatokkal rendelkező torrentek leállítva kerülnek hozzáadásra. - - + + Files checked Fájlok ellenőrizve - + Add to top of queue Hozzáadás a várólista elejére - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Ha be van jelölve, akkor a .torrent fájl a "Letöltések" oldalon lévő beállításoktól függetlenül nem lesz törölve - + Content layout: Tartalom elrendezése: - + Original Eredeti - + Create subfolder Almappa létrehozása - + Don't create subfolder Ne hozzon létre almappát - + Info hash v1: Info hash v1: - + Size: Méret: - + Comment: Megjegyzés: - + Date: Dátum: @@ -329,151 +329,147 @@ Utoljára használt mentési útvonal megjegyzése - + Do not delete .torrent file Ne törölje a .torrent fájlt - + Download in sequential order Letöltés egymás utáni sorrendben - + Download first and last pieces first Első és utolsó szelet letöltése először - + Info hash v2: Info hash v2: - + Select All Összes kiválasztása - + Select None Egyiket sem - + Save as .torrent file... Mentés .torrent fájlként… - + I/O Error I/O Hiba - + Not Available This comment is unavailable Nem elérhető - + Not Available This date is unavailable Nem elérhető - + Not available Nem elérhető - + Magnet link Magnet link - + Retrieving metadata... Metaadat letöltése... - - + + Choose save path Mentési útvonal választása - + No stop condition is set. Nincs stop feltétel beállítva. - + Torrent will stop after metadata is received. Torrent megáll a metaadat fogadása után. - Torrents that have metadata initially aren't affected. - Nem érintettek azok a torrentek melyek kezdéskor metaadattal rendelkeznek. - - - + Torrent will stop after files are initially checked. Torrent meg fog állni a fájlok kezdeti ellenőrzése után. - + This will also download metadata if it wasn't there initially. Ez a metaadatot is le fogja tölteni ha az, kezdéskor nem volt jelen. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (Szabad hely a lemezen: %2) - + Not available This size is unavailable. Nem elérhető - + Torrent file (*%1) Torrent fájl (*%1) - + Save as torrent file Mentés torrent fájlként - + Couldn't export torrent metadata file '%1'. Reason: %2. '%1' torrent metaadat-fájl nem exportálható. Indok: %2. - + Cannot create v2 torrent until its data is fully downloaded. Nem lehet v2 torrentet létrehozni, amíg annak adatai nincsenek teljesen letöltve. - + Filter files... Fájlok szűrése... - + Parsing metadata... Metaadat értelmezése... - + Metadata retrieval complete Metaadat sikeresen letöltve @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrent letöltése... Forrás: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Torrent hozzáadása sikertelen. Forrás: "%1". Indok: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Duplikált torrent hozzáadási kísérlet észlelve. Forrás: %1. Meglévő torrent: %2. Eredmény: %3 - - - + Merging of trackers is disabled Trackerek összevonása ki van kapcsolva - + Trackers cannot be merged because it is a private torrent Trackereket nem lehetett összevonni mert ez egy privát torrent - + Trackers are merged from new source Trackerek összevonva az új forrásból + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent megosztási korlát + Torrent megosztási korlát @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torrentek újraellenőrzése a letöltésük végeztével - - + + ms milliseconds ms - + Setting Beállítások - + Value Value set for this setting Érték - + (disabled) (letiltva) - + (auto) (auto) - + + min minutes perc - + All addresses Összes cím - + qBittorrent Section qBittorrent beállítások - - + + Open documentation Dokumentáció megnyitása - + All IPv4 addresses Összes IPv4-cím - + All IPv6 addresses Összes IPv6-cím - + libtorrent Section libtorrent beállítások - + Fastresume files Gyors-folytatás fájlok - + SQLite database (experimental) SQLite adatbázis (kísérleti) - + Resume data storage type (requires restart) Folytatási-adat tároló típusa (újraindítást igényel) - + Normal Normál - + Below normal Normál alatti - + Medium Közepes - + Low Alacsony - + Very low Nagyon alacsony - + Physical memory (RAM) usage limit Fizikai memória (RAM) használati korlát - + Asynchronous I/O threads Aszinkron I/O szálak - + Hashing threads Hash ellenőrző szálak - + File pool size Fájl-sor mérete - + Outstanding memory when checking torrents Torrent ellenőrzéskor kiemelt memória mérete - + Disk cache Lemez gyorsítótár - - - - + + + + + s seconds s - + Disk cache expiry interval Merevlemez gyorsítótár lejáratának ideje - + Disk queue size Lemez sorbanállás mérete - - + + Enable OS cache Operációs rendszer gyorsítótár engedélyezés - + Coalesce reads & writes Olvasások és írások egyesítése - + Use piece extent affinity Szeletméret-affinitás használata - + Send upload piece suggestions Feltöltési szelet javaslatok küldése - - - - + + + + + 0 (disabled) 0 (letiltva) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Folytatási adatfájl mentésének időköze [0: kikapcsolva] - + Outgoing ports (Min) [0: disabled] Kimenő portok (Min) [0: kikapcsolva] - + Outgoing ports (Max) [0: disabled] Kimenő portok (Max) [0: kikapcsolva] - + 0 (permanent lease) 0 (nem jár le) - + UPnP lease duration [0: permanent lease] UPnP bérlés időtartama [0: Állandó bérlés] - + Stop tracker timeout [0: disabled] Stop tracker időtúllépés [0: kikapcsolva] - + Notification timeout [0: infinite, -1: system default] Értesítés időtartama [0: végtelen, -1: rendszer alapértelmezett] - + Maximum outstanding requests to a single peer Maximális függőben lévő kérések egyetlen peerhez: - - - - - + + + + + KiB KiB - + (infinite) (végtelen) - + (system default) (rendszer alapértelmezett) - + + Delete files permanently + Fájlok végleges törlése + + + + Move files to trash (if possible) + Fájlok áthelyezése a kukába (ha lehetséges) + + + + Torrent content removing mode + Torrent tartalom eltávolítási mód + + + This option is less effective on Linux Ez az opció kevésbé hatékony Linuxon - + Process memory priority Folyamat memória priorítása - + Bdecode depth limit Bdecode mélység korlát - + Bdecode token limit Bdecode token korlát - + Default Alapértelmezett - + Memory mapped files Memóriában szereplő fájlok - + POSIX-compliant POSIX-kompatibilis - + + Simple pread/pwrite + Simple pread/pwrite + + + Disk IO type (requires restart) Lemez IO típusa (újraindítást igényel) - - + + Disable OS cache Operációs rendszer gyorsítótár letiltása - + Disk IO read mode Lemez IO olvasási mód - + Write-through Write-through - + Disk IO write mode Lemez IO írási mód - + Send buffer watermark Puffer watermark küldése - + Send buffer low watermark Puffer low watermark küldése - + Send buffer watermark factor Puffer watermark factor küldése - + Outgoing connections per second Kimenő kapcsolatok másodpercenként - - + + 0 (system default) 0 (rendszer alapértelmezett) - + Socket send buffer size [0: system default] Socket küldő puffer mérete [0: rendszer alapértelmezett] - + Socket receive buffer size [0: system default] Socket fogadó puffer mérete [0: rendszer alapértelmezett] - + Socket backlog size Socket várósor méret - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Statisztika mentési intervallum [0: kikapcsolva] + + + .torrent file size limit .torrent fájl méret korlát - + Type of service (ToS) for connections to peers Szolgáltatástípus (ToS) a peerkapcsolatokhoz - + Prefer TCP TCP előnyben részesítése - + Peer proportional (throttles TCP) Peer arányos (TCP-t visszafogja) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Nemzetköziesített domain nevek (IDN) támogatása - + Allow multiple connections from the same IP address Több kapcsolat engedélyezése ugyanarról az IP-címről - + Validate HTTPS tracker certificates Ellenőrizze a HTTPS tracker tanúsítványokat - + Server-side request forgery (SSRF) mitigation Szerveroldali kéréshamisítás (SSRF) csökkentése - + Disallow connection to peers on privileged ports Ne engedje a csatlakozást peerek felé kiváltságos portokon - + It appends the text to the window title to help distinguish qBittorent instances - + A qBittorent példányok megkülönböztetésének megkönnyítése érdekében a szöveget az ablak címéhez csatolja. - + Customize application instance name - + Alkalmazáspéldány nevének testreszabása - + It controls the internal state update interval which in turn will affect UI updates Ez szabályozza a belső állapotfrissítési időközt, ami viszont hatással lesz a felhasználói felület frissítéseire - + Refresh interval Frissítési időköz - + Resolve peer host names Peer kiszolgálónevek feloldása - + IP address reported to trackers (requires restart) Trackernek lejelentett IP cím (újraindítást igényel) - + + Port reported to trackers (requires restart) [0: listening port] + Trackerek felé jelentett port (újraindítást igényel) [0: használt port] + + + Reannounce to all trackers when IP or port changed Újrajelentés az összes tracker felé ha változik az IP vagy a port - + Enable icons in menus Ikonok engedélyezése a menükben - + + Attach "Add new torrent" dialog to main window + "Új torrent hozzáadása" párbeszédpanel csatolása a főablakhoz + + + Enable port forwarding for embedded tracker Porttovábbítás a beépített tracker számára - + Enable quarantine for downloaded files Letöltött fájlok karanténjának engedélyezése - + Enable Mark-of-the-Web (MOTW) for downloaded files Engedélyezze a Mark-of-the-Web (MOTW) használatát letöltött fájlokhoz - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Hatással van a tanúsítványok ellenőrzésére és a nem torrent protokollal végzett tevékenységekre (pl. RSS-hírcsatornák, programfrissítések, torrent fájlok, geoip adatbázis stb.). + + + + Ignore SSL errors + SSL hibák figyelmen kívül hagyása + + + (Auto detect if empty) (Auto felismerés ha üres) - + Python executable path (may require restart) Python útvonal (újraindítást igényelhet): - + + Start BitTorrent session in paused state + BitTorrent munkamenet indítása szüneteltetett állapotban + + + + sec + seconds + mp + + + + -1 (unlimited) + -1 (korlátlan) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent munkamenet leállításának időkorlátja [-1: korlátlan] + + + Confirm removal of tracker from all torrents Megerősítés a tracker eltávolítására az összes torrentből - + Peer turnover disconnect percentage Peer forgalom lekapcsolási százalék - + Peer turnover threshold percentage Peer forgalmi küszöb százalék - + Peer turnover disconnect interval Peer forgalom lekapcsolási intervallum - + Resets to default if empty Alapértelmezettre visszaáll ha üres - + DHT bootstrap nodes DHT bootstrap csomópontok - + I2P inbound quantity I2P bejövő mennyiség - + I2P outbound quantity I2P kimenő mennyiség - + I2P inbound length I2P bejövő hossza - + I2P outbound length I2P kimenő hossza - + Display notifications Értesítések megjelenítése - + Display notifications for added torrents Értesítések megjelenítése a hozzáadott torrentekről - + Download tracker's favicon Tracker favicon letöltése - + Save path history length Tárolt múltbéli mentési útvonalak száma - + Enable speed graphs Sebesség grafikonok engedélyezése - + Fixed slots Rögzített szálak - + Upload rate based Feltöltési sebesség alapján - + Upload slots behavior Feltöltési szálak működése - + Round-robin Round-robin - + Fastest upload Leggyorsabb feltöltés - + Anti-leech Anti-leech - + Upload choking algorithm Feltöltéskorlátozási algoritmus - + Confirm torrent recheck Újraellenőrzés megerősítése - + Confirm removal of all tags Összes címke eltávolításának megerősítése - + Always announce to all trackers in a tier Mindig jelentsen az egy szinten lévő összes tracker felé - + Always announce to all tiers Mindig jelentsen az összes szintnek - + Any interface i.e. Any network interface Bármely csatoló - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP kevert-mód algoritmus - + Resolve peer countries Peer országának megjelenítése - + Network interface Hálózati csatoló - + Optional IP address to bind to Alkalmazás által használt IP cím - + Max concurrent HTTP announces Maximális egyidejű HTTP bejelentések - + Enable embedded tracker Beépített tracker bekapcsolása - + Embedded tracker port Beépített tracker portja + + AppController + + + + Invalid directory path + Érvénytelen elérési útvonal + + + + Directory does not exist + A könyvtár nem létezik + + + + Invalid mode, allowed values: %1 + Érvénytelen mód, engedélyezett értékek: %1 + + + + cookies must be array + A sütiknek tömbként kell szerepelniük + + Application - + Running in portable mode. Auto detected profile folder at: %1 Futtatás hordozható módban. Profil mappa automatikusan észlelve: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Felesleges parancssori kapcsoló észlelve: "%1". A hordozható mód magában foglalja a gyors-folytatást. - + Using config directory: %1 Beállítások könyvtár használata: %1 - + Torrent name: %1 Torrent név: %1 - + Torrent size: %1 Torrent méret: %1 - + Save path: %1 Mentés helye: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent letöltésre került %1 alatt. - + + Thank you for using qBittorrent. Köszönjük, hogy a qBittorentet használja. - + Torrent: %1, sending mail notification Torrent: %1, értesítő levél küldése - + Add torrent failed Torrent hozzáadása sikertelen - + Couldn't add torrent '%1', reason: %2. Nem sikerült hozzáadni '%1' torrentet, ok: %2. - + The WebUI administrator username is: %1 A WebUI adminisztrátor felhasználónév: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 A WebUI rendszergazdai jelszó nem volt beállítva. A munkamenethez egy ideiglenes jelszó lett biztosítva: %1 - + You should set your own password in program preferences. Javasolt saját jelszót beállítania a programbeállításokban. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. A WebUI le van tiltva! A WebUI engedélyezéséhez szerkessze kézzel a konfigurációs fájlt. - + Running external program. Torrent: "%1". Command: `%2` Külső program futtatása. Torrent: "%1". Parancs: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Nem sikerült futtatni a külső programot. Torrent: "%1". Parancs: `%2` - + Torrent "%1" has finished downloading Torrent "%1" befejezte a letöltést - + WebUI will be started shortly after internal preparations. Please wait... A WebUI röviddel a belső előkészületek után elindul. Kérlek várj... - - + + Loading torrents... Torrentek betöltése... - + E&xit K&ilépés - + I/O Error i.e: Input/Output Error I/O Hiba - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Indok: %2 - + Torrent added Torrent hozzáadva - + '%1' was added. e.g: xxx.avi was added. '%1' hozzáadva. - + Download completed Letöltés befejezve - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 elindult. Folyamat azonosítója: %2 - + + This is a test email. + Ez egy teszt email. + + + + Test email + Teszt email + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' befejezte a letöltést. - + Information Információ - + To fix the error, you may need to edit the config file manually. A hiba kijavításához esetleg manuálisan kell szerkesztenie a konfigurációs fájlt. - + To control qBittorrent, access the WebUI at: %1 qBittorrent irányításához nyissa meg a Web UI-t itt: %1 - + Exit Kilépés - + Recursive download confirmation Rekurzív letöltés megerősítése - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? '%1' torrent .torrent fájlokat is tartalmaz, szeretné ezeket is letölteni? - + Never Soha - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Torrenten belüli .torrent fájl rekurzív letöltése. Forrás torrent: "%1". Fájl: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Nem sikerült beállítani a fizikai memória (RAM) használati korlátját. Hibakód: %1. Hibaüzenet: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" A fizikai memória (RAM) használatának kemény korlátját nem sikerült beállítani. Kért méret: %1. A rendszer kemény korlátja: %2. Hibakód: %3. Hibaüzenet: "%4" - + qBittorrent termination initiated qBittorrent leállítása kezdeményezve - + qBittorrent is shutting down... A qBittorrent leáll... - + Saving torrent progress... Torrent állapotának mentése... - + qBittorrent is now ready to exit A qBittorrent készen áll a kilépésre @@ -1609,12 +1715,12 @@ Indok: %2 Priorítás: - + Must Not Contain: Nem tartalmazhatja: - + Episode Filter: Epizód szűrő: @@ -1667,263 +1773,263 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor &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 - + 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 - + Episode number is a mandatory positive value Az epizódszám egy kötelező pozitív érték - + Rules Szabályok - + Rules (legacy) Szabályok (régi) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Korlátlan tartomány: <b>1x25-;</b> az első évad 25. epizódjától kezdve minden rész, és minden epizód a későbbi évadokban - + Last Match: %1 days ago Utolsó egyezés: %1 nappal ezelőtt - + Last Match: Unknown 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 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 - + Invalid action Érvénytelen művelet - + The list is empty, there is nothing to export. A lista üres, nincs mit exportálni. - + Export RSS rules RSS szabályok exportálása - + I/O Error I/O Hiba - + Failed to create the destination file. Reason: %1 Célfájlt nem sikerült létrehozni. Indok: %1 - + Import RSS rules RSS szabályok importálása - + Failed to import the selected rules file. Reason: %1 Hiba a kiválasztott szabályfájl importálásakor. Indok: %1 - + 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 - + Clear downloaded episodes... Letöltött epizódok 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 - + Clear downloaded episodes Letöltött epizódok törlése - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Biztosan törölni szeretnéd a kiválasztott szabályhoz tartozó letöltött epizódokat ? - + Regex mode: use Perl-compatible regular expressions Regex mód: Perl-kompatibilis reguláris kifejezések használata - - + + Position %1: %2 Pozíció %1: %2 - + Wildcard mode: you can use Helyettesítő karakter mód: használható karakterek - - + + Import error Import hiba - + Failed to read the file. %1 Nem sikerült a fájl olvasása. %1 - + ? to match any single character ? – egy tetszőleges karakterre illeszkedik - + * to match zero or more of any characters * – nulla vagy több tetszőleges karakterre illeszkedik - + Whitespaces count as AND operators (all words, any order) Üres karakterek ÉS operátorként működnek (minden szó, bármilyen sorrendben) - + | is used as OR operator | a VAGY operátorként működik - + If word order is important use * instead of whitespace. Ha a szósorrend fontos, akkor használjon *-ot üres karakter helyett - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Egy üres %1 tagmondattal rendelkező kifejezés (pl. %2) - + will match all articles. minden elemre illeszkedni fog. - + will exclude all articles. minden elemet ki fog hagyni. @@ -1965,7 +2071,7 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Torrent folytatási mappa nem hozható létre: "%1" @@ -1975,28 +2081,38 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Nem lehet feldolgozni a folytatási adatot: érvénytelen formátum - - + + Cannot parse torrent info: %1 Nem lehet feldolgozni a torrent infót: %1 - + Cannot parse torrent info: invalid format Nem lehet feldolgozni a torrent infót: érvénytelen formátum - + Mismatching info-hash detected in resume data Eltérő info-hash észlelve a folytatási adatban - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. A torrent metaadat nem menthető ide: '%1'. Hiba: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. A torrent folytatási adat nem menthető ide: '%1'. Hiba: %2. @@ -2007,16 +2123,17 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor + Cannot parse resume data: %1 Nem lehet feldolgozni a folytatási adatot: %1 - + Resume data is invalid: neither metadata nor info-hash was found Folytatási adat érvénytelen: sem metaadat, sem info-hash nem található - + Couldn't save data to '%1'. Error: %2 Az adatok nem menthetők ide '%1'. Hiba: %2 @@ -2024,38 +2141,60 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor BitTorrent::DBResumeDataStorage - + Not found. Nem található. - + Couldn't load resume data of torrent '%1'. Error: %2 '%1' torrent folytatási adata nem tölthető be. Hiba: %2 - - + + Database is corrupted. Az adatbázis sérült. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Nem lehetett engedélyezni az Előre-Írás Naplózás (WAL) módot. Hiba: %1. - + Couldn't obtain query result. Nem sikerült lekérdezés eredményt kapni. - + WAL mode is probably unsupported due to filesystem limitations. WAL mód valószínűleg nem támogatott a fájlrendszer korlátozásai miatt. - + + + Cannot parse resume data: %1 + Nem lehet feldolgozni a folytatási adatot: %1 + + + + + Cannot parse torrent info: %1 + Nem lehet feldolgozni a torrent infót: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Nem sikerült elkezdeni a tranzakciót. Hiba: %1 @@ -2063,22 +2202,22 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Torrent metaadat mentése sikertelen. Hiba: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nem sikerült tárolni a '%1' torrent folytatási adatait. Hiba: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nem sikerült törölni a '%1' torrent folytatási adatait. Hiba: %2 - + Couldn't store torrents queue positions. Error: %1 Torrentek sorrend pozícióit nem sikerült menteni. Hiba: %1 @@ -2086,457 +2225,503 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Megosztott Hash-tábla (DHT) támogatása: %1 - - - - - - - - - + + + + + + + + + ON BE - - - - - - - - - + + + + + + + + + OFF KI - - + + Local Peer Discovery support: %1 Helyi Peer Felfedezés támogatás: %1 - + Restart is required to toggle Peer Exchange (PeX) support Újraindítás szükséges a Peercsere (PeX) támogatás átváltásához - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrent folytatása sikertelen. Torrent: "%1". Indok: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Nem sikerült a torrentet folytatni: inkonzisztens torrent azonosító ID észlelve. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Inkonzisztens adat észlelve: a konfigurációs fájlból hiányzik a kategória. A kategória helyre lesz állítva, de a beállításai visszaállnak az alapértelmezettre. Torrent: "%1". Kategória: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Inkonzisztens adat észlelve: érvénytelen kategória. Torrent: "%1". Kategória: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Eltérést észleltünk a helyreállított kategória mentési útvonalai és a torrent aktuális mentési útvonala között. A torrent most Kézi Módba vált. Torrent: "%1". Kategória: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Inkonzisztens adat észlelve: a konfigurációs fájlból hiányzik a címke. A címke helyreállításra kerül. Torrent: "%1". Címke: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Inkonzisztens adat észlelve: érvénytelen címke. Torrent: "%1". Címke: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Rendszer felébredési esemény észlelve. Újbóli jelentés az összes trackernek... - + Peer ID: "%1" Peer azonosító: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Peercsere (PeX) támogatás: %1 - - + + Anonymous mode: %1 Anonymous mód: %1 - - + + Encryption support: %1 Titkosítás támogatás: %1 - - + + FORCED KÉNYSZERÍTETT - + Could not find GUID of network interface. Interface: "%1" A hálózati csatoló GUID azonosítója nem található. Csatoló: "%1" - + Trying to listen on the following list of IP addresses: "%1" Következő IP cím lista használatának megkísérlése: "%1" - + Torrent reached the share ratio limit. A torrent elérte a megosztási arány korlátot. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent eltávolítva. - - - - - - Removed torrent and deleted its content. - Torrent eltávolítva és tartalma törölve. - - - - - - Torrent paused. - Torrent szüneteltetve. - - - - - + Super seeding enabled. Szuper seed engedélyezve. - + Torrent reached the seeding time limit. Torrent elérte a seed idő limitet. - + Torrent reached the inactive seeding time limit. Torrent elérte az inaktív seed idő limitet. - + Failed to load torrent. Reason: "%1" Torrent betöltése sikertelen. Indok: "%1" - + I2P error. Message: "%1". I2P hiba. Üzenet: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP támogatás: BE - + + Saving resume data completed. + Folytatási adatfájl mentése sikeres. + + + + BitTorrent session successfully finished. + BitTorrent munkamenet sikeresen befejezve. + + + + Session shutdown timed out. + Munkamenet leállítás időtúllépés. + + + + Removing torrent. + Torrent eltávolítása. + + + + Removing torrent and deleting its content. + Torrent eltávolítása és tartalmának törlése. + + + + Torrent stopped. + Torrent leállítva. + + + + Torrent content removed. Torrent: "%1" + Torrent tartalom eltávolítva. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Nem sikerült eltávolítani a torrent tartalmát. Torrent: "%1". Hiba: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent eltávolítva. Torrent: "%1" + + + + Merging of trackers is disabled + Trackerek összevonása ki van kapcsolva + + + + Trackers cannot be merged because it is a private torrent + Trackereket nem lehetett összevonni mert ez egy privát torrent + + + + Trackers are merged from new source + Trackerek összevonva az új forrásból + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP támogatás: KI - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Nem sikerült a torrent exportálása. Torrent: "%1". Cél: "%2". Indok: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Folytatási adatok mentése megszakítva. Függőben lévő torrentek száma: %1 - + The configured network address is invalid. Address: "%1" A konfigurált hálózati cím érvénytelen. Cím: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Nem sikerült megtalálni a konfigurált hálózati címet a használathoz. Cím: "%1" - + The configured network interface is invalid. Interface: "%1" A konfigurált hálózati interfész érvénytelen. Interfész: "%1" - + + Tracker list updated + Tracker lista frissítve + + + + Failed to update tracker list. Reason: "%1" + Nem sikerült frissíteni a tracker listát. Indok: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Érvénytelen IP-cím elutasítva a tiltott IP-címek listájának alkalmazása során. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Tracker hozzáadva a torrenthez. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tracker eltávolítva a torrentből. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL seed hozzáadva a torrenthez. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL seed eltávolítva a torrentből. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent szüneteltetve. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Rész-fájl eltávolítása nem sikerült. Torrent: "%1". Indok: "%2". - + Torrent resumed. Torrent: "%1" Torrent folytatva. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent letöltése befejeződött. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrent áthelyezés visszavonva. Torrent: "%1". Forrás: "%2". Cél: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent leállítva. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Nem sikerült sorba állítani a torrent áthelyezését. Torrent: "%1". Forrás: "%2". Cél: "%3". Indok: a torrent jelenleg áthelyezés alatt van a cél felé - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Nem sikerült sorba állítani a torrentmozgatást. Torrent: "%1". Forrás: "%2" Cél: "%3". Indok: mindkét útvonal ugyanarra a helyre mutat - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrent mozgatás sorba állítva. Torrent: "%1". Forrás: "%2". Cél: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrent áthelyezés megkezdve. Torrent: "%1". Cél: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Nem sikerült menteni a Kategóriák konfigurációt. Fájl: "%1". Hiba: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nem sikerült értelmezni a Kategóriák konfigurációt. Fájl: "%1". Hiba: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP szűrő fájl sikeresen feldolgozva. Alkalmazott szabályok száma: %1 - + Failed to parse the IP filter file Nem sikerült feldolgozni az IP-szűrőfájlt - + Restored torrent. Torrent: "%1" Torrent visszaállítva. Torrent: "%1" - + Added new torrent. Torrent: "%1" Új torrent hozzáadva. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent hibát jelzett. Torrent: "%1". Hiba: %2. - - - Removed torrent. Torrent: "%1" - Torrent eltávolítva. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent eltávolítva és tartalma törölve. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + A torrentből hiányoznak az SSL paraméterek. Torrent: "%1". Üzenet: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Fájl hiba riasztás. Torrent: "%1". Fájl: "%2". Indok: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP port lefoglalás sikertelen. Üzenet: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP port lefoglalás sikerült. Üzenet: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP-szűrő - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). kiszűrt port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privilegizált port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL seed kapcsolati hiba. Torrent: "%1". URL: "%2". Hiba: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" A BitTorrent munkamenet súlyos hibát észlelt. Indok: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy hiba. Cím: %1. Üzenet: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 kevert mód megszorítások - + Failed to load Categories. %1 Nem sikerült betölteni a Kategóriákat. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Nem sikerült betölteni a Kategóriák beállításokat. Fájl: "%1". Hiba: "Érvénytelen adat formátum" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent eltávolítva, de tartalmát és/vagy a rész-fájlt nem sikerült eltávolítani. Torrent: "%1". Hiba: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 letiltva - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 letiltva - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Nem sikerült az URL seed DNS lekérdezése. Torrent: "%1". URL: "%2". Hiba: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Hibaüzenet érkezett az URL seedtől. Torrent: "%1". URL: "%2". Üzenet: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Sikerült az IP cím használatba vétele. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Nem sikerült az IP cím használata. IP: "%1". Port: "%2/%3". Indok: "%4" - + Detected external IP. IP: "%1" Külső IP észlelve. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Hiba: A belső riasztási tár megtelt, és a riasztások elvetésre kerülnek. Előfordulhat, hogy csökkentett teljesítményt észlel. Eldobott riasztás típusa: "%1". Üzenet: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent sikeresen áthelyezve. Torrent: "%1". Cél: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" A torrent áthelyezése nem sikerült. Torrent: "%1". Forrás: "%2". Cél: "%3". Indok: "%4" @@ -2546,19 +2731,19 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Failed to start seeding. - + Nem sikerült elindítani a seedelést. BitTorrent::TorrentCreator - + Operation aborted Művelet megszakítva - - + + Create new torrent file failed. Reason: %1. Új torrent fájl létrehozása nem sikerült. Indok: %1. @@ -2566,67 +2751,67 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 "%1" peer hozzáadása a "%2" torrenthez sikertelen. Indok: %3 - + Peer "%1" is added to torrent "%2" "%1" peer hozzáadva a "%2" torrenthez. - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Váratlan adat észlelve. Torrent: %1. Adat: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nem sikerült fájlba írni. Indok: "%1". A Torrent most "csak feltöltés" módban van. - + Download first and last piece first: %1, torrent: '%2' Első és utolsó szelet letöltése először: %1, torrent: '%2' - + On Be - + Off Ki - + Failed to reload torrent. Torrent: %1. Reason: %2 Nem sikerült újratölteni a torrentet. Torrent: %1. Ok: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Nem sikerült folytatási adatot generálni. Torrent: "%1". Indok: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" A torrent visszaállítása sikertelen. A fájlok valószínűleg át lettek helyezve, vagy a tárhely nem érhető el. Torrent: "%1". Indok: "%2" - + Missing metadata Hiányzó metaadat - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Fájl átnevezése sikertelen. Torrent: "%1", fájl: "%2", indok: "%3" - + Performance alert: %1. More info: %2 Teljesítmény riasztás: %1. További info: %2 @@ -2647,189 +2832,189 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' A '%1' paraméternek követnie kell a '%1=%2' szintaxist - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' A '%1' paraméternek követnie kell a '%1=%2' szintaxist - + Expected integer number in environment variable '%1', but got '%2' Egész szám várva a '%1' környezeti változóban, de ez érkezett: '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - A '%1' paraméternek követnie kell a '%1=%2' szintaxist - - - + Expected %1 in environment variable '%2', but got '%3' %1 várva a '%2' környezeti változóban, de ez érkezett: '%3' - - + + %1 must specify a valid port (1 to 65535). %1 -nek érvényes portot kell megadnia (1 és 65535 között). - + Usage: Használat: - + [options] [(<filename> | <url>)...] [opciók] [(<filename> | <url>)...] - + Options: Opciók: - + Display program version and exit Program verzió megjelenítése és kilépés - + Display this help message and exit Ezen súgó üzenet megjelenítése és kilépés - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + A '%1' paraméternek követnie kell a '%1=%2' szintaxist + + + Confirm the legal notice Jogi közlemény megerősítése - - + + port port - + Change the WebUI port WebUI port módosítása - + Change the torrenting port Torrent port módosítása - + Disable splash screen Induló képernyő letiltása - + Run in daemon-mode (background) daemon-mode -ban való futtatás (háttérben) - + dir Use appropriate short form or abbreviation of "directory" könyvtár - + Store configuration files in <dir> Konfigurációs fájlok tárolása itt: <dir> - - + + name név - + Store configuration files in directories qBittorrent_<name> Konfigurációs fájlok tárolása a qBittorrent_<name> könyvtárakban - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hackeljen bele a libtorrent gyors-folytatás állományaiba, és a fájlok elérési útjai legyenek relatívak a profil könyvtárhoz - + files or URLs fájlok vagy URL-ek - + Download the torrents passed by the user A felhasználó által átadott torrentek letöltése - + Options when adding new torrents: Beállítások az új torrentek hozzáadásakor: - + path útvonal - + Torrent save path Torrent mentési útvonala - - Add torrents as started or paused - Torrentek hozzáadása elindítva vagy szüneteltetve + + Add torrents as running or stopped + Torrentek hozzáadása futó vagy megállított állapotban - + Skip hash check Hash ellenőrzés kihagyása - + Assign torrents to category. If the category doesn't exist, it will be created. Torrentek kategóriákba rendezése. Ha a kategória nem létezik, akkor létre lesz hozva. - + Download files in sequential order Fájlok letöltése sorrendben - + Download first and last pieces first Első és utolsó szelet letöltése először - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Adja meg, hogy az "Új torrent hozzáadása" párbeszédablak megnyíljon-e egy új torrent hozzáadásakor. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Az opciók értékekeit környezeti változókon keresztül lehet megadni. Egy 'option-name' beállítás esetén, a környezeti változó neve 'QBT_PARAMETER_NAME' (nagybetűkkel, '-' helyett '_'). A jelzőértékek átadásához állítsa a változót '1' vagy 'TRUE' értékre. Például, az induló képernyő letiltásához: - + Command line parameters take precedence over environment variables Parancssori paraméterek elsőbbséget élveznek a környezeti változókkal szemben - + Help Súgó @@ -2881,13 +3066,13 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor - Resume torrents - Torrentek folytatása + Start torrents + Torrentek indítása - Pause torrents - Torrentek szüneteltetése + Stop torrents + Torrentek leállítása @@ -2898,15 +3083,20 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor ColorWidget - + Edit... Szerkesztés... - + Reset Visszaállítás + + + System + Rendszer + CookiesDialog @@ -2947,12 +3137,12 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor CustomThemeSource - + Failed to load custom theme style sheet. %1 Nem sikerült betölteni az egyéni téma stíluslapot. %1 - + Failed to load custom theme colors. %1 Nem sikerült betölteni az egyéni téma színeket. %1 @@ -2960,7 +3150,7 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor DefaultThemeSource - + Failed to load default theme colors. %1 Nem sikerült betölteni az alapértelmezett téma színeket. %1 @@ -2979,23 +3169,23 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor - Also permanently delete the files - Törölje véglegesen a fájlokat is + Also remove the content files + Tartalom fájlokat is távolítsa el - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Biztosan eltávolítja a '%1'-t az átviteli listából? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Biztosan eltávolítja a következő %1 torrentet az átviteli listából? - + Remove Eltávolítás @@ -3008,12 +3198,12 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Letöltés URL-ekből - + Add torrent links Torrent linkek hozzáadás - + One link per line (HTTP links, Magnet links and info-hashes are supported) Soronként egy link (HTTP linkek, mágnes linkek és az info hashek támogatottak) @@ -3023,12 +3213,12 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Letöltés - + No URL entered Nem lett URL cím megadva - + Please type at least one URL. Kérem adjon meg legalább egy URL-t. @@ -3187,25 +3377,48 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Feldolgozási hiba: Szűrő fájl nem egy érvényes PeerGuardian P2B fájl. + + FilterPatternFormatMenu + + + Pattern Format + Minta formátum + + + + Plain text + Egyszerű szöveg + + + + Wildcards + Helyettesítő karakterek + + + + Regular expression + Reguláris kifejezés + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrent letöltése... Forrás: "%1" - - Trackers cannot be merged because it is a private torrent - Trackereket nem lehetett összevonni mert ez egy privát torrent - - - + Torrent is already present Torrent már a listában van - + + Trackers cannot be merged because it is a private torrent. + Trackereket nem lehetett összevonni mert ez egy privát torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? '%1' torrent már szerepel a letöltési listában. Szeretné egyesíteni az új forrásból származó trackereket? @@ -3213,38 +3426,38 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor 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 - + Database corrupted: no data section found. Adatbázis sérült: nem található adat szakasz. @@ -3252,17 +3465,17 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http kérelem mérete meghaladja a korlátozást, socket lezárásra kerül. Korlát: %1, IP:%2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Rossz Http kérési módszer, socket bezárása. IP: %1. Módszer: "%2" - + Bad Http request, closing socket. IP: %1 Rossz Http kérés, socket bezárása. IP: %1 @@ -3303,26 +3516,60 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor IconWidget - + Browse... Tallózás… - + Reset Visszaállítás - + Select icon Ikon kiválasztása - + Supported image files Támogatott képfájlok + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Az energiakezelés megfelelő D-Bus interfészt talált. Interfész: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Energiagazdálkodási hiba. Művelet: %1. Hiba: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Energiagazdálkodási váratlan hiba. Állapot: %1. Hiba: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 blokkolva. Indok: %2 - + %1 was banned 0.0.0.0 was banned %1 ki lett tiltva @@ -3369,60 +3616,60 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. A %1 egy ismeretlen parancssori paraméter. - - + + %1 must be the single command line parameter. %1 egyedüli parancssori paraméter lehet csak. - + Run application with -h option to read about command line parameters. Az alkalmazást a -h paraméterrel indítva ismerkedhet meg a parancssori paraméterekkel. - + Bad command line Rossz parancs sor - + Bad command line: Rossz parancs sor: - + An unrecoverable error occurred. Helyrehozhatatlan hiba történt. + - qBittorrent has encountered an unrecoverable error. A qBittorrent helyrehozhatatlan hibába ütközött. - + You cannot use %1: qBittorrent is already running. A %1 nem használható: a qBittorrent már fut. - + Another qBittorrent instance is already running. Egy másik qBittorrent példány már fut. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Váratlan qBittorrent példányt találtunk. Kilépés ebből a példányból. Jelenlegi folyamat azonosítója: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Hiba a démonizálás során. Ok: "%1". Hibakód: %2. @@ -3435,608 +3682,680 @@ Támogatja a formátumokat: S01E01, 1x1, 2017.12.31 és 31.12.2017. (A dátumfor &Szerkesztés - + &Tools &Eszközök - + &File &Fájl - + &Help Sú&gó - + On Downloads &Done &Letöltések végeztével - + &View &Nézet - + &Options... Beállítás&ok... - - &Resume - &Folytatás - - - + &Remove &Eltávolítás - + Torrent &Creator &Torrent készítő - - + + Alternative Speed Limits Alternatív sebességkorlátok - + &Top Toolbar Felső &panel - + Display Top Toolbar Felső eszköztár megjelenítése - + Status &Bar Állapot&sor - + Filters Sidebar Szűrők oldalsáv - + S&peed in Title Bar Sebesség a &címsorban - + 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 &lezárása - + Do&nate! &Projekt támogatása! - + + Sh&utdown System + Számító&gép leállítása + + + &Do nothing &Ne csináljon semmit - + Close Window Ablak bezárása - - R&esume All - Összes f&olytatása - - - + Manage Cookies... &Sütik kezelése… - + Manage stored network cookies Tárolt hálózati sütik kezelése - + Normal Messages Normál üzenetek - + Information Messages Információs üzenetek - + Warning Messages Figyelmeztető üzenetek - + Critical Messages Kritikus üzenetek - + &Log &Napló - + + Sta&rt + Sta&rt + + + + Sto&p + Sto&p + + + + R&esume Session + &Munkamenet folytatása + + + + Pau&se Session + M&unkamenet szüneteltetése + + + Set Global Speed Limits... Globális sebességkorlát… - + Bottom of Queue Sor alja - + Move to the bottom of the queue Mozgatás a sor aljára - + Top of Queue Sor teteje - + Move to the top of the queue Mozgatás a sor tetejére - + Move Down Queue Mozgatás lentebb a sorban - + Move down in the queue Mozgatás lejjebb a sorban - + Move Up Queue Mozgatás fentebb a sorban - + Move up in the queue Mozgatás feljebb a sorban - + &Exit qBittorrent &qBittorrent bezárása - + &Suspend System Számítógép &altatása - + &Hibernate System Számítógép &hibernálása - - S&hutdown System - Számító&gép leállítása - - - + &Statistics S&tatisztika - + Check for Updates Frissítések ellenőrzése - + Check for Program Updates Frissítések keresése program indításakor - + &About &Névjegy - - &Pause - &Szünet - - - - P&ause All - Összes s&züneteltetése - - - + &Add Torrent File... Torrent hozzá&adása... - + Open Megnyitás - + E&xit &Kilépés - + Open URL URL megnyitása - + &Documentation &Dokumentáció - + Lock Zárolás - - - + + + Show Mutat - + Check for program updates Programfrissítések keresése - + Add Torrent &Link... Torrent &link hozzáadása... - + If you like qBittorrent, please donate! Ha tetszik a qBittorrent, kérjük, adományozzon! - - + + Execution Log Napló - + Clear the password Jelszó törlése - + &Set Password &Jelszó beállítása - + Preferences &Beállítások - + &Clear Password &Jelszó törlése - + Transfers Átvitelek - - + + qBittorrent is minimized to tray qBittorrent lekerül a tálcára - - - + + + This behavior can be changed in the settings. You won't be reminded again. Ez a működés megváltoztatható a beállításokban. Többször nem lesz emlékeztetve. - + 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: - + Are you sure you want to clear the password? Biztosan ki akarod törölni a jelszót? - + Use regular expressions Reguláris kifejezések használata - + + + Search Engine + Keresőmotor + + + + Search has failed + A keresés sikertelen + + + + Search has finished + A keresés befejeződött + + + Search Keresés - + Transfers (%1) Átvitelek (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. A qBittorrent frissült, és újra kell indítani a változások életbe lépéséhez. - + qBittorrent is closed to tray qBittorrent bezáráskor a tálcára - + Some files are currently transferring. Néhány fájl átvitele folyamatban van. - + Are you sure you want to quit qBittorrent? Biztosan ki akar lépni a qBittorrentből? - + &No &Nem - + &Yes &Igen - + &Always Yes &Mindig igen - + Options saved. Beállítások mentve. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [SZÜNETELTETVE] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [L: %1, F: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python telepítőt nem sikerült letölteni. Hiba: %1. +Kérlek telepítsd fel kézzel. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Python telepítő átnevezése nem sikerült. Forrás: "%1". Cél: "%2". + + + + Python installation success. + A Python telepítése sikeres volt. + + + + Exit code: %1. + Kilépési kód: %1. + + + + Reason: installer crashed. + Indok: telepítő összeomlott. + + + + Python installation failed. + A Python telepítése nem sikerült. + + + + Launching Python installer. File: "%1". + A Python telepítő indítása. Fájl: "%1". + + + + Missing Python Runtime Hiányzó Python bővítmény - + qBittorrent Update Available Elérhető qBittorrent frissítés - + 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őmotor használatához Python szükséges, de úgy tűnik nincs telepítve. Telepíti most? - + 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 úgy tűnik nincs telepítve. - - + + Old Python Runtime Elavult Python bővítmény - + A new version is available. Új verzió elérhető. - + Do you want to download %1? Le szeretnéd tölteni %1? - + Open changelog... Változások listájának megnyitása... - + No updates available. You are already using the latest version. Nem érhető el frissítés. A legfrissebb verziót használja. - + &Check for Updates &Frissítések keresése - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? A telepített Python verziója (%1) túl régi. Minimális követelmény: %2. Telepít most egy újabb verziót? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. A telepített Python verziója (%1) túl régi. Egy újabb verzió szükséges a keresőmotorok működéséhez. Minimális követelmény: %2. - + + Paused + Szüneteltetett + + + 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 installation in progress... + A Python telepítése folyamatban... + + + + Failed to open Python installer. File: "%1". + Nem sikerült megnyitni a Python telepítőt. Fájl: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Hiba a Python telepítő MD5 hash ellenőrzésének során. Fájl: "%1". Eredmény hash: "%2". Várt hash: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Hiba a Python telepítő SHA3-512 hash ellenőrzésének során. Fájl: "%1". Eredmény hash: "%2". Várt hash: "%3". + + + 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ó - + Filter torrents... Torrentek szűrése... - + Filter by: Szűrés erre: - + The password must be at least 3 characters long A jelszónak legalább 3 karakter hosszúnak kell lennie - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Torrent Fájl Megnyitása - + Torrent Files Torrent Fájlok @@ -4130,12 +4449,12 @@ Kérlek telepítsd fel kézzel. The remote server closed the connection prematurely, before the entire reply was received and processed - A távoli kiszolgáló idő előtt lezárta a kapcsolatot, mielőtt a teljes választ megkapta és feldolgozta volna + A távoli szerver idő előtt lezárta a kapcsolatot, mielőtt a teljes választ megkapta és feldolgozta volna The connection to the remote server timed out - Időtúllépés a távoli kiszolgálóhoz kapcsolódáskor + A távoli szerverhez való kapcsolat időtúllépés miatt megszakadt @@ -4145,7 +4464,7 @@ Kérlek telepítsd fel kézzel. The remote server refused the connection - A távoli kiszolgáló elutasította a kapcsolatot + A távoli szerver elutasította a kapcsolatot @@ -4185,12 +4504,12 @@ Kérlek telepítsd fel kézzel. The remote content was not found at the server (404) - A távoli tartalom nem található a kiszolgálón (404) + A távoli tartalom nem található a szerveren (404) The remote server requires authentication to serve the content but the credentials provided were not accepted - A távoli kiszolgáló hitelesítést igényel a tartalom kiszolgálásához, de nem fogadja el az általunk küldött hitelesítő adatokat + A távoli szerver hitelesítést igényel a tartalom kiszolgálásához, de nem fogadja el az általunk küldött hitelesítő adatokat @@ -4231,7 +4550,12 @@ Kérlek telepítsd fel kézzel. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL hiba, URL: "%1", hibák: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL hiba figyelmen kívül hagyva, URL: "%1", hibák: "%2" @@ -5525,47 +5849,47 @@ Kérlek telepítsd fel kézzel. Net::Smtp - + Connection failed, unrecognized reply: %1 A csatlakozás sikertelen, ismeretlen válasz: %1 - + Authentication failed, msg: %1 Hitelesítés sikertelen, üzenet: %1 - + <mail from> was rejected by server, msg: %1 <mail from> a szerver által elutasítva, üzenet: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> a szerver által elutasítva, üzenet: %1 - + <data> was rejected by server, msg: %1 <data> a szerver által elutasítva, üzenet: %1 - + Message was rejected by the server, error: %1 Üzenet a szerver által elutasítva, hiba: %1 - + Both EHLO and HELO failed, msg: %1 EHLO és az HELO is sikertelen, üzenet: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Úgy tűnik, hogy az SMTP-szerver nem támogatja az általunk támogatott hitelesítési módok egyikét sem [CRAM-MD5|PLAIN|LOGIN], kihagyva a hitelesítést, tudván, hogy valószínűleg nem fog sikerülni... Szerver hitelesítési módok: %1 - + Email Notification Error: %1 Email értesítés hiba: %1 @@ -5603,299 +5927,283 @@ Kérlek telepítsd fel kézzel. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Speciális beállítások - + Customize UI Theme... Felhasználói felület téma testreszabása... - + Transfer List Átviteli lista - + Confirm when deleting torrents Torrentek törlésének megerősítése - - Shows a confirmation dialog upon pausing/resuming all the torrents - Megerősítő ablak megjelenítése az összes torrent szüneteltetésekor/újraindításakor - - - - Confirm "Pause/Resume all" actions - A "Szünet/Összes folytatása" műveletek megerősítése - - - + Use alternating row colors In table elements, every other row will have a grey background. Váltakozó sorszínezés használata - + Hide zero and infinity values Nulla és végtelen értékek elrejtése - + Always Mindig - - Paused torrents only - Csak szüneteltetett torrentek - - - + Action on double-click Művelet dupla-kattintás esetén - + Downloading torrents: - Torrentek letöltése: + Letöltés alatt lévő torrenteknél: - - - Start / Stop Torrent - Torrent elindítása / leállítása - - - - + + Open destination folder Célkönyvtár megnyitása - - + + No action Nincs művelet - + Completed torrents: Letöltött torrenteknél: - + Auto hide zero status filters Üres szűrők automatikus elrejtése - + Desktop Asztal - + Start qBittorrent on Windows start up qBittorrent indítása a rendszer indulásakor - + Show splash screen on start up Indítókép megjelenítése - + Confirmation on exit when torrents are active Megerősítés kérése kilépéskor, aktív torrentek esetén - + Confirmation on auto-exit when downloads finish Megerősítés kérése automatikus kilépéskor, amikor a letöltések befejeződnek - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>A qBittorrent beállításához a .torrent fájlok és/vagy Magnet linkek<br/> alapértelmezett programjaként, használhatja a <span style=" font-weight:600;">Vezérlőpult</span>, <span style=" font-weight:600;">Alapértelmezett programok</span> részét.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent tartalom elrendezése: - + Original Eredeti - + Create subfolder Almappa létrehozása - + Don't create subfolder Ne hozzon létre almappát - + The torrent will be added to the top of the download queue A torrent a letöltési sor tetejére kerül - + Add to top of queue The torrent will be added to the top of the download queue Hozzáadás a várólista elejére - + When duplicate torrent is being added Amikor duplikált torrent kerül hozzáadásra - + Merge trackers to existing torrent Trackerek egyesítése meglévő torrenthez - + Keep unselected files in ".unwanted" folder Tartsa a nem kiválasztott fájlokat a ".unwanted" mappában - + Add... Hozzáadás… - + Options.. Beállítások… - + Remove Eltávolítás - + Email notification &upon download completion E-mail értesítés a letöltés &végeztével - + + Send test email + Teszt email küldése + + + + Run on torrent added: + Futtatás torrent hozzáadásakor: + + + + Run on torrent finished: + Futtatás torrent befejezésekor: + + + Peer connection protocol: Peer kapcsolati protokoll: - + Any Bármi - + I2P (experimental) I2P (kísérleti) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Ha a &quot;kevert mód&quot; engedélyezve van, akkor az I2P torrentek a trackeren kívül más forrásokból is beszerezhetnek peereket, csatlakozhatnak normál IP címekhez is. Ezzel megszűnik az anonimizálás. Ez a kevert mód akkor lehet hasznos, ha a felhasználó nem érdekelt az I2P anonimizálásban, de csatlakozni akar az I2P peerekhez is.</p></body></html> - - - + Mixed mode Kevert mód - - Some options are incompatible with the chosen proxy type! - Egyes beállítások nem kompatibilisek a kiválasztott proxy típussal! - - - + If checked, hostname lookups are done via the proxy Ha be van jelölve, a kiszolgálónevek a proxyn keresztül lesznek feloldva. - + Perform hostname lookup via proxy Kiszolgálónév lekérdezése proxyn keresztül - + Use proxy for BitTorrent purposes Proxy használata BitTorrent célokra - + RSS feeds will use proxy RSS csatornák proxy szervert fognak használni - + Use proxy for RSS purposes Proxy használata RSS célokra - + Search engine, software updates or anything else will use proxy Keresőmotor, szoftver frissítések és minden más proxyt fog használni - + Use proxy for general purposes Proxy általános célokra történő használata - + IP Fi&ltering &IP-szűrés - + Schedule &the use of alternative rate limits Alternatív sebességkorlátok ütemezése - + From: From start time Ettől: - + To: To end time Eddig: - + Find peers on the DHT network Peerek keresése a DHT hálózaton - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5904,145 +6212,190 @@ Titkosítás megkövetelése: Kapcsolódás csak a protokolltitkosítással rend Titkosítás letiltása: Kapcsolódás csak protokolltitkosítás nélküli peerekhez - + Allow encryption Titkosítás engedélyezése - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">További információ</a>) - + Maximum active checking torrents: Torrentek aktív ellenőrzésének maximális száma: - + &Torrent Queueing &Torrent ütemezés - + When total seeding time reaches Amikor a teljes seed időt eléri - + When inactive seeding time reaches Amikor az inaktív seed időt eléri - - A&utomatically add these trackers to new downloads: - Ezen trackerek a&utomatikus hozzáadása az új letöltésekhez: - - - + RSS Reader RSS Olvasó - + Enable fetching RSS feeds RSS csatornák lekérdezésének engedélyezése - + Feeds refresh interval: Csatornák frissítési időköze: - + Same host request delay: - + Ugyanazon kiszolgáló-kérés késleltetése: - + Maximum number of articles per feed: Csatornánként elemek maximum száma: - - - + + + min minutes perc - + Seeding Limits Seedelési korlátok - - Pause torrent - Torrent szüneteltetése - - - + Remove torrent Torrent eltávolítása - + Remove torrent and its files Torrent és fájljai eltávolítása - + Enable super seeding for torrent Super seed engedélyezése a torrentnél - + When ratio reaches Amikor az arányt eléri - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Torrent leállítása + + + + A&utomatically append these trackers to new downloads: + Ezen trackerek a&utomatikus hozzáadása az új letöltésekhez: + + + + Automatically append trackers from URL to new downloads: + Az URL-en található trackerek automatikus hozzáadása az új letöltésekhez: + + + + URL: + URL: + + + + Fetched trackers + Lekért trackerek + + + + Search UI + Keresési felület + + + + Store opened tabs + Megnyitott lapok tárolása + + + + Also store search results + Tárolja a keresési találatokat is + + + + History length + Előzmények hossza + + + RSS Torrent Auto Downloader Automata RSS torrent letöltő - + Enable auto downloading of RSS torrents Az RSS torrentek automatikus letöltésének engedélyezése - + Edit auto downloading rules... Automatikus letöltési szabályok szerkesztése… - + RSS Smart Episode Filter RSS okos epizód szűrő - + Download REPACK/PROPER episodes REPACK/PROPER epizódok letöltése - + Filters: Szűrők: - + Web User Interface (Remote control) Webes felhasználói felület (Távoli vezérlés) - + IP address: IP-cím: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6051,42 +6404,37 @@ Határozzon meg egy IPv4 vagy IPv6 címet. Megadhatja "0.0.0.0"-t bár vagy "::"-t bármely IPv6 címhez, vagy használja a "*"-t bármely IPv4-hez és IPv6-hoz egyaránt. - + Ban client after consecutive failures: Kliens tiltása egymást követő hibák után: - + Never Soha - + ban for: tiltás: - + Session timeout: Munkamenet időtúllépés: - + Disabled Letiltva - - Enable cookie Secure flag (requires HTTPS) - Secure jelző engedélyezése a sütiknél (HTTPS szükséges) - - - + Server domains: - Kiszolgáló domainek: + Szerver domainek: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6094,447 +6442,488 @@ you should put in domain names used by WebUI server. Use ';' to split multiple entries. Can use wildcard '*'. Fehérlista a HTTP Kiszolgáló fejléc értékek szűrésére. A DNS újrakötési támadások ellen, -írja be a WebUI kiszolgáló domain neveit. +írja be a WebUI szerver domain neveit. Használja a ';' karaktert az elválasztásra, ha több is van. A '*' helyettesítő karakter is használható. - + &Use HTTPS instead of HTTP &HTTPS használata HTTP helyett - + Bypass authentication for clients on localhost Hitelesítés mellőzése a helyi gépen lévő klienseknél - + Bypass authentication for clients in whitelisted IP subnets Hitelesítés mellőzése a fehérlistára tett IP alhálózatokban lévő klienseknél - + IP subnet whitelist... IP alhálózat fehérlista… - + + Use alternative WebUI + Alternatív WebUI használata + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Adjon meg reverse proxy IP-címeket (vagy alhálózatokat, pl. 0.0.0.0/24) a továbbított kliens cím használatához (X-Forwarded-For attribútum). Használja a ';' karaktert a felosztáshoz, ha több bejegyzést ad meg. - + Upda&te my dynamic domain name &Dinamikus domain név frissítése - + Minimize qBittorrent to notification area qBittorrent értesítési területre helyezése tálcára helyezéskor - + + Search + Keresés + + + + WebUI + WebUI + + + Interface Felület - + Language: Nyelv: - + + Style: + Stílus: + + + + Color scheme: + Színséma: + + + + Stopped torrents only + Csak leállított torrentek + + + + + Start / stop torrent + Torrent elindítása / leállítása + + + + + Open torrent options dialog + Torrent opciók megnyitása + + + Tray icon style: Tálcaikon stílusa: - - + + Normal Normál - + File association Fájl társítás - + Use qBittorrent for .torrent files qBittorrent használata a .torrent fájlokhoz - + Use qBittorrent for magnet links qBittorrent használata a magnet linkekhez - + Check for program updates Programfrissítések keresése - + Power Management Energiagazdálkodás - + + &Log Files + &Napló fájlok + + + Save path: Mentés helye: - + Backup the log file after: Naplófájl biztonsági mentése ennyi után: - + Delete backup logs older than: Naplófájlok biztonsági mentéseinek törlése ennyi után: - + + Show external IP in status bar + Külső IP megjelenítése az állapotsoron + + + When adding a torrent Torrent hozzáadásakor - + Bring torrent dialog to the front Torrent párbeszédablak előrehozása - + + The torrent will be added to download list in a stopped state + A torrent leállított állapotban lesz hozzáadva a letöltési listához + + + Also delete .torrent files whose addition was cancelled Azon .torrent fájlok is törlődjenek, amelyek hozzáadása meg lett szakítva - + Also when addition is cancelled Akkor is, ha meg lett szakítva a hozzáadás - + Warning! Data loss possible! Figyelmeztetés! Adatvesztés lehetséges! - + Saving Management Mentéskezelés - + Default Torrent Management Mode: Alapértelmezett torrentkezelési mód: - + Manual Kézi - + Automatic Automatikus - + When Torrent Category changed: Amikor a torrent kategória megváltozik: - + Relocate torrent Torrent áthelyezése - + Switch torrent to Manual Mode Torrent kézi módba váltása - - + + Relocate affected torrents Érintett torrentek áthelyezése - - + + Switch affected torrents to Manual Mode Érintett torrentek kézi módba váltása - + Use Subcategories Alkategóriák használata - + Default Save Path: Alapértelmezett mentési útvonal: - + Copy .torrent files to: .torrent fájlok másolása ide: - + Show &qBittorrent in notification area &qBittorrent megjelenítése az értesítési területen - - &Log file - &Naplófájl - - - + Display &torrent content and some options &Torrent tartalom és néhány beállítás megjelenítése - + De&lete .torrent files afterwards Ezután törölje a .torrent fájlokat - + Copy .torrent files for finished downloads to: Elkészült letöltések .torrent fájlainak másolása a következő helyre: - + Pre-allocate disk space for all files Minden fájl helyének lefoglalása előre - + Use custom UI Theme Egyéni felhasználói felület téma használata - + UI Theme file: Felhasználói felület téma fájl: - + Changing Interface settings requires application restart A felület beállításainak módosításához az alkalmazás újraindítása szükséges - + Shows a confirmation dialog upon torrent deletion Torrent törlésekor megerősítő párbeszédpanel megjelenítése - - + + Preview file, otherwise open destination folder Fájl előnézet, egyébként nyissa meg a célmappát - - - Show torrent options - Torrent opciók megjelenítése - - - + Shows a confirmation dialog when exiting with active torrents Kilépés esetén megerősítő párbeszédpanel megjelenítése, ha vannak aktív torrentek - + When minimizing, the main window is closed and must be reopened from the systray icon Minimalizáláskor a főablak bezáródik, és újra kell nyitni a tálcaikonról - + The systray icon will still be visible when closing the main window A tálcaikon továbbra is látható lesz a főablak bezárásakor - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window A qBittorrent értesítési területre helyezése bezáráskor - + Monochrome (for dark theme) Monokróm (sötét témához) - + Monochrome (for light theme) Monokróm (világos témához) - + Inhibit system sleep when torrents are downloading Számítógép alvó üzemmód tiltása ha van letöltésben lévő torrent - + Inhibit system sleep when torrents are seeding Számítógép alvó üzemmód tiltása ha van seedelt torrent - + Creates an additional log file after the log file reaches the specified file size További naplófájlt hoz létre, ha a naplófájl eléri a megadott méretet - + days Delete backup logs older than 10 days nap - + months Delete backup logs older than 10 months hónap - + years Delete backup logs older than 10 years év - + Log performance warnings Teljesítmény figyelmeztetések naplózása - - The torrent will be added to download list in a paused state - A torrent szüneteltetve adódik hozzá a letöltési listához - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ne induljon el automatikusan a letöltés - + Whether the .torrent file should be deleted after adding it Törlésre kerüljön-e a .torrent fájl a hozzáadás után - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. A töredezettség minimalizálása érdekében a letöltés megkezdése előtt foglalja le a teljes fájlméretet a lemezen. Csak HDD-k esetén hasznos. - + Append .!qB extension to incomplete files .!qB kiterjesztés használata befejezetlen fájloknál - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Ha egy torrent letöltésre kerül, akkor felajánlja a benne található összes .torrent fájl hozzáadását - + Enable recursive download dialog Az ismétlődő letöltési párbeszédablak engedélyezése - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatikus: Különböző torrenttulajdonságok (példáué a mentési útvonal) a hozzátartozó kategória alapján kerülnek eldöntésre Kézi: A különböző torrenttulajdonságokat (például a mentési útvonalat) kézzel kell megadni - + When Default Save/Incomplete Path changed: Amikor az alapértelmezett mentési/befejezetlen elérési útvonal megváltozik: - + When Category Save Path changed: Ha a kategória mentési útja megváltozott: - + Use Category paths in Manual Mode Használja a kategória elérési útjait kézi módban - + Resolve relative Save Path against appropriate Category path instead of Default one Oldja fel a relatív mentési útvonalat a megfelelő kategória elérési útjával az alapértelmezett helyett - + Use icons from system theme Rendszer téma ikonok használata - + Window state on start up: Ablak állapota induláskor: - + qBittorrent window state on start up qBittorrent ablak állapota induláskor - + Torrent stop condition: Torrent stop feltétel: - - + + None Nincs - - + + Metadata received Metaadat fogadva - - + + Files checked Fájlok ellenőrizve - + Ask for merging trackers when torrent is being added manually Kérdezzen rá a trackerek összevonására, amikor a torrent kézzel kerül hozzáadásra - + Use another path for incomplete torrents: Használjon másik elérési utat a befejezetlen torrentekhez: - + Automatically add torrents from: Torrentek automatikus hozzáadása innen: - + Excluded file names Kizárt fájlnevek - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6563,770 +6952,811 @@ readme.txt: pontos fájlnév szűrése. readme[0-9].txt: 'readme1.txt', 'readme2.txt' szűrő, de nem 'readme10.txt'. - + Receiver Fogadó - + To: To receiver Neki: - + SMTP server: - SMTP-kiszolgáló: + SMTP-szerver: - + Sender Küldő - + From: From sender Feladó: - + This server requires a secure connection (SSL) - Ez a kiszolgáló biztonságos kapcsolatot (SSL) igényel + Ez a szerver biztonságos kapcsolatot (SSL) igényel - - + + Authentication Hitelesítés - - - - + + + + Username: Felhasználónév: - - - - + + + + Password: Jelszó: - + Run external program Külső program futtatása - - Run on torrent added - Futtatás torrent hozzáadásakor - - - - Run on torrent finished - Futtatás torrent befejezésekor - - - + Show console window Konzolablak megjelenítése - + TCP and μTP TCP és μTP - + Listening Port Használt Port - + Port used for incoming connections: Port a bejövő kapcsolatokhoz: - + Set to 0 to let your system pick an unused port Állítsa 0 -ra, hogy a rendszer válasszon egy nem használt portot - + Random Véletlenszerű - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP használata a routeren a porttovábbításhoz - + Connections Limits Kapcsolati korlátok - + Maximum number of connections per torrent: Torrentenkénti kapcsolatok maximális száma: - + Global maximum number of connections: Globális kapcsolatok maximális száma: - + Maximum number of upload slots per torrent: Torrentenkénti feltöltési szálak maximális száma: - + Global maximum number of upload slots: Globális feltöltési szálak maximális száma: - + Proxy Server - Proxy kiszolgáló + Proxy szerver - + Type: Típus: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Kiszolgáló: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections - Különben a proxy csak a tracker kapcsolatok esetén kerül használatra + Különben a proxy szerver csak a tracker kapcsolatok esetén kerül használatra - + Use proxy for peer connections Proxy használata peer kapcsolatokhoz - + A&uthentication &Hitelesítés - - Info: The password is saved unencrypted - Infó: Jelszó titkosítás nélkül kerül elmentésre - - - + Filter path (.dat, .p2p, .p2b): Szűrő útvonala (.dat, .p2p, .p2b): - + Reload the filter Szűrő újratöltése - + Manually banned IP addresses... Kézzel tiltott IP-címek… - + Apply to trackers Alkalmazás a trackerekre - + Global Rate Limits Globális sebességkorlátok - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Feltöltés: - - + + Download: Letöltés: - + Alternative Rate Limits Alternatív sebességkorlátok - + Start time Kezdési idő - + End time Befejezési idő - + When: Ekkor: - + Every day Minden nap - + Weekdays Hétköznapokon - + Weekends Hétvégéken - + Rate Limits Settings Sebességkorlátok beállítása - + Apply rate limit to peers on LAN Sebességkorlátok alkalmazása LAN peerekre is - + Apply rate limit to transport overhead Sebességkorlát alkalmazása a fejléc (overhead) többletre is. - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Ha a "kevert mód" engedélyezve van, az I2P torrentek más forrásokból is kereshetnek peereket a trackeren kívül, és csatlakozhatnak normál IP-khez, anélkül hogy bármilyen anonimizációt biztosítanának. Ez hasznos lehet, ha a felhasználó nem tart igényt az I2P anonimizációjára, de továbbra is szeretne I2P peerekhez kapcsolódni.</p></body></html> + + + Apply rate limit to µTP protocol Sebességkorlát alkalmazása µTP protokollra is - + Privacy Magánszféra - + Enable DHT (decentralized network) to find more peers DHT (decentralizált hálózat) engedélyezése, hogy több peert találjon - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Peercsere kompatibilis kliensekkel (µTorrent, Vuze, …) - + Enable Peer Exchange (PeX) to find more peers Peercsere (PeX) engedélyezése, hogy több peert találjon - + Look for peers on your local network Peerek keresése a helyi hálózaton - + Enable Local Peer Discovery to find more peers Helyi peerek felkutatásának (LPD) engedélyezése, hogy több peert találjon - + Encryption mode: Titkosítás módja: - + Require encryption Titkosítás megkövetelése - + Disable encryption Titkosítás kikapcsolása - + Enable when using a proxy or a VPN connection Bekapcsolás proxy vagy VPN kapcsolat esetén - + Enable anonymous mode Anonymous mód engedélyezése - + Maximum active downloads: Aktív letöltések maximális száma: - + Maximum active uploads: Aktív feltöltések maximális száma: - + Maximum active torrents: Aktív torrentek maximális száma: - + Do not count slow torrents in these limits Lassú torrentek figyelmen kívül hagyása ezeknél a korlátoknál - + Upload rate threshold: Feltöltési sebesség küszöb: - + Download rate threshold: Letöltési sebesség küszöb: - - - - + + + + sec seconds mp - + Torrent inactivity timer: Torrent inaktivitási időzítő: - + then aztán - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP használata a porttovábbításhoz a routeremtől - + Certificate: Tanúsítvány: - + Key: Kulcs: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Információk a tanúsítványokról</a> - + Change current password Jelenlegi jelszó megváltoztatása - - Use alternative Web UI - Alternatív Web UI használata - - - + Files location: Fájlok helye: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Alternative WebUI-k listája</a> + + + Security Biztonság - + Enable clickjacking protection Clickjacking védelem engedélyezés - + Enable Cross-Site Request Forgery (CSRF) protection Engedélyezze a kereszt webhely kérelem hamisítás (CSRF) védelmet - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + A Secure jelző engedélyezése a sütiknél (HTTPS vagy helyi kapcsolat szükséges) + + + Enable Host header validation Kiszolgáló fejléc érvényesítés engedélyezése - + Add custom HTTP headers Egyéni HTTP fejlécek hozzáadása - + Header: value pairs, one per line Fejléc: értékpárok, soronként egy - + Enable reverse proxy support Fordított proxy támogatás engedélyezése - + Trusted proxies list: Megbízott proxy kiszolgálók listája: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Fordított proxy beállítási példák</a> + + + Service: Szolgáltatás: - + Register Regisztráció - + Domain name: Domain név: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ezeket a beállításokat bekapcsolva, <strong>véglegesen elveszítheti</strong> a .torrent fájljait! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Ha engedélyezi a második lehetőséget (&ldquo;Akkor is, ha meg lett szakítva a hozzáadás&rdquo;), akkor a .torrent fájl <strong>törölve lesz</strong>, akkor is, ha a &ldquo;<strong>Mégse</strong>&rdquo; gombot nyomja meg a &ldquo;Torrent hozzáadása&rdquo; párbeszédablakon - + Select qBittorrent UI Theme file qBittorrent felület téma fájl kiválasztása - + Choose Alternative UI files location Válasszon helyet az alternatív felhasználóifelület-fájloknak - + Supported parameters (case sensitive): Támogatott paraméterek (kis- és nagybetű különbözik): - + Minimized Tálcán - + Hidden Rejtve - + Disabled due to failed to detect system tray presence Letiltva, mert nem sikerült észlelni a rendszertálca jelenlétét - + No stop condition is set. Nincs stop feltétel beállítva. - + Torrent will stop after metadata is received. Torrent megáll a metaadat fogadása után. - Torrents that have metadata initially aren't affected. - Nem érintettek azok a torrentek melyek kezdéskor metaadattal rendelkeznek. - - - + Torrent will stop after files are initially checked. Torrent meg fog állni a fájlok kezdeti ellenőrzése után. - + This will also download metadata if it wasn't there initially. Ez a metaadatot is le fogja tölteni ha az, kezdéskor nem volt jelen. - + %N: Torrent name %N: Torrent neve - + %L: Category %L: Kategória - + %F: Content path (same as root path for multifile torrent) %F: Tartalom útvonala (többfájlok torrenteknél ugyanaz mint a gyökér útvonal) - + %R: Root path (first torrent subdirectory path) %R: Gyökér útvonal (első torrent alkönyvtár útvonala) - + %D: Save path %D: Mentés útvonala - + %C: Number of files %C: Fájlok száma - + %Z: Torrent size (bytes) %Z: Torrent mérete (bájtok) - + %T: Current tracker %T: Jelenlegi tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tipp: Tegye a paramétereket idézőjelbe, hogy elkerülje a szöveg üres karaktereknél történő kettévágását (például "%N") - + + Test email + Teszt email + + + + Attempted to send email. Check your inbox to confirm success + Email küldés megkísérelve. Ellenőrizze a megadott email fiókot a sikeres küldés megerősítéséhez. + + + (None) (Nincs) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Egy torrent lassúnak lesz ítélve, ha a le- és feltöltési sebessége ezen értékek alatt marad a "torrent inaktivítási időzítő"-ben meghatározott ideig. - + Certificate Tanúsítvány - + Select certificate Tanúsítvány kiválasztása - + Private key Privát kulcs - + Select private key Privát kulcs kiválasztása - + WebUI configuration failed. Reason: %1 WebUI konfiguráció sikertelen. Ok: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + A Windows sötét módjával való legjobb kompatibilitás érdekében a %1 ajánlott. + + + + System + System default Qt style + Rendszer + + + + Let Qt decide the style for this system + Hagyd, hogy a Qt döntse el a stílust ehhez a rendszerhez. + + + + Dark + Dark color scheme + Sötét + + + + Light + Light color scheme + Világos + + + + System + System color scheme + Rendszer + + + Select folder to monitor Válasszon egy megfigyelni kívánt könyvtárat - + Adding entry failed Bejegyzés hozzáadása sikertelen - + The WebUI username must be at least 3 characters long. A WebUI felhasználónévnek legalább 3 karakter hosszúnak kell lennie. - + The WebUI password must be at least 6 characters long. A WebUI jelszónak legalább 6 karakter hosszúnak kell lennie. - + Location Error Hely hiba - - + + Choose export directory Export könyvtár kiválasztása - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Ha ezek a beállítások be vannak kapcsolva, akkor a qBittorrent <strong>törli</strong> a .torrent fájlokat, ha a sikeresen hozzáadta (első lehetőség) vagy nem adta hozzá (második lehetőség) a letöltési sorhoz. Ez <strong>nem csak</strong> a &ldquo;Torrent hozzáadása&rdquo; menüművelettel megnyitott fájlokra érvényes, hanem a <strong>fájltípus társításokon</strong> keresztül megnyitottakra is - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent felület téma fájl (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Címkék (vesszővel elválasztva) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (vagy '-' ha nem érhető el) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (vagy '-' ha nem érhető el) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent azonosító (vagy sha-1 info hash v1 torrenthez, vagy csonkolt sha-256 info hash v2/hibrid torrenthez) - - - + + + Choose a save directory Mentési könyvtár választása - + Torrents that have metadata initially will be added as stopped. - + Az eredetileg metaadatokkal rendelkező torrentek leállítva kerülnek hozzáadásra. - + Choose an IP filter file Válassz egy IP-szűrő fájlt - + All supported filters Minden támogatott szűrő - + The alternative WebUI files location cannot be blank. Az alternatív WebUI-fájlok helye nem lehet üres. - + 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 IP-szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Preferences Beállítások - + Time Error Idő hiba - + The start time and the end time can't be the same. A kezdés és befejezés ideje nem lehet ugyanaz. - - + + Length Error Hossz hiba @@ -7334,241 +7764,246 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt' szűrő, de ne PeerInfo - + Unknown Ismeretlen - + 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 (peer) és nem elfojtott (helyi) - + 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) - + Optimistic unchoke Optimista elfojtásmegszüntetés - + Peer snubbed Peer elnémítva - + Incoming connection Bejövő kapcsolat - + Peer from DHT Peer DHT hálózatból - + Peer from PEX Peer PEX hálózatból - + Peer from LSD Peer LSD hálózatból - + Encrypted traffic Titkosított forgalom - + Encrypted handshake Titkosított kézfogás + + + Peer is using NAT hole punching + A peer NAT hole punching-ot használ + PeerListWidget - + Country/Region Ország/Régió - + IP/Address IP/Cím - + Port Port - + Flags Jelzők - + Connection Kapcsolat - + Client i.e.: Client application Kliens - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 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 - + Files i.e. files that are being downloaded right now Fájlok - + Column visibility Oszlop láthatósága - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére - + Add peers... Peerek hozzáadása... - - + + Adding peers Peerek hozzáadása - + Some peers cannot be added. Check the Log for details. Néhány peert nem lehetett hozzáadni. Ellenőrizze a naplót a részletekért. - + Peers are added to this torrent. Peerek hozzáadva ehhez a torrenthez. - - + + Ban peer permanently Peer kitiltása végleg - + Cannot add peers to a private torrent Nem lehet peereket hozzáadni egy privát torrenthez - + Cannot add peers when the torrent is checking A torrent ellenőrzése közben nem lehet peereket hozzáadni - + Cannot add peers when the torrent is queued Nem lehet peereket hozzáadni, ha a torrent sorban áll - + No peer was selected Egyetlen peer sem lett kijelölve - + Are you sure you want to permanently ban the selected peers? Biztos vagy benne, hogy végleg letiltod a kiválasztott peereket? - + Peer "%1" is manually banned Peer "%1" manuálisan tiltva - + N/A N/A - + Copy IP:port IP:port másolása @@ -7586,7 +8021,7 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt' szűrő, de ne Hozzáadandó peerek listája (soronként egy): - + Format: IPv4:port / [IPv6]:port Formátum: IPv4:port / [IPv6]:port @@ -7627,27 +8062,27 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt' szűrő, de ne PiecesBar - + Files in this piece: Fájlok ebben a szeletben: - + File in this piece: Fájl ebben a szeletben: - + File in these pieces: Fájl ezekben a szeletekben: - + Wait until metadata become available to see detailed information Várja meg, amíg a metaadat elérhetővé válik a részletes információk megtekintéséhez - + Hold Shift key for detailed information Részletes információkért tartsa lenyomva a Shift billentyűt @@ -7660,58 +8095,58 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt' szűrő, de ne Keresőmodulok - + Installed search plugins: Telepített keresőmodulok: - + Name Név - + Version Verzió - + Url URL - - + + Enabled Engedélyezve - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Figyelmeztetés: Győződjön meg róla, hogy a keresőmotorok bármelyikéből származó torrentek letöltésekor betartja az ország szerzői jogi törvényeit. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> További keresőmodulok tölthetőek le innen: <a href="https://plugins.qbittorrent.org">https://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ás @@ -7831,98 +8266,65 @@ Azok a modulok letiltásra kerültek. Modul forrása - + Search plugin source: Keresőmodul forrása: - + Local file Helyi fájl - + Web link Web link - - PowerManagement - - - qBittorrent is active - A qBittorrent aktív - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Az energiakezelés megfelelő D-Bus interfészt talált. Interfész: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Energiagazdálkodási hiba. Nem található megfelelő D-Bus interfész. - - - - - - Power management error. Action: %1. Error: %2 - Energiagazdálkodási hiba. Művelet: %1. Hiba: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Energiagazdálkodási váratlan hiba. Állapot: %1. Hiba: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: A következő fájlok "%1" torrentből támogatják az előnézetet, kérem válasszon egyet közülük: - + Preview Előnézet - + Name Név - + Size Méret - + Progress Folyamat - + Preview impossible Az előnézet lehetetlen - + Sorry, we can't preview this file: "%1". Sajnáljuk, ezt a fájlt nem lehet előnézni: "%1" - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére @@ -7935,27 +8337,27 @@ Azok a modulok letiltásra kerültek. Private::FileLineEdit - + Path does not exist Útvonal nem létezik - + Path does not point to a directory Útvonal nem mutat könyvtárra - + Path does not point to a file Útvonal nem mutat fájlra - + Don't have read permission to path Nincs olvasási jogosultság az elérési úthoz - + Don't have write permission to path Nincs írási jogosultság az elérési úthoz @@ -7996,12 +8398,12 @@ Azok a modulok letiltásra kerültek. PropertiesWidget - + Downloaded: Letöltve: - + Availability: Elérhetőség: @@ -8016,53 +8418,53 @@ Azok a modulok letiltásra kerültek. Átvitel - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktív idő: - + ETA: Várható befejezési idő: - + Uploaded: Feltöltve: - + Seeds: Seedek: - + Download Speed: Letöltési sebesség: - + Upload Speed: Feltöltési sebesség: - + Peers: Peerek: - + Download Limit: Letöltési korlát: - + Upload Limit: Feltöltési korlát: - + Wasted: Elpazarolva: @@ -8072,193 +8474,220 @@ Azok a modulok letiltásra kerültek. Kapcsolatok: - + Information Információ - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Megjegyzés: - + Select All Összes kiválasztása - + Select None Egyiket sem - + Share Ratio: Megosztási arány: - + Reannounce In: Újrajelentés: - + Last Seen Complete: Legutóbb befejezettként látva: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Arány / Aktív idő (hónapokban), jelzi, mennyire népszerű a torrent + + + + Popularity: + Népszerűség: + + + Total Size: Teljes méret: - + Pieces: Szeletek: - + Created By: Létrehozta: - + Added On: Hozzáadva: - + Completed On: Elkészült ekkor: - + Created On: Létrehozva: - + + Private: + Privát + + + Save Path: Mentés útvonala: - + 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 ebben a munkamenetben) - - + + + N/A N/A - + + Yes + Igen + + + + No + Nem + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedelve: %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 (összesen %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (átlagosan %2) - - New Web seed - Új Web seed + + Add web seed + Add HTTP source + Web seed hozzáadása - - Remove Web seed - Web seed eltávolítása + + Add web seed: + Web seed hozzaádása: - - Copy Web seed URL - Web seed URL másolása + + + This web seed is already in the list. + Ez a web seed már a listában van. - - Edit Web seed URL - Web seed URL szerkesztése - - - + Filter files... Fájlok szűrése... - + + Add web seed... + Web seed hozzáadása... + + + + 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... + + + Speed graphs are disabled A sebesség grafikonok le vannak tiltva - + You can enable it in Advanced Options A speciális beállításokban engedélyezheted - - 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: @@ -8266,33 +8695,33 @@ Azok a modulok letiltásra kerültek. RSS::AutoDownloader - - + + Invalid data format. Érvénytelen adatformátum. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nem sikerült menteni az RSS AutoLetöltő adatait ide: %1. Hiba: %2 - + Invalid data format Érvénytelen adatformátum - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS elem '%1' elfogadásra került '%2' szabály által. Torrent hozzáadásának megkísérlése... - + Failed to read RSS AutoDownloader rules. %1 Nem sikerült betölteni az RSS AutoLetöltő szabályokat. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nem sikerült betölteni az RSS AutoLetöltő szabályokat. Indok: %1 @@ -8300,22 +8729,22 @@ Azok a modulok letiltásra kerültek. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 A következő helyen lévő RSS csatorna letöltése sikertelen: '%1'. Indok: %2 - + RSS feed at '%1' updated. Added %2 new articles. Az '%1'-en található RSS csatorna frissítve. %2 új elem lett hozzáadva. - + Failed to parse RSS feed at '%1'. Reason: %2 Nem sikerült a következő RSS csatorna olvasása '%1'. Indok: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. '%1' RSS csatorna sikeresen letöltve. Feldolgozás megkezdve. @@ -8351,12 +8780,12 @@ Azok a modulok letiltásra kerültek. RSS::Private::Parser - + Invalid RSS feed. Érvénytelen RSS-csatorna. - + %1 (line: %2, column: %3, offset: %4). %1 (sor: %2, oszlop: %3, eltolás: %4). @@ -8364,103 +8793,144 @@ Azok a modulok letiltásra kerültek. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nem sikerült az RSS folyamat konfiguráció mentése. Fájl: "%1". Hiba: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Nem sikerült menteni az RSS munkamenet fájlt. Fájl: "%1". Hiba: "%2" - - + + RSS feed with given URL already exists: %1. Már létezik RSS-csatorna a megadott URL-el: %1. - + Feed doesn't exist: %1. RSS csatorna nem létezik: %1. - + Cannot move root folder. Gyökérkönyvtár nem helyezhető át. - - + + Item doesn't exist: %1. Elem nem létezik: %1. - - Couldn't move folder into itself. - Nem lehetett áthelyezni a mappát önmagába. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Gyökérkönyvtár nem törölhető. - + Failed to read RSS session data. %1 Nem sikerült beolvasni az RSS munkamenet adatokat. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Nem sikerült feldolgozni az RSS munkamenet adatokat. Fájl: "%1". Hiba: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Nem sikerült betölteni az RSS munkamenet adatot. Fájl: "%1". Hiba: "Érvénytelen adat formátum." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nem sikerült betölteni az RSS csatornát. Csatorna: "%1". Indok: URL szükséges. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Nem sikerült az RSS csatorna betöltése. Forrás: "%1". Indok: UID érvénytelen. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Duplázott RSS csatorna észlelve. UID: "%1". Hiba: Konfiguráció sérültnek tűnik. - + Couldn't load RSS item. Item: "%1". Invalid data format. Nem sikerült az RSS elem betöltése. Elem: "%1". Érvénytelen adat formátum. - + Corrupted RSS list, not loading it. Sérült RSS-lista, nem lesz betöltve. - + Incorrect RSS Item path: %1. Helytelen RSS-elem útvonal: %1. - + RSS item with given path already exists: %1. Már létezik RSS-elem a megadott útvonalon: %1. - + Parent folder doesn't exist: %1. Szülőkönyvtár nem létezik: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + RSS csatorna nem létezik: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Frissítési időköz: + + + + sec + mp + + + + Default + Alapértelmezett + + RSSWidget @@ -8480,8 +8950,8 @@ Azok a modulok letiltásra kerültek. - - + + Mark items read Elemek olvasottnak jelölése @@ -8506,132 +8976,115 @@ Azok a modulok letiltásra kerültek. Torrentek: (dupla kattintás a letöltéshez) - - + + Delete Törlés - + Rename... Átnevezés… - + Rename Átnevezés - - + + Update Frissítés - + New subscription... Új feliratkozás… - - + + Update all feeds Összes csatorna frissítése - + Download torrent Torrent letöltése - + Open news URL Hírek URL megnyitása - + Copy feed URL Csatorna URL másolása - + New folder... Új mappa… - - Edit feed URL... - Csatorna URL szerkesztése... + + Feed options... + - - Edit feed URL - Csatorna URL szerkesztése - - - + Please choose a folder name Kérem válasszon egy mappanevet - + Folder name: Mappanév: - + New folder Új mappa - - - Please type a RSS feed URL - Kérem írjon be egy RSS csatorna URL-t - - - - - Feed URL: - Csatorna URL: - - - + Deletion confirmation Törlés megerősítése - + Are you sure you want to delete the selected RSS feeds? Biztos, hogy törli a kiválasztott RSS-csatornákat? - + Please choose a new name for this RSS feed Válasszon új nevet ehhez az RSS-csatornához - + New feed name: Új csatornanév: - + Rename failed Átnevezés sikertelen - + Date: Dátum: - + Feed: Csatorna: - + Author: Szerző: @@ -8639,38 +9092,38 @@ Azok a modulok letiltásra kerültek. SearchController - + Python must be installed to use the Search Engine. A keresőmotor használatához telepíteni kell a Pythont. - + Unable to create more than %1 concurrent searches. Nem lehet több, mint 1% egyidejű keresést létrehozni. - - + + Offset is out of range Az eltolás tartományon kívül van - + All plugins are already up to date. Az összes modul már naprakész. - + Updating %1 plugins %1 modul frissítése - + Updating plugin %1 1% plugin frissítése - + Failed to check for plugin updates: %1 Nem sikerült ellenőrizni a bővítmény frissítéseit: %1 @@ -8745,132 +9198,142 @@ Azok a modulok letiltásra kerültek. Méret: - + Name i.e: file name Név - + Size i.e: file size Méret - + Seeders i.e: Number of full sources Seederek - + Leechers i.e: Number of partial sources Leecherek - - Search engine - Keresőmotor - - - + Filter search results... Keresési találatok szűrése… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Találatok (<i>%1</i> / <i>%2</i> megjelenítve): - + Torrent names only Csak a torrentek nevében - + Everywhere Mindenhol - + Use regular expressions Reguláris kifejezések használata - + Open download window Nyissa meg a letöltési ablakot - + Download Letöltés - + Open description page Adatlap megnyitása - + Copy Másolás - + Name Név - + Download link Letöltési link - + Description page URL Adatlap link - + Searching... Keresés… - + Search has finished A keresés befejeződött - + Search aborted Keresés megszakítva - + An error occurred during search... Hiba történt a keresés közben… - + Search returned no results A keresés nem hozott eredményt - + + Engine + Motor + + + + Engine URL + Motor URL + + + + Published On + Közzétéve + + + Column visibility Oszlop láthatósága - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére @@ -8878,104 +9341,104 @@ Azok a modulok letiltásra kerültek. SearchPluginManager - + Unknown search engine plugin file format. Ismeretlen keresőmotor-modul fájlformátum. - + Plugin already at version %1, which is greater than %2 Kiegészítő már %1 verzió, ami nagyobb mint %2 - + A more recent version of this plugin is already installed. Ennek a modulnak már egy frissebb verziója telepítve van. - + Plugin %1 is not supported. %1 kiegészítő nem támogatott. - - + + Plugin is not supported. A kiegészítő nem támogatott. - + Plugin %1 has been successfully updated. %1 kiegészítő sikeresen frissítve. - + All categories Összes kategória - + Movies Filmek - + TV shows TV műsorok - + Music Zenék - + Games Játékok - + Anime Animék - + Software Szoftverek - + Pictures Képek - + Books Könyvek - + Update server is temporarily unavailable. %1 - Frissítési kiszolgáló ideiglenesen nem érhető el. %1 + Frissítési szerver ideiglenesen nem érhető el. %1 - - + + Failed to download the plugin file. %1 Nem sikerült letölteni a kiegészítő fájlt. %1 - + Plugin "%1" is outdated, updating to version %2 Kiegészítő "%1" elvault, frissítés a %2 verzióra - + Incorrect update info received for %1 out of %2 plugins. Érvénytelen frissítési információ érkezett %1 / %2 modulról. - + Search plugin '%1' contains invalid version string ('%2') A '%1' kereső kiegészítő érvénytelen verzió nevet tartalmaz ('%2') @@ -8985,114 +9448,145 @@ Azok a modulok letiltásra kerültek. - - - - Search Keresés - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nincsenek keresőmodulok telepítve. Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyomásával telepíthet néhányat. - + Search plugins... Modulok keresése… - + A phrase to search for. Keresendő kifejezés. - + Spaces in a search term may be protected by double quotes. A keresési kifejezésben lévő szóközök idézőjelekkel tarthatóak meg. - + Example: Search phrase example Példa: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: keresés erre: <b>foo bar</b> - + All plugins Minden modul - + Only enabled Csak az engedélyezettek - + + + Invalid data format. + Érvénytelen adatformátum. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: keresés erre: <b>foo</b> és <b>bar</b> - + + Refresh + Frissítés + + + Close tab Fül bezárása - + Close all tabs Az összes fül bezárása - + Select... Kiválasztás… - - - + + Search Engine Keresőmotor - + + Please install Python to use the Search Engine. Keresőmotor használatához kérem telepítse a Pythont. - + Empty search pattern Üres keresési minta - + Please type a search pattern first Kérem adjon meg egy keresési mintát először - + + Stop Leállítás + + + SearchWidget::DataStorage - - Search has finished - A keresés befejeződött + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Nem sikerült betölteni a keresési felület mentett állapotadatait. Fájl: "%1". Hiba: "%2". - - Search has failed - A keresés sikertelen + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Nem sikerült betölteni a mentett keresési eredményeket. Lap: "%1". Fájl: "%2". Hiba: "%3". + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Nem sikerült menteni a keresési felület állapotát. Fájl: "%1". Hiba: "%2". + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Nem sikerült menteni a keresési eredményeket. Lap: "%1". Fájl: "%2". Hiba: "%3". + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Nem sikerült betölteni a keresési felület előzményeit. Fájl: "%1". Hiba: "%2". + + + + Failed to save search history. File: "%1". Error: "%2" + Nem sikerült menteni a keresési előzményeket. Fájl: "%1". Hiba: "%2". @@ -9205,34 +9699,34 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo - + Upload: Feltöltés: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Letöltés: - + Alternative speed limits Alternatív sebességkorlátok @@ -9424,32 +9918,32 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo Átlagos idő a várakozási sorban: - + Connected peers: Kapcsolódott peerek: - + All-time share ratio: Összesített megosztási arány: - + All-time download: Összesített letöltés: - + Session waste: Munkamenet selejtje: - + All-time upload: Összesített feltöltés: - + Total buffer size: Teljes pufferméret: @@ -9464,12 +9958,12 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo Sorban várakozó I/O feladatok: - + Write cache overload: Írási gyorsítótár túlterheltsége: - + Read cache overload: Olvasási gyorsítótár túlterheltsége: @@ -9488,51 +9982,77 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo StatusBar - + Connection status: Kapcsolat állapota: - - + + No direct connections. This may indicate network configuration problems. Nincsenek közvetlen kapcsolatok. Ez hálózat beállítási hibákra is utalhat. - - + + Free space: N/A + + + + + + External IP: N/A + Külső IP: N/A + + + + DHT: %1 nodes DHT: %1 csomópont - + qBittorrent needs to be restarted! qBittorrentet újra kell indítani! - - - + + + Connection Status: A kapcsolat állapota: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. Ez általában azt jelenti, hogy a qBittorrent nem tudja használni a bejövő kapcsolatokhoz a megadott portot. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + Külső IP-k: %1, %2 + + + + External IP: %1%2 + Külső IP: %1%2 + + + Click to switch to alternative speed limits Alternatív sebességkorlát bekapcsolásához kattintson ide - + Click to switch to regular speed limits Általános sebességkorlát bekapcsolásához kattintson ide @@ -9562,13 +10082,13 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo - Resumed (0) - Folytatott (0) + Running (0) + Folyamatban (0) - Paused (0) - Szüneteltetett (0) + Stopped (0) + Megállítva (0) @@ -9630,36 +10150,36 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo Completed (%1) Kész (%1) + + + Running (%1) + Folyamatban (%1) + - Paused (%1) - Szüneteltetett (%1) + Stopped (%1) + Megállítva (%1) + + + + Start torrents + Torrentek indítása + + + + Stop torrents + Torrentek leállítása Moving (%1) Áthelyezés (%1) - - - Resume torrents - Torrentek folytatása - - - - Pause torrents - Torrentek szüneteltetése - Remove torrents Torrentek eltávolítása - - - Resumed (%1) - Folytatott (%1) - Active (%1) @@ -9731,31 +10251,31 @@ Az ablak jobb alsó sarkában található „Modulok keresése…” gomb megnyo Remove unused tags Nem használt címkék eltávolítása - - - Resume torrents - Torrentek folytatása - - - - Pause torrents - Torrentek szüneteltetése - Remove torrents Torrentek eltávolítása - - New Tag - Új címke + + Start torrents + Torrentek indítása + + + + Stop torrents + Torrentek leállítása Tag: Címke: + + + Add tag + Címke hozzáadása + Invalid tag name @@ -9902,32 +10422,32 @@ Válasszon egy másik nevet és próbálja újra. TorrentContentModel - + Name Név - + Progress Folyamat - + Download Priority Letöltési prioritás - + Remaining Hátralévő - + Availability Elérhetőség - + Total Size Teljes méret @@ -9972,98 +10492,98 @@ Válasszon egy másik nevet és próbálja újra. TorrentContentWidget - + Rename error Átnevezés hiba - + Renaming Átnevezés - + New name: Új név: - + Column visibility Oszlop láthatósága - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére - + Open Megnyitás - + Open containing folder Tartalmazó mappa megnyitása - + Rename... Átnevezés... - + Priority Priorítás - - + + Do not download Ne töltse le - + Normal Normál - + High Magas - + Maximum Maximális - + By shown file order Megjelenített fájl sorrend szerint - + Normal priority Normál prioritás - + High priority Magas prioritás - + Maximum priority Maximális prioritás - + Priority by shown file order Prioritás a megjelenített fájlsorrend szerint @@ -10071,19 +10591,19 @@ Válasszon egy másik nevet és próbálja újra. TorrentCreatorController - + Too many active tasks - + Túl sok aktív feladat - + Torrent creation is still unfinished. - + A torrent létrehozása még mindig nem fejeződött be. - + Torrent creation failed. - + Torrent létrehozása meghiúsult. @@ -10110,13 +10630,13 @@ Válasszon egy másik nevet és próbálja újra. - + Select file Válasszon fájlt - + Select folder Válasszon mappát @@ -10191,87 +10711,83 @@ Válasszon egy másik nevet és próbálja újra. Mezők - + You can separate tracker tiers / groups with an empty line. A különböző trackercsoportok üres sorral választhatók el. - + Web seed URLs: Web seed URL-ek: - + Tracker URLs: Tracker URL-ek: - + Comments: Megjegyzések: - + Source: Forrás: - + Progress: Folyamat: - + Create Torrent Torrent létrehozása - - + + Torrent creation failed Torrent létrehozása meghiúsult - + Reason: Path to file/folder is not readable. Indok: fájl/mappa útvonala nem olvasható. - + Select where to save the new torrent Válassza ki az új torrent mentési helyét - + Torrent Files (*.torrent) Torrent fájlok (*.torrent) - Reason: %1 - Indok: %1 - - - + Add torrent to transfer list failed. A torrent átviteli listához való hozzáadása sikertelen. - + Reason: "%1" Indok: "%1" - + Add torrent failed Torrent hozzáadása sikertelen. - + Torrent creator Torrent készítő - + Torrent created: Torrent létrehozva: @@ -10279,32 +10795,32 @@ Válasszon egy másik nevet és próbálja újra. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Nem sikerült betölteni a Figyelt Mappák beállításokat. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Nem sikerült feldolgozni a Figyelt Mappák konfigurációt %1-ből. Hiba: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Nem sikerült betölteni a Figyelt Mappák konfigurációját %1-ből. Hiba: "Érvénytelen adat formátum." - + Couldn't store Watched Folders configuration to %1. Error: %2 Nem sikerült eltárolni a Megfigyelt Mappák konfigurációját ide: %1. Hiba: %2 - + Watched folder Path cannot be empty. Megfigyelt mappa elérési útja nem lehet üres. - + Watched folder Path cannot be relative. Megfigyelt mappa elérési útja nem lehet relatív. @@ -10312,44 +10828,31 @@ Válasszon egy másik nevet és próbálja újra. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Érvénytelen Magnet URI. URI: %1. Indok: %2 - + Magnet file too big. File: %1 Magnet fájl túl nagy. Fájl: %1 - + Failed to open magnet file: %1 Nem sikerült megnyitni a magnet fájlt: %1 - + Rejecting failed torrent file: %1 Sikertelen torrent fájl elutasítása: %1 - + Watching folder: "%1" Mappa figyelése: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Nem sikerült memóriát lefoglalni a fájl olvasásakor. Fájl: "%1". Hiba: "%2" - - - - Invalid metadata - Érvénytelen metaadat - - TorrentOptionsDialog @@ -10378,175 +10881,163 @@ Válasszon egy másik nevet és próbálja újra. Használjon másik elérési utat a befejezetlen torrenthez - + Category: Kategória: - - Torrent speed limits - Torrent sebességkorlátok + + Torrent Share Limits + Torrent Megosztási Korlátok - + Download: Letöltés: - - + + - - + + Torrent Speed Limits + Torrent Sebesség Korlátok + + + + KiB/s KiB/s - + These will not exceed the global limits Ezek nem fogják túllépni a globális korlátokat - + Upload: Feltöltés: - - Torrent share limits - Torrent megosztási korlát - - - - Use global share limit - Globális megosztási korlát használata - - - - Set no share limit - Ne állítson be megosztási korlátot - - - - Set share limit to - Megosztási korlát beállítása - - - - ratio - arány - - - - total minutes - összes perc - - - - inactive minutes - inaktív perc - - - + Disable DHT for this torrent DHT letiltása ennél a torrentnél - + Download in sequential order Letöltés egymás utáni sorrendben - + Disable PeX for this torrent PeX letiltása ennél a torrentnél - + Download first and last pieces first Első és utolsó szelet letöltése először - + Disable LSD for this torrent LSD letiltása ennél a torrentnél - + Currently used categories Jelenleg használt kategóriák - - + + Choose save path Válasszon mentési útvonalat - + Not applicable to private torrents Nem alkalmazható privát torrentekre - - - No share limit method selected - Nincs megosztási korlátozó módszer kiválasztva - - - - Please select a limit method first - Először válasszon korlátozási módszert - TorrentShareLimitsWidget - - - + + + + Default - Alapértelmezett + Alapértelmezett + + + + + + Unlimited + Korlátlan - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Érték + + + + Seeding time: + Seedelési idő: + + + + + + + + min minutes - perc + perc - + Inactive seeding time: - + Inaktív seedelési idő: - + + Action when the limit is reached: + Művelet ha a korlát elérésre kerül: + + + + Stop torrent + Torrent leállítása + + + + Remove torrent + Torrent eltávolítása + + + + Remove torrent and its content + Torrent és tartalmának eltávolítása + + + + Enable super seeding for torrent + Super seed engedélyezése a torrentnél + + + Ratio: - + Arány: @@ -10557,32 +11048,32 @@ Válasszon egy másik nevet és próbálja újra. Torrent címkék - - New Tag - Új címke + + Add tag + Címke hozzáadása - + Tag: Címke: - + Invalid tag name Érvénytelen címkenév - + Tag name '%1' is invalid. '%1' címkenév érvénytelen. - + Tag exists Címke létezik - + Tag name already exists. Címkenév már létezik. @@ -10590,115 +11081,130 @@ Válasszon egy másik nevet és próbálja újra. TorrentsController - + Error: '%1' is not a valid torrent file. Hiba: '%1' nem érvényes torrent fájl. - + Priority must be an integer Prioritásnak egész számnak kell lennie - + Priority is not valid Prioritás nem érvényes - + Torrent's metadata has not yet downloaded Torrent metaadat még nem lett letöltve - + File IDs must be integers Fájlazonosítóknak egész számoknak kell lenniük - + File ID is not valid Fájlazonosító nem érvényes - - - - + + + + Torrent queueing must be enabled Torrentek ütemezését be kell kapcsolni - - + + Save path cannot be empty Mentési útvonal nem lehet üres - - + + Cannot create target directory Nem lehet célkönyvtárat létrehozni - - + + Category cannot be empty Kategória nem lehet üres - + Unable to create category Kategória nem hozható létre - + Unable to edit category Nem sikerült szerkeszteni a kategóriát - + Unable to export torrent file. Error: %1 Torrent fájl exportálása sikertelen. Hiba: %1 - + Cannot make save path Nem hozható létre a mentési útvonal - + + "%1" is not a valid URL + "%1" nem hiteles URL + + + + URL scheme must be one of [%1] + URL séma a következők egyike kell, hogy legyen: [%1] + + + 'sort' parameter is invalid 'sort' paraméter érvénytelen - + + "%1" is not an existing URL + "%1" nem létező URL + + + "%1" is not a valid file index. "%1" nem hiteles fájl index. - + Index %1 is out of bounds. Index %1 határokon kívül esik. - - + + Cannot write to directory Nem lehet írni a könyvtárba - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI készlet helye: '%1' áthelyezése innen: '%2', ide: '%3' - + Incorrect torrent name Érvénytelen torrentnév - - + + Incorrect category name Érvénytelen kategórianév @@ -10729,196 +11235,191 @@ Válasszon egy másik nevet és próbálja újra. TrackerListModel - + Working Működik - + Disabled Letiltva - + Disabled for this torrent Letiltva ennél a torrentnél - + This torrent is private Ez egy privát torrent - + N/A N/A - + Updating... Frissítés... - + Not working Nem működik - + Tracker error Tracker hiba - + Unreachable Elérhetetlen - + Not contacted yet Még nem kapcsolódott - - Invalid status! + + Invalid state! Érvénytelen állapot! - - URL/Announce endpoint + + URL/Announce Endpoint URL/Bejelentés végpont - + + BT Protocol + BT Protokoll + + + + Next Announce + Következő Bejelentés + + + + Min Announce + Min Bejelentés + + + Tier Szint - - Protocol - Protokoll - - - + Status Állapot - + Peers Peerek - + Seeds Seedek - + Leeches Leechek - + Times Downloaded Letöltések száma - + Message Üzenet - - - Next announce - Következő bejelentés - - - - Min announce - Min bejelentés - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Ez egy privát torrent - + Tracker editing Tracker szerkesztés - + Tracker URL: Tracker URL: - - + + Tracker editing failed Tracker szerkesztése sikertelen - + The tracker URL entered is invalid. Érvénytelen a beírt tracker URL. - + The tracker URL already exists. Ez a tracker URL már létezik. - + Edit tracker URL... Tracker URL szerkesztése... - + Remove tracker Tracker eltávolítása - + Copy tracker URL Tracker URL másolása - + Force reannounce to selected trackers Kényszerített újrajelentés a kijelölt trackerek felé - + Force reannounce to all trackers Kényszerített újrajelentés minden tracker felé - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére - + Add trackers... Trackerek hozzáadása... - + Column visibility Oszlop láthatósága @@ -10936,37 +11437,37 @@ Válasszon egy másik nevet és próbálja újra. Hozzáadandó trackerek listája (soronként egy): - + µTorrent compatible list URL: µTorrent kompatiblis URL lista: - + Download trackers list Tracker lista letöltése - + Add Hozzáad - + Trackers list URL error Tracker lista URL hiba - + The trackers list URL cannot be empty A tracker lista URL nem lehet üres - + Download trackers list error Tracker lista letöltési hiba - + Error occurred when downloading the trackers list. Reason: "%1" Hiba történt a trackerek listájának letöltésekor. Indok: "%1" @@ -10974,62 +11475,62 @@ Válasszon egy másik nevet és próbálja újra. TrackersFilterWidget - + Warning (%1) Figyelmeztetés (%1) - + Trackerless (%1) Tracker nélküli (%1) - + Tracker error (%1) Tracker hiba (%1) - + Other error (%1) Egyéb hiba (%1) - + Remove tracker Tracker eltávolítása - - Resume torrents - Torrentek folytatása + + Start torrents + Torrentek indítása - - Pause torrents - Torrentek szüneteltetése + + Stop torrents + Torrentek leállítása - + Remove torrents Torrentek eltávolítása - + Removal confirmation Eltávolítás megerősítése - + Are you sure you want to remove tracker "%1" from all torrents? Biztos, hogy el akarja távolítani a "%1" trackert az összes torrentről? - + Don't ask me again. Ne kérdezzen meg újra. - + All (%1) this is for the tracker filter Összes (%1) @@ -11038,7 +11539,7 @@ Válasszon egy másik nevet és próbálja újra. TransferController - + 'mode': invalid argument 'mód': érvénytelen téma @@ -11130,11 +11631,6 @@ Válasszon egy másik nevet és próbálja újra. 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. Folytatáshoz szükséges adat ellenőrzése - - - Paused - Szüneteltetve - Completed @@ -11158,220 +11654,252 @@ Válasszon egy másik nevet és próbálja újra. Hiba - + Name i.e: torrent name Név - + Size i.e: torrent size Méret - + Progress % Done Folyamat - + + Stopped + Megállítva + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Állapot - + Seeds i.e. full sources (often untranslated) Seedek - + Peers i.e. partial sources (often untranslated) Peerek - + Down Speed i.e: Download speed Letöltési sebesség - + Up Speed i.e: Upload speed Feltöltési sebesség - + Ratio Share ratio Arány - + + Popularity + Népszerűség + + + ETA i.e: Estimated Time of Arrival / Time left Várható befejezési idő: - + Category Kategória - + Tags Címkék - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Hozzáadva ekkor - + Completed On Torrent was completed on 01/01/2010 08:00 Elkészült ekkor - + Tracker Tracker - + Down Limit i.e: Download limit Letöltés korlát - + Up Limit i.e: Upload limit Feltöltés korlát - + Downloaded Amount of data downloaded (e.g. in MB) Letöltve - + Uploaded Amount of data uploaded (e.g. in MB) Feltöltve - + Session Download Amount of data downloaded since program open (e.g. in MB) Munkamenet alatt letöltve - + Session Upload Amount of data uploaded since program open (e.g. in MB) Munkamenet alatt feltöltve - + Remaining Amount of data left to download (e.g. in MB) Hátralévő - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktív idő - + + Yes + Igen + + + + No + Nem + + + Save Path Torrent save path Mentés helye - + Incomplete Save Path Torrent incomplete save path Befejezetlen mentés helye - + Completed Amount of data completed (e.g. in MB) Befejezett - + Ratio Limit Upload share ratio limit Arány korlát - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Legutóbb befejezettként látva - + Last Activity Time passed since a chunk was downloaded/uploaded Utolsó aktivitás - + Total Size i.e. Size including unwanted data Teljes méret - + Availability The number of distributed copies of the torrent Elérhetőség - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Újrajelentés - - + + Private + Flags private torrents + Privát + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Arány / Aktív idő (hónapokban), jelzi, mennyire népszerű a torrent + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 óta - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedelve %2) @@ -11380,339 +11908,319 @@ Válasszon egy másik nevet és próbálja újra. TransferListWidget - + Column visibility Oszlop beállítások - + Recheck confirmation Újraellenőrzés megerősítése - + Are you sure you want to recheck the selected torrent(s)? Biztos benne, hogy újraellenőrzi a kiválasztott torrenteket? - + Rename Átnevezés - + New name: Új név: - + Choose save path Válasszon mentési útvonalat - - Confirm pause - Szüneteltetés megerősítése - - - - Would you like to pause all torrents? - Szünetelteti az összes torrentet? - - - - Confirm resume - Folytatás megerősítése - - - - Would you like to resume all torrents? - Folytatja az összes torrentet? - - - + Unable to preview Előnézet nem lehetséges - + The selected torrent "%1" does not contain previewable files A kijelölt torrent "%1" nem tartalmaz előnézhető fájlokat - + Resize columns Oszlopok átméretezése - + Resize all non-hidden columns to the size of their contents Méretezze át az összes nem rejtett oszlopot a tartalmuk méretére - + Enable automatic torrent management Automatikus torrentkezelés engedélyezése - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Biztos benne, hogy engedélyezi az automatikus torrentkezelést a kiválasztott torrent(ek) számára? Lehetséges, hogy át lesznek helyezve. - - Add Tags - Címkék hozzáadása - - - + Choose folder to save exported .torrent files Válasszon mappát az exportált .torrent fájlok mentéséhez - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" A .torrent fájl exportálása sikertelen. Torrent: "%1". Útvonal mentése: "%2". Indok: "%3" - + A file with the same name already exists Ugyanilyen nevű fájl már létezik - + Export .torrent file error .torrent fájl exportálás hiba - + Remove All Tags Összes címke eltávolítása - + Remove all tags from selected torrents? Eltávolítja az összes címkét a kiválasztott torrentekről? - + Comma-separated tags: Vesszővel elválasztott címkék: - + Invalid tag Érvénytelen címke - + Tag name: '%1' is invalid Címkenév: '%1' érvénytelen - - &Resume - Resume/start the torrent - &Folytatás - - - - &Pause - Pause the torrent - &Szünet - - - - Force Resu&me - Force Resume/start the torrent - Folytatás &kényszerítése - - - + Pre&view file... Fájl elő&nézete... - + Torrent &options... Torrent &beállításai… - + Open destination &folder &Célkönyvtár megnyitása - + Move &up i.e. move up in the queue Feljebb m&ozgat - + Move &down i.e. Move down in the queue Lejjebb mo&zgat - + Move to &top i.e. Move to top of the queue Leg&felülre mozgat - + Move to &bottom i.e. Move to bottom of the queue Le&galulra mozgat - + Set loc&ation... Hely &megadása... - + Force rec&heck Kényszerített újra&ellenőrzés - + Force r&eannounce Kényszerített új&rajelentés - + &Magnet link M&agnet link - + Torrent &ID Torrent &azonosító - + &Comment &Megjegyzés - + &Name &Név - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Át&nevezés... - + Edit trac&kers... Trackerek szer&kesztése... - + E&xport .torrent... Torrent e&xportálása... - + Categor&y Kategó&ria - + &New... New category... Ú&j… - + &Reset Reset category &Visszaállítás - + Ta&gs Cím&kék - + &Add... Add / assign multiple tags... &Hozzáadás… - + &Remove All Remove all tags Ö&sszes eltávolítása - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Kényszerített újrajelentés nem lehetséges ha a torrent állapota Leállított/Sorban áll/Hibás/Ellenőrzés alatt + + + &Queue &Sor - + &Copy &Másolás - + Exported torrent is not necessarily the same as the imported Az exportált torrent nem feltétlenül ugyanaz, mint az importált - + Download in sequential order Letöltés egymás utáni sorrendben - + + Add tags + Címkék hozzáadása + + + Errors occurred when exporting .torrent files. Check execution log for details. Hibák történtek a .torrent fájlok exportálásakor. A részletekért ellenőrizze a végrehajtási naplót. - + + &Start + Resume/start the torrent + &Start + + + + Sto&p + Stop the torrent + Leál&lítás + + + + Force Star&t + Force Resume/start the torrent + Kényszerített s&tart + + + &Remove Remove the torrent &Eltávolítás - + Download first and last pieces first Első és utolsó szelet letöltése először - + Automatic Torrent Management Automatikus torrentkezelés - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Az automatikus mód azt jelenti, hogy a különböző torrenttulajdonságok (például a mentési útvonal) a hozzátartozó kategória alapján kerülnek eldöntésre - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Kényszerített újrajelentés nem lehetséges ha a torrent állapota Szüneteltetett/Elakadt/Hibás/Ellenőrzés - - - + Super seeding mode Szuper seed üzemmód @@ -11757,28 +12265,28 @@ Válasszon egy másik nevet és próbálja újra. Ikon azonosító - + UI Theme Configuration. Felhasználói felület testreszabása - + The UI Theme changes could not be fully applied. The details can be found in the Log. A felhasználói felület változtatásokat nem sikerült teljes mértékben végrehajtani. A részleteket a Napló nézetben találja. - + Couldn't save UI Theme configuration. Reason: %1 Nem sikerült a felhasználói téma konfiguráció mentése. Indok: %1 - - + + Couldn't remove icon file. File: %1. Nem sikerült eltávolítani az ikon fájlt. Fájl: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Nem sikerült az ikon fájl másolása. Forrás: %1. Cél: %2. @@ -11786,7 +12294,12 @@ Válasszon egy másik nevet és próbálja újra. UIThemeManager - + + Set app style failed. Unknown style: "%1" + App stílusának beállítása nem sikerült. Ismeretlen stílus: "%1". + + + Failed to load UI theme from file: "%1" Nem sikerült a felhasználói témát betölteni a fájlból: "%1" @@ -11817,20 +12330,21 @@ Válasszon egy másik nevet és próbálja újra. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" A beállítások migrálása nem sikerült: WebUI https, fájl: "%1", hiba: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrált beállítások: WebUI https, adatok exportálva a következő fájlba: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Érvénytelen értéket találtam a konfigurációs fájlban. Az érték alapértelmezettre állítva. Kulcs: "%1". Érvénytelen érték: "%2". @@ -11838,32 +12352,32 @@ Válasszon egy másik nevet és próbálja újra. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Python megtalálva. Név: "%1”. Verzió: "%2” - + Failed to find Python executable. Path: "%1". Nem sikerült megtalálni a Python-t. Elérési út: "%1”. - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Nem sikerült megtalálni a `python3` alkalmazást a PATH környezeti változóban. PATH: "%1” - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Nem sikerült megtalálni a `python` alkalmazást a PATH környezeti változóban. PATH: "%1” - + Failed to find `python` executable in Windows Registry. Nem sikerült megtalálni a `python` alkalmazást a Windows rendszerleíró adatbázisban. - + Failed to find Python executable Nem sikerült megtalálni a Python alkalmazást @@ -11955,72 +12469,72 @@ Válasszon egy másik nevet és próbálja újra. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Elfogadhatatlan folyamat-süti név lett megadva: '%1'. Az alapértelmezett lesz használva. - + Unacceptable file type, only regular file is allowed. Nem elfogadható fájltípus, csak általános fájl engedélyezett. - + Symlinks inside alternative UI folder are forbidden. Szimbolikus linkek tiltottak az alternatív UI mappában. - + Using built-in WebUI. Beépített WebUI használata. - + Using custom WebUI. Location: "%1". Egyedi WebUI használata. Elérési út: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. A WebUI fordítása a kiválasztott nyelvhez (%1) sikeresen betöltődött. - + Couldn't load WebUI translation for selected locale (%1). Nem sikerült betölteni a WebUI fordítást a kiválasztott nyelvhez (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Hiányzó ':' elválasztó a WebUI egyéni HTTP fejlécben: "%1" - + Web server error. %1 Web szerver hiba. %1 - + Web server error. Unknown error. Webszerver hiba. Ismeretlen hiba. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Origin header & Cél origin nem egyezik! Forrás IP: '%1'. Origin header: '%2'. Cél origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Hivatkozó fejléc & Cél forrás eltér! Forrás IP: '%1'. Hivatkozó fejléc: '%2'. Cél forrás: '%3'. - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Érvénytelen Kiszolgáló fejléc, port eltérés. Forrást kérő IP: '%1'. Kiszolgáló port: '%2'. Fogadott Kiszolgáló fejléc: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Érvénytelen Kiszolgáló fejléc. Forrást kérő IP: '%1'. Fogadott Kiszolgáló fejléc: '%2' @@ -12028,125 +12542,133 @@ Válasszon egy másik nevet és próbálja újra. WebUI - + Credentials are not set A hitelesítő adatok nincsenek beállítva - + WebUI: HTTPS setup successful WebUI: HTTPS beállítás sikeres - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS beállítása sikertelen, visszaállítás HTTP-re - + WebUI: Now listening on IP: %1, port: %2 WebUI: Aktív a következőn: IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Nem sikerült használatba venni az IP-t: %1, port: %2. Ok: %3 + + fs + + + Unknown error + Ismeretlen hiba + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1perc - + %1h %2m e.g: 3 hours 5 minutes %1ó %2p - + %1d %2h e.g: 2 days 10 hours %1nap %2ó - + %1y %2d e.g: 2 years 10 days %1 év %2nap - - + + 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 diff --git a/src/lang/qbittorrent_hy.ts b/src/lang/qbittorrent_hy.ts index 752614d24..37ccce578 100644 --- a/src/lang/qbittorrent_hy.ts +++ b/src/lang/qbittorrent_hy.ts @@ -14,77 +14,77 @@ Ծրագրի մասին - + Authors - + Հեղինակներ - + Current maintainer Ընթացիկ տեխնիակական աջակցություն - + Greece Greece - - + + Nationality: Ազգություն՝ - - + + E-mail: Էլ. փոստ՝ - - + + Name: Անվանում՝ - + Original author Հիմնադիր հեղինակ - + France - France + Ֆրանսիա - + Special Thanks Հատուկ շնորհակալություններ - + Translators Թարգմանիչներ - + License Թույլատրագիր - + Software Used Օգտագործված ծրագրեր - + qBittorrent was built with the following libraries: qBittorrent-ը ստեղծվել է հետևյալ գրադարանների կիրառմամբ՝ - + Copy to clipboard - + Պատճենել սեղմատախտակին @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -145,7 +145,7 @@ No such file: '%1'. - + Այսպիսի ֆայլ չկա՝ «%1»: @@ -166,15 +166,10 @@ Պահել այստեղ - + Never show again Այլևս չցուցադրել - - - Torrent settings - Torrent-ի կարգավորումներ - Set as default category @@ -191,12 +186,12 @@ Մեկնարկել torrent-ը - + Torrent information Torrent-ի տեղեկություններ - + Skip hash check Բաց թողնել հեշի ստուգումը @@ -205,20 +200,25 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: - + Պիտակներ՝ Click [...] button to add/remove tags. - + Սեղմեք [...] կոճակը՝ պիտակներ ավելացնելու/հեռացնելու համար: Add/remove tags - + Ավելացնել/հեռացնել պիտակներ @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Ստուգված ֆայլեր - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Պարունակության դասավորություն՝ - + Original Բնօրինակ - + Create subfolder Ստեղծել ենթապանակ - + Don't create subfolder Չստեղծել ենթապանակ - + Info hash v1: - + Size: Չափ՝ - + Comment: Մեկնաբանություն՝ - + Date: Ամսաթիվ՝ @@ -329,147 +329,147 @@ Հիշել պահելու վերջին ուղին - + Do not delete .torrent file Չջնջել .torrent նիշքը - + Download in sequential order Ներբեռնել հերթականության կարգով - + Download first and last pieces first Սկզբում ներբեռնել առաջին ու վերջին մասերը - + Info hash v2: - + Select All Նշել բոլորը - + Select None Չնշել բոլորը - + Save as .torrent file... Պահել որպես .torrent նիշք... - + I/O Error Ն/Ա սխալ - + Not Available This comment is unavailable Հասանելի չէ - + Not Available This date is unavailable Հասանելի չէ - + Not available Հասանելի չէ - + Magnet link Magnet հղում - + Retrieving metadata... Առբերել մետատվյալները... - - + + Choose save path Ընտրեք պահելու ուղին - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A - + %1 (Free space on disk: %2) %1 (ազատ տարածք սկավառակի վրա՝ %2) - + Not available This size is unavailable. Հասանելի չէ - + Torrent file (*%1) - + Torrent ֆայլ (*%1) - + Save as torrent file Պահել որպես torrent նիշք - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Զտել նիշքերը... - + Parsing metadata... Մետատվյալների վերլուծում... - + Metadata retrieval complete Մետատվյալների առբերումը ավարտվեց @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Ներբեռնվում է torrent-ը... Աղբյուր՝ «%1» - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -547,17 +547,17 @@ Tags: - + Պիտակներ՝ Click [...] button to add/remove tags. - + Սեղմեք [...] կոճակը՝ պիտակներ ավելացնելու/հեռացնելու համար: Add/remove tags - + Ավելացնել/հեռացնել պիտակներ @@ -567,7 +567,7 @@ Start torrent: - + Մեկնարկել torrent-ը՝ @@ -608,7 +608,7 @@ Default - + Լռելայն @@ -662,769 +662,869 @@ Files checked - + Ստուգված ֆայլեր AdvancedSettings - - - - + + + + MiB ՄԲ - + Recheck torrents on completion Ավարտելուց հետո վերստուգել torrent-ները - - + + ms milliseconds մվ - + Setting Կարգավորում - + Value Value set for this setting Արժեք - + (disabled) (կասեցված) - + (auto) (ինքնաշխատ) - + + min minutes Նվազ. - + All addresses Բոլոր հասցեները - + qBittorrent Section qBittorrent-ի հատված - - + + Open documentation Բացել գործառույթների նկարագությունը - + All IPv4 addresses Բոլոր IPv4 հասցեները - + All IPv6 addresses Բոլոր IPv6 հասցեները - + libtorrent Section libtorrent-ի հատված - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Միջին - + Below normal Միջինից ցածր - + Medium Միջին - + Low Ցածր - + Very low Շատ ցածր - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache Սկավառակի շտեմ - - - - + + + + + s seconds վ - + Disk cache expiry interval - + Disk queue size - - + + Enable OS cache Միացնել ԳՀ-ի շտեմը - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Ելքային մատույցներ (նվազ.-ը) [0՝ կարողազրկված] - + Outgoing ports (Max) [0: disabled] - + Ելքային մատույցներ (առավել.-ը) [0՝ կարողազրկված] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB ԿԲ - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Լռելայն - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP Նախընտրել TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates Վավերացնել HTTPS գրանցորդի վկայագրերը - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names - Որոշել peer-երի հոսթերի անունները + Որոշել ցանցորդի հյուընկալի անունները - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + վ + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Ցուցադրել ծանուցումները - + Display notifications for added torrents Ցուցադրել ծանուցումները ավելացված torrent-ների համար - + Download tracker's favicon - + Save path history length - + Enable speed graphs - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload - + Anti-leech Հակաքաշողներ - + Upload choking algorithm - + Confirm torrent recheck Հաստատել torrent-ի վերստուգումը - + Confirm removal of all tags Հաստատել բոլոր պիտակների հեռացումը - + Always announce to all trackers in a tier Միշտ ազդարարել բոլոր մակարդակների գրանցորդներին - + Always announce to all tiers Միշտ ազդարարել բոլոր գրանցորդներին - + Any interface i.e. Any network interface Ցանկացած միջներես - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface Ցանցային միջերես - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Միացնել ուղղորդիչի արգելումը - + Embedded tracker port Արգելված ուղղորդիչի դարպասը + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + 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-ը օգտագործելու համար։ - + Torrent: %1, sending mail notification - + Add torrent failed - + Torrent-ի ավելացումը ձախողվեց - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit Դուր&ս գալ - + I/O Error i.e: Input/Output Error Ն/Ա սխալ - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1432,100 +1532,110 @@ - + Torrent added Torrent-ը ավելացվեց - + '%1' was added. e.g: xxx.avi was added. '%1'-ը ավելացվեց: - + Download completed - + Ներբեռնման ավարտ - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - - '%1' has finished downloading. - e.g: xxx.avi has finished downloading. + + This is a test email. - + + Test email + + + + + '%1' has finished downloading. + e.g: xxx.avi has finished downloading. + «%1»-ի ներբեռնումն ավարտեց: + + + Information Տեղեկություններ - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit Ելք - + Recursive download confirmation Ռեկուրսիվ ներբեռնման հաստատում - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Երբեք - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Պահվում է torrent-ի ընթացքը... - + qBittorrent is now ready to exit @@ -1601,15 +1711,15 @@ Priority: - + Առաջնահերթություն՝ - + Must Not Contain: Չպետք է պարունակի՝ - + Episode Filter: @@ -1633,7 +1743,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Disabled - Կասեցված է + Կարողազրկված է @@ -1661,263 +1771,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Արտահանել... - + 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 - + 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 - + Episode number is a mandatory positive value - + Rules Կանոններ - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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? Վստա՞հ եք, որ ուզում եք հեռացնել ներբեռնման ընտրված կանոնները: - + Rule deletion confirmation Հաստատեք ջնջումը - + Invalid action Անվավեր գործողություն - + The list is empty, there is nothing to export. Ցանկը դատարկ է, ոչինչ չկա արտածելու համար։ - + Export RSS rules - + I/O Error Ն/Ա սխալ - + Failed to create the destination file. Reason: %1 - + Import RSS rules - + Failed to import the selected rules file. Reason: %1 - + Add new rule... Ավելացնել նոր կանոն... - + Delete rule Ջնջել կանոնը - + Rename rule... Անվանափոխել կանոնը... - + Delete selected rules Ջնջել ընտրված կանոնները - + Clear downloaded episodes... - + Rule renaming Կանոնի անվանափոխում - + Please type the new rule name Մուտքագրեք նոր կանոնի անվանումը - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 Դիրք %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1959,7 +2069,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1969,28 +2079,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2001,16 +2121,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2018,38 +2139,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2057,22 +2200,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2080,457 +2223,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - Միաց. + ՄԻԱՑ. - - - - - - - - - + + + + + + + + + OFF - Անջտ. + ԱՆՋԱՏ. - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED ՍՏԻՊՈՂԱԲԱՐ - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - + Torrent՝ «%1»: - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Շարունակեցվեց torrent-ը: Torrent՝ «%1» - + Torrent download finished. Torrent: "%1" - + Ներբեռնումը torrent-ի ավարտվեց: Torrent՝ «%1» - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP զտիչ - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1-ը կասեցված է - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1-ը կասեցված է - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,13 +2735,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2560,67 +2749,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On Միաց. - + Off Անջտ. - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2641,189 +2830,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: Օգտագործում՝ - + [options] [(<filename> | <url>)...] - + Options: Ընտրանքներ՝ - + Display program version and exit Ցուցադրել ծրագրի տարբերակն ու փակել այն - + Display this help message and exit Ցուցադրել այս օգնող հաղորդագրությունը և դուրս գալ - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port - միացք + մատույց - + Change the WebUI port - + Փոխել WebUI մատույցը - + Change the torrenting port - + Փոխել torrent-ման մատույցը - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name անվանում - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + ֆայլեր կամ URL-ներ - + Download the torrents passed by the user - + Options when adding new torrents: Նոր torrent-ներ ավելացնելու ընտրանքներ՝ - + path ուղի - + Torrent save path Torrent-ը պահելու ուղին - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Բաց թողնել հեշի ստուգումը - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Բեռնել նիշքերը հաջորդական կարգով - + Download first and last pieces first Սկզբում ներբեռնել առաջին ու վերջին մասերը - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Օգնություն @@ -2875,32 +3064,37 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Շարունակել torrent-ները + Start torrents + - Pause torrents - Դադարեցնել torrent-ները + Stop torrents + Remove torrents - + Հեռացնել torrent-ները ColorWidget - + Edit... - + Reset Վերակայել + + + System + + CookiesDialog @@ -2941,12 +3135,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2954,7 +3148,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2973,23 +3167,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3002,12 +3196,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + Add torrent links Ավելացնել torrent հղումներ - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3017,12 +3211,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Ներբեռնել - + No URL entered URL մուտքագրված չէ - + Please type at least one URL. Նշեք գոնե մեկ հղում։ @@ -3108,7 +3302,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Choose a file Caption for file open/save dialog - Ընտրել նիշք + Ընտրել ֆայլը @@ -3119,7 +3313,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Any file - Ցանկացած նիշք + Որևէ ֆայլ @@ -3181,25 +3375,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Ներբեռնվում է torrent-ը... Աղբյուր՝ «%1» - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrent-ը արդեն առկա է - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3207,38 +3424,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Չաջակցվող IP տարբերակ. %1 - + Unsupported record size: %1 - + Database corrupted: no data section found. @@ -3246,17 +3463,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3297,26 +3514,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Զննել... - + Reset Վերակայել - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3348,13 +3599,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1-ը արգելափակվեց: Պատճառ՝ %2. - + %1 was banned 0.0.0.0 was banned %1-ը արգելափակվեց @@ -3363,60 +3614,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3429,608 +3680,679 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Խմբագրել - + &Tools &Գործիքներ - + &File - &Նիշք + &Ֆայլ - + &Help &Օգնություն - + On Downloads &Done Ներբեռնումը ավարտելուն &պես - + &View &Տեսք - + &Options... &Ընտրանքներ... - - &Resume - &Շարունակել - - - + &Remove - + Torrent &Creator Torrent-ի &ստեղծիչ - - + + Alternative Speed Limits Արագության այլընտրանքային սահմանաչափ - + &Top Toolbar &Վերևի գործիքագոտի - + Display Top Toolbar Ցուցադրել վերևի գործիքագոտին - + Status &Bar Վիճակագո&տի - + Filters Sidebar - + S&peed in Title Bar Արա&գությունը անվանագոտում - + Show Transfer Speed in Title Bar Ցուցադրել փոխանցման արագությունը անվանագոտում - + &RSS Reader &RSS ընթերցիչ - + Search &Engine Որո&նիչ - + L&ock qBittorrent &Կողպել qBittorrent-ը - + Do&nate! Նվ&իրաբերություն կատարել - + + Sh&utdown System + + + + &Do nothing - + Close Window Բացել պատուհանը - - R&esume All - Շ&արունակել բոլորը - - - + Manage Cookies... Կառավարել թխուկները... - + Manage stored network cookies Կառավարել պահված ցանցային թխուկները - + Normal Messages Սովորական հաղորդագրություններ - + Information Messages Տեղեկատվական հաղորդագրություններ - + Warning Messages Զգուշացնող հաղորդագրություններ - + Critical Messages Վճռական հաղորդագրություններ - + &Log &Գրանցամատյան - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue Հերթի վերջ - + Move to the bottom of the queue Ուղարկել հերթի վերջ - + Top of Queue Հերթի սկիզբ - + Move to the top of the queue Ուղարկել հերթի սկիզբ - + Move Down Queue Իջեցնել հերթի ցանկում - + Move down in the queue Իջեցնել հերթի ցանկում - + Move Up Queue Բարձրացնել հերթի ցանկում - + Move up in the queue Բարձրացնել հերթի ցանկում - + &Exit qBittorrent &Փակել qBittorrent ծրագիրը - + &Suspend System &Քնեցնել համակարգը - + &Hibernate System &Նիրհել համակարգը - - S&hutdown System - Ան&ջատել համակարգիչը - - - + &Statistics &Վիճակագրություն - + Check for Updates Ստուգել արդիացումների առկայությունը - + Check for Program Updates Ստուգել արդիացումների առկայությունը - + &About &Ծրագրի մասին - - &Pause - &Դադարեցնել - - - - P&ause All - Դա&դարեցնել բոլորը - - - + &Add Torrent File... - &Ավելացնել torrent նիշք... + &Ավելացնել torrent ֆայլ... - + Open Բացել - + E&xit Դուր&ս գալ - + Open URL Բացել URL - + &Documentation &Նկարագրություն - + Lock Կողպել - - - + + + Show Ցուցադրել - + Check for program updates Ստուգել արդիացումների առկայությունը - + Add Torrent &Link... &Ավելացնել torrent հղում... - + If you like qBittorrent, please donate! Եթե qBittorrent-ը Ձեզ դուր եկավ, խնդրում ենք նվիրաբերություն կատարել։ - - + + Execution Log Գրանցամատյան - + Clear the password Մաքրել գաղտնաբառը - + &Set Password &Կայել գաղտնաբառը - + Preferences Նախընտրություններ - + &Clear Password &Մաքրել գաղտնաբառը - + Transfers Փոխանցումներ - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only Միայն պատկերակները - + Text Only Միայն տեքստը - + Text Alongside Icons Գրվածք պատկերակի կողքը - + Text Under Icons Գրվածք պատկերակի ներքևում - + Follow System Style Հետևել համակարգի ոճին - - + + UI lock password Ծրագրի կողփման գաղտնաբառը - - + + Please type the UI lock password: Մուտքագրեք ծրագրի կողփման գաղտնաբառը՝ - + Are you sure you want to clear the password? Վստա՞հ եք, որ ուզում եք մաքրել գաղտնաբառը՝ - + Use regular expressions Օգտ. կանոնավոր սահ-ներ - + + + Search Engine + Որոնիչ + + + + Search has failed + Որոնումը ձախողվել է + + + + Search has finished + Որոնումը ավարտվել է + + + Search Որոնել - + Transfers (%1) Փոխանցումներ (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent-ը թարմացվել է։ Վերամեկնարկեք՝ փոփոխությունները կիրառելու համար։ - + qBittorrent is closed to tray qBittorrent-ը փակվեց դարակի մեջ - + Some files are currently transferring. Որոշ նիշքեր դեռ փոխանցվում են: - + Are you sure you want to quit qBittorrent? Վստա՞հ եք, որ ուզում եք փակել qBittorrent-ը: - + &No &Ոչ - + &Yes &Այո - + &Always Yes &Միշտ այո - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available Հասանելի է qBittorrent-ի արդիացում - + 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. - - + + Old Python Runtime - + A new version is available. Հասանելի է նոր տարբերակ: - + Do you want to download %1? - + Open changelog... Բացել փոփոխությունների մատյանը... - + No updates available. You are already using the latest version. Արդիացումներ հասանելի չեն: Դուք արդեն օգտագործում եք վերջին տարբերակը: - + &Check for Updates &Ստուգել արդիացումների առկայությունը - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Դադարի մեջ է + + + Checking for Updates... Ստուգել արդիացումների առկայությունը... - + Already checking for program updates in the background - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Ներբեռնման սխալ - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python-ի տեղակայիչը չի կարող բեռնվել, պատճառը՝ %1։ -Տեղակայեք այն ձեռադիր։ - - - - + + Invalid password Անվավեր գաղտնաբառ - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + 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 ծրագիրը փակվում է - + Open Torrent Files - Բացել torrent նիշքերը + Բացել torrent ֆայլերը - + Torrent Files - Torrent նիշքեր + Torrent ֆայլեր @@ -4048,7 +4370,7 @@ Please install it manually. Dynamic DNS error: hostname supplied does not exist under specified account. - Ակտիվ DNS-ի սխալ. հոսթի անունը սխալ է։ + Դինամիկ DNS-ի սխալ. մատակարարված հյուրընկալի անունը գոյություն չունի նշված հաշվի տակ: @@ -4112,7 +4434,7 @@ Please install it manually. The remote host name was not found (invalid hostname) - Հեռադիր հոսթի անունը չի գտնվել (հոսթի անունը սխալ է) + Հեռակա հյուրընկալի անունը չի գտնվել (հյուրընկալի անունը վավեր չէ) @@ -4152,7 +4474,7 @@ Please install it manually. The proxy host name was not found - Չի գտնվել միջնորդի հոսթի անունը + Փոխանորդի հյուրընկալի անունը չգտնվեց @@ -4224,7 +4546,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5097,7 +5424,7 @@ Please install it manually. Portugal - Portugal + Պորտուգալիա @@ -5518,47 +5845,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5596,486 +5923,510 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Վեբ միջերես - - - + Advanced Ընդլայնված - + Customize UI Theme... - + Transfer List Փոխանցման ցանկ - + Confirm when deleting torrents Հաստատել torrent-ները ջնջելիս - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Տարբեր գույների տողեր կիրառել - + Hide zero and infinity values Թաքցնել զրո և անսահմանություն արժեքները - + Always Միշտ - - Paused torrents only - Միայն դադարեցված torrent-ները - - - + Action on double-click Երկկտտոցի գործողությունը - + Downloading torrents: Ներբեռնվող torrent-ներ՝ - - - Start / Stop Torrent - Մեկնարկել/կանգնեցնել torrent-ները - - - - + + Open destination folder Բացել պարունակող պանակը - - + + No action Առանց գործողության - + Completed torrents: Ավարտված torrent-ները՝ - + Auto hide zero status filters - + Desktop Աշխատասեղան - + Start qBittorrent on Windows start up Մեկնարկել qBittorrent-ը Windows-ի հետ - + Show splash screen on start up Բացելիս ցուցադրել ծրագրի պատկերը - + Confirmation on exit when torrents are active Ծրագիրը փակելիս հաստատում պահանջել, եթե torrent-ները գործուն են - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB ԿԲ - + + Show free disk space in status bar + + + + Torrent content layout: - + Original Բնօրինակ - + Create subfolder Ստեղծել ենթապանակ - + Don't create subfolder Չստեղծել ենթապանակ - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Ավելացնել... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time Որտեղից՝ - + To: To end time Որտեղ՝ - + Find peers on the DHT network - + Փնտրել ցանցորդներ DHT ցանցում - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption Թույլատրել գաղտնագրումը - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS ընթերցիչ - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: Յուրաքանչյուր ալիքի համար հոդվածների առավ. ք-ը. - - - + + + min minutes Նվազ. - + Seeding Limits Բաժանման սահմանաչափ - - Pause torrent - Դադարեցնել torrent-ը - - - + Remove torrent Հեռացնել torrent-ը - + Remove torrent and its files - Հեռացնել torrent-ը և իր նիշքերը + Հեռացնել torrent-ը և իր ֆայլերը - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL՝ + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... Խմբագրել ինքնաներբեռնման կանոնները... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: Զտիչներ՝ - + Web User Interface (Remote control) - + IP address: IP հասցե՝ - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Երբեք - + ban for: - + Session timeout: - + Disabled Կասեցված է - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6084,441 +6435,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area Թաքցնել qBittorrent-ը իրազեկման գոտում - + + Search + Որոնել + + + + WebUI + + + + Interface Միջերես - + Language: Լեզու՝ - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Դարակի պատկերակի ոճը՝ - - + + Normal Միջին - + File association Նիշքի համակցում - + Use qBittorrent for .torrent files - Օգտագործել qBittorrent-ը .torrent նիշքերի համար + Օգտագործել qBittorrent-ը «.torrent» ֆայլերի համար - + Use qBittorrent for magnet links Օգտագործել qBittorrent-ը magnet հղումների համար - + Check for program updates Ստուգել արդիացումների առկայությունը - + Power Management Հոսանքի կառավարում - + + &Log Files + + + + Save path: Պահելու ուղին՝ - + Backup the log file after: - Պահուստավորել գրանցամատյանի նիշքը այս չափից հետո՝ + Պահուստավորել մատյանի ֆայլը այս չափից հետո՝ - + Delete backup logs older than: Ջնջել պահուստային գրանցամատյանը, որը ավելի հին է քան՝ - + + Show external IP in status bar + + + + When adding a torrent Torrent ավելացնելիս - + Bring torrent dialog to the front Երկխոսությունը պահել առջևում - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! Զգուշացո՛ւմ: Հնարավոր է տվյալների կորուստ: - + Saving Management Պահելու կառավարում - + Default Torrent Management Mode: - + Manual Ձեռքով - + Automatic - Ինքնաշխատ + Ինքնաբերաբար - + When Torrent Category changed: - + Relocate torrent Վերատեղորոշել torrent-ը - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories Օգտագործել ենթաանվանակարգեր - + Default Save Path: Պահելու սկզբնադիր ուղին՝ - + Copy .torrent files to: - Պատճենել .torrent նիշքերը այստեղ՝ + Պատճենել .torrent ֆայլերը դեպի՝ - + Show &qBittorrent in notification area Ցուցա&դրել qBittorrent-ը ծանուցման տարածքում - - &Log file - &Գրանցամատյանի նիշք - - - + Display &torrent content and some options Ցու&ցադրել torrent-ի պարունակությունը ու որոշ ընտրանքներ - + De&lete .torrent files afterwards - Հետագայում ջնջ&ել .torrent նիշքերը + Հետագայում ջնջ&ել .torrent ֆայլերը - + Copy .torrent files for finished downloads to: - Պատճենել ավարտված ներբեռնումների .torrent նիշքերը այստեղ՝ + Պատճենել ավարտված ներբեռնումների .torrent ֆայլերը դեպի՝ - + Pre-allocate disk space for all files - Նախօրոք տարածք հատկացնել սկավառակի վրա բոլոր նիշքերի համար + Նախապես սկավառակային տարածք հատկացնել բոլոր ֆայլերի համար - + Use custom UI Theme - + UI Theme file: - + UI ոճի ֆայլ՝ - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrent-ը փակելիս թաքցնել իրազեկման գոտում - + Monochrome (for dark theme) - + Միագույն (մուգ ոճի համար) - + Monochrome (for light theme) - + Միագույն (լուսավոր ոճի համար) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days օր - + months Delete backup logs older than 10 months ամիս - + years Delete backup logs older than 10 years տարի - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Միանգամից չսկսել բեռնումները - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Կցել .!qB ընդլայոնւմը անավարտ ֆայլերի համար - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ստուգված ֆայլեր - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: Ինքնաշխատորեն ավելացնել torrent-ները այստեղից՝ - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6535,766 +6927,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + Ստացող - + To: To receiver Որտեղ՝ - + SMTP server: SMTP սպասարկիչ. - + Sender - + Ուղարկող - + From: From sender Որտեղից՝ - + This server requires a secure connection (SSL) Սպասարկիչը պահանջում է անվտանգ միացում (SSL) - - + + Authentication - Ներկայացում + Նույնականացում - - - - + + + + Username: Մուտքանուն՝ - - - - + + + + Password: Գաղտնաբառ՝ - + Run external program - + Աշխատացնել արտաքին ծրագիր - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + TCP և μTP - + Listening Port - Մտնող դարպասը + Լսվում է մատույցը - + Port used for incoming connections: - Մուտքային կապուղիների դարպասը. + Մուտքային կապի մատույցը. - + Set to 0 to let your system pick an unused port - + Random Պատահական - + Use UPnP / NAT-PMP port forwarding from my router Օգտագործել UPnP / NAT-PMP դարպասի փոխանցում ռոութերից - + Connections Limits Միացումների սահ-ում - + Maximum number of connections per torrent: Կապուղիների առավ. քանակը torrent-ի համար. - + Global maximum number of connections: Կապուղիների առավ. քանակը - + Maximum number of upload slots per torrent: Փոխանցումների սլոթների առավ. քանակը torrent-ի համար. - + Global maximum number of upload slots: - + Proxy Server Միջնորդը - + Type: Տեսակ՝ - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: - Խնամորդ՝ + Հյուրընկալ՝ - - - + + + Port: - Միացք՝ + Մատույց՝ - + Otherwise, the proxy server is only used for tracker connections Այնուհանդերձ միջնորդը օգտ. է միայն ուղղորդիչներին միանալու համար - + Use proxy for peer connections - Օգտ. միջնորդը՝ peer միացումների համար + Օգտվել փոխանորդից՝ ցանցորդային միացումների համար - + A&uthentication &Իսկորոշում - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): Ֆիլտրերի ճանապարհը (.dat, .p2p, .p2b). - + Reload the filter Վերաբեռնել զտիչը - + Manually banned IP addresses... - + Ձեռքով արգելափակված IP հասցեներ... - + Apply to trackers Գործադրել գրանցորդների նկատմամբ - + Global Rate Limits Սահմանափակումները - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s ԿԲ/վ - - + + Upload: Վերբեռ.՝ - - + + Download: Ներբեռ.՝ - + Alternative Rate Limits - + Start time Մեկնարկի ժամը - + End time Ավարտիի ժամը - + When: Երբ՝ - + Every day Ամեն օր - + Weekdays Աշխատանքային օրեր - + Weekends Հանգստյան օրեր - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead Կիրառել սահ-փակում գերազանցելու դեպքում - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy Գաղտնիություն - + Enable DHT (decentralized network) to find more peers - Միացնել DHT՝ լրացուցիչ peer-եր գտնելու համար + Կարողացնել DHT-ն (ապակենտրոն ցանց)՝ ավելի շատ ցանցորդներ գտնելու համար - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - Փոխանակել peer-երը համատեղելի Bittorrent ծրագրերի միջև (µTorrent, Vuze, ...) + Փոխանակել ցանցորդներով՝ համատեղելի Bittorrent կլիենտների միջև (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - Միացնել Peer-երի փոխանակումը (PeX)՝ լրացուցիչ peer-եր գտնելու համար + Կարողացնել ցանցորդների փոխանակումը (PeX)՝ ավելի շատ ցանցորդներ գտնելու համար - + Look for peers on your local network - Ձեր լոկալ ցանցի peer-երը + Փնտրել ցանորդներին Ձեր տեղական ցանցում - + Enable Local Peer Discovery to find more peers - Միացնել Լոկալ Peer-երի բացահայտումը + Կարողացնել տեղական ցանցորդների բացահայտումը՝ ավելի շատ ցանցորդներ գտնելու համար - + Encryption mode: Գաղտնագրման գործելաձև՝ - + Require encryption Պահանջել գաղտնագրում - + Disable encryption Անջատել գաղտնագրումը - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Միացնել անանուն եղանակը - + Maximum active downloads: Առավելագ. ակտիվ բեռնումներ. - + Maximum active uploads: Առավելագ. ակտիվ փոխանցումներ. - + Maximum active torrents: Առավելագ. ակտիվ torrent-ներ. - + Do not count slow torrents in these limits Չհաշվել դանդաղ torrent-ները այս սահ-մբ - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds վ - + Torrent inactivity timer: - + then ապա - + Use UPnP / NAT-PMP to forward the port from my router Օգտ. UPnP / NAT-PMP՝ ռոութերից փոխանցելու համար - + Certificate: Վկայագիր՝ - + Key: Բանալի՝ - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Տեղեկություններ վկայագրերի մասին</a> - + Change current password Փոխել ընթացիկ գաղտնաբառը - - Use alternative Web UI + + Files location: + Ֆայլերի վայր՝՝ + + + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> - - Files location: - Նիշքերի տեղը՝ - - - + Security Անվտանգություն - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Սպասարկիչը. - + Register Գրանցվել - + Domain name: Տիրույթի անվանում՝ - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name - + %L: Category - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - %C: Նիշքերի քանակը + %C՝ Ֆայլերի քանակը - + %Z: Torrent size (bytes) - + %T: Current tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (չկա) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate Վկայագիր - + Select certificate Ընտրել վկայագիր - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Ընտրել պանակը մշտադիտարկելու համար - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory Ընտրեք արտածման տեղը - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Պիտակներ (ստորակետով բաժանված) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Ընտրեք պահպանելու տեղը - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters Բոլոր աջակցվող զտիչները - + The alternative WebUI files location cannot be blank. - + 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 կանոններ են կիրառվել։ - + Preferences Նախընտրություններ - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7302,243 +7739,248 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Անհայտ - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Ցանցորդ DHT-ից - + Peer from PEX - + Ցանցորդ PEX-ից - + Peer from LSD - + Ցանցորդ PEX-ից - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Երկիր/տարածաշրջան - - - IP/Address - - - Port - Միացք + IP/Address + IP/հասցե + Port + Մատույց + + + Flags Դրոշակներ - + Connection Կապակցում - + Client i.e.: Client application Սպասառու - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. Այժմեականություն - + Files i.e. files that are being downloaded right now - Նիշքեր + Ֆայլեր - + Column visibility Սյունակի տեսանելիություն - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - + Ավելացնել ցանցորդներ... - - + + Adding peers Մասնակիցների ավելացում - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently Մեկընդմիշտ արգելափակել մասնակցին - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A - + Copy IP:port - + Պատճենել IP:port-ը @@ -7546,7 +7988,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Add Peers - + Ավելացնել ցանցորդներ @@ -7554,14 +7996,14 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port - + Ձևաչափ՝ IPv4:port / [IPv6]:port No peer entered - + Ցանցորդներ մուտքագրված չեն @@ -7571,12 +8013,12 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Invalid peer - Անվավեր մասնակից + Անվավեր ցանցորդ The peer '%1' is invalid. - Մասնակից '%1'-ը անվավեր է: + «%1» ցանցորդը անվավեր է: @@ -7595,27 +8037,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Նիշքերը այս մասում՝ - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7628,58 +8070,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Որոնող խրոցակներ - + Installed search plugins: Որոնման տեղադրված խրվակները՝ - + Name Անվանում - + Version Տարբերակ - + Url Url - - + + Enabled Միացված է - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Տեղադրել նորը - + Check for updates Ստուգել արդիացումների առկայությունը - + Close Փակել - + Uninstall Ապատեղադրել @@ -7798,98 +8240,65 @@ Those plugins were disabled. Խրոցակի աղբյուրը - + Search plugin source: Փնտրման խրոցակի աղբյուրը. - + Local file - Տեղային նիշք + Տեղական ֆայլ - + Web link Վեբ հղում - - PowerManagement - - - qBittorrent is active - qBittorrent-ը գործուն է - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Դիտել - + Name Անվանում - + Size Չափ - + Progress Ընթացք - + Preview impossible Նախադիտումը հնարավոր չէ - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7902,27 +8311,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7942,7 +8351,7 @@ Those plugins were disabled. Peers - Մասնակիցներ + Ցանցորդներ @@ -7963,12 +8372,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Ներբեռնվել է՝ - + Availability: Հասանելիություն՝ @@ -7983,53 +8392,53 @@ Those plugins were disabled. Փոխանցում - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Գործունության ժամանակ՝ - + ETA: Կատարման ժամանակ՝ - + Uploaded: Վերբեռնվել է՝ - + Seeds: - Բաժանողներ՝ + Սերմնացաններ՝ - + Download Speed: Ներբեռման արագություն՝ - + Upload Speed: Վերբեռնման արագություն՝ - + Peers: - Մասնակիցներ՝ + Ցանցորդներ - + Download Limit: Ներբեռնման սահմանաչափ՝ - + Upload Limit: Վերբեռնման սահմանաչափ՝ - + Wasted: Վնասված է՝ @@ -8039,227 +8448,254 @@ Those plugins were disabled. Կապակցումներ՝ - + Information Տեղեկություններ - + Info Hash v1: - + Info Hash v2: - + Comment: Մեկնաբանություն՝ - + Select All Նշել բոլորը - + Select None Չնշել բոլորը - + Share Ratio: Կիսվելու հարաբերություն՝ - + Reannounce In: Կվերաազդարարվի՝ - + Last Seen Complete: Վերջին անգամ ավարտված է՝ - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Ընդհանուր չափ՝ - + Pieces: Մասեր՝ - + Created By: Ստեղծել է՝ - + Added On: Ավելացվել է՝ - + Completed On: Ավարտված է՝ - + Created On: Ստեղծվել է՝ - + + Private: + + + + Save Path: Պահելու ուղին՝ - + Never Երբեք - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (առկա է %3) - - + + %1 (%2 this session) %1 (%2 այս անգամ) - - + + + N/A - + + Yes + Այո + + + + No + Ոչ + + + %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 միջինում) - - New Web seed - Նոր վեբ շղթա + + Add web seed + Add HTTP source + - - Remove Web seed - Հեռացնել վեբ շղթան + + Add web seed: + - - Copy Web seed URL - Պատճենել վեբ շղթայի URL-ն + + + This web seed is already in the list. + - - Edit Web seed URL - Խմբագրել վեբ շղթայի URL-ն - - - + Filter files... - Զտել նիշքերը... + Զտել ֆայլերը... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing Վեբ շղթայի խմբագրում - + Web seed URL: - Վեբ շղթայի URL՝ + Վեբ հատիկի URL-ը՝ RSS::AutoDownloader - - + + Invalid data format. Տվյալների անվավեր ձևաչափ - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Տվյալների անվավեր ձևաչափ - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8267,22 +8703,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8318,12 +8754,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Անվավեր RSS սնուցիչ: - + %1 (line: %2, column: %3, offset: %4). @@ -8331,103 +8767,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. Չի ստացվում տեղափոխել արմատային պանակը: - - + + Item doesn't exist: %1. Տարրը գոյություն չունի՝ %1: - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Չի ստացվում ջնջել արմատային պանակը: - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL՝ + + + + Refresh interval: + + + + + sec + վ + + + + Default + Լռելայն + + RSSWidget @@ -8447,8 +8924,8 @@ Those plugins were disabled. - - + + Mark items read Նշել որպես կարդացված @@ -8473,132 +8950,115 @@ Those plugins were disabled. - - + + Delete Ջնջել - + Rename... Անվանափոխել... - + Rename Անվանափոխել - - + + Update Թարմացնել - + New subscription... Նոր բաժանորդագրում... - - + + Update all feeds Թարմացնել բոլոր սնուցիչները - + Download torrent Ներբեռնել torrent-ը - + Open news URL Բացել նորության հղումը - + Copy feed URL Պատճենել ալիքի հղումը - + New folder... Նոր պանակ... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Ընտրեք պանակի անվանում - + Folder name: Պանակի անվանում՝ - + New folder Նոր պանակ - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: Անունը. - + Rename failed Անվանափոխումը չհաջողվեց - + Date: Ամսաթիվ՝ - + Feed: - + Author: Հեղինակ՝ @@ -8606,38 +9066,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 Չհաջողվեց ստուգել խրվակի արդիացման առկայությունը՝ %1 @@ -8667,12 +9127,12 @@ Those plugins were disabled. Minimum number of seeds - + Սերմնացանների նվազագույն քանակը Maximum number of seeds - + Սերմնացանների առավելագույն քանակը @@ -8692,7 +9152,7 @@ Those plugins were disabled. Seeds: - Բաժանողներ՝ + Սերմնացաններ՝ @@ -8712,132 +9172,142 @@ Those plugins were disabled. Չափ՝ - + 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 - Որոնիչ - - - + Filter search results... Զտիչի որոնման արդյունքներ... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere Ամենուրեք - + Use regular expressions Օգտ. կանոնավոր սահ-ներ - + Open download window - + Download Ներբեռնել - + Open description page - + Copy Պատճենել - + Name Անվանում - + Download link - + Ներբեռնման հղում - + Description page URL - + Searching... Որոնվում է... - + Search has finished Որոնումը ավարտվել է - + Search aborted Որոնումը ընդհատվեց - + An error occurred during search... Սխալ՝ փնտրելիս… - + Search returned no results Ոչնինչ չի գտնվել - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Սյունակների տեսանելիությունը - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8845,104 +9315,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories Բոլոր անվանակարգերը - + Movies Ֆիլմեր - + TV shows Հաղորդումներ - + Music Երաժշտություն - + Games Խաղեր - + Anime Անիմե - + Software Ծրագրեր - + Pictures Պատկերներ - + Books Գրքեր - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - Չհաջողվեց ներբեռնել խրվակի նիշքը: %1 + Չհաջողվեց ներբեռնել բաղադրիչի ֆայլը: %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8952,113 +9422,144 @@ Those plugins were disabled. - - - - Search Որոնել - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... Որոնող խրոցակներ... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Օրինակ՝ - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins Բոլոր խրոցակները - + Only enabled - + + + Invalid data format. + Տվյալների անվավեր ձևաչափ + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Փակել ներդիրը - + Close all tabs - + Փակել բոլոր ներդիրները - + Select... Նշել... - - - + + Search Engine Որոնիչ - + + Please install Python to use the Search Engine. - + Empty search pattern Դաշտը դատարկ է - + Please type a search pattern first Նախ գրեք, թե ինչ փնտրել - + + Stop Կանգնեցնել + + + SearchWidget::DataStorage - - Search has finished - Որոնումը ավարտվել է + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Որոնումը ձախողվել է + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9171,34 +9672,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Վերբեռ.՝ - - - + + + - - - + + + KiB/s ԿԲ/վ - - + + Download: Ներբեռ.՝ - + Alternative speed limits Արագության այլընտրանքային սահմանաչափ @@ -9296,7 +9797,7 @@ Click the "Search plugins..." button at the bottom right of the window 3 Hours - 24 ժամ {3 ?} + @@ -9390,32 +9891,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - Կապակցված մասնակիցներ՝ + Միացված ցանցորդներ՝ - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: Պահնակի ընդհանուր չափ՝ @@ -9430,12 +9931,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9454,51 +9955,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: - Կապակցման վիճակը՝ + Միացման վիճակը՝ - - + + No direct connections. This may indicate network configuration problems. Չկան ուղիղ կապակցումներ։ - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT. %1 հանգույց - + qBittorrent needs to be restarted! - - - + + + Connection Status: Կապակցման վիճակը՝ - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Անցանց: Սա նշանակում է, որ qBittorrent-ը չկարողացավ կապակցել ընտրված միացքին։ - + Online Ցանցում է - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Սեղմեք՝ այլընտրանքային սահ-ներին անցնելու համար - + Click to switch to regular speed limits Սեղմեք՝ հիմնական սահ-ներին անցնելու համար @@ -9528,13 +10055,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Վերսկսված (0) + Running (0) + - Paused (0) - Դադարեցված է (0) + Stopped (0) + @@ -9597,34 +10124,34 @@ Click the "Search plugins..." button at the bottom right of the window Ավարտված (%1) - - Paused (%1) - Դադարեցված է (%1) + + Running (%1) + - - Moving (%1) + + Stopped (%1) - Resume torrents - Շարունակել torrent-ները + Start torrents + - Pause torrents - Դադարեցնել torrent-ները + Stop torrents + + + + + Moving (%1) + Տեղափոխվում է (%1) Remove torrents - - - - - Resumed (%1) - Վերսկսված (%1) + Հեռացնել torrent-ները @@ -9654,12 +10181,12 @@ Click the "Search plugins..." button at the bottom right of the window Checking (%1) - + Ստուգվում է (%1) Errored (%1) - Սխալներով (%1) + Սխալվեց (%1) @@ -9697,31 +10224,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Հեռացնել չօգտագործվող պիտակները - - - Resume torrents - Շարունակել torrent-ները - - - - Pause torrents - Դադարեցնել torrent-ները - Remove torrents + Հեռացնել torrent-ները + + + + Start torrents - - New Tag - Նոր պիտակ + + Stop torrents + Tag: Պիտակ՝ + + + Add tag + + Invalid tag name @@ -9768,7 +10295,7 @@ Click the "Search plugins..." button at the bottom right of the window Default - + Լռելայն @@ -9865,32 +10392,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Անվանում - + Progress Ընթացք - + Download Priority Ներբեռ. առաջնահերթություն - + Remaining Մնացել է - + Availability Հասանելիություն - + Total Size Ընդհանուր չափ @@ -9935,98 +10462,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Անվանափոխման սխալ - + Renaming - + New name: Նոր անվանում՝ - + Column visibility Սյունակների տեսանելիությունը - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Բացել - + Open containing folder - + Rename... Անվանափոխել... - + Priority Առաջնահերթություն - - + + Do not download Չներբեռնել - + Normal Միջին - + High Բարձր - + Maximum Առավելագույն - + By shown file order - Ըստ նիշքերի ցուցադրվող ցանկի + Ըստ ցուցադրվող ֆայլի հերթականության - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10034,17 +10561,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10059,7 +10586,7 @@ Please choose a different name and try again. Select file/folder to share - Ընտրել նիշքը/պանակը կիսվելու համար + Ընտրել ֆայլ/պանակ՝ տարածելու համար @@ -10073,25 +10600,25 @@ Please choose a different name and try again. - + Select file - Ընտրել նիշք + Ընտրել ֆայլ - + Select folder Ընտրել պանակ Settings - + Կարգավորումներ Torrent format: - + Torrent-ի ձևաչափ՝ @@ -10154,120 +10681,116 @@ Please choose a different name and try again. Դաշտեր - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: Ուղղորդիչի հղումները. - + Comments: Մեկնաբանություններ՝ - + Source: - Աղբյուր. + Աղբյուր՝ - + Progress: Ընթացք` - + Create Torrent - + Ստեղծել torrent - - + + Torrent creation failed - + Torrent-ի ստեղծումը ձախողվեց - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) - Torrent նիշքեր (*.torrent) + Torrent ֆայլեր (*.torrent) - Reason: %1 - Պատճառը. %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Պատճառ՝ «%1» - + Add torrent failed - + Torrent-ի ավելացումը ձախողվեց - + Torrent creator - + Torrent-ի ստեղծող - + Torrent created: - + Torrent-ը ստեղծվել է՝ TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10275,44 +10798,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Magnet ֆայլը չափազանց մեծ է: Ֆայլ՝ %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Անվավեր մետատվյալներ - - TorrentOptionsDialog @@ -10341,173 +10851,161 @@ Please choose a different name and try again. - + Category: Անվանակարգ՝ - - Torrent speed limits + + Torrent Share Limits - + Download: Ներբեռ.՝ - - + + - - + + Torrent Speed Limits + + + + + KiB/s ԿԲ/վ - + These will not exceed the global limits - + Upload: Վերբեռ.՝ - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - հարաբերություն - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Բեռնել հաջորդական կարգով - + Disable PeX for this torrent - + Download first and last pieces first Սկզբում ներբեռնել առաջին ու վերջին մասերը - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Ընտրեք պահելու ուղին - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - + Լռելայն - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - Նվազ. + Նվազ. - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Հեռացնել torrent-ը + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10520,32 +11018,32 @@ Please choose a different name and try again. - - New Tag - Նոր պիտակ + + Add tag + - + Tag: Պիտակ՝ - + Invalid tag name Անվավեր պիտակի անուն - + Tag name '%1' is invalid. - + Tag exists Պիտակը գոյություն ունի - + Tag name already exists. @@ -10553,115 +11051,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer Առաջնահերթությունը պետք է ամբողջ թիվ լինի - + Priority is not valid Առաջնահերթությունը անվավեր է - + Torrent's metadata has not yet downloaded Torrent-ի մետատվյալները դեռ չեն ներբեռնվել - + File IDs must be integers Նիշքի ID-ները ամբողջ թվեր պիտի լինի - + File ID is not valid Նիշքի ID-ն անվավեր է - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty Պահելու ուղին չի կարող դատարկ լինել - - + + Cannot create target directory - - + + Category cannot be empty Անվանակարգը չի կարող դատարկ լինել - + Unable to create category Չհաջողվեց ստեղծել անվանակարգ - + Unable to edit category Չհաջողվեց խմբագրել անվանակարգը - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name Անվանակարգի սխալ անվանում @@ -10687,196 +11200,191 @@ Please choose a different name and try again. TrackerListModel - + Working Աշխատում է - + Disabled Կասեցված է - + Disabled for this torrent - + This torrent is private Այս torrent-ը անձնական է - + N/A - + Updating... Թարմացվում է... - + Not working Չի աշխատում - + Tracker error - + Unreachable - + Not contacted yet Դեռ չի միացնել - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - Վիճակ - - - - Peers - Peer-եր - - - - Seeds - Seed-եր - - - - Leeches - Քաշողներ - - - - Times Downloaded - - - - - Message - Հաղորդագրություն - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + Վիճակ + + + + Peers + Ցանցորդներ + + + + Seeds + Սերմնացաններ՝ + + + + Leeches + Քաշողներ + + + + Times Downloaded + + + + + Message + Հաղորդագրություն + TrackerListWidget - + This torrent is private Այս torrent-ը անձնական է - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker Ջնջել ուղղորդիչը - + Copy tracker URL Պատճենել գրանցորդի URL-ը - + Force reannounce to selected trackers Ստիպողաբար վերաազդարարել ընտրված գրանցորդներին - + Force reannounce to all trackers Ստիպողաբար վերաազդարարել բոլոր գրանցորդներին - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility Սյունակների տեսանելիությունը @@ -10894,37 +11402,37 @@ Please choose a different name and try again. Ավելացվող ուղղորդիչների ցանկը. - + µTorrent compatible list URL: µTorrent-ի հետ համատեղելի հղումներ. - + Download trackers list - + Add Ավելացնել - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10932,62 +11440,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Զգուշացում (%1) - + Trackerless (%1) Անգրանցորդ (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Ջնջել ուղղորդիչը - - Resume torrents - Շարունակել torrent-ները - - - - Pause torrents - Դադարեցնել torrent-ները - - - - Remove torrents + + Start torrents - + + Stop torrents + + + + + Remove torrents + Հեռացնել torrent-ները + + + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Բոլորը (%1) @@ -10996,7 +11504,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11088,11 +11596,6 @@ Please choose a different name and try again. 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. Շարունակման տվյալների վերստուգում - - - Paused - Դադարեցված է - Completed @@ -11107,7 +11610,7 @@ Please choose a different name and try again. Missing Files - Նիշքեր են բացակայում + Բացակայող ֆայլեր @@ -11116,220 +11619,252 @@ Please choose a different name and try again. Սխալներով - + Name i.e: torrent name Անվանում - + Size i.e: torrent size Չափը - + Progress % Done Ընթացք - + + Stopped + Կանգնեցված + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Վիճակ - + Seeds i.e. full sources (often untranslated) - Բաժանողներ + Սերմնացաններ՝ - + Peers i.e. partial sources (often untranslated) - Մասնակիցներ + Ցանցորդներ - + Down Speed i.e: Download speed Ներբեռ. արագ. - + Up Speed i.e: Upload speed Վերբեռ. արագ. - + Ratio Share ratio Հարաբերություն - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Մնացել է - + Category Անվանակարգ - + Tags Պիտակներ - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Ավելացվել է ցանկին - + Completed On Torrent was completed on 01/01/2010 08:00 Ավարտված է - + Tracker Գրանցորդ - + Down Limit i.e: Download limit Ներբեռ. սահ-ում - + Up Limit i.e: Upload limit Վեր. սահ-ում - + Downloaded Amount of data downloaded (e.g. in MB) Ներբեռնվել է - + Uploaded Amount of data uploaded (e.g. in MB) Վերբեռնված - + 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) Աշ/շրջանի վերբեռնում - + Remaining Amount of data left to download (e.g. in MB) Մնացել է - + Time Active - Time (duration) the torrent is active (not paused) - Գործունության ժամանակ + Time (duration) the torrent is active (not stopped) + Ակտիվ ժ-ը - + + Yes + Այո + + + + No + Ոչ + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Ավարտված է - + Ratio Limit Upload share ratio limit Հարաբերության սահմանաչափ - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Վերջին անգամ ավարտվել է - + Last Activity Time passed since a chunk was downloaded/uploaded - + Total Size i.e. Size including unwanted data Ընդհանուր չափ - + Availability The number of distributed copies of the torrent Հասանելիություն - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A - + %1 ago e.g.: 1h 20m ago %1 առաջ - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (բաժանվել է %2) @@ -11338,339 +11873,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Սյունակների տեսանելիությունը - + Recheck confirmation Վերստուգման հաստատում - + Are you sure you want to recheck the selected torrent(s)? Վստա՞հ եք, որ ուզում եք վերստուգել ընտրված torrent-(ներ)ը: - + Rename Անվանափոխել - + New name: Նոր անվանում՝ - + Choose save path Ընտրեք պահելու ուղին - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Ավելացնել պիտակներ - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + «.torrent» ֆայլի արտահանման սխալ - + Remove All Tags Հեռացնել բոլոր պիտակները - + Remove all tags from selected torrents? Հեռացնե՞լ բոլոր պիտակները ընտրված torrent-ներից: - + Comma-separated tags: Ստորակետով բաժանված պիտակներ՝ - + Invalid tag - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Շարունակել - - - - &Pause - Pause the torrent - &Դադարեցնել - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Նախա&դիտել ֆայլը... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Ա&րտահանել .torrent-ը... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Բեռնել հաջորդական կարգով - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Սկզբում ներբեռնել առաջին ու վերջին մասերը - + Automatic Torrent Management Torrent-ների ինքնաշխատ կառավարում - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Գերբաժանման գործելաձև @@ -11715,28 +12230,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11744,7 +12259,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11775,20 +12295,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11796,32 +12317,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11846,7 +12367,7 @@ Please choose a different name and try again. File read error. File: "%1". Error: "%2" - + Ֆայլի կարդացման սխալ: Ֆայլ՝ «%1»: Սխալ՝ «%2» @@ -11913,72 +12434,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11986,125 +12507,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Անհայտ սխալ + + misc - + B bytes Բ - + KiB kibibytes (1024 bytes) ԿԲ - + MiB mebibytes (1024 kibibytes) ՄԲ - + GiB gibibytes (1024 mibibytes) ԳԲ - + TiB tebibytes (1024 gibibytes) ՏԲ - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second - + %1s e.g: 10 seconds - %1րոպե {1s?} + - + %1m e.g: 10 minutes %1րոպե - + %1h %2m e.g: 3 hours 5 minutes %1ժ %2ր - + %1d %2h e.g: 2 days 10 hours %1օր %2ժ - + %1y %2d e.g: 2 years 10 days - %1օր %2ժ {1y?} {2d?} + - - + + Unknown Unknown (size) Անհայտ - + qBittorrent will shutdown the computer now because all downloads are complete. Բոլոր ներբեռնումները ավարտվել են։ Համակարգիչը անջատվում է։ - + < 1m < 1 minute < 1ր diff --git a/src/lang/qbittorrent_id.ts b/src/lang/qbittorrent_id.ts index a259d7761..c5227dd2e 100644 --- a/src/lang/qbittorrent_id.ts +++ b/src/lang/qbittorrent_id.ts @@ -14,75 +14,75 @@ Tentang - + Authors Pengembang - + Current maintainer Pengelola saat ini - + Greece Yunani - - + + Nationality: Kewarganegaraan: - - + + E-mail: E-mail: - - + + Name: Nama: - + Original author Pengembang asli - + France Perancis - + Special Thanks Apresiasi - + Translators Penerjemah - + License Lisensi - + Software Used Perangkat Lunak yang Digunakan - + qBittorrent was built with the following libraries: qBittorrent dibuat dengan pustaka berikut: - + Copy to clipboard Salin @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Hak cipta %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Hak cipta %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Simpan di - + Never show again Jangan pernah tampilkan lagi - - - Torrent settings - Pengaturan torrent - Set as default category @@ -191,12 +186,12 @@ Jalankan torrent - + Torrent information Informasi torrent - + Skip hash check Lewati pengecekan hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Gunakan path lain untuk torrent yang tidak lengkap + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Kondisi penghentian: - - + + None Tidak ada - - + + Metadata received Metadata diterima - + Torrents that have metadata initially will be added as stopped. - + Torrent yang dilengkapi metadata akan ditambahkan dan ditandai sebagai dihentikan. - - + + Files checked File sudah diperiksa - + Add to top of queue Tambahkan ke antrian teratas - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Jika diaktifkan, berkas .torrent tidak akan dihapus terlepas dari pengaturan pada halaman "Unduhan" dari dialog Opsi - + Content layout: Tata letak konten: - + Original Asli - + Create subfolder Buat subfolder - + Don't create subfolder Jangan buat subfolder - + Info hash v1: Informasi hash v1: - + Size: Ukuran: - + Comment: Komentar: - + Date: Tanggal: @@ -329,151 +329,147 @@ Ingat tempat terakhir menyimpan - + Do not delete .torrent file Jangan hapus berkas .torrent - + Download in sequential order Unduh dengan urutan sekuensial - + Download first and last pieces first Unduh bagian awal dan akhir dahulu - + Info hash v2: Informasi hash v2: - + Select All Pilih Semua - + Select None Pilih Tidak Ada - + Save as .torrent file... Simpan sebagai berkas .torrent... - + I/O Error Galat I/O - + Not Available This comment is unavailable Tidak Tersedia - + Not Available This date is unavailable Tidak Tersedia - + Not available Tidak tersedia - + Magnet link Tautan magnet - + Retrieving metadata... Mengambil metadata... - - + + Choose save path Pilih jalur penyimpanan - + No stop condition is set. Kondisi penghentian tidak ditentukan. - + Torrent will stop after metadata is received. Torrent akan berhenti setelah metadata diterima. - Torrents that have metadata initially aren't affected. - Torrent yang sudah memiliki metadata tidak akan terpengaruh. - - - + Torrent will stop after files are initially checked. Torrent akan berhenti setelah berkas diperiksa lebih dahulu. - + This will also download metadata if it wasn't there initially. Ini juga akan mengunduh metadata jika sebelumnya tidak ada. - - + + N/A T/A - + %1 (Free space on disk: %2) %1 (Ruang kosong di disk: %2) - + Not available This size is unavailable. Tidak tersedia - + Torrent file (*%1) Berkas torrent (*%1) - + Save as torrent file Simpan sebagai berkas torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Tidak dapat mengekspor berkas metadata torrent '%1'. Alasan: %2. - + Cannot create v2 torrent until its data is fully downloaded. Tidak dapat membuat torrent v2 hingga datanya terunduh semua. - + Filter files... Filter berkas... - + Parsing metadata... Mengurai metadata... - + Metadata retrieval complete Pengambilan metadata komplet @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Mengunduh torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Gagal menambahkan torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Terdeteksi duplikat dalam penambahan torrent. Source: %1. Existing torrent: %2. Result: %3 - - - + Merging of trackers is disabled Penggabungan pelacak dinonaktifkan - + Trackers cannot be merged because it is a private torrent Pelacak tidak dapat digabungkan karena merupakan torrent privat - + Trackers are merged from new source Pelacak digabungkan dari sumber baru + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Batas berbagi torrent + Batas berbagi torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Periksa ulang torrent saat selesai - - + + ms milliseconds ms - + Setting Pengaturan - + Value Value set for this setting Nilai - + (disabled) (nonaktif) - + (auto) (otomatis) - + + min minutes menit - + All addresses Semua alamat - + qBittorrent Section Bagian qBittorrent - - + + Open documentation Buka dokumentasi - + All IPv4 addresses Semua alamat IPv4 - + All IPv6 addresses Semua alamat IPv6 - + libtorrent Section Bagian libtorrent - + Fastresume files Berkas lanjutan cepat - + SQLite database (experimental) Database SQLite (eksperimental) - + Resume data storage type (requires restart) Lanjutkan tipe data penyimpanan (memerlukan mulai ulang) - + Normal Normal - + Below normal Di bawah normal - + Medium Medium - + Low Rendah - + Very low Sangat rendah - + Physical memory (RAM) usage limit Batas penggunaan memori fisik (RAM) - + Asynchronous I/O threads Asingkron rangkaian I/O - + Hashing threads Threads hash - + File pool size Ukuran pool file - + Outstanding memory when checking torrents - + Memori berlebih saat melakukan pengecekan torrent - + Disk cache Cache diska - - - - + + + + + s seconds s - + Disk cache expiry interval Selang kedaluwarsa tembolok diska - + Disk queue size Ukuran antrian disk - - + + Enable OS cache Aktifkan tembolok OS - + Coalesce reads & writes Gabungkan baca & tulis - + Use piece extent affinity - + Gunakan afinitas tingkat potongan - + Send upload piece suggestions Kirim saran potongan unggahan - - - - + + + + + 0 (disabled) 0 (nonaktif) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Interval menyimpan data yang perlu dilanjutkan [0: dimatikan] - + Outgoing ports (Min) [0: disabled] - + Port keluar (minimum) [0: dimatikan] - + Outgoing ports (Max) [0: disabled] - + Port keluar (maksimum) [0: dimatikan] - + 0 (permanent lease) - + 0 (sewa permanen) - + UPnP lease duration [0: permanent lease] - + Durasi sewa UPnP [0: sewa permanen] - + Stop tracker timeout [0: disabled] - + Hentikan batas waktu pelacak [0: dinonaktifkan] - + Notification timeout [0: infinite, -1: system default] - + Batas waktu durasi pemberitahuan [0: tak terbatas, -1: default sistem] - + Maximum outstanding requests to a single peer - + Maksimum permintaan yang belum terselesaikan ke satu rekan kerja - - - - - + + + + + KiB KiB - + (infinite) (tak ter-hingga) - + (system default) (bawaan sistem) - + + Delete files permanently + Menghapus file secara permanen + + + + Move files to trash (if possible) + Pindahkan file ke tempat sampah (jika memungkinkan) + + + + Torrent content removing mode + Mode menghapus konten torrent + + + This option is less effective on Linux Pilihan ini kurang efektif di piranti Linux - + Process memory priority Prioritas proses memori - + Bdecode depth limit - + Bdecode token limit - + Default Bawaan - + Memory mapped files - + Berkas yang dipetakan pada memori - + POSIX-compliant + POSIX-compliant + + + + Simple pread/pwrite - + Disk IO type (requires restart) - + Tipe IO diska (perlu mulai ulang) - - + + Disable OS cache Matikan tembolok Sistem Operasi - - - Disk IO read mode - - - - - Write-through - - - - - Disk IO write mode - - + Disk IO read mode + Mode baca IO diska + + + + Write-through + Write-through + + + + Disk IO write mode + Mode tulis IO diska + + + Send buffer watermark Kirim tanda air buffer - + Send buffer low watermark Kirim tanda air buffer rendah - + Send buffer watermark factor Kirim tanda air buffer factor - + Outgoing connections per second Koneksi keluar per detik - - + + 0 (system default) 0 (bawaan sistem) - + Socket send buffer size [0: system default] - + Ukuran buffer keluar socket [0: default sistem] - + Socket receive buffer size [0: system default] - + Ukuran buffer masuk socket [0: default sistem] - + Socket backlog size + Ukuran backlog socket + + + + Save statistics interval [0: disabled] + How often the statistics file is saved. - + .torrent file size limit - + Batas ukuran file .torrent - + Type of service (ToS) for connections to peers - + Prefer TCP Pilih TCP - + Peer proportional (throttles TCP) Proporsi rekan (men-throttle TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Dukungan internationalized domain name (IDN) - + Allow multiple connections from the same IP address Izinkan banyak koneksi dari Alamat IP yang sama - + Validate HTTPS tracker certificates Validasi sertifikat pelacak HTTPS - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + Kustomisasikan instance nama aplikasi - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Interval penyegaran - + Resolve peer host names Singkap nama host rekan - + IP address reported to trackers (requires restart) + Alamat IP yang dilaporkan ke pelacak (perlu mulai ulang) + + + + Port reported to trackers (requires restart) [0: listening port] - + Reannounce to all trackers when IP or port changed Umumkan kembali ke semua pelacak saat IP atau port diubah - + Enable icons in menus Aktifkan ikon di menu - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files Aktifkan karantina untuk file yang diunduh - + Enable Mark-of-the-Web (MOTW) for downloaded files Aktifkan Mark-of-the-Web (MOTW) untuk file yang diunduh - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) (Deteksi otomatis jika kosong) - + Python executable path (may require restart) + Jalur file executable Python (mungkin perlu mulai ulang) + + + + Start BitTorrent session in paused state - + + sec + seconds + det + + + + -1 (unlimited) + -1 (unlimited) + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + Confirm removal of tracker from all torrents Konfirmasi penghapusan pelacak dari semua torrent - + Peer turnover disconnect percentage - + Peer turnover threshold percentage - + Peer turnover disconnect interval - + Resets to default if empty Reset ke default jika kosong - + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Tampilkan notifikasi - + Display notifications for added torrents Tampilkan notifikasi untuk torrent yang ditambahkan - + Download tracker's favicon Unduh favicon milik tracker - + Save path history length Simpan riwayat panjang jalur - + Enable speed graphs Aktifkan grafik kecepatan - + Fixed slots Slot tetap - + Upload rate based Laju unggah dasar - + Upload slots behavior Unggah tingkah laku slot - + Round-robin Usul - + Fastest upload Unggah cepat - + Anti-leech Anti-leech - + Upload choking algorithm Unggah algoritma tersendat - + Confirm torrent recheck Konfirmasi pemeriksaan ulang torrent - + Confirm removal of all tags Konfirmasi pembuangan semua tanda - + Always announce to all trackers in a tier Selalu umumkan kepada semua traker dalam satu deretan - + Always announce to all tiers Selalu umumkan kepada semua deretan - + Any interface i.e. Any network interface Antarmuka apapun - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritma mode campuran %1-TCP - + Resolve peer countries Singkap negara rekanan - + Network interface Antarmuka jaringan - + Optional IP address to bind to - + Opsional alamat IP untuk menghubungkan ke - + Max concurrent HTTP announces - + Enable embedded tracker Aktifkan pelacak tertanam - + Embedded tracker port Port pelacak tertanam + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Berjalan dalam mode portabel. Mendeteksi otomatis folder profil di: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 Menggunakan direktori konfigurasi: %1 - + Torrent name: %1 Nama torrent: %1 - + Torrent size: %1 Ukuran torrent: %1 - + Save path: %1 Jalur penyimpanan: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent telah diunduh dalam %1. - + + Thank you for using qBittorrent. Terima kasih telah menggunakan qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, mengirimkan notifikasi email - + Add torrent failed Penambahan torrent gagal - + Couldn't add torrent '%1', reason: %2. Gagal menambahkan torrent '%1', reason: %2. - + The WebUI administrator username is: %1 Nama pengguna admin WebUI adalah: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + Anda harus mengatur kata sandimu sendiri di preferensi program. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + WebUI dimatikan! Untuk mengaktifkan WebUI, sunting file konfigurasi secara manual. - + Running external program. Torrent: "%1". Command: `%2` - + Jalankan program eksternal. Torrent: "%1". Perintah: '%2' - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + Torrent "%1%" sudah selesai diunduh. - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... Memuat torrent... - + E&xit &Keluar - + I/O Error i.e: Input/Output Error Galat I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Alasan: %2 - + Torrent added Torrent ditambahkan - + '%1' was added. e.g: xxx.avi was added. '%1' telah ditambahkan. - + Download completed Unduhan Selesai - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started + memulai %1 qBittorrent. ID berjalan: %2 + + + + This is a test email. - + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' telah selesai diunduh. - + Information Informasi - + To fix the error, you may need to edit the config file manually. - + Untuk mengatasi masalah ini, anda harus menyunting file konfigurasi secara manual. - + To control qBittorrent, access the WebUI at: %1 Untuk mengontrol qBittorrent, akses WebUI di: %1 - + Exit Tutup - + Recursive download confirmation Konfirmasi unduh rekursif - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Jangan Pernah - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Menyimpan progres torrent... - + qBittorrent is now ready to exit @@ -1609,12 +1715,12 @@ Alasan: %2 Prioritas: - + Must Not Contain: Tidak Boleh Memuat: - + Episode Filter: Filter Episode: @@ -1666,263 +1772,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Ekspor... - + Matches articles based on episode filter. Artikel yang cocok berdasarkan filter 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 filter episode: - + Season number is a mandatory non-zero value Nomor musim wajib bernilai bukan nol - + Filter must end with semicolon Filter 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 - + Episode number is a mandatory positive value Nomor episode ialah wajib nilai positif - + Rules Aturan - + Rules (legacy) Aturan (lama) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Barisan tak terbatas:<b>1x25-;</b>sesuai episode 25 dan ke atas dari sesi satu, dan semua dari episode nanti - + 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 - + Invalid action Tindakan tidak valid - + The list is empty, there is nothing to export. Daftar kosong, tidak ada yang perlu diekspor. - + Export RSS rules Ekspor aturan RSS - + I/O Error Galat I/O - + Failed to create the destination file. Reason: %1 Gagal membuat berkas tujuan. Alasan: %1 - + Import RSS rules Impor aturan RSS - + Failed to import the selected rules file. Reason: %1 Gagal mengimpor berkas aturan yang dipilih. Alasan: %1 - + Add new rule... Tambah aturan baru... - + Delete rule Hapus aturan - + Rename rule... Ubah nama aturan... - + Delete selected rules Hapus aturan yang dipilih - + Clear downloaded episodes... Kosongkan daftar episode yang diunduh... - + Rule renaming Menamai ulang aturan - + Please type the new rule name Mohon ketik nama aturan baru - + Clear downloaded episodes Kosongkan daftar episode yang diunduh - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Apakah Anda yakin ingin mengosongkan daftar episode yang diunduh untuk aturan yang dipilih? - + Regex mode: use Perl-compatible regular expressions Mode regex: gunakan ekspresi reguler yang kompatibel dengan Perl - - + + Position %1: %2 Posisi %1: %2 - + Wildcard mode: you can use Mode wildcard: Anda bisa menggunakan - - + + Import error Kesalahan impor - + Failed to read the file. %1 - + Gagal membaca file ini: %1 - + ? to match any single character ? untuk mencocokkan semua jenis karakter tunggal - + * to match zero or more of any characters * untuk sesuai nol atau lebih dari karakter apapun - + Whitespaces count as AND operators (all words, any order) Ruang putih terhitung sebagai operator DAN (semua kata, urutan apapun) - + | is used as OR operator | digunakan sebagai operator OR - + If word order is important use * instead of whitespace. Jika urutan kata sangat penting gunakan * daripada ruang putih. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Ekspresi dengan kekosongan %1 klausa (cth. %2) - + will match all articles. akan sesuai semua pasal. - + will exclude all articles. akan tiadakan semua pasal. @@ -1964,7 +2070,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Tidak dapat membuat berkas lanjutan torrent: "%1" @@ -1974,28 +2080,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Tidak dapat menyimpan metadata torrent ke '%1'. Kesalahan: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2006,16 +2122,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Tidak dapat menyimpan data ke '%1'. Kesalahan: %2 @@ -2023,38 +2140,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Tidak ditemukan. - + Couldn't load resume data of torrent '%1'. Error: %2 Tidak dapat melanjutkan data dari torrent '%1'. Kesalahan: %2 - - + + Database is corrupted. Basis data rusak. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2062,22 +2201,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Tidak dapat menyimpan metadata torrent. Kesalahan %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Tidak dapat melanjutkan menyimpan data untuk torrent '%1'. Kesalahan: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Tidak dapat menghapus data yang dilanjutkan dari torrent '%1'. Kesalahan: %2 - + Couldn't store torrents queue positions. Error: %1 Tidak dapat menyimpan posisi antrian torrent. Kesalahan: %1 @@ -2085,457 +2224,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON NYALA - - - - - - - - - + + + + + + + + + OFF MATI - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 Mode anonim: %1 - - + + Encryption support: %1 - - + + FORCED PAKSA - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Hapus torrent. - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - Torrent berhenti - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. Torrent mencapai batas waktu tidak aktif pembenihan. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Penggabungan pelacak dinonaktifkan + + + + Trackers cannot be merged because it is a private torrent + Pelacak tidak dapat digabungkan karena merupakan torrent privat + + + + Trackers are merged from new source + Pelacak digabungkan dari sumber baru + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent dihentikan. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrent dilanjutkan. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Unduhan Torrent terselesaikan. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Memulai memindahkan torrent. Torrent: "%1". Tujuan: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent bermasalah. Torrent: "%1". Masalah: "%2" - - - Removed torrent. Torrent: "%1" - Hapus torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Hilangkan torrent dan hapus isi torrent. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filter IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" Sesi BitTorrent mengalami masalah serius. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 Gagal memuat Kategori. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Gagal memuat pengaturan Kategori. File: "%1". Kesalahan: "Format data tidak valid" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent dihapus tapi gagal menghapus isi dan/atau fail-sebagian. Torrent: "%1". Kesalahan: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 dinonaktifkan - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 dinonaktifkan - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2551,13 +2736,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted Operasi dibatalkan - - + + Create new torrent file failed. Reason: %1. Gagal membuat berkas torrent baru. Alasan: %1 @@ -2565,67 +2750,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Gagal menambahkan rekanan "%1" ke torrent "%2". Alasan: %3 - + Peer "%1" is added to torrent "%2" Rekanan "%1" ditambahkan ke torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Unduh bagian awal dan akhir terlebih dahulu: %1, torrent: '%2' - + On Aktif - + Off Nonaktif - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata Metadata tidak ditemukan - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Gagal mengubah nama berkas. Torrent: "%1", berkas: "%2", alasan: "%3" - + Performance alert: %1. More info: %2 @@ -2646,189 +2831,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' harus mengikuti sintaksis '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' harus mengikuti sintaksis '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Diharapkan bilangan bulat berada dalam lingkungan variabel '%1', tetapi dapat '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' harus mengikuti sintaksis '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Diharapkan %1 dalam lingkungan variabel '%2', tetapi dapat '%3' - - + + %1 must specify a valid port (1 to 65535). %1 harus spesifik port benar (1 sampai 65535). - + Usage: Penggunaan: - + [options] [(<filename> | <url>)...] - + Options: Opsi: - + Display program version and exit Tampilkan versi program dan keluar - + Display this help message and exit Tampilkan pesan bantuan ini dan keluar - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' harus mengikuti sintaksis '%1=%2' + + + Confirm the legal notice - - + + port port - + Change the WebUI port Ubah port WebUI - + Change the torrenting port - + Disable splash screen Nonaktifkan layar sambutan - + Run in daemon-mode (background) Jalankan dalam mode daemon (latar) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Simpan berkas konfigurasi di dalam <dir> - - + + name nama - + Store configuration files in directories qBittorrent_<name> Simpan berkas konfigurasi di dalam direktori qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Retas ke dalam libtorrent sambung-cepat berkas dan buat tempat tujuan relatif ke direktori profil - + files or URLs berkas atau URL - + Download the torrents passed by the user Unduhan torrent dilewati oleh pengguna - + Options when adding new torrents: Opsi saat menambahkan torrent baru: - + path jalur - + Torrent save path Jalur simpan torrent - - Add torrents as started or paused - Tambahkan torrrent sebagai dimulai atau dijeda + + Add torrents as running or stopped + - + Skip hash check Lewati pengecekan hash - + Assign torrents to category. If the category doesn't exist, it will be created. Masukkan torrent ke dalam kategori. Kategori otomatis dibuat jika tidak ada. - + Download files in sequential order Unduh berkas dalam urutan - + Download first and last pieces first Unduh bagian-bagian pertama dan akhir terlebih dahulu - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Tentukan apakah "Buat torrent baru" dialog terbuka saat menambah torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Opsi nilai mungkin berisi via lingkungan variabel. Untuk opsi bernama 'parameter-nama', lingkungan variabel nama ialah 'QBT_PARAMETER_NAMA' (dengan huruf besar, '-' diganti dengan '_'). Untuk meneruskan nilai bendera, atur variabel menjadi '1' atau 'BENAR'. Untuk contoh, untuk menonatifkan splash screen:  - + Command line parameters take precedence over environment variables Perintah baris parameter akan mendahulukan lebih dari lingkungan variabel. - + Help Bantuan @@ -2880,13 +3065,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Lanjutkan torrent + Start torrents + - Pause torrents - Jeda torrent + Stop torrents + @@ -2897,15 +3082,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Ubah... - + Reset Setel ulang + + + System + + CookiesDialog @@ -2946,12 +3136,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2959,7 +3149,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2978,23 +3168,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Hapus juga fail secara permanen + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Apakah Anda yakin ingin menghapus '%1' dari daftar transfer? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Apakah Anda yakin ingin menghapus torrent %1 dari daftar transfer? - + Remove Buang @@ -3007,12 +3197,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Unduh dari URL - + Add torrent links Tambah link torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Satu link per barisan (Link HTTP, Link Magnet dan infor-hash didukung) @@ -3022,12 +3212,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Unduh - + No URL entered Tiada URL dimasukan - + Please type at least one URL. Mohon masukan setidaknya satu URL @@ -3186,25 +3376,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Galat Mengurai: Berkas filter bukan berkas P2B PeerGuardian yang valid. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Mengunduh torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - Pelacak tidak dapat digabungkan karena merupakan torrent privat - - - + Torrent is already present Torrent sudah ada - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' sudah masuk di daftar transfer. Apakah Anda ingin menggabung pencari dari sumber baru? @@ -3212,38 +3425,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. Basis data rusak: bagian data tidak ditemukan. @@ -3251,17 +3464,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3302,26 +3515,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Telusuri... - + Reset Setel ulang - + Select icon Pilih ikon - + Supported image files Fail gambar yang didukung + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3347,19 +3594,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Press 'Enter' key to continue... - + Tekan 'Enter' untuk melanjutkan... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 telah diblokir. Alasan: %2. - + %1 was banned 0.0.0.0 was banned %1 telah diblokir @@ -3368,60 +3615,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 adalah parameter baris perintah yang tidak dikenal. - - + + %1 must be the single command line parameter. %1 harus sebagai parameter baris perintah tunggal. - + Run application with -h option to read about command line parameters. Jalankan aplikasi dengan opsi -h untuk membaca tentang parameter baris perintah. - + Bad command line Baris perintah buruk - + Bad command line: Baris perintah buruk: - + An unrecoverable error occurred. Terjadi masalah yang tidak dapat dipulihkan. + - qBittorrent has encountered an unrecoverable error. qBittorrent mengalami masalah yang tidak dapat dipulihkan. - + You cannot use %1: qBittorrent is already running. - + Anda tidak dapat menggunakan %1: qBittorrent masih sedang berjalan. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3434,607 +3681,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Sunting - + &Tools &Perkakas - + &File &Berkas - + &Help B&antuan - + On Downloads &Done Saat Unduhan &Selesai - + &View &Tampilan - + &Options... &Opsi... - - &Resume - &Lanjutkan - - - + &Remove &Hapus - + Torrent &Creator Pem&buat Torrent - - + + Alternative Speed Limits Batas Kecepatan Alternatif - + &Top Toolbar Bilah Ala&t Atas - + Display Top Toolbar Tampilkan Bilah Alat Atas - + Status &Bar &Bilah Status - + Filters Sidebar Saring Bilah-pinggir - + 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 - + Do&nate! Do&nasi! - + + Sh&utdown System + + + + &Do nothing &Tidak melakukan apa-apa - + Close Window Tutup Jendela - - R&esume All - Lanjutkan S&emua - - - + Manage Cookies... Kelola Kuk... - + Manage stored network cookies Kelola kuki jaringan yang tersimpan - + Normal Messages Pesan Normal - + Information Messages Pesan Informasi - + Warning Messages Pesan Peringatan - + Critical Messages Pesan Kritis - + &Log &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Tetapkan Batasan Kecepatan Global... - + Bottom of Queue Dasar dari Antrean - + Move to the bottom of the queue Pindah ke urutan paling bawah dari antrean - + Top of Queue Puncak dari Antrean - + Move to the top of the queue Pindah ke urutan paling atas dari antrean - + Move Down Queue Pindah Antrean ke Bawah - + Move down in the queue Pindah satu tingkat ke bawah dalam antrean - + Move Up Queue Pindah Antrean ke Atas - + Move up in the queue Pindah satu tingkat ke atas dalam antrean - + &Exit qBittorrent &Keluar qBittorrent - + &Suspend System &Suspensi Sistem - + &Hibernate System &Hibernasi Sistem - - S&hutdown System - &Matikan Sistem - - - + &Statistics &Statistik - + Check for Updates Periksa Pemutakhiran - + Check for Program Updates Periksa Pemutakhiran Program - + &About Tent&ang - - &Pause - Tang&guhkan - - - - P&ause All - Jed&a Semua - - - + &Add Torrent File... T&ambah Berkas Torrent... - + Open Buka - + E&xit &Keluar - + Open URL Buka URL - + &Documentation &Dokumentasi - + Lock Kunci - - - + + + Show Tampilkan - + Check for program updates Periksa pemutakhiran program - + Add Torrent &Link... Tambah &Tautan Torrent... - + If you like qBittorrent, please donate! Jika Anda suka qBittorrent, silakan donasi! - - + + Execution Log Log Eksekusi - + Clear the password Kosongkan sandi - + &Set Password Tetapkan &Kata Sandi - + Preferences Preferensi - + &Clear Password &Kosongkan Kata Sandi - + Transfers Transfer - - + + qBittorrent is minimized to tray qBittorrent dikecilkan di tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. Tindakan ini akan mengubah pengaturan. Anda takkan diingatkan lagi. - + 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: - + Are you sure you want to clear the password? Apakah Anda yakin ingin mengosongkan sandi? - + Use regular expressions Gunakan ekspresi biasa - + + + Search Engine + Mesin Pencari + + + + Search has failed + Pencarian telah gagal + + + + Search has finished + Pencarian sudah selesai + + + Search Cari - + Transfers (%1) Transfer (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent sudah diperbaharui dan perlu dimulai-ulang untuk perubahan lagi efektif. - + qBittorrent is closed to tray qBittorrent ditutup ke tray - + Some files are currently transferring. Beberapa berkas saat ini ditransfer. - + Are you sure you want to quit qBittorrent? Apakah Anda yakin ingin keluar dari qBittorrent? - + &No &Tidak - + &Yes &Ya - + &Always Yes &Selalu Ya - + Options saved. Opsi tersimpan. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Runtime Python hilang - + qBittorrent Update Available Tersedia Pemutakhiran qBittorrent - + 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. - - + + Old Python Runtime - + A new version is available. Versi baru tersedia. - + Do you want to download %1? Apakah Anda ingin mengunduh %1? - + Open changelog... Membuka logperubahan... - + No updates available. You are already using the latest version. Pemutakhiran tidak tersedia. Anda telah menggunakan versi terbaru. - + &Check for Updates &Periksa Pemutakhiran - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Ditangguhkan + + + Checking for Updates... Memeriksa Pemutakhiran... - + Already checking for program updates in the background Sudah memeriksa pemutakhiran program di latar belakang - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 - + Filter torrents... Saring torrent... - + Filter by: Saring berdasarkan: - + The password must be at least 3 characters long - + Panjang password setidaknya harus 3 karakter. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Buka Berkas Torrent - + Torrent Files Berkas Torrent @@ -4229,7 +4547,12 @@ Mohon pasang secara manual. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5523,47 +5846,47 @@ Mohon pasang secara manual. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5601,299 +5924,283 @@ Mohon pasang secara manual. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Tingkat Lanjut - + Customize UI Theme... - + Transfer List Daftar Transfer - + Confirm when deleting torrents Konfirmasi ketika menghapus torrent - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Gunakan warna baris belang - + Hide zero and infinity values Sembunyikan nilai nol dan tak terhingga - + Always Selalu - - Paused torrents only - Hanya torrent yang dijeda - - - + Action on double-click Tindakan klik ganda - + Downloading torrents: Mengunduh torrent: - - - Start / Stop Torrent - Jalankan / Hentikan Torrent - - - - + + Open destination folder Buka folder tujuan - - + + No action Tidak ada tindakan - + Completed torrents: Torrent komplet: - + Auto hide zero status filters - + Desktop Destop - + Start qBittorrent on Windows start up Mulai qBittorrent saat memulai Windows - + Show splash screen on start up Tampilkan layar sambutan saat memulai - + Confirmation on exit when torrents are active Konfirmasi saat keluar ketika torrent sedang aktif - + Confirmation on auto-exit when downloads finish Konfirmasi saat keluar-otomatis ketika unduhan selesai - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Tata letak konten torrent: - + Original Asli - + Create subfolder Buat subfolder - + Don't create subfolder Jangan buat subfolder - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue Tambahkan ke antrian teratas - + When duplicate torrent is being added Saat torrent duplikat ditambahkan - + Merge trackers to existing torrent Gabungkan pelacak ke torrent yang sudah ada - + Keep unselected files in ".unwanted" folder Simpan file yang tidak dipilih ke folder ".unwanted" - + Add... Tambah... - + Options.. Opsi... - + Remove Buang - + Email notification &upon download completion Notifikasi surel dan di penyelesaian unduhan - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Protokol koneksi rekanan: - + Any Apapun - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode Mode gabungan - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP Filtering - + Schedule &the use of alternative rate limits Jadwalkan penggunaan ba&tas laju alternatif - + From: From start time Dari: - + To: To end time Ke: - + Find peers on the DHT network Temukan rekanan pada jaringan DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5902,145 +6209,190 @@ Wajibkan enkripsi: Hanya tersambung ke rekanan dengan enkripsi protokol Nonaktifkan enkripsi: Hanya tersambung ke rekanan tanpa enkripsi protokol - + Allow encryption Izinkan enkripsi - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Informasi lebih lanjut</a>) - + Maximum active checking torrents: - + &Torrent Queueing Antrean &Torrent - + When total seeding time reaches Saat jumlah waktu pembenihan terpenuhi - + When inactive seeding time reaches Saat waktu tidak aktif pembenihan terpenuhi - - A&utomatically add these trackers to new downloads: - &Otomatis tambahkan tracker berikut ke unduhan baru: - - - + RSS Reader Pembaca RSS - + Enable fetching RSS feeds Aktifkan pengambilan umpan RSS - + Feeds refresh interval: Interval penyegaran umpan: - + Same host request delay: - + Maximum number of articles per feed: Jumlah maksimum artikel per umpan: - - - + + + min minutes min - + Seeding Limits Batasan Berbagi - - Pause torrent - Jeda torrent - - - + Remove torrent Buang torrent - + Remove torrent and its files Buang torrent dan berkasnya - + Enable super seeding for torrent Aktifkan berbagi super untuk torrent - + When ratio reaches Saat rasio telah tercapai - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Torrent Unggah Otomatis - + Enable auto downloading of RSS torrents Aktifkan pengunduhan otomatis RSS torrent - + Edit auto downloading rules... Sunting aturan pengunduhan otomatis... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes Unduh episode REPACK/PROPER - + Filters: Filter: - + Web User Interface (Remote control) Antarmuka Pengguna Web (Pengendali jarak jauh) - + IP address: Alamat IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6049,42 +6401,37 @@ Tetapkan alamat IPv4 atau IPv6. Anda dapat tetapkan "0.0.0.0" untuk se "::" untuk setiap alamat IPv6, atau "*" untuk keduanya IPv4 dan IPv6. - + Ban client after consecutive failures: Blokir klien setelah kegagalan berturut-turut: - + Never Jangan pernah - + ban for: diblokir karena: - + Session timeout: Waktu habis sesi: - + Disabled Nonaktif - - Enable cookie Secure flag (requires HTTPS) - Aktifkan tanda kuki Aman (membutuhkan HTTPS) - - - + Server domains: Domain server: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6097,441 +6444,482 @@ Anda dapat mengisi nama domain menggunakan Antarmuka Web server. Gunakan ';' untuk memisahkan banyak kata. Dapat menggunakan wildcard '*'. - + &Use HTTPS instead of HTTP &Gunakan HTTPS daripada HTTP - + Bypass authentication for clients on localhost Lewati otentikasi untuk klien pada lokalhost - + Bypass authentication for clients in whitelisted IP subnets Lewati otentikasi untuk klien dalam daftar putih IP subnet - + IP subnet whitelist... IP subnet daftar-putih... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Perbahar&ui nama domain dinamik saya - + Minimize qBittorrent to notification area Minimalkan qBittorrent ke area notifikasi - + + Search + Cari + + + + WebUI + + + + Interface Antarmuka - + Language: Bahasa: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Gaya ikon baki: - - + + Normal Normal - + File association Asosiasi berkas - + Use qBittorrent for .torrent files Gunakan qBittorrent untuk berkas .torrent - + Use qBittorrent for magnet links Gunakan qBittorrent untuk tautan magnet - + Check for program updates Periksa pembaruan program - + Power Management Pengelolaan Daya - + + &Log Files + + + + Save path: Jalur simpan: - + Backup the log file after: Cadangkan berkas catatan setelah: - + Delete backup logs older than: Hapus cadangan log yang lebih lama dari: - + + Show external IP in status bar + + + + When adding a torrent Ketika menambahkan torrent - + Bring torrent dialog to the front Tampilkan dialog torrent - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Juga hapus tambahan berkas .torrent yang dibatalkan - + Also when addition is cancelled Juga ketika penambahan dibatalkan - + Warning! Data loss possible! Peringatan! Ada kemungkinan kehilangan data! - + Saving Management Pengelola Penyimpanan - + Default Torrent Management Mode: Mode Baku Pengelolaan Torrent: - + Manual Manual - + Automatic Otomatis - + When Torrent Category changed: Ketika Kategori Torrent diubah: - + Relocate torrent Cari-ulang torrent - + Switch torrent to Manual Mode Pindahkan torrent ke Mode Manual - - + + Relocate affected torrents Cari-ulang torrent berpengaruh - - + + Switch affected torrents to Manual Mode Ganti torrent berpengaruh ke Mode Manual - + Use Subcategories Gunakan Subkategori - + Default Save Path: Tempat penyimpanan biasa: - + Copy .torrent files to: Salin berkas .torrent ke: - + Show &qBittorrent in notification area Tampilkan &qBittorrent di dalam area notifikasi - - &Log file - Berkas &Log - - - + Display &torrent content and some options Tampilkan konten &torrent dan beberapa opsi - + De&lete .torrent files afterwards Hap&us berkas .torrent kemudian - + Copy .torrent files for finished downloads to: Salin berkas .torrent untuk menyelesaikan unduhan ke: - + Pre-allocate disk space for all files Pre-alokasi ruang disk untuk semua berkas - + Use custom UI Theme Gunakan Tema UI khusus - + UI Theme file: Berkas Tema UI: - + Changing Interface settings requires application restart Mengubah pengaturan antarmuka membutuhkan aplikasi dimulai ulang - + Shows a confirmation dialog upon torrent deletion Tampilkan dialog konfirmasi saat menghapus torrent - - + + Preview file, otherwise open destination folder Pratinjau berkas, atau buka folder tujuan - - - Show torrent options - Tampilkan opsi torrent - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Tutup qBittorrent ke area notifikasi - + Monochrome (for dark theme) Monokrom (untuk tema gelap) - + Monochrome (for light theme) Monokrom (untuk tema terang) - + Inhibit system sleep when torrents are downloading Cegah sistem tertidur saat mengunduh torrent - + Inhibit system sleep when torrents are seeding Cegah sistem tertidur saat membenih torrent - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days hari - + months Delete backup logs older than 10 months bulan - + years Delete backup logs older than 10 years tahun - + Log performance warnings Log peringatan performa - - The torrent will be added to download list in a paused state - Torrent akan ditambahkan ke daftar unduh dalam keadaan dijeda - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Jangan mulai mengunduh secara otomatis - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Tambahkan ekstensi .!qB ke berkas yang belum selesai - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog Izinkan dialog unduhan rekursif - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None Tidak ada - - + + Metadata received Metadata diterima - - + + Files checked File sudah diperiksa - + Ask for merging trackers when torrent is being added manually Tanya untuk menggabung pelacak ketika torrent ditambahkan secara manual - + Use another path for incomplete torrents: Gunakan jalur lain untuk torrent yang belum selesai: - + Automatically add torrents from: Otomatis menambahkan torrent dari: - + Excluded file names Tidak termasuk nama file - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6548,770 +6936,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Penerima - + To: To receiver Ke: - + SMTP server: Server SMTP: - + Sender Pengirim - + From: From sender Dari: - + This server requires a secure connection (SSL) Server ini membutuhkan sambungan aman (SSL) - - + + Authentication Otentikasi - - - - + + + + Username: Nama pengguna: - - - - + + + + Password: Sandi: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Tampilkan jendela konsol - + TCP and μTP TCP dan μTP - + Listening Port Memperhatikan port - + Port used for incoming connections: Port yang digunakan untuk sambungan masuk: - + Set to 0 to let your system pick an unused port - + Random Acak - + Use UPnP / NAT-PMP port forwarding from my router Gunakan penerusan port UPnP / NAT-PMP dari router saya - + Connections Limits Batasan Sambungan - + Maximum number of connections per torrent: Jumlah maksimum sambungan per torrent: - + Global maximum number of connections: Jumlah maksimum sambungan global: - + Maximum number of upload slots per torrent: Jumlah maksimum slot unggah per torrent: - + Global maximum number of upload slots: Jumlah maksimum slot unggah global: - + Proxy Server Server Proksi - + Type: Tipe: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Kalau tidak, server proksi hanya digunakan untuk koneksi tracker - + Use proxy for peer connections Gunakan proksi untuk koneksi sejawat - + A&uthentication &Otentikasi - - Info: The password is saved unencrypted - Info: Sandi disimpan tanpa enkripsi - - - + Filter path (.dat, .p2p, .p2b): Jalur filter (.dat, .p2p, .p2b): - + Reload the filter Muat ulang filter - + Manually banned IP addresses... Secara manual memblokir alamat IP... - + Apply to trackers Terapkan ke pelacak - + Global Rate Limits Batas Laju Global - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Unggah: - - + + Download: Unduh: - + Alternative Rate Limits Batas Laju Alternatif - + Start time Waktu mulai - + End time Waktu selesai - + When: Kapan: - + Every day Setiap hari - + Weekdays Hari kerja - + Weekends Akhir pekan - + Rate Limits Settings Pengaturan Batas Laju - + Apply rate limit to peers on LAN Terapkan batas laju ke rekanan pada LAN - + Apply rate limit to transport overhead Tentukan nilai batas untuk transport diatas - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Terapkan batas laju ke protokol µTP - + Privacy Privasi - + Enable DHT (decentralized network) to find more peers Aktifkan DHT (jaringan terdesentralisasi) untuk menemukan lebih banyak rekanan - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Pertukaran rekanan dengan aplikasi Bittorrent yang kompatibel (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Aktifkan Pencarian Rekan Lokal untuk menemukan lebih banyak rekanan - + Encryption mode: Mode enkripsi: - + Require encryption Enkripsi wajib - + Disable encryption Enkripsi nonaktif - + Enable when using a proxy or a VPN connection Aktifkan saat menggunakan proksi atau koneksi VPN - + Enable anonymous mode Aktifkan mode anonim - + Maximum active downloads: Unduhan aktif maksimum: - + Maximum active uploads: Unggahan aktif maksimum: - + Maximum active torrents: Torrent aktif maksimum: - + Do not count slow torrents in these limits Jangan hitung torrent lambat dari limit ini - + Upload rate threshold: Nilai ambang unggah: - + Download rate threshold: Nilai ambang unduh: - - - - + + + + sec seconds det - + Torrent inactivity timer: Durasi torrent tanpa aktifitas: - + then lalu - + Use UPnP / NAT-PMP to forward the port from my router Gunakan UPnP / NAT-PMP untuk meneruskan port dari router saya - + Certificate: Sertifikat: - + Key: Kunci: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informasi tentang sertifikat</a> - + Change current password Ubah sandi saat ini - - Use alternative Web UI - Gunakan UI Web alternatif - - - + Files location: Lokasi berkas: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Keamanan - + Enable clickjacking protection Izinkan perlindungan klikjacking - + Enable Cross-Site Request Forgery (CSRF) protection Aktifkan proteksi Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers Tambahkan kustom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: Daftar proxy terpercaya: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Layanan: - + Register Daftar - + Domain name: Nama domain: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Dengan mengaktifkan opsi ini, Anda bisa <strong>secara permanen kehilangan</strong> berkas .torrent Anda! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Jika Anda mengaktifkan opsi kedua (&ldquo;Juga ketika tambahan dibatalkan&rdquo;) berkas .torrent <strong>akan dihapus</strong>meski jika anda pencet&ldquo;<strong>Batal</strong>&rdquo; didalam &ldquo;Tambahkan torrent&rdquo; dialog - + Select qBittorrent UI Theme file Pilih berkas Tema UI qBittorrent - + Choose Alternative UI files location Pilih lokasi berkas UI Alternatif - + Supported parameters (case sensitive): Parameter yang didukung (sensitif besar kecil huruf): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. Kondisi penghentian tidak ditentukan. - + Torrent will stop after metadata is received. Torrent akan berhenti setelah metadata diterima. - Torrents that have metadata initially aren't affected. - Torrent yang sudah memiliki metadata tidak akan terpengaruh. - - - + Torrent will stop after files are initially checked. Torrent akan berhenti setelah berkas diperiksa lebih dahulu. - + This will also download metadata if it wasn't there initially. Ini juga akan mengunduh metadata jika sebelumnya tidak ada. - + %N: Torrent name %N: Nama torrent - + %L: Category %L: Kategori - + %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: Pelacak saat ini - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Merangkum parameter dengan tanda kutipan untuk menghindari teks terpotong di ruang putih (m.s., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Nihil) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Satu torrent akan menentukan lambat jika nilai unduh dan unggah bertahan dibawah nilai ini untuk "Timer Torrent ketidakaktifan" detik - + Certificate Sertifikat - + Select certificate Pilih sertifikat - + Private key Kunci privat - + Select private key Pilih kunci privat - + WebUI configuration failed. Reason: %1 Konfigurasi WebUI gagal. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Pilih folder untuk dimonitor - + Adding entry failed Gagal menambahkan entri - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Galat Lokasi - - + + Choose export directory Pilih direktori ekspor - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Pilih direktori simpan - + Torrents that have metadata initially will be added as stopped. - + Torrent yang dilengkapi metadata akan ditambahkan dan ditandai sebagai dihentikan. - + Choose an IP filter file Pilih berkas filter IP - + All supported filters Semua filter yang didukung - + The alternative WebUI files location cannot be blank. - + Parsing error Galat penguraian - + Failed to parse the provided IP filter Gagal mengurai filter IP yang diberikan - + Successfully refreshed Berhasil disegarkan - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai filter IP yang diberikan: %1 aturan diterapkan. - + Preferences Preferensi - + Time Error Galat Waktu - + The start time and the end time can't be the same. Waktu mulai dan berakhir tidak boleh sama. - - + + Length Error Galat Panjang @@ -7319,241 +7748,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Tidak diketahui - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection Koneksi masuk - + Peer from DHT Rekan dari DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic traffic terenkripsi - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Negara/Wilayah - + IP/Address Alamat/IP - + Port Port - + Flags Bendera - + Connection Koneksi - + Client i.e.: Client application Klien - + Peer ID Client i.e.: Client resolved from Peer ID Klien ID Peer - + Progress i.e: % downloaded Progres - + 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 - + Files i.e. files that are being downloaded right now Berkas - + Column visibility Keterlihatan kolom - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom - + Add peers... Tambah peers... - - + + Adding peers Menambahkan rekanan - + Some peers cannot be added. Check the Log for details. Beberapa rekanan tidak bisa ditambahkan. Periksa Log untuk detail. - + Peers are added to this torrent. Rekanan telah ditambahkan ke torrent ini. - - + + Ban peer permanently Blokir rekanan secara permanen - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? Apakah Anda yakin ingin memblokir secara permanen rekanan yang dipilih? - + Peer "%1" is manually banned Rekanan "%1" diblokir secara manual - + N/A N/A - + Copy IP:port Salin IP:port @@ -7571,7 +8005,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Daftar sejawat ditambahkan (satu per baris): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7612,27 +8046,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Berkas dalam potongan ini: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information Tunggu sampai metadata menjadi tersedia untuk melihat informasi mendetail - + Hold Shift key for detailed information Tahan tombol Shift untuk informasi mendetail @@ -7645,58 +8079,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Cari plugin - + Installed search plugins: Cari plugin terpasang: - + Name Nama - + Version Versi - + Url URL - - + + Enabled Aktif - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Peringatan: Pastikan untuk memastikan hukum hak cipta yang berlaku di negara Anda saat mengunduh torrent dari mesin pencari di bawah ini. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Pasang yang baru - + Check for updates Cek pembaruan - + Close Tutup - + Uninstall Copot @@ -7816,98 +8250,65 @@ Plugin ini semua dinonaktifkan. Sumber plugin - + Search plugin source: Cari sumber plugin: - + Local file Berkas lokal - + Web link Tautan Web - - PowerManagement - - - qBittorrent is active - qBittorrent sedang aktif - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Pratinjau - + Name Nama - + Size Ukuran - + Progress Progres - + Preview impossible Preview tidak bisa - + Sorry, we can't preview this file: "%1". Maaf, tidak dapat mempratinjau file berikut: "%1". - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom @@ -7920,27 +8321,27 @@ Plugin ini semua dinonaktifkan. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7981,12 +8382,12 @@ Plugin ini semua dinonaktifkan. PropertiesWidget - + Downloaded: Terunduh: - + Availability: Ketersediaan: @@ -8001,53 +8402,53 @@ Plugin ini semua dinonaktifkan. Transfer - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Lama Aktif: - + ETA: ETA: - + Uploaded: Terunggah: - + Seeds: Pembibitan: - + Download Speed: Kecepatan Unduh: - + Upload Speed: Kecepatan Unggah: - + Peers: Rekanan: - + Download Limit: Batas Unduh: - + Upload Limit: Batas Unggah: - + Wasted: Terbuang: @@ -8057,193 +8458,220 @@ Plugin ini semua dinonaktifkan. Koneksi: - + Information Informasi - + Info Hash v1: Informasi HASH v1: - + Info Hash v2: Informasi Hash v2: - + Comment: Komentar: - + Select All Pilih Semua - + Select None Pilih Nihil - + Share Ratio: Rasio Berbagi: - + Reannounce In: Umumkan Ulang Dalam: - + Last Seen Complete: Komplet Terlihat Terakhir: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Total Ukuran: - + Pieces: Bagian: - + Created By: Dibuat Oleh: - + Added On: Ditambahkan Pada: - + Completed On: Komplet Pada: - + Created On: Dibuat Pada: - + + Private: + + + + Save Path: Jalur Simpan: - + 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) - - + + + N/A T/A - + + Yes + Ya + + + + No + Tidak + + + %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.) - - New Web seed - Bibit Web baru + + Add web seed + Add HTTP source + - - Remove Web seed - Buang bibit Web + + Add web seed: + - - Copy Web seed URL - Salin URL bibit Web + + + This web seed is already in the list. + - - Edit Web seed URL - Sunting URL bibit Web - - - + Filter files... Filter berkas... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Grafik kecepatan dinonaktifkan - + You can enable it in Advanced Options - - 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: @@ -8251,33 +8679,33 @@ Plugin ini semua dinonaktifkan. RSS::AutoDownloader - - + + Invalid data format. Format data tidak valid. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Tidak dapat menyimpan data RSS AutoDownloader di %1. Galat: %2 - + Invalid data format Format data tidak valid - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Tidak dapat mengakses aturan RSS AutoDownloader di %1. Galat: %2 @@ -8285,22 +8713,22 @@ Plugin ini semua dinonaktifkan. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Gagal mengunduh RSS memasukkan di '%1'. Penyebab: %2 - + RSS feed at '%1' updated. Added %2 new articles. Masukan RSS di '%1' diperbaharui. Tambahkan %2 pasal baru. - + Failed to parse RSS feed at '%1'. Reason: %2 Gagal menguraikan RSS memasukkan di '%1'. Penyebab: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8336,12 +8764,12 @@ Plugin ini semua dinonaktifkan. RSS::Private::Parser - + Invalid RSS feed. Masukkan RSS tidak sah. - + %1 (line: %2, column: %3, offset: %4). %1 (baris: %2, kolom: %3, imbang: %4). @@ -8349,103 +8777,144 @@ Plugin ini semua dinonaktifkan. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. Masukkan RSS diberikan URL sudah ada: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. Tidak dapat memindah folder akar. - - + + Item doesn't exist: %1. Item tidak ada: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Tidak bisa menghapus folder root - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Jalur item RSS tidak benar: %1. - + RSS item with given path already exists: %1. Item RSS dengan jalur diberikan sudah ada: %1. - + Parent folder doesn't exist: %1. Folder induk tidak ditemukan: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + det + + + + Default + Bawaan + + RSSWidget @@ -8465,8 +8934,8 @@ Plugin ini semua dinonaktifkan. - - + + Mark items read Tandai item sudah dibaca @@ -8491,132 +8960,115 @@ Plugin ini semua dinonaktifkan. Torrent: (klik dua kali untuk mengunduh) - - + + Delete Hapus - + Rename... Ubah nama... - + Rename Ubah nama - - + + Update Perbarui - + New subscription... Langganan baru... - - + + Update all feeds Perbarui semua umpan - + Download torrent Unduh torrent - + Open news URL Buka URL berita - + Copy feed URL Salin URL umpan - + New folder... Folder baru... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Silakan pilih nama folder - + Folder name: Nama folder: - + New folder Folder baru - - - Please type a RSS feed URL - Silakan ketik URL umpan RSS - - - - - Feed URL: - URL Umpan: - - - + Deletion confirmation Konfirmasi penghapusan - + Are you sure you want to delete the selected RSS feeds? Anda yakin ingin menghapus masukkan terpilih RSS? - + Please choose a new name for this RSS feed Mohon tentukan nama baru untuk memasukkan RSS - + New feed name: Nama masukkan baru: - + Rename failed Rubah nama gagal - + Date: Tanggal: - + Feed: - + Author: Penulis: @@ -8624,38 +9076,38 @@ Plugin ini semua dinonaktifkan. SearchController - + Python must be installed to use the Search Engine. Python harus terpasang untuk menggunakan mesin pencari - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. Semua plugin telah paling baru. - + Updating %1 plugins Memperbarui %1 plugin - + Updating plugin %1 Memperbarui plugin %1 - + Failed to check for plugin updates: %1 Gagal melakukan pengecekan pembaruan pengaya: %1 @@ -8730,132 +9182,142 @@ Plugin ini semua dinonaktifkan. Ukuran: - + Name i.e: file name Nama - + Size i.e: file size Ukuran - + Seeders i.e: Number of full sources Benih - + Leechers i.e: Number of partial sources Lintah - - Search engine - Mesin pencari - - - + Filter search results... Uraikan hasil pencarian - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Hasil (menampilkan <i>%1</i> dari <i>%2</i>): - + Torrent names only Hanya nama torrent - + Everywhere Dimana saja - + Use regular expressions Gunakan ekspresi reguler - + Open download window - + Download Unduh - + Open description page Buka halaman deskripsi - + Copy Salin - + Name Nama - + Download link Tautan unduhan - + Description page URL URL halaman deskripsi - + Searching... Mencari... - + Search has finished Pencarian sudah selesai - + Search aborted Pencarian dibatalkan - + An error occurred during search... Ada terjadi galat saat pencarian... - + Search returned no results Pencarian kembali tanpa hasil - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Keterlihatan Kolom - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom @@ -8863,104 +9325,104 @@ Plugin ini semua dinonaktifkan. SearchPluginManager - + Unknown search engine plugin file format. Format berkas plugin mesin pencari tidak diketahui. - + Plugin already at version %1, which is greater than %2 Plugin berada di versi %1, yang mana lebih baru dari %2 - + A more recent version of this plugin is already installed. Versi lebih sekarang plugin sudah terpasang. - + Plugin %1 is not supported. - - + + Plugin is not supported. Plugin tidak didukung. - + Plugin %1 has been successfully updated. - + All categories Semua kategori - + Movies Movie - + TV shows TV show - + Music Musik - + Games Games - + Anime Anime - + Software Software - + Pictures Gambar - + Books Buku - + Update server is temporarily unavailable. %1 Server memperbaharui sementara tidak tersedia. %1 - - + + Failed to download the plugin file. %1 Gagal mengunduh berkas plugin. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" sudah lawas, perbarui ke versi %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') Mencari plugin '%1' terdapat kesalahan versi string ('%2') @@ -8970,114 +9432,145 @@ Plugin ini semua dinonaktifkan. - - - - Search Cari - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Tidak ada ditemukan plugin terpasang dipencarian. Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasang lebih. - + Search plugins... Plugin pencarian... - + A phrase to search for. Kata/frasa yang akan dicari. - + Spaces in a search term may be protected by double quotes. Kata/frasa berspasi bisa dibuka dan ditutup dengan tanda petik ganda. - + Example: Search phrase example Contoh: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: mencari <b>foo bar</b> - + All plugins Semua plugin - + Only enabled Hanya izinkan - + + + Invalid data format. + Format data tidak valid. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: mencari <b>foo</b> dan <b>bar</b> - + + Refresh + + + + Close tab Tutup tab - + Close all tabs Tutup seluruh tab - + Select... Pilih... - - - + + 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 - + + Stop Hentikan + + + SearchWidget::DataStorage - - Search has finished - Pencarian telah selesai + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Pencarian telah gagal + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9190,34 +9683,34 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa - + Upload: Unggahan: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Unduhan: - + Alternative speed limits Batas kecepatan alternatif @@ -9409,32 +9902,32 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa Rata-rata waktu dalam antrian: - + Connected peers: Sejawat tersambung: - + All-time share ratio: Ratio waktu-semua pembagian: - + All-time download: Semua-waktu unduh: - + Session waste: Sesi terbuang: - + All-time upload: Semua-waktu unggah: - + Total buffer size: Total ukuran buffer: @@ -9449,12 +9942,12 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa Pekerjaan I/O yang diantrekan: - + Write cache overload: Lewahbeban penulisan tembolok: - + Read cache overload: Lewahbeban pembacaan tembolok: @@ -9473,51 +9966,77 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa StatusBar - + Connection status: Status koneksi: - - + + No direct connections. This may indicate network configuration problems. Tidak ada koneksi langsung. Ini mungkin menunjukkan masalah konfigurasi jaringan. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 jalinan - + qBittorrent needs to be restarted! qBittorrent perlu dimulai ulang! - - - + + + Connection Status: Status Koneksi: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Luring. Ini biasanya berarti bahwa qBittorent gagal mendengarkan port yang dipilih untuk koneksi masuk. - + Online Daring - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klik untuk beralih ke batas kecepatan alternatif - + Click to switch to regular speed limits Klik untuk beralih ke batas kecepatan reguler @@ -9547,13 +10066,13 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa - Resumed (0) - Dilanjutkan (0) + Running (0) + - Paused (0) - Dijeda (0) + Stopped (0) + @@ -9588,7 +10107,7 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa Moving (0) - + Memindahkan (0) @@ -9616,35 +10135,35 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa Selesai (%1) - - Paused (%1) - Dijeda (%1) + + Running (%1) + - - Moving (%1) + + Stopped (%1) - Resume torrents - Lanjutkan torrent + Start torrents + - Pause torrents - Tangguhkan torrent + Stop torrents + + + + + Moving (%1) + Memindahkan (%1) Remove torrents Hilangkan Torrent - - - Resumed (%1) - Dilanjutkan (%1) - Active (%1) @@ -9716,31 +10235,31 @@ Klik tombol "Temukan plugin" tepat dibawah bagian jendela untuk memasa Remove unused tags Buang tag yang tidak digunakan - - - Resume torrents - Lanjutkan torrent - - - - Pause torrents - Jeda torrent - Remove torrents Hilangkan Torrent - - New Tag - Tag Baru + + Start torrents + + + + + Stop torrents + Tag: Tag: + + + Add tag + + Invalid tag name @@ -9887,32 +10406,32 @@ Mohon memilih nama lain dan coba lagi. TorrentContentModel - + Name Nama - + Progress Progres - + Download Priority Prioritas Unduh - + Remaining Sisa - + Availability Ketersediaan - + Total Size Total Ukuran @@ -9957,98 +10476,98 @@ Mohon memilih nama lain dan coba lagi. TorrentContentWidget - + Rename error Galat rubah nama - + Renaming Mengganti nama - + New name: Nama baru: - + Column visibility Keterlihatan kolom - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom - + Open Buka - + Open containing folder - + Buka folder isi - + Rename... Ubah nama... - + Priority Prioritas - - + + Do not download Jangan mengunduh - + Normal Normal - + High Tinggi - + Maximum Maksimum - + By shown file order Tampikan dalam urutan berkas - + Normal priority Prioritas normal - + High priority Prioritas tinggi - + Maximum priority Prioritas maksimum - + Priority by shown file order Prioritaskan tampilan urutan berkas @@ -10056,17 +10575,17 @@ Mohon memilih nama lain dan coba lagi. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10095,13 +10614,13 @@ Mohon memilih nama lain dan coba lagi. - + Select file Pilih Berkas - + Select folder Pilih folder @@ -10176,87 +10695,83 @@ Mohon memilih nama lain dan coba lagi. Lapangan - + You can separate tracker tiers / groups with an empty line. Anda dapat memisahkan tingkatan pelacak / grup dengan baris kosong. - + Web seed URLs: URL Benih Web: - + Tracker URLs: URL Pencari: - + Comments: Komentar: - + Source: Sumber: - + Progress: Progres - + Create Torrent Buat torrent - - + + Torrent creation failed Pembuatan torrent gagal. - + Reason: Path to file/folder is not readable. Penyebab: Jalur berkas/folder tidak terbaca. - + Select where to save the new torrent Pilih dimana tempat penyimpanan torrent baru - + Torrent Files (*.torrent) Berkas Torrent (*.torrent) - Reason: %1 - Penyebab: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed Penambahan torrent gagal - + Torrent creator Pembuat torrent - + Torrent created: Torrent dibuat: @@ -10264,32 +10779,32 @@ Mohon memilih nama lain dan coba lagi. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10297,44 +10812,31 @@ Mohon memilih nama lain dan coba lagi. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 File magnet terlalu besar. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 Menolak file torrent yang gagal: %1 - + Watching folder: "%1" Mengamati folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadata tidak valid - - TorrentOptionsDialog @@ -10363,173 +10865,161 @@ Mohon memilih nama lain dan coba lagi. Gunakan path lain untuk torrent yang tidak lengkap - + Category: Kategori - - Torrent speed limits - Batasan kecepatan torrent + + Torrent Share Limits + - + Download: Unduhan: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Unggahan: - - Torrent share limits - Batas berbagi torrent - - - - Use global share limit - Gunakan batas berbagi global - - - - Set no share limit - Atur tiada limit bagi - - - - Set share limit to - Atur limit bagi ke - - - - ratio - rasio - - - - total minutes - jumlah menit - - - - inactive minutes - menit tidak aktif - - - + Disable DHT for this torrent Nonaktifkan DHT untuk torrent saat ini - + Download in sequential order Unduh berurutan - + Disable PeX for this torrent Nonaktifkan PeX untuk torrent saat ini - + Download first and last pieces first Unduh bagian-bagian pertama dan akhir terlebih dahulu - + Disable LSD for this torrent Nonaktifkan LSD untuk torrent saat ini - + Currently used categories - - + + Choose save path Pilih jalur simpan - + Not applicable to private torrents Tidak berlaku untuk torrent pribadi - - - No share limit method selected - Tidak ada batasan berbagi metode terpilih - - - - Please select a limit method first - Mohon pilih metode limit dahulu - TorrentShareLimitsWidget - - - + + + + Default - Bawaan + Bawaan - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Buang torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Aktifkan berbagi super untuk torrent + + + Ratio: @@ -10542,32 +11032,32 @@ Mohon memilih nama lain dan coba lagi. Penanda Torrent - - New Tag - Tag Baru + + Add tag + - + Tag: Tag: - + Invalid tag name Nama tag tidak valid - + Tag name '%1' is invalid. Nama penanda '%1' tidak valid. - + Tag exists Tag sudah ada - + Tag name already exists. Nama tag sudah ada. @@ -10575,115 +11065,130 @@ Mohon memilih nama lain dan coba lagi. TorrentsController - + Error: '%1' is not a valid torrent file. Galat: '%1' bukan berkas torrent yang valid. - + Priority must be an integer Prioritas harus sebuah integer - + Priority is not valid Prioritas tidak sah - + Torrent's metadata has not yet downloaded - + File IDs must be integers ID berkas harus integer - + File ID is not valid ID berkas tidak sah - - - - + + + + Torrent queueing must be enabled Antrian torrent harus diaktifkan - - + + Save path cannot be empty Jalur penyimpanan tidak bisa kosong - - + + Cannot create target directory - - + + Category cannot be empty Kategori tidak bisa kosong - + Unable to create category Tidak bisa membuat kategori - + Unable to edit category Tidak bisa mengedit kategori - + Unable to export torrent file. Error: %1 - + Cannot make save path Tidak bisa membuat jalur penyimpanan - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Parameter 'urutan' tidak sah - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Tidak bisa menulis jalur penyimpanan - + WebUI Set location: moving "%1", from "%2" to "%3" Lokasi Set WebUI: memindahkan "%1", dari "%2" ke "%3" - + Incorrect torrent name Nama torrent salah - - + + Incorrect category name Kesalahan kategori nama @@ -10709,196 +11214,191 @@ Mohon memilih nama lain dan coba lagi. TrackerListModel - + Working Berjalan - + Disabled Nonaktif - + Disabled for this torrent Nonaktifkan untuk torrent saat ini - + This torrent is private Torrent ini pribadi - + N/A N/A - + Updating... Membarui... - + Not working Tak berjalan - + Tracker error Pelacak mengalami masalah - + Unreachable Tidak terjangkau - + Not contacted yet Belum terhubung - - Invalid status! - Status tidak valid! - - - - URL/Announce endpoint + + Invalid state! + URL/Announce Endpoint + + + + + BT Protocol + + + + + Next Announce + + + + + Min Announce + + + + Tier Tingkatan - - Protocol - Protokol - - - + Status Status - + Peers Rekanan - + Seeds Benih - + Leeches Pengunduh - + Times Downloaded Jumlah diunduh - + Message Pesan - - - Next announce - Pengumuman selanjutnya - - - - Min announce - - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Torrent ini pribadi - + Tracker editing Pengubahan Pencari - + Tracker URL: URL Pencari: - - + + Tracker editing failed Pengubahan pencari gagal - + The tracker URL entered is invalid. URL Pencari yang dimasukkan tidak sah. - + The tracker URL already exists. URL pencari sudah ada. - + Edit tracker URL... Ubah URL pelacak... - + Remove tracker Hapus pencari - + Copy tracker URL Salin URL pencari - + Force reannounce to selected trackers Paksa umumkan-ulang ke pencari terpilih - + Force reannounce to all trackers Paksa umumkan-ulang ke semua pencari - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom - + Add trackers... Tambah pelacak... - + Column visibility Keterlihatan Kolom @@ -10916,37 +11416,37 @@ Mohon memilih nama lain dan coba lagi. Daftar pencari yang ditambahkan (satu per baris): - + µTorrent compatible list URL: Daftar URL kompatibel µTorrent: - + Download trackers list Unduh daftar pelacak - + Add Tambah - + Trackers list URL error URL daftar pelacak mengalami masalah - + The trackers list URL cannot be empty URL daftar pelacak tidak bisa kosong - + Download trackers list error Unduh daftar pelacak mengalami masalah - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10954,62 +11454,62 @@ Mohon memilih nama lain dan coba lagi. TrackersFilterWidget - + Warning (%1) Peringatan (%1) - + Trackerless (%1) Nirpelacak (%1) - + Tracker error (%1) Masalah pelacak (%1) - + Other error (%1) Masalah lain (%1) - + Remove tracker Hapus pencari - - Resume torrents - Lanjutkan torrent + + Start torrents + - - Pause torrents - Tangguhkan torrent + + Stop torrents + - + Remove torrents Hilangkan Torrent - + Removal confirmation Konfirmasi penghapusan - + Are you sure you want to remove tracker "%1" from all torrents? Apakah anda yakin ingin menghapus pelacak "%1" dari semua torrent? - + Don't ask me again. Jangan tanya lagi - + All (%1) this is for the tracker filter Semua (%1) @@ -11018,7 +11518,7 @@ Mohon memilih nama lain dan coba lagi. TransferController - + 'mode': invalid argument @@ -11110,11 +11610,6 @@ Mohon memilih nama lain dan coba lagi. 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. Memeriksa data kelanjutan - - - Paused - Dijeda - Completed @@ -11138,220 +11633,252 @@ Mohon memilih nama lain dan coba lagi. Galat - + Name i.e: torrent name Nama - + Size i.e: torrent size Ukuran - + Progress % Done Kemajuan - + + Stopped + Dihentikan + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Benih - + Peers i.e. partial sources (often untranslated) Sejawat - + Down Speed i.e: Download speed Cepat Und - + Up Speed i.e: Upload speed Cepat Ung - + Ratio Share ratio Rasio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left WPS - + Category Kategori - + Tags Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Ditambahkan pada - + Completed On Torrent was completed on 01/01/2010 08:00 Selesai dalam - + Tracker Pencari - + Down Limit i.e: Download limit Limit Und - + Up Limit i.e: Upload limit Limit Ung - + Downloaded Amount of data downloaded (e.g. in MB) Terunduh - + Uploaded Amount of data uploaded (e.g. in MB) Terunggah - + Session Download Amount of data downloaded since program open (e.g. in MB) Sesi Unduh - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sesi Unggah - + Remaining Amount of data left to download (e.g. in MB) Tersisa - + Time Active - Time (duration) the torrent is active (not paused) - Waktu Aktif + Time (duration) the torrent is active (not stopped) + Lama Aktif - + + Yes + Ya + + + + No + Tidak + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Selesai - + Ratio Limit Upload share ratio limit Rasio Limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Terakhir Terlihat Selesai - + Last Activity Time passed since a chunk was downloaded/uploaded Aktivitas Terakhir - + Total Size i.e. Size including unwanted data Total Ukuran - + Availability The number of distributed copies of the torrent Ketersediaan - + Info Hash v1 i.e: torrent info hash v1 - Informasi Hash v2: {1?} + Informasi Hash v1 - + Info Hash v2 i.e: torrent info hash v2 - Informasi Hash v2: {2?} + Informasi Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Umumkan ulang di - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A T/A - + %1 ago e.g.: 1h 20m ago %1 yang lalu - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (dibibit selama %2) @@ -11360,339 +11887,319 @@ Mohon memilih nama lain dan coba lagi. TransferListWidget - + Column visibility Keterlihatan kolom - + Recheck confirmation Komfirmasi pemeriksaan ulang - + Are you sure you want to recheck the selected torrent(s)? Apakah Anda yakin ingin memeriksa ulang torrent yang dipilih? - + Rename Ubah nama - + New name: Nama baru: - + Choose save path Pilih jalur penyimpanan - - Confirm pause - - - - - Would you like to pause all torrents? - Ingin tunda semua torrents? - - - - Confirm resume - - - - - Would you like to resume all torrents? - Ingin lanjutkan semua torrents? - - - + Unable to preview Tidak dapat melihat pratinjau - + The selected torrent "%1" does not contain previewable files Torrent "%1" berisi berkas yang tidak bisa ditinjau - + Resize columns Ubah ukuran kolom - + Resize all non-hidden columns to the size of their contents Ubah ukuran semua kolom yang tidak disembunyikan sesuai ukuran konten kolom - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Tambah Tag - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags Buang Semua Tag - + Remove all tags from selected torrents? Buang semua tag dari torrent yang dipilih? - + Comma-separated tags: Koma-pemisah tag: - + Invalid tag Kesalahan tag - + Tag name: '%1' is invalid Nama tag: '%1' tidak valid - - &Resume - Resume/start the torrent - &Lanjutkan - - - - &Pause - Pause the torrent - Tang&guhkan - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue Pindah %atas - + Move &down i.e. Move down in the queue Pindah &bawah - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Atur lok&asi... - + Force rec&heck - + Paksa &periksa ulang - + Force r&eannounce - + Paksa r&announce - + &Magnet link - + Tautan &Magnet - + Torrent &ID - + &ID Torrent - + &Comment &Komentar - + &Name &Nama - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info &hash v2 - + Re&name... - + Na&mai ulang... - + Edit trac&kers... - + Sunting &pelacak... - + E&xport .torrent... - + Eks&por .torrent... - + Categor&y - + Kategor&i - + &New... New category... - + &Baru... - + &Reset Reset category - + &Kembalikan - + Ta&gs - + &Add... Add / assign multiple tags... - + &Tambahkan... - + &Remove All Remove all tags + &Hapus Semua + + + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking - + &Queue - + &Antrian - + &Copy - + &Salin - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Unduh berurutan - - Errors occurred when exporting .torrent files. Check execution log for details. + + Add tags - + + Errors occurred when exporting .torrent files. Check execution log for details. + Kesalahan tidak diketahui ketika mengekspor file .torrent. Periksa log eksekusi untuk lebih detail. + + + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Hapus - + Download first and last pieces first Unduh bagian-bagian pertama dan akhir terlebih dahulu - + Automatic Torrent Management Manajemen Torrent Otomatis - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Mode otomatis berarti berbagai properti torrent (misal tempat penyimpanan) akan ditentukan dengan kategori terkait - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Mode pembibitan super @@ -11737,28 +12244,28 @@ Mohon memilih nama lain dan coba lagi. ID Ikon - + UI Theme Configuration. Pengaturan Tema UI. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Perubahan Tema UI tidak dapat diterapkan sepenuhnya. Lihat detail di log. - + Couldn't save UI Theme configuration. Reason: %1 Tidak dapat menyimpan konfigurasi Tema UI. Reason: %1 - - + + Couldn't remove icon file. File: %1. Tidak dapat menghapus file ikon. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Tidak dapat menyalin file ikon. Source: %1. Destination: %2. @@ -11766,10 +12273,15 @@ Mohon memilih nama lain dan coba lagi. UIThemeManager - - Failed to load UI theme from file: "%1" + + Set app style failed. Unknown style: "%1" + + + Failed to load UI theme from file: "%1" + Gagal memuat tema UI dari file: "%1" + UIThemeSource @@ -11797,20 +12309,21 @@ Mohon memilih nama lain dan coba lagi. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11818,32 +12331,32 @@ Mohon memilih nama lain dan coba lagi. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11881,12 +12394,12 @@ Mohon memilih nama lain dan coba lagi. Watched Folder Options - + Opsi Folder yang Sudah Dilihat <html><head/><body><p>Will watch the folder and all its subfolders. In Manual torrent management mode it will also add subfolder name to the selected Save path.</p></body></html> - + Akan mengawasi folder dan semua subfoldernya. Dalam mode manajemen torrent Manual, mode ini juga akan menambahkan nama subfolder ke jalur Simpan yang dipilih. @@ -11909,12 +12422,12 @@ Mohon memilih nama lain dan coba lagi. Watched folder path cannot be empty. - + Jalur folder yang ditonton tidak boleh kosong. Watched folder path cannot be relative. - + Jalur folder yang diawasi harus absolut. @@ -11935,72 +12448,72 @@ Mohon memilih nama lain dan coba lagi. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Tipe berkas tidak diterima, hanya berkas reguler diterima. - + Symlinks inside alternative UI folder are forbidden. Symlinks didalam alternatif folder UI dilarang. - + Using built-in WebUI. - + Gunakan built-in WebUI. - + Using custom WebUI. Location: "%1". - + Gunakan WebUI kustom. Lokasi "%1" - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: header asal & Target asal tidak sesuai! Sumber IP: '%1'. Header asal: '%2'. Target asal: '%3 - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Pengarah header & Target asal tidak sesuai! Sumber IP: '%1'. Pengarah header: '%2'. Target asal: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: : header Host tidak sah, port tidak sesuai. Permintaan asal IP: '%1'. Server port: '%2'. Diterima Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: header Host tidak sah. Permintaan asal IP: '%1'. Diterima header Host: '%2' @@ -12008,125 +12521,133 @@ Mohon memilih nama lain dan coba lagi. WebUI - + Credentials are not set Sertifikat belum ditentukan - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Galat tidak diketahui + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1j %2m - + %1d %2h e.g: 2 days 10 hours %1h %2j - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_is.ts b/src/lang/qbittorrent_is.ts index e088e309a..a9459be35 100644 --- a/src/lang/qbittorrent_is.ts +++ b/src/lang/qbittorrent_is.ts @@ -18,75 +18,75 @@ Höfundur - + Authors - + Current maintainer Núverandi umsjónarmaður - + Greece Grikkland - - + + Nationality: - - + + E-mail: Tölvupóstur - - + + Name: Nafn: - + Original author Upprunalegur höfundur - + France Frakkland - + Special Thanks - + Translators - + License Leyfi - + Software Used - + qBittorrent was built with the following libraries: - + Copy to clipboard @@ -97,7 +97,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -221,14 +221,13 @@ Setja sem sjálfgefna vistunar slóð - + Never show again Aldrei sýna aftur - Torrent settings - Torrent stillingar + Torrent stillingar @@ -246,12 +245,12 @@ Setja í gang torrent - + Torrent information - + Skip hash check @@ -260,6 +259,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -286,75 +290,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: - + Original - + Create subfolder - + Don't create subfolder - + Info hash v1: - + Size: Stærð: - + Comment: Umsögn - + Date: Dagsetning: @@ -384,37 +388,37 @@ - + Do not delete .torrent file - + Download in sequential order - + Info hash v2: - + Download first and last pieces first - + Select All Velja allt - + Select None Velja ekkert - + Save as .torrent file... @@ -435,12 +439,12 @@ Ekki sækja - + Filter files... - + I/O Error I/O Villa @@ -449,19 +453,19 @@ Þegar á niðurhal lista - + Not Available This comment is unavailable Ekki í boði - + Not Available This date is unavailable Ekki í boði - + Not available Ekki í boði @@ -470,12 +474,12 @@ Get ekki bætt við torrent - + Magnet link - + Retrieving metadata... @@ -485,8 +489,8 @@ Ekki í boði - - + + Choose save path Veldu vista slóðina @@ -503,59 +507,59 @@ Skráin gat ekki verið endurnefnd - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A - + %1 (Free space on disk: %2) - + Not available This size is unavailable. Ekki í boði - + Torrent file (*%1) - + Save as torrent file - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. @@ -576,12 +580,12 @@ Forgangur - + Parsing metadata... - + Metadata retrieval complete @@ -593,35 +597,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -784,485 +788,560 @@ AdvancedSettings - - - - + + + + MiB MiB - + Socket backlog size - + Recheck torrents on completion - - + + ms milliseconds ms - + Setting Stillingar - + Value Value set for this setting Gildi - + (disabled) - + (auto) (sjálfgefið) - + + min minutes - + All addresses - + qBittorrent Section - - + + Open documentation - + All IPv4 addresses - + All IPv6 addresses - + libtorrent Section - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Venjulegt - + Below normal - + Medium - + Low - + Very low - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval - + Disk queue size - - + + Enable OS cache - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - + Stop tracker timeout [0: disabled] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Type of service (ToS) for connections to peers - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Server-side request forgery (SSRF) mitigation - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length @@ -1272,159 +1351,159 @@ m - + Prefer TCP - + Peer proportional (throttles TCP) - + Allow multiple connections from the same IP address - + Resolve peer host names - + Display notifications - + Display notifications for added torrents - + Notification timeout [0: infinite, -1: system default] - + Download tracker's favicon - + Save path history length - + Enable speed graphs - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck - + Confirm removal of all tags - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Validate HTTPS tracker certificates - + Disallow connection to peers on privileged ports - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker - + Embedded tracker port @@ -1433,6 +1512,30 @@ Athuga með hugbúnaðar uppfærslu + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application @@ -1441,73 +1544,84 @@ qBittorrent %1 byrjað - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + Torrent name: %1 Torrent nafn: %1 - + Torrent size: %1 Torrent stærð: %1 - + Save path: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + + Thank you for using qBittorrent. - + + This is a test email. + + + + + Test email + + + + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. @@ -1516,55 +1630,55 @@ [qBittorrent] '%1' hefur lokið niðurhali - + Torrent: %1, sending mail notification - + Running external program. Torrent: "%1". Command: `%2` - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit H&ætta - + I/O Error i.e: Input/Output Error I/O Villa - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1576,23 +1690,23 @@ Villa - + Torrent added - + '%1' was added. e.g: xxx.avi was added. - + Download completed - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. @@ -1602,72 +1716,72 @@ Gat ekki sótt torrent skrá af URL '%1', ástæða: %2. - + Information Upplýsingar - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Aldrei - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Vista torrent framfarir... - + qBittorrent is now ready to exit @@ -1754,12 +1868,12 @@ - + Must Not Contain: Má ekki innihalda: - + Episode Filter: @@ -1819,145 +1933,145 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &útflutningur... - + Matches articles based on episode filter. - + Example: Dæmi: - + 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 - + 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 - + Episode number is a mandatory positive value - + Rules - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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 - + Invalid action Ógild aðgerð - + The list is empty, there is nothing to export. - + Export RSS rules - + I/O Error I/O Villa - + Failed to create the destination file. Reason: %1 - + Import RSS rules @@ -1966,120 +2080,120 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also innflutnings Villa - + Failed to import the selected rules file. Reason: %1 - + Add new rule... - + Delete rule - + Rename rule... - + Delete selected rules - + Clear downloaded episodes... - + Rule renaming - + Please type the new rule name - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -2128,7 +2242,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -2138,28 +2252,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2170,16 +2294,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2187,38 +2312,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2226,22 +2373,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2280,457 +2427,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2746,13 +2939,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2767,67 +2960,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2848,189 +3041,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: Notkun: - + [options] [(<filename> | <url>)...] - + Options: Valkostir: - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused - - - - - Skip hash check + + Add torrents as running or stopped - Assign torrents to category. If the category doesn't exist, it will be created. + Skip hash check - Download files in sequential order + Assign torrents to category. If the category doesn't exist, it will be created. - Download first and last pieces first + Download files in sequential order + Download first and last pieces first + + + + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Hjálp @@ -3082,12 +3275,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents + Start torrents - Pause torrents + Stop torrents @@ -3103,15 +3296,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset + + + System + + CookiesDialog @@ -3152,12 +3350,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -3165,7 +3363,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -3184,7 +3382,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files @@ -3192,19 +3390,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Einnig eyða skrám af harðadiski - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3217,12 +3415,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3232,12 +3430,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Niðurhal - + No URL entered - + Please type at least one URL. @@ -3428,25 +3626,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3454,38 +3675,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. @@ -3493,17 +3714,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3721,26 +3942,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Skoða... - + Reset - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3790,13 +4045,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3805,60 +4060,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3879,42 +4134,37 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Breyta - + &Tools &Verkfæri - + &File &Skrá - + &Help &Hjálp - + On Downloads &Done - + &View &Sýn - + &Options... &Valkostir... - - &Resume - - - - + Torrent &Creator @@ -3935,368 +4185,445 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Auka Forgang - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + Status &Bar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine Leitar &vél - + L&ock qBittorrent - + Do&nate! - + + Sh&utdown System + + + + &Do nothing - + Close Window - - R&esume All - - - - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log &Leiðarbók - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + &Remove - + Set Global Speed Limits... - + Bottom of Queue - + Move to the bottom of the queue - + Top of Queue - + Move to the top of the queue - + Move Down Queue - + Move down in the queue - + Move Up Queue - + Move up in the queue - + Filters Sidebar - + &Exit qBittorrent &Hætta qBittorrent - + &Suspend System - + &Hibernate System - - S&hutdown System - - - - + &Statistics &Tölfræði - + Check for Updates Athuga með uppfærslur - + Check for Program Updates - + &About &Um - - - &Pause - - &Delete &Eyða - - P&ause All - - - - + &Add Torrent File... - + Open Opna - + E&xit H&ætta - + Open URL Opna URL - + &Documentation - + Lock Læsa - - - + + + Show Sýna - + Check for program updates - + Add Torrent &Link... - + If you like qBittorrent, please donate! - - + + Execution Log - + Clear the password - + &Set Password - + Preferences - + &Clear Password - + Transfers - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - + + UI lock password - - + + Please type the UI lock password: - + Are you sure you want to clear the password? - + Use regular expressions - + + + Search Engine + Leitarvél + + + + Search has failed + + + + + Search has finished + Leit lokið + + + Search Leita - + Transfers (%1) + + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + Error Villa @@ -4319,59 +4646,65 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Aldrei - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No &Nei - + &Yes &Já - + &Always Yes &Alltaf já - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Missing Python Runtime - + qBittorrent Update Available qBittorrent uppfærsla í boði @@ -4386,67 +4719,72 @@ Viltu sækja %1? Gat ekki sótt torrent skrá af URL '%1', ástæða: %2. - + 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. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. - + &Check for Updates &Athuga með uppfærslur - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + + + + Checking for Updates... Athuga með uppfærslur... - + Already checking for program updates in the background @@ -4455,57 +4793,51 @@ Minimum requirement: %2. Python fannst í '%1' - + Download error Niðurhal villa - - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - - + + Invalid password - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid - + DL speed: %1 e.g: Download speed: 10 KiB/s - + UP speed: %1 e.g: Upload speed: 10 KiB/s @@ -4516,22 +4848,22 @@ Please install it manually. [D: %1, U: %2] qBittorrent %3 - + Hide Fela - + Exiting qBittorrent Hætti qBittorrent - + Open Torrent Files - + Torrent Files @@ -4737,7 +5069,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -6035,47 +6372,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -6113,17 +6450,12 @@ Please install it manually. - + RSS - - Web UI - - - - + Advanced @@ -6132,187 +6464,171 @@ Please install it manually. Tungumál - + Transfer List - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always Alltaf - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - - - - - + + Open destination folder - - + + No action - + Completed torrents: - + Auto hide zero status filters - + Desktop - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original - + Create subfolder - + Don't create subfolder - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Options.. - + Remove - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6329,301 +6645,346 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + Start time - + From: From start time - + End time - + To: To end time - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: - - - + + + min minutes - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent and its files - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + Slóð: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) - + IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Aldrei - + ban for: - + Session timeout: - + Disabled - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6632,675 +6993,701 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + Leita + + + + WebUI + + + + Interface - + Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Venjulegt - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates - + Power Management - + + &Log Files + + + + Save path: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: - + Manual - + Automatic - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Customize UI Theme... - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Receiver - + To: To receiver - + SMTP server: - + Sender - + From: From sender - + This server requires a secure connection (SSL) - - + + Authentication - - - - + + + + Username: Notandanafn: - - - - + + + + Password: Lykilorð: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + Listening Port - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits - + Maximum number of connections per torrent: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server - + Type: - + SOCKS4 - + SOCKS5 - + HTTP - - + + Host: - - - + + + Port: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s - - + + Upload: @@ -7309,517 +7696,577 @@ Manual: Various torrent properties (e.g. save path) must be assigned manuallyKiB/s - - + + Download: - + Alternative Rate Limits - + When: - + Every day Daglega - + Weekdays - + Weekends - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: - + Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: - + Register - + Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name - + %L: Category - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7827,241 +8274,246 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually PeerInfo - + Unknown Óþekkt - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port - + Flags - + Connection Tenging - + Client i.e.: Client application - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Framför - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Downloaded i.e: total data downloaded Sótt - + 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. - + Files i.e. files that are being downloaded right now Skrár - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A - + Copy IP:port @@ -8087,7 +8539,7 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - + Format: IPv4:port / [IPv6]:port @@ -8128,27 +8580,27 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -8161,58 +8613,58 @@ Manual: Various torrent properties (e.g. save path) must be assigned manually - + Installed search plugins: - + Name Nafn - + Version Útgáfa - + Url Vefslóð - - + + Enabled Virkt - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - + Check for updates Athuga með uppfærslur - + Close Loka - + Uninstall @@ -8370,54 +8822,21 @@ Those plugins were disabled. - + Search plugin source: - + Local file - + Web link - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelect @@ -8436,47 +8855,47 @@ Those plugins were disabled. PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview - + Name Nafn - + Size Stærð - + Progress Framför - + Preview impossible - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8489,27 +8908,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -8587,12 +9006,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: - + Availability: Fáanleiki: @@ -8607,53 +9026,53 @@ Those plugins were disabled. - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + ETA: - + Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: @@ -8663,32 +9082,32 @@ Those plugins were disabled. Tengingar: - + Information Upplýsingar - + Info Hash v1: - + Info Hash v2: - + Comment: Umsögn - + Select All Velja allt - + Select None Velja ekkert @@ -8701,52 +9120,68 @@ Those plugins were disabled. Hár - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Heildar stærð: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + + Private: + + + + Save Path: @@ -8759,54 +9194,102 @@ Those plugins were disabled. Ekki sækja - + Never Aldrei - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (hafa %3) - - + + %1 (%2 this session) - - + + + N/A - + + Yes + + + + + No + Nei + + + %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 mest) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 alls) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) + + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + + Add web seed + Add HTTP source + + + + + Add web seed: + + + + + + This web seed is already in the list. + + Open Opna @@ -8820,32 +9303,12 @@ Those plugins were disabled. Forgangur - - New Web seed - - - - - Remove Web seed - - - - - Copy Web seed URL - - - - - Edit Web seed URL - - - - + Speed graphs are disabled - + You can enable it in Advanced Options @@ -8874,34 +9337,17 @@ Those plugins were disabled. qBittorrent - + Filter files... - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8995,33 +9441,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -9029,22 +9475,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -9080,12 +9526,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -9093,103 +9539,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Slóð: + + + + Refresh interval: + + + + + sec + + + + + Default + + + RSSImp @@ -9236,8 +9723,8 @@ Those plugins were disabled. - - + + Mark items read @@ -9262,132 +9749,115 @@ Those plugins were disabled. - - + + Delete Eyða - + Rename... - + Rename Endurnefna - - + + Update Uppfæra - + New subscription... - - + + Update all feeds - + Download torrent Sækja torrent - + Open news URL Opna frétta vefslóð - + Copy feed URL - + New folder... Ný mappa... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name - + Folder name: Möppu nafn: - + New folder Ný mappa - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: - + Rename failed - + Date: Dagsetning: - + Feed: - + Author: Höfundur: @@ -9402,38 +9872,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -9539,132 +10009,146 @@ Those plugins were disabled. Stærð: - + Name i.e: file name Nafn - + Size i.e: file size Stærð - + Seeders i.e: Number of full sources - + Leechers i.e: Number of partial sources - Search engine - Leitarvél + Leitarvél - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere - + Use regular expressions - + Open download window - + Download Niðurhal - + Open description page - + Copy Afrita - + Name Nafn - + Download link - + Description page URL - + Searching... - + Search has finished Leit lokið - + Search aborted - + An error occurred during search... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -9679,104 +10163,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories Allir flokkar - + Movies Kvikmyndir - + TV shows Sjónvarpsþættir - + Music Tónlist - + Games Leikir - + Anime - + Software - + Pictures Myndir - + Books Bækur - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -9815,15 +10299,11 @@ Those plugins were disabled. - - - - Search Leita - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. @@ -9833,98 +10313,137 @@ Click the "Search plugins..." button at the bottom right of the window Niðurhal - + Search plugins... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... - - - + + Search Engine Leitarvél - + + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - + + Stop - Search has finished - Leit lokið + Leit lokið + + + + SearchWidget::DataStorage + + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" @@ -10042,34 +10561,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: - - - + + + - - - + + + KiB/s - - + + Download: - + Alternative speed limits @@ -10261,32 +10780,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -10301,12 +10820,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -10329,51 +10848,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes - + qBittorrent needs to be restarted! - - - + + + Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -10403,12 +10948,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) + Running (0) - Paused (0) + Stopped (0) @@ -10471,9 +11016,24 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Lokið (%1) + + + Running (%1) + + - Paused (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents @@ -10481,16 +11041,6 @@ Click the "Search plugins..." button at the bottom right of the window Moving (%1) - - - Resume torrents - - - - - Pause torrents - - Remove torrents @@ -10500,11 +11050,6 @@ Click the "Search plugins..." button at the bottom right of the window Delete torrents Eyða torrents - - - Resumed (%1) - - Active (%1) @@ -10612,16 +11157,6 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags - - - Resume torrents - - - - - Pause torrents - - Delete torrents Eyða torrents @@ -10632,8 +11167,13 @@ Click the "Search plugins..." button at the bottom right of the window - - New Tag + + Start torrents + + + + + Stop torrents @@ -10641,6 +11181,11 @@ Click the "Search plugins..." button at the bottom right of the window Tag: + + + Add tag + + Invalid tag name @@ -10784,7 +11329,7 @@ Please choose a different name and try again. TorrentContentModel - + Name Nafn @@ -10793,27 +11338,27 @@ Please choose a different name and try again. Stærð - + Progress Framför - + Download Priority Niðurhal forgangur - + Remaining Eftir - + Availability - + Total Size Heildar stærð @@ -10873,98 +11418,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + New name: Nýtt nafn: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Opna - + Open containing folder - + Rename... - + Priority Forgangur - - + + Do not download Ekki sækja - + Normal Venjulegt - + High Hár - + Maximum Hámark - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10972,17 +11517,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -11011,13 +11556,13 @@ Please choose a different name and try again. - + Select file - + Select folder @@ -11140,83 +11685,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: - + Comments: - + Source: - + Progress: Framför: - + Create Torrent - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator - + Torrent created: @@ -11283,32 +11828,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -11316,44 +11861,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - - - TorrentModel @@ -11425,173 +11957,161 @@ Please choose a different name and try again. - + Category: - - Torrent speed limits + + Torrent Share Limits - + Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s - + These will not exceed the global limits - + Upload: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order - + Disable PeX for this torrent - + Download first and last pieces first - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Veldu vista slóðina - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -11604,32 +12124,32 @@ Please choose a different name and try again. - - New Tag + + Add tag - + Tag: - + Invalid tag name - + Tag name '%1' is invalid. - + Tag exists - + Tag name already exists. @@ -11649,115 +12169,130 @@ Please choose a different name and try again. Virkar ekki - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -11847,120 +12382,115 @@ Please choose a different name and try again. TrackerListModel - + Working Virkar - + Disabled - + Disabled for this torrent - + This torrent is private - + N/A - + Updating... Uppfæri... - + Not working Virkar ekki - + Tracker error - + Unreachable - + Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - Staða - - - - Peers - - - - - Seeds - - - - - Leeches - - - - - Times Downloaded - - - - - Message - Skilaboð - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + Staða + + + + Peers + + + + + Seeds + + + + + Leeches + + + + + Times Downloaded + + + + + Message + Skilaboð + TrackerListWidget @@ -11969,7 +12499,7 @@ Please choose a different name and try again. Virkar - + This torrent is private @@ -11982,53 +12512,53 @@ Please choose a different name and try again. Virkar ekki - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers @@ -12041,17 +12571,17 @@ Please choose a different name and try again. Staða - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... @@ -12064,7 +12594,7 @@ Please choose a different name and try again. Skilaboð - + Column visibility @@ -12101,12 +12631,12 @@ Please choose a different name and try again. - + µTorrent compatible list URL: - + Download trackers list @@ -12119,27 +12649,27 @@ Please choose a different name and try again. Niðurhal villa - + Add Bæta - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -12179,62 +12709,62 @@ Please choose a different name and try again. Villa (%1) - + Warning (%1) Aðvörun (%1) - + Trackerless (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker - - Resume torrents + + Start torrents - - Pause torrents + + Stop torrents - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Allt (%1) @@ -12243,7 +12773,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -12366,11 +12896,6 @@ Please choose a different name and try again. 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. - - - Paused - - Completed @@ -12394,13 +12919,13 @@ Please choose a different name and try again. Villur - + Name i.e: torrent name Nafn - + Size i.e: torrent size Stærð @@ -12411,208 +12936,245 @@ Please choose a different name and try again. Lokið - + Progress % Done Framför - Status Torrent status (e.g. downloading, seeding, paused) + Staða + + + + Stopped + + + + + Status + Torrent status (e.g. downloading, seeding, stopped) Staða - + Seeds i.e. full sources (often untranslated) - + Peers i.e. partial sources (often untranslated) - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Ratio Share ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left - + Category - + Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 - + Completed On Torrent was completed on 01/01/2010 08:00 - + Tracker - + Down Limit i.e: Download limit - + Up Limit i.e: Upload limit - + Downloaded Amount of data downloaded (e.g. in MB) Sótt - + Uploaded Amount of data uploaded (e.g. in MB) - + 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) - + Remaining Amount of data left to download (e.g. in MB) Eftir - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + + Yes + + + + + No + Nei + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Lokið - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded - + Total Size i.e. Size including unwanted data Heildar stærð - + Availability The number of distributed copies of the torrent - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A - + %1 ago e.g.: 1h 20m ago %1 síðan - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) @@ -12621,314 +13183,299 @@ Please choose a different name and try again. TransferListWidget - + Column visibility - + Choose save path Veldu vista slóðina - + Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + Rename Endurnefna - + New name: Nýtt nafn: - + Unable to preview - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags - + Remove all tags from selected torrents? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - - - &Resume - Resume/start the torrent - - - - - &Pause - Pause the torrent - - - - - Force Resu&me - Force Resume/start the torrent - - &Delete Delete the torrent &Eyða - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported @@ -12962,30 +13509,25 @@ Please choose a different name and try again. Nafn - + Download in sequential order - + Download first and last pieces first - + Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - Copy Afrita @@ -13003,7 +13545,7 @@ Please choose a different name and try again. Afrita magnet slóð - + Super seeding mode @@ -13052,28 +13594,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -13081,7 +13623,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -13112,20 +13659,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -13133,32 +13681,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -13258,72 +13806,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -13331,27 +13879,27 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 @@ -13468,82 +14016,90 @@ Please choose a different name and try again. Hætta við + + fs + + + Unknown error + Óþekkt villa + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second /s - + %1s e.g: 10 seconds %1m {1s?} - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1d %2h {1y?} {2d?} @@ -13564,19 +14120,19 @@ Please choose a different name and try again. %1d %2h {1y?} {2d?} - - + + Unknown Unknown (size) Óþekkt - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_it.ts b/src/lang/qbittorrent_it.ts index 87489703c..0fc4858e9 100644 --- a/src/lang/qbittorrent_it.ts +++ b/src/lang/qbittorrent_it.ts @@ -14,75 +14,75 @@ Info programma - + Authors Autori - + Current maintainer Attuale manutentore - + Greece Grecia - - + + Nationality: Nazionalità: - - + + E-mail: E-mail: - - + + Name: Nome: - + Original author Autore originale - + France Francia - + Special Thanks Ringraziamenti speciali - + Translators Traduttori - + License Licenza - + Software Used Software usato - + qBittorrent was built with the following libraries: qBittorrent è stato costruito con le seguenti librerie: - + Copy to clipboard Copia negli appunti @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -114,7 +114,7 @@ The free IP to Country Lite database by DB-IP is used for resolving the countries of peers. The database is licensed under the Creative Commons Attribution 4.0 International License - Il database gratuito da IP a Country Lite di DB-IP viene usato per determinare i paesi dei peer. + Il database gratuito da IP a Country Lite di DB-IP viene usato per determinare i paesi dei peer. Il database è concesso in licenza con la licenza internazionale Creative Commons Attribution 4.0. @@ -167,15 +167,10 @@ Il database è concesso in licenza con la licenza internazionale Creative Common Salva in - + Never show again Non visualizzare più - - - Torrent settings - Impostazioni torrent - Set as default category @@ -192,12 +187,12 @@ Il database è concesso in licenza con la licenza internazionale Creative Common Avvia torrent - + Torrent information Informazioni torrent - + Skip hash check Salta controllo hash @@ -206,6 +201,11 @@ Il database è concesso in licenza con la licenza internazionale Creative Common Use another path for incomplete torrent Usa un altro percorso per torrent incompleto + + + Torrent options + Opzioni torrent + Tags: @@ -232,75 +232,75 @@ Il database è concesso in licenza con la licenza internazionale Creative Common Condizione stop: - - + + None Nessuna - - + + Metadata received Ricevuti metadati - + Torrents that have metadata initially will be added as stopped. - + I torrent con metadati iniziali saranno aggiunti come fermati. - - + + Files checked File controllati - + Add to top of queue Aggiungi in cima alla coda - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Se selezionato, il file .torrent non verrà eliminato indipendentemente dalle impostazioni nella pagina "Download" della finestra di dialogo Opzioni - + Content layout: Layout contenuto: - + Original Originale - + Create subfolder Crea sottocartella - + Don't create subfolder Non creare sottocartella - + Info hash v1: Info hash v1: - + Size: Dimensione: - + Comment: Commento: - + Date: Data: @@ -330,151 +330,147 @@ Il database è concesso in licenza con la licenza internazionale Creative Common Ricorda ultimo percorso di salvataggio - + Do not delete .torrent file Non cancellare file .torrent - + Download in sequential order Scarica in ordine sequenziale - + Download first and last pieces first Scarica la prima e l'ultima parte per prime - + Info hash v2: Info has v2: - + Select All Seleziona tutto - + Select None Deseleziona tutto - + Save as .torrent file... Salva come file .torrent... - + I/O Error Errore I/O - + Not Available This comment is unavailable Commento non disponibile - + Not Available This date is unavailable Non disponibile - + Not available Non disponibile - + Magnet link Collegamento magnet - + Retrieving metadata... Recupero metadati... - - + + Choose save path Scegli una cartella per il salvataggio - + No stop condition is set. Non è impostata alcuna condizione di arresto. - + Torrent will stop after metadata is received. Il torrent si interromperà dopo la ricezione dei metadati. - Torrents that have metadata initially aren't affected. - Non sono interessati i torrent che inizialmente hanno metadati. - - - + Torrent will stop after files are initially checked. Il torrent si fermerà dopo che i file sono stati inizialmente controllati. - + This will also download metadata if it wasn't there initially. Questo scaricherà anche i metadati se inizialmente non erano presenti. - - + + N/A N/D - + %1 (Free space on disk: %2) %1 (Spazio libero nel disco: %2) - + Not available This size is unavailable. Non disponibile - + Torrent file (*%1) File torrent (*%1) - + Save as torrent file Salva come file torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Impossibile esportare file metadati torrent "%1": motivo %2. - + Cannot create v2 torrent until its data is fully downloaded. Impossibile creare torrent v2 fino a quando i relativi dati non sono stati completamente scaricati. - + Filter files... Filtra file... - + Parsing metadata... Analisi metadati... - + Metadata retrieval complete Recupero metadati completato @@ -482,41 +478,42 @@ Il database è concesso in licenza con la licenza internazionale Creative Common AddTorrentManager - + Downloading torrent... Source: "%1" - Download torrent... + Download torrent... Sorgente: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - Impossibile aggiungere il torrent. + Impossibile aggiungere il torrent. Sorgente: "%1" Motivo: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Rilevato un tentativo di aggiungere un torrent duplicato. -Sorgente: %1 -Torrent esistente: %2 -Risultato: %3 - - - + Merging of trackers is disabled L'unione dei tracker è disabilitata - + Trackers cannot be merged because it is a private torrent I tracker non possono essere uniti perché è un torrent privato - + Trackers are merged from new source I trackersono stati uniti dalla nuova sorgente + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Rilevato un tentativo di aggiungere un torrente duplicato. +Sorgente: %1. +Torrent esistente: "%2". +Info hash torrent: %3. +Risultato: %4 + AddTorrentParamsWidget @@ -603,7 +600,7 @@ Risultato: %3 Torrent share limits - Limiti condivisione torrent + Limiti condivisione torrent @@ -679,769 +676,869 @@ Risultato: %3 AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Ricontrolla torrent quando completato - - + + ms milliseconds ms - + Setting Impostazione - + Value Value set for this setting Valore - + (disabled) (disattivato) - + (auto) (auto) - + + min minutes min - + All addresses Tutti gli indirizzi - + qBittorrent Section Sezione qBittorrent - - + + Open documentation Apri documentazione - + All IPv4 addresses Tutti gli indirizzi IPv4 - + All IPv6 addresses Tutti gli indirizzi IPv6 - + libtorrent Section Sezione libtorrent - + Fastresume files File ripresa rapida - + SQLite database (experimental) Database SQL (sperimentale) - + Resume data storage type (requires restart) Tipo storage dati ripristino (richiede riavvio) - + Normal Normale - + Below normal Inferiore a normale - + Medium Media - + Low Bassa - + Very low Molto bassa - + Physical memory (RAM) usage limit Limite uso memoria fisica (RAM). - + Asynchronous I/O threads Thread I/O asincroni - + Hashing threads Thread hashing - + File pool size Dimensione file pool - + Outstanding memory when checking torrents Memoria aggiuntiva durante controllo torrent - + Disk cache Cache disco - - - - + + + + + s seconds s - + Disk cache expiry interval Intervallo scadenza cache disco - + Disk queue size Dimensioni coda disco - - + + Enable OS cache Attiva cache del SO - + Coalesce reads & writes Combina letture e scritture - + Use piece extent affinity Usa affinità estensione segmento - + Send upload piece suggestions Invia suggerimenti parti per invio - - - - + + + + + 0 (disabled) 0 (disabilitato) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Intervallo ripresa salvataggio dati [0: disabilitato] - + Outgoing ports (Min) [0: disabled] Porte in uscita (min) [0: disabilitata] - + Outgoing ports (Max) [0: disabled] Porte in uscita (max) [0: disabilitata] - + 0 (permanent lease) 0 (lease permanente) - + UPnP lease duration [0: permanent lease] Durata lease UPnP [0: lease permanente] - + Stop tracker timeout [0: disabled] Timeout stop tracker [0: disabilitato] - + Notification timeout [0: infinite, -1: system default] Timeout notifica [0: infinito, -1: predefinito sistema] - + Maximum outstanding requests to a single peer Numero max richieste in sospeso per singolo peer - - - - - + + + + + KiB KiB - + (infinite) (infinito) - + (system default) (predefinito sistema) - + + Delete files permanently + Elimina i file permanentemente + + + + Move files to trash (if possible) + Sposta i file nel cestino (se possibile) + + + + Torrent content removing mode + Modalità di rimozione contenuto torrent + + + This option is less effective on Linux Questa opzione è meno efficace su Linux - + Process memory priority Priorità processo memoria - + Bdecode depth limit Limite profondità Bdecode - + Bdecode token limit Limite token Bdecode - + Default Predefinito - + Memory mapped files File mappati in memoria - + POSIX-compliant Conforme a POSIX - + + Simple pread/pwrite + Lettura/scrittura semplice + + + Disk IO type (requires restart) Tipo di I/O del disco (richiede il riavvio) - - + + Disable OS cache Disabilita cache sistema operativo - + Disk IO read mode Modalità I/O lettura disco - + Write-through Write-through - + Disk IO write mode Modalità I/O scrittura disco - + Send buffer watermark Livello buffer invio - + Send buffer low watermark Livello buffer basso invio - + Send buffer watermark factor Fattore livello buffer invio - + Outgoing connections per second Connessioni in uscita per secondo - - + + 0 (system default) 0 (predefinito sistema) - + Socket send buffer size [0: system default] Dimensionei buffer socket invio [0: predefinita sistema] - + Socket receive buffer size [0: system default] Dimensione buffer ricezione socket [0: predefinita sistema] - + Socket backlog size Dimensione backlog socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervallo salvataggio statistiche [0: disabilitato] + + + .torrent file size limit Limite dimensione file .torrent - + Type of service (ToS) for connections to peers Tipo di servizio (ToS) per le connessioni ai peer - + Prefer TCP Preferisci TCP - + Peer proportional (throttles TCP) Proporzionale per nodo (soffoca TCP) - + + Internal hostname resolver cache expiry interval + Intervallo scadenza cache resolver host interno + + + Support internationalized domain name (IDN) Supporto nome dominio internazionalizzato (IDN) - + Allow multiple connections from the same IP address Permetti connessioni multiple dallo stesso indirizzo IP - + Validate HTTPS tracker certificates Valida certificati tracker HTTPS - + Server-side request forgery (SSRF) mitigation Necessaria mitigazione falsificazione richieste lato server (SSRF) - + Disallow connection to peers on privileged ports Non consentire la connessione a peer su porte privilegiate - + It appends the text to the window title to help distinguish qBittorent instances - + Aggiunge il testo al titolo della finestra per aiutare a distinguere le istanze di qBittorent - + Customize application instance name - + Personalizza il nome dell'istanza dell'applicazione - + It controls the internal state update interval which in turn will affect UI updates Controlla l'intervallo di aggiornamento dello stato interno che a sua volta influenzerà gli aggiornamenti dell'interfaccia utente - + Refresh interval Intervallo aggiornamento - + Resolve peer host names Risolvi i nomi host dei nodi - + IP address reported to trackers (requires restart) Indirizzo IP segnalato ai tracker (richiede il riavvio) - + + Port reported to trackers (requires restart) [0: listening port] + Porta riportata al tracker (richiede riavvio) [0: porta in ascolto] + + + Reannounce to all trackers when IP or port changed Riannuncia a tutti i tracker quando l'IP o la porta sono cambiati - + Enable icons in menus Abilita icone nei menu - + + Attach "Add new torrent" dialog to main window + Collega la finestra di dialogo "Aggiungi nuovo torrent" alla finestra principale + + + Enable port forwarding for embedded tracker Abilita il port forwarding per il tracker incorporato - + Enable quarantine for downloaded files Abilita quarantena per i file scaricati - + Enable Mark-of-the-Web (MOTW) for downloaded files Abilita Mark-of-the-Web (MOTW) per i file scaricati - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Influisce sulla convalida del certificato e sulle attività del protocollo non torrent (ad esempio feed RSS, aggiornamenti programma, file torrent, db geoip, ecc.) + + + + Ignore SSL errors + Ignora errori SSL + + + (Auto detect if empty) (Rilevamento automatico se vuoto) - + Python executable path (may require restart) Percorso eseguibile Python (potrebbe richiedere il riavvio) - + + Start BitTorrent session in paused state + Avvia la sessione BitTorrent in stato di pausa + + + + sec + seconds + s + + + + -1 (unlimited) + -1 (illimitato) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Timeout di spegnimento della sessione BitTorrent [-1: illimitato] + + + Confirm removal of tracker from all torrents Conferma rimozione tracker da tutti i torrent - + Peer turnover disconnect percentage Percentuale di disconnessione turnover peer - + Peer turnover threshold percentage Percentuale livello turnover peer - + Peer turnover disconnect interval Intervallo disconnessione turnover peer - + Resets to default if empty Ripristina il predefinito se vuoto - + DHT bootstrap nodes Nodi bootstrap DHT - + I2P inbound quantity Quantità I2P in entrata - + I2P outbound quantity Quantità I2P in uscita - + I2P inbound length Lunghezza I2P in entrata - + I2P outbound length Lunghezza I2P in uscita - + Display notifications Visualizza notifiche - + Display notifications for added torrents Visualizza notifiche per i torrent aggiunti - + Download tracker's favicon Scarica iconcina server traccia - + Save path history length Lunghezza storico percorso di salvataggio - + Enable speed graphs Abilita grafico velocità - + Fixed slots Posizioni fisse - + Upload rate based Secondo velocità di invio - + Upload slots behavior Comportamento slot invio - + Round-robin A turno - + Fastest upload Invio più veloce - + Anti-leech Anti-download - + Upload choking algorithm Algoritmo riduzione invio - + Confirm torrent recheck Conferma ricontrollo torrent - + Confirm removal of all tags Conferma rimozione di tutte le etichette - + Always announce to all trackers in a tier Annuncia sempre a tutti i server traccia in un livello - + Always announce to all tiers Annuncia sempre a tutti i livelli - + Any interface i.e. Any network interface Qualsiasi interfaccia - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritmo modalità mista %1-TCP - + Resolve peer countries Risolvi nazioni peer - + Network interface Interfaccia di rete - + Optional IP address to bind to Indirizzo IP opzionale a cui collegarsi - + Max concurrent HTTP announces Annunci HTTP contemporanei max - + Enable embedded tracker Abilita server traccia integrato - + Embedded tracker port Porta server traccia integrato + + AppController + + + + Invalid directory path + Percorso directory non valido + + + + Directory does not exist + La directory non esiste + + + + Invalid mode, allowed values: %1 + Modalità non valida, valori consentiti: %1 + + + + cookies must be array + i cookie devono essere una matrice + + Application - + Running in portable mode. Auto detected profile folder at: %1 In esecuzione in modo portatile. Rilevamento automatico cartella profilo in: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - Rilevato flag della riga di comando ridondante: "%1". + Rilevato flag della riga di comando ridondante: "%1". La modalità portatile implica una relativa ripresa rapida. - + Using config directory: %1 Usa cartella config: %1 - + Torrent name: %1 Nome torrent: %1 - + Torrent size: %1 Dimensione torrent: %1 - + Save path: %1 Percorso di salvataggio: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Il torrent è stato scaricato in %1. - + + Thank you for using qBittorrent. Grazie di usare qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, invio mail di notifica - + Add torrent failed Aggiunta torrent non riuscita - + Couldn't add torrent '%1', reason: %2. Impossibile aggiungere il torrent '%1'. Motivo: %2. - + The WebUI administrator username is: %1 Il nome utente dell'amministratore WebUI è: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - La password dell'amministratore WebUI non è stata impostata. + La password dell'amministratore WebUI non è stata impostata. Per questa sessione viene fornita una password temporanea: %1 - + You should set your own password in program preferences. Dovresti impostare la tua password nelle preferenze del programma. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - L'interfaccia utente Web è disabilitata! + L'interfaccia utente Web è disabilitata! Per abilitare l'interfaccia utente Web, modificare manualmente il file di configurazione. - + Running external program. Torrent: "%1". Command: `%2` Esecuzione programma esterno. torrent: "%1". comando: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - Impossibile eseguire il programma esterno. -Torrent: "%1". + Impossibile eseguire il programma esterno. +Torrent: "%1". Comando: `%2` - + Torrent "%1" has finished downloading Download completato torrent "%1" - + WebUI will be started shortly after internal preparations. Please wait... WebUI verrà avviats poco dopo i preparativi interni. Attendi... - - + + Loading torrents... Caricamento torrent... - + E&xit &Esci - + I/O Error i.e: Input/Output Error Errore I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1450,109 +1547,119 @@ Comando: `%2` Motivo: %2 - + Torrent added Torrent aggiunto - + '%1' was added. e.g: xxx.avi was added. '%1' è stato aggiunto. - + Download completed Download completato - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 avviato. ID processo: %2 - + + This is a test email. + Questa è una email di prova. + + + + Test email + Email di prova + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Download completato di '%1'. - + Information Informazioni - + To fix the error, you may need to edit the config file manually. Per correggere l'errore, potrebbe essere necessario modificare manualmente il file di configurazione. - + To control qBittorrent, access the WebUI at: %1 Per controllare qBittorrent, accedi alla WebUI a: %1 - + Exit Esci - + Recursive download confirmation Conferma ricorsiva download - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - Il torrent '%1' contiene file .torrent. + Il torrent '%1' contiene file .torrent. Vuoi procedere con il loro download? - + Never Mai - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - Download ricorsivo di file .torrent all'interno di torrent. -Sorgente torrent: "%1" + Download ricorsivo di file .torrent all'interno di torrent. +Sorgente torrent: "%1" File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - Impossibile impostare il limite di uso della memoria fisica (RAM). -Codice di errore: %1. + Impossibile impostare il limite di uso della memoria fisica (RAM). +Codice di errore: %1. Messaggio di errore: "%2". - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - Impossibile impostare il limite fisso di uso della memoria fisica (RAM). -Dimensione richiesta: %1. -Limite fisso del sistema: %2. -Codice errore: %3. + Impossibile impostare il limite fisso di uso della memoria fisica (RAM). +Dimensione richiesta: %1. +Limite fisso del sistema: %2. +Codice errore: %3. Messaggio di errore: "%4" - + qBittorrent termination initiated Chiusura di qBittorrent avviata - + qBittorrent is shutting down... Chiusura di qBittorrent... - + Saving torrent progress... Salvataggio avazamento torrent in corso... - + qBittorrent is now ready to exit qBittorrent è ora pronto per la chiusura @@ -1618,13 +1725,13 @@ Messaggio di errore: "%4" Auto downloading of RSS torrents is currently disabled. You can enable it in application settings. - Il download automatico dei torrent RSS è attualmente disabilitato. + Il download automatico dei torrent RSS è attualmente disabilitato. Puoi abilitarlo nelle impostazioni dell'applicazione. Rename selected rule. You can also use the F2 hotkey to rename. - Rinomina la regola selezionata. + Rinomina la regola selezionata. Per rinominare puoi anche usare il tasto di scelta rapida F2. @@ -1633,12 +1740,12 @@ Per rinominare puoi anche usare il tasto di scelta rapida F2. Priorità: - + Must Not Contain: Non deve contenere: - + Episode Filter: Filtro episodi: @@ -1691,263 +1798,263 @@ Supporta i formati: S01E01, 1x1, 2017.12.31 e 31.12.2017 (I formati a data suppo &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 - + 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 - + Episode number is a mandatory positive value Il numero dell'episodio deve essere positivo - + Rules Regole - + Rules (legacy) Regole (obsolete) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Intervallo infinito: <b>1x25-;</b> corrisponde agli episodi da 25 in su della prima stagione e a tutti gli episodi delle stagioni successive - + 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. Inserisci il nome della nuova regola 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 regole di download selezionata? - + Rule deletion confirmation Conferma eliminazione della regola - + Invalid action Azione non valida - + The list is empty, there is nothing to export. La lista è vuota, non c'è niente da esportare. - + Export RSS rules Esporta regole RSS - + I/O Error Errore I/O - + Failed to create the destination file. Reason: %1 Impossibile creare il file destinazione.Motivo: %1 - + Import RSS rules Importa regole RSS - + Failed to import the selected rules file. Reason: %1 Impossibile importare il file di regole selezionato. Motivo: %1 - + Add new rule... Aggiungi nuova regola... - + Delete rule Elimina regola - + Rename rule... Rinomina regola... - + Delete selected rules Elimina regole selezionate - + Clear downloaded episodes... Azzera episodi scaricati... - + Rule renaming Rinominazione regole - + Please type the new rule name Inserire il nuovo nome della regola - + Clear downloaded episodes Azzera episodi scaricati - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Sei sicuro di voler azzerare la lista degli episodi scaricati per la regola selezionata? - + Regex mode: use Perl-compatible regular expressions Modalità regex: usa espressioni regolari Perl - - + + Position %1: %2 Posizione %1: %2 - + Wildcard mode: you can use Modalità jolly: puoi usare - - + + Import error Errore importazione - + Failed to read the file. %1 Impossibile leggere il file. %1 - + ? to match any single character ? corrisponde a qualunque carattere singolo - + * to match zero or more of any characters * corrisponde a zero o più caratteri qualsiasi - + Whitespaces count as AND operators (all words, any order) Gli spazi contano come operatori AND (tutte le parole, qualsiasi ordine) - + | is used as OR operator | è usato come operatore OR - + If word order is important use * instead of whitespace. Se l'ordine delle parole è importante usa * invece di uno spazio. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Un'espressione con una clausola %1 (per esempio %2) - + will match all articles. corrispondenza per tutti gli articoli. - + will exclude all articles. esclude tutti gli articoli. @@ -1989,7 +2096,7 @@ Supporta i formati: S01E01, 1x1, 2017.12.31 e 31.12.2017 (I formati a data suppo BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Impossibile creare cartella ripresa torrent: '%1' @@ -1999,31 +2106,41 @@ Supporta i formati: S01E01, 1x1, 2017.12.31 e 31.12.2017 (I formati a data suppo Impossibile analizzare dati di recupero: formato non valido - - + + Cannot parse torrent info: %1 Impossibile analizzare informazioni sul torrent: %1 - + Cannot parse torrent info: invalid format Impossibile analizzare informazioni sul torrent: formato non valido - + Mismatching info-hash detected in resume data Rilevato hash informativo non corrispondente nei dati ripresa trasferimento - + + Corrupted resume data: %1 + Dati recupero corrotti: %1 + + + + save_path is invalid + save_path non è valido + + + Couldn't save torrent metadata to '%1'. Error: %2. - Impossibile salvare i metadati del torrent in '%1'. + Impossibile salvare i metadati del torrent in '%1'. Errore: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - Impossibile salvare i dati di ripristino del torrent in '%1'. + Impossibile salvare i dati di ripristino del torrent in '%1'. Errore: %2. @@ -2033,84 +2150,107 @@ Errore: %2. + Cannot parse resume data: %1 Impossibile analizzare i dati di recupero: %1 - + Resume data is invalid: neither metadata nor info-hash was found I dati di recupero non sono validi: non sono stati trovati né metadati né info hash - + Couldn't save data to '%1'. Error: %2 - Impossibile salvare i dati in '%1'. + Impossibile salvare i dati in '%1'. Errore: %2 BitTorrent::DBResumeDataStorage - + Not found. Non trovato. - + Couldn't load resume data of torrent '%1'. Error: %2 - Impossibile caricare dati ripresa torrent '%1'. + Impossibile caricare dati ripresa torrent '%1'. Errore: %2. - - + + Database is corrupted. Il database è danneggiato. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Impossibile abilitare la modalità di journaling WAL (Write-Ahead Logging). Errore: '%1'. - + Couldn't obtain query result. Impossibile ottenere il risultato della query. - + WAL mode is probably unsupported due to filesystem limitations. La modalità WAL probabilmente non è supportata a causa delle limitazioni del file system. - + + + Cannot parse resume data: %1 + Impossibile analizzare i dati di recupero: %1 + + + + + Cannot parse torrent info: %1 + Impossibile analizzare informazioni sul torrent: %1 + + + + Corrupted resume data: %1 + Dati recupero corrotti: %1 + + + + save_path is invalid + save_path non è valido + + + Couldn't begin transaction. Error: %1 - Impossibile iniziare la transazione. + Impossibile iniziare la transazione. Errore: %1 BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - Impossibile salvare i metadati del torrent. + Impossibile salvare i metadati del torrent. Errore: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - Impossibile salvare dati ripresa torrent '%1'. + Impossibile salvare dati ripresa torrent '%1'. Errore: %2. - + Couldn't delete resume data of torrent '%1'. Error: %2 Impossibile eliminare dati ripresa torrent '%1'. Errore: %2. - + Couldn't store torrents queue positions. Error: %1 Impossibile salvare posizione coda. Errore: %1 @@ -2118,548 +2258,596 @@ Errore: %2. BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Supporto tabella hash distribuita (DHT): %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 Supporto rilevamento peer locale: %1 - + Restart is required to toggle Peer Exchange (PeX) support Per attivare il supporto Peer Exchange (PeX). è necessario il riavvio - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - Impossibile riprendere il torrent. + Impossibile riprendere il torrent. Torrent: "%1". Motivo: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - Impossibile riprendere il torrent: è stato rilevato un ID torrent incoerente. + Impossibile riprendere il torrent: è stato rilevato un ID torrent incoerente. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - Rilevati dati incoerenti: la categoria non è presente nel file di configurazione. -La categoria verrà ripristinata ma le sue impostazioni verranno ripristinate ai valori predefiniti. + Rilevati dati incoerenti: la categoria non è presente nel file di configurazione. +La categoria verrà ripristinata ma le sue impostazioni verranno ripristinate ai valori predefiniti. Torrent: "%1". categoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - Rilevati dati incoerenti: categoria non valida. + Rilevati dati incoerenti: categoria non valida. Torrent: "%1". categoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - Rilevata mancata corrispondenza tra i percorsi di salvataggio della categoria recuperata e il percorso di salvataggio attuale del torrent. -Il torrent è ora passato alla modalità manuale. + Rilevata mancata corrispondenza tra i percorsi di salvataggio della categoria recuperata e il percorso di salvataggio attuale del torrent. +Il torrent è ora passato alla modalità manuale. Torrent: "%1". categoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - Rilevati dati incoerenti: tag mancante nel file di configurazione. -Il tag verrà recuperato. + Rilevati dati incoerenti: tag mancante nel file di configurazione. +Il tag verrà recuperato. Torrent: "%1". etichetta: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - Rilevati dati incoerenti: tag non valido. + Rilevati dati incoerenti: tag non valido. Torrent: "%1". etichetta: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - Rilevato evento di riattivazione del sistema. + Rilevato evento di riattivazione del sistema. Nuovo annuncio a tutti i tracker... - + Peer ID: "%1" ID peer: "%1" - + HTTP User-Agent: "%1" User Agent HTTP: "%1" - + Peer Exchange (PeX) support: %1 Supporto Peer Exchangei(PeX): %1 - - + + Anonymous mode: %1 Modalità anonima: %1 - - + + Encryption support: %1 Supporto crittografia: %1 - - + + FORCED FORZATO - + Could not find GUID of network interface. Interface: "%1" - Impossibile trovare la GUID dell'interfaccia di rete. + Impossibile trovare la GUID dell'interfaccia di rete. Interfaccia: "%1" - + Trying to listen on the following list of IP addresses: "%1" Tentativo di ascolto nel seguente elenco di indirizzi IP: "%1" - + Torrent reached the share ratio limit. Il torrent ha raggiunto il limite del rapporto di condivisione. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent rimosso. - - - - - - Removed torrent and deleted its content. - Torrent rimosso ed eliminato il suo contenuto. - - - - - - Torrent paused. - Torrent in pausa. - - - - - + Super seeding enabled. Super seeding abilitato. - + Torrent reached the seeding time limit. Il torrent ha raggiunto il limite del tempo di seeding. - + Torrent reached the inactive seeding time limit. Il torrent ha raggiunto il limite di tempo di seeding non attivo. - + Failed to load torrent. Reason: "%1" - Impossibile caricare il torrent. + Impossibile caricare il torrent. Motivo: "%1" - + I2P error. Message: "%1". - Errore I2P. + Errore I2P. Messaggio: "%1". - + UPnP/NAT-PMP support: ON Supporto UPnP/NAT-PMP: ON - + + Saving resume data completed. + Salvataggio dei dati di recupero completato. + + + + BitTorrent session successfully finished. + Sessione BitTorrent completata con successo. + + + + Session shutdown timed out. + La chiusura della sessione è scaduta. + + + + Removing torrent. + Rimozione del torrent. + + + + Removing torrent and deleting its content. + Rimozione del torrent ed eliminazione del suo contenuto. + + + + Torrent stopped. + Torrent fermato. + + + + Torrent content removed. Torrent: "%1" + Contenuto del torrent rimosso. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Impossibile rimuovere il contenuto del torrent. Torrent: "%1". Errore: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent rimosso. Torrent: "%1" + + + + Merging of trackers is disabled + L'unione dei tracker è disabilitata + + + + Trackers cannot be merged because it is a private torrent + I tracker non possono essere uniti perché è un torrent privato + + + + Trackers are merged from new source + I trackersono stati uniti dalla nuova sorgente + + + UPnP/NAT-PMP support: OFF Supporto UPnP/NAT-PMP: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - Impossibile esportare il torrent. -Torrent: "%1". -Destinazione: "%2". + Impossibile esportare il torrent. +Torrent: "%1". +Destinazione: "%2". Motivo: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - Salvataggio dei dati di ripristino interrotto. + Salvataggio dei dati di ripristino interrotto. Numero di torrent in sospeso: %1 - + The configured network address is invalid. Address: "%1" - L'indirizzo di rete configurato non è valido. + L'indirizzo di rete configurato non è valido. Indirizzo "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - Impossibile trovare l'indirizzo di rete configurato su cui ascoltare. + Impossibile trovare l'indirizzo di rete configurato su cui ascoltare. Indirizzo "%1" - + The configured network interface is invalid. Interface: "%1" - L'interfaccia di rete configurata non è valida. + L'interfaccia di rete configurata non è valida. Interfaccia: "%1" - + + Tracker list updated + Elenco tracker aggiornato + + + + Failed to update tracker list. Reason: "%1" + Impossibile aggiornare elenco tracker.. +Motivo: %1 + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - Indirizzo IP non valido rifiutato durante l'applicazione dell'elenco di indirizzi IP vietati. + Indirizzo IP non valido rifiutato durante l'applicazione dell'elenco di indirizzi IP vietati. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - Aggiunto tracker a torrent. -Torrent: "%1" + Aggiunto tracker a torrent. +Torrent: "%1" Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - Tracker rimosso dal torrent. -Torrent: "%1" + Tracker rimosso dal torrent. +Torrent: "%1" Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - Aggiunto seed URL al torrent. -Torrent: "%1" + Aggiunto seed URL al torrent. +Torrent: "%1" URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - Seed URL rimosso dal torrent. -Torrent: "%1" + Seed URL rimosso dal torrent. +Torrent: "%1" URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent in pausa. -Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Impossibile rimuovere partfile. Torrent: "%1". Motivo: "%2". - + Torrent resumed. Torrent: "%1" - Torrent ripreso. + Torrent ripreso. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - Download del torrent completato. + Download del torrent completato. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - Spostamento torrent annullato. -Torrent: "%1" -Sorgente: "%2" + Spostamento torrent annullato. +Torrent: "%1" +Sorgente: "%2" Destinazione: "%3" - + + Duplicate torrent + Torrent duplicato + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Rilevato un tentativo di aggiungere un torrente duplicato. +Torrent esistente: "%1". +Info hash torrent: %2. +Risultato: %3 + + + + Torrent stopped. Torrent: "%1" + Torrent fermato. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - Impossibile accodare lo spostamento del torrent. -Torrent: "%1" -Sorgente: "%2" -Destinazione: "%3" + Impossibile accodare lo spostamento del torrent. +Torrent: "%1" +Sorgente: "%2" +Destinazione: "%3" Motivo: il torrent si sta attualmente spostando verso la destinazione - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - Impossibile accodare lo spostamento del torrent. -Torrent: "%1" + Impossibile accodare lo spostamento del torrent. +Torrent: "%1" Sorgente: "%2" -Destinazione: "%3" +Destinazione: "%3" Motivo: entrambi i percorsi puntano alla stessa posizione - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - Spostamento torrent in coda. -Torrent: "%1" -Sorgente: "%2" + Spostamento torrent in coda. +Torrent: "%1" +Sorgente: "%2" Destinazione: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - Avvio spostamento torrent. -Torrent: "%1" + Avvio spostamento torrent. +Torrent: "%1" Destinazione: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - Impossibile salvare la configurazione delle categorie. -File: "%1" + Impossibile salvare la configurazione delle categorie. +File: "%1" Errore: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - Impossibile analizzare la configurazione delle categorie. -File: "%1" + Impossibile analizzare la configurazione delle categorie. +File: "%1" Errore: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - Analisi completata file del filtro IP. + Analisi completata file del filtro IP. Numero di regole applicate: %1 - + Failed to parse the IP filter file Impossibile analizzare il file del filtro IP - + Restored torrent. Torrent: "%1" - Torrente ripristinato. + Torrente ripristinato. Torrent: "%1" - + Added new torrent. Torrent: "%1" - Aggiunto nuovo torrent. + Aggiunto nuovo torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - Errore torrent. -Torrent: "%1" + Errore torrent. +Torrent: "%1" Errore: "%2" - - - Removed torrent. Torrent: "%1" - Torrent rimosso. -Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent rimosso e cancellato il suo contenuto. -Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent privo dei parametri SSL. +Torrent: "%1". +Messaggio: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - Avviso di errore del file. -Torrent: "%1" -File: "%2" + Avviso di errore del file. +Torrent: "%1" +File: "%2" Motivo: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - Mappatura porta UPnP/NAT-PMP non riuscita. + Mappatura porta UPnP/NAT-PMP non riuscita. Messaggio: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - Mappatura porta UPnP/NAT-PMP riuscita. + Mappatura porta UPnP/NAT-PMP riuscita. Messaggio: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtro IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). porta filtrata (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). porta privilegiata (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL seed connessione fallita. +Torrent: %1. +URL: %2. +Errore: %3. + + + BitTorrent session encountered a serious error. Reason: "%1" - La sessione BitTorrent ha riscontrato un errore grave. + La sessione BitTorrent ha riscontrato un errore grave. Motivo: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - Errore proxy SOCKS5. -Indirizzo "%1". + Errore proxy SOCKS5. +Indirizzo "%1". Messaggio: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restrizioni in modalità mista - + Failed to load Categories. %1 Impossibile caricare le categorie. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - Impossibile caricare la configurazione delle categorie. -File: "%1". + Impossibile caricare la configurazione delle categorie. +File: "%1". Errore: "formato dati non valido" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent rimosso ma non è stato possibile eliminarne il contenuto e/o perte del file. -Torrent: "%1". Errore: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 è disabilitato - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 è disabilitato - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Ricerca DNS seed URL non riuscita. -Torrent: "%1" -URL: "%2" -Errore: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - Messaggio di errore ricevuto dal seed dell'URL. -Torrent: "%1" -URL: "%2" + Messaggio di errore ricevuto dal seed dell'URL. +Torrent: "%1" +URL: "%2" Messaggio: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - Ascolto riuscito su IP. -IP: "%1" + Ascolto riuscito su IP. +IP: "%1" Porta: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - Impossibile ascoltare su IP. -IP: "%1" -Porta: "%2/%3" + Impossibile ascoltare su IP. +IP: "%1" +Porta: "%2/%3" Motivo: "%4" - + Detected external IP. IP: "%1" Rilevato IP esterno. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - Errore: la coda degli avvisi interna è piena e gli avvisi vengono eliminati, potresti notare un peggioramento delle prestazioni. -Tipo di avviso eliminato: "%1" + Errore: la coda degli avvisi interna è piena e gli avvisi vengono eliminati, potresti notare un peggioramento delle prestazioni. +Tipo di avviso eliminato: "%1" Messaggio: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - Spostamento torrent completato. -Torrent: "%1" + Spostamento torrent completato. +Torrent: "%1" Destinazione: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" - Impossibile spostare il torrent. -Torrent: "%1" -Sorgente: "%2" -Destinazione: "%3" + Impossibile spostare il torrent. +Torrent: "%1" +Sorgente: "%2" +Destinazione: "%3" Motivo: "%4" @@ -2668,95 +2856,95 @@ Motivo: "%4" Failed to start seeding. - + Impossibile avviare il seeding. BitTorrent::TorrentCreator - + Operation aborted Operazione annullata - - + + Create new torrent file failed. Reason: %1. - Impossibile creare un nuovo file torrent. + Impossibile creare un nuovo file torrent. Motivo: %1. BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Impossibile aggiungere peer "%1" al torrent "%2". Motivo: %3 - + Peer "%1" is added to torrent "%2" Il peer "%1" è stato aggiunto al torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - Rilevati dati imprevisti. -Torrent: %1. + Rilevati dati imprevisti. +Torrent: %1. Dati: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Impossibile scrivere su file. Motivo: "%1". Il torrent è ora in modalità "solo upload". - + Download first and last piece first: %1, torrent: '%2' Sarica prima il primo e l'ultimo segmento: %1, torrent: '%2' - + On On - + Off Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - Impossibile ricaricare il torrent. -Torrente: %1. + Impossibile ricaricare il torrent. +Torrente: %1. Motivo: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - Generazione dei dati per la ripresa del download non riuscita. + Generazione dei dati per la ripresa del download non riuscita. Torrent: "%1". Motivo: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Impossibile ripristinare il torrent. I file sono stati probabilmente spostati o lo spazio di archiviazione non è accessibile. Torrente: "%1". Motivo: "%2" - + Missing metadata Metadati mancanti - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Rinomina file fallita. Torrent: "%1", file "%2", motivo: "%3" - + Performance alert: %1. More info: %2 - Avviso sul rendimento: %1. + Avviso sul rendimento: %1. Ulteriori informazioni: %2. @@ -2776,192 +2964,192 @@ Ulteriori informazioni: %2. CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Il parametro '%1' deve seguire la sintassi '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Il parametro '%1' deve seguire la sintassi '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Atteso numero intero della variabile d'ambiente '%1', ma ottenuto '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Il parametro '%1' deve seguire la sintassi '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Atteso %1 nella variabile d'ambiente '%2', ma ottenuto '%3' - - + + %1 must specify a valid port (1 to 65535). %1 deve specificare una porta valida (1 a 65535). - + Usage: Uso: - + [options] [(<filename> | <url>)...] [opzioni] [(<filename> | <url>)...] - + Options: Opzioni: - + Display program version and exit Visualizza versione programma ed esci - + Display this help message and exit Visualizza questo messaggio di aiuto ed esci - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Il parametro '%1' deve seguire la sintassi '%1=%2' + + + Confirm the legal notice Conferma l'avviso legale - - + + port porta - + Change the WebUI port Modifica la porta WebUI - + Change the torrenting port Modifica la porta del torrent - + Disable splash screen Disattiva schermata d'avvio - + Run in daemon-mode (background) Esegui in modalità daemon (background) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Memorizza file configurazione in <dir> - - + + name nome - + Store configuration files in directories qBittorrent_<name> Memorizza file configurazione in cartelle qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Inserisciti nei file fastresume di libtorrent e rendi i percorsi dei file relativi alla cartella del profilo - + files or URLs file o URL - + Download the torrents passed by the user Scarica i torrent passati dall'utente - + Options when adding new torrents: Impostazioni all'aggiunta di nuovi torrent: - + path percorso - + Torrent save path Percorso salvataggio torrent - - Add torrents as started or paused - Aggiungi torrent avviati o in pausa + + Add torrents as running or stopped + Aggiungi torrent come avviato o fermato - + Skip hash check Salta controllo hash - + Assign torrents to category. If the category doesn't exist, it will be created. - Assegna torrent a categoria. + Assegna torrent a categoria. Se la categoria non esiste, verrà creata. - + Download files in sequential order Scarica file in ordine sequenziale - + Download first and last pieces first Scarica èer prima la prima e l'ultima parte - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Specifica se la finestra "Aggiungi nuovo torrent" si apra quando viene aggiunto un torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - I valori delle opzioni possono essere passati tramite variabili d'ambiente. Per l'opzione chiamata 'parameter-name', la variable d'ambiente è 'QBT_PARAMETER_NAME' (tutte maiuscole, '-' sostituito da '_'). -Per passare valori flag, imposta la variabile a '1' o 'TRUE'. + I valori delle opzioni possono essere passati tramite variabili d'ambiente. Per l'opzione chiamata 'parameter-name', la variable d'ambiente è 'QBT_PARAMETER_NAME' (tutte maiuscole, '-' sostituito da '_'). +Per passare valori flag, imposta la variabile a '1' o 'TRUE'. Per esempio, per disabilitare la schermata d'avvio: - + Command line parameters take precedence over environment variables I parametri della riga di comando hanno la precedenza sulle variabili ambiente - + Help Aiuto @@ -3013,13 +3201,13 @@ Per esempio, per disabilitare la schermata d'avvio: - Resume torrents - Riprendi torrent + Start torrents + Avvia torrent - Pause torrents - Metti in pausa torrent + Stop torrents + Ferma torrent @@ -3030,15 +3218,20 @@ Per esempio, per disabilitare la schermata d'avvio: ColorWidget - + Edit... Modifica... - + Reset Azzera + + + System + Sistema + CookiesDialog @@ -3079,12 +3272,12 @@ Per esempio, per disabilitare la schermata d'avvio: CustomThemeSource - + Failed to load custom theme style sheet. %1 Impossibile caricare il foglio di stile del tema personalizzato. %1 - + Failed to load custom theme colors. %1 Impossibile caricare i colori del tema personalizzato. %1 @@ -3092,7 +3285,7 @@ Per esempio, per disabilitare la schermata d'avvio: DefaultThemeSource - + Failed to load default theme colors. %1 Impossibile caricare i colori del tema predefinito. %1 @@ -3111,23 +3304,23 @@ Per esempio, per disabilitare la schermata d'avvio: - Also permanently delete the files - Elimina anche permanentemente i file + Also remove the content files + Rimuovi anche i file di contenuti - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Sei sicuro di voler rimuovere '%1' dall'elenco dei trasferimenti? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Sei sicuro di voler rimuovere questi %1 torrent dall'elenco di trasferimento? - + Remove Rimuovi @@ -3140,12 +3333,12 @@ Per esempio, per disabilitare la schermata d'avvio: Aggiungi collegamenti torrent da URL - + Add torrent links Aggiungi collegamenti torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Un collegamento per riga (collegamento HTTP, Magnet o info hash) @@ -3155,12 +3348,12 @@ Per esempio, per disabilitare la schermata d'avvio: Download - + No URL entered Nessun indirizzo web inserito - + Please type at least one URL. Inserire almeno un indirizzo web. @@ -3319,66 +3512,89 @@ Per esempio, per disabilitare la schermata d'avvio: Errore di elaborazione. Il file filtro non è un file PeerGuardian P2B valido. + + FilterPatternFormatMenu + + + Pattern Format + Formato pattern + + + + Plain text + Testo normale + + + + Wildcards + Wildcards + + + + Regular expression + Espressione regolare + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - Download torrent... + Download torrent... Sorgente: "%1" - - Trackers cannot be merged because it is a private torrent - I tracker non possono essere uniti perché è un torrent privato - - - + Torrent is already present Il torrent è già presente - + + Trackers cannot be merged because it is a private torrent. + I tracker non possono essere uniti perché è un torrent privato. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? - Il torrent '%1' è già nell'elenco dei trasferimenti. + Il torrent '%1' è già nell'elenco dei trasferimenti. Vuoi unire i tracker da una nuova fonte? 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 - + Database corrupted: no data section found. Banca dati corrotta: impossibile trovare sezione dati. @@ -3386,21 +3602,21 @@ Vuoi unire i tracker da una nuova fonte? Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - La dimensione della richiesta HTTP supera il limite, chiusura socket. + La dimensione della richiesta HTTP supera il limite, chiusura socket. Limite: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - Metodo di richiesta Http errato, chiusura socket. + Metodo di richiesta Http errato, chiusura socket. IP: %1. Metodo: "%2" - + Bad Http request, closing socket. IP: %1 - Richiesta HTTP errata, chiusura socket. + Richiesta HTTP errata, chiusura socket. IP: %1 @@ -3440,26 +3656,66 @@ IP: %1 IconWidget - + Browse... Naviga... - + Reset Azzera - + Select icon Seleziona icona - + Supported image files File immagini supportati + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + La gestione alimentazione ha trovato un'interfaccia D-Bus adatta. +Interfaccia: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Errore gestione alimentazione. +Impossibile trovare un'interfaccia D-Bus adatta. + + + + + + Power management error. Action: %1. Error: %2 + Errore gestione alimentazione. +Azione: %1. +Errore: %2. + + + + Power management unexpected error. State: %1. Error: %2 + Errore imprevisto gestione alimentazione. +Stato: %1. +Errore: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3470,7 +3726,7 @@ IP: %1 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. - qBittorrent è un programma di condivisione file. + qBittorrent è un programma di condivisione file. Quando si esegue un torrent, i suoi dati saranno resi disponibili agli altri per mezzo dell'upload. Ogni contenuto che tu condividi è una tua responsabilità. @@ -3493,14 +3749,14 @@ Ogni contenuto che tu condividi è una tua responsabilità. LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - %1 è stato bloccato. + %1 è stato bloccato. Motivo: %2. - + %1 was banned 0.0.0.0 was banned %1 è stato bannato @@ -3509,65 +3765,65 @@ Motivo: %2. Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 è un parametro sconosciuto. - - + + %1 must be the single command line parameter. %1 deve essere l'unico parametro della riga di comando. - + Run application with -h option to read about command line parameters. Esegui l'applicazione con il parametro -h per avere informazioni sui parametri della riga di comando. - + Bad command line Riga di comando errata - + Bad command line: Riga di comando errata: - + An unrecoverable error occurred. Si è verificato un errore irreversibile. + - qBittorrent has encountered an unrecoverable error. qBittorrent ha riscontrato un errore irreversibile. - + You cannot use %1: qBittorrent is already running. Non puoi usare %1: qBittorrent è già in esecuzione. - + Another qBittorrent instance is already running. È già in esecuzione un'altra istanza di qBittorrent. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - Trovata istanza qBittorrent inaspettata. -Uscita da questa istanza. + Trovata istanza qBittorrent inaspettata. +Uscita da questa istanza. ID processo corrente: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. - Errore durante la demonizzazione. -Motivo: '%1'. + Errore durante la demonizzazione. +Motivo: '%1'. Codice errore: %2. @@ -3579,610 +3835,693 @@ Codice errore: %2. &Modifica - + &Tools &Strumenti - + &File &File - + &Help &Aiuto - + On Downloads &Done &Al termine del download - + &View &Visualizza - + &Options... &Impostazioni... - - &Resume - &Riprendi - - - + &Remove &Rimuovi - + Torrent &Creator &Crea torrent - - + + Alternative Speed Limits Limiti di velocità alternativi - + &Top Toolbar &Barra strumenti superiore - + Display Top Toolbar Visualizza barra strumenti superiore - + Status &Bar &Barra di stato - + Filters Sidebar Barra laterale filtri - + S&peed in Title Bar &Velocità nella barra del titolo - + Show Transfer Speed in Title Bar Visualizza velocità trasferimento nella barra del titolo - + &RSS Reader &Lettore RSS - + Search &Engine &Motore di ricerca - + L&ock qBittorrent Blocca &qBittorrent - + Do&nate! Fai una do&nazione! - + + Sh&utdown System + Speg&ni sistema + + + &Do nothing &Non fare nulla - + Close Window Chiudi finestra - - R&esume All - R&iprendi tutti - - - + Manage Cookies... Gestisci cookie... - + Manage stored network cookies Gestisci cookie di rete memorizzati - + Normal Messages Messaggi normali - + Information Messages Messaggi informativi - + Warning Messages Messaggi notifica - + Critical Messages Messaggi critici - + &Log &Registro eventi - + + Sta&rt + &Avvia + + + + Sto&p + Sto&p + + + + R&esume Session + Ripr&endi sessione + + + + Pau&se Session + Pau&sa sessione + + + Set Global Speed Limits... Imposta limite globale velocità... - + Bottom of Queue Sposta in fondo alla coda - + Move to the bottom of the queue Sposta in fondo alla coda - + Top of Queue Sposta in alto nella coda - + Move to the top of the queue Sposta in alto nella coda - + Move Down Queue Sposta in giù nella coda - + Move down in the queue Sposta in giù nella coda - + Move Up Queue Sposta in su nella coda - + Move up in the queue Sposta in su nella coda - + &Exit qBittorrent &Esci da qBittorrent - + &Suspend System &Sospendi - + &Hibernate System Sospendi su &disco - - S&hutdown System - Spe&gni - - - + &Statistics &Statistiche - + Check for Updates Controlla aggiornamenti programma - + Check for Program Updates Controlla aggiornamenti del programma - + &About &Informazioni sul programma - - &Pause - Metti in &pausa - - - - P&ause All - Metti in p&ausa tutti - - - + &Add Torrent File... &Aggiungi file torrent... - + Open Apri - + E&xit &Esci - + Open URL Apri URL - + &Documentation Gui&da in linea - + Lock Blocca - - - + + + Show Visualizza - + Check for program updates Controlla gli aggiornamenti del programma - + 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à - + Clear the password Azzera la password - + &Set Password &Imposta password - + Preferences Preferenze - + &Clear Password &Azzera password - + Transfers Trasferimenti - - + + qBittorrent is minimized to tray qBittorent è ridotto a icona nell'area di notifica - - - + + + This behavior can be changed in the settings. You won't be reminded again. Questo comportamento può essere cambiato nelle impostazioni. Non verrà più ricordato. - + 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: - + Are you sure you want to clear the password? Sei sicuro di voler azzerare la password? - + Use regular expressions Usa espressioni regolari - + + + Search Engine + Motore di ricerca + + + + Search has failed + La ricerca non ha avuto successo + + + + Search has finished + Riecrca completata + + + Search Ricerca - + Transfers (%1) Trasferimenti (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent è stato appena aggiornato e bisogna riavviarlo affinché i cambiamenti siano effettivi. - + qBittorrent is closed to tray qBittorent è chiuso nell'area di notifica - + Some files are currently transferring. Alcuni file sono in trasferimento. - + Are you sure you want to quit qBittorrent? Sei sicuro di voler uscire da qBittorrent? - + &No &No - + &Yes &Sì - + &Always Yes Sem&pre sì - + Options saved. Opzioni salvate. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [IN PAUSA] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Impossibile scaricare il programma di installazione di Python. +Errore: %1. +Scarica il programma di installazione manualmente. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Rinomina del programma di installazione di Python non riuscita. +Sorgente: "%1". +Destinazione: "%2". + + + + Python installation success. + Installazione Phyton completata. + + + + Exit code: %1. + Codice di uscita: %1 + + + + Reason: installer crashed. + Motivo: il programma di installazione si è chiuso. + + + + Python installation failed. + Installazione Python fallita + + + + Launching Python installer. File: "%1". + Esecuzione programma di installazione Python. +File: %1. + + + + Missing Python Runtime Runtime Python non disponibile - + qBittorrent Update Available Disponibile aggiornamento qBittorrent - + 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. - - + + Old Python Runtime Runtime Python obsoleto - + A new version is available. È disponibile una nuova versione di qBittorrent. - + Do you want to download %1? Vuoi scaricare la nuova versione (%1)? - + Open changelog... Apri elenco novità... - + No updates available. You are already using the latest version. Nessun aggiornamento disponibile. Questa versione è aggiornata. - + &Check for Updates &Controlla aggiornamenti - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? La versione di Python (%1) è obsoleta. Requisito minimo: %2. Vuoi installare una versione più recente adesso? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - La versione Python (%1) è obsoleta. + La versione Python (%1) è obsoleta. Per far funzionare i motori di ricerca aggiorna alla versione più recente. Requisito minimo: v. %2. - + + Paused + In pausa + + + Checking for Updates... Controllo aggiornamenti in corso... - + Already checking for program updates in the background Controllo aggiornamenti già attivo in background - + + Python installation in progress... + Installazione Python... + + + + Failed to open Python installer. File: "%1". + Impossibile aprire programma installazione Python. +File: %1. + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Controllo hash MD5 programma installazione Python non riuscito. +File: "%1". +Hash risultato: "%2". +Hash previsto: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Controllo hash SHA3-512 programma installazione Python non risucito. +File: "%1". +Hash risultato: "%2". +Hash previsto: "%3". + + + 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 - + Filter torrents... Filtra torrent... - + Filter by: Filtra per: - + The password must be at least 3 characters long La password deve essere lunga almeno 3 caratteri - - - + + + RSS (%1) RSS (%1) - + 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 Minimizza nella barra di sistema - + Exiting qBittorrent Esci da qBittorrent - + Open Torrent Files Apri file torrent - + Torrent Files File torrent @@ -4377,7 +4716,12 @@ Per favore installalo manualmente. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Errore SSL, URL: "%1", errori: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignora errore SSL, URL: "%1", errori: "%2" @@ -4404,14 +4748,14 @@ Per favore installalo manualmente. IP geolocation database loaded. Type: %1. Build time: %2. - Database geolocalizzazione IP caricato. + Database geolocalizzazione IP caricato. Tipo: %1 - Data build: %2. Couldn't load IP geolocation database. Reason: %1 - Impossibile caricare database geolocalizzazione IP. + Impossibile caricare database geolocalizzazione IP. Motivo: %1 @@ -5437,7 +5781,7 @@ Motivo: %1 Couldn't download IP geolocation database file. Reason: %1 - Impossibile scaricare il file del database geolocalizzazione IP. + Impossibile scaricare il file del database geolocalizzazione IP. Motivo: %1 @@ -5675,47 +6019,47 @@ Motivo: %1 Net::Smtp - + Connection failed, unrecognized reply: %1 Connessione non riuscita, risposta non riconosciuta: %1 - + Authentication failed, msg: %1 Autenticazione non riuscita, messaggio: %1 - + <mail from> was rejected by server, msg: %1 <mail from> è stato rifiutato dal server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> è stato rifiutato dal server, msg: %1 - + <data> was rejected by server, msg: %1 <data> è stato rifiutato dal server, msg: %1 - + Message was rejected by the server, error: %1 Il messaggio è stato rifiutato dal server, errore: %1 - + Both EHLO and HELO failed, msg: %1 Entrambi EHLO e HELO hanno fallito, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Il server SMTP non sembra supportare nessuna delle modalità di autenticazione noi supportiamo [CRAM-MD5|PLAIN|LOGIN], saltare l'autenticazione, sapendo che è probabile che fallisca... Modalità di autenticazione del server: %1 - + Email Notification Error: %1 Errore Notifica Email: %1 @@ -5753,300 +6097,283 @@ Motivo: %1 BitTorrent - + RSS RSS - - Web UI - Interfaccia web - - - + Advanced Avanzate - + Customize UI Theme... Personalizza tema interfaccia utente... - + Transfer List Elenco trasferimenti - + Confirm when deleting torrents Conferma eliminazione torrent - - Shows a confirmation dialog upon pausing/resuming all the torrents - Quando metti in pausa/riprendi tutti i torrent visualizza una finestra di dialogo di conferma - - - - Confirm "Pause/Resume all" actions - Conferma le azioni "Pausa/riprendi tutto" - - - + Use alternating row colors In table elements, every other row will have a grey background. Usa colori di riga alternati - + Hide zero and infinity values Nascondi valori zero ed infinito - + Always Sempre - - Paused torrents only - Solo torrent in pausa - - - + Action on double-click Azioni con il doppio clic - + Downloading torrents: Download torrent: - - - Start / Stop Torrent - Avvia/arresta torrent - - - - + + Open destination folder Apri cartella di destinazione - - + + No action Nessuna azione - + Completed torrents: Torrent completati: - + Auto hide zero status filters Nascondi automaticamente filtri stato zero - + Desktop Desktop - + Start qBittorrent on Windows start up Esegui qBittorent all'avvio di Windows - + Show splash screen on start up Visualizza schermata di benevenuto all'avvio del programma - + Confirmation on exit when torrents are active Conferma uscita quando ci sono torrent attivi - + Confirmation on auto-exit when downloads finish Conferma uscita automatica a download completato - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Per impostare qBittorrent come programma predefinito per file .torrent e/o collegamenti Magnet<br/>puoi usare la finestra <span style=" font-weight:600;">Programmi predefiniti</span> nel <span style=" font-weight:600;">Pannello di controllo</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + Visualizza lo spazio disco libero nella barra di stato + + + Torrent content layout: Layour contenuto torrent: - + Original Originale - + Create subfolder Crea sottocartella - + Don't create subfolder Non creare sottocartella - + The torrent will be added to the top of the download queue Il torrent verrà aggiunto in cima alla coda di download - + Add to top of queue The torrent will be added to the top of the download queue Aggiungi in cima alla coda - + When duplicate torrent is being added Quando viene aggiunto torrent duplicato - + Merge trackers to existing torrent Unisci i tracker al torrent esistente - + Keep unselected files in ".unwanted" folder Conserva file non selezionati nella cartella ".unwanted". - + Add... Aggiungi... - + Options.. Opzioni... - + Remove Rimuovi - + Email notification &upon download completion &Notifica email a download completato - + + Send test email + Invia email di test + + + + Run on torrent added: + Esegui all'aggiunta del torrent. + + + + Run on torrent finished: + Esegui al completamento del torrent: + + + Peer connection protocol: Protocollo connessione peer: - + Any Qualsiasi - + I2P (experimental) I2P (sperimentale) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Se è abilitato &quot;modo mixed&quot; I torrent I2P possono anche ottenere peer da fonti diverse dal tracker e connettersi a IP regolari, senza fornire alcuna anonimizzazione. -Questo può essere utile se l'utente non è interessato all'anonimizzazione di I2P, ma vuole comunque essere in grado di connettersi ai peer I2P.</p></body></html> - - - + Mixed mode Modo mixed - - Some options are incompatible with the chosen proxy type! - Alcune opzioni sono incompatibili con il tipo di proxy scelto! - - - + If checked, hostname lookups are done via the proxy Se selezionata le ricerche del nome host vengono eseguite tramite il proxy - + Perform hostname lookup via proxy Esegui ricerca nome host tramite proxy - + Use proxy for BitTorrent purposes Usa proxy per scopi BitTorrent - + RSS feeds will use proxy I feed RSS useranno il proxy - + Use proxy for RSS purposes Usa proxy per scopi RSS - + Search engine, software updates or anything else will use proxy Motore di ricerca, aggiornamenti software o qualsiasi altra cosa userà il proxy - + Use proxy for general purposes Usa il proxy per scopi generali - + IP Fi&ltering Fi&ltraggio IP - + Schedule &the use of alternative rate limits Pianifica l'&uso di limiti di rapporto alternativi - + From: From start time Da: - + To: To end time A: - + Find peers on the DHT network Cerca peer sulla rete DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -6055,145 +6382,190 @@ Richiedi crittografia: connettiti solo ai peer con crittografia protocollo Disabilita la crittografia: connettiti solo ai peer senza crittografia protocollo - + Allow encryption Permetti criptazione - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Più informazioni</a>) - + Maximum active checking torrents: Numero massimo di torrent di controllo attivi: - + &Torrent Queueing Accodamento &torrent - + When total seeding time reaches Quando viene raggiunto il tempo totale seeding - + When inactive seeding time reaches Quando viene raggiunto il tempo seeding non attivo - - A&utomatically add these trackers to new downloads: - Aggiungi a&utomaticamente questi server traccia ai nuovi download: - - - + RSS Reader Lettore RSS - + Enable fetching RSS feeds Abilita recupero fonti RSS - + Feeds refresh interval: Intervallo aggiornamento fonti: - + Same host request delay: - + Ritardo richiesta per medesimo host: - + Maximum number of articles per feed: Numero massimo articoli per fonte: - - - + + + min minutes min - + Seeding Limits Limiti seeding - - Pause torrent - Pausa torrent - - - + Remove torrent Rimuovi torrent - + Remove torrent and its files Rimuovi torrent e relativi file - + Enable super seeding for torrent Abilita super seeding per torrent - + When ratio reaches Quando raggiungi rapporto - + + Some functions are unavailable with the chosen proxy type! + Con il tipo proxy scelto alcune funzioni non sono disponibili! + + + + Note: The password is saved unencrypted + Nota: la password viene salvata non crittografata + + + + Stop torrent + Ferma torrent + + + + A&utomatically append these trackers to new downloads: + Aggiungi a&utomaticamente questi tracker ai nuovi download: + + + + Automatically append trackers from URL to new downloads: + Aggiungi automaticamente ai nuovi download i tracker dall'URL: + + + + URL: + URL: + + + + Fetched trackers + Tracker recuperati + + + + Search UI + UI ricerca + + + + Store opened tabs + Salva schede aperte + + + + Also store search results + Salva anche risultati ricerca + + + + History length + Lunghezza cronologia: + + + RSS Torrent Auto Downloader Download automatico torrent RSS - + Enable auto downloading of RSS torrents Abilita download automatico di torrent RSS - + Edit auto downloading rules... Modifica regole download automatico... - + RSS Smart Episode Filter Filtro veloce episodi RSS - + Download REPACK/PROPER episodes Download episodi REPACK/PROPRI - + Filters: Filtri: - + Web User Interface (Remote control) Interfaccia utente web (controllo remoto) - + IP address: Indirizzo IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6202,42 +6574,37 @@ Specificare un indirizzo IPv4 o IPv6. Si può usare "0.0.0.0" per qual "::" per qualsiasi indirizzo IPv6, o "*" sia per IPv4 che IPv6. - + Ban client after consecutive failures: Ban client dopo fallimenti consecutivi: - + Never Mai - + ban for: ban per: - + Session timeout: Timeout sessione: - + Disabled Disabilitato - - Enable cookie Secure flag (requires HTTPS) - Abilita flag cookie sicuro (richiede HTTPS) - - - + Server domains: Domini server: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6251,444 +6618,485 @@ Usa ';' per dividere voci multiple. Si può usare il carattere jolly '*'. - + &Use HTTPS instead of HTTP &Usa HTTPS invece di HTTP - + Bypass authentication for clients on localhost Salta autenticazione per i client in localhost - + Bypass authentication for clients in whitelisted IP subnets Salta autenticazione per i client nelle sottoreti IP in elenco autorizzati - + IP subnet whitelist... Sottoreti IP elenco autorizzati... - + + Use alternative WebUI + Usa WebUI alternativa + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Per usare l'indirizzo client inoltrato (intestazione X-Forwarded-For) specifica gli IP del proxy inverso (o le sottoreti, ad esempio 0.0.0.0/24). Usa ';' per dividere più voci. - + Upda&te my dynamic domain name Aggio&rna il mio nome dominio dinamico - + Minimize qBittorrent to notification area Minimizza qBittorrent nell'area di notifica - + + Search + Cerca + + + + WebUI + WebUI + + + Interface Interfaccia - + Language: Lingua: - + + Style: + Stile: + + + + Color scheme: + Schema colori: + + + + Stopped torrents only + Solo torrent bloccati + + + + + Start / stop torrent + Avvia/ferma torrent + + + + + Open torrent options dialog + Apri finestra di dialogo opzioni torrent + + + Tray icon style: Stile icona di sistema: - - + + Normal Normale - + File association Associazione file - + Use qBittorrent for .torrent files Usa qBittorrent per i file .torrent - + Use qBittorrent for magnet links Usa qBittorrent per i collegamenti magnet - + Check for program updates Controlla aggiornamenti programma - + Power Management Risparmio energia - + + &Log Files + Fi&le registro eventi + + + Save path: Percorso salvataggio: - + Backup the log file after: Esegui backup file registro dopo: - + Delete backup logs older than: Elimina registri di backup più vecchi di: - + + Show external IP in status bar + Visualizza IP esterno nella barra di stato + + + When adding a torrent All'aggiunta di un torrent - + Bring torrent dialog to the front Finestra torrent in primo piano - + + The torrent will be added to download list in a stopped state + Il torrent verrà aggiunto all'elenco dei download in stato fermato + + + Also delete .torrent files whose addition was cancelled Elimina i file .torrent anche se l'aggiunta è stata annullata - + Also when addition is cancelled Anche se l'aggiunta è annullata - + Warning! Data loss possible! Attenzione! Possibile perdita di dati! - + Saving Management Gestione Salvataggi - + Default Torrent Management Mode: Modalità gestione torrent predefinita: - + Manual Manuale - + Automatic Automatica - + When Torrent Category changed: Quando la Categoria del Torrent viene cambiata: - + Relocate torrent Sposta torrent - + Switch torrent to Manual Mode Imposta torrent sulla Modalità Manuale - - + + Relocate affected torrents Sposta torrent interessati - - + + Switch affected torrents to Manual Mode Imposta i torrent interessati sulla Modalità Manuale - + Use Subcategories Usa sottocategorie - + Default Save Path: Percorso salvataggio predefinito: - + Copy .torrent files to: Copia i file .torrent in: - + Show &qBittorrent in notification area Visualizza &qBittorrent nell'area di notifica - - &Log file - Fi&le registro - - - + Display &torrent content and some options Visualizza contenuto &torrent e alcune opzioni - + De&lete .torrent files afterwards E&limina file .torrent alla fine - + Copy .torrent files for finished downloads to: Copia i file .torrent per i download completati in: - + Pre-allocate disk space for all files Prealloca lo spazio su disco per tutti i file - + Use custom UI Theme Usa tema custom UI - + UI Theme file: Usa file tema: - + Changing Interface settings requires application restart La modifica dell'interfaccia richiede il riavvio dell'applicazione - + Shows a confirmation dialog upon torrent deletion Visualizza una finestra di conferma dopo l'eliminazione del torrent - - + + Preview file, otherwise open destination folder Anteprima file, altrimenti apri cartella destinazione - - - Show torrent options - Visualizza opzioni torrent - - - + Shows a confirmation dialog when exiting with active torrents Visualizza una finestra di dialogo di conferma quando vuoi uscire e hai torrent attivi - + When minimizing, the main window is closed and must be reopened from the systray icon Quando minimizzata, la finestra principale viene chiusa e deve essere riaperta dall'icona nella barra di sistema - + The systray icon will still be visible when closing the main window L'icona nedlla barra di sistema sarà comunque visibile quando si chiude la finestra principale - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Chiudi qBittorrent nell'area di notifica - + Monochrome (for dark theme) Monocromatico (per tema scuro) - + Monochrome (for light theme) Monocromatico (per tema chiaro) - + Inhibit system sleep when torrents are downloading Inibisci sospensione del sistema quando i torrent sono in download - + Inhibit system sleep when torrents are seeding Inibisci sospensione del sistema quando i torrent sono in seeding - + Creates an additional log file after the log file reaches the specified file size Crea un file registro aggiuntivo dopo che il file registro raggiunge la dimensione specificata - + days Delete backup logs older than 10 days giorni - + months Delete backup logs older than 10 months mesi - + years Delete backup logs older than 10 years anni - + Log performance warnings Avvisi prestazioni registro - - The torrent will be added to download list in a paused state - Il torrent verrà aggiunto all'elenco di download ma in uno stato di pausa - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Non avviare il download automaticamente - + Whether the .torrent file should be deleted after adding it Se il file .torrent deve essere eliminato dopo averlo aggiunto - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - Alloca lo spazio pieno per il file su disco prima di avviare i download, per ridurre al minimo la frammentazione. + Alloca lo spazio pieno per il file su disco prima di avviare i download, per ridurre al minimo la frammentazione. Utile solo per gli HDD. - + Append .!qB extension to incomplete files Aggiungi l'estensione .!qB ai file incompleti - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Quando viene scaricato un torrent, chiede di aggiungere torrent da qualsiasi file .torrent trovato al suo interno - + Enable recursive download dialog Abilita la conferma ricorsiva dei download - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatico: varie proprietà del torrent (ad es. percorso salvataggio) saranno decise dalla categoria associata Manuale: varie proprietà del torrent (ad es. percorso salvataggio) vanno assegnate manualmente - + When Default Save/Incomplete Path changed: Quando il Percorso di Salvataggio Predefinito/Incompleto è cambiato: - + When Category Save Path changed: Quando modifichi percorso salvataggio categoria: - + Use Category paths in Manual Mode Usa percorsi categorie in modalità manuale - + Resolve relative Save Path against appropriate Category path instead of Default one Risolvi il percorso di salvataggio relativo rispetto al percorso di categoria appropriato invece di quello predefinito - + Use icons from system theme Usa le icone dal tema di sistema - + Window state on start up: Stato della finestra all'avvio: - + qBittorrent window state on start up Stato della finestra di qBittorrent all'avvio - + Torrent stop condition: Condizione stop torrent: - - + + None Nessuna - - + + Metadata received Ricevuti metadati - - + + Files checked File controllati - + Ask for merging trackers when torrent is being added manually Quando il torrent viene aggiunto manualmente chiedi di unire i tracker - + Use another path for incomplete torrents: Usa un altro percorso per i torrent incompleti: - + Automatically add torrents from: Aggiungi automaticamente i torrent da: - + Excluded file names Nomi file esclusi - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6705,7 +7113,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not I nomi dei file filtrati nella blacklist non vengono scaricati da torrent. I file che corrispondono a uno qualsiasi dei filtri in questo elenco avranno la priorità impostata automaticamente su "Non scaricare". -Usa le nuove righe per separare più voci. +Usa le nuove righe per separare più voci. Puoi usare caratteri jolly come descritto di seguito. *: corrisponde a zero o più caratteri. ?: corrisponde a qualsiasi singolo carattere. @@ -6718,772 +7126,814 @@ readme.txt: filtra il nome esatto del file. readme[0-9].txt: filtro 'readme1.txt', 'readme2.txt' ma non 'readme10.txt'. - + Receiver Ricevitore - + To: To receiver A: - + SMTP server: Server SMTP: - + Sender Trasmittente - + From: From sender Da: - + This server requires a secure connection (SSL) Questo server richiede una connessione sicura (SSL) - - + + Authentication Autenticazione - - - - + + + + Username: Nome utente: - - - - + + + + Password: Password: - + Run external program Esegui programma esterno - - Run on torrent added - Esegui a torrent aggiunto - - - - Run on torrent finished - Esegui a torrent completato - - - + Show console window Visualizza finestra console - + TCP and μTP TCP e µTP - + Listening Port Porta di Ascolto - + Port used for incoming connections: Porta usata per le connessioni in entrata: - + Set to 0 to let your system pick an unused port Imposta a 0 per consentire al sistema di scegliere una porta non usata - + Random Casuale - + Use UPnP / NAT-PMP port forwarding from my router Usa UPnP / NAT-PMP per aprire le porte del mio router - + Connections Limits Limiti Connessioni - + Maximum number of connections per torrent: Numero massimo connessioni per torrent: - + Global maximum number of connections: Numero massimo globale di connessioni: - + Maximum number of upload slots per torrent: Numero massimo connessioni in invio per torrent: - + Global maximum number of upload slots: Numero massimo globale di connessioni in invio: - + Proxy Server Server Proxy - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Porta: - + Otherwise, the proxy server is only used for tracker connections Altrimenti, il server proxy è usato solamente per le connessioni ai server traccia - + Use proxy for peer connections Usa il proxy per le connessioni ai nodi - + A&uthentication A&utenticazione - - Info: The password is saved unencrypted - Info: La password è salvata in chiaro - - - + Filter path (.dat, .p2p, .p2b): Percorso filtro (.dat, .p2p, p2b): - + Reload the filter Ricarica il filtro - + Manually banned IP addresses... Indirizzi IP messi al bando manualmente... - + Apply to trackers Applica ai server traccia - + Global Rate Limits Limiti di velocità globali - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Invio: - - + + Download: Download: - + Alternative Rate Limits Limiti di velocità alternativi - + Start time Data avvio - + End time Data fine - + When: Quando: - + Every day Ogni giorno - + Weekdays Giorni feriali - + Weekends Fine settimana - + Rate Limits Settings Impostazioni limiti di velocità - + Apply rate limit to peers on LAN Applica limiti di velocità ai nodi in LAN - + Apply rate limit to transport overhead Applica limiti di velocità al traffico di servizio - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>ISe abilitato "modo mixed" i torrent I2P sono autorizzati ad ottenere anche peer da altre sorgenti rispetto al tracker e connettersi a IPS regolari, non fornendo alcuna anonimizzazione. +Ciò può essere utile se l'utente non è interessato all'anonimizzazione di I2P, ma vuole comunque essere in grado di connettersi ai peer I2P.</p></body></html> + + + Apply rate limit to µTP protocol Applica limiti di velocità al protocollo µTP - + Privacy Privacy - + Enable DHT (decentralized network) to find more peers Abilita DHT (rete decentralizzata) per trovare più nodi - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Scambia nodi con client Bittorrent compatibili (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Abilita scambio nodi (PeX) per trovare più nodi - + Look for peers on your local network Cerca nodi nella rete locale - + Enable Local Peer Discovery to find more peers Abilita ricerca locale nodi per trovare più nodi - + Encryption mode: Modalità criptazione: - + Require encryption Richiedi criptazione - + Disable encryption Disabilita criptazione - + 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 - + Maximum active downloads: Numero massimo download attivi: - + Maximum active uploads: Numero massimo invii attivi: - + Maximum active torrents: Numero massimo torrent attivi: - + Do not count slow torrents in these limits Non contare torrent lenti in questi limiti - + Upload rate threshold: Soglia limite di invio: - + Download rate threshold: Soglia limite download: - - - - + + + + sec seconds s - + Torrent inactivity timer: Cronometro inattività torrent: - + then poi - + Use UPnP / NAT-PMP to forward the port from my router Usa UPnP / NAT-PMP per aprire le porte del mio router - + Certificate: Certificato: - + Key: Chiave: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informazioni sui certificati</a> - + Change current password Modifica password attuale - - Use alternative Web UI - Usa interfaccia web alternativa - - - + Files location: Posizione file: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Elenco WebUI alternativa</a> + + + Security Sicurezza - + Enable clickjacking protection Abilita la protezione al clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Abilita la protezione al Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Abilita flag di sicurezza cookie (richiede HTTPS o connessione LocalHost) + + + Enable Host header validation Abilita validazione intestazione host - + Add custom HTTP headers Aggiungi intestazioni HTTP personalizzate - + Header: value pairs, one per line Intestazione: coppia di valori, uno per linea - + Enable reverse proxy support Abilita supporto proxy inverso - + Trusted proxies list: Elenco proxy attendibili: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Esempi impostazione proxy inverso</a> + + + Service: Servizio: - + Register Registra - + Domain name: Nome dominio: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Abilitando queste opzioni puoi <strong>perdere irrimediabilmente</strong> i tuoi file .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Se abiliti la seconda opzione (&ldquo;Anche quando l'aggiunta viene annullata&rdquo;) il file .torrent <strong>verrà cancellato</strong> anche se premi &ldquo;<strong>Annulla</strong>&rdquo; nella finestra di dialogo &ldquo;Aggiungi torrent&rdquo; - + Select qBittorrent UI Theme file Seleziona file tema UI qBittorent - + Choose Alternative UI files location Scegli posizione alternativa file interfaccia - + Supported parameters (case sensitive): Parametri supportati (maiuscole/minuscole): - + Minimized Minimizzata - + Hidden Nascosta - + Disabled due to failed to detect system tray presence Disabilitato a causa del mancato rilevamento della presenza della barra delle applicazioni - + No stop condition is set. Non è impostata alcuna condizione di stop. - + Torrent will stop after metadata is received. Il torrent si interromperà dopo la ricezione dei metadati. - Torrents that have metadata initially aren't affected. - Non sono interessati i torrent che inizialmente hanno metadati. - - - + Torrent will stop after files are initially checked. Il torrent si fermerà dopo che i file sono stati inizialmente controllati. - + This will also download metadata if it wasn't there initially. Questo scaricherà anche i metadati se inizialmente non erano presenti. - + %N: Torrent name %N: nome torrent - + %L: Category %L: categoria - + %F: Content path (same as root path for multifile torrent) %F: percorso contenuto (uguale al 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: server traccia attuale - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Suggerimento: inserisci i parametri con i segni di quotazione per evitare tagli del testo negli spazi bianchi (per esempio "%N") - + + Test email + Email di prova + + + + Attempted to send email. Check your inbox to confirm success + Tentativo di invio email. Controlla la tua posta in arrivo per confermare la ricezione + + + (None) (Nessuno) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Un torrent sarà considerato lento se le sue velocità di download e upload resteranno sotto questi valori per "Cronometro inattività torrent" secondi - + Certificate Certificato - + Select certificate Seleziona certificato - + Private key Chiave privata - + Select private key Seleziona chiave privata - + WebUI configuration failed. Reason: %1 - Configurazione WebUI non riuscita. + Configurazione WebUI non riuscita. Motivo: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 è consigliato per la migliore compatibilità con la modalità scura di Windows + + + + System + System default Qt style + Sistema + + + + Let Qt decide the style for this system + Lascia che sia Qt a decidere lo stile di questo sistema + + + + Dark + Dark color scheme + Scuro + + + + Light + Light color scheme + Chiaro + + + + System + System color scheme + Sistema + + + Select folder to monitor Seleziona cartella da monitorare - + Adding entry failed Aggiunta voce non riuscita - + The WebUI username must be at least 3 characters long. Il nome utente WebUI deve contenere almeno 3 caratteri. - + The WebUI password must be at least 6 characters long. La password WebUI deve contenere almeno 6 caratteri. - + Location Error Errore percorso - - + + Choose export directory Scegli cartella di esportazione - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - Quando queste opzioni sono abilitate, qBittorrent <strong>eliminerà</strong> i file .torrent dopo che sono stati aggiunti alla sua coda di download correttamente (prima opzione) o meno (seconda opzione). + Quando queste opzioni sono abilitate, qBittorrent <strong>eliminerà</strong> i file .torrent dopo che sono stati aggiunti alla sua coda di download correttamente (prima opzione) o meno (seconda opzione). Questa modalità verrà applicato <strong>non solo</strong> ai file aperti tramite l'azione del menu &ldquo;Aggiungi torrent&rdquo;, ma anche a quelli aperti tramite l'associazione del tipo di file - + qBittorrent UI Theme file (*.qbtheme config.json) File tema interfaccia utente qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: tag (separati da virgola) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (o '-' se non disponibile) - + %J: Info hash v2 (or '-' if unavailable) %I: Info hash v2 (o '-' se non disponibile) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID torrent (hash info SHA-1 per torrent v1 o hash info SHA-256 troncato per torrent v2/ibrido) - - - + + + Choose a save directory Scegli una cartella di salvataggio - + Torrents that have metadata initially will be added as stopped. - + I torrent con metadati iniziali saranno aggiunti come fermati. - + Choose an IP filter file Scegli un file filtro IP - + All supported filters Tutti i filtri supportati - + The alternative WebUI files location cannot be blank. Il percorso alternativo dei file WebUI non può essere vuoto. - + Parsing error Errore di elaborazione - + Failed to parse the provided IP filter Impossibile analizzare il filtro IP fornito - + Successfully refreshed Aggiornato correttamente - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analisi filtro IP completata: sono state applicate %1 regole. - + Preferences Preferenze - + Time Error Errore Orario - + The start time and the end time can't be the same. Gli orari di inizio e fine non possono coincidere. - - + + Length Error Errore di Lunghezza @@ -7491,242 +7941,247 @@ Questa modalità verrà applicato <strong>non solo</strong> ai file PeerInfo - + Unknown Sconosciuto - + Interested (local) and choked (peer) Interessato (locale) e chocked (peer) - + Interested (local) and unchoked (peer) Interessato (locale) e unchocked (peer) - + Interested (peer) and choked (local) Interessato (peer) e chocked (locale) - + Interested (peer) and unchoked (local) Interessato (peer) e unchocked (locale) - + Not interested (local) and unchoked (peer) Non interessato (locale) e unchocked (peer) - + Not interested (peer) and unchoked (local) Non interessato (peer) e unchocked (peer) - + Optimistic unchoke Unchocke ottimistico - + Peer snubbed Peer ignorato - + Incoming connection Connessione in entrata - + Peer from DHT Peer da DHT - + Peer from PEX Peer da PEX - + Peer from LSD Peer da LSD - + Encrypted traffic Traffico criptato - + Encrypted handshake Handshake criptato + + + Peer is using NAT hole punching + Il peer usa la perforazione NAT + PeerListWidget - + Country/Region Nazione/regione - + IP/Address IP/Indirizzo - + Port Porta - + Flags Flag - + Connection Connessione - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID ID client peer - + 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 Inviati - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Rilevanza - + Files i.e. files that are being downloaded right now File - + Column visibility Visibilità colonna - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto - + Add peers... Aggiungi peers... - - + + Adding peers Aggiungi peer - + Some peers cannot be added. Check the Log for details. - Alcuni peer non possono essere aggiunti. + Alcuni peer non possono essere aggiunti. Per i dettagli controlla il registro eventi. - + Peers are added to this torrent. I peer sono stati aggiunti al torrent. - - + + Ban peer permanently Metti nodo permanentemente al bando - + Cannot add peers to a private torrent Impossibile aggiungere peer ad un torrent privato - + Cannot add peers when the torrent is checking Impossibile aggiungere peer durante il controllo del torrent - + Cannot add peers when the torrent is queued Impossibile aggiungere peer quando il torrent è in coda - + No peer was selected Nessun peer selezionato - + Are you sure you want to permanently ban the selected peers? Sei sicuro di voler bannare permanentemente i peer selezionati? - + Peer "%1" is manually banned Il peer "%1" è stato bannato manualmente - + N/A N/D - + Copy IP:port Copia IP:porta @@ -7744,7 +8199,7 @@ Per i dettagli controlla il registro eventi. Elenco dei nodi da aggiungere (un IP per riga): - + Format: IPv4:port / [IPv6]:port Formato: IPv4:porta / [IPv6]: porta @@ -7785,27 +8240,27 @@ Per i dettagli controlla il registro eventi. PiecesBar - + Files in this piece: File in questa parte: - + File in this piece: File in questo segmento: - + File in these pieces: File in questi segmenti: - + Wait until metadata become available to see detailed information Aspetta che i metadati siano disponibili per vedere informazioni dettagliate - + Hold Shift key for detailed information Tieni premuto il tasto Shift per informazioni dettagliate @@ -7818,58 +8273,58 @@ Per i dettagli controlla il registro eventi. Estensioni di ricerca - + Installed search plugins: Estensioni di ricerca installate: - + Name Nome - + Version Versione - + Url Indirizzo - - + + Enabled Attivato - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Attenzione: Assicurati di essere in regola con le leggi sul diritto d'autore del tuo paese quando scarichi torrent da questi motori di ricerca. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Puoi ottenere nuovi plugin per i motori di ricerca qui: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installane uno nuovo - + Check for updates Verifica aggiornamenti - + Close Chiudi - + Uninstall Disinstalla @@ -7990,104 +8445,65 @@ Questi plugin verranno disabilitati. Sorgente plugin - + Search plugin source: Sorgente plugin ricerca: - + Local file File locale - + Web link Collegamento web - - PowerManagement - - - qBittorrent is active - qBittorrent è attivo - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - La gestione alimentazione ha trovato un'interfaccia D-Bus adatta. -Interfaccia: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Errore gestione dell'alimentazione. -Non è stata trovata l'interfaccia D-Bus adatta. - - - - - - Power management error. Action: %1. Error: %2 - Errore gestione alimentazione. -Azione: %1. -Errore: %2. - - - - Power management unexpected error. State: %1. Error: %2 - Errore imprevisto gestione alimentazione. -Stato: %1. -Errore: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: I seguenti file del torrent "%1" supportano l'anteprima, selezionane uno: - + Preview Anteprima - + Name Nome - + Size Dimensione - + Progress Avanzamento - + Preview impossible Anteprima impossibile - + Sorry, we can't preview this file: "%1". Non è possibile visualizzare l'anteprima di questo file: "%1". - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto @@ -8100,27 +8516,27 @@ Errore: %2 Private::FileLineEdit - + Path does not exist Il percorso non esiste - + Path does not point to a directory Il percorso non punta ad una cartella - + Path does not point to a file Il percorso non punta ad un file - + Don't have read permission to path Non hai i permessi di lettura per il percorso - + Don't have write permission to path Non hai i permessi di scrittura per il percorso @@ -8161,12 +8577,12 @@ Errore: %2 PropertiesWidget - + Downloaded: Scaricati: - + Availability: Disponibilità: @@ -8181,53 +8597,53 @@ Errore: %2 Trasferimento - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Durata attività: - + ETA: Tempo stimato: - + Uploaded: Inviati: - + Seeds: Distributori: - + Download Speed: Velocità download: - + Upload Speed: Velocità upload: - + Peers: Nodi: - + Download Limit: Limite download: - + Upload Limit: Limite upload: - + Wasted: Sprecati: @@ -8237,193 +8653,220 @@ Errore: %2 Connessioni: - + Information Informazioni - + Info Hash v1: Info hash v1: - + Info Hash v2: Info hash v2: - + Comment: Commento: - + Select All Seleziona tutti - + Select None Deseleziona tutti - + Share Ratio: Rapporto di condivisione: - + Reannounce In: Riannuncio tra: - + Last Seen Complete: Visto completo l'ultima volta: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Rapporto / Tempo Attivo (in mesi), indica quanto è popolare il torrent + + + + Popularity: + Popolarità: + + + Total Size: Dimensione totale: - + Pieces: Parti: - + Created By: Creato da: - + Added On: Aggiunto il: - + Completed On: Completato il: - + Created On: Creato il: - + + Private: + Privato: + + + Save Path: Percorso salvataggio: - + 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) - - + + + N/A N/D - + + Yes + + + + + No + No + + + %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) - - New Web seed - Nuovo distributore web + + Add web seed + Add HTTP source + Aggiungi seed web - - Remove Web seed - Rimuovi distributore web + + Add web seed: + Aggiungi seed web: - - Copy Web seed URL - Copia URL distributore web + + + This web seed is already in the list. + Questo seed web è gia in elenco: - - Edit Web seed URL - Modifica URL distributore web - - - + Filter files... Filtra elenco file... - + + Add web seed... + Aggiungi seed web... + + + + Remove web seed + Rimuovi seed web + + + + Copy web seed URL + Copia URL seed web + + + + Edit web seed URL... + Modifica URL seed web + + + Speed graphs are disabled I grafici della velocità sono disabilitati - + You can enable it in Advanced Options Puoi abilitarlo in Opzioni avanzate - - New URL seed - New HTTP source - Nuovo URL distributore - - - - New URL seed: - Nuovo URL distributore: - - - - - This URL seed is already in the list. - Questo URL distributore è già nell'elenco. - - - + Web seed editing Modifica distributore web - + Web seed URL: URL distributore web: @@ -8431,34 +8874,34 @@ Errore: %2 RSS::AutoDownloader - - + + Invalid data format. Formato dati non valido. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Impossibile salvare dati download automatico RSS su %1. Errore: %2 - + Invalid data format Formato dati non valido - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - L'articolo RSS '%1' è accettato dalla regola '%2'. + L'articolo RSS '%1' è accettato dalla regola '%2'. Tentativo di aggiunta torrent... - + Failed to read RSS AutoDownloader rules. %1 Impossibile leggere le regole di RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Impossibile caricare regole download automatico RSS. Motivo: %1 @@ -8466,24 +8909,24 @@ Tentativo di aggiunta torrent... RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Impossibile scaricare fonte RSS da '%1'. Motivo: %2 - + RSS feed at '%1' updated. Added %2 new articles. Fonte RSS su '%1' aggiornata. Aggiunti %2 nuovi articoli. - + Failed to parse RSS feed at '%1'. Reason: %2 Impossibile analizzare fonte RSS su '%1'. Motivo: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. - Download completato feed RSS in '%1'. + Download completato feed RSS in '%1'. Avvio analisi. @@ -8497,37 +8940,37 @@ Avvio analisi. Failed to save RSS feed in '%1', Reason: %2 - Impossibile salvare il feed RSS in '%1'. + Impossibile salvare il feed RSS in '%1'. Motivo: %2 Couldn't parse RSS Session data. Error: %1 - Impossibile analizzare i dati della sessione RSS. + Impossibile analizzare i dati della sessione RSS. Errore: %1 Couldn't load RSS Session data. Invalid data format. - Impossibile caricare i dati della sessione RSS. + Impossibile caricare i dati della sessione RSS. Formato dati non valido. Couldn't load RSS article '%1#%2'. Invalid data format. - Impossibile caricare l'articolo RSS '%1#%2'. + Impossibile caricare l'articolo RSS '%1#%2'. Formato dati non valido. RSS::Private::Parser - + Invalid RSS feed. Fonte RSS non valida. - + %1 (line: %2, column: %3, offset: %4). %1 (linea: %2, colonna: %3, scostamento: %4). @@ -8535,107 +8978,148 @@ Formato dati non valido. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Impossibile salvare la configurazione della sessione RSS. File: "%1". Errore: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Impossibile salvare i dati della sessione RSS. File: "%1". Errore: "%2" - - + + RSS feed with given URL already exists: %1. Una fonte RSS con la URL fornita è già esistente: %1. - + Feed doesn't exist: %1. Il feed non esiste: %1. - + Cannot move root folder. Impossibile spostare percorso radice. - - + + Item doesn't exist: %1. L'elemento non esiste: %1. - - Couldn't move folder into itself. - Impossibile spostare la cartella in se stessa. + + Can't move a folder into itself or its subfolders. + Impossibile spostare una cartella in se stessa o nelle sue sottocartelle. - + Cannot delete root folder. Impossibile eliminare percorso radice. - + Failed to read RSS session data. %1 Impossibile leggere i dati della sessione RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - Impossibile analizzare i dati della sessione RSS. -File: "%1". + Impossibile analizzare i dati della sessione RSS. +File: "%1". Errore: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - Impossibile caricare i dati della sessione RSS. -File: "%1". + Impossibile caricare i dati della sessione RSS. +File: "%1". Errore: "formato dati non valido". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Impossibile caricare il feed RSS. Feed: "%1". Motivo: URL è obbligatorio. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Impossibile caricare il feed RSS. Feed: "%1". Motivo: UID non valida. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Trovato feed RSS duplicato. UID: "%1". Errore: La configurazione sembra essere danneggiata. - + Couldn't load RSS item. Item: "%1". Invalid data format. Impossibile caricare articolo RSS. Item: "%1". Formato dati non valido. - + Corrupted RSS list, not loading it. Lista RSS corrotta, non è stata caricata. - + Incorrect RSS Item path: %1. Percorso elemento RSS non corretto: %1. - + RSS item with given path already exists: %1. Un elemento RSS col percorso fornito è già esistente: %1. - + Parent folder doesn't exist: %1. La cartella superiore non esiste: %1. + + RSSController + + + Invalid 'refreshInterval' value + Valore 'refreshInterval' non valido + + + + Feed doesn't exist: %1. + Il feed non esiste: %1. + + + + RSSFeedDialog + + + RSS Feed Options + Opzioni feed RSS + + + + URL: + URL: + + + + Refresh interval: + Intervallo aggiornamento: + + + + sec + s + + + + Default + Predefinito + + RSSWidget @@ -8655,8 +9139,8 @@ Errore: "formato dati non valido". - - + + Mark items read Marca oggetti come letti @@ -8681,132 +9165,115 @@ Errore: "formato dati non valido". Torrent: (doppio clic per scaricare) - - + + Delete Elimina - + Rename... Rinomina... - + Rename Rinomina - - + + Update Aggiorna - + New subscription... Nuova sottoscrizione... - - + + Update all feeds Aggiorna tutte le fonti - + Download torrent Scarica torrent - + Open news URL Apri URL novità - + Copy feed URL Copia URL fonte - + New folder... Nuova cartella... - - Edit feed URL... - Modifica URL feed... + + Feed options... + Opzioni feed... - - Edit feed URL - Modifica URL feed - - - + Please choose a folder name Scegli un nome cartella - + Folder name: Nome cartella: - + New folder Nuova cartella - - - Please type a RSS feed URL - Inserisci una URL fonte RSS - - - - - Feed URL: - URL fonte: - - - + Deletion confirmation Conferma cancellazione - + Are you sure you want to delete the selected RSS feeds? Sei sicuro di voler cancellare le fonti RSS selezionate? - + Please choose a new name for this RSS feed Scegli un nuovo nome per questa fonte RSS - + New feed name: Nuovo nome fonte: - + Rename failed Rinominazione non riuscita - + Date: Data: - + Feed: Feed: - + Author: Autore: @@ -8814,38 +9281,38 @@ Errore: "formato dati non valido". SearchController - + Python must be installed to use the Search Engine. Per usare i motori di ricerca deve essere installato Python. - + Unable to create more than %1 concurrent searches. Impossibile creare più di %1 motori di ricerca concorrenti. - - + + Offset is out of range Offset fuori intervallo - + All plugins are already up to date. Tutti i plugin sono aggiornati. - + Updating %1 plugins Aggiornamento %1 plugin - + Updating plugin %1 Aggiornamento plugin %1 - + Failed to check for plugin updates: %1 Controllo aggiornamenti plugin fallito: %1 @@ -8920,132 +9387,142 @@ Errore: "formato dati non valido". Dimensione: - + Name i.e: file name Nome - + Size i.e: file size Dimensione - + Seeders i.e: Number of full sources Sorgenti - + Leechers i.e: Number of partial sources Sorgenti parziali - - Search engine - Motore ricerca - - - + Filter search results... Risultati filtro ricerca... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Risultati (visualizza <i>%1</i> su <i>%2</i>): - + Torrent names only Solo nomi torrent - + Everywhere Qualsiasi - + Use regular expressions Usa espressione regolare - + Open download window Apri finestra download - + Download Download - + Open description page Apri descrizione pagina - + Copy Copia - + Name Nome - + Download link Collegamento download - + Description page URL URL descrizione pagina - + Searching... Ricerca... - + Search has finished Riecrca completata - + Search aborted Ricerca annullata - + An error occurred during search... Si è verificato un errore durante la ricerca... - + Search returned no results La ricerca non ha prodotto risultati - + + Engine + Engine + + + + Engine URL + URL engine + + + + Published On + Pubblicato il + + + Column visibility Visibilità colonna - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto @@ -9053,104 +9530,104 @@ Errore: "formato dati non valido". SearchPluginManager - + Unknown search engine plugin file format. Formato estensione motore di ricerca sconosciuto. - + Plugin already at version %1, which is greater than %2 Plugin già versione %1, che è maggiroe di %2 - + A more recent version of this plugin is already installed. Una versione più recente di questa estensione è già installata. - + Plugin %1 is not supported. Plugin %1 non supportato. - - + + Plugin is not supported. Estensione non supportata. - + Plugin %1 has been successfully updated. Aggiornamento plugin %1 completato. - + All categories Tutte le categorie - + Movies Film - + TV shows Serie TV - + Music Musica - + Games Giochi - + Anime Animazione - + Software Applicazioni - + Pictures Immagini - + Books Libri - + Update server is temporarily unavailable. %1 Server aggiornamenti temporaneamente non disponibile. %1 - - + + Failed to download the plugin file. %1 Impossibile scaricare il file di estensione. %1 - + Plugin "%1" is outdated, updating to version %2 Il plugin "%1" è obsoleto - aggiornamento alla versione %2 - + Incorrect update info received for %1 out of %2 plugins. Info aggiornamento ricevute non corrette per %1 di %2 plugin. - + Search plugin '%1' contains invalid version string ('%2') L'estensione di ricerca '%1' contiene stringa di versione non valida ('%2') @@ -9160,114 +9637,159 @@ Errore: "formato dati non valido". - - - - Search Cerca - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Non ci sono estensioni di ricerca installate. Fai clic sul pulsante "Estensioni di ricerca..." in basso a destra per installare una estensione. - + Search plugins... Estensioni ricerca... - + A phrase to search for. Una frase da cercare. - + Spaces in a search term may be protected by double quotes. Gli spazi in un termine di ricerca possono essere conservati usando i caratteri di quotazione. - + Example: Search phrase example Esempio: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;testo esempio&quot;</b>: ricerca per <b>testo esempio</b> - + All plugins Tutte le estensioni - + Only enabled Solo abilitati - + + + Invalid data format. + Formato dati non valido. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: cerca <b>foo</b> e <b>bar</b> - + + Refresh + Aggiorna + + + Close tab Chiudi scheda - + Close all tabs Chiudi tutte le schede - + Select... Seleziona... - - - + + 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 di ricerca prima - + + Stop Ferma + + + SearchWidget::DataStorage - - Search has finished - La ricerca è terminata + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Impossibile caricare i dati dello stato salvato dell'interfaccia utente. +File: "%1". +Errore: "%2" - - Search has failed - La ricerca non ha avuto successo + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Impossibile caricare i risultati di ricerca salvati. +Scheda: "%1". +File: "%2". +Errore: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Impossibile salvare lo stato dell'interfaccia utente ricerca. +File: "%1". +Errore: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Impossibile salvare i risultati della ricerca. +Scheda: "%1". +File: "%2". +Errore: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Impossibile caricare la cronologia dell'interfaccia utente. +File: "%1". +Errore: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Impossibile salvare la cronologia della ricerca. +File: "%1". +Errore: "%2" @@ -9275,7 +9797,7 @@ Fai clic sul pulsante "Estensioni di ricerca..." in basso a destra per Detected unclean program exit. Using fallback file to restore settings: %1 - Rilevata uscita dal programma non corretta. + Rilevata uscita dal programma non corretta. Uso il file di riserva per ripristinare le impostazioni: %1 @@ -9381,34 +9903,34 @@ Uso il file di riserva per ripristinare le impostazioni: %1 - + Upload: Upload: - - - + + + - - - + + + KiB/s KB/s - - + + Download: Download: - + Alternative speed limits Limiti velocità alternativi @@ -9600,32 +10122,32 @@ Uso il file di riserva per ripristinare le impostazioni: %1 Tempo medio in coda: - + Connected peers: Nodi connessi: - + All-time share ratio: Rapporto condivisione da sempre: - + All-time download: Download in generale: - + Session waste: Spreco sessione: - + All-time upload: Invii da sempre: - + Total buffer size: Dimensione buffer totale: @@ -9640,12 +10162,12 @@ Uso il file di riserva per ripristinare le impostazioni: %1 Lavori I/O in coda: - + Write cache overload: Sovraccarico cache scrittura: - + Read cache overload: Sovraccarico cache lettura: @@ -9664,51 +10186,77 @@ Uso il file di riserva per ripristinare le impostazioni: %1 StatusBar - + Connection status: Stato connessione: - - + + No direct connections. This may indicate network configuration problems. Nessuna connessione diretta. Questo potrebbe indicare problemi di configurazione della rete. - - + + Free space: N/A + Spazio libero: n/d + + + + + External IP: N/A + IP esterno: n/d + + + + DHT: %1 nodes DHT: %1 nodi - + qBittorrent needs to be restarted! qBittorrent ha bisogno di essere riavviato! - - - + + + Connection Status: Stato connessione: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Non in linea. Questo di solito significa che qBittorrent non è riuscito a mettersi in ascolto sulla porta selezionata per le connessioni in entrata. - + Online Online - + + Free space: + Spazio libero: + + + + External IPs: %1, %2 + IP esterni: %1, %2 + + + + External IP: %1%2 + IP esterno: %1, %2 + + + Click to switch to alternative speed limits Clicca per passare ai limiti alternativi di velocità - + Click to switch to regular speed limits Clicca per passare ai limiti normali di velocità @@ -9738,13 +10286,13 @@ Uso il file di riserva per ripristinare le impostazioni: %1 - Resumed (0) - Ripresi (0) + Running (0) + Avviati (0) - Paused (0) - In pausa (0) + Stopped (0) + Fermati (0) @@ -9806,36 +10354,36 @@ Uso il file di riserva per ripristinare le impostazioni: %1 Completed (%1) Completati (%1) + + + Running (%1) + Avviati (%1) + - Paused (%1) - In pausa (%1) + Stopped (%1) + Fermati (%1) + + + + Start torrents + Avvia torrents + + + + Stop torrents + Ferma torrents Moving (%1) Spostamento (%1) - - - Resume torrents - Riprendi i torrent - - - - Pause torrents - Metti in pausa i torrent - Remove torrents Rimuovi torrent - - - Resumed (%1) - Ripresi (%1) - Active (%1) @@ -9907,31 +10455,31 @@ Uso il file di riserva per ripristinare le impostazioni: %1 Remove unused tags Rimuovi etichette non utilizzate - - - Resume torrents - Riprendi torrent - - - - Pause torrents - Metti torrent in pausa - Remove torrents Rimuovi torrent - - New Tag - Nuova etichetta + + Start torrents + Avvia torrent + + + + Stop torrents + Ferma torrent Tag: Etichetta: + + + Add tag + Aggiungi etichetta + Invalid tag name @@ -10078,32 +10626,32 @@ Scegli un nome diverso e riprova. TorrentContentModel - + Name Nome - + Progress Avanzamento - + Download Priority Priorità download - + Remaining Rimanente - + Availability Disponibilità - + Total Size Dimensione totale @@ -10148,98 +10696,98 @@ Scegli un nome diverso e riprova. TorrentContentWidget - + Rename error Errore di ridenominazione - + Renaming Ridenominazione - + New name: Nuovo nome: - + Column visibility Visibilità colonna - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto - + Open Apri - + Open containing folder Apri cartella contenitore - + Rename... Rinomina... - + Priority Priorità - - + + Do not download Non scaricare - + Normal Normale - + High Alta - + Maximum Massima - + By shown file order Per ordine file visualizzato - + Normal priority Priorità normale - + High priority Priorità alta - + Maximum priority Priorità massima - + Priority by shown file order Priorità per ordine file visualizzato @@ -10247,19 +10795,19 @@ Scegli un nome diverso e riprova. TorrentCreatorController - + Too many active tasks - + Troppi task attivi - + Torrent creation is still unfinished. - + La creazione del torrent non è ancora completata. - + Torrent creation failed. - + Creazione del torrent non riuscita. @@ -10286,13 +10834,13 @@ Scegli un nome diverso e riprova. - + Select file Seleziona file - + Select folder Seleziona cartella @@ -10367,87 +10915,83 @@ Scegli un nome diverso e riprova. Campi - + You can separate tracker tiers / groups with an empty line. Puoi separare livelli/gruppi del tracker con una riga vuota. - + Web seed URLs: URL seed web: - + Tracker URLs: URL tracker: - + Comments: Commenti: - + Source: Sorgente: - + Progress: Progresso: - + Create Torrent Crea torrent - - + + Torrent creation failed Creazione torrent fallita - + Reason: Path to file/folder is not readable. Ragione: percorso file/cartella non leggibile. - + Select where to save the new torrent Seleziona dove salvare il nuovo torrent - + Torrent Files (*.torrent) File torrent (*.torrent) - Reason: %1 - Ragione: %1 - - - + Add torrent to transfer list failed. Aggiunta torrent all'elenco di trasferimento non riuscito. - + Reason: "%1" Motivo: "%1" - + Add torrent failed Aggiunta torrent non riuscita - + Torrent creator Crea torrent - + Torrent created: Torrent creato: @@ -10455,35 +10999,35 @@ Scegli un nome diverso e riprova. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Impossibile caricare la configurazione delle cartelle controllate. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - Impossibile analizzare la configurazione delle cartelle controllate da %1. + Impossibile analizzare la configurazione delle cartelle controllate da %1. Errore: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - Impossibile caricare la configurazione delle cartelle controllate da %1. + Impossibile caricare la configurazione delle cartelle controllate da %1. Errore: "formato dati non valido". - + Couldn't store Watched Folders configuration to %1. Error: %2 Impossibile memorizzare la configurazione delle cartelle monitorate in %1. Errore: %2 - + Watched folder Path cannot be empty. Il percorso della cartella monitorata non può essere vuoto. - + Watched folder Path cannot be relative. Il percorso della cartella monitorata non può essere relativo. @@ -10491,49 +11035,34 @@ Errore: %2 TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - URI Magnet non valido. -URI: %1. + URI Magnet non valido. +URI: %1. Motivo: %2 - + Magnet file too big. File: %1 - File magnet troppo grande. + File magnet troppo grande. File: %1 - + Failed to open magnet file: %1 Impossibile aprire il file magnet: %1 - + Rejecting failed torrent file: %1 Rifiuto file torrent fallito: %1 - + Watching folder: "%1" Cartella monitorata: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Impossibile allocare memoria durante la lettura del file. -File: "%1". -Errore: "%2" - - - - Invalid metadata - Metadati non validi - - TorrentOptionsDialog @@ -10562,175 +11091,163 @@ Errore: "%2" Usa un altro percorso per i torrent incompleti - + Category: Categoria: - - Torrent speed limits - Limiti velocità torrent + + Torrent Share Limits + Limite condivisione torrent - + Download: Download: - - + + - - + + Torrent Speed Limits + Limite velocità torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Questi non supereranno i limiti globali - + Upload: Upload: - - Torrent share limits - Limiti condivisione torrent - - - - Use global share limit - Usa limite condivisione globale - - - - Set no share limit - Rimuovi limiti condivisione - - - - Set share limit to - Imposta limite condivisione a - - - - ratio - rapporto - - - - total minutes - minuti totali - - - - inactive minutes - minuti di inattività - - - + Disable DHT for this torrent Disabilita DHT per questo torrent - + Download in sequential order Scarica in ordine sequenziale - + Disable PeX for this torrent Disabilita PeX per questo torrent - + Download first and last pieces first Scarica prima il primo e l'ultimo pezzo - + Disable LSD for this torrent Disabilita LSD per questo torrent - + Currently used categories Categorie attualmente usate - - + + Choose save path Scegli percorso salvataggio - + Not applicable to private torrents Non applicabile ai torrent privati - - - No share limit method selected - Nessun metodo limite condivisione selezionato - - - - Please select a limit method first - Prima scegli un metodo di limitazione - TorrentShareLimitsWidget - - - + + + + Default - Predefinito + Predefinito + + + + + + Unlimited + Illimitato - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Impostato a + + + + Seeding time: + Tempo seeding: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Tempo inattività seeding: - + + Action when the limit is reached: + Azione quando viene raggiunto il limite: + + + + Stop torrent + Ferma torrent + + + + Remove torrent + Rimuovi torrent + + + + Remove torrent and its content + Rimuovi torrent e il suo contenuto + + + + Enable super seeding for torrent + Abilita super seeding per torrent + + + Ratio: - + Rapporto: @@ -10741,32 +11258,32 @@ Errore: "%2" Tag torrent - - New Tag - Nuova etichetta + + Add tag + Aggiungi etichetta - + Tag: Etichetta: - + Invalid tag name Nome etichetta non valido - + Tag name '%1' is invalid. Il nome tag '%1' non è valido. - + Tag exists Etichetta esistente - + Tag name already exists. Nome dell'etichetta già esistente. @@ -10774,115 +11291,130 @@ Errore: "%2" TorrentsController - + Error: '%1' is not a valid torrent file. Errore: '%1' non è un file torrent valido. - + Priority must be an integer La priorità deve essere un valore intero - + Priority is not valid Priorità non valida - + Torrent's metadata has not yet downloaded Metadato torrent non ancora scaricato - + File IDs must be integers Gli ID file devono essere valori interi - + File ID is not valid ID file non valido - - - - + + + + Torrent queueing must be enabled L'accodamento torrent deve essere abilitato - - + + Save path cannot be empty Il valore 'Percorso salvataggio' non può essere vuoto - - + + Cannot create target directory Impossibile creare la cartella destinazione - - + + Category cannot be empty Il valore 'Categoria' non può essere vuoto - + Unable to create category Impossibile creare la categoria - + Unable to edit category Impossibile modificare la categoria - + Unable to export torrent file. Error: %1 Impossibile esportare il file torrent. Errore: %1 - + Cannot make save path Impossibile creare percorso salvataggio - + + "%1" is not a valid URL + "%1" non è una URL valida + + + + URL scheme must be one of [%1] + Lo schema URL deve essere uno di [%1] + + + 'sort' parameter is invalid Parametro 'sort' non valido - + + "%1" is not an existing URL + "%1" non è una URL esistente + + + "%1" is not a valid file index. '%1' non è un file indice valido. - + Index %1 is out of bounds. Indice '%1' fuori dai limiti. - - + + Cannot write to directory Impossibile scrivere nella cartella - + WebUI Set location: moving "%1", from "%2" to "%3" Interfaccia web imposta posizione: spostamento di "%1", da "%2" a "%3" - + Incorrect torrent name Nome torrent non corretto - - + + Incorrect category name Nome categoria non corretto @@ -10913,196 +11445,191 @@ Errore: "%2" TrackerListModel - + Working In elaborazione - + Disabled Disabilitato - + Disabled for this torrent Disabilitato per questo torrent - + This torrent is private Questo torrent è privato - + N/A N/D - + Updating... Aggiornamento... - + Not working Non funzionante - + Tracker error Errore tracker - + Unreachable Non raggiungibile - + Not contacted yet Non ancora connesso - - Invalid status! + + Invalid state! Stato non valido! - - URL/Announce endpoint - URL/annuncio endpoint + + URL/Announce Endpoint + URL/annuncio punto finale - + + BT Protocol + Protocollo BT + + + + Next Announce + Annuncio successivo + + + + Min Announce + Annuncio minimo + + + Tier Livello - - Protocol - Protocollo - - - + Status Stato - + Peers Nodi - + Seeds Distributori - + Leeches Leech - + Times Downloaded N volte scaricati - + Message Messaggio - - - Next announce - Annuncio successivo - - - - Min announce - Annuncio min. - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Questo torrent è privato - + Tracker editing Modifica tracker - + Tracker URL: URL tracker: - - + + Tracker editing failed Modifica tracker fallita - + The tracker URL entered is invalid. Il tracker inserito non è valido. - + The tracker URL already exists. L'URL tracker esiste già. - + Edit tracker URL... Modifica URL tracker... - + Remove tracker Rimuovi tracker - + Copy tracker URL Copia URL tracker - + Force reannounce to selected trackers Forza ri-annuncio ai tracker selezionati - + Force reannounce to all trackers Forza ri-annuncio a tutti i tracker - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto - + Add trackers... Aggiungi tracker... - + Column visibility Visbilità colonna @@ -11120,101 +11647,101 @@ Errore: "%2" Elenco tracker da aggiungere (uno per linea): - + µTorrent compatible list URL: URL elenco compatibile µTorrent: - + Download trackers list Download elenco tracker - + Add Aggiungi - + Trackers list URL error Errore URL elenco tracker - + The trackers list URL cannot be empty L'URL dell'elenco tracker non può essere vuota - + Download trackers list error Errore download elenco tracker - + Error occurred when downloading the trackers list. Reason: "%1" - Si è verificato un errore durante il download dell'elenco tracker. + Si è verificato un errore durante il download dell'elenco tracker. Motivo: "%1" TrackersFilterWidget - + Warning (%1) Notifiche (%1) - + Trackerless (%1) Senza server traccia (%1) - + Tracker error (%1) Errore tracker (%1) - + Other error (%1) Altro errore (%1) - + Remove tracker Rimuovi tracker - - Resume torrents - Riprendi torrent + + Start torrents + Avvia torrent - - Pause torrents - Metti in pausa i torrent + + Stop torrents + Ferma torrent - + Remove torrents Rimuovi torrent - + Removal confirmation Conferma rimozione - + Are you sure you want to remove tracker "%1" from all torrents? Sei sicuro di voler rimuovere il tracker "%1" da tutti i torrent? - + Don't ask me again. Non chiedermelo più. - + All (%1) this is for the tracker filter Tutti (%1) @@ -11223,7 +11750,7 @@ Motivo: "%1" TransferController - + 'mode': invalid argument 'modalità': argomento non valido @@ -11315,11 +11842,6 @@ Motivo: "%1" 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. Controllo dati recupero - - - Paused - In pausa - Completed @@ -11343,220 +11865,252 @@ Motivo: "%1" Con errori - + Name i.e: torrent name Nome - + Size i.e: torrent size Dimensione - + Progress % Done Avanzamento - + + Stopped + Fermato + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stato - + Seeds i.e. full sources (often untranslated) Seed - + Peers i.e. partial sources (often untranslated) Peer - + Down Speed i.e: Download speed Velocità download - + Up Speed i.e: Upload speed Velocità upload - + Ratio Share ratio Rapporto - + + Popularity + Popolarità + + + ETA i.e: Estimated Time of Arrival / Time left Tempo stimato - + Category Categoria - + Tags Tag - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Aggiunto il - + Completed On Torrent was completed on 01/01/2010 08:00 Completato il - + Tracker Tracker - + Down Limit i.e: Download limit Limite download - + Up Limit i.e: Upload limit Limite upload - + Downloaded Amount of data downloaded (e.g. in MB) Scaricati - + Uploaded Amount of data uploaded (e.g. in MB) Inviati - + Session Download Amount of data downloaded since program open (e.g. in MB) Sessione download - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sessione upload - + Remaining Amount of data left to download (e.g. in MB) Rimanenti - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tempo attivo - + + Yes + + + + + No + No + + + Save Path Torrent save path Percorso salvataggio - + Incomplete Save Path Torrent incomplete save path Percorso salvataggio non completo - + Completed Amount of data completed (e.g. in MB) Completati - + Ratio Limit Upload share ratio limit Rapporto limite - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Ultima operazione completata - + Last Activity Time passed since a chunk was downloaded/uploaded Ultima attività - + Total Size i.e. Size including unwanted data Dimensione totale - + Availability The number of distributed copies of the torrent Disponibilità - + Info Hash v1 i.e: torrent info hash v1 Info hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info hash v2 - + Reannounce In Indicates the time until next trackers reannounce Riannuncia - - + + Private + Flags private torrents + Privato + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Rapporto/tempo attivo (in mesi), indica quanto è popolare il torrent + + + + + N/A N/D - + %1 ago e.g.: 1h 20m ago %1 fa - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seed per %2) @@ -11565,341 +12119,321 @@ Motivo: "%1" TransferListWidget - + Column visibility Visibilità colonna - + Recheck confirmation Conferma ricontrollo - + Are you sure you want to recheck the selected torrent(s)? Confermi di voler ricontrollare i torrent selezionati? - + Rename Rinomina - + New name: Nuovo nome: - + Choose save path Scegli una cartella per il salvataggio - - Confirm pause - Conferma pausa - - - - Would you like to pause all torrents? - Vuoi mettere in pausa tutti i torrent? - - - - Confirm resume - Conferma ripresa - - - - Would you like to resume all torrents? - Vuoi riprendere tutti i torrent? - - - + Unable to preview Anteprima non possibile - + The selected torrent "%1" does not contain previewable files Il torrent selezionato "%1" non contiene file compatibili con l'anteprima - + Resize columns Ridimensiona colonne - + Resize all non-hidden columns to the size of their contents Ridimensiona tutte le colonne non nascoste alla dimensione del loro contenuto - + Enable automatic torrent management Abilita gestione automatica torrent - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - Sei sicuro di voler abilitare la gestione automatica torrent per i torrent selezionati? + Sei sicuro di voler abilitare la gestione automatica torrent per i torrent selezionati? I torrent potranno essere spostati. - - Add Tags - Aggiungi etichette - - - + Choose folder to save exported .torrent files Scegli la cartella in cui salvare i file .torrent esportati - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Esportazione file .torrent non riuscita. Torrent: "%1". Percorso salvataggio: "%2". Motivo: "%3" - + A file with the same name already exists Esiste già un file con lo stesso nome - + Export .torrent file error Errore esportazione del file .torrent - + Remove All Tags Rimuovi tutte le etichette - + Remove all tags from selected torrents? Rimuovere tutte le etichette dai torrent selezionati? - + Comma-separated tags: Etichette separate da virgola: - + Invalid tag Etichetta non valida - + Tag name: '%1' is invalid Nome etichetta: '%1' non è valido - - &Resume - Resume/start the torrent - &Riprendi - - - - &Pause - Pause the torrent - &Pausa - - - - Force Resu&me - Force Resume/start the torrent - Forza rip&resa - - - + Pre&view file... A&nteprima file... - + Torrent &options... &Opzioni torrent... - + Open destination &folder Apri cartella &destinazione - + Move &up i.e. move up in the queue Sposta s&u - + Move &down i.e. Move down in the queue Sposta &giù - + Move to &top i.e. Move to top of the queue Sposta in &alto - + Move to &bottom i.e. Move to bottom of the queue Sposta in &basso - + Set loc&ation... Impost&a percorso... - + Force rec&heck Forza ri&controllo - + Force r&eannounce Forza ri&annuncio - + &Magnet link Collegamento &magnet - + Torrent &ID &ID torrent - + &Comment &Commento - + &Name &Nome - + Info &hash v1 Info&hash 1 - + Info h&ash v2 Info h&ash 2 - + Re&name... Ri&nomina... - + Edit trac&kers... Modifica trac&ker... - + E&xport .torrent... E&sporta .torrent... - + Categor&y &Categoria - + &New... New category... &Nuovo... - + &Reset Reset category &Ripristina - + Ta&gs Ta&g - + &Add... Add / assign multiple tags... &Aggiungi... - + &Remove All Remove all tags &Rimuovi tutto - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Impossibile forzare il riannuncio se il torrent è arrestato/in coda/in errore/in controllo + + + &Queue &Coda - + &Copy &Copia - + Exported torrent is not necessarily the same as the imported Il torrent esportato non è necessariamente lo stesso di quello importato - + Download in sequential order Scarica in ordine sequenziale - + + Add tags + Aggiungi etichetta + + + Errors occurred when exporting .torrent files. Check execution log for details. - Si sono verificati errori durante l'esportazione di file .torrent. + Si sono verificati errori durante l'esportazione di file .torrent. Per i dettagli controlla il registro di esecuzione. - + + &Start + Resume/start the torrent + &Avvia + + + + Sto&p + Stop the torrent + Sto&p + + + + Force Star&t + Force Resume/start the torrent + For&za avvio + + + &Remove Remove the torrent &Rimuovi - + Download first and last pieces first Scarica la prima e l'ultima parte per prime - + Automatic Torrent Management Gestione Torrent Automatica - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category La modalità automatica significa che le varie proprietà torrent (ad esempio il percorso di salvataggio) saranno decise dalla categoria associata - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Non è possibile forzare il nuovo annuncio se il torrent è In Pausa/In Coda/Errore/Controllo - - - + Super seeding mode Modalità super distribuzione @@ -11944,41 +12478,47 @@ Per i dettagli controlla il registro di esecuzione. ID icona - + UI Theme Configuration. Configurazione tema interfaccia utente. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - Non è stato possibile applicare completamente le modifiche al tema dell'interfaccia utente. + Non è stato possibile applicare completamente le modifiche al tema dell'interfaccia utente. Per i dettagli sul problema consulta il registro eventi. - + Couldn't save UI Theme configuration. Reason: %1 - Impossibile salvare la configurazione del tema dell'interfaccia utente. + Impossibile salvare la configurazione del tema dell'interfaccia utente. Motivo: %1 - - + + Couldn't remove icon file. File: %1. - Impossibile rimuovere il file dell'icona. + Impossibile rimuovere il file dell'icona. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - Impossibile copiare il file dell'icona. -Sorgente: %1. + Impossibile copiare il file dell'icona. +Sorgente: %1. Destinazione: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Impostazione stile app non riuscita. +Stile sconosciuto: "%1". + + + Failed to load UI theme from file: "%1" Impossibile caricare il tema dell'interfaccia utente dal file: "%1" @@ -11994,7 +12534,7 @@ Motivo: %1 UI Theme configuration file has invalid format. Reason: %1 - Il file di configurazione del tema dell'interfaccia utente ha un formato non valido. + Il file di configurazione del tema dell'interfaccia utente ha un formato non valido. Motivo: %1 @@ -12011,63 +12551,64 @@ Motivo: %1 Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migrazione impostazioni fallita: file https WebUI: "%1". errore: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrazione impostazioni: file https WebUI, esportazione dati nel file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Trovato valore non valido nel file di configurazione, -Verrà ripristinato al valore predefinito. -Chiave: "%1". +Verrà ripristinato al valore predefinito. +Chiave: "%1". Valore non valido: "%2". Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - Trovato eseguibile Python. -Nome: "%1". + Trovato eseguibile Python. +Nome: "%1". Versione: "%2" - + Failed to find Python executable. Path: "%1". - Impossibile trovare l'eseguibile Python. + Impossibile trovare l'eseguibile Python. Percorso: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - Impossibile trovare l'eseguibile `python3` nella variabile di ambiente PATH. + Impossibile trovare l'eseguibile `python3` nella variabile di ambiente PATH. PERCORSO: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - Impossibile trovare l'eseguibile `python` nella variabile di ambiente PATH. + Impossibile trovare l'eseguibile `python` nella variabile di ambiente PATH. PERCORSO: "%1" - + Failed to find `python` executable in Windows Registry. Impossibile trovare l'eseguibile `python` nel registro di Windows. - + Failed to find Python executable Impossibile trovare l'eseguibile Python @@ -12077,39 +12618,39 @@ PERCORSO: "%1" File open error. File: "%1". Error: "%2" - Errore apertura file. -File: "%1". + Errore apertura file. +File: "%1". Errore: "%2" File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - La dimensione del file supera il limite. -File: "%1". -Dimensione file: %2. + La dimensione del file supera il limite. +File: "%1". +Dimensione file: %2. Limite dimensione: %3 File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - La dimensione del file supera il limite della dimensione dei dati. -File: "%1". -Dimensione file: %2. + La dimensione del file supera il limite della dimensione dei dati. +File: "%1". +Dimensione file: %2. Limite matrice: %3 File read error. File: "%1". Error: "%2" - Errore di lettura del file. -File: "%1". + Errore di lettura del file. +File: "%1". Errore: "%2" Read size mismatch. File: "%1". Expected: %2. Actual: %3 - Dimensione òettura non corrispondente. -File: "%1". -Prevista: %2. + Dimensione òettura non corrispondente. +File: "%1". +Prevista: %2. Effettiva: %3 @@ -12172,75 +12713,75 @@ Effettiva: %3 WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - È stato specificato un nome di cookie di sessione non accettabile: '%1'. + È stato specificato un nome di cookie di sessione non accettabile: '%1'. Verrà utilizzato quello predefinito. - + Unacceptable file type, only regular file is allowed. Tipo file non accettabile, sono permessi solo file regolari. - + Symlinks inside alternative UI folder are forbidden. I collegamenti simbolici in cartelle interfaccia alternative non sono permessi. - + Using built-in WebUI. Usa WebUI integrata. - + Using custom WebUI. Location: "%1". - Usa WebUI personalizzata. + Usa WebUI personalizzata. Percorso: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. La traduzione della WebUI per la lingua selezionata (%1) è stata caricata correttamente. - + Couldn't load WebUI translation for selected locale (%1). Impossibile caricare la traduzione della WebUI per la lingua selezionata (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Separatore ':' mancante in intestazione HTTP personalizzata WebUI: "%1" - + Web server error. %1 Errore server web. %1 - + Web server error. Unknown error. - Errore server web. + Errore server web. Errore sconosciuto. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Interfaccia web: intestazione Origin e origine Target non corrispondenti! IP sorgente: '%1'. Intestazione Origin: '%2': Intestazione Target: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Interfaccia web: Intestazione Referer e origine Target non corrispondenti! IP sorgente: '%1'. Intestazione referer: '%2'. Origine Target: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Interfaccia web: Intestazione Host non valida, porte non corrispondenti. Sorgente IP di richiesta: '%1'. Porta server: '%2'. Intestazione Host ricevuta: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Interfaccia web: Intestazione Host non valida. IP sorgente di richiesta: '%1'. Intestazione Host ricevuta: '%2' @@ -12248,126 +12789,134 @@ Errore sconosciuto. WebUI - + Credentials are not set Le credenziali non sono impostate - + WebUI: HTTPS setup successful WebUI: configurazione HTTPS completata - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: configurazione HTTPS non riuscita, fallback su HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: ora in ascolto su IP: %1, porta: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - Impossibile eseguire il collegamento all'IP: %1, porta: %2. + Impossibile eseguire il collegamento all'IP: %1, porta: %2. Motivo: %3 + + fs + + + Unknown error + Errore sconosciuto + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1o %2m - + %1d %2h e.g: 2 days 10 hours %1g %2o - + %1y %2d e.g: 2 years 10 days %1a %2g - - + + Unknown Unknown (size) Sconosciuta - + qBittorrent will shutdown the computer now because all downloads are complete. Tutti i download sono stati completati e qBittorrent procederà ora con l'arresto del sistema. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_ja.ts b/src/lang/qbittorrent_ja.ts index 4b8cfa435..eaa66fd1f 100644 --- a/src/lang/qbittorrent_ja.ts +++ b/src/lang/qbittorrent_ja.ts @@ -14,75 +14,75 @@ qBittorrentについて - + Authors オーサー - + Current maintainer 現在のメンテナー - + Greece ギリシャ - - + + Nationality: 国籍: - - + + E-mail: メール: - - + + Name: 名前: - + Original author オリジナルオーサー - + France フランス - + Special Thanks 謝辞 - + Translators 翻訳者 - + License ライセンス - + Software Used 使用ソフトウェア - + qBittorrent was built with the following libraries: qBittorrentは以下のライブラリを使用してビルドされています: - + Copy to clipboard クリップボードにコピー @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ 保存先 - + Never show again 次回から表示しない - - - Torrent settings - Torrentの設定 - Set as default category @@ -191,12 +186,12 @@ Torrentを開始する - + Torrent information Torrentの情報 - + Skip hash check ハッシュチェックを省略する @@ -205,6 +200,11 @@ Use another path for incomplete torrent 未完了のTorrentは別のパスを使用する + + + Torrent options + Torrentのオプション + Tags: @@ -231,75 +231,75 @@ 停止条件: - - + + None なし - - + + Metadata received メタデータを受信後 - + Torrents that have metadata initially will be added as stopped. - + 最初からメタデータを持つTorrentは、停止状態で追加されます。 - - + + Files checked ファイルのチェック後 - + Add to top of queue キューの先頭に追加する - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog チェックを入れると、オプションダイアログの「ダウンロード」ページの設定にかかわらず、".torrent"ファイルは削除されません - + Content layout: コンテンツのレイアウト: - + Original オリジナル - + Create subfolder サブフォルダーを作成する - + Don't create subfolder サブフォルダーを作成しない - + Info hash v1: Infoハッシュ v1: - + Size: サイズ: - + Comment: コメント: - + Date: 日付: @@ -329,151 +329,147 @@ 最後に使用した保存先を記憶する - + Do not delete .torrent file ".torrent"ファイルを削除しない - + Download in sequential order ピースを先頭から順番にダウンロードする - + Download first and last pieces first 最初と最後のピースを先にダウンロードする - + Info hash v2: Infoハッシュ v2: - + Select All すべて選択 - + Select None すべて解除 - + Save as .torrent file... ".torrent"ファイルとして保存... - + I/O Error I/Oエラー - + Not Available This comment is unavailable 取得できません - + Not Available This date is unavailable 取得できません - + Not available 取得できません - + Magnet link マグネットリンク - + Retrieving metadata... メタデータを取得しています... - - + + Choose save path 保存パスの選択 - + No stop condition is set. 停止条件は設定されていません。 - + Torrent will stop after metadata is received. メタデータの受信後、Torrentは停止します。 - Torrents that have metadata initially aren't affected. - はじめからメタデータを持つTorrentは影響を受けません。 - - - + Torrent will stop after files are initially checked. ファイルの初期チェック後、Torrentは停止します。 - + This will also download metadata if it wasn't there initially. また、メタデータが存在しない場合は、メタデータもダウンロードされます。 - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (ディスクの空き容量: %2) - + Not available This size is unavailable. 取得できません - + Torrent file (*%1) Torrentファイル (*%1) - + Save as torrent file ".torrent"ファイルとして保存 - + Couldn't export torrent metadata file '%1'. Reason: %2. Torrentのメタデータファイル(%1)をエクスポートできませんでした。理由: %2。 - + Cannot create v2 torrent until its data is fully downloaded. v2のデータが完全にダウンロードされるまではv2のTorrentを作成できません。 - + Filter files... ファイルを絞り込む... - + Parsing metadata... メタデータを解析しています... - + Metadata retrieval complete メタデータの取得が完了しました @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrentをダウンロード中... ソース: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Torrentが追加できませんでした。 ソース: "%1". 理由: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - 重複したTorrentの追加が検出されました。ソース: %1. 既存Torrent: %2. 結果: %3. - - - + Merging of trackers is disabled トラッカーのマージは無効です - + Trackers cannot be merged because it is a private torrent プライベートTorrentのため、トラッカーはマージできません。 - + Trackers are merged from new source トラッカーは新しいソースからマージされます。 + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrentの共有制限 + Torrentの共有制限 @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torrentの完了時に再チェックする - - + + ms milliseconds ミリ秒 - + Setting 設定 - + Value Value set for this setting - + (disabled) (無効) - + (auto) (自動) - + + min minutes - + All addresses すべてのアドレス - + qBittorrent Section qBittorrentセクション - - + + Open documentation ドキュメントを開く - + All IPv4 addresses すべてのIPv4アドレス - + All IPv6 addresses すべてのIPv6アドレス - + libtorrent Section libtorrentセクション - + Fastresume files Fastresumeファイル - + SQLite database (experimental) SQLiteデータベース(実験的) - + Resume data storage type (requires restart) 再開データのストレージタイプ(再起動が必要) - + Normal 標準 - + Below normal 標準以下 - + Medium - + Low - + Very low 最低 - + Physical memory (RAM) usage limit 物理メモリ(RAM)の使用限度 - + Asynchronous I/O threads 非同期I/Oスレッド数 - + Hashing threads スレッドのハッシュ化 - + File pool size ファイルプールサイズ - + Outstanding memory when checking torrents Torrentのチェックに使用するメモリー量 - + Disk cache ディスクキャッシュ - - - - + + + + + s seconds - + Disk cache expiry interval ディスクキャッシュの書き込み間隔 - + Disk queue size ディスクキューサイズ - - + + Enable OS cache OSのキャッシュを有効にする - + Coalesce reads & writes コアレス読み込み/書き込み - + Use piece extent affinity ピースのエクステントアフィニティを使用する - + Send upload piece suggestions アップロードピースの提案を送信する - - - - + + + + + 0 (disabled) 0 (無効) - + Save resume data interval [0: disabled] How often the fastresume file is saved. 再開データ保存間隔 [0: 無効] - + Outgoing ports (Min) [0: disabled] 送信ポート(最小) [0: 無効] - + Outgoing ports (Max) [0: disabled] 送信ポート(最大) [0: 無効] - + 0 (permanent lease) 0 (永続リース) - + UPnP lease duration [0: permanent lease] UPnPのリース期間 [0: 永続リース] - + Stop tracker timeout [0: disabled] 停止トラッカーのタイムアウト [0: 無効] - + Notification timeout [0: infinite, -1: system default] 通知のタイムアウト [0: 無限, -1: システムデフォルト] - + Maximum outstanding requests to a single peer 1つのピアへ送信する未処理リクエストの最大数 - - - - - + + + + + KiB KiB - + (infinite) (無限) - + (system default) (システムデフォルト) - + + Delete files permanently + ファイルを完全に削除する + + + + Move files to trash (if possible) + ファイルをゴミ箱に移動する (可能な場合) + + + + Torrent content removing mode + Torrentコンテンツ削除モード + + + This option is less effective on Linux このオプションは、Linuxではあまり効果がありません - + Process memory priority プロセスのメモリー優先度 - + Bdecode depth limit Bdecodeの深度制限 - + Bdecode token limit Bdecodeのトークン制限 - + Default デフォルト - + Memory mapped files メモリーマップドファイル - + POSIX-compliant POSIX準拠 - + + Simple pread/pwrite + シンプルなpread/pwrite + + + Disk IO type (requires restart) Disk IOタイプ(再起動が必要) - - + + Disable OS cache OSのキャッシュを無効にする - + Disk IO read mode ディスクI/O読み込みモード - + Write-through ライトスルー - + Disk IO write mode ディスクI/O書き込みモード - + Send buffer watermark 送信バッファーのウォーターマーク - + Send buffer low watermark 送信バッファーのウォーターマーク最小値 - + Send buffer watermark factor 送信バッファーのウォーターマーク係数 - + Outgoing connections per second 1秒あたりの外部接続数 - - + + 0 (system default) 0 (システムデフォルト) - + Socket send buffer size [0: system default] ソケットの送信バッファサイズ [0: システムデフォルト] - + Socket receive buffer size [0: system default] ソケットの受信バッファサイズ [0: システムデフォルト] - + Socket backlog size ソケットで保留にできる接続待ちの数 - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + 統計保存間隔 [0: 無効] + + + .torrent file size limit ".torrent"ファイルのサイズ制限 - + Type of service (ToS) for connections to peers ピアに接続するサービスの種類(ToS) - + Prefer TCP TCPを優先 - + Peer proportional (throttles TCP) ピアに比例(TCPをスロットル) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) 国際化ドメイン名(IDN)に対応する - + Allow multiple connections from the same IP address 同じIPアドレスから複数の接続を許可する - + Validate HTTPS tracker certificates HTTPSトラッカーの証明書を検証する - + Server-side request forgery (SSRF) mitigation サーバーサイドリクエストフォージェリ(SSRF)の軽減 - + Disallow connection to peers on privileged ports 特権ポートでのピアへの接続を許可しない - + It appends the text to the window title to help distinguish qBittorent instances - + qBittorentインスタンスを区別するために、ウィンドウタイトルにテキストを付加します。 - + Customize application instance name - + アプリケーションインスタンスのカスタマイズ - + It controls the internal state update interval which in turn will affect UI updates UIの更新に影響を与える内部状態の更新間隔をコントロールします。 - + Refresh interval 更新間隔 - + Resolve peer host names ピアのホスト名を解決する - + IP address reported to trackers (requires restart) トラッカーに報告するIPアドレス(再起動が必要) - + + Port reported to trackers (requires restart) [0: listening port] + トラッカーに報告されるポート(再起動が必要) [0: 接続待ちポート] + + + Reannounce to all trackers when IP or port changed IPまたはポートに変更があったとき、すべてのトラッカーに再アナウンスする - + Enable icons in menus メニューのアイコン表示を有効にする - + + Attach "Add new torrent" dialog to main window + 「新しいTorrernの追加」ダイアログをメインウィンドウに追加します + + + Enable port forwarding for embedded tracker 組み込みトラッカーのポート転送を有効にする - + Enable quarantine for downloaded files ダウンロードされたファイルの隔離を有効にする - + Enable Mark-of-the-Web (MOTW) for downloaded files ダウンロードされたファイルのMark-of-the-Web (MOTW)を有効にする - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + 証明書の検証とtorrentプロトコル以外のアクティビティ (RSSフィード、プログラムの更新、torrentファイル、geoip dbなど) に影響します。 + + + + Ignore SSL errors + SSLエラーを無視する + + + (Auto detect if empty) (空欄の場合は自動検出) - + Python executable path (may require restart) Pythonの実行パス(再起動が必要) - + + Start BitTorrent session in paused state + BitTorrentセッションを一時停止状態で開始する + + + + sec + seconds + + + + + -1 (unlimited) + -1 (無制限) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrentセッションのシャットダウンのタイムアウト [-1: 無制限] + + + Confirm removal of tracker from all torrents すべてのTorrentからトラッカーを削除するときは確認する - + Peer turnover disconnect percentage ピアターンオーバーの切断の割合 - + Peer turnover threshold percentage ピアターンオーバーのしきい値の割合 - + Peer turnover disconnect interval ピアターンオーバーの切断の間隔 - + Resets to default if empty 空欄の場合はデフォルトにリセット - + DHT bootstrap nodes DHTブートストラップノード - + I2P inbound quantity I2Pインバウンド量 - + I2P outbound quantity I2Pアウトバウンド量 - + I2P inbound length I2Pインバウンド長 - + I2P outbound length I2Pアウトバウンド長 - + Display notifications 通知を表示する - + Display notifications for added torrents 追加されたTorrentの通知を表示する - + Download tracker's favicon トラッカーのファビコンをダウンロードする - + Save path history length 保存パスの履歴数 - + Enable speed graphs 速度グラフを有効にする - + Fixed slots 固定スロット数 - + Upload rate based アップロード速度基準 - + Upload slots behavior アップロードスロットの動作 - + Round-robin ラウンドロビン - + Fastest upload 最速アップロード - + Anti-leech アンチリーチ - + Upload choking algorithm アップロードのチョークアルゴリズム - + Confirm torrent recheck Torrentを再チェックするときは確認する - + Confirm removal of all tags すべてのタグを削除するときは確認する - + Always announce to all trackers in a tier 常にティア内のすべてのトラッカーにアナウンスする - + Always announce to all tiers 常にすべてのティアにアナウンスする - + Any interface i.e. Any network interface すべてのインターフェース - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP混合モードのアルゴリズム - + Resolve peer countries ピアの国籍を解決する - + Network interface ネットワークインターフェース - + Optional IP address to bind to バインドする任意のIPアドレス - + Max concurrent HTTP announces HTTPアナウンスの最大同時接続数 - + Enable embedded tracker 組み込みトラッカーを有効にする - + Embedded tracker port 組み込みトラッカーのポート + + AppController + + + + Invalid directory path + 無効なディレクトリーパスです + + + + Directory does not exist + ディレクトリーが存在しません + + + + Invalid mode, allowed values: %1 + 無効なモードです。使用できる値: %1 + + + + cookies must be array + クッキーは配列でなければなりません + + Application - + Running in portable mode. Auto detected profile folder at: %1 ポータブルモードで実行中です。自動検出されたプロファイルフォルダー: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. 不要なコマンドラインオプションを検出しました: "%1" 。 ポータブルモードには、"relative fastresume"機能が含まれています。 - + Using config directory: %1 次の設定ディレクトリーを使用します: %1 - + 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をご利用いただきありがとうございます。 - + Torrent: %1, sending mail notification Torrent: %1で通知メールが送信されました - + Add torrent failed Torrentが追加できませんでした - + Couldn't add torrent '%1', reason: %2. Torrent(%1)を追加できませんでした。理由: %2 - + The WebUI administrator username is: %1 WebUI管理者のユーザー名: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 WebUI管理者のパスワードが設定されていません。このセッションは、一時的なパスワードが与えられます: %1 - + You should set your own password in program preferences. プログラムの設定で独自のパスワードを設定する必要があります。 - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUIが無効です。WebUIを有効にするには設定ファイルを手動で編集します。 - + Running external program. Torrent: "%1". Command: `%2` 外部プログラムを実行中。 Torrent: "%1". コマンド: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` 外部プログラムが実行できませんでした。Torrent: "%1." コマンド: "%2" - + Torrent "%1" has finished downloading Torrent(%1)のダウンロードが完了しました - + WebUI will be started shortly after internal preparations. Please wait... 準備ができ次第、WebUIが開始されます。しばらくお待ちください... - - + + Loading torrents... Torrentを読み込み中... - + E&xit 終了(&X) - + I/O Error i.e: Input/Output Error I/Oエラー - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ 理由: %2 - + Torrent added Torrentが追加されました - + '%1' was added. e.g: xxx.avi was added. '%1'が追加されました。 - + Download completed ダウンロードが完了しました - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 が開始されました。プロセスID: %2 - + + This is a test email. + これはテストメールです。 + + + + Test email + テストメール + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1'のダウンロードが完了しました。 - + Information 情報 - + To fix the error, you may need to edit the config file manually. エラーを修正するには、設定ファイルを手動で編集する必要があります。 - + To control qBittorrent, access the WebUI at: %1 qBittorrentを操作するには、Web UI(%1)にアクセスしてください - + Exit 終了 - + Recursive download confirmation 再帰的なダウンロードの確認 - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent(%1)は".torrent"ファイルを含んでいます。これらのダウンロードを行いますか? - + Never しない - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Torrent内の".torrent"ファイルが再帰的にダウンロードされます。ソースTorrent: "%1". ファイル: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" 物理メモリー(RAM)の使用限度を設定できませんでした。エラーコード: %1. エラーメッセージ: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" 物理メモリー(RAM)の絶対的な使用量を設定できませんでした。要求サイズ: %1. システムの絶対制限: %2. エラーコード: %3. エラーメッセージ: "%4" - + qBittorrent termination initiated qBittorrentの終了を開始しました - + qBittorrent is shutting down... qBittorrentはシャットダウンしています... - + Saving torrent progress... Torrentの進捗状況を保存しています... - + qBittorrent is now ready to exit qBittorrentは終了準備ができました @@ -1609,12 +1715,12 @@ 優先度: - + Must Not Contain: 次を含まない: - + Episode Filter: エピソードフィルター: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also エクスポート(&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 シーズン番号は、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にマッチします - + Episode number is a mandatory positive value エピソード番号は、整数値(必須)です - + Rules ルール - + Rules (legacy) ルール(レガシー) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons 無限範囲: <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 ルール削除の確認 - + Invalid action 無効な操作 - + The list is empty, there is nothing to export. リストが空のため、エクスポートするものがありません。 - + Export RSS rules RSSルールのエクスポート - + I/O Error I/Oエラー - + Failed to create the destination file. Reason: %1 出力ファイルを作成できませんでした。理由: %1 - + Import RSS rules RSSルールのインポート - + Failed to import the selected rules file. Reason: %1 選択したルールファイルをインポートできませんでした。理由: %1 - + Add new rule... 新しいルールを追加... - + Delete rule ルールを削除 - + Rename rule... ルール名を変更... - + Delete selected rules 選択したルールを削除 - + Clear downloaded episodes... ダウンロードしたエピソードをクリア... - + Rule renaming ルール名の変更 - + Please type the new rule name 新しいルール名を入力してください - + Clear downloaded episodes ダウンロードしたエピソードのクリア - + Are you sure you want to clear the list of downloaded episodes for the selected rule? 選択されたルールのダウンロード済みエピソードのリストをクリアしますか? - + Regex mode: use Perl-compatible regular expressions 正規表現モード: Perl互換の正規表現を使用します - - + + Position %1: %2 位置 %1: %2 - + Wildcard mode: you can use ワイルドカードモード: 以下の文字が使用できます - - + + Import error インポートエラー - + Failed to read the file. %1 ファイル(%1)を読み込めませんでした。 - + ? to match any single character "?"は任意の1文字にマッチします - + * to match zero or more of any characters "*"は任意の0文字以上の文字列にマッチします - + Whitespaces count as AND operators (all words, any order) 空白は"AND"演算子とみなされます(すべての単語、語順は任意) - + | is used as OR operator "|"は"OR"演算子として使用します - + If word order is important use * instead of whitespace. 語順が重要な場合は、空白ではなく'"*"を使用します。 - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) 空の"%1"を指定した場合(例: %2)は、 - + will match all articles. すべての記事にマッチします。 - + will exclude all articles. すべての記事にマッチしません。 @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Torrentの再開フォルダー(%1)を作成できません。 @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 再開データの解析ができませんでした: 無効なフォーマット - - + + Cannot parse torrent info: %1 Torrent情報の解析ができませんでした: %1 - + Cannot parse torrent info: invalid format Torrent情報の解析ができませんでした: 無効なフォーマット - + Mismatching info-hash detected in resume data 再開データでinfoハッシュの不一致が検出されました - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. %1にTorrentのメタデータを保存できませんでした。 エラー: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. %1 にTorrentの再開データを保存できませんでした。 エラー: %2。 @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 再開データの解析ができませんでした: %1 - + Resume data is invalid: neither metadata nor info-hash was found 再開データが無効です。メタデータもinfoハッシュも見つかりませんでした。 - + Couldn't save data to '%1'. Error: %2 %1 にデータを保存できませんでした。 エラー: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. 見つかりません。 - + Couldn't load resume data of torrent '%1'. Error: %2 Torrent(%1)の再開データを読み込めませんでした。 エラー: %2 - - + + Database is corrupted. データベースが破損しています。 - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. ログ先行書き込み(WAL)ジャーナリングモードを有効にできませんでした。エラー: %1 - + Couldn't obtain query result. クエリーの結果を取得できませんでした。 - + WAL mode is probably unsupported due to filesystem limitations. WALモードは、ファイルシステムの制限により、おそらくサポートされていません。 - + + + Cannot parse resume data: %1 + 再開データの解析ができませんでした: %1 + + + + + Cannot parse torrent info: %1 + Torrent情報の解析ができませんでした: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 トランザクションを開始できませんでした。エラー: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Torrentのメタデータを保存できませんでした。 エラー: %1。 - + Couldn't store resume data for torrent '%1'. Error: %2 Torrent(%1)の再開データを保存できませんでした。 エラー: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Torrent(%1)の再開データを削除できませんでした。 エラー: %2 - + Couldn't store torrents queue positions. Error: %1 Torrentキューの位置を保存できませんでした。エラー: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 分散ハッシュテーブル(DHT)サポート: %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 ローカルピア検出サポート: %1 - + Restart is required to toggle Peer Exchange (PeX) support ピア交換(PeX)サポートに切り換えるには再起動が必要です - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrent(%1)が再開できませんでした。理由: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrentが再開できませんでした: 不整合なTorrent IDが検出されました。 Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" 不整合なデータが検出されました: 設定ファイルからカテゴリーが欠落しています。カテゴリーは復元されますが、設定はデフォルトにリセットされます。 Torrent: "%1". カテゴリー: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" 不整合なデータが検出されました: 無効なカテゴリーです。 Torrent: "%1". カテゴリー: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" 復元されたカテゴリーの保存パスとTorrentの現在の保存パスの不一致が検出されました。Torrentは手動モードに切り替わりました。 Torrent: "%1". カテゴリー: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" 不整合なデータが検出されました: 設定ファイルからタグが欠落しています。タグは復元されます。 Torrent: "%1". タグ: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" 不整合なデータが検出されました: 無効なタグです。 Torrent: "%1". タグ: "%2" - + System wake-up event detected. Re-announcing to all the trackers... システムのウェイクアップイベントが検出されました。すべてのトラッカーに再アナウンス中です... - + Peer ID: "%1" ピアID: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 ピア交換(PeX)サポート: %1 - - + + Anonymous mode: %1 匿名モード: %1 - - + + Encryption support: %1 暗号化サポート: %1 - - + + FORCED 強制 - + Could not find GUID of network interface. Interface: "%1" ネットワークインターフェースのGUIDが見つかりませんでした。インターフェース: "%1" - + Trying to listen on the following list of IP addresses: "%1" 次のIPアドレスリストで接続待ちを試行しています: "%1" - + Torrent reached the share ratio limit. Torrentが共有比制限に達しました。 - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrentが削除されました。 - - - - - - Removed torrent and deleted its content. - Torrentとそのコンテンツが削除されました。 - - - - - - Torrent paused. - Torrentが一時停止されました。 - - - - - + Super seeding enabled. スーパーシードが有効になりました。 - + Torrent reached the seeding time limit. Torrentがシード時間制限に達しました。 - + Torrent reached the inactive seeding time limit. Torrentが非稼働シードの時間制限に達しました。 - + Failed to load torrent. Reason: "%1" Torrentが読み込めませんでした。 理由: "%1" - + I2P error. Message: "%1". I2Pエラー。 メッセージ: %1 - + UPnP/NAT-PMP support: ON UPnP/NAT-PMPサポート: ON - + + Saving resume data completed. + 再開データが保存されました。 + + + + BitTorrent session successfully finished. + BitTorrentセッションが正常に終了しました。 + + + + Session shutdown timed out. + セッションのシャットダウンがタイムアウトしました。 + + + + Removing torrent. + Torrentを削除しています。 + + + + Removing torrent and deleting its content. + Torrentとそのコンテンツを削除しています。 + + + + Torrent stopped. + Torrentが停止されました。 + + + + Torrent content removed. Torrent: "%1" + Torrent(%1)のコンテンツが削除されました。 + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Torrent(%1)のコンテンツが削除できませんでした。理由: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent(%1)が削除されました。 + + + + Merging of trackers is disabled + トラッカーのマージは無効です + + + + Trackers cannot be merged because it is a private torrent + プライベートTorrentのため、トラッカーはマージできません。 + + + + Trackers are merged from new source + トラッカーは新しいソースからマージされます。 + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMPサポート: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrentがエクスポートできませんでした。 Torrent: "%1". 保存先: "%2". 理由: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 再開データの保存が中断されました。未処理Torrent数: %1 - + The configured network address is invalid. Address: "%1" 構成されたネットワークアドレスが無効です。 アドレス: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" 接続待ちをする構成されたネットワークアドレスが見つかりませんでした。アドレス: "%1" - + The configured network interface is invalid. Interface: "%1" 構成されたネットワークインターフェースが無効です。 インターフェース: "%1" - + + Tracker list updated + トラッカーリストが更新されました + + + + Failed to update tracker list. Reason: "%1" + トラッカーリストが更新できませんでした。 理由: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" アクセス禁止IPアドレスのリストを適用中に無効なIPは除外されました。IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrentにトラッカーが追加されました。 Torrent: "%1". トラッカー: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Torrentからトラッカーが削除されました。 Torrent: "%1". トラッカー: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" TorrentにURLシードが追加されました。 Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" TorrentからURLシードが削除されました。 Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrentが一時停止されました。 Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Torrent(%1)の部分ファイルが削除できませんでした。理由: "%2" - + Torrent resumed. Torrent: "%1" Torrentが再開されました。 Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrentのダウンロードが完了しました。Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrentの移動がキャンセルされました。 Torrent: "%1". 移動元: "%2". 移動先: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent(%1)が停止されました。 + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Torrentの移動準備ができませんでした。Torrent: "%1". 移動元: "%2". 移動先: "%3". 理由: Torrentは現在移動先に移動中です。 - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Torrentの移動準備ができませんでした。Torrent: "%1". 移動元: "%2". 移動先: "%3". 理由: 両方のパスが同じ場所を指定しています - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrentの移動が実行待ちになりました。 Torrent: "%1". 移動元: "%2". 移動先: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrentの移動が開始されました。 Torrent: "%1". 保存先: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" カテゴリー設定が保存できませんでした。 ファイル: "%1". エラー: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" カテゴリー設定が解析できませんでした。 ファイル: "%1". エラー: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IPフィルターファイルが正常に解析されました。適用されたルール数: %1 - + Failed to parse the IP filter file IPフィルターファイルが解析できませんでした - + Restored torrent. Torrent: "%1" Torrentが復元されました。 Torrent: "%1" - + Added new torrent. Torrent: "%1" Torrentが追加されました。 Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrentのエラーです。Torrent: "%1". エラー: "%2" - - - Removed torrent. Torrent: "%1" - Torrentが削除されました。 Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrentとそのコンテンツが削除されました。 Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + TorrentにSSLパラメーターがありません。 Torrent: "%1". メッセージ: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" ファイルエラーアラート。 理由: %3. Torrent: "%1". ファイル: "%2". - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMPポートをマッピングできませんでした。メッセージ: %1 - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMPポートのマッピングに成功しました。メッセージ: %1 - + IP filter this peer was blocked. Reason: IP filter. IPフィルター - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). フィルター適用ポート(%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). 特権ポート(%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URLシードに接続できませんでした。Torrent: "%1". URL: "%2". エラー: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrentセッションで深刻なエラーが発生しました。理由: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5プロキシエラー。アドレス: %1。メッセージ: %2 - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 混在モード制限 - + Failed to load Categories. %1 カテゴリー(%1)を読み込めませんでした。 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" カテゴリー設定が読み込めませんでした。 ファイル: "%1". エラー: 無効なデータ形式 - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrentは削除されましたが、そのコンテンツや部分ファイルは削除できませんでした。 Torrent: "%1". エラー: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1が無効 - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1が無効 - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URLシードの名前解決ができませんでした。Torrent: "%1". URL: "%2". エラー: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" URLシードからエラーメッセージを受け取りました。 Torrent: "%1". URL: "%2". メッセージ: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" 接続待ちに成功しました。IP: "%1". ポート: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" 接続待ちに失敗しました。IP: "%1". ポート: "%2/%3". 理由: "%4" - + Detected external IP. IP: "%1" 外部IPを検出しました。 IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" エラー: 内部のアラートキューが一杯でアラートがドロップしているため、パフォーマンスが低下する可能性があります。ドロップしたアラートのタイプ: "%1". メッセージ: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrentが正常に移動されました。 Torrent: "%1". 保存先: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrentが移動できませんでした。 Torrent: "%1". 保存元: "%2". 保存先: "%3". 理由: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + シードを開始できませんでした。 BitTorrent::TorrentCreator - + Operation aborted 操作が中断されました - - + + Create new torrent file failed. Reason: %1. 新しいTorrentファイルを作成できませんでした。 理由: %1。 @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 ピア(%1)をTorrent(%2)に追加できませんでした。 理由: %3 - + Peer "%1" is added to torrent "%2" ピア(%1)がTorrent(%2)に追加されました - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. 想定外のデータが検出されました。Torrent: %1. データ: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. ファイルに書き込めませんでした。理由: "%1". Torrentは「アップロードのみ」モードになりました。 - + Download first and last piece first: %1, torrent: '%2' 最初と最後のピースを先にダウンロード: %1, Torrent: '%2' - + On On - + Off Off - + Failed to reload torrent. Torrent: %1. Reason: %2 Torrent(%1)がリロードできませんでした。理由: "%2" - + Generate resume data failed. Torrent: "%1". Reason: "%2" Torrent(%1)の再開データを生成できませんでした。エラー: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrentが復元できませんでした。ファイルが移動されたか、ストレージにアクセスできない可能性があります。Torrent: "%1". 理由: "%2" - + Missing metadata メタデータ不足 - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Torrent(%1)のファイル(%2)のファイル名を変更できませんでした。 理由: "%3" - + Performance alert: %1. More info: %2 パフォーマンスアラート: %1. 詳細: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' 引数'%1'は'%1=%2'の構文で指定する必要があります - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' 引数'%1'は'%1=%2'の構文で指定する必要があります - + Expected integer number in environment variable '%1', but got '%2' 環境変数'%1'は整数であることを期待していますが'%2'が得られました - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - 引数'%1'は'%1=%2'の構文で指定する必要があります - - - + Expected %1 in environment variable '%2', but got '%3' 環境変数'%2'は%1であることを期待していますが'%3'が得られました - - + + %1 must specify a valid port (1 to 65535). %1には正しいポート番号(1から65535)を設定してください。 - + Usage: 使用法: - + [options] [(<filename> | <url>)...] [オプション] [(<filename> | <url>)...] - + Options: オプション: - + Display program version and exit プログラムのバージョンを表示して終了する - + Display this help message and exit このヘルプメッセージを表示して終了する - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + 引数'%1'は'%1=%2'の構文で指定する必要があります + + + Confirm the legal notice 免責事項を確認する - - + + port ポート番号 - + Change the WebUI port WebUIのポート番号を変更する - + Change the torrenting port Torrent用のポート番号を変更する - + Disable splash screen スプラッシュ・スクリーンを表示しません - + Run in daemon-mode (background) デーモンモード(バックグラウンド)で実行します - + dir Use appropriate short form or abbreviation of "directory" ディレクトリ - + Store configuration files in <dir> 設定ファイルは <dir> に保存されます - - + + name 名前 - + Store configuration files in directories qBittorrent_<name> 設定ファイルはディレクトリ qBittorrent_<name> に保存されます - + Hack into libtorrent fastresume files and make file paths relative to the profile directory libtorrentのfastresumeファイルをハックして、プロファイルディレクトリーに相対的なファイルパスを作成します - + files or URLs ファイルまたはURL - + Download the torrents passed by the user ユーザーから渡されたTorrentをダウンロード - + Options when adding new torrents: 新規Torrentを追加したときのオプション: - + path パス - + Torrent save path Torrentの保存パス - - Add torrents as started or paused - 追加時に開始するかしないか + + Add torrents as running or stopped + Torrentを実行中または停止中で追加する - + Skip hash check ハッシュチェックを省略する - + Assign torrents to category. If the category doesn't exist, it will be created. Torrentにカテゴリーを割り当てます。存在しないカテゴリーは作成されます。 - + Download files in sequential order ファイルのピースを先頭から順番にダウンロードします - + Download first and last pieces first 先頭と最後のピースを先にダウンロード - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Torrentを追加するときに「Torrentの追加」ダイアログを表示するかどうかを指定します。 - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: オプションの値は環境変数から取られます。オプション名'parameter-name'の値に対応する環境変数名は'QBT_PARAMETER_NAME' (大文字、'-'は'_'に置き換え)です。フラグ値を渡す場合は、値に'1'または'TRUE'を指定します。スプラッシュスクリーンを表示しないようにするには: - + Command line parameters take precedence over environment variables コマンドライン引数は環境変数より優先されます - + Help ヘルプ @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Torrentの再開 + Start torrents + Torrentを開始する - Pause torrents - Torrentの停止 + Stop torrents + Torrentを停止する @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... 編集... - + Reset リセット + + + System + システム + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 カスタムテーマのスタイルシートが読み込めませんでした。%1 - + Failed to load custom theme colors. %1 カスタムテーマのカラーが読み込めませんでした。%1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 デフォルトテーマのカラーが読み込めませんでした。%1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - ファイルを完全に削除する + Also remove the content files + コンテンツファイルも削除する - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? '%1'を転送リストから削除してもよろしいですか? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? これらのTorrent(%1)を転送リストから削除してもよろしいですか? - + Remove 削除 @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also URLからダウンロード - + Add torrent links Torrentリンクを追加する - + One link per line (HTTP links, Magnet links and info-hashes are supported) 1行に1リンク(HTTPリンク、マグネットリンク、infoハッシュに対応) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ダウンロード - + No URL entered URLが入力されていません - + Please type at least one URL. 最低でも1行のURLを入力してください。 @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 解析エラー: フィルターファイルは有効なPeerGuardian P2Bファイルではありません。 + + FilterPatternFormatMenu + + + Pattern Format + パターン形式 + + + + Plain text + プレーンテキスト + + + + Wildcards + ワイルドカード + + + + Regular expression + 正規表現 + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrentをダウンロード中... ソース: "%1" - - Trackers cannot be merged because it is a private torrent - プライベートTorrentのため、トラッカーはマージできません。 - - - + Torrent is already present Torrentはすでに存在します - + + Trackers cannot be merged because it is a private torrent. + プライベートTorrentのため、トラッカーはマージできません。 + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent(%1)はすでに転送リストにあります。新しいソースからトラッカーをマージしますか? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. データベースの破損: データセクションが見つかりません。 @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTPリクエストのサイズが制限を超えたため、ソケットを閉じています。制限: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" 不正なHTTPリクエストメソッドのため、ソケットを閉じています。 IP: %1. メソッド: "%2" - + Bad Http request, closing socket. IP: %1 不正なHTTPリクエストのため、ソケットを閉じています。 IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... 参照... - + Reset リセット - + Select icon アイコンの選択 - + Supported image files 対応する画像ファイル + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + 電源管理で適切なD-Busインターフェースが見つかりました。インターフェース: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + 電源管理エラー。 操作: %1. エラー: %2 + + + + Power management unexpected error. State: %1. Error: %2 + 電源管理の予期せぬエラー。 状態: %1. エラー: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1はブロックされました。理由: %2 - + %1 was banned 0.0.0.0 was banned %1 はアクセス禁止にされました @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 は、単独で指定する必要があります。 - + Run application with -h option to read about command line parameters. -h オプションを指定して起動するとコマンドラインパラメーターを表示します。 - + Bad command line 不正なコマンドライン - + Bad command line: 不正なコマンドライン: - + An unrecoverable error occurred. 回復不能なエラーが発生しました。 + - qBittorrent has encountered an unrecoverable error. qBittorrentで回復不能なエラーが発生しました。 - + You cannot use %1: qBittorrent is already running. %1を使用できません: qBittorrentはすでに実行中です。 - + Another qBittorrent instance is already running. 別のqBittorrentインスタンスがすでに実行されています。 - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. 予期せぬqBittorrentインスタンスが見つかりました。このインスタンスを終了します。現在のプロセスID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. デーモン化時のエラー。 理由: "%1". エラーコード: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 編集(&E) - + &Tools ツール(&T) - + &File ファイル(&F) - + &Help ヘルプ(&H) - + On Downloads &Done ダウンロード完了時(&D) - + &View 表示(&V) - + &Options... オプション(&O)... - - &Resume - 再開(&R) - - - + &Remove 削除(&R) - + Torrent &Creator Torrentクリエーター(&C) - - + + Alternative Speed Limits 代替速度制限 - + &Top Toolbar トップツールバー(&T) - + Display Top Toolbar トップツールバーを表示します - + Status &Bar ステータスバー(&B) - + Filters Sidebar フィルターサイドバー - + S&peed in Title Bar タイトルバーに速度を表示(&P) - + Show Transfer Speed in Title Bar タイトルバーに転送速度を表示します - + &RSS Reader RSSリーダー(&R) - + Search &Engine 検索エンジン(&E) - + L&ock qBittorrent qBittorrentをロック(&O) - + Do&nate! 寄付(&N) - + + Sh&utdown System + システムをシャットダウン(&U) + + + &Do nothing なにもしない(&D) - + Close Window ウィンドウを閉じる - - R&esume All - すべて再開(&E) - - - + Manage Cookies... クッキーを管理... - + Manage stored network cookies 保存されたネットワーククッキーを管理します - + Normal Messages 通常メッセージ - + Information Messages 情報メッセージ - + Warning Messages 警告メッセージ - + Critical Messages 緊急メッセージ - + &Log ログ(&L) - + + Sta&rt + 開始(&R) + + + + Sto&p + 停止(&P) + + + + R&esume Session + セッションの再開(&E) + + + + Pau&se Session + セッションの一時停止(&S) + + + Set Global Speed Limits... グローバル速度制限の設定 - + Bottom of Queue キューの最下部へ - + Move to the bottom of the queue キューの最下部へ移動 - + Top of Queue キューの 最上部へ - + Move to the top of the queue キューの最上部へ移動 - + Move Down Queue キューの下へ - + Move down in the queue キュー内で下に移動します - + Move Up Queue キューの上へ - + Move up in the queue キュー内で上に移動します - + &Exit qBittorrent qBittorrentを終了(&E) - + &Suspend System システムをサスペンド(&S) - + &Hibernate System システムをハイバネート(&H) - - S&hutdown System - システムをシャットダウン(&H) - - - + &Statistics 統計情報(&S) - + Check for Updates アップデートをチェック - + Check for Program Updates プログラムのアップデートを確認する - + &About qBittorrentについて(&A) - - &Pause - 停止(&P) - - - - P&ause All - すべて一時停止(&A) - - - + &Add Torrent File... Torrentファイルを追加(&A)... - + Open 開く - + E&xit 終了(&X) - + Open URL URLを開く - + &Documentation ドキュメント(&D) - + Lock ロック - - - + + + Show 表示 - + Check for program updates プログラムのアップデートを確認する - + Add Torrent &Link... Torrentリンクを追加(&L)... - + If you like qBittorrent, please donate! qBittorrentを気に入っていただけたら、ぜひ寄付をお願いします。 - - + + Execution Log 実行ログ - + Clear the password パスワードのクリア - + &Set Password パスワードの設定(&S) - + Preferences 設定 - + &Clear Password パスワードのクリア(&C) - + Transfers 転送 - - + + qBittorrent is minimized to tray qBittorrentはシステムトレイに最小化されました - - - + + + This behavior can be changed in the settings. You won't be reminded again. この動作は設定から変更できます。この通知は次回からは表示されません。 - + Icons Only アイコンのみ - + Text Only 文字のみ - + Text Alongside Icons アイコンの横に文字 - + Text Under Icons アイコンの下に文字 - + Follow System Style システムのスタイルに従う - - + + UI lock password UIのロックに使用するパスワード - - + + Please type the UI lock password: UIのロックに使用するパスワードを入力してください: - + Are you sure you want to clear the password? パスワードをクリアしてもよろしいですか? - + Use regular expressions 正規表現を使用 - + + + Search Engine + 検索エンジン + + + + Search has failed + 検索に失敗しました + + + + Search has finished + 検索完了 + + + Search 検索 - + Transfers (%1) 転送 (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrentがアップデートされました。反映には再起動が必要です。 - + qBittorrent is closed to tray qBittorrentはシステムトレイに最小化されました。 - + Some files are currently transferring. いくつかのファイルが現在転送中です。 - + Are you sure you want to quit qBittorrent? qBittorrentを終了しますか? - + &No いいえ(&N) - + &Yes はい(&Y) - + &Always Yes 常に「はい」(&A) - + Options saved. オプションは保存されました。 - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [一時停止] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Pythonインストーラーをダウンロードできませんでした。エラー: %1。 +手動でインストールしてください。 + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Pythonインストーラーの名前を変更できませんでした。変更前: "%1". 変更後: "%2". + + + + Python installation success. + Pythonのインストールに成功しました。 + + + + Exit code: %1. + 終了コード: %1. + + + + Reason: installer crashed. + 理由: インストーラーがクラッシュしました。 + + + + Python installation failed. + Pythonをインストールできませんでした。 + + + + Launching Python installer. File: "%1". + Pythonインストーラーを起動中。ファイル: "%1". + + + + Missing Python Runtime Pythonのランタイムが見つかりません - + qBittorrent Update Available qBittorrentのアップデートがあります - + 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がインストールされていません。 - - + + Old Python Runtime 古いPythonのランタイム - + A new version is available. 最新版が利用可能です。 - + Do you want to download %1? %1をダウンロードしますか? - + Open changelog... 変更履歴を開く... - + No updates available. You are already using the latest version. アップデートはありません。 すでに最新バージョンを使用しています。 - + &Check for Updates アップデートの確認(&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Python(%1)が最低要件の%2より古いバージョンです。 今すぐ新しいバージョンをインストールしますか? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. 使用中のPythonバージョン(%1)が古すぎます。検索エンジンを使用するには、最新バージョンにアップグレードしてください。 最低要件: %2 - + + Paused + 停止 + + + Checking for Updates... アップデートを確認中... - + Already checking for program updates in the background すでにバックグラウンドでプログラムのアップデートをチェックしています - + + Python installation in progress... + Pythonをインストール中... + + + + Failed to open Python installer. File: "%1". + Pythonインストーラーを開けませんでした。ファイル: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + PythonインストーラーのMD5ハッシュのチェックが失敗しました。 ファイル: "%1". 結果のハッシュ: "%2". 正しいハッシュ: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + PythonインストーラーのSHA3-512ハッシュのチェックが失敗しました。 ファイル: "%1". 結果のハッシュ: "%2". 正しいハッシュ: "%3". + + + Download error ダウンロードエラー - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Pythonのセットアップをダウンロードできませんでした。理由: %1。 -手動でインストールしてください。 - - - - + + Invalid password 無効なパスワード - + Filter torrents... Torrentをフィルター... - + Filter by: フィルター: - + The password must be at least 3 characters long パスワードは、最低でも3文字以上が必要です - - - + + + RSS (%1) RSS (%1) - + 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の終了 - + Open Torrent Files Torrentファイルを開く - + Torrent Files Torrentファイル @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSLエラー, URL: "%1", エラ=: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSLエラーを無視: URL: "%1", エラー: "%2" @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 接続できませんでした。認識できない応答: %1 - + Authentication failed, msg: %1 認証に失敗しました。メッセージ: %1 - + <mail from> was rejected by server, msg: %1 <mail from> がサーバに拒否されました。メッセージ: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> がサーバに拒否されました。メッセージ: %1 - + <data> was rejected by server, msg: %1 <data> がサーバに拒否されました。メッセージ: %1 - + Message was rejected by the server, error: %1 メッセージがサーバに拒否されました。エラー: %1 - + Both EHLO and HELO failed, msg: %1 EHLOとHELOの両方が失敗しました。メッセージ: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTPサーバーが[CRAM-MD5|PLAIN|LOGIN]のいずれもサポートしていないようです。おそらく失敗しますが、認証をスキップしています... サーバー認証モード: %1 - + Email Notification Error: %1 メール通知エラー: %1 @@ -5604,299 +5928,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced 高度 - + Customize UI Theme... UIテーマをカスタマイズ... - + Transfer List 転送リスト - + Confirm when deleting torrents Torrentを削除するときは確認する - - Shows a confirmation dialog upon pausing/resuming all the torrents - すべてのTorrentを一時停止/再開する場合は、確認ダイアログを表示します - - - - Confirm "Pause/Resume all" actions - "すべて一時停止/すべて再開"のときは確認する - - - + Use alternating row colors In table elements, every other row will have a grey background. 1行おきに色をつける - + Hide zero and infinity values ゼロまたは無限の値を表示しない - + Always 常に - - Paused torrents only - 停止中のTorrentだけ - - - + Action on double-click ダブルクリック時の動作 - + Downloading torrents: ダウンロード中のTorrent: - - - Start / Stop Torrent - Torrentの開始/停止 - - - - + + Open destination folder 保存先のフォルダーを開く - - + + No action 何もしない - + Completed torrents: 完了したTorrent: - + Auto hide zero status filters 状況がゼロのフィルターを自動的に非表示にする - + Desktop デスクトップ - + Start qBittorrent on Windows start up Windowsの起動時にqBittorrentを起動する - + Show splash screen on start up 起動時にスプラッシュスクリーンを表示する - + Confirmation on exit when torrents are active Torrentが稼働中のときは終了時に確認する - + Confirmation on auto-exit when downloads finish ダウンロード完了のときに自動終了を確認する - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>.torrentファイルやマグネットリンクの規定のプログラムをqBittorrentに設定するには、<br/><span style=" font-weight:600;">コントロールパネル</span>の</span>規定のプログラム<span style=" font-weight:600;">ダイアログを使用します。</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrentのコンテンツのレイアウト: - + Original オリジナル - + Create subfolder サブフォルダーを作成する - + Don't create subfolder サブフォルダーを作成しない - + The torrent will be added to the top of the download queue Torrentはダウンロードキューの先頭に追加されます - + Add to top of queue The torrent will be added to the top of the download queue キューの先頭に追加する - + When duplicate torrent is being added 重複したTorrentの追加時 - + Merge trackers to existing torrent 既存のTorrentにトラッカーをマージする - + Keep unselected files in ".unwanted" folder 選択されていないファイルを".unwanted"フォルダーに保存する - + Add... 追加... - + Options.. オプション... - + Remove 削除 - + Email notification &upon download completion ダウンロード完了時にメールで通知する(&U) - + + Send test email + テストメールを送信 + + + + Run on torrent added: + Torrentの追加時に実行: + + + + Run on torrent finished: + Torrentの完了時に実行: + + + Peer connection protocol: ピア接続プロトコル: - + Any すべて - + I2P (experimental) I2P (実験的) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p> &quot;混合モード &quot;を有効にすると、I2P Torrentはトラッカー以外のソースからピアを取得し、通常のIPに接続し、匿名化を提供しません。これは、I2Pの匿名化には興味はないが、I2Pピアに接続できるようにしたい場合に便利です。</p></body></html> - - - + Mixed mode 混合モード - - Some options are incompatible with the chosen proxy type! - 一部のオプションは、選択したプロキシタイプと互換性がありません。 - - - + If checked, hostname lookups are done via the proxy チェックを入れると、ホスト名の名前解決はプロキシ経由で行われます - + Perform hostname lookup via proxy プロキシー経由でホスト名の名前解決を行う - + Use proxy for BitTorrent purposes BitTorrentにプロキシを使用する - + RSS feeds will use proxy RSSフィードでプロキシを使用します - + Use proxy for RSS purposes RSSにプロキシを使用する - + Search engine, software updates or anything else will use proxy 検索エンジン、ソフトウェアの更新、その他にプロキシを使用します - + Use proxy for general purposes 全般にプロキシを使用する - + IP Fi&ltering IPフィルタリング(&L) - + Schedule &the use of alternative rate limits 代替速度制限を使用するスケジュール(&T) - + From: From start time 開始: - + To: To end time 終了: - + Find peers on the DHT network DHTネットワーク上のピアを検出します - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption 暗号化を無効にする: プロトコルの暗号化がされていないピアにだけ接続します - + Allow encryption 暗号化を許可する - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">詳細情報</a>) - + Maximum active checking torrents: Torrentをチェックする最大アクティブ数 - + &Torrent Queueing Torrentキュー(&T) - + When total seeding time reaches 合計シード時間に達したとき - + When inactive seeding time reaches 非稼働シード時間に達したとき - - A&utomatically add these trackers to new downloads: - 以下のトラッカーを新しいダウンロードに自動追加する(&U): - - - + RSS Reader RSSリーダー - + Enable fetching RSS feeds RSSフィードの取得を有効にする - + Feeds refresh interval: フィードの更新間隔: - + Same host request delay: - + 同じホストへのリクエストの遅延: - + Maximum number of articles per feed: フィードごとの記事数の上限: - - - + + + min minutes - + Seeding Limits シードの制限 - - Pause torrent - Torrentを一時停止 - - - + Remove torrent Torrentを削除 - + Remove torrent and its files Torrentとそのファイルを削除 - + Enable super seeding for torrent Torrentをスーパーシードにする - + When ratio reaches 次の比率に達したとき - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Torrentを停止する + + + + A&utomatically append these trackers to new downloads: + 新しいダウンロードに以下のトラッカーを自動的に付加する(&U): + + + + Automatically append trackers from URL to new downloads: + 新しいダウンロードにURLから自動的にトラッカーを追加する: + + + + URL: + URL: + + + + Fetched trackers + 取得されたトラッカー + + + + Search UI + 検索UI + + + + Store opened tabs + 開いたタブを保存する + + + + Also store search results + 検索結果も保存する + + + + History length + 履歴数 + + + RSS Torrent Auto Downloader RSS Torrent自動ダウンローダー - + Enable auto downloading of RSS torrents RSS Torrentの自動ダウンロードを有効にする - + Edit auto downloading rules... 自動ダウンロードルールを編集... - + RSS Smart Episode Filter RSSスマートエピソードフィルター - + Download REPACK/PROPER episodes REPACK/PROPERエピソードをダウンロードする - + Filters: フィルター: - + Web User Interface (Remote control) ウェブユーザーインターフェース(遠隔操作) - + IP address: IPアドレス: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6053,42 +6406,37 @@ IPv4、またはIPv6アドレスを指定します。 "*"でIPv4とIPv6のすべてのアドレスが指定できます。 - + Ban client after consecutive failures: 続けて失敗した場合、クライアントをアクセス禁止: - + Never しない - + ban for: アクセス禁止時間: - + Session timeout: セッションのタイムアウト - + Disabled 無効 - - Enable cookie Secure flag (requires HTTPS) - CookieのSecureフラグを有効にする(HTTPSが必要) - - - + Server domains: サーバードメイン: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6101,442 +6449,483 @@ DNSリバインディング攻撃を防ぐために、Web UIサーバーが使 複数のエントリに分けるには';'を使用します。ワイルドカード'*'を使用できます。 - + &Use HTTPS instead of HTTP HTTPの代わりにHTTPSを使用する(&U) - + Bypass authentication for clients on localhost ローカルホストではクライアントの認証を行わない - + Bypass authentication for clients in whitelisted IP subnets ホワイトリストに登録されたIPサブネット内のクライアントは認証を行わない - + IP subnet whitelist... IPサブネットのホワイトリスト... - + + Use alternative WebUI + 別のWebUIを使用する + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. 転送クライアントアドレス(X-Forwarded-For ヘッダー)を使用するためのリバースプロキシのIP(または 0.0.0.0/24 などのサブネット)を指定します。複数項目は';'で区切ります。 - + Upda&te my dynamic domain name 使用中のダイナミックドメイン名を更新する(&T) - + Minimize qBittorrent to notification area qBittorrentを最小化したときは通知エリアに入れる - + + Search + 検索 + + + + WebUI + WebUI + + + Interface インターフェース - + Language: 言語: - + + Style: + スタイル: + + + + Color scheme: + 配色: + + + + Stopped torrents only + 停止中のTorrentのみ + + + + + Start / stop torrent + Torrentの開始/停止 + + + + + Open torrent options dialog + Torrentオプションのダイアログを開く + + + Tray icon style: トレイアイコンのスタイル: - - + + Normal 標準 - + File association ファイルの関連付け - + Use qBittorrent for .torrent files ".torrent"ファイルにqBittorrentを使用する - + Use qBittorrent for magnet links マグネットリンクにqBittorrentを使用する - + Check for program updates プログラムのアップデートを確認する - + Power Management 電源管理 - + + &Log Files + ログファイル(&L) + + + Save path: 保存パス: - + Backup the log file after: 次のサイズでログをバックアップする: - + Delete backup logs older than: 次の期間を超えたバックアップログを削除する: - + + Show external IP in status bar + ステータスバーに外部IPを表示する + + + When adding a torrent Torrentの追加時 - + Bring torrent dialog to the front Torrentダイアログを前面に表示 - + + The torrent will be added to download list in a stopped state + Torrentは停止状態でダウンロードリストに追加されます + + + Also delete .torrent files whose addition was cancelled 追加をキャンセルした場合でも".torrent"ファイルが削除されます - + Also when addition is cancelled 追加がキャンセルされた場合でも削除する - + Warning! Data loss possible! 注意: データが失われる可能性があります。 - + Saving Management 保存管理 - + Default Torrent Management Mode: デフォルトのTorrent管理モード: - + Manual 手動 - + Automatic 自動 - + When Torrent Category changed: Torrentのカテゴリーが変更されたとき: - + Relocate torrent Torrentを再配置する - + Switch torrent to Manual Mode Torrentを手動モードに切り換える - - + + Relocate affected torrents 影響を受けるTorrentを再配置する - - + + Switch affected torrents to Manual Mode 影響を受けるTorrentを手動モードに切り換える - + Use Subcategories サブカテゴリーを使用する - + Default Save Path: デフォルトの保存パス: - + Copy .torrent files to: ".torrent"ファイルを次のパスにコピーする: - + Show &qBittorrent in notification area qBittorrentを通知エリアに表示する(&Q) - - &Log file - ログファイル(&L) - - - + Display &torrent content and some options Torrentのコンテンツといくつかのオプションを表示する(&T) - + De&lete .torrent files afterwards 追加後に".torrent"ファイルを削除する(&L) - + Copy .torrent files for finished downloads to: 完了した".torrent"ファイルを次のパスにコピーする: - + Pre-allocate disk space for all files すべてのファイルにディスク領域を事前に割り当てる - + Use custom UI Theme カスタムUIテーマを使用する - + UI Theme file: UIテーマファイル: - + Changing Interface settings requires application restart インターフェースの設定を変更するには、アプリケーションの再起動が必要です - + Shows a confirmation dialog upon torrent deletion Torrentの削除時に確認ダイアログを表示します - - + + Preview file, otherwise open destination folder ファイルをプレビューするか保存先フォルダーを開く - - - Show torrent options - Torrentのオプションを表示する - - - + Shows a confirmation dialog when exiting with active torrents 稼働中のTorrentがあるときに終了する場合、確認ダイアログを表示します - + When minimizing, the main window is closed and must be reopened from the systray icon 最小化するとメインウィンドウが閉じますので、システムトレイのアイコンから開き直す必要があります - + The systray icon will still be visible when closing the main window メインウィンドウを閉じてもシステムトレイにアイコンが表示されます - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrentを閉じたときは通知エリアに入れる - + Monochrome (for dark theme) モノクローム(ダークテーマ用) - + Monochrome (for light theme) モノクローム(ライトテーマ用) - + Inhibit system sleep when torrents are downloading Torrentのダウンロード中はシステムのスリープを禁止する - + Inhibit system sleep when torrents are seeding Torrentのシード中はシステムのスリープを禁止する - + Creates an additional log file after the log file reaches the specified file size ログファイルが指定したファイルサイズに達した後、追加のログファイルを作成します - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months ヶ月 - + years Delete backup logs older than 10 years - + Log performance warnings パフォーマンス警告を記録する - - The torrent will be added to download list in a paused state - Torrentは一時停止の状態でダウンロードリストに追加されます - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state ダウンロードを自動的に開始しない - + Whether the .torrent file should be deleted after adding it ".torrent"ファイルを追加後に削除するかどうか - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. ダウンロードを開始する前にディスクに総ファイルサイズを割り当て、断片化を最小限に抑えます。これはHDDだけに役立ちます。 - + Append .!qB extension to incomplete files 完了していないファイルに拡張子(.!qB)を付加する - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Torrentがダウンロードされたとき、その中にある".torrent"ファイルからTorrentを追加することを提案します - + Enable recursive download dialog 「再帰的ダウンロード」ダイアログを有効にする - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually 自動: Torrentの各種プロパティー(保存先など)は、関連付けられたカテゴリーに応じて決定されます 手動: Torrentの各種プロパティー(保存先など)は、手作業で割り当てる必要があります - + When Default Save/Incomplete Path changed: デフォルトの保存/未完了パスが変更されたとき: - + When Category Save Path changed: カテゴリーの保存パスが変更されたとき: - + Use Category paths in Manual Mode 手動モードでカテゴリーのパスを使用する - + Resolve relative Save Path against appropriate Category path instead of Default one 相対的な保存パスを、デフォルトのパスではなく適切なカテゴリーのパスで解決します - + Use icons from system theme システムテーマのアイコンを使用する - + Window state on start up: 起動時のウィンドウ状態: - + qBittorrent window state on start up 起動時のqBittorrentのウィンドウ状態 - + Torrent stop condition: Torrentの停止条件: - - + + None なし - - + + Metadata received メタデータを受信後 - - + + Files checked ファイルのチェック後 - + Ask for merging trackers when torrent is being added manually Torrentが手動で追加されるときにトラッカーのマージを求める - + Use another path for incomplete torrents: 未完了のTorrentは別のパスを使用する: - + Automatically add torrents from: 次のフォルダーからTorrentを自動的に追加する: - + Excluded file names 除外ファイル名 - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6565,771 +6954,812 @@ readme.txt: 正確なファイル名をフィルタリングします。 readme[0-9].txt: 'readme1.txt', 'readme2.txt'をフィルタリングしますが、'readme10.txt'はフィルタリングしません。 - + Receiver 受信者 - + To: To receiver 宛先(To): - + SMTP server: SMTPサーバー: - + Sender 送信者 - + From: From sender 差出人(From): - + This server requires a secure connection (SSL) このサーバーは安全な接続(SSL)を必要とする - - + + Authentication 認証 - - - - + + + + Username: ユーザー名: - - - - + + + + Password: パスワード: - + Run external program 外部プログラムの実行 - - Run on torrent added - Torrentの追加時に実行 - - - - Run on torrent finished - Torrentの完了時に実行 - - - + Show console window コンソールウィンドウを表示する - + TCP and μTP TCPとμTP - + Listening Port 接続待ちポート - + Port used for incoming connections: 受信接続に使用するポート: - + Set to 0 to let your system pick an unused port 0に設定すると、システムが未使用のポートを選択します - + Random ランダム - + Use UPnP / NAT-PMP port forwarding from my router ルーターからのポート転送にUPnP/NAT-PMPを使用する - + Connections Limits 接続制限 - + Maximum number of connections per torrent: Torrentごとの接続数の上限: - + Global maximum number of connections: グローバルの最大接続数: - + Maximum number of upload slots per torrent: Torrentごとのアップロードスロット数の上限: - + Global maximum number of upload slots: グローバルの最大アップロードスロット数: - + Proxy Server プロキシサーバー - + Type: タイプ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: ホスト: - - - + + + Port: ポート: - + Otherwise, the proxy server is only used for tracker connections 無効の場合、プロキシサーバーはトラッカー接続だけに使用されます - + Use proxy for peer connections ピア接続にプロキシを使用する - + A&uthentication 認証(&U) - - Info: The password is saved unencrypted - 注意: パスワードは暗号化せずに保存されます - - - + Filter path (.dat, .p2p, .p2b): フィルターのパス(.dat, .p2p, .p2b): - + Reload the filter フィルターの再読み込み - + Manually banned IP addresses... 手動でアクセス禁止にしたIPアドレス... - + Apply to trackers トラッカーに適用する - + Global Rate Limits グローバルの速度制限 - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/秒 - - + + Upload: アップロード: - - + + Download: ダウンロード: - + Alternative Rate Limits 代替速度制限 - + Start time 開始時刻 - + End time 終了時刻 - + When: 日: - + Every day 毎日 - + Weekdays 平日 - + Weekends 週末 - + Rate Limits Settings 速度制限の設定 - + Apply rate limit to peers on LAN LAN上のピアに速度制限を適用する - + Apply rate limit to transport overhead トランスポートオーバーヘッドに制限を適用する - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p> "混合モード"を有効にすると、I2P Torrentはトラッカー以外のソースからピアを取得し、通常のIPに接続し、匿名化を提供しません。これは、I2Pの匿名化には興味はないが、I2Pピアに接続できるようにしたい場合に便利です。</p></body></html> + + + Apply rate limit to µTP protocol µTPプロトコルに速度制限を適用する - + Privacy プライバシー - + Enable DHT (decentralized network) to find more peers DHT(分散ネットワーク)を有効にする(ピア検出数の向上) - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) BitTorrentの互換クライアント(µTorrentやVuzeなど)とピアを交換します - + Enable Peer Exchange (PeX) to find more peers ピア交換(PeX)を有効にする(ピア検出数の向上) - + Look for peers on your local network ローカルネットワーク内のピアを探します - + Enable Local Peer Discovery to find more peers ローカルピア検出(LSD)を有効にする(ピア検出数の向上) - + Encryption mode: 暗号化モード: - + Require encryption 暗号化を必須にする - + Disable encryption 暗号化を無効にする - + Enable when using a proxy or a VPN connection プロキシやVPN接続を使用する場合は有効にします - + Enable anonymous mode 匿名モードを有効にする - + Maximum active downloads: 稼働中ダウンロード数の上限: - + Maximum active uploads: 稼働中アップロード数の上限: - + Maximum active torrents: 稼働中Torrent数の上限: - + Do not count slow torrents in these limits これらの制限で遅いTorrentは数に含めない - + Upload rate threshold: アップロード速度のしきい値: - + Download rate threshold: ダウンロード速度のしきい値: - - - - + + + + sec seconds - + Torrent inactivity timer: Torrent非稼働中タイマー: - + then 次の処理を行う - + Use UPnP / NAT-PMP to forward the port from my router ルーターからのポート転送にUPnP/NAT-PMPを使用する - + Certificate: 証明書: - + Key: 鍵: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>証明書に関する情報</a> - + Change current password 現在のパスワードを変更 - - Use alternative Web UI - 別のWeb UIを使用する - - - + Files location: ファイルの場所: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">代替WebUIのリスト</a> + + + Security セキュリティー - + Enable clickjacking protection クリックジャッキング保護を有効にする - + Enable Cross-Site Request Forgery (CSRF) protection クロスサイトリクエストフォージェリ(CSRF)保護を有効にする - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + クッキーのSecure属性を有効にする(HTTPSまたはローカルホスト接続が必要) + + + Enable Host header validation ホストヘッダー検証を有効にする - + Add custom HTTP headers カスタムHTTPヘッダーを追加する - + Header: value pairs, one per line ヘッダー: 値 の対を1行に1つ - + Enable reverse proxy support リバースプロキシ対応を有効にする - + Trusted proxies list: 信頼プロキシリスト - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>リバースプロキシの設定例</a> + + + Service: サービス: - + Register 登録 - + Domain name: ドメイン名: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! これらのオプションを有効にすると、".torrent"ファイルが<strong>完全に削除</strong>されます。 - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog 2番目のオプション(「追加がキャンセルされた場合でも削除する」)を有効にした場合、「Torrentの追加」ダイアログで<strong>キャンセル</strong>を押したときでも".torrent"ファイルが<strong>削除されます</strong>。 - + Select qBittorrent UI Theme file qBittorrentのUIテーマファイルを選択 - + Choose Alternative UI files location 別のUIファイルの場所の選択 - + Supported parameters (case sensitive): 使用できるパラメーター(大文字と小文字を区別): - + Minimized 最小化 - + Hidden 非表示 - + Disabled due to failed to detect system tray presence システムトレイが検出できなかったため、無効にされました - + No stop condition is set. 停止条件は設定されていません。 - + Torrent will stop after metadata is received. メタデータの受信後、Torrentは停止します。 - Torrents that have metadata initially aren't affected. - はじめからメタデータを持つTorrentは影響を受けません。 - - - + Torrent will stop after files are initially checked. ファイルの初期チェック後、Torrentは停止します。 - + This will also download metadata if it wasn't there initially. また、メタデータが存在しない場合は、メタデータもダウンロードされます。 - + %N: Torrent name %N: Torrent名 - + %L: Category %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: 現在のトラッカー - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") ヒント: 空白文字でテキストが切れることを防ぐために、パラメーターはダブルクオーテーションで囲います(例: "%N") - + + Test email + テストメール + + + + Attempted to send email. Check your inbox to confirm success + メールを送信しました。受信箱を確認してください。 + + + (None) (なし) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds 「Torrent非稼働中タイマー」で指定された秒数の間、ダウンロードとアップロードの速度が指定されたしきい値を下回った場合に遅いTorrentとみなされます - + Certificate 証明書 - + Select certificate 証明書の選択 - + Private key 秘密鍵 - + Select private key 秘密鍵の選択 - + WebUI configuration failed. Reason: %1 WebUIが設定できませんでした。理由: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Windowsのダークモードとの最高の相性のために %1 を推奨します。 + + + + System + System default Qt style + システム + + + + Let Qt decide the style for this system + Qtにこのシステムのスタイルを決めさせます + + + + Dark + Dark color scheme + ダーク + + + + Light + Light color scheme + ライト + + + + System + System color scheme + システム + + + Select folder to monitor 監視するフォルダーを選択 - + Adding entry failed エントリーを追加できませんでした - + The WebUI username must be at least 3 characters long. Web UIのユーザー名は、最低3文字が必要です。 - + The WebUI password must be at least 6 characters long. WebUIのパスワードは、最低6文字が必要です。 - + Location Error 場所エラー - - + + Choose export directory エクスポートするディレクトリーの選択 - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well 最初のオプションが有効の場合、ダウンロードキューに正常に追加された後に".torrent"ファイルが<strong>削除されます</strong>。2番目のオプションが有効の場合、キューに追加されなくても削除されます。 これは、メニュー項目の「Torrentリンクの追加」から追加した場合<strong>だけでなく</strong>、<strong>ファイルタイプの関連付け</strong>で開いた場合も適用されます。 - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrentのUIテーマファイル(*.qbtheme config.json) - + %G: Tags (separated by comma) %G: タグ(カンマ区切り) - + %I: Info hash v1 (or '-' if unavailable) %I: Infoハッシュ v1(利用できない場合は'-') - + %J: Info hash v2 (or '-' if unavailable) %I: Infoハッシュ v2(利用できない場合は'-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (v1 Torrentはsha-1 infoハッシュ、v2/ハイプリッドTorrentは省略したsha-256 infoハッシュ) - - - + + + Choose a save directory 保存するディレクトリーの選択 - + Torrents that have metadata initially will be added as stopped. - + 最初からメタデータを持つTorrentは、停止状態で追加されます。 - + Choose an IP filter file IPフィルターファイルの選択 - + All supported filters すべての対応フィルター - + The alternative WebUI files location cannot be blank. 代替WebUIファイルの場所を空欄にすることはできません。 - + 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)が適用されました。 - + Preferences 設定 - + Time Error 時刻エラー - + The start time and the end time can't be the same. 開始と終了の時刻を同じにすることはできません。 - - + + Length Error 文字数エラー @@ -7337,241 +7767,246 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'をフィルタ PeerInfo - + Unknown 不明 - + Interested (local) and choked (peer) 欲しいピースあり(ローカル)/アップロード拒絶(ピア) - + Interested (local) and unchoked (peer) 欲しいピースあり(ローカル)/アップロード承諾(ピア) - + Interested (peer) and choked (local) 欲しいピースあり(ピア)/アップロード拒絶(ローカル) - + Interested (peer) and unchoked (local) 欲しいピースあり(ピア)/アップロード承諾(ローカル) - + Not interested (local) and unchoked (peer) 欲しいピースなし(ローカル)/アップロード承諾(ピア) - + Not interested (peer) and unchoked (local) 欲しいピースなし(ピア)/アップロード承諾(ローカル) - + Optimistic unchoke 楽観的アンチョーク - + Peer snubbed ピアがスナッブ - + Incoming connection 受信接続 - + Peer from DHT DHTから取得したピア - + Peer from PEX PEXから取得したピア - + Peer from LSD LSDから取得したピア - + Encrypted traffic 暗号化されたトラフィック - + Encrypted handshake 暗号化されたハンドシェイク + + + Peer is using NAT hole punching + ピアはNATホールパンチグを使用 + PeerListWidget - + Country/Region 国/地域 - + IP/Address IP/アドレス - + Port ポート - + Flags フラグ - + Connection 接続 - + Client i.e.: Client application クライアント - + Peer ID Client i.e.: Client resolved from Peer ID ピアIDのクライアント - + 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. 適合性 - + Files i.e. files that are being downloaded right now ファイル - + Column visibility 表示する列 - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします - + Add peers... ピアを追加... - - + + Adding peers ピアの追加 - + Some peers cannot be added. Check the Log for details. 一部のピアを追加できません。詳細はログを参照してください。 - + Peers are added to this torrent. このTorrentにピアを追加しました。 - - + + Ban peer permanently 恒久的にピアをアクセス禁止にする - + Cannot add peers to a private torrent プライベートTorrentにはピアを追加できません - + Cannot add peers when the torrent is checking チェック中のTorrentにはピアを追加できません - + Cannot add peers when the torrent is queued 待機中のTorrentにはピアを追加できません - + No peer was selected ピアが選択されていません - + Are you sure you want to permanently ban the selected peers? 選択したピアを恒久的にアクセス禁止にしますか? - + Peer "%1" is manually banned ピア %1 が手動でアクセス禁止にされました - + N/A N/A - + Copy IP:port IP:ポートをコピー @@ -7589,7 +8024,7 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'をフィルタ 追加するピアのリスト(IPごとに改行): - + Format: IPv4:port / [IPv6]:port 書式: IPv4:ポート/[IPv6]:ポート @@ -7630,27 +8065,27 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'をフィルタ PiecesBar - + Files in this piece: このピースに含まれるファイル: - + File in this piece: このピースに含まれるファイル: - + File in these pieces: これらのピースに含まれるファイル: - + Wait until metadata become available to see detailed information 詳細情報を表示するには、メタデータが取得できるまでお待ちください - + Hold Shift key for detailed information Shiftキーを押したままホバーすると詳細情報を表示します @@ -7663,58 +8098,58 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'をフィルタ 検索プラグイン - + Installed search plugins: インストールされている検索プラグイン: - + Name 名前 - + Version バージョン - + Url URL - - + + Enabled 有効 - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. 警告: これら検索エンジンからTorrentをダウンロードする際は、あなたの国の著作権法を必ず遵守してください。 - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> 次のURLから新しい検索エンジンプラグインを入手できます: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one 新しいものをインストール - + Check for updates アップデートをチェック - + Close 閉じる - + Uninstall アンインストール @@ -7834,98 +8269,65 @@ Those plugins were disabled. プラグインのソース - + Search plugin source: 検索プラグインのソース: - + Local file ローカルファイル - + Web link ウェブリンク - - PowerManagement - - - qBittorrent is active - qBittorrentは稼働中です - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - 電源管理で適切なD-Busインターフェースが見つかりました。インターフェース: %1 - - - - Power management error. Did not found suitable D-Bus interface. - 電源管理エラー。適切なD-Busインターフェースが見つかりませんでした。 - - - - - - Power management error. Action: %1. Error: %2 - 電源管理エラー。 操作: %1. エラー: %2 - - - - Power management unexpected error. State: %1. Error: %2 - 電源管理の予期せぬエラー。 状態: %1. エラー: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Torrent(%1)内の次のファイルはプレビューに対応しています。どれかひとつを選択してください: - + Preview プレビュー - + Name 名前 - + Size サイズ - + Progress 進捗状況 - + Preview impossible プレビューできません - + Sorry, we can't preview this file: "%1". このファイルのプレビューには対応していません: "%1" - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします @@ -7938,27 +8340,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist パスが存在しません - + Path does not point to a directory パスがディレクトリーではありません - + Path does not point to a file パスがファイルではありません - + Don't have read permission to path パスへの読み取り許可がありません - + Don't have write permission to path パスへの書き込み許可がありません @@ -7999,12 +8401,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: ダウンロード量: - + Availability: 可用性: @@ -8019,53 +8421,53 @@ Those plugins were disabled. 転送 - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 稼働時間: - + ETA: 予測所要時間: - + Uploaded: アップロード量: - + Seeds: シード数: - + Download Speed: ダウンロード速度: - + Upload Speed: アップロード速度: - + Peers: ピア数: - + Download Limit: ダウンロード制限: - + Upload Limit: アップロード制限: - + Wasted: 破棄: @@ -8075,193 +8477,220 @@ Those plugins were disabled. 接続数: - + Information 情報 - + Info Hash v1: Infoハッシュ v1: - + Info Hash v2: Infoハッシュ v2: - + Comment: コメント: - + Select All すべて選択 - + Select None すべて解除 - + Share Ratio: 共有比: - + Reannounce In: 次のアナウンスまで: - + Last Seen Complete: 最後に完了が確認された日時: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Torrentの人気度を示す、比率/稼働時間(月単位) + + + + Popularity: + 人気: + + + Total Size: 合計サイズ: - + Pieces: ピース数: - + Created By: 作成: - + Added On: 追加日時: - + Completed On: 完了日時: - + Created On: 作成日時: - + + Private: + プライベート: + + + Save Path: 保存パス: - + Never なし - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (保有%3) - - + + %1 (%2 this session) %1 (このセッション%2) - - + + + N/A N/A - + + Yes + はい + + + + No + いいえ + + + %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) - - New Web seed - 新規ウェブシード + + Add web seed + Add HTTP source + ウェブシードの追加 - - Remove Web seed - ウェブシードの削除 + + Add web seed: + ウェブシードの追加: - - Copy Web seed URL - ウェブシードURLのコピー + + + This web seed is already in the list. + このウェブシードはすでにリストにあります。 - - Edit Web seed URL - ウェブシードURLの編集 - - - + Filter files... ファイルを絞り込む... - + + Add web seed... + ウェブシードを追加... + + + + Remove web seed + ウェブシードの削除 + + + + Copy web seed URL + ウェブシードURLのコピー + + + + Edit web seed URL... + ウェブシードURLを編集... + + + Speed graphs are disabled 速度グラフが無効になっています - + You can enable it in Advanced Options 高度な設定で有効にできます - - 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: @@ -8269,33 +8698,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. 不正なデータ形式です。 - + Couldn't save RSS AutoDownloader data in %1. Error: %2 %1のRSS自動ダウンローダーを保存できませんでした。エラー: %2 - + Invalid data format 不正なデータ形式 - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS記事(%1)はルール(%2)によって受け入れられました。Torrentの追加を試みています... - + Failed to read RSS AutoDownloader rules. %1 RSS自動ダウンローダーのルールが読み込めませんでした。%1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS自動ダウンローダールールを読み込めませんでした。理由: %1 @@ -8303,22 +8732,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 '%1'のRSSフィードをダウンロードできませんでした。理由: %2 - + RSS feed at '%1' updated. Added %2 new articles. '%1'のRSSフィードが更新されました。%2件の新着記事が追加されました。 - + Failed to parse RSS feed at '%1'. Reason: %2 '%1'のRSSフィードを解析できませんでした。理由: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSSフィード'%1'は正常にダウンロードされ、解析が開始されました。 @@ -8354,12 +8783,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. 無効なRSSフィードです。 - + %1 (line: %2, column: %3, offset: %4). %1 (行: %2、列: %3、オフセット: %4)。 @@ -8367,103 +8796,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" RSSセッションの設定を保存できませんでした。 ファイル: "%1". エラー: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" RSSセッションのデータを保存できませんでした。 ファイル: "%1". エラー: "%2" - - + + RSS feed with given URL already exists: %1. 指定されたURLのRSSフィードはすでに存在します: %1. - + Feed doesn't exist: %1. フィードが存在しません: %1. - + Cannot move root folder. ルートフォルダーは移動できません。 - - + + Item doesn't exist: %1. アイテムが存在しません: %1. - - Couldn't move folder into itself. - フォルダーをフォルダー自身に移動できませんでした。 + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. ルートフォルダーは削除できません。 - + Failed to read RSS session data. %1 RSSセッションデータが読み込めませんでした。%1 - + Failed to parse RSS session data. File: "%1". Error: "%2" RSSセッションデータが解析できませんでした。 ファイル: "%1". エラー: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." RSSセッションデータが読み込めませんでした。 ファイル: "%1". エラー: 無効なデータ形式です。 - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. RSSフィードを読み込めませんでした。 フィード: "%1". 理由: URLが必要です。 - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. RSSフィードが読み込めませんでした。 フィード: "%1". 理由: UIDが無効です。 - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. 重複したRSSフィードが見つかりました。 UID: "%1". エラー: 設定が破損している可能性があります。 - + Couldn't load RSS item. Item: "%1". Invalid data format. RSS項目が読み込めませんでした。 項目: "%1". 無効なデータ形式です。 - + Corrupted RSS list, not loading it. RSSリストが破損しているため、読み込めません。 - + Incorrect RSS Item path: %1. RSSアイテムのパスが正しくありません: %1. - + RSS item with given path already exists: %1. 指定されたパスのRSSアイテムはすでに存在します: %1. - + Parent folder doesn't exist: %1. 親フォルダーが存在しません: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + フィードが存在しません: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + 更新間隔: + + + + sec + + + + + Default + デフォルト + + RSSWidget @@ -8483,8 +8953,8 @@ Those plugins were disabled. - - + + Mark items read 既読にする @@ -8509,132 +8979,115 @@ Those plugins were disabled. Torrent: (ダブルクリックしてダウンロード) - - + + Delete 削除 - + Rename... 名前を変更... - + Rename 名前の変更 - - + + Update 更新 - + New subscription... 新規購読... - - + + Update all feeds すべてのフィードの更新 - + Download torrent Torrentのダウンロード - + Open news URL ニュースの URL を開く - + Copy feed URL フィードURLを開く - + New folder... 新規フォルダー... - - Edit feed URL... - フィードURLを編集... + + Feed options... + - - Edit feed URL - フィードURLの編集 - - - + Please choose a folder name フォルダー名を選択してください - + Folder name: フォルダー名: - + New folder 新しいフォルダー - - - Please type a RSS feed URL - RSSフィードのURLを入力してください - - - - - Feed URL: - フィード URL: - - - + 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: 新しいフィード名: - + Rename failed 名前の変更に失敗 - + Date: 日付: - + Feed: フィード: - + Author: 作者: @@ -8642,38 +9095,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. 検索エンジンを使用するには、Pythonをインストールする必要があります。 - + Unable to create more than %1 concurrent searches. %1を超える同時検索は作成できません。 - - + + Offset is out of range オフセットが範囲外です - + All plugins are already up to date. すべてのプラグインはすでに最新です。 - + Updating %1 plugins %1個のプラグインを更新しています - + Updating plugin %1 プラグイン%1を更新しています - + Failed to check for plugin updates: %1 プラグインの更新をチェックできませんでした: %1 @@ -8748,132 +9201,142 @@ Those plugins were disabled. サイズ: - + 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 - 検索エンジン - - - + Filter search results... 検索結果を絞り込む... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results 検索結果 ( <i>%2</i> 件中 <i>%1</i> 件を表示): - + Torrent names only Torrent名だけ - + Everywhere すべて - + Use regular expressions 正規表現を使用 - + Open download window ダウンロードウィンドウを開く - + Download ダウンロード - + Open description page 説明ページを開く - + Copy コピー - + Name 名前 - + Download link ダウンロードのリンク - + Description page URL 説明ページのURL - + Searching... 検索中... - + Search has finished 検索完了 - + Search aborted 検索中止 - + An error occurred during search... 検索中にエラーが発生しました... - + Search returned no results 検索結果は 0 件でした - + + Engine + エンジン + + + + Engine URL + エンジンのURL + + + + Published On + 公開日 + + + Column visibility 表示する列 - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします @@ -8881,104 +9344,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. 不明な検索エンジンプラグインのファイル形式です。 - + Plugin already at version %1, which is greater than %2 プラグインはすでに%1で、%2より新しくなっています - + A more recent version of this plugin is already installed. このプラグインの新しいバージョンがすでにインストールされています。 - + Plugin %1 is not supported. プラグイン"%1"は対応していません。 - - + + Plugin is not supported. プラグインは対応していません。 - + Plugin %1 has been successfully updated. プラグイン"%1"は正常に更新されました。 - + All categories 全カテゴリ - + Movies 映画 - + TV shows テレビ番組 - + Music 音楽 - + Games ゲーム - + Anime アニメ - + Software ソフトウェア - + Pictures 画像 - + Books 書籍 - + Update server is temporarily unavailable. %1 アップデートサーバーは一時的に利用できません。%1 - - + + Failed to download the plugin file. %1 プラグインファイルをダウンロードできませんでした。%1 - + Plugin "%1" is outdated, updating to version %2 プラグイン"%1"は古いため、バージョン%2に更新しています - + Incorrect update info received for %1 out of %2 plugins. %2のプラグインのうち%1から不正な更新情報を受信しました。 - + Search plugin '%1' contains invalid version string ('%2') 検索プラグイン'%1'に無効なバージョン文字列('%2')が含まれています @@ -8988,114 +9451,145 @@ Those plugins were disabled. - - - - Search 検索 - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. 検索プラグインがインストールされていません。 ウィンドウ右下の"プラグインを検索..."ボタンをクリックしてインストールしてください。 - + Search plugins... プラグインを検索... - + A phrase to search for. 検索文字列を入力してください。 - + Spaces in a search term may be protected by double quotes. 空白を含む文字列を検索したい場合はダブルクォーテーションで括ってください。 - + Example: Search phrase example 例: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: 文字列「<b>foo bar</b>」を検索します - + All plugins すべてのプラグイン - + Only enabled 有効なものだけ - + + + Invalid data format. + 不正なデータ形式です。 + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: 文字列「<b>foo</b>」と「<b>bar</b>」を検索します - + + Refresh + 更新 + + + Close tab タブを閉じる - + Close all tabs すべてのタブを閉じる - + Select... 選択... - - - + + Search Engine 検索エンジン - + + Please install Python to use the Search Engine. 検索エンジンを使用するにはPythonをインストールしてください。 - + Empty search pattern 空の検索パターン - + Please type a search pattern first はじめに検索パターンを入力してください - + + Stop 停止 + + + SearchWidget::DataStorage - - Search has finished - 検索完了 + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + 検索UIの状態が保存されたデータを読み込めませんでした。 ファイル: "%1". エラー: "%2" - - Search has failed - 検索に失敗しました + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + 保存された検索結果を読み込めませんでした。タブ: "%1". ファイル: "%2". エラー: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + 検索UIの状態を保存できませんでした。 ファイル: "%1". エラー: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + 検索結果を保存できませんでした。タブ: "%1". ファイル: "%2". エラー: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + 検索UIの履歴を読み込めませんでした。 ファイル: "%1". エラー: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + 検索履歴を保存できませんでした。 ファイル: "%1". エラー: "%2" @@ -9208,34 +9702,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: アップロード: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: ダウンロード: - + Alternative speed limits 代替速度制限 @@ -9427,32 +9921,32 @@ Click the "Search plugins..." button at the bottom right of the window 平均キュー待ち時間: - + Connected peers: 接続ピア数: - + All-time share ratio: 総合共有比: - + All-time download: 総合ダウンロード量: - + Session waste: セッション破棄: - + All-time upload: 総合アップロード量: - + Total buffer size: 全バッファサイズ: @@ -9467,12 +9961,12 @@ Click the "Search plugins..." button at the bottom right of the window 待機I/Oジョブ数: - + Write cache overload: 書き込みキャッシュオーバーロード: - + Read cache overload: 読み込みキャッシュオーバーロード: @@ -9491,51 +9985,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: 接続状態: - - + + No direct connections. This may indicate network configuration problems. ネットワークに接続されていません。ネットワーク構成に問題がある可能性があります。 - - + + Free space: N/A + + + + + + External IP: N/A + 外部 IP: N/A + + + + DHT: %1 nodes DHT: %1 ノード - + qBittorrent needs to be restarted! qBittorrentの再起動が必要です。 - - - + + + Connection Status: 接続状態: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. オフライン。通常これは、受信用に指定されたポートでの接続待ちができなかったことを意味します。 - + Online オンライン - + + Free space: + + + + + External IPs: %1, %2 + 外部 IP: %1, %2 + + + + External IP: %1%2 + 外部 IP: %1%2 + + + Click to switch to alternative speed limits クリックすると代替速度制限に切り替わります - + Click to switch to regular speed limits クリックすると通常の速度制限に切り替わります @@ -9565,13 +10085,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - 再開 (0) + Running (0) + 実行中 (0) - Paused (0) - 一時停止 (0) + Stopped (0) + 停止中 (0) @@ -9633,36 +10153,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) 完了 (%1) + + + Running (%1) + 実行中 (%1) + - Paused (%1) - 一時停止 (%1) + Stopped (%1) + 停止中 (%1) + + + + Start torrents + Torrentを開始する + + + + Stop torrents + Torrentを停止する Moving (%1) 移動中 (%1) - - - Resume torrents - Torrentの再開 - - - - Pause torrents - Torrentの一時停止 - Remove torrents Torrentを削除 - - - Resumed (%1) - 再開 (%1) - Active (%1) @@ -9734,31 +10254,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags 未使用のタグの削除 - - - Resume torrents - Torrentを再開 - - - - Pause torrents - Torrentを一時停止 - Remove torrents Torrentを削除 - - New Tag - 新規タグ + + Start torrents + Torrentを開始する + + + + Stop torrents + Torrentを停止する Tag: タグ: + + + Add tag + タグを追加 + Invalid tag name @@ -9905,32 +10425,32 @@ Please choose a different name and try again. TorrentContentModel - + Name 名前 - + Progress 進捗状況 - + Download Priority ダウンロード優先度 - + Remaining 残り - + Availability 可用性 - + Total Size 合計サイズ @@ -9975,98 +10495,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error 名前変更のエラー - + Renaming 名前の変更 - + New name: 新しい名前: - + Column visibility 表示する列 - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします - + Open 開く - + Open containing folder フォルダーを開く - + Rename... 名前を変更... - + Priority 優先度 - - + + Do not download ダウンロードしない - + Normal 標準 - + High - + Maximum 最高 - + By shown file order 表示ファイル順に自動指定 - + Normal priority 標準優先度 - + High priority 高優先度 - + Maximum priority 最高優先度 - + Priority by shown file order 表示ファイル順の優先度 @@ -10074,19 +10594,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + アクティブなタスクが多すぎます - + Torrent creation is still unfinished. - + Torrentの作成は、まだ完了していません。 - + Torrent creation failed. - + Torrentを作成できませんでした。 @@ -10113,13 +10633,13 @@ Please choose a different name and try again. - + Select file ファイルの選択 - + Select folder フォルダーの選択 @@ -10194,87 +10714,83 @@ Please choose a different name and try again. フィールド - + You can separate tracker tiers / groups with an empty line. 空行でトラッカーのティア/グループを分けることができます。 - + Web seed URLs: ウェブシードURL: - + Tracker URLs: トラッカーURL: - + Comments: コメント: - + Source: ソース: - + Progress: 進捗状況: - + Create Torrent Torrentを作成 - - + + Torrent creation failed Torrentを作成できませんでした - + Reason: Path to file/folder is not readable. 理由: ファイル/フォルダーへのパスが読み込み不可です。 - + Select where to save the new torrent 新規Torrentの保存先を選択してください - + Torrent Files (*.torrent) Torrentファイル (*.torrent) - Reason: %1 - 理由: %1 - - - + Add torrent to transfer list failed. 転送リストにTorrentを追加できませんでした。 - + Reason: "%1" 理由: "%1" - + Add torrent failed Torrentが追加できませんでした - + Torrent creator Torrentクリエーター - + Torrent created: Torrentを作成しました: @@ -10282,32 +10798,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 監視フォルダーの設定が読み込めませんでした。%1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" %1から監視フォルダーの設定が解析できませんでした。エラー: %2 - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." %1から監視フォルダーの設定が読み込めませんでした。エラー:"無効なデータ形式です。" - + Couldn't store Watched Folders configuration to %1. Error: %2 %1に監視フォルダーの設定を保存できませんでした。エラー: %2 - + Watched folder Path cannot be empty. 監視フォルダーのパスは空欄にできません。 - + Watched folder Path cannot be relative. 監視フォルダーに相対パスは指定できません。 @@ -10315,44 +10831,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 無効なマグネットURI。URI: %1. 理由: %2 - + Magnet file too big. File: %1 マグネットファイルが大きすぎます。 ファイル:%1 - + Failed to open magnet file: %1 マグネットファイル(%1)をオープンできませんでした。 - + Rejecting failed torrent file: %1 失敗したTorrentファイルは除外されました: %1 - + Watching folder: "%1" 次のフォルダーを監視中です: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - ファイルの読み込み時にメモリーを割り当てられませんでした。ファイル:"%1". エラー: "%2" - - - - Invalid metadata - 無効なメタデータです - - TorrentOptionsDialog @@ -10381,175 +10884,163 @@ Please choose a different name and try again. 未完了のTorrentは別のパスを使用する - + Category: カテゴリー: - - Torrent speed limits - Torrentの速度制限 + + Torrent Share Limits + Torrentの共有制限 - + Download: ダウンロード: - - + + - - + + Torrent Speed Limits + Torrentの速度制限 + + + + KiB/s KiB/秒 - + These will not exceed the global limits この設定がグローバルの制限を超えることはありません - + Upload: アップロード: - - Torrent share limits - Torrentの共有制限 - - - - Use global share limit - グローバルの共有比制限を使用する - - - - Set no share limit - 共有比を制限しない - - - - Set share limit to - 共有比制限を指定する - - - - ratio - 比率 - - - - total minutes - 合計(分) - - - - inactive minutes - 非稼働(分) - - - + Disable DHT for this torrent このTorrentのDHTを無効にする - + Download in sequential order ピースを先頭から順番にダウンロードする - + Disable PeX for this torrent このTorrentのPeXを無効にする - + Download first and last pieces first 最初と最後のピースを先にダウンロードする - + Disable LSD for this torrent このTorrentのLSDを無効にする - + Currently used categories 現在使用中のカテゴリー - - + + Choose save path 保存先の選択 - + Not applicable to private torrents プライベートTorrentには適用できません - - - No share limit method selected - 共有比の制限方法が指定されていません - - - - Please select a limit method first - はじめに制限方法を指定してください - TorrentShareLimitsWidget - - - + + + + Default - デフォルト + デフォルト + + + + + + Unlimited + 無制限 - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + 選択 + + + + Seeding time: + シード時間: + + + + + + + + min minutes - + - + Inactive seeding time: - + 非稼働シード時間: - + + Action when the limit is reached: + 制限に達したときのアクション: + + + + Stop torrent + Torrentを停止する + + + + Remove torrent + Torrentを削除 + + + + Remove torrent and its content + Torrentとそのコンテンツを削除する + + + + Enable super seeding for torrent + Torrentをスーパーシードにする + + + Ratio: - + 共有比: @@ -10560,32 +11051,32 @@ Please choose a different name and try again. Torrentのタグ - - New Tag - 新規タグ + + Add tag + タグを追加 - + Tag: タグ: - + Invalid tag name 無効なタグ名です - + Tag name '%1' is invalid. タグ名'%1'は正しくありません。 - + Tag exists タグが存在します - + Tag name already exists. タグ名はすでに存在します。 @@ -10593,115 +11084,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. エラー: '%1'は有効なTorrentファイルではありません。 - + Priority must be an integer 優先度は整数で指定してください - + Priority is not valid 優先度が正しくありません - + Torrent's metadata has not yet downloaded Torrentのメタデータがダウンロードされていません - + File IDs must be integers ファイルIDは整数でなければなりません - + File ID is not valid ファイルIDが正しくありません - - - - + + + + Torrent queueing must be enabled Torrentのキューを有効にする必要があります - - + + Save path cannot be empty 保存先パスは空欄にできません - - + + Cannot create target directory 対象ディレクトリーを作成できませんでした - - + + Category cannot be empty カテゴリーは空欄にできません - + Unable to create category カテゴリーを作成できません - + Unable to edit category カテゴリーを編集できません - + Unable to export torrent file. Error: %1 Torrentファイルをエクスポートできません。エラー: %1 - + Cannot make save path 保存パスを作成できません - + + "%1" is not a valid URL + '%1' は有効なURLではありません + + + + URL scheme must be one of [%1] + URLスキームは [%1] のいずれかでなければなりません。 + + + 'sort' parameter is invalid 'sort'パラメーターが無効です - + + "%1" is not an existing URL + '%1' は既存のURLではありません + + + "%1" is not a valid file index. '%1' は有効なファイルインデックスではありません。 - + Index %1 is out of bounds. インデックス%1は範囲外です。 - - + + Cannot write to directory ディレクトリーに書き込めません - + WebUI Set location: moving "%1", from "%2" to "%3" WebUIの保存場所を設定しました: '%1'は'%2'から'%3'へ移動されました - + Incorrect torrent name 不正なTorrent名です - - + + Incorrect category name 不正なカテゴリ名 @@ -10732,196 +11238,191 @@ Please choose a different name and try again. TrackerListModel - + Working 稼働中 - + Disabled 無効 - + Disabled for this torrent このTorrentでは無効 - + This torrent is private このTorrentはプライベートです - + N/A N/A - + Updating... 更新中... - + Not working 未稼働 - + Tracker error トラッカーエラー - + Unreachable 到達できません - + Not contacted yet 未コンタクト - - Invalid status! + + Invalid state! 無効な状態です。 - - URL/Announce endpoint + + URL/Announce Endpoint URL/アナウンスエンドポイント - + + BT Protocol + BTプロトコル + + + + Next Announce + 次のアナウンス + + + + Min Announce + 最低アナウンス + + + Tier ティア - - Protocol - プロトコル - - - + Status 状態 - + Peers ピア - + Seeds シード - + Leeches リーチャー - + Times Downloaded ダウンロード回数 - + Message メッセージ - - - Next announce - 次のアナウンス - - - - Min announce - 最低アナウンス - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private このTorrentはプライベートです - + Tracker editing トラッカー編集中 - + Tracker URL: トラッカーURL: - - + + Tracker editing failed トラッカー編集失敗 - + The tracker URL entered is invalid. 入力されたトラッカーURLは無効です。 - + The tracker URL already exists. トラッカーURLはすでに存在します。 - + Edit tracker URL... トラッカーURLを編集... - + Remove tracker トラッカーを削除 - + Copy tracker URL トラッカーURLをコピー - + Force reannounce to selected trackers 選択したトラッカーに強制再アナウンス - + Force reannounce to all trackers 全トラッカーに強制再アナウンス - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします - + Add trackers... トラッカーを追加... - + Column visibility 表示カラム @@ -10939,37 +11440,37 @@ Please choose a different name and try again. 追加するトラッカーのリスト(1行ずつ): - + µTorrent compatible list URL: µTorrent互換リストURL: - + Download trackers list トラッカーリストをダウンロード - + Add 追加 - + Trackers list URL error トラッカーリストのURLエラー - + The trackers list URL cannot be empty トラッカーリストのURLは空欄にはできません - + Download trackers list error トラッカーリストのダウンロードエラー - + Error occurred when downloading the trackers list. Reason: "%1" トラッカーリストのダウンロード中にエラーが発生しました。理由: "%1" @@ -10977,62 +11478,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) 警告 (%1) - + Trackerless (%1) トラッカーなし (%1) - + Tracker error (%1) トラッカーエラー (%1) - + Other error (%1) その他のエラー (%1) - + Remove tracker トラッカーを削除 - - Resume torrents - Torrentの再開 + + Start torrents + Torrentを開始する - - Pause torrents - Torrentの一時停止 + + Stop torrents + Torrentを停止する - + Remove torrents Torrentを削除 - + Removal confirmation 削除の確認 - + Are you sure you want to remove tracker "%1" from all torrents? すべてのTorrentからトラッカー(%1)を削除しますか? - + Don't ask me again. 次回から表示しない。 - + All (%1) this is for the tracker filter すべて (%1) @@ -11041,7 +11542,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'モード': 無効な引数です @@ -11133,11 +11634,6 @@ Please choose a different name and try again. 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. 再開データのチェック中 - - - Paused - 一時停止 - Completed @@ -11161,220 +11657,252 @@ Please choose a different name and try again. エラー - + Name i.e: torrent name 名前 - + Size i.e: torrent size サイズ - + Progress % Done 進捗状況 - + + Stopped + 停止 + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) 状態 - + Seeds i.e. full sources (often untranslated) シード - + Peers i.e. partial sources (often untranslated) ピア - + Down Speed i.e: Download speed ダウン速度 - + Up Speed i.e: Upload speed アップ速度 - + Ratio Share ratio 比率 - + + Popularity + 人気 + + + ETA i.e: Estimated Time of Arrival / Time left 予測所要時間 - + Category カテゴリ - + Tags タグ - + Added On Torrent was added to transfer list on 01/01/2010 08:00 追加日時 - + Completed On Torrent was completed on 01/01/2010 08:00 完了日時 - + Tracker トラッカー - + Down Limit i.e: Download limit ダウン制限 - + Up Limit i.e: Upload limit アップ制限 - + Downloaded Amount of data downloaded (e.g. in MB) ダウンロード済み - + Uploaded Amount of data uploaded (e.g. in MB) アップロード済み - + 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) セッションでのアップ量 - + Remaining Amount of data left to download (e.g. in MB) 残り - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 稼働時間 - + + Yes + はい + + + + No + いいえ + + + Save Path Torrent save path 保存パス - + Incomplete Save Path Torrent incomplete save path 未完了の保存先 - + Completed Amount of data completed (e.g. in MB) 完了 - + Ratio Limit Upload share ratio limit 共有比制限 - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole 最後に完了が確認された日時 - + Last Activity Time passed since a chunk was downloaded/uploaded 最終アクティビティー - + Total Size i.e. Size including unwanted data 合計サイズ - + Availability The number of distributed copies of the torrent 可用性 - + Info Hash v1 i.e: torrent info hash v1 Infoハッシュ v1: - + Info Hash v2 i.e: torrent info hash v2 Infoハッシュ v2: - + Reannounce In Indicates the time until next trackers reannounce 次のアナウンスまで - - + + Private + Flags private torrents + プライベート + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Torrentの人気度を示す、比率/稼働時間(月単位) + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1前 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (シードから%2) @@ -11383,339 +11911,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility 列の表示 - + Recheck confirmation 再チェックの確認 - + Are you sure you want to recheck the selected torrent(s)? 選択されたTorrentを再チェックしますか? - + Rename 名前の変更 - + New name: 新しい名前: - + Choose save path 保存先の選択 - - Confirm pause - 一時停止の確認 - - - - Would you like to pause all torrents? - すべてのTorrentを一時停止にしますか? - - - - Confirm resume - 再開の確認 - - - - Would you like to resume all torrents? - すべてのTorrentを再開しますか? - - - + Unable to preview プレビューできません - + The selected torrent "%1" does not contain previewable files 選択されたTorrent(%1)にプレビュー可能なファイルはありません。 - + Resize columns 列のリサイズ - + Resize all non-hidden columns to the size of their contents 非表示以外のすべての列をコンテンツのサイズにリサイズします - + Enable automatic torrent management 自動Torrent管理を有効にする - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. 選択されたTorrentの自動Torrent管理を有効にしますか? それらは再配置される可能性があります。 - - Add Tags - タグの追加 - - - + Choose folder to save exported .torrent files エクスポートされた".torrent"ファイルを保存するフォルダーを選択します - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" ".torrent"ファイルがエクスポートできませんでした。Torrent: "%1". 保存パス: "%2". 理由: "%3" - + A file with the same name already exists 同名のファイルがすでに存在します - + Export .torrent file error ".torrent"ファイルのエクスポートエラー - + Remove All Tags すべてのタグを削除 - + Remove all tags from selected torrents? 選択されたTorrentからすべてのタグを削除しますか? - + Comma-separated tags: カンマ区切りのタグ: - + Invalid tag 不正なタグ - + Tag name: '%1' is invalid タグ名: '%1'は正しくありません - - &Resume - Resume/start the torrent - 再開(&R) - - - - &Pause - Pause the torrent - 一時停止(&P) - - - - Force Resu&me - Force Resume/start the torrent - 強制再開(&M) - - - + Pre&view file... ファイルをプレビュー(&V)... - + Torrent &options... Torrentのオプション(&O)... - + Open destination &folder 保存先のフォルダーを開く(&F) - + Move &up i.e. move up in the queue 上へ(&U) - + Move &down i.e. Move down in the queue 下へ(&D) - + Move to &top i.e. Move to top of the queue 一番上へ(&T) - + Move to &bottom i.e. Move to bottom of the queue 一番下へ(&B) - + Set loc&ation... 場所を設定(&A)... - + Force rec&heck 強制再チェック(&H) - + Force r&eannounce 強制再アナウンス(&E) - + &Magnet link マグネットリンク(&M) - + Torrent &ID Torrent ID(&I) - + &Comment コメント(&C) - + &Name 名前(&N) - + Info &hash v1 Infoハッシュ v1(&H) - + Info h&ash v2 Infoハッシュ v2(&A) - + Re&name... 名前を変更(&N)... - + Edit trac&kers... トラッカーを編集(&K)... - + E&xport .torrent... ".torrent"をエクスポート(&X)... - + Categor&y カテゴリー(&Y) - + &New... New category... 新規(&N)... - + &Reset Reset category リセット(&R) - + Ta&gs タグ(&G) - + &Add... Add / assign multiple tags... 追加(&A)... - + &Remove All Remove all tags すべて削除(&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Torrentが停止/待機中/エラー/チェック中は強制アナウンスはできません + + + &Queue キュー(&Q) - + &Copy コピー(&C) - + Exported torrent is not necessarily the same as the imported エクスポートされたTorrentは、インポートされたものと同一とは限りません - + Download in sequential order ピースを先頭から順番にダウンロード - + + Add tags + タグの追加 + + + Errors occurred when exporting .torrent files. Check execution log for details. ".torrent"ファイルのエクスポート中にエラーが発生しました。詳細は実行ログを参照してください。 - + + &Start + Resume/start the torrent + 開始(&S) + + + + Sto&p + Stop the torrent + 停止(&P) + + + + Force Star&t + Force Resume/start the torrent + 強制開始(&T) + + + &Remove Remove the torrent 削除(&R) - + Download first and last pieces first 先頭と最後のピースを先にダウンロード - + Automatic Torrent Management 自動Torrent管理 - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category 自動モードでは、関連付けられたカテゴリーに応じて、Torrentの各種プロパティー(保存先など)が決定されます - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Torrentが一時停止/待機中/エラー/チェック中は強制アナウンスはできません - - - + Super seeding mode スーパーシードモード @@ -11760,28 +12268,28 @@ Please choose a different name and try again. アイコンID - + UI Theme Configuration. UIテーマの設定 - + The UI Theme changes could not be fully applied. The details can be found in the Log. UIテーマの変更が完全には適用されませんでした。詳細はログを参照してください。 - + Couldn't save UI Theme configuration. Reason: %1 UIテーマの設定を保存できませんでした。理由: %1 - - + + Couldn't remove icon file. File: %1. アイコンファイルを削除できませんでした。ファイル: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. アイコンファイルをコピーできませんでした。コピー元: %1. コピー先: %2. @@ -11789,7 +12297,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + アプリスタイルの設定ができませんでした。 不明なスタイル: "%1" + + + Failed to load UI theme from file: "%1" ファイル"%1"からUIのテーマを読み込めませんでした。 @@ -11820,20 +12333,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" 設定の移行に失敗しました: WebUI https, ファイル: "%1", エラー: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" 設定が移行されました: ファイル "%1" にWebUIのhttpsのデータがエクスポートされました - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". 設定ファイルの無効な値をデフォルト値に戻しています。キー: "%1". 無効な値: "%2". @@ -11841,32 +12355,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Pythonの実行ファイルが見つかりました。 名前: "%1". バージョン: "%2" - + Failed to find Python executable. Path: "%1". Pythonの実行ファイルが見つかりませんでした。 パス: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" 環境変数PATHから`python3`の実行ファイルが見つかりませんでした。 PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" 環境変数PATHから`python`の実行ファイルが見つかりませんでした。 PATH: "%1" - + Failed to find `python` executable in Windows Registry. Windowsのレジストリで`python`の実行ファイルが見つかりませんでした。 - + Failed to find Python executable Pythonの実行ファイルが見つかりませんでした。 @@ -11958,72 +12472,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. 許容されないセッションクッキー名が指定されました: %1。デフォルト名が使用されます。 - + Unacceptable file type, only regular file is allowed. 許可されないファイルタイプです。通常のファイルだけが許可されます。 - + Symlinks inside alternative UI folder are forbidden. 独自UIフォルダー内にシンボリックリンクは使用できません。 - + Using built-in WebUI. ビルトインWebUIを使用しています。 - + Using custom WebUI. Location: "%1". カスタムWebUI (%1)を使用しています。 - + WebUI translation for selected locale (%1) has been successfully loaded. 選択された言語(%1)のWebUIが正しく読み込まれました。 - + Couldn't load WebUI translation for selected locale (%1). 選択された言語(%1)のWebUIを読み込めませんでした。 - + Missing ':' separator in WebUI custom HTTP header: "%1" WebUIカスタムHTTPヘッダーに区切り文字(:)がありません: "%1" - + Web server error. %1 ウェブサーバーエラー。%1 - + Web server error. Unknown error. ウェブサーバーエラー。不明なエラー。 - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: オリジンヘッダーとターゲットオリジンが一致しません! ソース IP: '%1'. オリジンヘッダー: '%2'. ターゲットオリジン: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: リファラーヘッダーとターゲットオリジンが一致しません! ソース IP: '%1'. リファラーヘッダー: '%2'. ターゲットオリジン: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: 不正なホストヘッダー、ポートの不一致です。リクエストソースIP: '%1'. サーバーポート番号: '%2'. 受信ホストヘッダー: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: 不正なホストヘッダーです。リクエストソース IP: '%1'. 受信ホストヘッダー: '%2' @@ -12031,125 +12545,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set 資格情報が設定されていません - + WebUI: HTTPS setup successful WebUI: HTTPSでのセットアップが正常に完了しました - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPSでのセットアップができなかったため、HTTPを使用します - + WebUI: Now listening on IP: %1, port: %2 WebUI: IP: %1、ポート番号: %2で接続待ちをしています - + Unable to bind to IP: %1, port: %2. Reason: %3 IP: %1、ポート番号: %2にバインドできませんでした。理由: %3 + + fs + + + Unknown error + 不明なエラー + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /秒 - + %1s e.g: 10 seconds %1秒 - + %1m e.g: 10 minutes %1分 - + %1h %2m e.g: 3 hours 5 minutes %1時間%2分 - + %1d %2h e.g: 2 days 10 hours %1日%2時間 - + %1y %2d e.g: 2 years 10 days %1年%2日 - - + + Unknown Unknown (size) 不明 - + qBittorrent will shutdown the computer now because all downloads are complete. すべてのダウンロードが完了したため、コンピューターがシャットダウンされます。 - + < 1m < 1 minute < 1分 diff --git a/src/lang/qbittorrent_ka.ts b/src/lang/qbittorrent_ka.ts index 3a63e6d9a..8566bb3ef 100644 --- a/src/lang/qbittorrent_ka.ts +++ b/src/lang/qbittorrent_ka.ts @@ -14,75 +14,75 @@ შესახებ - + Authors ავტორები - + Current maintainer მიმდინარე მომვლელი - + Greece საბერძნეთი - - + + Nationality: ეროვნება: - - + + E-mail: ელ-ფოსტა: - - + + Name: სახელი: - + Original author ნამდვილი ავტორი - + France საფრანგეთი - + Special Thanks განსაკუთრებული მადლობა - + Translators მთარგმნელები - + License ლიცენზია - + Software Used გამოყენებული სოფტი - + qBittorrent was built with the following libraries: qBittorrent აგებულია ამ ბიბლიოთეკებით: - + Copy to clipboard @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ შენახვა აქ - + Never show again აღარასოდეს გამოტანა - - - Torrent settings - ტორენტის პარამეტრები - Set as default category @@ -191,12 +186,12 @@ ტორენტის დაწყება - + Torrent information ტორენტის ინფორმაცია - + Skip hash check ჰეშის შემოწმების გამოტოვება @@ -205,6 +200,11 @@ Use another path for incomplete torrent დაუსრულებელი ტორენტისთვის სხვა მისამართის გამოყენება + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: შიგთავსის განლაგევა: - + Original ორიგინალი - + Create subfolder სუბდირექტორიის შექმნა - + Don't create subfolder არ შეიქმნას სუბდირექტორია - + Info hash v1: ჰეშის ინფორმაცია v1: - + Size: ზომა: - + Comment: კომენტარი: - + Date: თარიღი: @@ -329,147 +329,147 @@ ბოლო გამოყენებული შენახვის გზის დამახსოვრება - + Do not delete .torrent file არ წაიშალოს .torrent ფაილი - + Download in sequential order თანმიმდევრული წესით გადმოწერა - + Download first and last pieces first პირველ რიგში ჩამოიტვირთოს პირველი და ბოლო ნაწილი - + Info hash v2: ჰეშის ინფორმაცია v2: - + Select All ყველას არჩევა - + Select None არც ერთის არჩევა - + Save as .torrent file... .torrent ფაილის სახით შენახვა... - + I/O Error I/O შეცდომა - + Not Available This comment is unavailable ხელმიუწვდომელი - + Not Available This date is unavailable ხელმიუწვდომელი - + Not available მიუწვდომელი - + Magnet link მაგნიტური ბმული - + Retrieving metadata... მეტამონაცემების მიღება... - - + + Choose save path აირჩიეთ შენახვის ადგილი - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (ცარიელი ადგილი დისკზე: %2) - + Not available This size is unavailable. არ არის ხელმისაწვდომი - + Torrent file (*%1) ტორენტ ფაილი (*%1) - + Save as torrent file ტორენტ ფაილის სახით დამახსოვრება - + Couldn't export torrent metadata file '%1'. Reason: %2. ვერ მოხერხდა ტორენტის მეტამონაცემების ფაილის ექსპორტი '%1'. მიზეზი: %2. - + Cannot create v2 torrent until its data is fully downloaded. შეუძლებელია ტორენტ v2 შექმნა, სანამ მისი მინაცემები არ იქნება მთლიანად ჩამოტვირთული. - + Filter files... ფაილების ფილტრი... - + Parsing metadata... მეტამონაცემების ანალიზი... - + Metadata retrieval complete მეტამონაცემების მიღება დასრულებულია @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -592,7 +592,7 @@ Torrent share limits - ტორენტის გაზიარების ლიმიტი + ტორენტის გაზიარების ლიმიტი @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB მიბ - + Recheck torrents on completion ტორენტების გადამოწმება დასრულებისას - - + + ms milliseconds მწ - + Setting პარამეტრი - + Value Value set for this setting მნიშვნელობა - + (disabled) (გამორთული) - + (auto) (ავტო) - + + min minutes წუთი - + All addresses ყველა მისამართები - + qBittorrent Section qBittorrent-ის სექცია - - + + Open documentation დოკუმენტაციის გახსნა - + All IPv4 addresses ყველა IPv4 მისამართები - + All IPv6 addresses ყველა IPv6 მისამართები - + libtorrent Section libtorrent სექცია - + Fastresume files Fastresume ფაილები - + SQLite database (experimental) SQLite მონაცემთა ბაზა (ექსპერიმენტალური) - + Resume data storage type (requires restart) - + Normal ჩვეულებრივი - + Below normal ჩვეულებრივზე დაბალი - + Medium საშუალო - + Low დაბალი - + Very low ძალიან დაბალი - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache დისკის ჰეში - - - - + + + + + s seconds წამი - + Disk cache expiry interval დისკის ქეშის ვადის გასვლის ინტერვალი - + Disk queue size - - + + Enable OS cache OS ქეშის ჩართვა - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB კბ - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address ნების დართბა მრავალ კავშირზე ერთი IP მისამართიდან - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names პირების ჰოსტის სახელის დადგენა - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + წამი + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications შეტყობინებების ჩვენება - + Display notifications for added torrents ტამატებული ტორენტების შეტყობინებების ჩვენება - + Download tracker's favicon - + Save path history length - + Enable speed graphs სიჩქარის გრაფიკების ჩართვა - + Fixed slots - + Upload rate based - + Upload slots behavior ატვირთვის სლოტების ქცევა - + Round-robin - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck ტორენტის გადამოწმების დასტური - + Confirm removal of all tags - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface ნებისმიერი ინტერფეისი - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker ჩაშენებული ტრეკერის ჩართვა - + Embedded tracker port ჩაშენებული ტრეკერის პორტი + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + 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-ის გამოყენებისთვის - + Torrent: %1, sending mail notification - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit &გამოსვლა - + I/O Error i.e: Input/Output Error I/O შეცდომა - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1432,100 +1532,110 @@ - + Torrent added ტორენტი დამატებულია - + '%1' was added. e.g: xxx.avi was added. '%1' დამატებულია - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' ჩამოტვირთვა დასრულდა - + Information ინფორმაცია - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit გამოსვლა - + Recursive download confirmation რეკურსიული ჩამოტვირთვის დასტური - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never არასოდეს - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... ტორენტის პროგრესის შენახვა... - + qBittorrent is now ready to exit @@ -1604,12 +1714,12 @@ - + Must Not Contain: არ უნდა შეიცავდეს: - + Episode Filter: @@ -1661,263 +1771,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &ექსპორტი - + 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 - + 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 - + Episode number is a mandatory positive value - + Rules წესები - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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? დარწმუნებული ხართ რომ არჩეული ჩამოტვირთვის წესების წაშლა გსურთ? - + Rule deletion confirmation წესის წაშლის დასტური - + Invalid action არასწორი მოქმედება - + The list is empty, there is nothing to export. სია ცარიელია, აქ არაფერი არ არის ექსპორტისთვის. - + Export RSS rules RSS წესების ექსპორტი - + I/O Error I/O შეცდომა - + Failed to create the destination file. Reason: %1 დანიშნულების ფაილის შექმნა ვერ მოხერხდა. მიზეზი: %1 - + Import RSS rules RSS წესების იმპორტი - + Failed to import the selected rules file. Reason: %1 ამორჩეული წესების იმპორტი ვერ მოხერხდა. მიზეზი: %1 - + Add new rule... ახალი წესის დამატება... - + Delete rule წესის წაშლა - + Rename rule... წესის გადარქმევა... - + Delete selected rules არჩეული წესების წაშლა - + Clear downloaded episodes... ჩამოტვირთული ეპიზოდების წაშლა... - + Rule renaming წესის გადარქმევა - + Please type the new rule name გთხოვთ ჩაწერეთ ახალი წესის სახელი - + Clear downloaded episodes ჩამოტვირთული ეპიზოდების წაშლა - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 პოზიცია %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1959,7 +2069,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1969,28 +2079,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2001,16 +2121,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2018,38 +2139,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. არ მოიძებნა. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2057,22 +2200,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2080,457 +2223,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP ფილტრი - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2546,13 +2735,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted ოპერაცია შეწყვეტილია - - + + Create new torrent file failed. Reason: %1. ახალი ტორენტ ფაილის შექმნა ვერ მოხერხდა. მიზეზი: %1 @@ -2560,67 +2749,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2641,189 +2830,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: გამოყენება: - + [options] [(<filename> | <url>)...] - + Options: პარამეტრები: - + Display program version and exit - + Display this help message and exit - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port პორტი - + Change the WebUI port - + Change the torrenting port - + Disable splash screen მისალმების ფანჯრის გამორთვა - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name სახელი - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path ტორენტის შენახვის გზა - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check ჰეშის შემოწმების გამოტოვება - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order თანმიმდევრული წესით გადმოწერა - + Download first and last pieces first პირველ რიგში ჩამოიტვირთოს პირველი და ბოლო ნაწილი - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help დახმარება @@ -2875,13 +3064,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - ტორენტების გაგრძელება + Start torrents + - Pause torrents - ტორენტების დაპაუზება + Stop torrents + @@ -2892,15 +3081,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset ჩამოყრა + + + System + + CookiesDialog @@ -2941,12 +3135,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2954,7 +3148,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2973,23 +3167,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove წაშლა @@ -3002,12 +3196,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also URL-დან ჩამოტვირთვა - + Add torrent links ტორენტ ბმულების დამატება - + One link per line (HTTP links, Magnet links and info-hashes are supported) ერთი ბმული ერთ ხაზზე (დაშვებულია HTTP ბმულები, მაგნიტური ბმულები და ინფო-ჰეშები) @@ -3017,12 +3211,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ჩამოტვირთვა - + No URL entered ბმული არ არის შეყვანილი - + Please type at least one URL. გთხოვთ ბოლოსთვის ერთი URL-ი ჩაწეროთ @@ -3181,25 +3375,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present ტორენტი უკვე არსებობს - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3207,38 +3424,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. მეტამონაცემების შეცდომა: '%1' ვერ მოიძებნა - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Database corrupted: no data section found. @@ -3246,17 +3463,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3297,26 +3514,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... მოძიება... - + Reset ჩამოყრა - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3348,13 +3599,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 დაბლოკირებულია. მიზეზი: %2 - + %1 was banned 0.0.0.0 was banned %1 დაბლოკირებულია @@ -3363,60 +3614,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3429,602 +3680,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &რედაქტირება - + &Tools &ხელსაწყოები - + &File &ფაილი - + &Help &დახმარება - + On Downloads &Done გადმოწერების &დასრულების შემდეგ - + &View &ხედი - + &Options... &პარამეტრები... - - &Resume - &გაგრძელება - - - + &Remove - + Torrent &Creator ტორენტის &შემქმნელი - - + + Alternative Speed Limits ალტერნატიული სიჩქარის ლიმიტები - + &Top Toolbar ხელსაწყოების &ზედა ზოლი - + Display Top Toolbar ზედა ხელსაწყოების ზოლის ჩვენება - + Status &Bar სტატუს &ბარი - + Filters Sidebar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar სიჩქარის ჩვენება სახელის ზოლში - + &RSS Reader &RSS წამკითხველი - + Search &Engine საძიებო &სისტემა - + L&ock qBittorrent &qBittorrent-ის ჩაკეტვა - + Do&nate! - + + Sh&utdown System + + + + &Do nothing &არაფრის გაკეთება - + Close Window ფანჯრის დახურვა - - R&esume All - &ყველას გაგრძელება - - - + Manage Cookies... Cookie ფაილების კონტროლი... - + Manage stored network cookies - + Normal Messages ჩვეულებრივი შეტყობინებები - + Information Messages ინფორმაციული შეტყობინებები - + Warning Messages გასაფრთხილებელი შეტყობინებები - + Critical Messages კრიტირული შეტყობინებები - + &Log &ჩანაწერების ჟურნალი - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... გლობალური სიჩქარის ლიმიტების დაყენება... - + Bottom of Queue რიგის ბოლოში - + Move to the bottom of the queue რიგის ბოლოში გადატანა - + Top of Queue რიგის დასაწყისში გადატანა - + Move to the top of the queue რიგის დასაწყისში გადატანა - + Move Down Queue რიგში ქვემოთ - + Move down in the queue რიგში ქვემოთ გადატანა - + Move Up Queue ზემოთ რიგში - + Move up in the queue რიგში ზემოთ გადატანა - + &Exit qBittorrent &qBittorrent-იდან გასვლა - + &Suspend System &სისტემის დაპაუზება - + &Hibernate System &სისტემის ძილის რეჟიმში გადაყვანა - - S&hutdown System - &სისტემის გამორთვა - - - + &Statistics &სტატისტიკა - + Check for Updates განახლების შემოწმება - + Check for Program Updates პროგრამული განახლების შემოწმება - + &About &შესახებ - - &Pause - &პაუზა - - - - P&ause All - &ყველას დაპაუ&ზება - - - + &Add Torrent File... &ტორენტ ფაილის დამატება - + Open გახსნა - + E&xit &გამოსვლა - + Open URL URL-ის გახსნა - + &Documentation &დოკუმენტაცია - + Lock ჩაკეტვა - - - + + + Show ჩვენება - + Check for program updates პროგრამული განახლების შემოწმება - + Add Torrent &Link... ტორენტ ბმულის &დამატება... - + If you like qBittorrent, please donate! თუ qBittorrent მოგწონთ, გთხოვთ გააკეთეთ ფულადი შემოწირულობა! - - + + Execution Log გაშვების ჟურნალი - + Clear the password პაროლის წაშლა - + &Set Password &პაროლის დაყენება - + Preferences - + &Clear Password &პაროლის წაშლა - + Transfers ტრანსფერები - - + + qBittorrent is minimized to tray qBittorrent-ი უჯრაშია ჩახურული - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only - + Text Only მატრო ტექსტი - + Text Alongside Icons - + Text Under Icons - + Follow System Style სისტემის სტილის გამოყენება - - + + UI lock password ინტერფეისის ჩაკეტვის პაროლი - - + + Please type the UI lock password: გთხოვთ შეიყვანეთ ინტერფეისის ჩაკეტვის პაროლი: - + Are you sure you want to clear the password? დარწყმულებული ხართ რომ პაროლის წაშლა გნებავთ? - + Use regular expressions სტანდარტული გამოსახულებების გამოყენება - + + + Search Engine + საძიებო სისტემა + + + + Search has failed + ძიება ვერ შესრულდა + + + + Search has finished + ძიება დამთავრებულია + + + Search ძებნა - + Transfers (%1) ტრანსფერები (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent-ი განახლდა. შეტანილი ცვლილებები რომ გააქტიურდეს, საჭიროა აპლიკაციის თავიდან ჩართვა. - + qBittorrent is closed to tray qBittorrent-ი უჯრაშია დახურული - + Some files are currently transferring. ზოგი-ერთი ფაილის ტრანსფერი ხორციელდება. - + Are you sure you want to quit qBittorrent? qBittorrent-იდან გასვლა გსურთ? - + &No &არა - + &Yes &კი - + &Always Yes &ყოველთვის კი - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available qBittorrent განახლება ხელმისაწვდომია - + 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-ის დაინსტალირება, მაგრამ სავარაუდოდ ის არ არის დაინსტრალირებული. - - + + Old Python Runtime - + A new version is available. ახალი ვერსია ხელმისაწვდომია - + Do you want to download %1? გსურთ %1 ჩამოტვირთვა? - + Open changelog... - + No updates available. You are already using the latest version. განახლებები არაა ხელმისაწვდომი. თქვენ უკვე იყენებთ უახლეს ვერსიას. - + &Check for Updates &განახლების შემოწმება - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + დაპაუზებული + + + Checking for Updates... განახლების შემოწმება მიმდინარეობს... - + Already checking for program updates in the background პროგრამული განახლება ფონურად უკვე მოზმდება - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error ჩამოტვირთვის შეცდომა - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python-ის ჩამოტვირთვა ვერ მოხერხდა, მიზეზი: %1. -გთხოვთ ხელით დააყენეთ ის. - - - - + + Invalid password პაროლი არასწორია - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + 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 - + Hide დამალვა - + Exiting qBittorrent qBittorrent-იდან გამოსვლა - + Open Torrent Files ტორენტ ფაილის გახსნა - + Torrent Files ტორენტ ფაილები @@ -4219,7 +4546,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5513,47 +5845,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5591,299 +5923,283 @@ Please install it manually. ბიტტორენტი - + RSS RSS - - Web UI - ვებ ინტერფეისი - - - + Advanced დამატებითი - + Customize UI Theme... - + Transfer List ტორენტების სია - + Confirm when deleting torrents დამატებითი დადასტურება ტორენტის წაშლის დროს - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. რიგში ალტერნატიული ფერების გამოყენება - + Hide zero and infinity values ნულის და უსასრულო მნიშვნელობის დამალვა - + Always ყოველთვის - - Paused torrents only - მარტო დაპაუზებულებისთვის - - - + Action on double-click ორმაგი დაჭერის დროს მოქმედება - + Downloading torrents: ტორენტები ჩამოტვირთვის პროცესში: - - - Start / Stop Torrent - ტორენტის დაწყება / შეჩერება - - - - + + Open destination folder დანიშნულების დირექტორიის გახსნა - - + + No action მოქმედების გარეშე - + Completed torrents: დასრულებული ტორენტები: - + Auto hide zero status filters - + Desktop დესკტოპი - + Start qBittorrent on Windows start up qBittorrent-ის გახსნა Windows-ის ჩართვასთან ერთად - + Show splash screen on start up Splash გამოსახულების ჩვენება ჩართვის დროს - + Confirmation on exit when torrents are active დამატებითი დადასტურება თუ დარჩა აქტიური ტორენტები - + Confirmation on auto-exit when downloads finish დამატებითი ავტოგამოსვლის დადასტურება როდესაც ჩამოტვირთვა დამთავრდება - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB კბ - + + Show free disk space in status bar + + + + Torrent content layout: ტორენტის შიგთავსის განლაგება: - + Original ორიგინალი - + Create subfolder სუბდირექტორიის შექმნა - + Don't create subfolder არ შეიქმნას სუბდირექტორია - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... დამატება... - + Options.. პარამეტრები... - + Remove წაშლა - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: პირის კავშირის პროტოკოლი: - + Any ნებისმიერი - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time ვისგან: - + To: To end time ვისთვის: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5892,187 +6208,227 @@ Disable encryption: Only connect to peers without protocol encryption დაშიფრვის გამორთვა: პირებთან დაკავშირება მარტო პროტოკოლური დაშიფრვის გარეშე - + Allow encryption დაშიფრვაზე ნების დართვა - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">მეტი ინფორმაცია</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS წამკითხველი - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: სტატიების მაქს. რაოდენობა ერთი არხიდან: - - - + + + min minutes წ. - + Seeding Limits სიდირების ლიმიტები - - Pause torrent - ტორენტის დაპაუზება - - - + Remove torrent ტორენტის წაშლა - + Remove torrent and its files ტორენტის და მისი ფაილების დაშლა - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + ბმული: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: ფილტრები: - + Web User Interface (Remote control) ვებ მომხმარებლის ინტერფეისი (დისტანციური კონტროლი) - + IP address: IP მისამართი: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never არასდროს - + ban for: - + Session timeout: - + Disabled გამორთულია - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: სერვერის დომეინები: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6081,441 +6437,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP HTTPS გამოყენება HTTP-ს ნაცვლად - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area qBittorrent-ის ჩაკეცვა შეტყობინებების არეაში - + + Search + ძებნა + + + + WebUI + + + + Interface ინტერფეისი - + Language: ენა: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: ლოგოს სტილი უჯრაში: - - + + Normal ჩვეულებრივი - + File association ფაილის ასსოციაცია - + Use qBittorrent for .torrent files qBittorrent-ის გამოყენება .torrent ფაილების გახსნისთვის - + Use qBittorrent for magnet links qBittorrent-ის გამოყენება magnet ბმულებისთვის - + Check for program updates განახლების შემოწმება - + Power Management კვების კონტოლი - + + &Log Files + + + + Save path: შენახვის დირექტორია: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent ტორენტის დამატებისას - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! ყურადღება! შესაძლოა ინფორმაციის დაკარგვა - + Saving Management შენახვის მართვა - + Default Torrent Management Mode: ჩვეულებრივი ტირენტის კონტროლის რეჟიმი: - + Manual არაავტომატური - + Automatic ავტომატური - + When Torrent Category changed: როდესაც ტორენტის კატეგორია იცვლება: - + Relocate torrent ტორენტის ლოკაციის შეცვლა - + Switch torrent to Manual Mode ტორენტის გადართვა არაავტომატურ რეჟიმში - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories სუბკატეგორიების გამოყენება - + Default Save Path: ჩვეულებრივი შენახვის გზა: - + Copy .torrent files to: .torrent ფაილების კომირება მისამართით: - + Show &qBittorrent in notification area &qBittorrent-ის ჩვენება სისტემურ არეში - - &Log file - &ლოგ ფაილი - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: დასრულებული ჩამოტვირთვიანი .torrent ფაილების კოპირება შემდეგი მისიმართით: - + Pre-allocate disk space for all files დისკის ადგილის წინასწარ გამოყოფა ყველა ფაილისთვის - + Use custom UI Theme სხვა ინტერფეისის თემის გამოყენება - + UI Theme file: ინტერფეისის თემის ფაილი: - + Changing Interface settings requires application restart ინტერფეისის პარამეტრების შეცვლის შემდეგ აუცილებელია აპლიკაციის რესტარტი - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window დაიხუროს qBittorrent სისტემურ არეში - + Monochrome (for dark theme) მონოქრომული (ბნელი თემისთვის) - + Monochrome (for light theme) მონოქრომული (ნათელი თემისთვის) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days დღე - + months Delete backup logs older than 10 months თვე - + years Delete backup logs older than 10 years წელი - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state ჩამოტვირთვა ავტომატურად არ დაიწყოს - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. ჩამოტვირთვის დაწყებამდე დისკზე ადგილის რეზერვაცია მოხდეს, ფრაგმენტაციის მინიმალიზაციისთვის. სასარგებლოა მხოლოდ HDD დისკებისთვის. - + Append .!qB extension to incomplete files არადამთავრებულ ფაილებისთვის .!qB გაფართოების დამატება - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: როდესაც კატეგორიის შენახვის გზა იცვლება: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: ტორენტების ავტომატური დამატება მდებარეობიდან: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6532,766 +6929,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver ვისთვის: - + SMTP server: SMTP სერვერი: - + Sender გამგზავნელუ - + From: From sender ვისგან: - + This server requires a secure connection (SSL) ეს სერვერი საჭიროებს დაცულ კავშირს (SSL) - - + + Authentication აუტენფიკაცია - - - - + + + + Username: მომხმარებლის სახელი: - - - - + + + + Password: პაროლი: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP და μTP  - + Listening Port მოსამსენი პორტი - + Port used for incoming connections: შემომავალი კავშირებისთვის გამოყენებული პორტი: - + Set to 0 to let your system pick an unused port - + Random შემთხვევითი - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP-ს გამოყენება ჩემი როუტერიდან პორტის გადამისამართებისთვის - + Connections Limits კავშირების ლიმიტი - + Maximum number of connections per torrent: მაქსიმალური კავშირის რაოდენობა ერთ ტორენტზე: - + Global maximum number of connections: კავშირების რაოდენობის მაქსიმალური რაოდენობა: - + Maximum number of upload slots per torrent: ატვირთვის სლოტების მაქსიმალური რაოდენობა ერთ ტორენტზე: - + Global maximum number of upload slots: ატვირთვის სლოტების გლობალური მაქსიმალური რაოდენობა: - + Proxy Server Proxy სერვერი - + Type: ტიპი: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: ჰოსტი: - - - + + + Port: პორტი: - + Otherwise, the proxy server is only used for tracker connections სხვა შემთხვევაში, Proxy სერვერი გამოიყენება მარტო ტრეკერის კავშირებისთვის - + Use proxy for peer connections Proxy-ს გამოყენება პირებთან კავშირებისთვის - + A&uthentication &აუტენფიკაცია - - Info: The password is saved unencrypted - შენიშვნა: პაროლი არადაშიფრულად არის შენახული - - - + Filter path (.dat, .p2p, .p2b): ფილტრის გზა (.dat, .p2p, .p2b): - + Reload the filter ფილტრის გადატვირთვა - + Manually banned IP addresses... ხელით დაბლოკირებული IP მისამართები - + Apply to trackers დასტური ტრეკერებისთვის - + Global Rate Limits გლობალური სიჩქარის ლიმიტი - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s კბ/წ - - + + Upload: ატვირთვა: - - + + Download: ჩამოტვირთვა: - + Alternative Rate Limits ალტერნატიული სიჩქარის ლიმიტი - + Start time - + End time - + When: როდის: - + Every day ყოველ დღე - + Weekdays სამუშაო დღეები - + Weekends დასასვენი დღეები - + Rate Limits Settings სიჩქარის ლიმიტის პარამეტრები - + Apply rate limit to peers on LAN სიჩქარის ლიმიტის გამოყენება LAN-პირებისთვის - + Apply rate limit to transport overhead შეფარდების ლიმიტის მორგება ზედა ტრანსფერებზე - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol სიჩქარის ლიმიტის გამოყენება µTP პროკოტოკლთან - + Privacy კონფიდენციალურობა - + Enable DHT (decentralized network) to find more peers დეცენტრალიზებული ქსელის (DHT) ჩართვა მეტი პირის მოსაძიებლად - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) პირების გაცვლა თავსებად Bittorrent კლიენტებთან (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers პირების გაცვლის ჩართვა (PeX) მეტი პირის მოსაძიებლად - + Look for peers on your local network პირების ძებნა თქვენ ლოკალურ ქსელში - + Enable Local Peer Discovery to find more peers ლოკალური პირების აღმოჩენის მხარდაჭერის ჩართვა მეტი პირების საპოვნად - + Encryption mode: დაშიფრვის რეჟიმი: - + Require encryption დაშიფრვის მოთხოვნა - + Disable encryption დაშიფრვის გამორთვა - + Enable when using a proxy or a VPN connection ჩართვა როდესაც VPN ან Proxy კავშირი გამოიყენება - + Enable anonymous mode ანონიმური რეჟიმის ჩართვა - + Maximum active downloads: აქტიური ჩამოტვირთების მაქსიმაული რაოდენობა: - + Maximum active uploads: აქტიური ატვირთბის მაქსიმალური რაოდენობა: - + Maximum active torrents: აქტიური ტორენტების მაქსიმალური რაოდენობა: - + Do not count slow torrents in these limits ნელი ტორენტები ამ ლიმიტებში არ ჩაითვალოს - + Upload rate threshold: ატვირთვის სიჩქარის ბარიერი: - + Download rate threshold: ჩამოტვირთვის სიჩქარის ბარიერი: - - - - + + + + sec seconds წამი - + Torrent inactivity timer: ტორენტის უაქტიურობის წამზომი: - + then შემდეგ კი - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP-ს გამოყენება პორტის გადამისამართებისთვის ჩემი როუტერიდან - + Certificate: სერთიფიკატი: - + Key: გასაღები: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>ინფორმაცია სერთიფიკატების შესახებ</a> - + Change current password ახლანდელი პაროლის შეცვლა - - Use alternative Web UI - ალტერნატიული ვებ ინტერფეისის გამოყენება - - - + Files location: ფაილების ლოკაცია: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security დაცულობა - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: სანდო proxy-ს სია: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: მომსახურება: - + Register რეგისტრაცია - + Domain name: დომენის სახელი: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file ამოირჩიეთ qBittorrent-ის ინტერფეისის თემის ფაილი - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: ტორენტის სახელი - + %L: Category %L: კატეგორია - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: შენახვის მისამართი - + %C: Number of files %C: ფაილების რაოდენობა - + %Z: Torrent size (bytes) %Z: ტორენტის ზომა (ბაიტებში) - + %T: Current tracker %Z: მიმდინარე ტრეკერი - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (არცერთი) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key პრივატული გასაღები - + Select private key პრივატული გასაღების ამორჩევა - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory აირჩიეთ გასატანი მდებარეობა - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: თეგები (მძიმეებით იყოფება) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory შენახვის დირექტორიის ამორჩევა - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences - + Time Error დროის შეცდომა - + The start time and the end time can't be the same. - - + + Length Error სიგრძის შეცდომა @@ -7299,241 +7741,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown უცნობია - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection შემომავალი კავშირი - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region ქვეყანა/რეგიონი - + IP/Address - + Port პორტი - + Flags ფლაგები - + Connection კავშირი - + Client i.e.: Client application კლიენტი - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. შესაბამისობა - + Files i.e. files that are being downloaded right now ფაილები - + Column visibility სვეტის ხილვადობა - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. - + Add peers... - - + + Adding peers პირები დამატების პროცესში - + Some peers cannot be added. Check the Log for details. ზოგი-ერთი პირის დამატება შეუძლებელია. იზილეთ ლოგ ფაილი დეტალებისთვის - + Peers are added to this torrent. პირები დამატებულია ამ ტორენტთან - - + + Ban peer permanently პირის დაბლოკვა სამუდამოდ - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A N/A - + Copy IP:port @@ -7551,7 +7998,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not პირების სია დამატებისთვის (თითო IP ხაზზე) - + Format: IPv4:port / [IPv6]:port @@ -7592,27 +8039,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: ფაილები ამ ნაწილში: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information დეტალიზირებული ინფორმაციისთვის Shift ღილაკს დააწეკით @@ -7625,58 +8072,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not საძიებო პლაგინები - + Installed search plugins: დაყენებული საძიებო პლაგინები: - + Name სახელი - + Version ვერსია - + Url ბმული - - + + Enabled ჩართული - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one ახლის დაყენება - + Check for updates განახლებების შემოწმება - + Close დახურვა - + Uninstall წაშლა @@ -7795,98 +8242,65 @@ Those plugins were disabled. მოდულის წყარო - + Search plugin source: მოდულის წყაროს ძებნა: - + Local file ლოკალური ფაილი - + Web link ვებ ბმული - - PowerManagement - - - qBittorrent is active - qBittorrent-ი აქტიურია - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview გადახედვა - + Name სახელი - + Size ზომა - + Progress პროგრესი - + Preview impossible გადახედვა შეუძლებელია - + Sorry, we can't preview this file: "%1". - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. @@ -7899,27 +8313,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7960,12 +8374,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: ჩამოტვირთული: - + Availability: ხელმისაწვდომობა: @@ -7980,53 +8394,53 @@ Those plugins were disabled. ტრანსფერი - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) აქტიურია: - + ETA: ETA: - + Uploaded: ატვირთული: - + Seeds: სიდები: - + Download Speed: ჩამოტვირთვის სიჩქარე: - + Upload Speed: ატვირთვის სიჩქარე: - + Peers: პირები: - + Download Limit: ჩამოტვირთვის ლიმიტი: - + Upload Limit: ატვირთვის ლიმიტი: - + Wasted: დაკარგული: @@ -8036,193 +8450,220 @@ Those plugins were disabled. კავშირები: - + Information ინფორმაცია - + Info Hash v1: ჰეშის ინფორმეცია v1: - + Info Hash v2: ჰეშის ინფორმაცია v2 - + Comment: კომენტარი: - + Select All ყველას არჩევა - + Select None არჩევის მოხსნა - + Share Ratio: - + Reannounce In: შემდეგი ანონსი: - + Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: მთლიანი ზომა: - + Pieces: ნაწილები: - + Created By: შექმნილია: - + Added On: დამატების თარიღი: - + Completed On: დასრულების თარიღი: - + Created On: შექმნის თარიღი: - + + Private: + + + + Save Path: შენახვის გზა: - + Never არასოდეს - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - - + + %1 (%2 this session) %1 (%2 ამ სესიაში) - - + + + N/A N/A - + + Yes + კი + + + + No + არა + + + %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.) - - New Web seed - ახალი ვებ სიდი + + Add web seed + Add HTTP source + - - Remove Web seed - ვებ სიდის წაშლა + + Add web seed: + - - Copy Web seed URL - ვებ სიდის ბმულის კოპირება + + + This web seed is already in the list. + - - Edit Web seed URL - ვებ სიდის ბმულის რედაქტირება - - - + Filter files... ფაილების ფილტრი... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - 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: @@ -8230,33 +8671,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8264,22 +8705,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8315,12 +8756,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8328,103 +8769,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + ბმული: + + + + Refresh interval: + + + + + sec + წამი + + + + Default + + + RSSWidget @@ -8444,8 +8926,8 @@ Those plugins were disabled. - - + + Mark items read ელემენტის წაკითხულად მონიშვნა @@ -8470,132 +8952,115 @@ Those plugins were disabled. - - + + Delete წაშლა - + Rename... გადარქმევა... - + Rename გადარქმევა - - + + Update განახლება - + New subscription... ახალი ხელმოწერა... - - + + Update all feeds ყველა არხის განახლება - + Download torrent ტორენტის ჩამოტვირთვა - + Open news URL სიახლეების ბმულის გახსნა - + Copy feed URL არხის ბმილის კოპირება - + New folder... ახალი დირექტორია - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name გთხოვთ, ამოირჩიეთ დირექტორიის სახელი - + Folder name: დირექტორიის სახელი: - + New folder ახალი დირექტორია - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: არხის ახალი სახელი: - + Rename failed გადარქმევა ჩაიშალა - + Date: თარიღი: - + Feed: - + Author: ავტორი: @@ -8603,38 +9068,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 მოდულის გამახლება %1 - + Failed to check for plugin updates: %1 მოდულების განახლების შემოწმება ვერ მოხერხდა: %1 @@ -8709,132 +9174,142 @@ Those plugins were disabled. ზომა: - + 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 - საძიებო მოდული - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere ყველგან - + Use regular expressions სტანდარტული გამოსახულებების გამოყენება - + Open download window - + Download ჩამოტვირთვა - + Open description page აღწერის გვერდის გახსნა - + Copy ასლი - + Name სახელი - + Download link ჩამოტვირთვის ბმული - + Description page URL - + Searching... ძიება... - + Search has finished ძიება დამთავრებულია - + Search aborted ძიება შეწყდა - + An error occurred during search... ძებნისას დაფიქსირდა შეცდომა... - + Search returned no results ძებნა უშედეგოა - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility სვეტის ხილვადობა - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. @@ -8842,104 +9317,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories ყველა კატეგორია - + Movies კინო - + TV shows TV შოუ - + Music მუსიკა - + Games თამაშები - + Anime ანიმე - + Software სოფტი - + Pictures სურათები - + Books წიგნები - + Update server is temporarily unavailable. %1 განახლების სერვერი დროებით მიუწვდომელია. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 მოდული "%1" დაძველებულია, განახლება ვერსიამდე %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8949,113 +9424,144 @@ Those plugins were disabled. - - - - Search ძიება - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... საძიებო მოდულები... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example მაგალითი: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins ყველა პლაგინი - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab ჩანართის დახურვა - + Close all tabs ყველა ჩანართის დახურვა - + Select... ამორჩევა... - - - + + Search Engine საძიებო სისტემა - + + Please install Python to use the Search Engine. გთხოვთ დააყენოთ Python-ი საძიებო სისტემის გამოყენებისთვის. - + Empty search pattern ცარიელი საძიებო შაბლონი - + Please type a search pattern first გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი - + + Stop გაჩერება + + + SearchWidget::DataStorage - - Search has finished - ძიება დასრულდა + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - ძიება ვერ შესრულდა + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9168,34 +9674,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: ატვირთვა: - - - + + + - - - + + + KiB/s კბ/წ - - + + Download: ჩამოტვირთვა - + Alternative speed limits ალტერნატიული სიჩქარის ლიმიტები @@ -9387,32 +9893,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: დაკავშირებული პირები: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: ბუფერის ზომა: @@ -9427,12 +9933,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: ჩაწერის ქეშის გადატვირთვა: - + Read cache overload: წაკითხვის ქეშის გადატვირთვა @@ -9451,51 +9957,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: კავშირის სტატუსი: - - + + No direct connections. This may indicate network configuration problems. პიდაპირი კავშირები არ არის. ამას შესაძლოა იწვევდეს ქსელის კონფიგურაციის პრობლემები. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 კვანძები - + qBittorrent needs to be restarted! qBittorrent-ს ხელახლა ჩართვა სჭირდება! - - - + + + Connection Status: კავშირის სტატუსი: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. კავშირგარეშე. ეს ჩვეულებრივ ხდება მაშინ როდესაც qBittorrent ვერ ახერხებს ერთ-ერთი შემომავალი პორტის მოსმენას. - + Online ხაზზეა - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits დააწკაპუნეთ სიჩქარის ალტერნატიულ ლიმიტებზე გადასართველად - + Click to switch to regular speed limits დააწკაპუნეთ სიჩქარის ჩვეულებრივ ლიმიტებზე გადასართველად @@ -9525,13 +10057,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - განახლებულია (0) + Running (0) + - Paused (0) - დაპაუზებულია (0) + Stopped (0) + @@ -9593,36 +10125,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) დასრულებულია (%1) + + + Running (%1) + + - Paused (%1) - დაპაუზებულია (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - ტორენტების განახლება - - - - Pause torrents - ტორენტების დაპაუზება - Remove torrents - - - Resumed (%1) - განახლებულია (%1) - Active (%1) @@ -9694,31 +10226,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags არგამოყენებული ტეგების წაშლა - - - Resume torrents - ტორენტების განახლება - - - - Pause torrents - ტორენტების დაპაუზება - Remove torrents - - New Tag - ახალი ტეგი + + Start torrents + + + + + Stop torrents + Tag: ტეგი: + + + Add tag + + Invalid tag name @@ -9862,32 +10394,32 @@ Please choose a different name and try again. TorrentContentModel - + Name სახელი - + Progress პროგრესი - + Download Priority ჩამოტვირთვის პრიორიტეტი - + Remaining დარჩა - + Availability ხელმისაწვდომია - + Total Size მთლიანი ზომა @@ -9932,98 +10464,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error გადარქმების შეცდომა - + Renaming დარჩენილია - + New name: ახალი სახელი: - + Column visibility სვეტის ხილვადობა - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. - + Open გახსნა - + Open containing folder - + Rename... გადარქმევა... - + Priority პრიორიტეტი - - + + Do not download არ ჩამოიტვირთოს - + Normal ჩვეულებრივი - + High მაღალი - + Maximum მაქსიმალური - + By shown file order - + Normal priority ჩვეულებრივი პრიორიტეტი - + High priority მაღალი მრიორიტეტი - + Maximum priority მაქსიმალური პრიორიტეტი - + Priority by shown file order @@ -10031,17 +10563,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10070,13 +10602,13 @@ Please choose a different name and try again. - + Select file ამოირჩიეთ ფაილი - + Select folder ამოირჩიეთ დირექტორია @@ -10151,87 +10683,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: ტრეკერის URL-ბი: - + Comments: კომენტარები: - + Source: რესურსი: - + Progress: პროგრესი: - + Create Torrent ტორენტის შექმნა - - + + Torrent creation failed ტორენტის შექმნა ჩაშლილია - + Reason: Path to file/folder is not readable. მიზეზი: ფაილის/დირექტორიის მისამარტი არ არის წაკითხვადი - + Select where to save the new torrent ამოირჩიეთ, სად შევინახოთ ახალი ტორენტი - + Torrent Files (*.torrent) ტორენტ ფაილები (*.torrent) - Reason: %1 - მიზეზი: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator ტორენტის შემქმნელი: - + Torrent created: ტორენტი შექმნილია: @@ -10239,32 +10767,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10272,44 +10800,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 მაგნეტ ფაილის გახსნა ჩაიშალა: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - არასწორი მეტაინფორმაცია - - TorrentOptionsDialog @@ -10338,173 +10853,161 @@ Please choose a different name and try again. დაუსრულებელი ტორენტისთვის სხვა მისამართის გამოყენება - + Category: კატეგორია: - - Torrent speed limits - ტორენტის სიჩქარის ლიმიტი + + Torrent Share Limits + - + Download: ჩამოტვირთვა: - - + + - - + + Torrent Speed Limits + + + + + KiB/s კბ/წ - + These will not exceed the global limits - + Upload: ატვირთვა: - - Torrent share limits - ტორენტის გაზიარების ლიმიტი - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order თანმიმდევრობით ჩამოტვირთვა - + Disable PeX for this torrent - + Download first and last pieces first პირველ რიგში ჩამოიტვირთოს პირველი და ბოლო ნაწილი - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path აირჩიეთ შესანახი მდებარეობა - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - + წუთი - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + ტორენტის წაშლა + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10517,32 +11020,32 @@ Please choose a different name and try again. - - New Tag - ახალი ტეგი + + Add tag + - + Tag: ტეგი: - + Invalid tag name არასწორი ტეგის სახელი - + Tag name '%1' is invalid. - + Tag exists ტეგი უკვე არსებობს - + Tag name already exists. ასეთი ტეგის სახელი უკვე არსებობს. @@ -10550,115 +11053,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid პრიორიტეტი არ არის მოქმედი - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty შენახვის გზა არ უნდა იყოს ცარიელი - - + + Cannot create target directory - - + + Category cannot be empty კატეგორია არ უნდა იყოს ცარიელი - + Unable to create category შეუძლებელია კატეგორიის შექმნა - + Unable to edit category შეუძლებელია კატეგორიის რედაქტირება - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name არასწორი ტორენტის სახელი - - + + Incorrect category name არასწორი კატეგორიის სახელი @@ -10684,196 +11202,191 @@ Please choose a different name and try again. TrackerListModel - + Working მუშაობს - + Disabled გამორთულია - + Disabled for this torrent - + This torrent is private ეს ტორენტი პრივატულია - + N/A N/A - + Updating... განახლება... - + Not working არ მუშაობს - + Tracker error - + Unreachable - + Not contacted yet არ არის დაკავშირებული - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - სტატუსი - - - - Peers - პირები - - - - Seeds - სიდები - - - - Leeches - ლიჩები - - - - Times Downloaded - - - - - Message - შეტყობინება - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + სტატუსი + + + + Peers + პირები + + + + Seeds + სიდები + + + + Leeches + ლიჩები + + + + Times Downloaded + + + + + Message + შეტყობინება + TrackerListWidget - + This torrent is private ეს ტორენტი პრივატულია - + Tracker editing ტრეკერის რედაქტირება - + Tracker URL: ტრეკერის URL: - - + + Tracker editing failed ტრეკერის რედაქტირება ვერ მოხერხდა - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... ტრეკერის URL-ის რედაქტირება... - + Remove tracker ტრეკეტის წაშლა - + Copy tracker URL ტრეკერის URL-ის ასლი - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. - + Add trackers... - + Column visibility სვეტის ხილვადობა @@ -10891,37 +11404,37 @@ Please choose a different name and try again. დასამატებელი ტრეკერების სია (ერთი თითო ხაზზე): - + µTorrent compatible list URL: µTorrent-თან თავსებადი სიის ბმული: - + Download trackers list - + Add დამატება - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10929,62 +11442,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) გაფრთხილება (%1) - + Trackerless (%1) ტრეკერის გარეშე (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker ტრეკერის წაშლა - - Resume torrents - ტორენტების განახლება + + Start torrents + - - Pause torrents - ტორენტების დაპაუზება + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter ყველა (%1) @@ -10993,7 +11506,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11085,11 +11598,6 @@ Please choose a different name and try again. 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. - - - Paused - დაპაუზებული - Completed @@ -11113,220 +11621,252 @@ Please choose a different name and try again. შეცდომა - + Name i.e: torrent name სახელი - + Size i.e: torrent size ზომა - + Progress % Done პროგრესი - + + Stopped + შეჩერებულია + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) სტატუსი - + Seeds i.e. full sources (often untranslated) სიდები - + Peers i.e. partial sources (often untranslated) პირები - + Down Speed i.e: Download speed ჩამოტვირთვის სიჩქარე - + Up Speed i.e: Upload speed ატვირთვის სიჩქარე - + Ratio Share ratio შეფარდება - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category კატეგორია - + Tags ტეგები - + Added On Torrent was added to transfer list on 01/01/2010 08:00 დამატების თარიღი - + Completed On Torrent was completed on 01/01/2010 08:00 დასრულების თარიღი - + Tracker ტრეკერი - + Down Limit i.e: Download limit ჩამოტვირთვის ლიმიტი - + Up Limit i.e: Upload limit ატვირთვის ლიმიტი - + Downloaded Amount of data downloaded (e.g. in MB) ჩამოტვირთული - + Uploaded Amount of data uploaded (e.g. in MB) ატვირთული - + 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) - + Remaining Amount of data left to download (e.g. in MB) დარჩა - + Time Active - Time (duration) the torrent is active (not paused) - აქტიური დრო + Time (duration) the torrent is active (not stopped) + აქტიურობის დრო - + + Yes + დიახ + + + + No + არა + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) შესრულებული - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded ბოლო აქტიურობა - + Total Size i.e. Size including unwanted data მთლიანი ზომა - + Availability The number of distributed copies of the torrent ხელმისაწვდომია - + Info Hash v1 i.e: torrent info hash v1 - ჰეშის ინფორმაცია v2 {1?} + - + Info Hash v2 i.e: torrent info hash v2 - ჰეშის ინფორმაცია v2 {2?} + - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (სიდირდება %2) @@ -11335,339 +11875,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility სვეტის ხილვადობა - + Recheck confirmation დასტურის გადამოწმება - + Are you sure you want to recheck the selected torrent(s)? დარწყმუნებული ხართ რომ გსურთ ამორჩეული ტორენტის(ების) გადამოწმება? - + Rename გადარქმევა - + New name: ახალი სახელი: - + Choose save path აირჩიეთ შესანახი მდებარეობა - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns სვეტების ზომის შეცვლა - + Resize all non-hidden columns to the size of their contents ყველა ხილული სვეტის ზომის გასწორება მათი შიგთავსის მიხედვით. - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - ტეგების დამატება - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags ყველა ტეგის წაშლა - + Remove all tags from selected torrents? ყველა ტეგის წაშლა ამორჩეული ტორენტებიდან? - + Comma-separated tags: - + Invalid tag არასწორი ტეგი - + Tag name: '%1' is invalid ტეგის სახელი '%1' არასწორია - - &Resume - Resume/start the torrent - &გაგრძელება - - - - &Pause - Pause the torrent - &პაუზა - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order თანმიმდევრობით ჩამოტვირთვა - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first პირველ რიგში ჩამოიტვირთოს პირველი და ბოლო ნაწილი - + Automatic Torrent Management ტორენტის ავტომატური მართვა - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode სუპერ სიდირების რეჟიმი @@ -11712,28 +12232,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11741,7 +12261,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11772,20 +12297,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11793,32 +12319,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11910,72 +12436,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11983,125 +12509,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + უცნობი შეცდომა + + misc - + B bytes - + KiB kibibytes (1024 bytes) კბ - + MiB mebibytes (1024 kibibytes) მბ - + GiB gibibytes (1024 mibibytes) გბ - + TiB tebibytes (1024 gibibytes) ტბ - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second /წამი - + %1s e.g: 10 seconds - %1წთ {1s?} + - + %1m e.g: 10 minutes %1წთ - + %1h %2m e.g: 3 hours 5 minutes %1ს %2წთ - + %1d %2h e.g: 2 days 10 hours %1დ %2ს - + %1y %2d e.g: 2 years 10 days - %1დ %2ს {1y?} {2d?} + - - + + Unknown Unknown (size) უცნობია - + qBittorrent will shutdown the computer now because all downloads are complete. იმის გამო რომ ყველა ჩამოტვირთვა დასრულდა, ახლა qBittorrent გამორთავს კომპიტერს. - + < 1m < 1 minute < 1წთ diff --git a/src/lang/qbittorrent_ko.ts b/src/lang/qbittorrent_ko.ts index f199dafae..9ba51defa 100644 --- a/src/lang/qbittorrent_ko.ts +++ b/src/lang/qbittorrent_ko.ts @@ -14,75 +14,75 @@ 정보 - + Authors 작성자 - + Current maintainer 현재 관리자 - + Greece 그리스 - - + + Nationality: 국적: - - + + E-mail: 이메일: - - + + Name: 이름: - + Original author 원본 작성자 - + France 프랑스 - + Special Thanks 고마운 분들 - + Translators 번역자 - + License 라이선스 - + Software Used 사용된 소프트웨어 - + qBittorrent was built with the following libraries: qBittorrent는 다음 라이브러리로 만들어졌습니다: - + Copy to clipboard 클립보드에 복사 @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 qBittorrent 프로젝트 + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 qBittorrent 프로젝트 @@ -166,15 +166,10 @@ 저장 위치 - + Never show again 다시 표시 안함 - - - Torrent settings - 토렌트 설정 - Set as default category @@ -191,12 +186,12 @@ 토렌트 시작 - + Torrent information 토렌트 정보 - + Skip hash check 해시 검사 건너뛰기 @@ -205,6 +200,11 @@ Use another path for incomplete torrent 불완전한 토렌트에 다른 경로 사용 + + + Torrent options + Torrent 옵션 + Tags: @@ -231,75 +231,75 @@ 중지 조건: - - + + None 없음 - - + + Metadata received 수신된 메타데이터 - + Torrents that have metadata initially will be added as stopped. - + 처음에 메타데이터가 포함된 토렌트는 중지된 상태로 추가됩니다. - - + + Files checked 파일 확인됨 - + Add to top of queue 대기열 맨 위에 추가하기 - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog 이 옵션을 선택하면 옵션 대화 상자의 "내려받기" 페이지 설정에 관계없이 .torrent 파일이 삭제되지 않습니다. - + Content layout: 내용 배치: - + Original 원본 - + Create subfolder 하위 폴더 만들기 - + Don't create subfolder 하위 폴더 만들지 않기 - + Info hash v1: 정보 해시 v1: - + Size: 크기: - + Comment: 주석: - + Date: 날짜: @@ -329,151 +329,147 @@ 마지막으로 사용한 저장 경로 기억 - + Do not delete .torrent file .torrent 파일 삭제 안 함 - + Download in sequential order 순차 내려받기 - + Download first and last pieces first 처음과 마지막 조각을 먼저 내려받기 - + Info hash v2: 정보 해시 v2: - + Select All 모두 선택 - + Select None 선택 없음 - + Save as .torrent file... .torrent 파일로 저장… - + I/O Error I/O 오류 - + Not Available This comment is unavailable 사용할 수 없음 - + Not Available This date is unavailable 사용할 수 없음 - + Not available 사용할 수 없음 - + Magnet link 마그넷 링크 - + Retrieving metadata... 메타데이터 검색 중… - - + + Choose save path 저장 경로 선정 - + No stop condition is set. 중지 조건이 설정되지 않았습니다. - + Torrent will stop after metadata is received. 메타데이터가 수신되면 토렌트가 중지됩니다. - Torrents that have metadata initially aren't affected. - 처음에 메타데이터가 있는 토렌트는 영향을 받지 않습니다. - - - + Torrent will stop after files are initially checked. 파일을 처음 확인한 후에는 토렌트가 중지됩니다. - + This will also download metadata if it wasn't there initially. 처음에 메타데이터가 없는 경우 메타데이터 또한 내려받기됩니다. - - + + N/A 해당 없음 - + %1 (Free space on disk: %2) %1 (디스크 남은 용량: %2) - + Not available This size is unavailable. 사용할 수 없음 - + Torrent file (*%1) 토렌트 파일 (*%1) - + Save as torrent file 토렌트 파일로 저장 - + Couldn't export torrent metadata file '%1'. Reason: %2. '%1' 토렌트 메타데이터 파일을 내보낼 수 없습니다. 원인: %2. - + Cannot create v2 torrent until its data is fully downloaded. 데이터를 완전히 내려받을 때까지 v2 토렌트를 만들 수 없습니다. - + Filter files... 파일 필터링... - + Parsing metadata... 메타데이터 분석 중… - + Metadata retrieval complete 메타데이터 복구 완료 @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" 토렌트 내려받는 중... 소스 : "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" 토렌트를 추가하지 못했습니다. 소스 : "%1". 이유 : "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - 중복 토렌트를 추가하려는 시도를 감지했습니다. 소스 : %1. 기존 토렌트 : %2. 결과 : %3 - - - + Merging of trackers is disabled 트래커 병합이 비활성화됨 - + Trackers cannot be merged because it is a private torrent 비공개 토렌트이기 때문에 트래커를 병합할 수 없음 - + Trackers are merged from new source 새 소스에서 트래커가 병합됨 + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - 토렌트 공유 제한 + 토렌트 공유 제한 @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion 완료했을 때 토렌트 다시 검사 - - + + ms milliseconds ms - + Setting 설정 - + Value Value set for this setting - + (disabled) (비활성화됨) - + (auto) (자동) - + + min minutes - + All addresses 모든 주소 - + qBittorrent Section qBittorrent 부분 - - + + Open documentation 문서 열기 - + All IPv4 addresses 모든 IPv4 주소 - + All IPv6 addresses 모든 IPv6 주소 - + libtorrent Section libtorrent 부분 - + Fastresume files Fastresume 파일 - + SQLite database (experimental) SQLite 데이터베이스 (실험적) - + Resume data storage type (requires restart) - 이어받기 데이터 저장 유형 (다시 시작 필요) + 이어받기 데이터 저장소 유형 (다시 시작 필요) - + Normal 보통 - + Below normal 보통 이하 - + Medium 중간 - + Low 낮음 - + Very low 매우 낮음 - + Physical memory (RAM) usage limit 물리적 메모리(RAM) 사용량 제한 - + Asynchronous I/O threads 비동기 I/O 스레드 - + Hashing threads 해싱 스레드 - + File pool size 파일 풀 크기 - + Outstanding memory when checking torrents 토렌트를 확인할 때 사용할 초과 메모리 - + Disk cache 디스크 캐시 - - - - + + + + + s seconds - + Disk cache expiry interval 디스크 캐시 만료 간격 - + Disk queue size 디스크 대기열 크기 - - + + Enable OS cache OS 캐시 활성화 - + Coalesce reads & writes 읽기 및 쓰기 통합 - + Use piece extent affinity 조각 범위 선호도 사용 - + Send upload piece suggestions 조각 올려주기 제안 보내기 - - - - + + + + + 0 (disabled) 0 (비활성화됨) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - 이어받기 데이터 간격 저장 [0: 비활성화됨] + 이어받기 데이터 저장 간격 [0: 비활성화됨] - + Outgoing ports (Min) [0: disabled] 나가는 포트 (최소) [0: 비활성화됨] - + Outgoing ports (Max) [0: disabled] 나가는 포트 (최대) [0: 비활성화됨] - + 0 (permanent lease) 0 (영구 임대) - + UPnP lease duration [0: permanent lease] UPnP 임대 기간 [0: 영구 임대] - + Stop tracker timeout [0: disabled] 중지 트래커 만료시간 [0: 비활성화됨] - + Notification timeout [0: infinite, -1: system default] 알림 만료시간 [0: 무한, -1: 시스템 기본값] - + Maximum outstanding requests to a single peer 단일 피어에 대한 최대 미해결 요청 - - - - - + + + + + KiB KiB - + (infinite) (무한) - + (system default) (시스템 기본값) - + + Delete files permanently + 파일을 영구적으로 삭제 + + + + Move files to trash (if possible) + 쓰레기통으로 파일 이동 (가능한 경우) + + + + Torrent content removing mode + 토렌트 내용 제거 모드 + + + This option is less effective on Linux 이 옵션은 Linux에서 효과적이지 않습니다 - + Process memory priority 프로세스 메모리 우선순위 - + Bdecode depth limit Bdecode 깊이 제한 - + Bdecode token limit Bdecode 토큰 제한 - + Default 기본값 - + Memory mapped files 메모리 매핑된 파일 - + POSIX-compliant POSIX 호환 - + + Simple pread/pwrite + 단순 미리 읽기/다시 쓰기 + + + Disk IO type (requires restart) 디스크 IO 유형 (다시 시작 필요) - - + + Disable OS cache OS 캐시 비활성화 - + Disk IO read mode 디스크 IO 읽기 모드 - + Write-through 연속 기입 - + Disk IO write mode 디스크 IO 쓰기 모드 - + Send buffer watermark 전송 버퍼 워터마크 - + Send buffer low watermark 전송 버퍼 낮은 워터마크 - + Send buffer watermark factor 전송 버퍼 워터마크 인자 - + Outgoing connections per second 초당 나가는 연결 수 - - + + 0 (system default) 0 (시스템 기본값) - + Socket send buffer size [0: system default] 소켓 전송 버퍼 크기 [0: 시스템 기본값] - + Socket receive buffer size [0: system default] 소켓 수신 버퍼 크기 [0: 시스템 기본값] - + Socket backlog size 소켓 백로그 크기 - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + 통계 저장 간격 [0: 비활성화] + + + .torrent file size limit .torrent 파일 크기 제한 - + Type of service (ToS) for connections to peers 피어 연결에 대한 서비스 유형 (ToS) - + Prefer TCP TCP 우선 - + Peer proportional (throttles TCP) 피어 비례 (TCP 조절) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) 국제 도메인 이름(IDN) 지원 - + Allow multiple connections from the same IP address 같은 IP 주소의 다중 접속 허용하기 - + Validate HTTPS tracker certificates HTTPS 트래커 인증서 유효성 검사 - + Server-side request forgery (SSRF) mitigation SSRF(서버 측 요청 변조) 완화 - + Disallow connection to peers on privileged ports 권한 있는 포트에 대한 피어 연결 허용 안 함 - + It appends the text to the window title to help distinguish qBittorent instances - + qBittorent 인스턴스를 구별할 수 있도록 창 제목에 텍스트를 추가 - + Customize application instance name - + 앱 인스턴스 이름 사용자 지정 - + It controls the internal state update interval which in turn will affect UI updates UI 업데이트에 영향을 주는 내부 상태 업데이트 간격을 제어합니다 - + Refresh interval 새로고침 간격 - + Resolve peer host names 피어 호스트 이름 분석 - + IP address reported to trackers (requires restart) 트래커에 보고된 IP 주소 (다시 시작 필요) - + + Port reported to trackers (requires restart) [0: listening port] + 트래커에 보고된 포트 (재시작 필요) [0: 수신 포트] + + + Reannounce to all trackers when IP or port changed IP 또는 포트가 변경되면 모든 트래커에게 다시 알림 - + Enable icons in menus 메뉴에서 아이콘 활성화 - + + Attach "Add new torrent" dialog to main window + 기본 창에 "새 토렌트 추가" 대화 상자를 첨부합니다 + + + Enable port forwarding for embedded tracker 임베디드 트래커에 대한 포트 포워딩 활성화 - + Enable quarantine for downloaded files 내려받은 파일에 대한 격리 활성화 - + Enable Mark-of-the-Web (MOTW) for downloaded files 내려받은 파일에 대해 MOTW(Mark-of-the-Web) 활성화 - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + 인증서 유효성 검사 및 비 토렌트 프로토콜 활동(예: RSS 피드, 프로그램 업데이트, 토렌트 파일, geoip db 등)에 영향을 미칩니다. + + + + Ignore SSL errors + SSL 오류 무시 + + + (Auto detect if empty) (비어있는 경우 자동 감지) - + Python executable path (may require restart) Python 실행 경로(다시 시작해야 할 수 있음) - + + Start BitTorrent session in paused state + 일시정지 상태에서 BitTorrent 세션 시작 + + + + sec + seconds + + + + + -1 (unlimited) + -1 (무제한) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent 세션 종료 만료 시간 [-1: 무제한] + + + Confirm removal of tracker from all torrents 모든 토렌트에서 트래커 제거 확인 - + Peer turnover disconnect percentage 피어 전환 연결 해제율(%) - + Peer turnover threshold percentage 피어 전환 임계율(%) - + Peer turnover disconnect interval 피어 전환 연결 해제 간격 - + Resets to default if empty 비어 있는 경우 기본값으로 재설정 - + DHT bootstrap nodes DHT 부트스트랩 노드 - + I2P inbound quantity I2P 인바운드 분량 - + I2P outbound quantity I2P 아웃바운드 분량 - + I2P inbound length I2P 인바운드 길이 - + I2P outbound length I2P 아웃바운드 길이 - + Display notifications 알림 표시 - + Display notifications for added torrents 추가된 토렌트에 대한 알림 화면표시 - + Download tracker's favicon 내려받기 트래커의 즐겨찾기 아이콘 - + Save path history length 저장 경로 목록 길이 - + Enable speed graphs 속도 그래프 활성화 - + Fixed slots 고정 슬롯 - + Upload rate based 올려주기 속도 기반 - + Upload slots behavior 올려주기 슬롯 동작 - + Round-robin 라운드 로빈 - + Fastest upload 가장 빠른 올려주기 - + Anti-leech 리치 방지 - + Upload choking algorithm 올려주기 억제 알고리즘 - + Confirm torrent recheck 토렌트 다시 검사 확인 - + Confirm removal of all tags 모든 태그 제거 확인 - + Always announce to all trackers in a tier 계층 내 모든 트래커에 항상 알리기 - + Always announce to all tiers 모든 계층에 항상 알리기 - + Any interface i.e. Any network interface 모든 인터페이스 - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP 혼합 모드 알고리즘 - + Resolve peer countries 피어 국가 분석 - + Network interface 네트워크 인터페이스 - + Optional IP address to bind to 결합할 선택적 IP 주소 - + Max concurrent HTTP announces 최대 동시 HTTP 알림 - + Enable embedded tracker 내장 트래커 활성화 - + Embedded tracker port 내장 트래커 포트 + + AppController + + + + Invalid directory path + 잘못된 디렉터리 경로 + + + + Directory does not exist + 디렉터리 경로가 존재하지 않음 + + + + Invalid mode, allowed values: %1 + 잘못된 모드, 허용되는 값: %1 + + + + cookies must be array + 쿠키는 배열이어야 합니다 + + Application - + Running in portable mode. Auto detected profile folder at: %1 휴대 모드로 실행 중입니다. %1에서 프로필 폴더가 자동으로 탐지되었습니다. - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. 중복 명령줄 플래그가 감지됨: "%1". 포터블 모드는 상대적인 fastresume을 사용합니다. - + Using config directory: %1 사용할 구성 디렉터리: %1 - + 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를 사용해 주셔서 감사합니다. - + Torrent: %1, sending mail notification 토렌트: %1, 알림 메일 전송 중 - + Add torrent failed 토렌트 추가 실패 - + Couldn't add torrent '%1', reason: %2. 토렌트 '%1'을(를) 추가할 수 없음, 이유 : %2. - + The WebUI administrator username is: %1 WebUI 관리자 사용자 이름: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 WebUI 관리자 비밀번호가 설정되지 않았습니다. 이 세션에 임시 비밀번호가 제공되었습니다: %1 - + You should set your own password in program preferences. 프로그램 환경설정에서 자신만의 비밀번호를 설정해야 합니다. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI가 비활성화되었습니다! WebUI를 활성화하려면 구성 파일을 수동으로 편집하세요. - + Running external program. Torrent: "%1". Command: `%2` 외부 프로그램을 실행 중입니다. 토렌트: "%1". 명령: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` 외부 프로그램을 실행하지 못했습니다. 토렌트: "%1". 명령: `%2` - + Torrent "%1" has finished downloading "%1" 토렌트 내려받기를 완료했습니다 - + WebUI will be started shortly after internal preparations. Please wait... WebUI는 내부 준비를 마친 후 곧 시작할 예정입니다. 기다려 주십시오... - - + + Loading torrents... 토렌트 불러오는 중... - + E&xit 종료(&X) - + I/O Error i.e: Input/Output Error I/O 오류 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ 원인: %2 - + Torrent added 토렌트 추가됨 - + '%1' was added. e.g: xxx.avi was added. '%1'이(가) 추가되었습니다. - + Download completed 내려받기 완료됨 - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1이(가) 시작되었습니다. 프로세스 ID : %2 - + + This is a test email. + 이건 테스트 이메일입니다. + + + + Test email + 테스트 이메일 + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' 내려받기를 완료했습니다. - + Information 정보 - + To fix the error, you may need to edit the config file manually. 오류를 수정하려면 구성 파일을 수동으로 편집해야 할 수 있습니다. - + To control qBittorrent, access the WebUI at: %1 qBittorrent를 제어하려면 다음에서 웹 UI에 접속: %1 - + Exit 종료 - + Recursive download confirmation 반복적으로 내려받기 확인 - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? 토렌트 '%1'에 .torrent 파일이 포함되어 있습니다. 내려받기를 계속하시겠습니까? - + Never 절대 안함 - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" 토렌트 내의 .torent 파일을 반복적으로 내려받기합니다. 원본 토렌트: "%1". 파일: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" 물리적 메모리(RAM) 사용량 제한을 설정하지 못했습니다. 오류 코드: %1. 오류 메시지: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" 물리적 메모리(RAM) 사용량 하드 제한을 설정하지 못했습니다. 요청된 크기: %1. 시스템 하드 제한: %2. 오류 코드: %3. 오류 메시지: "%4" - + qBittorrent termination initiated qBittorrent 종료가 시작되었습니다 - + qBittorrent is shutting down... qBittorrent가 종료되고 있습니다... - + Saving torrent progress... 토렌트 진행 상태 저장 중… - + qBittorrent is now ready to exit qBittorrent가 이제 종료할 준비가 되었습니다. @@ -1596,7 +1702,7 @@ Auto downloading of RSS torrents is currently disabled. You can enable it in application settings. - RSS 토렌트의 자동 내려받기는 현재 비활성화되었습니다. 응용 프로그램 설정에서 활성화 설정할 수 있습니다. + RSS 토렌트의 자동 내려받기는 현재 비활성화되었습니다. 앱 설정에서 활성화 설정할 수 있습니다. @@ -1609,12 +1715,12 @@ 우선순위: - + Must Not Contain: 무조건 제외: - + Episode Filter: 에피소드 필터: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 내보내기(&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 시즌 번호는 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> 시즌 1의 에피소드 25와 일치됩니다 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one 정상 범위: <b>1x25-40;</b> 가 시즌 1의 에피소드 25~40과 일치됩니다 - + Episode number is a mandatory positive value 에피소드 숫자는 양수여야 합니다 - + Rules 규칙 - + Rules (legacy) 규칙 (이전) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons 무한 범위: <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 규칙 삭제 확인 - + Invalid action 잘못된 동작 - + The list is empty, there is nothing to export. 목록이 비어 있으므로 내보낼 항목이 없습니다. - + Export RSS rules RSS 규칙 내보내기 - + I/O Error I/O 오류 - + Failed to create the destination file. Reason: %1 대상 파일을 만들지 못했습니다. 원인: %1 - + Import RSS rules RSS 규칙 가져오기 - + Failed to import the selected rules file. Reason: %1 선택한 규칙 파일을 가져오지 못했습니다. 원인: %1 - + Add new rule... 새 규칙 추가… - + Delete rule 규칙 삭제 - + Rename rule... 규칙 이름 바꾸기… - + Delete selected rules 선택한 규칙 삭제 - + Clear downloaded episodes... 내려받은 에피소드 지우기… - + Rule renaming 규칙 이름 바꾸기 - + Please type the new rule name 새 규칙 이름을 입력하십시오 - + Clear downloaded episodes 내려받은 에피소드 지우기 - + Are you sure you want to clear the list of downloaded episodes for the selected rule? 선택한 규칙으로 내려받은 에피소드 목록을 지우시겠습니까? - + Regex mode: use Perl-compatible regular expressions 정규표현식 모드: Perl 호환 정규표현식 사용 - - + + Position %1: %2 위치 %1: %2 - + Wildcard mode: you can use 와일드카드 모드: 사용 가능 - - + + Import error 가져오기 오류 - + Failed to read the file. %1 파일을 읽지 못했습니다. %1 - + ? to match any single character ? = 임의의 글자 하나와 일치 - + * to match zero or more of any characters * = 0개 이상의 모든 글자 - + Whitespaces count as AND operators (all words, any order) 공백 = AND 연산자 (모든 단어, 모든 순서) - + | is used as OR operator | = OR 연산자 - + If word order is important use * instead of whitespace. 단어 순서가 중요하다면 공백 대신 *를 사용하십시오. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) 빈 %1 절이 있는 표현식 (예: %2) - + will match all articles. 은(는) 모든 규약과 일치됩니다. - + will exclude all articles. 은(는) 모든 규약을 제외합니다. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" 토렌트 이어받기 폴더를 만들 수 없습니다. "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 이어받기 데이터를 구문 분석할 수 없음: 잘못된 형식 - - + + Cannot parse torrent info: %1 토렌트 정보를 분석할 수 없음: %1 - + Cannot parse torrent info: invalid format 토렌트 정보를 분석할 수 없음: 잘못된 형식 - + Mismatching info-hash detected in resume data + 이력 데이터에서 불일치하는 정보 해시 발견 + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. 토렌트 메타데이터를 '%1'에 저장할 수 없습니다. 오류: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. 토렌트 이어받기 데이터를 '%1'에 저장할 수 없습니다. 오류: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 이어받기 데이터를 분석할 수 없음: %1 - + Resume data is invalid: neither metadata nor info-hash was found 이어받기 데이터가 잘못되었습니다. 메타데이터나 정보 해시를 찾을 수 없습니다. - + Couldn't save data to '%1'. Error: %2 데이터를 '%1'에 저장할 수 없습니다. 오류: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. 찾지 못했습니다. - + Couldn't load resume data of torrent '%1'. Error: %2 토렌트 '%1'의 이어받기 데이터를 불러올 수 없습니다. 오류: %2 - - + + Database is corrupted. 데이터베이스가 손상되었습니다. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. WAL(Write-Ahead Logging) 저널링 모드를 활성화할 수 없습니다. 오류: %1. - + Couldn't obtain query result. 쿼리 결과를 확인할 수 없습니다. - + WAL mode is probably unsupported due to filesystem limitations. 파일 시스템 제한으로 인해 WAL 모드가 지원되지 않을 수 있습니다. - + + + Cannot parse resume data: %1 + 이어받기 데이터를 분석할 수 없음: %1 + + + + + Cannot parse torrent info: %1 + 토렌트 정보를 분석할 수 없음: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 트랜잭션을 시작할 수 없습니다. 오류: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. 토렌트 메타데이터를 저장할 수 없습니다. 오류: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 토렌트 '%1'의 이어받기 데이터를 저장할 수 없습니다. 오류: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 토렌트 '%1'의 이어받기 데이터를 삭제할 수 없습니다. 오류: %2 - + Couldn't store torrents queue positions. Error: %1 토렌트 대기열 위치를 저장할 수 없습니다. 오류: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 분산 해시 테이블(DHT) 지원: %1 - - - - - - - - - + + + + + + + + + ON 켜짐 - - - - - - - - - + + + + + + + + + OFF 꺼짐 - - + + Local Peer Discovery support: %1 로컬 피어 찾기 지원: %1 - + Restart is required to toggle Peer Exchange (PeX) support 피어 익스체인지(PeX) 지원을 전환하려면 다시 시작해야 합니다 - + Failed to resume torrent. Torrent: "%1". Reason: "%2" 토렌트를 이어받지 못했습니다. 토렌트: "%1". 원인: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" 토렌트 이어받기 실패: 일치하지 않는 토렌트 ID가 감지되었습니다. 토렌트: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" 일치하지 않는 데이터 감지됨: 구성 파일에서 범주가 누락되었습니다. 범주는 복구되지만 해당 설정은 기본값으로 재설정됩니다. 토렌트: "%1". 범주: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" 일치하지 않는 데이터 감지됨: 잘못된 범주입니다. 토렌트: "%1". 범주: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" 복구된 범주의 저장 경로와 토렌트의 현재 저장 경로 간의 불일치가 감지되었습니다. 지금부터 토렌트가 수동 모드로 전환되었습니다. 토렌트: "%1". 범주: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" 일치하지 않는 데이터 감지됨: 구성 파일에서 태그가 누락되었습니다. 태그가 복구됩니다. 토렌트: "%1". 태그: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" 일치하지 않는 데이터 감지됨: 잘못된 태그입니다. 토렌트: "%1". 태그: "%2" - + System wake-up event detected. Re-announcing to all the trackers... 시스템 깨우기 이벤트가 감지되었습니다. 모든 트래커에게 다시 알립니다... - + Peer ID: "%1" 피어 ID: "%1" - + HTTP User-Agent: "%1" HTTP 사용자-에이전트: "%1" - + Peer Exchange (PeX) support: %1 피어 익스체인지(PeX) 지원: %1 - - + + Anonymous mode: %1 익명 모드: %1 - - + + Encryption support: %1 암호화 지원: %1 - - + + FORCED 강제 적용됨 - + Could not find GUID of network interface. Interface: "%1" 네트워크 인터페이스의 GUID를 찾을 수 없습니다. 인터페이스: "%1" - + Trying to listen on the following list of IP addresses: "%1" 다음 IP 주소 목록에서 수신하기 위해 시도하는 중: "%1" - + Torrent reached the share ratio limit. 토렌트가 공유 비율 제한에 도달했습니다. - - - + Torrent: "%1". 토렌트: "%1". - - - - Removed torrent. - 토렌트를 제거했습니다. - - - - - - Removed torrent and deleted its content. - 토렌트를 제거하고 내용을 삭제했습니다. - - - - - - Torrent paused. - 토렌트가 일시정지되었습니다. - - - - - + Super seeding enabled. 초도 배포가 활성화되었습니다. - + Torrent reached the seeding time limit. 토렌트가 배포 제한 시간에 도달했습니다. - + Torrent reached the inactive seeding time limit. 토렌트가 비활성 시드 시간 제한에 도달했습니다. - + Failed to load torrent. Reason: "%1" 토렌트를 불러오지 못했습니다. 원인: "%1" - + I2P error. Message: "%1". I2P 오류. 메시지: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP 지원: 켬 - + + Saving resume data completed. + 이력 데이터 저장이 완료되었습니다. + + + + BitTorrent session successfully finished. + BitTorrent 세션이 성공적으로 완료되었습니다. + + + + Session shutdown timed out. + 세션 종료 시간이 초과되었습니다. + + + + Removing torrent. + 토렌트를 제거합니다. + + + + Removing torrent and deleting its content. + 토렌트 및 내용을 제거합니다. + + + + Torrent stopped. + 토렌트가 중지되었습니다. + + + + Torrent content removed. Torrent: "%1" + 토렌트 내용이 제거되었습니다. 토렌트: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + 토렌트 내용을 제거하지 못했습니다. 토렌트: "%1". 오류: "%2" + + + + Torrent removed. Torrent: "%1" + 토렌트가 제거되었습니다. 토렌트: "%1" + + + + Merging of trackers is disabled + 트래커 병합이 비활성화됨 + + + + Trackers cannot be merged because it is a private torrent + 비공개 토렌트이기 때문에 트래커를 병합할 수 없음 + + + + Trackers are merged from new source + 새 소스에서 트래커가 병합됨 + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP 지원: 끔 - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" 토렌트를 내보내지 못했습니다. 토렌트: "%1". 대상: %2. 원인: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 이어받기 데이터 저장을 중단했습니다. 미해결 토렌트 수: %1 - + The configured network address is invalid. Address: "%1" 구성된 네트워크 주소가 잘못되었습니다. 주소: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" 수신 대기하도록 구성된 네트워크 주소를 찾지 못했습니다. 주소: "%1" - + The configured network interface is invalid. Interface: "%1" 구성된 네트워크 인터페이스가 잘못되었습니다. 인터페이스: "%1" - + + Tracker list updated + 트래커 목록 업데이트 + + + + Failed to update tracker list. Reason: "%1" + 트랙커 목록을 업데이트하지 못했습니다. 이유: “%1” + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" 금지된 IP 주소 목록을 적용하는 동안 잘못된 IP 주소를 거부했습니다. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" 토렌트에 트래커를 추가했습니다. 토렌트: "%1". 트래커: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" 토렌트에서 트래커를 제거했습니다. 토렌트: "%1". 트래커: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" 토렌트에 URL 배포를 추가했습니다. 토렌트: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" 토렌트에서 URL 배포를 제거했습니다. 토렌트: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - 토렌트가 일시정지되었습니다. 토렌트: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + 조각 파일을 제거하지 못했습니다. 토런트 : "%1". 이유 : "%2". - + Torrent resumed. Torrent: "%1" 토렌트가 이어받기되었습니다. 토렌트: "%1" - + Torrent download finished. Torrent: "%1" 토렌트 내려받기를 완료했습니다. 토렌트: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" 토렌트 이동이 취소되었습니다. 토렌트: "%1". 소스: "%2". 대상: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + 토렌트가 정지되었습니다. 토렌트: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination 토렌트 이동을 대기열에 넣지 못했습니다. 토렌트: "%1". 소스: "%2". 대상: "%3". 원인: 현재 토렌트가 대상으로 이동 중입니다 - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location 토렌트 이동을 대기열에 넣지 못했습니다. 토렌트: "%1". 소스: "%2" 대상: "%3". 원인: 두 경로 모두 동일한 위치를 가리킵니다 - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" 대기열에 있는 토렌트 이동입니다. 토렌트: "%1". 소스: "%2". 대상: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" 토렌트 이동을 시작합니다. 토렌트: "%1". 대상: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" 범주 구성을 저장하지 못했습니다. 파일: "%1". 오류: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" 범주 구성을 분석하지 못했습니다. 파일: "%1". 오류: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP 필터 파일을 성공적으로 분석했습니다. 적용된 규칙 수: %1 - + Failed to parse the IP filter file IP 필터 파일을 분석하지 못했습니다 - + Restored torrent. Torrent: "%1" 토렌트를 복원했습니다. 토렌트: "%1" - + Added new torrent. Torrent: "%1" 새로운 토렌트를 추가했습니다. 토렌트: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" 토렌트 오류가 발생했습니다. 토렌트: "%1". 오류: "%2" - - - Removed torrent. Torrent: "%1" - 토렌트를 제거했습니다. 토렌트: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - 토렌트를 제거하고 내용을 삭제했습니다. 토렌트: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + 토렌트에 SSL 매개변수가 누락되었음. 토렌트: "%1". 메시지: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" 파일 오류 경고입니다. 토렌트: "%1". 파일: "%2" 원인: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP 포트 매핑에 실패했습니다. 메시지: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP 포트 매핑에 성공했습니다. 메시지: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP 필터 - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). 필터링된 포트 (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). 특별 허가된 포트 (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL 시드 연결에 실패했습니다. 토렌트: “%1”. URL: “%2”. 오류: “%3” + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent 세션에 심각한 오류가 발생했습니다. 이유: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 프록시 오류입니다. 주소: %1. 메시지: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 혼합 모드 제한 - + Failed to load Categories. %1 범주를 불러오지 못했습니다. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" 범주 구성을 불러오지 못했습니다. 파일: "%1". 오류: "잘못된 데이터 형식" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - 토렌트를 제거했지만 해당 콘텐츠 및/또는 파트파일을 삭제하지 못했습니다. 토렌트: "%1". 오류: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 비활성화됨 - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 비활성화됨 - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL 배포 DNS를 조회하지 못했습니다. 토렌트: "%1". URL: "%2". 오류: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" URL 배포에서 오류 메시지를 수신했습니다. 토렌트: "%1". URL: "%2". 메시지: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" IP에서 성공적으로 수신 대기 중입니다. IP: "%1". 포트: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" IP 수신에 실패했습니다. IP: "%1" 포트: %2/%3. 원인: "%4" - + Detected external IP. IP: "%1" 외부 IP를 감지했습니다. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" 오류: 내부 경고 대기열이 가득 차서 경고가 삭제되었습니다. 성능이 저하될 수 있습니다. 삭제된 경고 유형: "%1". 메시지: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" 토렌트를 성공적으로 이동했습니다. 토렌트: "%1". 대상: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" 토렌트를 이동하지 못했습니다. 토렌트: "%1". 소스: "%2". 대상: %3. 원인: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + 배포하지 못했습니다. BitTorrent::TorrentCreator - + Operation aborted 작업 중단됨 - - + + Create new torrent file failed. Reason: %1. 새 토렌트 파일을 만들지 못했습니다. 원인: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 "%2" 토렌트에 "%1" 피어를 추가하지 못했습니다. 원인: %3 - + Peer "%1" is added to torrent "%2" "%1" 피어를 "%2" 토렌트에 추가했습니다 - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. 예기치 않은 데이터가 감지되었습니다. 토렌트: %1. 데이터: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. 파일에 쓸 수 없습니다. 원인: %1. 토렌트는 이제 "올려주기 전용" 모드입니다. - + Download first and last piece first: %1, torrent: '%2' 처음과 마지막 조각 먼저 내려받기: %1, 토렌트: '%2' - + On 켜기 - + Off 끄기 - + Failed to reload torrent. Torrent: %1. Reason: %2 - + 토렌트를 다시 불러오지 못했습니다. 토렌트: "%1". 사유: "%2" - + Generate resume data failed. Torrent: "%1". Reason: "%2" 이어받기 데이터를 생성하지 못했습니다. 토렌트: "%1". 원인: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" 토렌트를 복원하지 못했습니다. 파일이 이동했거나 저장소에 접속할 수 없습니다. 토렌트: %1. 원인: %2 - + Missing metadata 누락된 메타데이터 - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" 파일 이름 바꾸기 실패. 토렌트: "%1". 파일: "%2", 원인: "%3" - + Performance alert: %1. More info: %2 성능 경고: %1. 추가 정보: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' 매개변수 '%1'은(는) '%1=%2' 구문을 따라야 합니다 - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' 매개변수 '%1'은(는) '%1=%2' 구문을 따라야 합니다 - + Expected integer number in environment variable '%1', but got '%2' 환경 변수 '%1'에 정수가 있어야 하지만 '%2'(이)가 있습니다 - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - 매개변수 '%1'은(는) '%1=%2' 구문을 따라야 합니다 - - - + Expected %1 in environment variable '%2', but got '%3' 환경 변수 '%1'에 '%2'가 있어야 하지만 '%3'(이)가 있습니다 - - + + %1 must specify a valid port (1 to 65535). %1은 타당한 포트 번호여야 합니다(1 ~ 65535). - + Usage: 사용법: - + [options] [(<filename> | <url>)...] [옵션] [(<filename> | <url>)...] - + Options: 옵션: - + Display program version and exit 프로그램 버전을 표시 후 종료 - + Display this help message and exit 이 도움말 메시지를 표시하고 종료 - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + 매개변수 '%1'은(는) '%1=%2' 구문을 따라야 합니다 - - + + Confirm the legal notice + 법적 고지 확인 + + + + port 포트 - + Change the WebUI port WebUI 포트 변경하기 - + Change the torrenting port 토렌트 중인 포트 변경 - + Disable splash screen 시작 화면 비활성화 - + Run in daemon-mode (background) 데몬 모드로 실행 (백그라운드) - + dir Use appropriate short form or abbreviation of "directory" 폴더 - + Store configuration files in <dir> <dir>에 구성 파일 저장 - - + + name 이름 - + Store configuration files in directories qBittorrent_<name> qBittorrent_<name> 폴더에 구성 파일 저장 - + Hack into libtorrent fastresume files and make file paths relative to the profile directory libtorrent Fastresume 파일을 해킹하여 프로필 디렉터리를 기준으로 파일 경로를 만듭니다. - + files or URLs 파일 또는 URL - + Download the torrents passed by the user 사용자가 건넨 토렌트 내려받기 - + Options when adding new torrents: 새 토렌트를 추가 할 때 옵션: - + path 경로 - + Torrent save path 토렌트 저장 경로 - - Add torrents as started or paused - 시작 또는 일시정지된 토렌트 추가 + + Add torrents as running or stopped + 토렌트를 실행 또는 중단 상태로 추가 - + Skip hash check 해시 검사 건너뛰기 - + Assign torrents to category. If the category doesn't exist, it will be created. 범주에 토렌트를 할당합니다. 범주가 존재하지 않으면 만들어집니다. - + Download files in sequential order 순차적으로 파일 내려받기 - + Download first and last pieces first 처음과 마지막 조각 먼저 내려받기 - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. 토렌트를 추가할 때 "새 토렌트 추가" 창을 열 것인지 지정합니다. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: 옵션 값은 환경 변수로 제공될 수 있습니다. 'parameter-name'이라는 옵션의 경우 환경 변수 이름은 'QBT_PARAMETER_NAME'(대문자의 경우 '-'는 '_'로 대체)입니다. 플래그 값을 전달하려면 변수를 '1' 또는 'TRUE'로 설정하십시오. 다음은 시작 화면 사용을 중지하는 예시입니다: - + Command line parameters take precedence over environment variables 명령줄 매개 변수는 환경 변수보다 우선됩니다 - + Help 도움말 @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - 토렌트 이어받기 + Start torrents + 토렌트 시작 - Pause torrents - 토렌트 일시정지 + Stop torrents + 토렌트 정지 @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... 편집... - + Reset 초기화 + + + System + 시스템 + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 사용자 지정 테마 스타일 시트를 불러오지 못했습니다. %1 - + Failed to load custom theme colors. %1 사용자 지정 테마 색상을 불러오지 못했습니다. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 기본 테마 색상을 불러오지 못했습니다. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - 또한 파일을 영구적으로 삭제합니다 + Also remove the content files + 내용 파일 또한 제거 - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? 전송 목록에서 '%1'을(를) 제거하시겠습니까? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? 전송 목록에서 이 %1 토렌트를 제거하시겠습니까? - + Remove 제거 @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also URL에서 내려받기 - + Add torrent links 토렌트 링크 추가 - + One link per line (HTTP links, Magnet links and info-hashes are supported) 한 줄에 링크 하나 (HTTP 링크, 마그넷 링크, 정보 해시 지원) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 내려받기 - + No URL entered 입력한 URL 없음 - + Please type at least one URL. 적어도 URL 하나를 입력하세요. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 분석 오류: 해당 필터 파일은 유효한 PeerGuardian P2B 파일이 아닙니다. + + FilterPatternFormatMenu + + + Pattern Format + 패턴 형식 + + + + Plain text + 평문 + + + + Wildcards + 와일드카드 + + + + Regular expression + 정규표현식 + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" 토렌트 내려받는 중... 소스 : "%1" - - Trackers cannot be merged because it is a private torrent - 비공개 토렌트이기 때문에 트래커를 병합할 수 없음 - - - + Torrent is already present 토렌트가 이미 존재합니다 - + + Trackers cannot be merged because it is a private torrent. + 비공개 토렌트이기 때문에 트래커를 병합할 수 없습니다. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? '%1' 토렌트가 이미 전송 목록에 있습니다. 새 소스의 트래커를 병합하시겠습니까? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. 손상된 데이터베이스: 데이터 섹션이 없습니다. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP 요청 크기 제한을 초과하여 소켓을 닫는 중입니다. 제한: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" 잘못된 Http 요청 방법, 소켓을 닫는 중입니다. IP: %1. 방법: "%2" - + Bad Http request, closing socket. IP: %1 잘못된 HTTP 요청으로 인해 소켓을 닫는 중입니다. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... 찾아보기... - + Reset 초기화 - + Select icon 아이콘 선택 - + Supported image files 지원되는 이미지 파일 + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + 전원 관리에서 적합한 D-Bus 인터페이스를 찾았습니다. 인터페이스 : %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + 전원 관리 오류입니다. 작업 : %1. 오류 : %2 + + + + Power management unexpected error. State: %1. Error: %2 + 전원 관리 예기치 않은 오류가 발생했습니다. 상태 : %1. 오류 : %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3343,24 +3590,24 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + 법적 고지를 읽은 후에는 명령줄 옵션 `--confirm-legal-notice` 을 사용하여 이 메시지를 숨길 수 있습니다. Press 'Enter' key to continue... - + 계속하려면 'Enter' 키를 입력하세요... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 차단됨. 원인: %2. - + %1 was banned 0.0.0.0 was banned %1 차단됨 @@ -3369,62 +3616,62 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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은 단일 명령줄 매개변수여야 합니다. - + Run application with -h option to read about command line parameters. - 명령줄 매개변수에 대해 읽으려면 -h 옵션을 사용하여 응용 프로그램을 실행합니다. + 명령줄 매개변수에 대해 읽으려면 -h 옵션을 사용하여 앱을 실행합니다. - + Bad command line 잘못된 명령줄 - + Bad command line: 잘못된 명령줄: - + An unrecoverable error occurred. 복구할 수 없는 오류가 발생했습니다. + - qBittorrent has encountered an unrecoverable error. qBittorrent에 복구할 수 없는 오류가 발생했습니다. - + You cannot use %1: qBittorrent is already running. - + %1를 사용할 수 없습니다: qBittorrent가 이미 실행 중입니다. - + Another qBittorrent instance is already running. - + 다른 qBittorrent 인스턴스가 이미 실행 중입니다. + + + + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. + 예기치 못한 qBittorrent 인스턴스가 발견되었습니다. 이 인스턴스를 종료합니다. 현재 프로세스 ID: %1. - Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - - - - Error when daemonizing. Reason: "%1". Error code: %2. - + 데몬화에 오류가 발생했습니다. 사유: "%1". 오류 코드: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 편집(&E) - + &Tools 도구(&T) - + &File 파일(&F) - + &Help 도움말(&H) - + On Downloads &Done 내려받기 완료 후(&D) - + &View 보기(&V) - + &Options... 옵션(&O)… - - &Resume - 이어받기(&R) - - - + &Remove 제거(&R) - + Torrent &Creator 토렌트 생성기(&C) - - + + Alternative Speed Limits 대체 속도 제한 - + &Top Toolbar 기본 도구 모음(&T) - + Display Top Toolbar 기본 도구 모음 표시 - + Status &Bar 상태 표시줄(&B) - + Filters Sidebar 필터 사이드바 - + S&peed in Title Bar 제목 표시줄에 속도 표시(&P) - + Show Transfer Speed in Title Bar 제목 표시줄에 전송 속도 표시 - + &RSS Reader RSS 리더(&R) - + Search &Engine 검색 엔진(&E) - + L&ock qBittorrent qBittorrent 잠금(&O) - + Do&nate! 기부(&N) - + + Sh&utdown System + 시스템 종료(&U) + + + &Do nothing 아무것도 안 함(&D) - + Close Window 창 닫기 - - R&esume All - 모두 이어받기(&E) - - - + Manage Cookies... 쿠키 관리… - + Manage stored network cookies 저장된 쿠키 관리 - + Normal Messages 일반 메시지 - + Information Messages 정보 메시지 - + Warning Messages 경고 메시지 - + Critical Messages 중요 메시지 - + &Log 로그(&L) - + + Sta&rt + 시작(&R) + + + + Sto&p + 정지(&P) + + + + R&esume Session + 세션 재개(&E) + + + + Pau&se Session + 세션 일시정지(&S) + + + Set Global Speed Limits... 전역 속도 제한 설정… - + Bottom of Queue 대기열 맨 아래 - + Move to the bottom of the queue 대기열 맨 아래로 이동 - + Top of Queue 대기열 맨 위 - + Move to the top of the queue 대기열 맨 위로 이동 - + Move Down Queue 대기열 아래로 이동 - + Move down in the queue 대기열에서 아래로 이동 - + Move Up Queue 대기열 위로 이동 - + Move up in the queue 대기열에서 위로 이동 - + &Exit qBittorrent qBittorrent 종료(&E) - + &Suspend System 시스템 절전모드(&S) - + &Hibernate System 시스템 최대 절전모드(&H) - - S&hutdown System - 시스템 전원 끄기(&H) - - - + &Statistics 통계(&S) - + Check for Updates 업데이트 확인 - + Check for Program Updates 프로그램 업데이트 확인 - + &About 정보(&A) - - &Pause - 일시정지(&P) - - - - P&ause All - 모두 일시정지(&A) - - - + &Add Torrent File... 토렌트 파일 추가(&A)… - + Open 열기 - + E&xit 종료(&X) - + Open URL URL 열기 - + &Documentation 문서(&D) - + Lock 잠금 - - - + + + Show 표시 - + Check for program updates 프로그램 업데이트 확인 - + Add Torrent &Link... 토렌트 링크 추가(&L)… - + If you like qBittorrent, please donate! qBittorrent가 마음에 든다면 기부하세요! - - + + Execution Log 실행 로그 - + Clear the password 암호 지우기 - + &Set Password 암호 설정(&S) - + Preferences 환경설정 - + &Clear Password 암호 지우기(&C) - + Transfers 전송 - - + + qBittorrent is minimized to tray 알림 영역으로 최소화 - - - + + + This behavior can be changed in the settings. You won't be reminded again. 이 동작은 설정에서 변경할 수 있으며 다시 알리지 않습니다. - + Icons Only 아이콘만 - + Text Only 이름만 - + Text Alongside Icons 아이콘 옆 이름 - + Text Under Icons 아이콘 아래 이름 - + Follow System Style 시스템 스타일에 따름 - - + + UI lock password UI 잠금 암호 - - + + Please type the UI lock password: UI 잠금 암호를 입력하십시오: - + Are you sure you want to clear the password? 암호를 지우시겠습니까? - + Use regular expressions 정규표현식 사용 - + + + Search Engine + 검색 엔진 + + + + Search has failed + 검색이 실패했습니다 + + + + Search has finished + 검색이 완료되었습니다 + + + Search 검색 - + Transfers (%1) 전송 (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent가 방금 업데이트되었으며 변경 사항을 적용하려면 다시 시작해야 합니다. - + qBittorrent is closed to tray 종료하지 않고 알림 영역으로 최소화 - + Some files are currently transferring. 현재 파일 전송 중입니다. - + Are you sure you want to quit qBittorrent? qBittorrent를 종료하시겠습니까? - + &No 아니요(&N) - + &Yes 예(&Y) - + &Always Yes 항상 예(&A) - + Options saved. 옵션이 저장되었습니다. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [일시정지됨] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D : %1, U : %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python 설치 프로그램을 다운로드할 수 없습니다. 오류: %1. +수동으로 설치하세요. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Python 설치 프로그램의 이름을 바꾸지 못했습니다. 소스: “%1”. 대상: “%2”. + + + + Python installation success. + Python 설치에 성공했습니다. + + + + Exit code: %1. + 종료 코드: %1. + + + + Reason: installer crashed. + 이유: 설치 프로그램이 충돌했습니다. + + + + Python installation failed. + Python 설치에 실패했습니다. + + + + Launching Python installer. File: "%1". + Python 설치 프로그램을 시작합니다. 파일: "%1". + + + + Missing Python Runtime Python 런타임 누락 - + qBittorrent Update Available qBittorrent 업데이트 사용 가능 - + 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이 필요하지만 설치되지 않은 것 같습니다. - - + + Old Python Runtime 오래된 Python 런타임 - + A new version is available. 새 버전을 사용할 수 있습니다. - + Do you want to download %1? %1을(를) 내려받기하시겠습니까? - + Open changelog... 변경 내역 열기… - + No updates available. You are already using the latest version. 사용 가능한 업데이트가 없습니다. 이미 최신 버전을 사용하고 있습니다. - + &Check for Updates 업데이트 확인(&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Python 버전(%1)이 오래되었습니다. 최소 요구 사항: %2. 지금 최신 버전을 설치하시겠습니까? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Python 버전(%1)이 오래되었습니다. 검색 엔진을 사용하려면 최신 버전으로 업그레이드하십시오. 최소 요구 사항: %2. - + + Paused + 일시정지됨 + + + Checking for Updates... 업데이트 확인 중… - + Already checking for program updates in the background 이미 백그라운드에서 프로그램 업데이트를 확인 중입니다 - + + Python installation in progress... + Python 설치 진행 중... + + + + Failed to open Python installer. File: "%1". + Python 설치 프로그램을 열지 못했습니다. 파일: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 설치 프로그램에 대한 MD5 해시 검사에 실패했습니다. 파일: "%1". 결과 해시: "%2". 예상 해시: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 설치 프로그램에 대한 SHA3-512 해시 검사에 실패했습니다. 파일: "%1". 결과 해시: "%2". 예상 해시: "%3". + + + Download error 내려받기 오류 - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python 설치 파일을 내려받을 수 없습니다. 원인: %1. -직접 설치하십시오. - - - - + + Invalid password 잘못된 암호 - + Filter torrents... 토렌트 필터링... - + Filter by: 필터링 기준: - + The password must be at least 3 characters long 비밀번호는 3자 이상이어야 합니다 - - - + + + RSS (%1) RSS (%1) - + 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 종료 중 - + Open Torrent Files 토렌트 파일 열기 - + Torrent Files 토렌트 파일 @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL 오류, URL : "%1", 오류 : "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL 오류 무시: URL: "%1", 오류: "%2" @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 연결 실패, 인식할 수 없는 응답: %1 - + Authentication failed, msg: %1 인증 실패, 메시지: %1 - + <mail from> was rejected by server, msg: %1 <mail from>(이)가 서버에서 거부되었습니다. 메시지: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>(이)가 서버에서 거부되었습니다. 메시지: %1 - + <data> was rejected by server, msg: %1 <data>(이)가 서버에서 거부되었습니다. 메시지: %1 - + Message was rejected by the server, error: %1 서버에서 메시지를 거부했습니다. 오류: %1 - + Both EHLO and HELO failed, msg: %1 EHLO와 HELO 모두 실패함. 메시지: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP 서버가 지원되는 [CRAM-MD5|PLAIN|LOGIN] 인증 모드를 지원하지 않는 것 같습니다. 인증이 실패할 가능성이 높기 때문에 건너뜁니다. 서버 인증 모드: %1 - + Email Notification Error: %1 이메일 알림 오류: %1 @@ -5604,299 +5928,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - 웹 UI - - - + Advanced 고급 - + Customize UI Theme... UI 테마 사용자 정의... - + Transfer List 전송 목록 - + Confirm when deleting torrents 토렌트를 삭제할 때 확인 - - Shows a confirmation dialog upon pausing/resuming all the torrents - 모든 토렌트를 일시정지/이어받기할 때 확인 대화상자를 표시합니다 - - - - Confirm "Pause/Resume all" actions - '모두 일시정지/이어받기' 작업 확인 - - - + Use alternating row colors In table elements, every other row will have a grey background. 행 색상 번갈아 사용 - + Hide zero and infinity values 0 및 무한대 값 숨김 - + Always 항상 - - Paused torrents only - 일시정지한 토렌트만 - - - + Action on double-click 두 번 클릭 동작 - + Downloading torrents: 내려받는 중인 토렌트: - - - Start / Stop Torrent - 토렌트 시작/중지 - - - - + + Open destination folder 대상 폴더 열기 - - + + No action 동작 없음 - + Completed torrents: 내려받기 완료된 토렌트: - + Auto hide zero status filters 0 상태 필터 자동 숨기기 - + Desktop 바탕 화면 - + Start qBittorrent on Windows start up Windows 시작 시 qBittorrent 시작 - + Show splash screen on start up 시작할 때 시작 화면 표시 - + Confirmation on exit when torrents are active 토렌트 사용 중이면 종료할 때 확인 - + Confirmation on auto-exit when downloads finish 내려받기가 완료되면 자동 종료 시 확인 - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>qBittorrent를 .torrent 파일 및/또는 자석 링크에 대한 기본 프로그램으로 설정하려면 <span style=" font-weight:600;">제어판</span>에서 <span style=" font-weight:600;">기본 프로그램</span> 대화 상자를 사용할 수 있습니다.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: 토렌트 내용 배치: - + Original 원본 - + Create subfolder 하위 폴더 만들기 - + Don't create subfolder 하위 폴더 만들지 않기 - + The torrent will be added to the top of the download queue 토렌트가 내려받기 대기열의 맨 위에 추가됩니다 - + Add to top of queue The torrent will be added to the top of the download queue 대기열 맨 위에 추가 - + When duplicate torrent is being added 중복 토렌트가 추가되는 경우 - + Merge trackers to existing torrent 트래커를 기존 토렌트에 병합 - + Keep unselected files in ".unwanted" folder 선택하지 않은 파일을 ".unwanted" 폴더에 보관하기 - + Add... 추가… - + Options.. 옵션… - + Remove 제거 - + Email notification &upon download completion 내려받기가 완료되면 이메일로 알림(&U) - + + Send test email + 테스트 이메일 보내기 + + + + Run on torrent added: + 토렌트에서 실행이 추가되었습니다: + + + + Run on torrent finished: + 토렌트에서 실행 완료: + + + Peer connection protocol: 피어 연결 프로토콜: - + Any 전체 - + I2P (experimental) I2P (실험적) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>&quot;혼합 모드&quot;를 활성화하면 I2P 토렌트는 트래커가 아닌 다른 소스에서 피어를 가져올 수 있으며 익명화를 제공하지 않고 일반 IP에 연결할 수 있습니다. 이 모드는 사용자가 I2P 익명화에는 관심이 없지만 I2P 피어에 연결할 수 있기를 원하는 경우에 유용할 수 있습니다.</p></body></html> - - - + Mixed mode 혼합 모드 - - Some options are incompatible with the chosen proxy type! - 일부 옵션은 선택한 프록시 유형과 호환되지 않습니다! - - - + If checked, hostname lookups are done via the proxy 체크하면, 프록시를 통해 호스트 이름 조회가 수행됩니다 - + Perform hostname lookup via proxy 프록시를 통한 호스트 이름 조회 수행 - + Use proxy for BitTorrent purposes BitTorrent 용도로 프록시 사용 - + RSS feeds will use proxy RSS 피드는 프록시를 사용합니다 - + Use proxy for RSS purposes RSS 용도로 프록시 사용 - + Search engine, software updates or anything else will use proxy 검색 엔진, 소프트웨어 업데이트 또는 기타 모든 항목은 프록시를 사용합니다 - + Use proxy for general purposes 일반적인 용도로 프록시 사용 - + IP Fi&ltering IP 필터링(&l) - + Schedule &the use of alternative rate limits 대체 속도 제한 사용 예정(&T) - + From: From start time 발신: - + To: To end time 수신: - + Find peers on the DHT network DHT 네트워크에서 피어를 찾습니다 - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,189 +6213,229 @@ Disable encryption: Only connect to peers without protocol encryption 암호화 비활성화: 프로토콜 암호화 없이 피어에만 연결 - + Allow encryption 암호화 허용 - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">더 많은 정보</a>) - + Maximum active checking torrents: 최대 활성 확인 토렌트: - + &Torrent Queueing 토렌트 대기열(&T) - + When total seeding time reaches 총 시딩 시간에 도달한 경우 - + When inactive seeding time reaches 비활성 시딩 시간에 도달한 경우 - - A&utomatically add these trackers to new downloads: - 새 내려받기에 자동 추가할 트래커(&U): - - - + RSS Reader RSS 리더 - + Enable fetching RSS feeds RSS 피드 가져오기 활성화 - + Feeds refresh interval: 피드 갱신 간격: - + Same host request delay: - + 동일 호스트 요청 지연 시간: - + Maximum number of articles per feed: 피드당 최대 규약 수: - - - + + + min minutes - + Seeding Limits 배포 제한 - - Pause torrent - 토렌트 일시정지 - - - + Remove torrent 토렌트 제거 - + Remove torrent and its files 토렌트 및 파일 제거 - + Enable super seeding for torrent 토렌트에 대해 초도 배포 활성화 - + When ratio reaches 비율에 도달했을 때 - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + 토렌트 정지 + + + + A&utomatically append these trackers to new downloads: + 이 트래커들을 새 다운로드에 자동으로 추가(&U): + + + + Automatically append trackers from URL to new downloads: + URL에서 새 다운로드에 트래커를 자동으로 추가: + + + + URL: + URL: + + + + Fetched trackers + 가져온 트래커 + + + + Search UI + 검색 UI + + + + Store opened tabs + 열린 탭 저장 + + + + Also store search results + 검색 결과 저장 + + + + History length + 기록 길이 + + + RSS Torrent Auto Downloader RSS 토렌트 자동 내려받기 도구 - + Enable auto downloading of RSS torrents RSS 자동 내려받기 활성화 - + Edit auto downloading rules... 자동 내려받기 규칙 편집… - + RSS Smart Episode Filter RSS 스마트 에피소드 필터 - + Download REPACK/PROPER episodes REPACK/PROPER된 에피소드 내려받기 - + Filters: 필터: - + Web User Interface (Remote control) 웹 인터페이스 (원격 제어) - + IP address: IP 주소: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. 웹 UI가 결합할 IP 주소입니다. -IPv4나 IPV6 주소를 지정하십시오. IPv4 주소에 "0.0.0.0"을, IPV6 주소에 "::"을, +IPv4나 IPV6 주소를 지정하십시오. IPv4 주소에 "0.0.0.0"을, IPV6 주소에 "::"을, 또는 IPV4/IPv6 모두 "*"를 지정할 수 있습니다. - + Ban client after consecutive failures: 클라이언트를 차단할 연속 시도 횟수: - + Never 절대 안함 - + ban for: 차단할 시간: - + Session timeout: 세션 만료 시간: - + Disabled 비활성화됨 - - Enable cookie Secure flag (requires HTTPS) - 쿠키 보안 플래그 활성화 (HTTPS 필요) - - - + Server domains: 서버 도메인: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ DNS 재결합 공격을 방어하기 위해 ';'를 사용해서 항목을 구분하며 와일드카드 '*'를 사용할 수 있습니다. - + &Use HTTPS instead of HTTP HTTP 대신 HTTPS 사용(&U) - + Bypass authentication for clients on localhost localhost의 클라이언트에 대한 인증 우회 - + Bypass authentication for clients in whitelisted IP subnets 허용 목록에 있는 IP 서브넷의 클라이언트에 대한 인증 우회 - + IP subnet whitelist... IP 서브넷 허용 목록… - + + Use alternative WebUI + 대체 WebUI 사용 + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. 전달된 클라이언트 주소(X-Forwarded-헤더의 경우)를 사용하려면 역방향 프록시 IP(또는 서브넷, 예: 0.0.0.0/24)를 지정합니다. 여러 항목을 분할하려면 ';'를 사용하십시오. - + Upda&te my dynamic domain name 내 동적 도메인 이름 업데이트(&T) - + Minimize qBittorrent to notification area 알림 영역으로 최소화 - + + Search + 검색 + + + + WebUI + WebUI + + + Interface 인터페이스 - + Language: 언어: - + + Style: + 스타일 : + + + + Color scheme: + 색 구성표 : + + + + Stopped torrents only + 정지된 토렌트만 + + + + + Start / stop torrent + 토렌트 시작 / 중지 + + + + + Open torrent options dialog + 토렌트 옵션 대화 상자 열기 + + + Tray icon style: 알림 영역 아이콘: - - + + Normal 보통 - + File association 파일 연계 - + Use qBittorrent for .torrent files .torrent 파일에 qBittorrent 사용 - + Use qBittorrent for magnet links 마그넷 링크에 qBittorrent 사용 - + Check for program updates 프로그램 업데이트 확인 - + Power Management 전원 관리 - + + &Log Files + 로그 파일(&L) + + + Save path: 저장 경로: - + Backup the log file after: 백업할 로그 파일 크기: - + Delete backup logs older than: 다음 기간보다 오래된 백업 로그 삭제: - + + Show external IP in status bar + 상태 표시줄에 외부 IP 표시 + + + When adding a torrent 토렌트를 추가할 때 - + Bring torrent dialog to the front 토렌트 창을 맨 앞으로 가져오기 - + + The torrent will be added to download list in a stopped state + 토렌트가 다운로드 목록에 정지 상태로 추가될 것입니다. + + + Also delete .torrent files whose addition was cancelled 또한 추가가 취소된 .torrent 파일을 삭제합니다 - + Also when addition is cancelled 또한 추가가 취소된 경우에도 삭제 - + Warning! Data loss possible! 경고! 데이터를 잃을 수 있습니다! - + Saving Management 저장 관리 - + Default Torrent Management Mode: 기본 토렌트 관리 모드: - + Manual 수동 - + Automatic 자동 - + When Torrent Category changed: 토렌트 범주가 바뀌었을 때: - + Relocate torrent 토렌트 위치 이동 - + Switch torrent to Manual Mode 토렌트를 수동 모드로 전환 - - + + Relocate affected torrents 영향 받는 토렌트 이동 - - + + Switch affected torrents to Manual Mode 영향 받는 토렌트를 수동 모드로 전환 - + Use Subcategories 하위 범주 사용 - + Default Save Path: 기본 저장 경로: - + Copy .torrent files to: .torrent 파일을 복사할 경로: - + Show &qBittorrent in notification area 알림 영역에 qBittorrent 아이콘 표시(&Q) - - &Log file - 로그 파일(&L) - - - + Display &torrent content and some options 토렌트 내용 및 일부 옵션 표시(&T) - + De&lete .torrent files afterwards - 내려받은 후 .torrent 파일 삭제(&L) + 완료 후 .torrent 파일 삭제(&L) - + Copy .torrent files for finished downloads to: - 내려받기 완료된 .torrent 파일을 복사할 경로: + 다운로드 완료된 .torrent 파일을 복사할 경로: - + Pre-allocate disk space for all files 모든 파일에 디스크 공간 미리 할당 - + Use custom UI Theme 사용자 지정 UI 테마 사용 - + UI Theme file: UI 테마 파일: - + Changing Interface settings requires application restart - 인터페이스 설정을 변경하려면 응용 프로그램을 다시 시작해야 합니다 + 인터페이스 설정을 변경하려면 앱을 다시 시작해야 합니다 - + Shows a confirmation dialog upon torrent deletion 토렌트를 삭제할 때 확인 대화상자 표시 - - + + Preview file, otherwise open destination folder 파일 미리보기, 그렇지 않으면 대상 폴더 열기 - - - Show torrent options - 토렌트 옵션 표시 - - - + Shows a confirmation dialog when exiting with active torrents 사용 중인 토렌트가 있을 때 확인 대화상자 표시 - + When minimizing, the main window is closed and must be reopened from the systray icon 최소화할 때 메인 창이 닫히고 시스템 알림 영역에서 다시 열어야 합니다. - + The systray icon will still be visible when closing the main window 메인 창을 닫을 때 시스템 알림 영역 아이콘을 표시합니다. - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window 닫을 때 알림 영역으로 최소화 - + Monochrome (for dark theme) 단색(어두운 테마용) - + Monochrome (for light theme) 단색(밝은 테마용) - + Inhibit system sleep when torrents are downloading 토렌트 내려받는 중에 시스템 휴면모드 억제 - + Inhibit system sleep when torrents are seeding 토렌트를 배포하고 있을 때 시스템 휴면모드 억제 - + Creates an additional log file after the log file reaches the specified file size 로그 파일이 지정된 파일 크기에 도달한 후 추가 로그 파일을 만듭니다 - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings 성능 경고 로그 - - The torrent will be added to download list in a paused state - 일시정지된 상태에서 토렌트가 내려받기 목록에 추가됩니다 - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state 자동으로 내려받지 않음 - + Whether the .torrent file should be deleted after adding it .torrent 파일을 추가한 후 삭제할지 여부 - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. 조각화를 최소화하기 위해 내려받기를 시작하기 전에 디스크에 전체 파일 크기를 할당합니다. HDD에만 유용합니다. - + Append .!qB extension to incomplete files 내려받기 중인 파일에 .!qB 확장자 덧붙이기 - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it 토렌트가 내려받기되면, 그 안에 있는 .torrent 파일에서 토렌트를 추가하도록 제안합니다 - + Enable recursive download dialog 반복적으로 내려받기 창 활성화 - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually 자동: 여러 토렌트 속성(예: 저장 경로)은 관련 범주에 따라 결정됩니다 수동: 여러 토렌트 속성(예: 저장 경로)을 수동으로 할당해야 합니다 - + When Default Save/Incomplete Path changed: 기본 저장/불완전 경로가 변경된 경우: - + When Category Save Path changed: 범주 저장 경로가 바뀌었을 때: - + Use Category paths in Manual Mode 수동 모드에서 범주 경로 사용 - + Resolve relative Save Path against appropriate Category path instead of Default one 기본 경로 대신 적절한 범주 경로에 대해 상대 저장 경로를 확인합니다 - + Use icons from system theme 시스템 테마의 아이콘 사용 - + Window state on start up: 시작 시 창 상태: - + qBittorrent window state on start up 시작 시 qBittorrent 창 상태 - + Torrent stop condition: 토렌트 중지 조건: - - + + None 없음 - - + + Metadata received 수신된 메타데이터 - - + + Files checked 파일 확인됨 - + Ask for merging trackers when torrent is being added manually 토렌트를 수동으로 추가할 때 트래커 병합 요청 - + Use another path for incomplete torrents: 불완전한 토렌트에 다른 경로 사용: - + Automatically add torrents from: 토렌트를 자동 추가할 경로: - + Excluded file names 제외된 파일 이름 - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: 정확한 파일 이름을 필터링합니다. readme[0-9].txt: 'readme1.txt', 'readme2.txt'를 필터링하지만, 'readme10.txt'는 필터링하지 않습니다. - + Receiver 받는사람 - + To: To receiver 받는사람: - + SMTP server: SMTP 서버: - + Sender 보낸사람 - + From: From sender 보낸사람: - + This server requires a secure connection (SSL) 이 서버는 보안 연결(SSL)이 필요합니다 - - + + Authentication 인증 - - - - + + + + Username: 사용자 이름: - - - - + + + + Password: 암호: - + Run external program 외부 프로그램 실행 - - Run on torrent added - 추가된 토렌트에서 실행 - - - - Run on torrent finished - 완료된 토렌트에서 실행 - - - + Show console window 콘솔 창 표시 - + TCP and μTP TCP 및 μTP - + Listening Port 수신 포트 - + Port used for incoming connections: 수신 연결에 사용되는 포트: - + Set to 0 to let your system pick an unused port 시스템이 사용하지 않는 포트를 선택하도록 하려면 0으로 설정하십시오 - + Random 무작위 - + Use UPnP / NAT-PMP port forwarding from my router 라우터에서 포트 포워딩하기 위해 UPnP / NAT-PMP 사용 - + Connections Limits 연결 제한 - + Maximum number of connections per torrent: 토렌트당 최대 연결: - + Global maximum number of connections: 전역 최대 연결: - + Maximum number of upload slots per torrent: 토렌트당 최대 올려주기 슬롯: - + Global maximum number of upload slots: 전역 최대 올려주기 슬롯: - + Proxy Server 프록시 서버 - + Type: 형식: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: 호스트: - - - + + + Port: 포트: - + Otherwise, the proxy server is only used for tracker connections 설정하지 않으면 프록시 서버는 트래커 연결에만 사용됩니다. - + Use proxy for peer connections 피어 연결에 프록시 사용 - + A&uthentication 인증(&A) - - Info: The password is saved unencrypted - 정보: 암호는 평문으로 저장됩니다 - - - + Filter path (.dat, .p2p, .p2b): 필터 경로 (.dat, .p2p, .p2b): - + Reload the filter 필터 다시 불러오기 - + Manually banned IP addresses... 직접 차단한 IP 주소… - + Apply to trackers 트래커에 적용 - + Global Rate Limits 전역 속도 제한 - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: 올려주기: - - + + Download: 내려받기: - + Alternative Rate Limits 대체 속도 제한 - + Start time 시작 시간 - + End time 종료 시간 - + When: 시기: - + Every day 매일 - + Weekdays 평일 - + Weekends 주말 - + Rate Limits Settings 속도 제한 설정 - + Apply rate limit to peers on LAN LAN 피어에 속도 제한 적용 - + Apply rate limit to transport overhead 오버헤드 전송에 속도 제한 적용 - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>“혼합 모드”를 활성화하면 I2P 토렌트는 트래커가 아닌 다른 소스에서 피어를 가져와 일반 IP에 연결할 수 있으며 익명화를 제공하지 않습니다. 이 모드는 사용자가 I2P 익명화에 관심이 없지만 I2P 피어에 연결할 수 있기를 원하는 경우에 유용할 수 있습니다.</p></body></html> + + + Apply rate limit to µTP protocol μTP 프로토콜에 속도 제한 적용 - + Privacy 개인 정보 - + Enable DHT (decentralized network) to find more peers DHT(분산 네트워크)를 활성화하여 더 많은 피어 찾기 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 호환 BitTorrent 클라이언트(µTorrent, Vuze 등)와 피어 교환 - + Enable Peer Exchange (PeX) to find more peers 피어 교환(PeX)을 활성화하여 더 많은 피어 찾기 - + Look for peers on your local network 로컬 네트워크 피어 찾기 - + Enable Local Peer Discovery to find more peers 로컬 피어 찾기를 활성화해서 더 많은 피어 찾기 - + Encryption mode: 암호화 모드: - + Require encryption 암호화 필요 - + Disable encryption 암호화 비활성화 - + Enable when using a proxy or a VPN connection 프록시나 VPN 연결을 이용할 때 활성화 - + Enable anonymous mode 익명 모드 활성화 - + Maximum active downloads: 최대 내려받기: - + Maximum active uploads: 최대 올려주기: - + Maximum active torrents: 최대 활성 토렌트: - + Do not count slow torrents in these limits 이 제한에 느린 토렌트는 계산하지 않음 - + Upload rate threshold: 올려주기 속도 임계값: - + Download rate threshold: 내려받기 속도 임계값: - - - - + + + + sec seconds - + Torrent inactivity timer: 토렌트 비활성 타이머: - + then 제한 조치: - + Use UPnP / NAT-PMP to forward the port from my router 라우터에서 포트 포워딩하기 위해 UPnP / NAT-PMP 사용 - + Certificate: 인증서: - + Key: 키: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>인증서 정보</a> - + Change current password 현재 암호 바꾸기 - - Use alternative Web UI - 대체 웹 UI 사용 - - - + Files location: 파일 위치: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">대체 웹UI 목록</a> + + + Security 보안 - + Enable clickjacking protection 클릭 가로채기 방지 활성화 - + Enable Cross-Site Request Forgery (CSRF) protection 사이트 간 요청 위조(CSRF) 보호 활성화 - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + 쿠키 보안 플래그 사용 (HTTPS 또는 로컬 호스트 연결 필요) + + + Enable Host header validation 호스트 헤더 유효성 검사 활성화 - + Add custom HTTP headers 사용자 지정 HTTP 헤더 추가 - + Header: value pairs, one per line 헤더: 값, 한 줄에 하나 - + Enable reverse proxy support 역방향 프록시 지원 활성화 - + Trusted proxies list: 신뢰할 수 있는 프록시 목록: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>역방향 프록시 설정 예시</a> + + + Service: 서비스: - + Register 등록 - + Domain name: 도메인 이름: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! 이 옵션으로 .torrent 파일을 <strong>복구 불가능하게 제거</strong>할 수 있습니다! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog 두 번째 옵션을 활성화하도록 설정하면(&ldquo;또한 추가가 취소된 경우에도&rdquo;) &ldquo;토렌트 추가&rdquo; 대화상자에서 &ldquo;<strong>취소</strong>&rdquo; 버튼을 누르면 .torrent 파일이 <strong>삭제</strong>됩니다 - + Select qBittorrent UI Theme file qBittorrent UI 테마 파일 선택 - + Choose Alternative UI files location 대체 UI 파일 위치 선정 - + Supported parameters (case sensitive): 지원 변수 (대소문자 구분): - + Minimized 최소화됨 - + Hidden 숨겨짐 - + Disabled due to failed to detect system tray presence 시스템 트레이 존재를 감지하지 못하여 비활성화됨 - + No stop condition is set. 중지 조건이 설정되지 않았습니다. - + Torrent will stop after metadata is received. 메타데이터가 수신되면 토렌트가 중지됩니다. - Torrents that have metadata initially aren't affected. - 처음에 메타데이터가 있는 토렌트는 영향을 받지 않습니다. - - - + Torrent will stop after files are initially checked. 파일을 처음 확인한 후에는 토렌트가 중지됩니다. - + This will also download metadata if it wasn't there initially. 처음에 메타데이터가 없는 경우 메타데이터 또한 내려받기됩니다. - + %N: Torrent name %N: 토렌트 이름 - + %L: Category %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: 현재 트래커 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") 도움말: 텍스트가 공백에서 잘리지 않게 하려면 변수를 따옴표로 감싸십시오. (예: "%N") - + + Test email + 테스트 메일 + + + + Attempted to send email. Check your inbox to confirm success + 이메일 전송을 시도했습니다. 받은 편지함을 확인하여 성공 여부를 확인하세요. + + + (None) (없음) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds "토렌트 비활성 시간(초)"동안 내려받기/올려주기 속도가 이 값 이하면 느린 토렌트로 간주합니다. - + Certificate 자격 증명 - + Select certificate 자격 증명 선택 - + Private key 개인 키 - + Select private key 개인 키 선택 - + WebUI configuration failed. Reason: %1 WebUI 구성에 실패했습니다. 원인: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + 윈도 다크 모드와의 최상의 호환성을 위해 %1을(를) 권장합니다. + + + + System + System default Qt style + 시스템 + + + + Let Qt decide the style for this system + Qt가 이 시스템의 스타일을 결정하도록 하세요. + + + + Dark + Dark color scheme + 다크 + + + + Light + Light color scheme + 라이트 + + + + System + System color scheme + 시스템 + + + Select folder to monitor 모니터할 폴더 선택 - + Adding entry failed 항목을 추가하지 못했습니다 - + The WebUI username must be at least 3 characters long. WebUI 사용자이름은 3자 이상이어야 합니다. - + The WebUI password must be at least 6 characters long. WebUI 비밀번호는 6자 이상이어야 합니다. - + Location Error 위치 오류 - - + + Choose export directory 내보낼 디렉터리 선정 - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well 이 옵션이 활성화되면, qBittorrent는 .torrent 파일이 내려받기 대기열에 성공적으로 추가되거나(첫 번째 옵션) 추가되지 않았을 때(두 번째 옵션) 해당 파일을 <strong>삭제</strong>합니다. 이 옵션은 &ldquo;토렌트 추가&rdquo; 메뉴를 통해 연 파일<strong>뿐만 아니라</strong> <strong>파일 유형 연계</strong>를 통해 연 파일에도 적용됩니다. - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI 테마 파일(*.qbtheme config.json) - + %G: Tags (separated by comma) %G: 태그(쉼표로 분리) - + %I: Info hash v1 (or '-' if unavailable) %J: 정보 해시 v1 (사용할 수 없는 경우 '-') - + %J: Info hash v2 (or '-' if unavailable) %J: 정보 해시 v2 (사용할 수 없는 경우 '-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: 토렌트 ID (v1 토렌트에 대한 sha-1 정보 해시 또는 v2/하이브리드 토렌트에 대한 몹시 생략된 sha-256 정보 해시) - - - + + + Choose a save directory 저장 디렉터리 선정 - + Torrents that have metadata initially will be added as stopped. - + 처음에 메타데이터가 포함된 토렌트는 중지된 상태로 추가 - + Choose an IP filter file IP 필터 파일 선정 - + All supported filters 지원하는 모든 필터 - + The alternative WebUI files location cannot be blank. 대체 WebUI 파일 위치는 비워둘 수 없습니다. - + 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개 규칙을 적용했습니다. - + Preferences 환경설정 - + Time Error 시간 오류 - + The start time and the end time can't be the same. 시작 시간과 종료 시간은 같을 수 없습니다. - - + + Length Error 길이 오류 @@ -7335,241 +7765,246 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'를 필터링 PeerInfo - + Unknown 알 수 없음 - + Interested (local) and choked (peer) 관심 있음 (로컬) / 혼잡 (피어) - + Interested (local) and unchoked (peer) 관심 있음 (로컬) / 혼잡 해소됨 (피어) - + Interested (peer) and choked (local) 관심 있음 (피어) / 혼잡 (로컬) - + Interested (peer) and unchoked (local) 관심 있음 (피어) / 혼잡 해소됨 (로컬) - + Not interested (local) and unchoked (peer) 관심 없음 (로컬) / 혼잡 해소됨 (피어) - + Not interested (peer) and unchoked (local) 관심 없음 (피어) / 혼잡 해소됨 (로컬) - + Optimistic unchoke 낙관적인 혼잡 해소 - + Peer snubbed 피어 차단됨 - + Incoming connection 수신 연결 - + Peer from DHT DHT 피어 - + Peer from PEX PEX 피어 - + Peer from LSD LSD 피어 - + Encrypted traffic 암호화된 트래픽 - + Encrypted handshake 암호화된 핸드셰이크 + + + Peer is using NAT hole punching + 피어에서 NAT 홀 펀칭 사용 중 + PeerListWidget - + Country/Region 국가/지역 - + IP/Address IP/주소 - + Port 포트 - + Flags 플래그 - + Connection 연결 - + Client i.e.: Client application 클라이언트 - + Peer ID Client i.e.: Client resolved from Peer ID 피어 ID 클라이언트 - + 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. 관련성 - + Files i.e. files that are being downloaded right now 파일 - + Column visibility 열 표시 여부 - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 - + Add peers... 피어 추가… - - + + Adding peers 피어 추가 중 - + Some peers cannot be added. Check the Log for details. 일부 피어를 추가할 수 없습니다. 자세한 내용은 로그를 참조하십시오. - + Peers are added to this torrent. 피어가 이 토렌트에 추가됩니다. - - + + Ban peer permanently 영구적으로 피어 차단 - + Cannot add peers to a private torrent 개인 토렌트에 피어를 추가할 수 없습니다 - + Cannot add peers when the torrent is checking 토렌트가 확인 중일 때 피어를 추가할 수 없습니다 - + Cannot add peers when the torrent is queued 토렌트가 대기 중일 때 피어를 추가할 수 없습니다 - + No peer was selected 선택된 피어가 없습니다 - + Are you sure you want to permanently ban the selected peers? 선택한 피어를 영구적으로 차단하시겠습니까? - + Peer "%1" is manually banned "%1" 피어가 수동으로 차단되었습니다 - + N/A 없음 - + Copy IP:port IP:포트 복사 @@ -7587,7 +8022,7 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'를 필터링 추가할 피어 목록 (줄 당 IP 하나): - + Format: IPv4:port / [IPv6]:port 형식: IPv4:포트 / [IPv6]:포트 @@ -7628,27 +8063,27 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'를 필터링 PiecesBar - + Files in this piece: 이 조각의 파일: - + File in this piece: 이 조각의 파일: - + File in these pieces: 이 조각들의 파일 : - + Wait until metadata become available to see detailed information 메타데이터를 사용할 수 있을 때까지 기다린 뒤 자세한 정보를 확인하세요 - + Hold Shift key for detailed information 자세한 정보를 보려면 Shift 키를 누르십시오 @@ -7661,58 +8096,58 @@ readme[0-9].txt: 'readme1.txt', 'readme2.txt'를 필터링 검색 플러그인 - + Installed search plugins: 설치한 검색 플러그인: - + Name 이름 - + Version 버전 - + Url URL - - + + Enabled 활성화됨 - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. 경고: 검색 엔진에서 토렌트를 내려받기할 때 해당 국가의 저작권법을 준수해야 합니다. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> 여기에서 새로운 검색 엔진 플러그인을 받을 수 있습니다: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one 새 플러그인 설치 - + Check for updates 업데이트 확인 - + Close 닫기 - + Uninstall 설치 삭제 @@ -7832,98 +8267,65 @@ Those plugins were disabled. 플러그인 소스 - + Search plugin source: 검색 플러그인 소스: - + Local file 로컬 파일 - + Web link 웹 링크 - - PowerManagement - - - qBittorrent is active - qBittorrent가 실행 중입니다 - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - 전원 관리에서 적합한 D-Bus 인터페이스를 찾았습니다. 인터페이스 : %1 - - - - Power management error. Did not found suitable D-Bus interface. - 전원 관리 오류입니다. 적합한 D-Bus 인터페이스를 찾지 못했습니다. - - - - - - Power management error. Action: %1. Error: %2 - 전원 관리 오류입니다. 작업 : %1. 오류 : %2 - - - - Power management unexpected error. State: %1. Error: %2 - 전원 관리 예기치 않은 오류가 발생했습니다. 상태 : %1. 오류 : %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: "%1" 토렌트의 다음 파일은 미리보기를 지원합니다. 파일 중 하나를 선택하세요: - + Preview 미리보기 - + Name 이름 - + Size 크기 - + Progress 진행률 - + Preview impossible 미리볼 수 없음 - + Sorry, we can't preview this file: "%1". 미안합니다. 이 파일을 미리볼 수없습니다: "%1". - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 @@ -7936,27 +8338,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist 경로가 존재하지 않습니다 - + Path does not point to a directory 경로가 디렉터리를 가리키지 않음 - + Path does not point to a file 경로가 파일을 가리키지 않음 - + Don't have read permission to path 경로에 대한 읽기 권한이 없음 - + Don't have write permission to path 경로에 대한 쓰기 권한이 없음 @@ -7997,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: 내려받음: - + Availability: 가용성: @@ -8017,53 +8419,53 @@ Those plugins were disabled. 전송 - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 활성 시간: - + ETA: 남은 시간: - + Uploaded: 올려줌: - + Seeds: 배포: - + Download Speed: 내려받기 속도: - + Upload Speed: 올려주기 속도: - + Peers: 피어: - + Download Limit: 내려받기 제한: - + Upload Limit: 올려주기 제한: - + Wasted: 낭비됨: @@ -8073,193 +8475,220 @@ Those plugins were disabled. 연결: - + Information 정보 - + Info Hash v1: 정보 해시 v1: - + Info Hash v2: 정보 해시 v2: - + Comment: 주석: - + Select All 모두 선택 - + Select None 선택 없음 - + Share Ratio: 공유 비율: - + Reannounce In: 다시 알림 시간: - + Last Seen Complete: 최근 완료: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + 비율/활성 시간(개월), 토렌트의 인기도를 나타냅니다. + + + + Popularity: + 인지도: + + + Total Size: 전체 크기: - + Pieces: 조각: - + Created By: 생성자: - + Added On: 추가된 날짜: - + Completed On: 완료된 날짜: - + Created On: 만든 날짜: - + + Private: + 비공개: + + + Save Path: 저장 경로: - + Never 절대 안함 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3개) - - + + %1 (%2 this session) %1 (%2 이 세션) - - + + + N/A 해당 없음 - + + Yes + + + + + No + 아니요 + + + %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) - - New Web seed - 새 웹 배포 + + Add web seed + Add HTTP source + 웹 시드 추가 - - Remove Web seed - 웹 배포 제거 + + Add web seed: + 웹 시드 추가: - - Copy Web seed URL - 웹 배포 URL 복사 + + + This web seed is already in the list. + 이 웹 시드는 이미 목록에 있습니다. - - Edit Web seed URL - 웹 배포 URL 편집 - - - + Filter files... 파일 필터링… - + + Add web seed... + 웹 시드 추가... + + + + Remove web seed + 웹 시드 제거 + + + + Copy web seed URL + 웹 시드 URL 복사 + + + + Edit web seed URL... + 웹 시드 URL 수정... + + + Speed graphs are disabled 속도 그래프가 비활성화되었습니다 - + You can enable it in Advanced Options 고급 옵션에서 활성화할 수 있습니다 - - 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: @@ -8267,33 +8696,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. 잘못된 데이터 형식. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 %1에 RSS AutoDownloader 데이터를 저장할 수 없습니다. 오류: %2 - + Invalid data format 잘못된 데이터 형식 - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... '%1' RSS 규약은 규칙 '%2'에서 허용됩니다. 토렌트를 추가하는 중... - + Failed to read RSS AutoDownloader rules. %1 RSS 자동다운로더 규칙을 읽지 못했습니다. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS AutoDownloader 규칙을 불러올 수 없습니다. 원인: %1 @@ -8301,22 +8730,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 '%1'에서 RSS 피드를 내려받기하지 못했습니다. 원인: %2 - + RSS feed at '%1' updated. Added %2 new articles. '%1'의 RSS 피드를 업데이트했습니다. %2개의 새 규약을 추가했습니다. - + Failed to parse RSS feed at '%1'. Reason: %2 '%1'에서 RSS 피드를 분석하지 못했습니다. 원인: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. "%1"에서 RSS 피드를 성공적으로 내려받았습니다. 분석을 시작합니다. @@ -8352,12 +8781,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. 잘못된 RSS 피드. - + %1 (line: %2, column: %3, offset: %4). %1 (형: %2, 열: %3, 상쇄값: %4). @@ -8365,103 +8794,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" RSS 세션 구성을 저장할 수 없습니다. 파일: "%1". 오류: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" RSS 세션 데이터를 저장할 수 없습니다. 파일: "%1". 오류: "%2" - - + + RSS feed with given URL already exists: %1. 같은 URL을 가진 RSS 피드가 존재합니다: %1. - + Feed doesn't exist: %1. 피드가 존재하지 않습니다: %1. - + Cannot move root folder. 루트 폴더를 이동할 수 없습니다. - - + + Item doesn't exist: %1. 항목이 존재하지 않습니다: %1. - - Couldn't move folder into itself. - 폴더를 자체적으로 이동할 수 없습니다. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. 루트 폴더를 삭제할 수 없습니다. - + Failed to read RSS session data. %1 RSS 세션 데이터를 읽지 못했습니다. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" RSS 세션 데이터를 분석하지 못했습니다. 파일: "%1". 오류: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." RSS 세션 데이터를 불러오지 못했습니다. 파일: "%1". 오류: "잘못된 데이터 형식" - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. RSS 피드를 불러올 수 없습니다. 피드: "%1". 원인: URL 필요. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. RSS 피드를 불러올 수 없습니다. 피드: "%1". 원인: UID 잘못됨. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. 중복 RSS 피드를 찾았습니다. UID: "%1". 오류: 구성이 손상된 것 같습니다. - + Couldn't load RSS item. Item: "%1". Invalid data format. RSS 항목을 불러올 수 없습니다. 항목: "%1". 잘못된 데이터 형식입니다. - + Corrupted RSS list, not loading it. RSS 목록이 손상되어 불러오지 못했습니다. - + Incorrect RSS Item path: %1. 잘못된 RSS 항목 경로: %1. - + RSS item with given path already exists: %1. 같은 경로를 가진 RSS 항목이 존재합니다: %1. - + Parent folder doesn't exist: %1. 상위 폴더가 존재하지 않습니다: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + 피드가 존재하지 않습니다: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + 새로고침 간격: + + + + sec + + + + + Default + 기본 + + RSSWidget @@ -8472,7 +8942,7 @@ Those plugins were disabled. Fetching of RSS feeds is disabled now! You can enable it in application settings. - 지금 RSS 피드 가져오기가 비활성화되었습니다! 응용 프로그램 설정에서 활성화할 수 있습니다. + 지금 RSS 피드 가져오기가 비활성화되었습니다! 앱 설정에서 활성화할 수 있습니다. @@ -8481,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read 읽은 항목들 표시 @@ -8507,132 +8977,115 @@ Those plugins were disabled. 토렌트: (두 번 클릭해서 내려받기) - - + + Delete 삭제 - + Rename... 이름 바꾸기… - + Rename 이름 바꾸기 - - + + Update 업데이트 - + New subscription... 새 구독… - - + + Update all feeds 모든 피드 업데이트 - + Download torrent 토렌트 내려받기 - + Open news URL 뉴스 URL 열기 - + Copy feed URL 피드 URL 복사 - + New folder... 새 폴더… - - Edit feed URL... - 피드 URL 편집... + + Feed options... + - - Edit feed URL - 피드 URL 편집 - - - + Please choose a folder name 폴더 이름을 선정하십시오 - + Folder name: 폴더 이름: - + New folder 새 폴더 - - - Please type a RSS feed URL - RSS 피드 URL을 입력하십시오 - - - - - Feed URL: - 피드 URL: - - - + 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: 새 피드 이름: - + Rename failed 이름 바꾸기 실패 - + Date: 날짜: - + Feed: 피드 : - + Author: 작성자: @@ -8640,38 +9093,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. 검색 엔진을 사용하기 위해 Python을 설치해야 합니다. - + Unable to create more than %1 concurrent searches. %1개 이상을 동시에 검색할 수 없습니다. - - + + Offset is out of range 오프셋이 범위를 벗어났습니다 - + All plugins are already up to date. 모든 플러그인이 이미 최신 상태입니다. - + Updating %1 plugins %1 플러그인 업데이트 중 - + Updating plugin %1 %1 플러그인 업데이트 중 - + Failed to check for plugin updates: %1 플러그인 업데이트 확인 실패: %1 @@ -8746,132 +9199,142 @@ Those plugins were disabled. 크기: - + 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 - 검색 엔진 - - - + Filter search results... 필터 검색 결과… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results 결과 (<i>%2</i> 중 <i>%1</i> 표시): - + Torrent names only 토렌트 이름만 - + Everywhere 모두 - + Use regular expressions 정규표현식 사용 - + Open download window 내려받기 창 열기 - + Download 내려받기 - + Open description page 설명 페이지 열기 - + Copy 복사 - + Name 이름 - + Download link 내려받기 링크 - + Description page URL 설명 페이지 URL - + Searching... 검색 중… - + Search has finished 검색이 완료되었습니다 - + Search aborted 검색 중단됨 - + An error occurred during search... 검색 중 오류 발생… - + Search returned no results 검색 결과가 없습니다 - + + Engine + 엔진 + + + + Engine URL + 엔진 URL + + + + Published On + 게시일 + + + Column visibility 열 표시 여부 - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 @@ -8879,104 +9342,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. 알 수 없는 검색 엔진 플러그인 파일 형식입니다. - + Plugin already at version %1, which is greater than %2 플러그인은 이미 %1 버전에 있으며, %2보다 더 큽니다 - + A more recent version of this plugin is already installed. 이 플러그인의 최신 버전이 이미 설치되어 있습니다. - + Plugin %1 is not supported. %1 플러그인을 지원하지 않습니다. - - + + Plugin is not supported. 플러그인을 지원하지 않습니다. - + Plugin %1 has been successfully updated. %1 플러그인을 성공적으로 업데이트했습니다. - + All categories 모든 범주 - + Movies 영화 - + TV shows TV 프로그램 - + Music 음악 - + Games 게임 - + Anime 애니메이션 - + Software 소프트웨어 - + Pictures 사진 - + Books - + Update server is temporarily unavailable. %1 업데이트 서버를 일시적으로 사용할 수 없습니다. %1 - - + + Failed to download the plugin file. %1 플러그인 파일을 내려받기하지 못했습니다. %1 - + Plugin "%1" is outdated, updating to version %2 "%1" 플러그인이 오래되어 %2 버전으로 업데이트됩니다 - + Incorrect update info received for %1 out of %2 plugins. 플러그인 %2개 중 %1개에 대해 잘못된 업데이트 정보를 받았습니다. - + Search plugin '%1' contains invalid version string ('%2') 검색 플러그인 '%1'에 잘못된 버전 문자열('%2')이 포함되어 있습니다 @@ -8986,114 +9449,145 @@ Those plugins were disabled. - - - - Search 검색 - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. 검색 플러그인이 설치되어 있지 않습니다. 창 오른쪽 아래 "플러그인 검색…" 버튼을 클릭하여 설치하십시오. - + Search plugins... 플러그인 검색… - + A phrase to search for. 검색할 구문입니다. - + Spaces in a search term may be protected by double quotes. 검색 항목의 공백은 큰따옴표로 감쌉니다. - + Example: Search phrase example 예시: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: <b>foo bar</b>에 대해 검색 - + All plugins 모든 플러그인 - + Only enabled 활성화된 경우만 - + + + Invalid data format. + 잘못된 데이터 형식. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: <b>foo</b> 및 <b>bar</b>에 대해 검색 - + + Refresh + 새로 고침 + + + Close tab 탭 닫기 - + Close all tabs 모든 탭 닫기 - + Select... 선택… - - - + + Search Engine 검색 엔진 - + + Please install Python to use the Search Engine. 검색 엔진을 사용하려면 Python을 설치하십시오. - + Empty search pattern 검색 패턴 비우기 - + Please type a search pattern first 검색 패턴을 먼저 입력하십시오 - + + Stop 중지 + + + SearchWidget::DataStorage - - Search has finished - 검색이 완료되었습니다 + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + 검색 UI 저장 상태 데이터를 로드하지 못했습니다. 파일: “%1”. 오류: “%2” - - Search has failed - 검색이 실패했습니다 + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + 저장된 검색 결과를 로드하지 못했습니다. Tab: "%1". 파일: "%2". 오류: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + 검색 UI 상태를 저장하지 못했습니다. 파일: “%1”. 오류: “%2” + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + 검색 결과를 저장하지 못했습니다. Tab: “%1”. 파일: “%2”. 오류: “%3” + + + + Failed to load Search UI history. File: "%1". Error: "%2" + 검색 UI 기록을 로드하지 못했습니다. 파일: “%1”. 오류: “%2” + + + + Failed to save search history. File: "%1". Error: "%2" + 검색 기록을 저장하지 못했습니다. 파일: “%1”. 오류: “%2” @@ -9206,34 +9700,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: 올려주기: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: 내려받기: - + Alternative speed limits 대체 속도 제한 @@ -9425,32 +9919,32 @@ Click the "Search plugins..." button at the bottom right of the window 대기열 평균 시간: - + Connected peers: 연결된 피어: - + All-time share ratio: 전체 시간 공유 비율: - + All-time download: 전체 시간 내려받기: - + Session waste: 낭비된 세션: - + All-time upload: 전체 시간 올려주기: - + Total buffer size: 전체 버퍼 크기: @@ -9465,12 +9959,12 @@ Click the "Search plugins..." button at the bottom right of the window 대기 중인 I/O 작업: - + Write cache overload: 쓰기 캐시 과부하: - + Read cache overload: 읽기 캐시 과부하: @@ -9489,51 +9983,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: 연결 상태: - - + + No direct connections. This may indicate network configuration problems. 직접적인 연결이 없습니다. 네트워크 구성에 문제가 있을 수 있습니다. - - + + Free space: N/A + + + + + + External IP: N/A + 외부 IP: 해당 없음 + + + + DHT: %1 nodes DHT: %1 노드 - + qBittorrent needs to be restarted! qBittorrent를 다시 시작해야 합니다! - - - + + + Connection Status: 연결 상태: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. 오프라인입니다. 보통 qBittorrent가 들어오는 연결을 위해 선택한 포트를 수신 대기하지 못했을 수 있습니다. - + Online 온라인 - + + Free space: + + + + + External IPs: %1, %2 + 외부 IP: %1, %2 + + + + External IP: %1%2 + 외부 IP: %1%2 + + + Click to switch to alternative speed limits 클릭해서 대체 속도 제한으로 전환 - + Click to switch to regular speed limits 클릭해서 일반 속도 제한으로 전환 @@ -9563,13 +10083,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - 이어받음 (0) + Running (0) + 실행 중 (0) - Paused (0) - 일시정지됨 (0) + Stopped (0) + 정지됨 (0) @@ -9631,36 +10151,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) 완료됨 (%1) + + + Running (%1) + 실행 중 (%1) + - Paused (%1) - 일시정지됨 (%1) + Stopped (%1) + 정지됨 (%1) + + + + Start torrents + 토렌트 시작 + + + + Stop torrents + 토렌트 정지 Moving (%1) 이동 중 (%1) - - - Resume torrents - 토렌트 이어받기 - - - - Pause torrents - 토렌트 일시정지 - Remove torrents 토렌트 제거 - - - Resumed (%1) - 이어받음 (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags 미사용 태그 제거 - - - Resume torrents - 토렌트 이어받기 - - - - Pause torrents - 토렌트 일시정지 - Remove torrents 토렌트 제거 - - New Tag - 새 태그 + + Start torrents + 토렌트 시작 + + + + Stop torrents + 토렌트 정지 Tag: 태그: + + + Add tag + 태그 추가 + Invalid tag name @@ -9903,32 +10423,32 @@ Please choose a different name and try again. TorrentContentModel - + Name 이름 - + Progress 진행률 - + Download Priority 내려받기 우선순위 - + Remaining 남음 - + Availability 가용성 - + Total Size 전체 크기 @@ -9973,98 +10493,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error 이름 바꾸기 오류 - + Renaming 이름 바꾸는 중 - + New name: 새 이름: - + Column visibility 열 표시 여부 - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 - + Open 열기 - + Open containing folder 포함하는 폴더 열기 - + Rename... 이름 바꾸기… - + Priority 우선순위 - - + + Do not download 내려받지 않음 - + Normal 보통 - + High 높음 - + Maximum 최대 - + By shown file order 표시된 파일 순서대로 - + Normal priority 보통 우선순위 - + High priority 높은 우선순위 - + Maximum priority 최대 우선순위 - + Priority by shown file order 표시된 파일 순서에 따른 우선순위 @@ -10072,19 +10592,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + 활성화된 작업이 너무 많습니다. - + Torrent creation is still unfinished. - + 토렌트 생성이 여전히 끝나지 않았습니다. - + Torrent creation failed. - + 토렌트 생성이 실패했습니다. @@ -10111,13 +10631,13 @@ Please choose a different name and try again. - + Select file 파일 선택 - + Select folder 폴더 선택 @@ -10192,87 +10712,83 @@ Please choose a different name and try again. 토렌트 정보 - + You can separate tracker tiers / groups with an empty line. 트래커 계층/뭉치를 빈줄로 구분할 수 있습니다. - + Web seed URLs: 웹 배포 URL: - + Tracker URLs: 트래커 URL: - + Comments: 주석: - + Source: 소스: - + Progress: 진행률: - + Create Torrent 토렌트 만들기 - - + + Torrent creation failed 토렌트를 만들지 못했습니다 - + Reason: Path to file/folder is not readable. 원인: 파일/폴더 경로를 읽을 수 없습니다. - + Select where to save the new torrent 새 토렌트를 저장할 위치 선택 - + Torrent Files (*.torrent) 토렌트 파일 (*.torrent) - Reason: %1 - 원인: %1 - - - + Add torrent to transfer list failed. 전송 목록에 토렌트 추가에 실패했습니다. - + Reason: "%1" 이유 : "%1" - + Add torrent failed 토렌트 추가 실패 - + Torrent creator 토렌트 생성기 - + Torrent created: 토렌트 생성됨: @@ -10280,32 +10796,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 감시 폴더 구성을 불러오지 못했습니다. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" %1에서 감시 폴더 구성을 분석하지 못했습니다. 오류: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." %1에서 감시 폴더 구성을 불러오지 못했습니다. 오류: "잘못된 데이터 형식" - + Couldn't store Watched Folders configuration to %1. Error: %2 감시 폴더 구성을 %1에 저장할 수 없습니다. 오류: %2 - + Watched folder Path cannot be empty. 주시 중인 폴더 경로는 비워둘 수 없습니다. - + Watched folder Path cannot be relative. 주시 중인 폴더 경로는 상대 경로일 수 없습니다. @@ -10313,44 +10829,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 잘못된 자석 URI입니다. URI : %1. 이유 : %2 - + Magnet file too big. File: %1 마그넷 파일이 너무 큽니다. 파일: %1 - + Failed to open magnet file: %1 마그넷 파일을 열지 못함: %1 - + Rejecting failed torrent file: %1 실패한 토렌트 파일을 거부하는 중: %1 - + Watching folder: "%1" 주시 중인 폴더: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - 파일을 읽을 때 메모리 할당에 실패했습니다. 파일: "%1". 오류: "%2" - - - - Invalid metadata - 잘못된 메타데이터 - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Please choose a different name and try again. 불완전한 토렌트에 다른 경로 사용 - + Category: 범주: - - Torrent speed limits - 토렌트 속도 제한 + + Torrent Share Limits + 토렌트 공유 제한 - + Download: 내려받기: - - + + - - + + Torrent Speed Limits + 토렌트 속도 제한 + + + + KiB/s KiB/s - + These will not exceed the global limits 이 제한 전역 제한을 초과할 수 없습니다 - + Upload: 올려주기: - - Torrent share limits - 토렌트 공유 제한 - - - - Use global share limit - 전역 공유 제한 사용 - - - - Set no share limit - 공유 제한 없음 설정 - - - - Set share limit to - 공유 제한 설정 - - - - ratio - 비율 - - - - total minutes - 총 시간(분) - - - - inactive minutes - 활동하지 않는 시간(분) - - - + Disable DHT for this torrent 이 토렌트에 DHT 비활성화 - + Download in sequential order 순차 내려받기 - + Disable PeX for this torrent 이 토렌트에 PeX 비활성화 - + Download first and last pieces first 처음과 마지막 조각 먼저 내려받기 - + Disable LSD for this torrent 이 토렌트에 LSD 비활성화 - + Currently used categories 현재 사용되는 범주 - - + + Choose save path 저장 경로 선정 - + Not applicable to private torrents 비공개 토렌트에는 적용할 수 없음 - - - No share limit method selected - 공유 제한 방법을 선택하지 않았습니다 - - - - Please select a limit method first - 제한 방법을 먼저 선택하세요 - TorrentShareLimitsWidget - - - + + + + Default - + 기본 + + + + + + Unlimited + 무제한 - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + 다음으로 설정 + + + + Seeding time: + 시딩 시간 : + + + + + + + + min minutes - + - + Inactive seeding time: - + 비활성 시딩 시간 : - + + Action when the limit is reached: + 한계에 도달했을 때의 조치 : + + + + Stop torrent + 토렌트 정지 + + + + Remove torrent + 토렌트 제거 + + + + Remove torrent and its content + 토렌트 및 해당 내용물 제거 + + + + Enable super seeding for torrent + 토렌트에 대해 초도 배포 활성화 + + + Ratio: - + 비율 : @@ -10558,32 +11049,32 @@ Please choose a different name and try again. 토렌트 태그 - - New Tag - 새 태그 + + Add tag + 태그 추가 - + Tag: 태그: - + Invalid tag name 잘못된 태그 이름 - + Tag name '%1' is invalid. 태그 이름 '%1'이(가) 잘못되었습니다. - + Tag exists 태그가 존재합니다 - + Tag name already exists. 태그 이름이 존재합니다. @@ -10591,115 +11082,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. 오류: '%1'은(는) 올바른 토렌트 파일이 아닙니다. - + Priority must be an integer 우선순위는 정수여야 합니다 - + Priority is not valid 우선순위가 잘못되었습니다 - + Torrent's metadata has not yet downloaded 토렌트 메타데이터를 아직 내려받지 못했습니다 - + File IDs must be integers 파일 ID는 정수여야 합니다 - + File ID is not valid 파일 ID가 유효하지 않습니다 - - - - + + + + Torrent queueing must be enabled 토렌트 대기열은 반드시 활성화해야 합니다 - - + + Save path cannot be empty 저장 경로는 반드시 입력해야 합니다 - - + + Cannot create target directory 대상 디렉터리를 만들 수 없습니다 - - + + Category cannot be empty 범주는 비워둘 수 없습니다 - + Unable to create category 범주를 만들 수 없습니다 - + Unable to edit category 범주를 편집할 수 없습니다 - + Unable to export torrent file. Error: %1 토렌트 파일을 내보낼 수 없습니다. 오류: %1 - + Cannot make save path 저장 경로를 만들 수 없습니다 - + + "%1" is not a valid URL + "%1"은 올바른 URL이 아닙니다 + + + + URL scheme must be one of [%1] + URL 구성표는 [%1] 중 하나여야 합니다. + + + 'sort' parameter is invalid '정렬' 매개변수가 올바르지 않습니다 - + + "%1" is not an existing URL + “%1”은(는) 기존 URL이 아닙니다 + + + "%1" is not a valid file index. %1'은(는) 올바른 파일 인덱스가 아닙니다. - + Index %1 is out of bounds. %1 인덱스가 범위를 벗어났습니다. - - + + Cannot write to directory 디렉터리에 쓸 수 없습니다 - + WebUI Set location: moving "%1", from "%2" to "%3" 웹 UI 설정 위치: "%1"을 "%2"에서 "%3"으로 이동 - + Incorrect torrent name 잘못된 토렌트 이름 - - + + Incorrect category name 잘못된 범주 이름 @@ -10730,196 +11236,191 @@ Please choose a different name and try again. TrackerListModel - + Working 작동 중 - + Disabled 비활성화됨 - + Disabled for this torrent 이 토렌트에 비활성화됨 - + This torrent is private 이 토렌트는 비공개입니다 - + N/A 해당사항 없음 - + Updating... 업데이트 중… - + Not working 작동 안 함 - + Tracker error 트래커 오류 - + Unreachable 연결할 수 없음 - + Not contacted yet 아직 연결되지 않음 - - Invalid status! - 유효하지 않은 상태입니다! - - - - URL/Announce endpoint - URL/공지 엔드포인트 + + Invalid state! + 잘못된 상태! + URL/Announce Endpoint + URL/Announce 엔드포인트 + + + + BT Protocol + BT 프로토콜 + + + + Next Announce + 다음 갱신 + + + + Min Announce + 최소 갱신 + + + Tier 계증 - - Protocol - 프로토콜 - - - + Status 상태 - + Peers 피어 - + Seeds 배포 - + Leeches 얌체 - + Times Downloaded 내려받은 시간 - + Message 메시지 - - - Next announce - 다음 공지 - - - - Min announce - 최소 공지 - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private 이 토렌트는 비공개입니다 - + Tracker editing 트래커 편집 - + Tracker URL: 트래커 URL: - - + + Tracker editing failed 트래커 편집 실패 - + The tracker URL entered is invalid. 입력한 트래커 URL이 올바르지 않습니다. - + The tracker URL already exists. 트래커 URL이 존재합니다. - + Edit tracker URL... 트래커 URL 편집… - + Remove tracker 트래커 제거 - + Copy tracker URL 트래커 URL 복사 - + Force reannounce to selected trackers 선택한 트래커에 강제로 다시 알리기 - + Force reannounce to all trackers 모든 트래커에 강제로 다시 알리기 - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 - + Add trackers... 트래커 추가… - + Column visibility 열 표시 여부 @@ -10937,37 +11438,37 @@ Please choose a different name and try again. 추가할 트래커 목록(한 줄에 하나): - + µTorrent compatible list URL: µTorrent 호환 목록 URL: - + Download trackers list 트래커 목록 내려받기 - + Add 추가 - + Trackers list URL error 트래커 목록 URL 오류 - + The trackers list URL cannot be empty 트래커 목록 URL은 비워둘 수 없습니다 - + Download trackers list error 트래커 목록 내려받기 오류 - + Error occurred when downloading the trackers list. Reason: "%1" 트래커 목록을 내려받는 동안 오류가 발생했습니다. 원인: "%1" @@ -10975,62 +11476,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) 경고 (%1) - + Trackerless (%1) 트래커 없음 (%1) - + Tracker error (%1) 트래커 오류(%1) - + Other error (%1) 기타 오류(%1) - + Remove tracker 트래커 제거 - - Resume torrents - 토렌트 이어받기 + + Start torrents + 토렌트 시작 - - Pause torrents - 토렌트 일시정지 + + Stop torrents + 토렌트 정지 - + Remove torrents 토렌트 제거 - + Removal confirmation 제거 확인 - + Are you sure you want to remove tracker "%1" from all torrents? 모든 토렌트에서 "%1" 트래커를 제거하시겠습니까? - + Don't ask me again. 다시 묻지 마세요. - + All (%1) this is for the tracker filter 전체 (%1) @@ -11039,7 +11540,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument '모드': 잘못된 인수 @@ -11131,11 +11632,6 @@ Please choose a different name and try again. 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. 이어받기 데이터 확인 중 - - - Paused - 일시정지됨 - Completed @@ -11159,220 +11655,252 @@ Please choose a different name and try again. 오류 - + Name i.e: torrent name 이름 - + Size i.e: torrent size 크기 - + Progress % Done 진행률 - + + Stopped + 정지됨 + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) 상태 - + Seeds i.e. full sources (often untranslated) 배포 - + Peers i.e. partial sources (often untranslated) 피어 - + Down Speed i.e: Download speed 받기 속도 - + Up Speed i.e: Upload speed 업로드 속도 - + Ratio Share ratio 비율 - + + Popularity + 인지도 + + + ETA i.e: Estimated Time of Arrival / Time left 남은 시간 - + Category 범주 - + Tags 태그 - + Added On Torrent was added to transfer list on 01/01/2010 08:00 추가된 날짜 - + Completed On Torrent was completed on 01/01/2010 08:00 완료된 날짜 - + Tracker 트래커 - + Down Limit i.e: Download limit 받기 제한 - + Up Limit i.e: Upload limit 업로드 제한 - + Downloaded Amount of data downloaded (e.g. in MB) 내려받음 - + Uploaded Amount of data uploaded (e.g. in MB) 올려줌 - + 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) 세션 올려주기 - + Remaining Amount of data left to download (e.g. in MB) 남음 - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 활성 시간 - + + Yes + + + + + No + 아니요 + + + Save Path Torrent save path 저장 경로 - + Incomplete Save Path Torrent incomplete save path 불완전한 저장 경로 - + Completed Amount of data completed (e.g. in MB) 완료됨 - + Ratio Limit Upload share ratio limit 비율 제한 - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole 마지막으로 완료된 항목 - + Last Activity Time passed since a chunk was downloaded/uploaded 최근 활동 - + Total Size i.e. Size including unwanted data 전체 크기 - + Availability The number of distributed copies of the torrent 가용도 - + Info Hash v1 i.e: torrent info hash v1 정보 해시 v1 - + Info Hash v2 i.e: torrent info hash v2 정보 해시 v2 - + Reannounce In Indicates the time until next trackers reannounce 재공지 - - + + Private + Flags private torrents + 비공개 + + + + Ratio / Time Active (in months), indicates how popular the torrent is + 비율/활성 시간(개월)은 토렌트의 인기도를 나타냄 + + + + + N/A 없음 - + %1 ago e.g.: 1h 20m ago %1 전 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (%2 동안 배포됨) @@ -11381,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility 열 표시 여부 - + Recheck confirmation 다시 검사 확인 - + Are you sure you want to recheck the selected torrent(s)? 선택한 토렌트를 다시 검사하시겠습니까? - + Rename 이름 바꾸기 - + New name: 새 이름: - + Choose save path 저장 경로 선정 - - Confirm pause - 일시중지 확인 - - - - Would you like to pause all torrents? - 모든 토렌트를 일시 정지하시겠습니까? - - - - Confirm resume - 이어받기 확인 - - - - Would you like to resume all torrents? - 모든 토렌트를 이어받기하시겠습니까? - - - + Unable to preview 미리볼 수 없음 - + The selected torrent "%1" does not contain previewable files 선택한 "%1" 토렌트는 미리볼 수 있는 파일을 포함하고 있지 않습니다 - + Resize columns 열 크기조정 - + Resize all non-hidden columns to the size of their contents 숨겨지지 않은 모든 열의 크기를 해당 콘텐츠 크기로 조정합니다 - + Enable automatic torrent management 자동 토렌트 관리 활성화 - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. 선택한 토렌트에 대해 자동 토렌트 관리를 활성화하시겠습니까? 재배치될 수 있습니다. - - Add Tags - 태그 추가 - - - + Choose folder to save exported .torrent files 내보낸 .torrent 파일을 저장할 폴더 선정 - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" .torrent 파일을 내보내지 못했습니다. 토렌트: %1. 저장 경로: %2. 원인: "%3" - + A file with the same name already exists 이름이 같은 파일이 이미 있습니다 - + Export .torrent file error .torrent 파일 오류 내보내기 - + Remove All Tags 모든 태그 제거 - + Remove all tags from selected torrents? 선택한 토렌트에서 모든 태그를 제거하시겠습니까? - + Comma-separated tags: 쉼표로 구분된 태그: - + Invalid tag 잘못된 태그 - + Tag name: '%1' is invalid 태그 이름: '%1'이(가) 잘못됐습니다 - - &Resume - Resume/start the torrent - 이어받기(&R) - - - - &Pause - Pause the torrent - 일시정지(&P) - - - - Force Resu&me - Force Resume/start the torrent - 강제 이어받기(&M) - - - + Pre&view file... 파일 미리보기(&V)… - + Torrent &options... 토렌트 옵션(&O)… - + Open destination &folder 대상 폴더 열기(&F) - + Move &up i.e. move up in the queue 위로 이동(&U) - + Move &down i.e. Move down in the queue 아래로 이동(&D) - + Move to &top i.e. Move to top of the queue 맨 위로 이동(&T) - + Move to &bottom i.e. Move to bottom of the queue 맨 아래로 이동(&B) - + Set loc&ation... 위치 설정(&A)… - + Force rec&heck 강제 다시 검사(&H) - + Force r&eannounce 강제 다시 알림(&E) - + &Magnet link 마그넷 링크(&M) - + Torrent &ID 토렌트 ID(&I) - + &Comment 주석(&C) - + &Name 이름(&N) - + Info &hash v1 정보 해시 v1(&H) - + Info h&ash v2 정보 해시 v2(&A) - + Re&name... 이름 바꾸기(&N)… - + Edit trac&kers... 트래커 편집(&K)… - + E&xport .torrent... .torrent 내보내기(&X)… - + Categor&y 범주(&Y) - + &New... New category... 신규(&N)… - + &Reset Reset category 초기화(&R) - + Ta&gs 태그(&G) - + &Add... Add / assign multiple tags... 추가(&A)… - + &Remove All Remove all tags 모두 제거(&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + 토렌트가 중지/대기/오류/확인 중인 경우 재공지를 강제할 수 없습니다 + + + &Queue 대기열(&Q) - + &Copy 복사(&C) - + Exported torrent is not necessarily the same as the imported 내보낸 토렌트가 가져온 토렌트와 반드시 같을 필요는 없습니다 - + Download in sequential order 순차 내려받기 - + + Add tags + 태그 추가 + + + Errors occurred when exporting .torrent files. Check execution log for details. .torrent 파일을 내보내는 동안 오류가 발생했습니다. 자세한 내용은 실행 로그를 확인하십시오. - + + &Start + Resume/start the torrent + 시작(&S) + + + + Sto&p + Stop the torrent + 정지(&P) + + + + Force Star&t + Force Resume/start the torrent + 강제 시작(&T) + + + &Remove Remove the torrent 제거(&R) - + Download first and last pieces first 처음과 마지막 조각 먼저 내려받기 - + Automatic Torrent Management 자동 토렌트 관리 - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category 자동 모드는 다양한 토렌트 특성(예: 저장 경로)이 관련 범주에 의해 결정됨을 의미합니다 - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - 토렌트가 [일시정지/대기 중/오류 발생/확인 중]이면 강제로 다시 알릴 수 없습니다 - - - + Super seeding mode 초도 배포 모드 @@ -11758,28 +12266,28 @@ Please choose a different name and try again. 아이콘 ID - + UI Theme Configuration. UI 테마 구성입니다. - + The UI Theme changes could not be fully applied. The details can be found in the Log. UI 테마 변경사항을 완전히 적용하지 못했습니다. 자세한 내용은 로그에서 확인할 수 있습니다. - + Couldn't save UI Theme configuration. Reason: %1 UI 테마 구성을 저장할 수 없습니다. 원인: %1 - - + + Couldn't remove icon file. File: %1. 아이콘 파일을 제거할 수 없습니다. 파일: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. 아이콘 파일을 복사할 수 없습니다. 소스: %1. 대상: %2. @@ -11787,7 +12295,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + 앱 스타일을 설정하지 못했습니다. 알 수 없는 스타일 : "%1" + + + Failed to load UI theme from file: "%1" 파일에서 UI 테마 읽기 실패: "%1" @@ -11818,20 +12331,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" 환경설정 이전 실패함: WebUI HTTPS, 파일: "%1", 오류: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" 환경설정 이전됨: WebUI HTTPS, 파일로 내보낸 데이터: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". 구성 파일에 잘못된 값이 있습니다. 기본값으로 되돌립니다. 키: "%1". 잘못된 값: "%2". @@ -11839,32 +12353,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" 파이썬 실행 파일을 찾았습니다. 이름 : "%1". 버전 : "%2" - + Failed to find Python executable. Path: "%1". 파이썬 실행 파일을 찾지 못했습니다. 경로 : "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" 경로 환경 변수에서 `파이썬3` 실행 파일을 찾지 못했습니다. 경로 : "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" 경로 환경 변수에서 `파이썬` 실행 파일을 찾지 못했습니다. 경로 : "%1" - + Failed to find `python` executable in Windows Registry. 윈도 레지스트리에서 `파이썬` 실행 파일을 찾지 못했습니다. - + Failed to find Python executable 파이썬 실행 파일을 찾지 못함 @@ -11956,72 +12470,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. 허용할 수 없는 세션 쿠키 이름이 지정되었습니다: '%1'. 기본 쿠키가 사용됩니다. - + Unacceptable file type, only regular file is allowed. 허용되지 않는 파일 형식, 일반 파일만 허용됩니다. - + Symlinks inside alternative UI folder are forbidden. 대체 UI 폴더의 심볼릭 링크는 금지되어 있습니다. - + Using built-in WebUI. 기본 제공 WebUI를 사용합니다. - + Using custom WebUI. Location: "%1". 사용자 정의 WebUI를 사용합니다. 위치: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. 선택한 로케일 (%1)에 대한 WebUI 번역을 성공적으로 불러왔습니다. - + Couldn't load WebUI translation for selected locale (%1). 선택한 로케일 (%1)에 대한 WebUI 번역을 불러올 수 없습니다. - + Missing ':' separator in WebUI custom HTTP header: "%1" WebUI 사용자 지정 HTTP 헤더에 ':' 구분자 누락: "%1" - + Web server error. %1 웹 서버 오류입니다. %1 - + Web server error. Unknown error. 웹 서버 오류입니다. 알 수 없는 오류입니다. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' 웹 UI: 원본 헤더 및 목표 원점 불일치! 소스 IP: '%1'. 원본 헤더: '%2'. 목표 원점: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' 웹 UI: 출처 헤더 및 목표 원점 불일치! 소스 IP: '%1'. 출처 헤더: '%2'. 목표 원점: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' 웹 UI: 잘못된 호스트 헤더, 포트 불일치. 소스 IP 요청: '%1'. 서버 포트: '%2'. 수신된 호스트 헤더: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' 웹 UI: 잘못된 호스트 헤더. 소스 IP 요청: '%1'. 수신된 호스트 헤더: '%2' @@ -12029,125 +12543,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set 자격 증명이 지정되지 않았습니다 - + WebUI: HTTPS setup successful WebUI: HTTPS 설정 성공 - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS 설정 실패, HTTP로 대체 - + WebUI: Now listening on IP: %1, port: %2 WebUI: 현재 IP: %1, 포트: %2에서 수신 중 - + Unable to bind to IP: %1, port: %2. Reason: %3 IP: %1, 포트: %2에 바인딩할 수 없습니다. 원인: %3 + + fs + + + Unknown error + 알 수 없는 오류 + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1분 - + %1h %2m e.g: 3 hours 5 minutes %1시 %2분 - + %1d %2h e.g: 2 days 10 hours %1일 %2시 - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) 알 수 없음 - + qBittorrent will shutdown the computer now because all downloads are complete. 모든 내려받기가 완료되었기 때문에 qBittorrent가 지금 컴퓨터의 전원을 끕니다. - + < 1m < 1 minute 1분 미만 diff --git a/src/lang/qbittorrent_lt.ts b/src/lang/qbittorrent_lt.ts index 595422396..08659ec5e 100644 --- a/src/lang/qbittorrent_lt.ts +++ b/src/lang/qbittorrent_lt.ts @@ -14,75 +14,75 @@ Apie - + Authors Autoriai - + Current maintainer Dabartinis prižiūrėtojas - + Greece Graikija - - + + Nationality: Šalis: - - + + E-mail: El. paštas: - - + + Name: Vardas: - + Original author Pradinis autorius - + France Prancūzija - + Special Thanks Ypatingos padėkos - + Translators Vertėjai - + License Licencija - + Software Used Naudojama programinė įranga - + qBittorrent was built with the following libraries: qBittorrent buvo sukurta su šiomis bibliotekomis: - + Copy to clipboard Kopijuoti į iškarpinę @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Autorių teisės %1 2006-2024 qBittorrent projektas + Copyright %1 2006-2025 The qBittorrent project + Autorių teisės %1 2006-2025 qBittorrent projektas @@ -166,15 +166,10 @@ Išsaugoti į - + Never show again Daugiau neberodyti - - - Torrent settings - Torento nuostatos - Set as default category @@ -191,12 +186,12 @@ Paleisti torentą - + Torrent information Torento informacija - + Skip hash check Praleisti maišos tikrinimą @@ -205,6 +200,11 @@ Use another path for incomplete torrent Neužbaigtam torrentui naudokite kitą kelią + + + Torrent options + + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - Spustelėkite mygtuką [...] norėda pridėti/šalinti žymes. + Spustelėkite mygtuką [...] norėdami pridėti/šalinti žymes. @@ -231,75 +231,75 @@ Sustabdymo sąlyga: - - + + None Nė vienas - - + + Metadata received Gauti metaduomenys - + Torrents that have metadata initially will be added as stopped. - - + + Files checked Failų patikrinta - + Add to top of queue - + Pridėti į eilės viršų - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Pažymėjus failą .torrent failas nebus ištrintas, nepaisantt į nustatymus Pasirinkčių puslapyje, „Atsisiuntimai“ skiltyje. - + Content layout: Turinio išdėstymas - + Original Pradinis - + Create subfolder Sukurti poaplankį - + Don't create subfolder Nesukurti poaplankio - + Info hash v1: Informacija hash v1 - + Size: Dydis: - + Comment: Komentaras: - + Date: Data: @@ -329,151 +329,147 @@ Prisiminti paskiausiai naudotą išsaugojimo kelią - + Do not delete .torrent file Neištrinti .torrent failo - + Download in sequential order Siųsti dalis iš eilės - + Download first and last pieces first Visų pirma siųsti pirmas ir paskutines dalis - + Info hash v2: Informacija hash v2 - + Select All Pažymėti visus - + Select None Nežymėti nieko - + Save as .torrent file... Išsaugoti kaip .torrent file... - + I/O Error I/O klaida - + Not Available This comment is unavailable Neprieinama - + Not Available This date is unavailable Neprieinama - + Not available Neprieinama - + Magnet link Magnet nuoroda - + Retrieving metadata... Atsiunčiami metaduomenys... - - + + Choose save path Pasirinkite išsaugojimo kelią - + No stop condition is set. Nenustatyta jokia sustabdymo sąlyga. - + Torrent will stop after metadata is received. Torentas bus sustabdytas gavus metaduomenis. - Torrents that have metadata initially aren't affected. - Torentai, kurie iš pradžių turi metaduomenis, neturi įtakos. - - - + Torrent will stop after files are initially checked. Torentas bus sustabdytas, kai failai bus iš pradžių patikrinti. - + This will also download metadata if it wasn't there initially. Taip pat bus atsisiunčiami metaduomenys, jei jų iš pradžių nebuvo. - - + + N/A Nėra - + %1 (Free space on disk: %2) %1 (Laisva vieta diske: %2) - + Not available This size is unavailable. Neprieinama - + Torrent file (*%1) Torento failas (*%1) - + Save as torrent file Išsaugoti torento failo pavidalu - + Couldn't export torrent metadata file '%1'. Reason: %2. Nepavyko eksportuoti torento metaduomenų failo '%1'. Priežastis: %2. - + Cannot create v2 torrent until its data is fully downloaded. Negalima sukurti v2 torento, kol jo duomenys nebus visiškai parsiųsti. - + Filter files... Filtruoti failus... - + Parsing metadata... Analizuojami metaduomenys... - + Metadata retrieval complete Metaduomenų atsiuntimas baigtas @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Atsiunčiamas torentas... Šaltinis: „%1“ - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -556,7 +552,7 @@ Click [...] button to add/remove tags. - Spustelėkite mygtuką [...] norėda pridėti/šalinti žymes. + Spustelėkite mygtuką [...] norėdami pridėti/šalinti žymes. @@ -571,7 +567,7 @@ Start torrent: - + Paleisti torentą: @@ -586,7 +582,7 @@ Add to top of queue: - + Pridėti į eilės viršų: @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Pertikrinti torentus baigus atsiuntimą - - + + ms milliseconds ms - + Setting Nuostata - + Value Value set for this setting Reikšmė - + (disabled) (išjungta) - + (auto) (automatinis) - + + min minutes min. - + All addresses Visi adresai - + qBittorrent Section qBittorrent sekcija - - + + Open documentation Atverti žinyną - + All IPv4 addresses Visi IPv4 adresai - + All IPv6 addresses Visi IPv6 adresai - + libtorrent Section libtorrent sekcija - + Fastresume files Fastresume failas - + SQLite database (experimental) SQLite duomenų bazė (eksperimentinė) - + Resume data storage type (requires restart) Tęsti duomenų saugojimo tipą (reikia paleisti iš naujo) - + Normal Normali - + Below normal Žemesnė nei normali - + Medium Vidutinė - + Low Žema - + Very low Labai žema - + Physical memory (RAM) usage limit Fizinės atminties (RAM) naudojimo apribojimas - + Asynchronous I/O threads Asinchroninės I/O gijos - + Hashing threads Maišos gijos - + File pool size Failų telkinio dydis - + Outstanding memory when checking torrents Išsiskirianti atmintis tikrinant torentus - + Disk cache Disko podėlis - - - - + + + + + s seconds s - + Disk cache expiry interval Podėlio diske galiojimo trukmė - + Disk queue size Disko eilės dydis - - + + Enable OS cache Įgalinti operacinės sistemos spartinančiąją atmintinę - + Coalesce reads & writes Sujungti skaitymai ir rašymai - + Use piece extent affinity Giminingas dalių atsisiuntimas - + Send upload piece suggestions Siųsti išsiuntimo dalių pasiūlymus - - - - + + + + + 0 (disabled) - + 0 (išjungta) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Pratęsimo duomenų saugojimo intervalas [0: išjungta] - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer Didžiausias neįvykdytų užklausų skaičius vienam partneriui - - - - - + + + + + KiB KiB - + (infinite) - + (system default) + (sistemos numatytasis) + + + + Delete files permanently + Ištrinti failus visam laikui + + + + Move files to trash (if possible) + Perkelti failus į šiukšlinę (jei įmanoma) + + + + Torrent content removing mode - + This option is less effective on Linux Ši parinktis yra mažiau efektyvi Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Numatyta - + Memory mapped files Atmintyje susieti failai - + POSIX-compliant Suderinamas su POSIX - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Disko IO tipas (reikia paleisti iš naujo) - - + + Disable OS cache Išjungti OS talpyklą - + Disk IO read mode Disko IO skaitymo režimas - + Write-through Perrašymas - + Disk IO write mode Disko IO rašymo režimas - + Send buffer watermark Siųsti buferio vandenženklį - + Send buffer low watermark Siųsti buferio žemą vandenženklį - + Send buffer watermark factor Siųsti buferio vandenženklio faktorių - + Outgoing connections per second Išeinantys ryšiai per sekundę - - + + 0 (system default) - + 0 (sistemos numatytasis) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Lizdų atsilikimo dydis - - .torrent file size limit + + Save statistics interval [0: disabled] + How often the statistics file is saved. - + + .torrent file size limit + .torrent failo dydžio riba + + + Type of service (ToS) for connections to peers Paslaugos tipas (ToS), skirtas ryšiams su partneriais - + Prefer TCP Teikti pirmenybę TCP - + Peer proportional (throttles TCP) Proporcionalus siuntėjams (uždusina TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Internacionalizuoto domeno vardo (IDN) palaikymas - + Allow multiple connections from the same IP address Leisti kelis sujungimus iš to paties IP adreso - + Validate HTTPS tracker certificates Patvirtinkite HTTPS stebėjimo priemonės sertifikatus - + Server-side request forgery (SSRF) mitigation Serverio pusės užklausų klastojimo (SSRF) mažinimas - + Disallow connection to peers on privileged ports Neleisti prisijungti prie partnerių privilegijuotuose prievaduose - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates Jis valdo vidinės būsenos atnaujinimo intervalą, kuris savo ruožtu turės įtakos vartotojo sąsajos naujinimams - + Refresh interval Atnaujinimo intervalas - + Resolve peer host names Gauti siuntėjų stočių vardus - + IP address reported to trackers (requires restart) IP adresas praneštas stebėjimo priemonėms (reikia paleisti iš naujo) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Pakeitus IP arba prievadą, dar kartą pranešti visiems stebėjimo priemonėms - + Enable icons in menus Įjungti meniu piktogramas - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Įjungti įterptosios sekimo priemonės prievado persiuntimą - + Enable quarantine for downloaded files - + Įjungti karantiną parsiųstiems failams - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + Nepaisyti SSL klaidų + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - Partnerių apyvartos atsijungimo procentas - - - - Peer turnover threshold percentage - Partnerių apyvartos slenkstis procentais - - - - Peer turnover disconnect interval - Partnerių apyvartos atjungimo intervalas - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + sek. + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + Partnerių apyvartos atsijungimo procentas + + + + Peer turnover threshold percentage + Partnerių apyvartos slenkstis procentais + + + + Peer turnover disconnect interval + Partnerių apyvartos atjungimo intervalas + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Rodyti pranešimus - + Display notifications for added torrents Rodyti pranešimus pridedamiems torentams - + Download tracker's favicon Atsisiųsti seklio svetainės piktogramą - + Save path history length Išsaugojimo kelio istorijos ilgis - + Enable speed graphs Įjungti greičio kreives - + Fixed slots Fiksuoti prisijungimai - + Upload rate based Pagrįsta išsiuntimo greičiu - + Upload slots behavior Išsiuntimo prisijungimų elgsena - + Round-robin Ratelio algoritmas - + Fastest upload Greičiausias išsiuntimas - + Anti-leech Anti-siuntėjų - + Upload choking algorithm Išsiuntimo prismaugimo algoritmas - + Confirm torrent recheck Patvirtinti torentų pertikrinimą - + Confirm removal of all tags Patvirtinti visų žymių šalinimą - + Always announce to all trackers in a tier Visada siųsti atnaujinimus visiems sekliams pakopoje - + Always announce to all tiers Visada siųsti atnaujinimus visoms pakopoms - + Any interface i.e. Any network interface Bet kokia sąsaja - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP maišytos veiksenos algoritmas - + Resolve peer countries Išspręskite partnerių šalis - + Network interface Tinklo sąsaja. - + Optional IP address to bind to Pasirenkamas IP adresas, prie kurio reikia susieti - + Max concurrent HTTP announces Maksimalus lygiagretus HTTP pranešimas - + Enable embedded tracker Įjungti įtaisytąjį seklį - + Embedded tracker port Įtaisytojo seklio prievadas + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Veikia nešiojamuoju režimu. Automatiškai aptiktas profilio aplankas: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Aptikta perteklinė komandų eilutės vėliavėlė: „%1“. Nešiojamasis režimas reiškia santykinį greitą atnaujinimą. - + Using config directory: %1 Naudojant konfigūracijos katalogą: %1 - + Torrent name: %1 Torento pavadinimas: %1 - + Torrent size: %1 Torento dydis: %1 - + Save path: %1 Išsaugojimo kelias: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torentas atsiųstas per %1. - + + Thank you for using qBittorrent. Ačiū, kad naudojatės qBittorrent. - + Torrent: %1, sending mail notification Torentas: %1, siunčiamas pašto pranešimas - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Vykdoma išorinė programa. Torentas: "%1". Komanda: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torento „%1“ atsisiuntimas baigtas - + WebUI will be started shortly after internal preparations. Please wait... WebUI bus paleista netrukus po vidinių pasiruošimų. Prašome palaukti... - - + + Loading torrents... Įkeliami torrentai... - + E&xit Iš&eiti - + I/O Error i.e: Input/Output Error I/O klaida - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Priežastis: %2 - + Torrent added Torentas pridėtas - + '%1' was added. e.g: xxx.avi was added. '%1' buvo pridėtas. - + Download completed Parsisiuntimas baigtas - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' buvo baigtas siųstis. - + Information Informacija - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 Norėdami valdyti qBittorrent, prieikite prie WebUI adresu: %1 - + Exit Išeiti - + Recursive download confirmation Rekursyvaus siuntimo patvirtinimas - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torentą sudaro '%1' .torrent failų, ar norite tęsti jų atsisiuntimą? - + Never Niekada - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Nepavyko nustatyti fizinės atminties (RAM) naudojimo limito. Klaidos kodas: %1. Klaidos pranešimas: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated Inicijuotas qBitTorrent nutraukimas - + qBittorrent is shutting down... qBittorrent yra išjungiamas... - + Saving torrent progress... Išsaugoma torento eiga... - + qBittorrent is now ready to exit qBittorrent dabar paruoštas išeiti @@ -1606,15 +1712,15 @@ Priežastis: %2 Priority: - + Svarba: - + Must Not Contain: Privalo neturėti žodžio: - + Episode Filter: Epizodų filtras: @@ -1667,263 +1773,263 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat &Eksportuoti... - + Matches articles based on episode filter. Atitinka epizodų filtru pagrįstus įrašus. - + 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ė - + 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 - + Episode number is a mandatory positive value Epizodo numeris yra privaloma teigiama reikšmė - + Rules Taisyklės - + Rules (legacy) Taisyklės (pasenusios) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Begalinis rėžis: <b>1x25-;</b> atitinka pirmojo sezono epizodus nuo 25 ir toliau bei visus vėlesnių sezonų epizodus - + 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 - + Invalid action Netinkamas veiksmas - + The list is empty, there is nothing to export. Sąrašas tuščias, nėra ką eksportuoti. - + Export RSS rules Eksportuoti RSS taisykles - + I/O Error I/O klaida - + Failed to create the destination file. Reason: %1 Nepavyko sukurti paskirties failo. Priežastis: %1 - + Import RSS rules Importuoti RSS taisykles - + Failed to import the selected rules file. Reason: %1 Nepavyko importuoti pasirinkto taisyklių failo. Priežastis: %1 - + Add new rule... Pridėti naują taisyklę... - + Delete rule Ištrinti taisyklę - + Rename rule... Pervadinti taisyklę... - + Delete selected rules Ištrinti pasirinktas taisykles - + Clear downloaded episodes... Išvalyti atsisiųstus epizodus... - + Rule renaming Taisyklių pervadinimas - + Please type the new rule name Įveskite naują taisyklės vardą - + Clear downloaded episodes Išvalyti atsisiųstus epizodus - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Ar tikrai norite išvalyti pasirinktos taisyklės atsisiųstų epizodų sąrašą? - + Regex mode: use Perl-compatible regular expressions Reguliariųjų reiškinių veiksena: naudoti su Perl suderinamus reguliariuosius reiškinius - - + + Position %1: %2 Pozicija %1: %2 - + Wildcard mode: you can use Pakaitos simbolių veiksena: galite naudoti - - + + Import error Importavimo klaida - + Failed to read the file. %1 Nepavyko perskaityti failo. %1 - + ? to match any single character ? norėdami atitikti bet kurį vieną simbolį - + * to match zero or more of any characters * norėdami atitikti nulį ar daugiau bet kokių simbolių - + Whitespaces count as AND operators (all words, any order) Tarpai yra laikomi IR operatoriais (visi žodžiai, bet kokia tvarka) - + | is used as OR operator | yra naudojamas kaip AR operatorius - + If word order is important use * instead of whitespace. Jeigu yra svarbi žodžių tvarka, vietoj tarpų naudokite * - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Reiškinys su tuščia %1 sąlyga (pvz., %2) - + will match all articles. atitiks visus įrašus. - + will exclude all articles. išskirs visus įrašus. @@ -1965,7 +2071,7 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nepavyko sukurti torento atnaujinimo aplanko: "%1" @@ -1975,28 +2081,38 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Neįmanoma išanalizuoti atnaujinimo duomenų: netinkamas formatas - - + + Cannot parse torrent info: %1 Nepavyko išanalizuoti torento informacijos: %1 - + Cannot parse torrent info: invalid format Negalima išanalizuoti torento informacijos: netinkamas formatas - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Nepavyko išsaugoti torento metaduomenų '%1'. Klaida: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Nepavyko išsaugoti torrent atnaujinimo duomenų į '%1'. Klaida: %2. @@ -2007,16 +2123,17 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat + Cannot parse resume data: %1 Nepavyko išanalizuoti atnaujinimo duomenų: %1 - + Resume data is invalid: neither metadata nor info-hash was found Netinkami atnaujinimo duomenys: nerasta nei metaduomenų, nei hash informacijos - + Couldn't save data to '%1'. Error: %2 Nepavyko išsaugoti duomenų '%1'. Klaida: %2 @@ -2024,38 +2141,60 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat BitTorrent::DBResumeDataStorage - + Not found. Nerasta. - + Couldn't load resume data of torrent '%1'. Error: %2 Nepavyko įkelti torento '%1' atnaujinimo duomenų. Klaida: %2 - - + + Database is corrupted. Duomenų bazė yra pažeista. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Nepavyko išanalizuoti atnaujinimo duomenų: %1 + + + + + Cannot parse torrent info: %1 + Nepavyko išanalizuoti torento informacijos: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2086,457 +2225,503 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON ĮJUNGTA - - - - - - - - - + + + + + + + + + OFF IŠJUNGTA - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + Siuntėjo ID: "%1" - + HTTP User-Agent: "%1" - + HTTP naudotojo agentas: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 Anoniminė veiksena: %1 - - + + Encryption support: %1 Šifravimo palaikymas: %1 - - + + FORCED PRIVERSTINAI - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". Torentas: "%1". - - - - Removed torrent. - Pašalintas torentas. - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - Torentas sustabdytas. - - - - - + Super seeding enabled. - + Super skleidimas įjungtas. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + Nepavyko įkelti torento. Priežastis: „%1“ - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torentas pratęstas. Torentas: „%1“ - + Torrent download finished. Torrent: "%1" - + Torento atsisiuntimas baigtas. Torentas: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Nepavyko išanalizuoti IP filtro failo - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Pridėtas naujas torentas. Torentas: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filtras - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Nepavyko įkelti kategorijų. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 yra išjungta - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 yra išjungta - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Aptiktas išorinis IP adresas. IP: „%1“ - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2552,81 +2737,81 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat BitTorrent::TorrentCreator - + Operation aborted Operacija nutraukta - - + + Create new torrent file failed. Reason: %1. - + Nepavyko sukurti naujo torento failo. Priežastis: %1. BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Nepavyko pridėti siuntėjo: "%1" torentui "%2". Priežastis: %3 - + Peer "%1" is added to torrent "%2" Siuntėjas '%1' buvo pridėtas prie torento '%2' - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Visų pirma atsisiųsti pirmą ir paskutinę dalį: %1, torentas: "%2" - + On Įjungta - + Off Išjungta - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata Trūksta metaduomenų - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Failo pervadinimas nepavyko. Torentas: "%1", failas: "%2", priežastis: "%3" - + Performance alert: %1. More info: %2 @@ -2647,189 +2832,189 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametras "%1" privalo atitikti sintaksę "%1=%2" - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametras "%1" privalo atitikti sintaksę "%1=%2" - + Expected integer number in environment variable '%1', but got '%2' Aplinkos kintamajame "%1" tikėtasi sveiko skaičiaus, tačiau gauta "%2" - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametras "%1" privalo atitikti sintaksę "%1=%2" - - - + Expected %1 in environment variable '%2', but got '%3' Aplinkos kintamajame "%2" tikėtasi %1, tačiau gauta "%3" - - + + %1 must specify a valid port (1 to 65535). %1 privalo nurodyti teisingą prievadą (1 iki 65535). - + Usage: Naudojimas: - + [options] [(<filename> | <url>)...] - + Options: Parinktys: - + Display program version and exit Rodyti programos versiją ir išeiti - + Display this help message and exit Rodyti šį pagalbos pranešimą ir išeiti - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametras "%1" privalo atitikti sintaksę "%1=%2" + + + Confirm the legal notice - - + + port prievadas - + Change the WebUI port - + Change the torrenting port - + Disable splash screen Išjungti pradžios langą - + Run in daemon-mode (background) Vykdyti foniniame režime - + dir Use appropriate short form or abbreviation of "directory" katalogas - + Store configuration files in <dir> Laikyti konfigūracijos failus ties <dir> - - + + name pavadinimas - + Store configuration files in directories qBittorrent_<name> Laikyti konfigūracijos failus qBittorrent_<name> kataloguose - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Įsilaužti į libtorrent greitojo pratęsimo failus ir padaryti failų kelius santykinius profilio katalogui - + files or URLs failai ar URL - + Download the torrents passed by the user Atsisiųsti naudotojo perduotus torentus - + Options when adding new torrents: Parinktys, pridedant naujus torentus: - + path kelias - + Torrent save path Torento išsaugojimo kelias - - Add torrents as started or paused - Pridėti torentus kaip pradėtus ar pristabdytus + + Add torrents as running or stopped + - + Skip hash check Praleisti maišos tikrinimą - + Assign torrents to category. If the category doesn't exist, it will be created. Priskirti torentus kategorijai. Jeigu kategorijos nėra, ji bus sukurta. - + Download files in sequential order Atsisiųsti failus eilės tvarka - + Download first and last pieces first Visų pirma siųsti pirmas ir paskutines dalis - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Nurodyti ar pridedant torentą bus atveriamas "Pridėti naują torentą" dialogas - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Parinkties reikšmės gali būti pateikiamos per aplinkos kintamuosius. Parinkčiai, pavadinimu "parameter-name", aplinkos kintamojo pavadinimas bus "QBT_PARAMETER_NAME" (rašant didžiosiomis raidėmis, "-" pakeičiami "_"). Norėdami perduoti vėliavėlių reikšmes, nustatykite kintamąjį į "1" arba "TRUE". Pavyzdžiui, norint išjungti prisistatymo langą: - + Command line parameters take precedence over environment variables Komandų eilutės parametrai turi pirmumo teisę prieš aplinkos kintamuosius - + Help Žinynas @@ -2881,13 +3066,13 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat - Resume torrents - Pratęsti torentus + Start torrents + Paleisti torentus - Pause torrents - Pristabdyti torentus + Stop torrents + Stabdyti torentus @@ -2898,15 +3083,20 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat ColorWidget - + Edit... Taisyti... - + Reset Atstatyti + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat - Also permanently delete the files - + Also remove the content files + Taip pat šalinti turinio failus - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove Pašalinti @@ -3008,12 +3198,12 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Atsisiųsti iš URL adresų - + Add torrent links Pridėti torentų nuorodas - + One link per line (HTTP links, Magnet links and info-hashes are supported) Po vieną nuorodą eilutėje (palaikomos HTTP nuorodos, Magnet nuorodos bei informacinės maišos) @@ -3023,12 +3213,12 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Atsiųsti - + No URL entered Neįvestas URL - + Please type at least one URL. Įveskite bent vieną URL adresą. @@ -3187,25 +3377,48 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Analizavimo klaida: Filtrų failas nėra taisyklingas PeerGuardian P2B failas. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Atsiunčiamas torentas... Šaltinis: „%1“ - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torentas jau yra - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torentas '%1' jau yra perdavimo sąraše. Ar norite sujungti stebėjimo priemones iš naujo šaltinio? @@ -3213,38 +3426,38 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat 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 - + Database corrupted: no data section found. Duomenų bazė sugadinta: nerasta duomenų sekcija. @@ -3252,17 +3465,17 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http užklausos dydis viršija ribą, lizdas uždaromas. Riba: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Bloga Http užklausa, uždaromas lizdas. IP: %1 @@ -3303,26 +3516,60 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat IconWidget - + Browse... Naršyti... - + Reset Atstatyti - + Select icon Pasirinkti piktogramą - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned "%1" buvo uždraustas @@ -3369,60 +3616,60 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 yra nežinomas komandų eilutės parametras. - - + + %1 must be the single command line parameter. %1 privalo būti vienas komandų eilutės parametras. - + Run application with -h option to read about command line parameters. Vykdykite programą su -h parinktimi, norėdami skaityti apie komandų eilutės parametrus. - + Bad command line Bloga komandų eilutė - + Bad command line: Bloga komandų eilutė: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Palaiko formatus: S01E01, 1x1, 2017.12.31 ir 31.12.2017 (Datos formatai taip pat R&edaguoti - + &Tools Priem&onės - + &File &Failas - + &Help &Žinynas - + On Downloads &Done Už&baigus atsiuntimus - + &View Rod&ymas - + &Options... &Parinktys... - - &Resume - &Tęsti - - - + &Remove Ša&linti - + Torrent &Creator Su&kurti torentą - - + + Alternative Speed Limits Alternatyvūs greičio apribojimai - + &Top Toolbar Viršutinė įrankių juos&ta - + Display Top Toolbar Rodyti viršutinę įrankių juostą - + Status &Bar Būsenos &juosta - + Filters Sidebar - + Filtrų šoninė juosta - + 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 - + Do&nate! &Paaukoti! - + + Sh&utdown System + + + + &Do nothing &Nieko nedaryti - + Close Window Užverti langą - - R&esume All - T&ęsti visus - - - + Manage Cookies... Tvarkyti slapukus... - + Manage stored network cookies Tvarkyti kaupiamus tinklo slapukus - + Normal Messages Normalios žinutės - + Information Messages Informacinės žinutės - + Warning Messages Įspėjamosios žinutės - + Critical Messages Kritinės žinutės - + &Log Ž&urnalas - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Nustatyti visuotinius greičio apribojimus... - + Bottom of Queue Eilės apačia - + Move to the bottom of the queue Perkelti į eilės apačią - + Top of Queue Eilės viršus - + Move to the top of the queue Perkelti į eilės viršų - + Move Down Queue Perkelti eile žemyn - + Move down in the queue Judėti eile žemyn - + Move Up Queue Perkelti eile aukštyn - + Move up in the queue Judėti eile aukštyn - + &Exit qBittorrent Iš&eiti iš qBittorrent - + &Suspend System Pri&stabdyti sistemą - + &Hibernate System &Užmigdyti sistemą - - S&hutdown System - Iš&jungti kompiuterį - - - + &Statistics &Statistika - + Check for Updates Tikrinti, ar yra atnaujinimų - + Check for Program Updates Tikrinti, ar yra programos atnaujinimų - + &About &Apie - - &Pause - &Pristabdyti - - - - P&ause All - Prist&abdyti visus - - - + &Add Torrent File... &Pridėti torento failą... - + Open Atverti - + E&xit Iš&eiti - + Open URL Atverti URL - + &Documentation &Žinynas - + Lock Užrakinti - - - + + + Show Rodyti - + Check for program updates Tikrinti, ar yra programos atnaujinimų - + Add Torrent &Link... Pridėti torento &nuorodą... - + If you like qBittorrent, please donate! Jei Jums patinka qBittorrent, paaukokite! - - + + Execution Log Vykdymo žurnalas - + Clear the password Išvalyti slaptažodį - + &Set Password &Nustatyti slaptažodį - + Preferences Nuostatos - + &Clear Password &Išvalyti slaptažodį - + Transfers Siuntimai - - + + qBittorrent is minimized to tray qBittorrent suskleista į dėklą - - - + + + This behavior can be changed in the settings. You won't be reminded again. Ši elgsena gali būti pakeista nustatymuose. Daugiau jums apie tai nebebus priminta. - + 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 Naudotojo sąsajos užrakinimo slaptažodis - - + + Please type the UI lock password: Įveskite naudotojo sąsajos užrakinimo slaptažodį: - + Are you sure you want to clear the password? Ar tikrai norite išvalyti slaptažodį? - + Use regular expressions Naudoti reguliariuosius reiškinius - + + + Search Engine + Paieškos sistema + + + + Search has failed + Paieška nepavyko + + + + Search has finished + Paieška baigta + + + Search Paieška - + Transfers (%1) Siuntimai (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent ką tik buvo atnaujinta ir ją reikia paleisti iš naujo, norint, kad įsigaliotų nauji pakeitimai. - + qBittorrent is closed to tray qBittorrent užverta į dėklą - + Some files are currently transferring. Šiuo metu yra persiunčiami kai kurie failai. - + Are you sure you want to quit qBittorrent? Ar tikrai norite išeiti iš qBittorrent? - + &No &Ne - + &Yes &Taip - + &Always Yes &Visada taip - + Options saved. Parinktys išsaugotos. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Trūksta Python vykdymo aplinkos - + qBittorrent Update Available Yra prieinamas qBittorrent atnaujinimas - + 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. - - + + Old Python Runtime Sena Python vykdymo aplinka - + A new version is available. Yra prieinama nauja versija. - + Do you want to download %1? Ar norite atsisiųsti %1? - + Open changelog... Atverti keitinių žurnalą... - + 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ų - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Jūsų Python versija (%1) yra pasenusi. Minimali yra: %2. Ar norite dabar įdiegti naujesnę versiją? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Jūsų Python versija (%1) yra pasenusi. Atnaujinkite į naujausią versiją, kad paieškos sistemos veiktų. Minimali versija yra: %2. - + + Paused + Pristabdyti + + + Checking for Updates... Tikrinama, ar yra atnaujinimų... - + Already checking for program updates in the background Šiuo metu fone jau ieškoma programos atnaujinimų... - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 - + Filter torrents... Filtruoti torentus... - + Filter by: Filtruoti pagal: - + The password must be at least 3 characters long Slaptažodis turi būti bent 3 simbolių ilgio - - - + + + RSS (%1) RSS (%1) - + 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žveriama qBittorrent - + Open Torrent Files Atverti torentų failus - + Torrent Files Torentų failai @@ -4233,9 +4551,14 @@ Užklausta operacija šiam protokolui yra neteisinga Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL klaida, URL: „%1“, klaidos: „%2“ + + + Ignoring SSL error, URL: "%1", errors: "%2" - + Nepaisoma SSL klaidos, URL: „%1“, klaidos: „%2“ @@ -5527,47 +5850,47 @@ Užklausta operacija šiam protokolui yra neteisinga Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5605,444 +5928,473 @@ Užklausta operacija šiam protokolui yra neteisinga BitTorrent - + RSS RSS - - Web UI - Tinklo sąsaja - - - + Advanced Išplėstinės - + Customize UI Theme... - + Transfer List Siuntimų sąrašas - + Confirm when deleting torrents Patvirtinti, kai ištrinama torentus - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Naudoti skirtingas eilučių spalvas - + Hide zero and infinity values Slėpti nulio ir begalybės reikšmes - + Always Visada - - Paused torrents only - Tik pristabdytuose torentuose - - - + Action on double-click Veiksmas, atliekamas du kartus spustelėjus - + Downloading torrents: Atsiunčiamus torentus: - - - Start / Stop Torrent - Pratęsti / pristabdyti torentą - - - - + + Open destination folder Atverti paskirties aplanką - - + + No action Jokio veiksmo - + Completed torrents: Užbaigtus torentus: - + Auto hide zero status filters - + Desktop Darbalaukis - + Start qBittorrent on Windows start up Paleisti qBittorrent Windows paleidimo metu - + Show splash screen on start up Paleidžiant programą rodyti prisistatymo langą - + Confirmation on exit when torrents are active Išeinant, klausti patvirtinimo, kai yra aktyvių siuntimų - + Confirmation on auto-exit when downloads finish Užbaigus atsiuntimus ir automatiškai išeinant, klausti patvirtinimo - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent turinio išdėstymas: - + Original Pradinis - + Create subfolder Sukurti poaplankį - + Don't create subfolder Nesukurti poaplankio - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + Pridėti į eilės viršų - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Pridėti... - + Options.. Parinktys.. - + Remove Šalinti - + Email notification &upon download completion Pabaigus a&tsiuntimą, pranešti el. paštu - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Peer ryšio protokolas: - + Any Bet koks - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - + Maišyta veiksena - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + RSS kanalai naudos įgaliotąjį serverį - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP fi&ltravimas - + Schedule &the use of alternative rate limits Planuoti &alternatyvių greičio apribojimų naudojimą - + From: From start time Nuo: - + To: To end time Iki: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption Leisti šifravimą - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Daugiau informacijos</a>) - + Maximum active checking torrents: - + &Torrent Queueing &Siuntimų eilė - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Į naujus a&tsiuntimus, automatiškai pridėti šiuos seklius: - - - + RSS Reader RSS skaitytuvė - + Enable fetching RSS feeds Įjungti RSS kanalų gavimą - + Feeds refresh interval: Kanalų įkėlimo iš naujo intervalas: - + Same host request delay: - + Maximum number of articles per feed: Didžiausias įrašų kanale kiekis: - - - + + + min minutes min. - + Seeding Limits Skleidimo Apribojimai - - Pause torrent - Pristabdyti torentą - - - + Remove torrent Šalinti torentą - + Remove torrent and its files Šalinti torentą ir jo failus - + Enable super seeding for torrent Įgalinti super atidavimą torentui - + When ratio reaches Kai dalijimosi santykis pasieks - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Stabdyti torentą + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS torentų automatinis atsiuntimas - + Enable auto downloading of RSS torrents Įjungti automatinį RSS torentų atsiuntimą - + Edit auto downloading rules... Taisyti automatinio atsiuntimo taisykles... - + RSS Smart Episode Filter RSS išmanusis epizodų filtras - + Download REPACK/PROPER episodes Atsisiųsti REPACK/PROPER epizodus - + Filters: Filtrai: - + Web User Interface (Remote control) Tinklo naudotojo sąsaja (Nuotolinis valdymas) - + IP address: IP adresas: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6051,42 +6403,37 @@ Nurodykite IPv4 ar IPv6 adresą. Bet kokiam IPv4 adresui galite nurodyti "0 Bet kokiam IPv6 adresui galite nurodyti "::", arba galite nurodyti "*" bet kokiam IPv4 ir IPv6. - + Ban client after consecutive failures: Uždrausti klientą po nuoseklių nesėkmių: - + Never Niekada - + ban for: draudimas: - + Session timeout: Sesijos laikas baigėsi - + Disabled Išjungta - - Enable cookie Secure flag (requires HTTPS) - Įgalinti slapukų saugos žymą (reikalingas HTTPS) - - - + Server domains: Serverio domenai: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6101,441 +6448,482 @@ Norėdami atskirti kelias reikšmes, naudokite ";". Galima naudoti pakaitos simbolį "*". - + &Use HTTPS instead of HTTP Na&udoti HTTPS vietoje HTTP - + Bypass authentication for clients on localhost Apeiti atpažinimą klientams, esantiems vietiniame serveryje - + Bypass authentication for clients in whitelisted IP subnets Apeiti atpažinimą klientams, kurie yra IP potinklių baltajame sąraše - + IP subnet whitelist... IP potinklių baltasis sąrašas... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Atn&aujinti mano dinaminį domeno vardą - + Minimize qBittorrent to notification area Suskleisti qBittorrent į pranešimų sritį - + + Search + Paieška + + + + WebUI + + + + Interface Sąsaja - + Language: Kalba: - + + Style: + + + + + Color scheme: + Spalvų rinkinys: + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Dėklo piktogramos stilius: - - + + Normal Įprasta - + File association Failų susiejimas - + Use qBittorrent for .torrent files Naudoti qBittorrent .torrent failams - + Use qBittorrent for magnet links Naudoti qBittorrent Magnet nuorodoms - + Check for program updates Tikrinti, ar yra programos atnaujinimų - + Power Management Energijos valdymas - + + &Log Files + + + + Save path: Išsaugojimo kelias: - + Backup the log file after: Daryti atsarginę žurnalo failo kopiją po: - + Delete backup logs older than: Ištrinti atsargines žurnalo kopijas, senesnes nei: - + + Show external IP in status bar + + + + When adding a torrent Kai pridedamas torentas - + Bring torrent dialog to the front Iškelti torento dialogo langą į priekį - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Taip pat ištrinti .torrent failus, kurių pridėjimas buvo atšauktas - + Also when addition is cancelled Taip pat, kai pridėjimas yra atšaukiamas - + Warning! Data loss possible! Įspėjimas! Galimas duomenų praradimas! - + Saving Management Išsaugojimo tvarkymas - + Default Torrent Management Mode: Numatytoji torento tvarkymo veiksena: - + Manual Rankinė - + Automatic Automatinė - + When Torrent Category changed: Kai pakeičiama torento kategorija: - + Relocate torrent Perkelti torentą - + Switch torrent to Manual Mode Perjungti torentą į rankinę veikseną - - + + Relocate affected torrents Perkelti paveiktus torentus - - + + Switch affected torrents to Manual Mode Perjungti paveiktus torentus į rankinę veikseną - + Use Subcategories Naudoti subkategorijas - + Default Save Path: Numatytasis išsaugojimo kelias: - + Copy .torrent files to: Kopijuoti .torrent failus į: - + Show &qBittorrent in notification area Rodyti &qBittorrent piktogramą pranešimų srityje - - &Log file - Žu&rnalo failas - - - + Display &torrent content and some options Rodyti &torento turinį ir keletą parinkčių - + De&lete .torrent files afterwards Po to ištri&nti .torrent failus - + Copy .torrent files for finished downloads to: Kopijuoti baigtų atsiuntimų .torrent failus į: - + Pre-allocate disk space for all files Iš anksto priskirti disko vietą visiems failams - + Use custom UI Theme Vartotojo UI temos pasirinkimas - + UI Theme file: UI temos byla: - + Changing Interface settings requires application restart Po sąsajos nustatymų keitimo qbittorrent būtina paleisti iš naujo - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - + Peržiūrėti failą, priešingu atveju atverti paskirties aplanką - - - Show torrent options - Rodyti torento pasirinktis - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Palikti qBittorrent įrankių juostoje. - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading Neleisti užmigdyti sistemos, kai yra atsiunčiami torentai - + Inhibit system sleep when torrents are seeding Neleisti užmigdyti sistemos, kai yra skleidžiamas turinys - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days dienų - + months Delete backup logs older than 10 months mėnesių - + years Delete backup logs older than 10 years mėtų - + Log performance warnings Registruoti našumo įspėjimus - - The torrent will be added to download list in a paused state - Torentas bus įtrauktas į atsisiuntimų sąrašą kaip pristabdytas - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nepradėti atsiuntimų automatiškai - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Pridėti .!qB plėtinį nebaigtiems siųsti failams - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog Įjungti rekursyvaus atsiuntimo dialogą - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Kai pasikeičia kategorijos išsaugojimo kelias: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + Lango būsena paleidus: - + qBittorrent window state on start up - + Torrent stop condition: - + Torento sustabdymo sąlyga: - - + + None Nė vienas - - + + Metadata received Metaduomenys gauti - - + + Files checked Failų patikrinta - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Naudokite kitą kelią neužbaigtiems torentams: - + Automatically add torrents from: Automatiškai pridėti torentus iš: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6552,770 +6940,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Gavėjas - + To: To receiver Kam: - + SMTP server: SMTP serveris: - + Sender Siuntėjas - + From: From sender Nuo: - + This server requires a secure connection (SSL) Šis serveris reikalauja saugaus susijungimo (SSL) - - + + Authentication Atpažinimas - - - - + + + + Username: Naudotojo vardas: - - - - + + + + Password: Slaptažodis: - + Run external program - + Paleisti išorinę programą - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Rodyti pulto langą - + TCP and μTP TCP ir μTP - + Listening Port Klausymosi prievadas - + Port used for incoming connections: Prievadas, naudojamas įeinantiems sujungimams: - + Set to 0 to let your system pick an unused port - + Random Atsitiktinis - + Use UPnP / NAT-PMP port forwarding from my router Naudoti UPnP / NAT-PMP prievadų nukreipimą mašrutizatoriuje - + Connections Limits Prisijungimų apribojimai - + Maximum number of connections per torrent: Didžiausias prisijungimų skaičius vienam torentui: - + Global maximum number of connections: Visuotinis didžiausias prisijungimų skaičius: - + Maximum number of upload slots per torrent: Didžiausias išsiuntimo prisijungimų skaičius vienam torentui: - + Global maximum number of upload slots: Visuotinis didžiausias leistinas išsiuntimo prisijungimų skaičius: - + Proxy Server Įgaliotasis serveris - + Type: Tipas: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Serveris: - - - + + + Port: Prievadas: - + Otherwise, the proxy server is only used for tracker connections Kitais atvejais įgaliotasis serveris naudojamas tik prisijungimams prie seklių - + Use proxy for peer connections Naudoti įgaliotąjį serverį susijungimams su siuntėjais - + A&uthentication A&tpažinimas - - Info: The password is saved unencrypted - Informacija: Slaptažodis yra išsaugomas nešifruotai - - - + Filter path (.dat, .p2p, .p2b): Kelias iki filtro (.dat, .p2p, .p2b): - + Reload the filter Įkelti filtrą iš naujo - + Manually banned IP addresses... Rankiniu būdu uždrausti IP adresai... - + Apply to trackers Taikyti sekliams - + Global Rate Limits Visuotinis greičio ribojimas - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Išsiuntimo: - - + + Download: Atsiuntimo: - + Alternative Rate Limits Alternatyvūs greičio apribojimai - + Start time - + Pradžios laikas - + End time - + Pabaigos laikas - + When: Kada: - + Every day Kasdieną - + Weekdays Darbo dienomis - + Weekends Savaitgaliais - + Rate Limits Settings Greičio apribojimų nustatymai - + Apply rate limit to peers on LAN Taikyti greičio apribojimus siuntėjams LAN tinkle - + Apply rate limit to transport overhead Taikyti santykio apribojimą perdavimo pertekliui - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Taikyti greičio apribojimus µTP protokolui - + Privacy Privatumas - + Enable DHT (decentralized network) to find more peers Įjungti DHT (decentralizuotą tinklą), kad būtų rasta daugiau siuntėjų - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Keistis siuntėjais su suderinamais BitTorrent klientais (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Įjungti apsikeitimą siuntėjais (PeX), kad būtų rasta daugiau siuntėjų - + Look for peers on your local network Ieškoti siuntėjų vietiniame tinkle - + Enable Local Peer Discovery to find more peers Įjungti vietinių siuntėjų aptikimą, kad būtų rasta daugiau siuntėjų - + Encryption mode: Šifravimo veiksena: - + Require encryption Reikalauti šifravimo - + Disable encryption Išjungti šifravimą - + Enable when using a proxy or a VPN connection Įjunkite, kai naudojate įgaliotąjį serverį ar VPN ryšį - + Enable anonymous mode Įjungti anoniminę veikseną - + Maximum active downloads: Didžiausias aktyvių atsiuntimų skaičius: - + Maximum active uploads: Didžiausias aktyvių išsiuntimų skaičius: - + Maximum active torrents: Didžiausias aktyvių torentų skaičius: - + Do not count slow torrents in these limits Į šiuos apribojimus neįskaičiuoti lėtus torentus - + Upload rate threshold: Išsiuntimo greičio slenkstis: - + Download rate threshold: Atsiuntimo greičio slenkstis: - - - - + + + + sec seconds sek. - + Torrent inactivity timer: Torento neveiklumo laikmatis: - + then , o tuomet - + Use UPnP / NAT-PMP to forward the port from my router Naudoti UPnP / NAT-PMP, siekiant nukreipti prievadą iš maršrutizatoriaus - + Certificate: Liudijimas: - + Key: Raktas: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informacija apie liudijimus</a> - + Change current password Keisti dabartinį slaptažodį - - Use alternative Web UI - Naudoti alternatyvią tinklo naudotojo sąsają - - - + Files location: Failų vieta: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Saugumas - + Enable clickjacking protection Įjungti apsaugą nuo spustelėjimų ant melagingų objektų - + Enable Cross-Site Request Forgery (CSRF) protection Įjungti apsaugą nuo užklausų tarp svetainių klastojimo (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Įjungti serverio antraštės patvirtinimą - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Paslauga: - + Register Registruotis - + Domain name: Domeno vardas: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Įjungdami šias parinktis, jūs galite <strong>neatšaukiamai prarasti</strong> savo .torrent failus! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Jeigu įjungsite antrą parinktį (&ldquo;Taip pat kai pridėjimas yra atšaukiamas&rdquo;), tuomet .torrent failas <strong>bus ištrinamas</strong> netgi tuo atveju, jei dialoge &ldquo;Pridėti torentą&rdquo; nuspausite &ldquo;<strong>Atsisakyti</strong>&rdquo; - + Select qBittorrent UI Theme file - + Choose Alternative UI files location Pasirinkti alternatyvią naudotojo sąsajos failų vietą - + Supported parameters (case sensitive): Palaikomi parametrai (skiriant raidžių dydį): - + Minimized - + Sumažinta - + Hidden - + Paslėpta - + Disabled due to failed to detect system tray presence - + No stop condition is set. Nenustatyta jokia sustabdymo sąlyga. - + Torrent will stop after metadata is received. Torentas bus sustabdytas gavus metaduomenis. - Torrents that have metadata initially aren't affected. - Torentai, kurie iš pradžių turi metaduomenis, neturi įtakos. - - - + Torrent will stop after files are initially checked. Torentas bus sustabdytas, kai failai bus iš pradžių patikrinti. - + This will also download metadata if it wasn't there initially. Taip pat bus atsisiunčiami metaduomenys, jei jų iš pradžių nebuvo. - + %N: Torrent name %N: Torento pavadinimas - + %L: Category %L: Kategorija - + %F: Content path (same as root path for multifile torrent) %F: Turinio kelias (toks pats kaip šaknies kelias kelių failų torente) - + %R: Root path (first torrent subdirectory path) %R: Šaknies kelias (pirmas torento pakatalogio kelias) - + %D: Save path %D: Išsaugojimo kelias - + %C: Number of files %C: Failų skaičius - + %Z: Torrent size (bytes) %Z: Torento dydis (baitais) - + %T: Current tracker %T: Esamas seklys - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Patarimas: Tam, kad tekstas nebūtų apkirptas ties tarpais, rašykite parametrą kabutėse (pvz., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (jokio) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torentas bus laikomas lėtu, jeigu per "Torento neveiklumo laikmačio" sekundes jo atsiuntimo ir išsiuntimo greičiai išlieka žemiau šių reikšmių - + Certificate Liudijimas - + Select certificate Pasirinkti sertifikatą - + Private key Privatusis raktas - + Select private key Pasirink privatu raktą - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + Tamsus + + + + Light + Light color scheme + Šviesus + + + + System + System color scheme + + + + Select folder to monitor Pasirinkite aplanką, kurį stebėti - + Adding entry failed Įrašo pridėjimas nepavyko - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Vietos klaida - - + + Choose export directory Pasirinkite eksportavimo katalogą - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Žymės (atskirtos kableliais) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Pasirinkite išsaugojimo katalogą - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Pasirinkite IP filtrų failą - + All supported filters Visi palaikomi filtrai - + The alternative WebUI files location cannot be blank. - + Parsing error Analizavimo klaida - + Failed to parse the provided IP filter Nepavyko išanalizuoti pateikto IP filtro - + Successfully refreshed Sėkmingai atnaujinta - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pateiktas IP filtras sėkmingai išanalizuotas. Pritaikytos %1 taisyklės. - + Preferences Nuostatos - + Time Error Laiko klaida - + The start time and the end time can't be the same. Pradžios bei pabaigos laikai negali sutapti. - - + + Length Error Ilgio klaida @@ -7323,241 +7752,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Nežinoma - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic Šifruotas srautas - + Encrypted handshake Šifruotas ryšio suderinimas + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Šalis - + IP/Address IP/adresas - + Port Prievadas - + Flags Vėliavos - + Connection Jungiamumas - + Client i.e.: Client application Klientas - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Eiga - + 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 - + Files i.e. files that are being downloaded right now Failai - + Column visibility Stulpelio matomumas - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio - + Add peers... - + Pridėti siuntėjus... - - + + Adding peers Pridedami siuntėjai - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. Siuntėjai pridėti šiam torentui - - + + Ban peer permanently Uždrausti siuntėją visam laikui - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? Ar tikrai norite visam laikui uždrausti pasirinktus siuntėjus? - + Peer "%1" is manually banned Siuntėjas "%1" rankiniu būdu buvo uždraustas - + N/A Nėra - + Copy IP:port Kopijuoti IP:prievadą @@ -7575,7 +8009,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Norimų pridėti siuntėjų sąrašas (po vieną IP eilutėje): - + Format: IPv4:port / [IPv6]:port Formatas: IPv4:prievadas/ [IPv6]:prievadas @@ -7605,7 +8039,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Unavailable pieces - + Neprieinamos dalys @@ -7616,27 +8050,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Failų šioje dalyje: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information Norėdami matyti išsamesnę informaciją, laukite, kol taps prieinami metaduomenys - + Hold Shift key for detailed information Išsamesnei informacijai, laikykite nuspaudę Shift klavišą @@ -7649,58 +8083,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Paieškos papildiniai - + Installed search plugins: Įdiegti paieškos papildiniai: - + Name Pavadinimas - + Version Versija - + Url URL - - + + Enabled Įjungta - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Įspėjimas: Atsisiųsdami failus iš šių paieškos sistemų, būkite susipažinę su savo šalies autorių teisių įstatymais. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Įdiegti naują - + Check for updates Tikrinti, ar yra atnaujinimų - + Close Užverti - + Uninstall Pašalinti @@ -7820,99 +8254,66 @@ Tie papildiniai buvo išjungti. Papildinio šaltinis - + Search plugin source: Paieškos papildinio šaltinis: - + Local file Vietinis failas - + Web link Tinklo nuoroda - - PowerManagement - - - qBittorrent is active - qBittorrent aktyvi - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Peržiūra - + Name Pavadinimas - + Size Dydis - + Progress Eiga - + Preview impossible Peržiūra neįmanoma - + Sorry, we can't preview this file: "%1". 90%match Atsiprašome, tačiau negalime parodyti šio failo: "%1". - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio @@ -7925,27 +8326,27 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". Private::FileLineEdit - + Path does not exist Kelio nėra - + Path does not point to a directory Kėlias nenurodo į katalogą - + Path does not point to a file Kelias nenurodo į failą - + Don't have read permission to path - + Don't have write permission to path @@ -7986,12 +8387,12 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". PropertiesWidget - + Downloaded: Atsisiųsta: - + Availability: Pasiekiamumas: @@ -8006,53 +8407,53 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1".Siuntimas - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktyvus: - + ETA: Dar liko laukti: - + Uploaded: Išsiųsta: - + Seeds: Skleidėjai: - + Download Speed: Atsiuntimo greitis: - + Upload Speed: Išsiuntimo greitis: - + Peers: Siuntėjai: - + Download Limit: Atsiuntimo riba: - + Upload Limit: Išsiuntimo riba: - + Wasted: Iššvaistyta: @@ -8062,193 +8463,220 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1".Prisijungimai: - + Information Informacija - + Info Hash v1: - + Info Hash v2: - + Comment: Komentaras: - + Select All Pažymėti viską - + Select None Nieko nežymėti - + Share Ratio: Dalijimosi santykis: - + Reannounce In: Atnaujinama po: - + Last Seen Complete: Paskutinį kartą matytas užbaigtu: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + Populiarumas: + + + Total Size: Bendras dydis: - + Pieces: Dalys: - + Created By: Sukūrė: - + Added On: Pridėta: - + Completed On: Užbaigta: - + Created On: Sukurtas: - + + Private: + + + + Save Path: Išsaugojimo kelias: - + Never Niekada - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (turima %3) - - + + %1 (%2 this session) %1 (%2 šiame seanse) - - + + + N/A Nėra - + + Yes + Taip + + + + No + Ne + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (skleidžiama jau %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (daugiausiai %2) - - + + %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.) %1 (vidut. %2) - - New Web seed - Naujas žiniatinklio šaltinis + + Add web seed + Add HTTP source + - - Remove Web seed - Pašalinti žiniatinklio šaltinį + + Add web seed: + - - Copy Web seed URL - Kopijuoti žiniatinklio šaltinio URL + + + This web seed is already in the list. + - - Edit Web seed URL - Redaguoti žiniatinklio šaltinio URL - - - + Filter files... Filtruoti failus... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - 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: @@ -8256,33 +8684,33 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". RSS::AutoDownloader - - + + Invalid data format. Neteisingas duomenų formatas. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nepavyko įrašyti RSS automatinio atsiuntimo duomenų į %1. Klaida: %2 - + Invalid data format Klaidingas duomenų formatas - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nepavyko įkelti RSS automatinio atsiuntimo taisyklių. Priežastis: %1 @@ -8290,24 +8718,24 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Nepavyko atsisiųsti RSS kanalo ties "%1". Priežastis: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS kanalas ties "%1" atnaujintas. Pridėta %2 naujų įrašų. - + Failed to parse RSS feed at '%1'. Reason: %2 Nepavyko išnagrinėti RSS kanalo ties "%1". Priežastis: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. - + RSS kanalas, esantis „%1“, yra sėkmingai atsisiųstas. Pradedama jį nagrinėti. @@ -8315,12 +8743,12 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". Failed to read RSS session data. %1 - + Nepavyko perskaityti RSS seanso duomenų. %1 Failed to save RSS feed in '%1', Reason: %2 - + Nepavyko įrašyti RSS kanalo ties „%1“, Priežastis: %2 @@ -8341,12 +8769,12 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". RSS::Private::Parser - + Invalid RSS feed. Neteisingas RSS kanalas. - + %1 (line: %2, column: %3, offset: %4). %1 (eilutė: %2, stulpelis: %3, poslinkis: %4). @@ -8354,103 +8782,144 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. RSS kanalas su nurodytu URL jau yra: %1. - + Feed doesn't exist: %1. - + Kanalo nėra: %1. - + Cannot move root folder. Nepavyksta perkelti šakninio aplanko. - - + + Item doesn't exist: %1. Elemento nėra: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Nepavyksta ištrinti šakninio aplanko. - + Failed to read RSS session data. %1 - + Nepavyko perskaityti RSS seanso duomenų. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - - - - - Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Nepavyko įkelti RSS kanalo. Kanalas: „%1“. Priežastis: Reikia URL adreso. - Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. + Nepavyko įkelti RSS kanalo. Kanalas: „%1“. Priežastis: Neteisingas UID. - + + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. + Rastas besidubliuojantis RSS kanalas. UID: „%1“. Klaida: Atrodo, kad konfigūracija yra sugadinta. + + + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Neteisingas RSS elemento kelias: %1. - + RSS item with given path already exists: %1. RSS elementas su nurodytu keliu jau yra: %1. - + Parent folder doesn't exist: %1. Viršaplankio nėra: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Kanalo nėra: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + sek. + + + + Default + Numatytasis + + RSSWidget @@ -8470,8 +8939,8 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". - - + + Mark items read Žymėti elementus kaip skaitytus @@ -8496,132 +8965,115 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1".Torentai: (norėdami atsisiųsti, dukart spustelėkite) - - + + Delete Ištrinti - + Rename... Pervadinti... - + Rename Pervadinti - - + + Update Atnaujinti - + New subscription... Nauja prenumerata... - - + + Update all feeds Atnaujinti visus kanalus - + Download torrent Atsisiųsti torentą - + Open news URL Atverti naujienos URL - + Copy feed URL Kopijuoti kanalo URL - + New folder... Naujas aplankas... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Pasirinkite aplanko pavadinimą - + Folder name: Aplanko pavadinimas: - + New folder Naujas aplankas - - - Please type a RSS feed URL - Įrašykite RSS kanalo URL - - - - - Feed URL: - Kanalo URL: - - - + Deletion confirmation Ištrynimo 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 šiam RSS kanalui naują pavadinimą - + New feed name: Naujas kanalo pavadinimas: - + Rename failed Pervadinimas nepavyko - + Date: Data: - + Feed: - + Kanalas: - + Author: Autorius: @@ -8629,38 +9081,38 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range Poslinkis yra už ribų - + All plugins are already up to date. Visi papildiniai yra naujausios versijos. - + Updating %1 plugins Atnaujinami %1 papildiniai - + Updating plugin %1 Atnaujinamas papildinys %1 - + Failed to check for plugin updates: %1 Nepavyko patikrinti ar papildiniui yra prieinami atnaujinimai: %1 @@ -8705,12 +9157,12 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". Minimum torrent size - + Minimalus torento dydis Maximum torrent size - + Maksimalus torento dydis @@ -8735,132 +9187,142 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1".Dydis: - + Name i.e: file name Pavadinimas - + 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 sistema - - - + Filter search results... Filtruoti paieškos rezultatus... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultatai (rodoma <i>%1</i> iš <i>%2</i>): - + Torrent names only Tik torentų pavadinimuose - + Everywhere Visur - + Use regular expressions Naudoti reguliariuosius reiškinius - + Open download window - + Atverti atsiuntimo langą - + Download Atsisiųsti - + Open description page Atverti aprašo puslapį - + Copy Kopijuoti - + Name Pavadinimas - + Download link Atsiuntimo nuoroda - + Description page URL Aprašo puslapio URL - + Searching... Ieškoma... - + Search has finished Paieška baigta - + Search aborted Paieška nutraukta - + An error occurred during search... Paieškos metu įvyko klaida... - + Search returned no results Paieška negrąžino jokių rezultatų - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Stulpelio matomumas - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio @@ -8868,104 +9330,104 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". SearchPluginManager - + Unknown search engine plugin file format. Nežinomas paieškos sistemos papildinio failo formatas. - + Plugin already at version %1, which is greater than %2 Papildinys jau yra %1 versijos, kuri naujesnė nei %2 - + A more recent version of this plugin is already installed. Jau yra įdiegta naujesnė šio papildinio versija. - + Plugin %1 is not supported. Papildinys %1 nėra palaikomas. - - + + Plugin is not supported. Papildinys nepalaikomas. - + Plugin %1 has been successfully updated. Papildinys %1 buvo sėkmingai atnaujintas. - + All categories Visos kategorijos - + Movies Filmai - + TV shows TV laidos - + Music Muzika - + Games Žaidimai - + Anime Anime - + Software Programinė įranga - + Pictures Paveikslai - + Books Knygos - + Update server is temporarily unavailable. %1 Atnaujinimų serveris laikinai neprieinamas. %1 - - + + Failed to download the plugin file. %1 Nepavyko atsisiųsti papildinio failo. %1 - + Plugin "%1" is outdated, updating to version %2 Papildinys "%1" yra pasenęs, atnaujinama į %2 versiją - + Incorrect update info received for %1 out of %2 plugins. %1 iš %2 papildinių gauta neteisinga atnaujinimo informacija. - + Search plugin '%1' contains invalid version string ('%2') Paieškos papildinyje "%1" yra neteisinga versijos eilutė ('%2') @@ -8975,114 +9437,145 @@ Atsiprašome, tačiau negalime parodyti šio failo: "%1". - - - - Search Paieška - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nėra įdiegta jokių paieškos papildinių. Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką "Paieškos papildiniai...". - + Search plugins... Paieškos papildiniai... - + A phrase to search for. Frazė, kurios ieškoti. - + Spaces in a search term may be protected by double quotes. Tarpai paieškos žodžiuose gali būti išsaugoti dvigubomis kabutėmis. - + Example: Search phrase example Pavyzdys: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: bus ieškoma <b>foo bar</b> - + All plugins Visi papildiniai - + Only enabled Tik įjungti - + + + Invalid data format. + Neteisingas duomenų formatas. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: bus ieškoma <b>foo</b> ir <b>bar</b> - + + Refresh + + + + Close tab Užverti kortelę - + Close all tabs Užverti visas korteles - + Select... Pasirinkti... - - - + + 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į - + + Stop Stabdyti + + + SearchWidget::DataStorage - - Search has finished - Paieška baigta + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Paieška nepavyko + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9191,38 +9684,38 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Speed limits - + Greičio apribojimai - + Upload: Išsiuntimo: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Atsiuntimo: - + Alternative speed limits Alternatyvūs greičio apribojimai @@ -9320,7 +9813,7 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo 3 Hours - 24 valandos {3 ?} + 3 valandos @@ -9414,32 +9907,32 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Vidutinė laukimo eilėje trukmė: - + Connected peers: Prisijungusių siuntėjų: - + All-time share ratio: Viso laikotarpio dalijimosi santykis: - + All-time download: Viso laikotarpio atsiuntimas: - + Session waste: Iššvaistyta per seansą: - + All-time upload: Viso laikotarpio išsiuntimas: - + Total buffer size: Bendras buferio dydis: @@ -9454,12 +9947,12 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo I/O darbai eilėje: - + Write cache overload: Rašymo podėlio perkrova: - + Read cache overload: Skaitymo podėlio perkrova: @@ -9478,51 +9971,77 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo StatusBar - + Connection status: Prisijungimo būsena: - - + + No direct connections. This may indicate network configuration problems. Nėra tiesioginių susijungimų. Tai gali reikšti tinklo nustatymo problemas. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 mazgų - + qBittorrent needs to be restarted! qBittorrent turi būti paleista iš naujo! - - - + + + Connection Status: Prisijungimo būsena: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Neprisijungta. Tai dažniausiai reiškia, jog qBittorrent nepavyko klausytis ties pasirinktu prievadu. - + Online Prisijungta - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Spauskite, jei norite įjungti alternatyvius greičio apribojimus - + Click to switch to regular speed limits Spauskite, jei norite įjungti įprastus greičio apribojimus @@ -9552,13 +10071,13 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo - Resumed (0) - Pratęsti (0) + Running (0) + Paleisti (0) - Paused (0) - Pristabdyti (0) + Stopped (0) + Sustabdyti (0) @@ -9588,12 +10107,12 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Checking (0) - + Tikrinami (0) Moving (0) - + Perkeliami (0) @@ -9620,36 +10139,36 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Completed (%1) Užbaigti (%1) + + + Running (%1) + Paleisti (%1) + - Paused (%1) - Pristabdyti (%1) + Stopped (%1) + Sustabdyti (%1) + + + + Start torrents + Paleisti torentus + + + + Stop torrents + Stabdyti torentus Moving (%1) - - - - - Resume torrents - Prastęsti torentus - - - - Pause torrents - Pristabdyti torentus + Perkeliami (%1) Remove torrents Pašalinti torentai - - - Resumed (%1) - Pratęsti (%1) - Active (%1) @@ -9678,7 +10197,7 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Checking (%1) - + Tikrinami (%1) @@ -9721,31 +10240,31 @@ Norėdami juos įdiegti, spustelėkite lango apatinėje dešinėje mygtuką &quo Remove unused tags Šalinti nenaudojamas žymes - - - Resume torrents - Pratęsti torentus - - - - Pause torrents - Pristabdyti torentus - Remove torrents Pašalinti torentai - - New Tag - Nauja žymė + + Start torrents + Paleisti torentus + + + + Stop torrents + Stabdyti torentus Tag: Žymė: + + + Add tag + + Invalid tag name @@ -9892,32 +10411,32 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentContentModel - + Name Vardas - + Progress Eiga - + Download Priority Atsiuntimo svarba - + Remaining Liko - + Availability Prieinamumas - + Total Size Bendras dydis @@ -9962,98 +10481,98 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentContentWidget - + Rename error Pervadinimo klaida - + Renaming Pervadinimas - + New name: Naujas pavadinimas: - + Column visibility Stulpelio matomumas - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio - + Open Atverti - + Open containing folder Atverti vidinį aplanką - + Rename... Pervadinti... - + Priority Svarba - - + + Do not download Nesiųsti - + Normal Įprasta - + High Aukšta - + Maximum Aukščiausia - + By shown file order Pagal rodomą failų tvarką - + Normal priority Normalios svarbos - + High priority Didelės svarbos - + Maximum priority Maksimalios svarbos - + Priority by shown file order Svarbumas pagal rodomą failų tvarką @@ -10061,19 +10580,19 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentCreatorController - + Too many active tasks - + Per daug aktyvių užduočių - + Torrent creation is still unfinished. - + Torento sukūrimas yra vis dar neužbaigtas. - + Torrent creation failed. - + Nepavyko sukurti torento. @@ -10100,13 +10619,13 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. - + Select file Pasirinkti failą - + Select folder Pasirinkti aplanką @@ -10118,12 +10637,12 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Torrent format: - + Torento formatas: Hybrid - + Hibridinis @@ -10181,87 +10700,83 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Laukai - + You can separate tracker tiers / groups with an empty line. Tuščia eilute galite atskirti seklius į pakopas / grupes. - + Web seed URLs: Saityno skleidimo URL adresai: - + Tracker URLs: Seklių URL: - + Comments: Komentarai: - + Source: Šaltinis: - + Progress: Eiga: - + Create Torrent Sukurti torentą - - + + Torrent creation failed Torento sukūrimas nepavyko - + Reason: Path to file/folder is not readable. Priežastis: Kelias į failą/aplanką nėra skaitomas. - + Select where to save the new torrent Pasirinkite kur išsaugoti naują torentą - + Torrent Files (*.torrent) Torentų failai (*.torrent) - Reason: %1 - Priežastis: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Priežastis: „%1“ - + Add torrent failed - + Torrent creator Sukurti torentą - + Torrent created: Torentas sukurtas: @@ -10269,32 +10784,32 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10302,50 +10817,37 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Neteisingi metaduomenys - - TorrentOptionsDialog Torrent Options - + Torento parinktys @@ -10368,176 +10870,164 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Neužbaigtam torrentui naudokite kitą kelią - + Category: Kategorija: - - Torrent speed limits + + Torrent Share Limits - + Download: Atsiuntimo: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Išsiuntimo: - - Torrent share limits - - - - - Use global share limit - Naudoti visuotinį dalinimosi apribojimą - - - - Set no share limit - Nenustatinėti jokio dalinimosi apribojimo - - - - Set share limit to - Nustatyti dalinimosi apribojimą į - - - - ratio - santykis - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Siųsti dalis iš eilės - + Disable PeX for this torrent - + Download first and last pieces first Visų pirma siųsti pirmas ir paskutines dalis - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Rinktis išsaugojimo kelią. - + Not applicable to private torrents Netaikoma privatiems torentams - - - No share limit method selected - Nepasirinktas joks dalijimosi apribojimo metodas - - - - Please select a limit method first - Iš pradžių, pasirinkite apribojimų metodą - TorrentShareLimitsWidget - - - + + + + Default - Numatyta + Numatytasis - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min. + min. - + Inactive seeding time: - - Ratio: + + Action when the limit is reached: + + + Stop torrent + Stabdyti torentą + + + + Remove torrent + Šalinti torentą + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Įgalinti super atidavimą torentui + + + + Ratio: + Santykis: + TorrentTagsDialog @@ -10547,32 +11037,32 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Torento žymės - - New Tag - Nauja žymė + + Add tag + - + Tag: Žymė: - + Invalid tag name Neteisingas žymės pavadinimas - + Tag name '%1' is invalid. - + Tag exists Žymė yra - + Tag name already exists. Žymės pavadinimas jau yra. @@ -10580,115 +11070,130 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TorrentsController - + Error: '%1' is not a valid torrent file. Klaida: '%1' nėra taisyklingas torento failas. - + Priority must be an integer Svarba privalo būti sveikasis skaičius - + Priority is not valid Svarba yra neteisinga - + Torrent's metadata has not yet downloaded Torento metaduomenys dar nebuvo atsisiųsti - + File IDs must be integers Failų ID privalo būti sveikieji skaičiai - + File ID is not valid Failo ID yra neteisingas - - - - + + + + Torrent queueing must be enabled Privalo būti įjungta siuntimų eilė - - + + Save path cannot be empty Išsaugojimo kelias negali būti tuščias - - + + Cannot create target directory - - + + Category cannot be empty Kategorija negali būti tuščia - + Unable to create category Nepavyko sukurti kategorijos - + Unable to edit category Nepavyko taisyti kategorijos - + Unable to export torrent file. Error: %1 - + Cannot make save path Nepavyksta sukurti išsaugojimo kelio - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Nepavyksta rašyti į katalogą - + WebUI Set location: moving "%1", from "%2" to "%3" Tinklo sąsaja Nustatyti vietą: perkeliama "%1", iš "%2" į "%3" - + Incorrect torrent name Neteisingas torento pavadinimas - - + + Incorrect category name Neteisingas kategorijos pavadinimas @@ -10714,196 +11219,191 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TrackerListModel - + Working Veikia - + Disabled Išjungta - + Disabled for this torrent Išjungta šiam torentui - + This torrent is private Šis torentas yra privatus - + N/A Nėra - + Updating... Atnaujinama... - + Not working Neveikia - + Tracker error - + Unreachable - + Nepasiekiamas - + Not contacted yet Dar nesusisiekta - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Pakopa - - - - Protocol - Protokolas - - - - Status - Būsena - - - - Peers - Siuntėjai - - - - Seeds - Skleidėjai - - - - Leeches - Siunčia - - - - Times Downloaded + URL/Announce Endpoint - - Message - Žinutė - - - - Next announce + + BT Protocol - Min announce + Next Announce - - v%1 - v%1 + + Min Announce + + + + + Tier + Pakopa + + + + Status + Būsena + + + + Peers + Siuntėjai + + + + Seeds + Skleidėjai + + + + Leeches + Siunčia + + + + Times Downloaded + Parsiųsta kartų + + + + Message + Žinutė TrackerListWidget - + This torrent is private Šis torentas yra privatus - + Tracker editing Seklio taisymas - + Tracker URL: Seklio URL: - - + + Tracker editing failed Nepavyko taisyti seklio - + The tracker URL entered is invalid. Įvestas netaisyklingas seklio URL. - + The tracker URL already exists. Toks seklio URL jau yra. - + Edit tracker URL... Taisyti seklio URL... - + Remove tracker Šalinti seklį - + Copy tracker URL Kopijuoti seklio URL - + Force reannounce to selected trackers Priverstinai siųsti atnaujinimus pasirinktiems sekliams - + Force reannounce to all trackers Priverstinai siųsti atnaujinimus visiems sekliams - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio - + Add trackers... - + Column visibility Stulpelio matomumas @@ -10921,37 +11421,37 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Norimų pridėti seklių sąrašas (po vieną eilutėje): - + µTorrent compatible list URL: Suderinamo su µTorrent sąrašo URL: - + Download trackers list - + Add Pridėti - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10959,62 +11459,62 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TrackersFilterWidget - + Warning (%1) Įspėjimas (%1) - + Trackerless (%1) Be seklių (%1) - + Tracker error (%1) - + Other error (%1) - + Kita klaida (%1) - + Remove tracker Šalinti seklį - - Resume torrents - Prastęsti torentus + + Start torrents + Paleisti torentus - - Pause torrents - Pristabdyti torentus + + Stop torrents + Stabdyti torentus - + Remove torrents Pašalinti torentai - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Visi (%1) @@ -11023,7 +11523,7 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TransferController - + 'mode': invalid argument @@ -11115,11 +11615,6 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. 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. Tikrinami pratęsimo duomenys - - - Paused - Pristabdyti - Completed @@ -11143,220 +11638,252 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Klaida - + Name i.e: torrent name Pavadinimas - + Size i.e: torrent size Dydis - + Progress % Done Eiga - + + Stopped + Sustabdyta + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Būsena - + Seeds i.e. full sources (often untranslated) Skleidėjai - + Peers i.e. partial sources (often untranslated) Siuntėjai - + Down Speed i.e: Download speed Ats. greitis - + Up Speed i.e: Upload speed Išs. greitis - + Ratio Share ratio Santykis - + + Popularity + Populiarumas + + + ETA i.e: Estimated Time of Arrival / Time left Liko - + Category Kategorija - + Tags Žymės - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Pridėta - + Completed On Torrent was completed on 01/01/2010 08:00 Užbaigta - + Tracker Seklys - + Down Limit i.e: Download limit Ats. riba - + Up Limit i.e: Upload limit Išs. riba - + Downloaded Amount of data downloaded (e.g. in MB) Atsiųsta - + Uploaded Amount of data uploaded (e.g. in MB) Išsiųsta - + Session Download Amount of data downloaded since program open (e.g. in MB) Atsiųsta per seansą - + Session Upload Amount of data uploaded since program open (e.g. in MB) Išsiųsta per seansą - + Remaining Amount of data left to download (e.g. in MB) Liko - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktyvus - + + Yes + Taip + + + + No + Ne + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Užbaigta - + Ratio Limit Upload share ratio limit Dalijimosi santykio riba - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Paskutinį kartą matytas užbaigtu - + Last Activity Time passed since a chunk was downloaded/uploaded Paskutinė veikla - + Total Size i.e. Size including unwanted data Bendras dydis - + Availability The number of distributed copies of the torrent Prieinamumas - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Nėra - + %1 ago e.g.: 1h 20m ago prieš %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (skleidžiama jau %2) @@ -11365,339 +11892,319 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. TransferListWidget - + Column visibility Stulpelio matomumas - + Recheck confirmation Pertikrinimo patvirtinimas - + Are you sure you want to recheck the selected torrent(s)? Ar tikrai norite pertikrinti pasirinktą torentą (-us)? - + Rename Pervadinti - + New name: Naujas vardas: - + Choose save path Pasirinkite išsaugojimo kelią - - Confirm pause - - - - - Would you like to pause all torrents? - Ar norėtumėte pristabdyti visus torentus? - - - - Confirm resume - - - - - Would you like to resume all torrents? - Ar norėtumėte pratęsti visus torentus? - - - + Unable to preview Nepavyko peržiūrėti - + The selected torrent "%1" does not contain previewable files Pasirinktas torentas "%1" neturi failų kuriuos būtu galima peržiūrėti - + Resize columns Keisti stulpelių dydį - + Resize all non-hidden columns to the size of their contents Pakeiskite visų nepaslėptų stulpelių dydį iki jų turinio dydžio - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Pridėti žymes - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Failas tokiu pavadinimu jau yra - + Export .torrent file error - + Remove All Tags Šalinti visas žymes - + Remove all tags from selected torrents? Šalinti pasirinktiems torentams visas žymes? - + Comma-separated tags: Kableliais atskirtos žymės: - + Invalid tag Neteisinga žymė - + Tag name: '%1' is invalid Žymės pavadinimas: "%1" yra neteisingas - - &Resume - Resume/start the torrent - P&ratęsti - - - - &Pause - Pause the torrent - &Pristabdyti - - - - Force Resu&me - Force Resume/start the torrent - Priverstinai pratę&sti - - - + Pre&view file... Perž&iūrėti failą... - + Torrent &options... Torento &parinktys... - + Open destination &folder Atverti paskirties a&planką - + Move &up i.e. move up in the queue Pa&kelti - + Move &down i.e. Move down in the queue &Nuleisti - + Move to &top i.e. Move to top of the queue Perkelti į &viršų - + Move to &bottom i.e. Move to bottom of the queue Perkelti į &apačią - + Set loc&ation... - + Nustatyti vie&tą... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + &Magnet nuoroda - + Torrent &ID - + Torento &ID - + &Comment - + &Komentaras - + &Name - + Pavadi&nimas - + Info &hash v1 - + Info h&ash v2 - + Re&name... Per&vadinti... - + Edit trac&kers... - + E&xport .torrent... - + E&ksportuoti .torrent... - + Categor&y - + Kategor&ija - + &New... New category... &Nauja... - + &Reset Reset category A&tstatyti - + Ta&gs Ž&ymės - + &Add... Add / assign multiple tags... &Pridėti... - + &Remove All Remove all tags Ša&linti visas - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Eilė - + &Copy &Kopijuoti - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Siųsti dalis iš eilės - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent Ša&linti - + Download first and last pieces first Visų pirma siųsti pirmas ir paskutines dalis - + Automatic Torrent Management Automatinis torento tvarkymas - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatinė veiksena reiškia, kad įvairios torento savybės (pvz., išsaugojimo kelias) bus nuspręstos pagal priskirtą kategoriją. - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Super skleidimo režimas @@ -11742,36 +12249,41 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Piktogramos ID - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Nepavyko pašalinti piktogramos failo. Failas: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - + Nepavyko nukopijuoti piktogramos failo. Šaltinis: %1. Paskirtis: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Nepavyko įkelti naudotojo sąsajos temos iš failo: %1 @@ -11802,20 +12314,21 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11823,32 +12336,32 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11873,7 +12386,7 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. File read error. File: "%1". Error: "%2" - + Failo skaitymo klaida. Failas: „%1“. Klaida: „%2“ @@ -11940,72 +12453,72 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Nepriimtinas failo tipas, yra leidžiamas tik įprastas failas. - + Symlinks inside alternative UI folder are forbidden. Simbolinės nuorodos alternatyvaus naudotojo sąsajos aplanko viduje yra uždraustos. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Tinklo sąsaja: Kilmės antraštė ir Paskirties kilmė nesutampa! Šaltinio IP: "%1". Kilmės antraštė: "%2". Paskirties kilmė: "%3" - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Tinklo sąsaja: Nukreipėjo antraštė ir Paskirties kilmė nesutampa! Šaltinio IP: "%1". Nukreipėjo antraštė: "%2". Paskirties kilmė: "%3" - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Tinklo sąsaja: Neteisinga Serverio antraštė, prievadai nesutampa. Užklausos šaltinio IP: "%1". Serverio prievadas: "%2". Gauta Serverio antraštė: "%3" - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Tinklo sąsaja: Neteisinga Serverio antraštė. Užklausos šaltinio IP: "%1". Gauta Serverio antraštė: "%2" @@ -12013,125 +12526,133 @@ Pasirinkite kitokį pavadinimą ir bandykite dar kartą. WebUI - + Credentials are not set - + Nėra nustatyti prisijungimo duomenys - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Nežinoma klaida + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1 min. {1s?} + %1 sek. - + %1m e.g: 10 minutes %1 min. - + %1h %2m e.g: 3 hours 5 minutes %1 val. %2 min. - + %1d %2h e.g: 2 days 10 hours %1 d. %2 val. - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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. diff --git a/src/lang/qbittorrent_ltg.ts b/src/lang/qbittorrent_ltg.ts index 45fcf9fe8..d8dbc1560 100644 --- a/src/lang/qbittorrent_ltg.ts +++ b/src/lang/qbittorrent_ltg.ts @@ -12,75 +12,75 @@ Par - + Authors Autori - + Current maintainer Niulejais saiminīks - + Greece Grekeja - - + + Nationality: Piļsuoneiba: - - + + E-mail: E-posts: - - + + Name: Vuords: - + Original author Programmas radeituojs - + France Praņceja - + Special Thanks Cīši paļdis - + Translators Puorvārsuoji - + License Liceņceja - + Software Used Programatura - + qBittorrent was built with the following libraries: qBittorrent tika sastateits lītojūt ituos bibliotekas - + Copy to clipboard @@ -91,7 +91,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -164,15 +164,10 @@ Izglobuot ite - + Never show again Vairuok naruodeit - - - Torrent settings - Torrenta īstatejumi - Set as default category @@ -189,12 +184,12 @@ Suokt atsasyuteišonu - + Torrent information Torrenta inpormaceja - + Skip hash check Izlaist maiseituojkoda puorbaudi @@ -203,6 +198,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -229,70 +229,75 @@ - - + + None - - + + Metadata received - - + + Torrents that have metadata initially will be added as stopped. + + + + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Satvora izlikaliejums: - + Original - + Create subfolder Radeit zamapvuoci - + Don't create subfolder Naradeit zamapvuoci - + Info hash v1: Maiseituojkods v1: - + Size: Lelums: - + Comment: Komentars: - + Date: Data: @@ -322,152 +327,147 @@ Atguoduot pādejū izglobuošonas vītu - + Do not delete .torrent file Nedzēst torrenta failu - + Download in sequential order Atsasyuteit saksteiguo parādā - + Download first and last pieces first Paprīšķu atsasyuteit pyrmuos i pādejuos dalenis - + Info hash v2: Maiseituojkods v2: - + Select All Izlaseit vysys - + Select None Izlaseit nivīnu - + Save as .torrent file... Izglobuot kai .torrent failu... - + I/O Error I/O klaida - + Not Available This comment is unavailable Nav daīmams - + Not Available This date is unavailable Nav daīmams - + Not available Nav daīmams - + Magnet link Magnetsaita - + Retrieving metadata... Tiek izdabuoti metadati... - - + + Choose save path Izalaseit izglobuošonas vītu - + No stop condition is set. - + Torrent will stop after metadata is received. - - Torrents that have metadata initially aren't affected. - - - - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A Navā zynoms - + %1 (Free space on disk: %2) %1 (Breivas vītas uz diska: %2) - + Not available This size is unavailable. Nav daīmams - + Torrent file (*%1) Torrenta fails (*%1) - + Save as torrent file Izglobuot kai torrenta failu - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Meklēt failuos... - + Parsing metadata... Tiek apdareiti metadati... - + Metadata retrieval complete Metadatu izdabuošana dabeigta @@ -475,35 +475,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -587,6 +587,11 @@ Skip hash check Izlaist maiseituojkoda puorbaudi + + + Torrent share limits + Torrenta kūplītuošonas reitinga rūbežs + @@ -661,753 +666,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Atkuortuotai puorsavērt torrentus piec atsasyuteišonas dabeigšonas. - - + + ms milliseconds ms - + Setting Fuņkcejas - + Value Value set for this setting Vierteiba - + (disabled) (atslēgts) - + (auto) (automatiski) - + + min minutes myn - + All addresses Vysas adresas - + qBittorrent Section qBittorent izdola - - + + Open documentation Skaiteit dokumentaceju - + All IPv4 addresses Vysas IPv4 adresas - + All IPv6 addresses Vysas IPv6 adresas - + libtorrent Section libtorrent izdola - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Norma - + Below normal Zam normu - + Medium Vydyskys - + Low Zams - + Very low Cīši zams - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache Cītdiska vydatguods - - - - + + + + + s seconds s - + Disk cache expiry interval Cītdiska vydatguoda dereiguma iņtervals - + Disk queue size - - + + Enable OS cache Lītuot sistemys vydatguodu - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP Dūt pyrmaileibu TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address Atļaut nazcik salaidumus nu vīnas IP adress - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - - It controls the internal state update interval which in turn will affect UI updates + + It appends the text to the window title to help distinguish qBittorent instances - - Refresh interval - - - - - Resolve peer host names - Ruodeit kūplītuotuoju datoru pasaukas - - - - IP address reported to trackers (requires restart) - IP adress kū paviesteit trakeriem (vajadzeigs restarts) - - - - Reannounce to all trackers when IP or port changed - - - - - Enable icons in menus - - - - - Enable port forwarding for embedded tracker - - - - - Enable quarantine for downloaded files - - - - - Enable Mark-of-the-Web (MOTW) for downloaded files - - - - - (Auto detect if empty) - - - - - Python executable path (may require restart) - - - - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty - - - - - DHT bootstrap nodes - - - - - I2P inbound quantity - - - - - I2P outbound quantity - - - - - I2P inbound length - - - - - I2P outbound length + + Customize application instance name + It controls the internal state update interval which in turn will affect UI updates + + + + + Refresh interval + + + + + Resolve peer host names + Ruodeit kūplītuotuoju datoru pasaukas + + + + IP address reported to trackers (requires restart) + IP adress kū paviesteit trakeriem (vajadzeigs restarts) + + + + Port reported to trackers (requires restart) [0: listening port] + + + + + Reannounce to all trackers when IP or port changed + + + + + Enable icons in menus + + + + + Attach "Add new torrent" dialog to main window + + + + + Enable port forwarding for embedded tracker + + + + + Enable quarantine for downloaded files + + + + + Enable Mark-of-the-Web (MOTW) for downloaded files + + + + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + + (Auto detect if empty) + + + + + Python executable path (may require restart) + + + + + Start BitTorrent session in paused state + + + + + sec + seconds + sek + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + + DHT bootstrap nodes + + + + + I2P inbound quantity + + + + + I2P outbound quantity + + + + + I2P inbound length + + + + + I2P outbound length + + + + Display notifications Ruodeit viesteņas - + Display notifications for added torrents Ruodeit viesteņas par daliktajiem torrentiem - + Download tracker's favicon Atsasyuteit trakera lopys ikonu - + Save path history length Izglobuošonas vītu viesturis garums - + Enable speed graphs Īslēgt dreizumu grafiku - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload Dreižuokā nūsasyuteišona - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck Apstyprynuot atkuortuotu torrenta puorvēri - + Confirm removal of all tags Apstyprynuot vysu byrku nūjimšonu - + Always announce to all trackers in a tier Vysod atjaunynuot datus ar vysim trakeriem grupā - + Always announce to all tiers Vysod atjaunynuot datus ar vysim trakeriem vysuos grupās - + Any interface i.e. Any network interface Automatiski - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries Ruodeit kūplītuotuoju vaļsteibas - + Network interface Škārsteikla sadurs: - + Optional IP address to bind to Dasaisteit papyldoma IP adresi: - + Max concurrent HTTP announces - + Enable embedded tracker Īslēgt īmontātuo trakeri - + Embedded tracker port Īmontāta trakera ports + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 Niulejuos koņfiguracejis apvuocis: %1 - + Torrent name: %1 Torrenta pasauka: %1 - + Torrent size: %1 Torrenta lelums: %1 - + Save path: %1 Izglobuošonas vīta: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrents tika atsasyuteits %1 - + + Thank you for using qBittorrent. Paļdis, ka lītojat qBittorrent. - + Torrent: %1, sending mail notification Torrents: %1, syuta posta viesteņu - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit Izīt - + I/O Error i.e: Input/Output Error I/O klaida - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1416,100 +1531,110 @@ Īmesls: %2 - + Torrent added Torrents dalikts - + '%1' was added. e.g: xxx.avi was added. '%1' tika dalikts. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' atsasyuteišona ir dabeigta. - + Information Inpormaceja - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Nikod - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Izglobuo torrenta progressu... - + qBittorrent is now ready to exit @@ -1517,7 +1642,7 @@ AsyncFileStorage - + Could not create directory '%1'. Nāisadevās radeit apvuoci '%1'. @@ -1588,12 +1713,12 @@ - + Must Not Contain: Naīlikt: - + Episode Filter: Epizozu filtrys: @@ -1646,263 +1771,263 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." &Izglobuot fiļtrys... - + Matches articles based on episode filter. Meklej rezultatus piec epizozu fiļtra. - + Example: Pīvadums: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match filtrys atlaseis 2., 5., nū 8. leidz 15., 30. i tuoluokās pirmous sezonys epizozes. - + Episode filter rules: Epizozu filtrys: - + Season number is a mandatory non-zero value Sezonys numurs navar byut 0 - + Filter must end with semicolon Filtri vajag dabeigt ar komatpunkti - + Three range types for episodes are supported: Filtrym lītojami 3 parametri: - + Single number: <b>1x25;</b> matches episode 25 of season one Parametris: <b>1x25;</b> atlaseis tik 1. sezonys 25. epizodi - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Parametris: <b>1x25-40;</b> atlaseis tik 1. sezonys epizodes, nū 25. leidz 40. - + Episode number is a mandatory positive value Epizodys numurs navar byut negativs - + Rules Filtrys - + Rules (legacy) Filtrys (vacajs) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Parametris: <b>1x25-;</b> atlaseis vysas sezonas i epizodes, suokot ar 1. sezonas 25. epizodi. - + Last Match: %1 days ago Pādejī rezultati: pyrms %1 dīnu - + Last Match: Unknown Pādejī rezultati: nav - + New rule name Jauna fiļtra pasauka - + Please type the name of the new download rule. Lyudzu Īvoduot jauna fiļtra pasauku. - - + + Rule name conflict - - + + A rule with this name already exists, please choose another name. Fiļtrys ar itaidu pasauku jau ir, lyudzu izalaseit cytu pasauku. - + 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 Apstyprynuot iztreišonu - + Invalid action Nadereiga darbeiba - + The list is empty, there is nothing to export. Saroksts tukšs, nav kū izglobuot. - + Export RSS rules Izglobuot RSS fiļtru - + I/O Error I/O klaida - + Failed to create the destination file. Reason: %1 Naīsadevās radeit failu. Īmesls: %1 - + Import RSS rules Dalikt RSS fiļtru - + Failed to import the selected rules file. Reason: %1 Naīsadevās dalikt izalaseituo fiļtru. Īmesls: %1 - + Add new rule... Pīlikt jaunu fiļtri... - + Delete rule Iztreit fiļtri - + Rename rule... Puorsaukt fiļtri - + Delete selected rules Iztreit izalaseituos fiļtrus - + Clear downloaded episodes... - + Rule renaming Fiļtra puorsaukšona - + Please type the new rule name Lyudzu Īvoduot jauna fiļtra pasauku - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 Poziceja %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1944,58 +2069,69 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" - + Cannot parse resume data: invalid format - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - + Couldn't load torrents queue: %1 - + + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2003,38 +2139,60 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2042,22 +2200,22 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2065,466 +2223,525 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON ĪGRĪZTS - - - - - - - - - + + + + + + + + + OFF NŪGRĪZTS - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED DASTATEIGS - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" + + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - - Removed torrent and deleted its content. Torrent: "%1" - - - - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" + + BitTorrent::TorrentCreationTask + + + Failed to start seeding. + + + BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2532,67 +2749,67 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Paprīšķu atsasyuteit pyrmuos i pādejuos dalenis: %1, torrents: '%2' - + On Īslēgts - + Off Atslēgts - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2613,189 +2830,189 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - + [options] [(<filename> | <url>)...] - + Options: Vareibas: - + Display program version and exit - + Display this help message and exit - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port ports - + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" apvuocis - + Store configuration files in <dir> - - + + name pasauka - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs vaili voi saitys - + Download the torrents passed by the user - + Options when adding new torrents: - + path vīta - + Torrent save path Torrenta izglobuošonas vīta - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Izlaist maiseituojkoda puorbaudi - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Atsasyuteit saksteiguo parādā - + Download first and last pieces first Paprīšķu atsasyuteit pyrmuos i pādejuos dalenis - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Paleigs @@ -2847,13 +3064,13 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." - Resume torrents - Aizsuokt torrentus + Start torrents + - Pause torrents - Nūstuodeit torrentus + Stop torrents + @@ -2864,15 +3081,20 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." ColorWidget - + Edit... - + Reset Atstateit + + + System + + CookiesDialog @@ -2913,12 +3135,12 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2926,7 +3148,7 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2945,23 +3167,23 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -2974,12 +3196,12 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." Atsasyuteit nu saita - + Add torrent links Dalikt torrentu saitys - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -2989,12 +3211,12 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." Atsasyuteit - + No URL entered Adrese netika īvoduota - + Please type at least one URL. Lyudzu īvoduot adresi @@ -3153,25 +3375,48 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Itys torrents jau ir dalikts - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3179,38 +3424,38 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." 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 - + Database corrupted: no data section found. @@ -3218,17 +3463,17 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3269,26 +3514,60 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." IconWidget - + Browse... Apsavērt... - + Reset Atstateit - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3320,13 +3599,13 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 tika nūblokēta. Īmesls: %2 - + %1 was banned 0.0.0.0 was banned %1 tika nūblokēta @@ -3335,60 +3614,60 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3401,600 +3680,677 @@ Formats: S01E01, 1x1, 2017.12.31 i 31.12.2017 (Datam škiramsimbola "." Lobuot - + &Tools Reiki - + &File &Fails - + &Help Paleigs - + On Downloads &Done - + &View Vierīņs - + &Options... Nūstatejumi... - - &Resume - Aizsuokt - - - + &Remove - + Torrent &Creator Torrentu &darynuotuojs - - + + Alternative Speed Limits Aļternativie dreizumi - + &Top Toolbar Viersejuo reikšveitra - + Display Top Toolbar Radeit viersejuo reikšveitru - + Status &Bar Statusa &jūsta - + Filters Sidebar - + S&peed in Title Bar Dreizums pasaukys šveitrā - + Show Transfer Speed in Title Bar Radeit dreizumu pasaukys šveitrā - + &RSS Reader &RSS laseituojs - + Search &Engine Maklātivs - + L&ock qBittorrent Aizslēgt qBittorrent - + Do&nate! Dūt pazīdu! - + + Sh&utdown System + + + + &Do nothing - + Close Window Aiztaiseit lūgu - - R&esume All - Aizsuokt vysys - - - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue Puorceļt saroksta zamoškā - + Move to the bottom of the queue Puorceļt saroksta zamoškā - + Top of Queue Puorceļt saroksta viersā - + Move to the top of the queue Puorceļt saroksta viersā - + Move Down Queue Puorceļt zamuok sarokstā - + Move down in the queue Puorceļt zamuok sarokstā - + Move Up Queue Puorceļt augstuok sarokstā - + Move up in the queue Puorceļt augstuok sarokstā - + &Exit qBittorrent Aiztaiseit qBittorrent - + &Suspend System - + &Hibernate System - - S&hutdown System - - - - + &Statistics Statistika - + Check for Updates Meklēt atjaunynuojumus - + Check for Program Updates Meklēt aplikacejis atjaunynuojumus - + &About Par - - &Pause - Nūstateit - - - - P&ause All - Nūstuodeit vysys - - - + &Add Torrent File... &Dalikt torrentu failus... - + Open Atkluot - + E&xit Izīt - + Open URL Atkluot teiklavītu - + &Documentation Dokumentaceja - + Lock Aizslēgt - - - + + + Show Ruodeit - + Check for program updates Meklēt aplikacejis atjaunynuojumus - + Add Torrent &Link... Dalikt torrentu &saitys... - + If you like qBittorrent, please donate! - - + + Execution Log - + Clear the password Nūteireit paroli - + &Set Password &Īstateit paroli - + Preferences Īstatejumi - + &Clear Password &Nūteireit paroli - + Transfers Torrenti - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - + + UI lock password - - + + Please type the UI lock password: - + Are you sure you want to clear the password? Voi drūši zini, ka gribi nūteireit paroli? - + Use regular expressions Lītuot Reguļaras izsaceibas - + + + Search Engine + Maklātivs + + + + Search has failed + Mekliešona naīsadevās + + + + Search has finished + Mekliešona dabeigta + + + Search Meklēt - + Transfers (%1) Torrenti (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? Voi drūši zini, ka gribi aiztaiseit qBittorrent? - + &No &Nā - + &Yes &Nui - + &Always Yes &Vysod nui - + Options saved. - - + + [PAUSED] %1 + %1 is the rest of the window title + + + + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available Daīmams qBittorrent atjaunynuojums - + 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. - - + + Old Python Runtime - + A new version is available. Daīmama jaunuoka verseja. - + Do you want to download %1? Voi gribi atsasyuteit %1? - + Open changelog... - + No updates available. You are already using the latest version. Navā atjaunynuojumu. Jyusim jau irā pošjaunais qBittorrent izlaidums. - + &Check for Updates &Meklēt atjaunynuojumus - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Nūstuodeits + + + Checking for Updates... Meklē atjaunynuojumus... - + Already checking for program updates in the background - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Atsasyuteišonas kleida - - Python setup could not be downloaded, reason: %1. -Please install it manually. - - - - - + + Invalid password Nadereiga paroļs - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid Paroļs navā dereigs - + DL speed: %1 e.g: Download speed: 10 KiB/s Atsasyut. dreizums: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Nūsasyut. dreizums: %1 - - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [A: %1, N: %2] qBittorrent %3 - - - + Hide Naruodeit - + Exiting qBittorrent Aiztaiseit qBittorrent - + Open Torrent Files Izalaseit Torrentu failus - + Torrent Files Torrentu faili @@ -4055,133 +4411,133 @@ Please install it manually. Net::DownloadHandlerImpl - - + + I/O Error: %1 - + The file size (%1) exceeds the download limit (%2) Faila lelums (%1) viersej atļauto (%2) - + Exceeded max redirections (%1) - + Redirected to magnet URI - + The remote host name was not found (invalid hostname) - + The operation was canceled Darbeiba atsaukta - + 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 Nazynoma kleida @@ -4189,7 +4545,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5483,47 +5844,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5561,481 +5922,510 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Tuolvaļde - - - + Advanced Papyldvareibas - + Customize UI Theme... - + Transfer List Torrentu saroksts - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always Vysod - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - Suokt / Nūstuodeit torrentu - - - - + + Open destination folder Atkluot apvuoci - - + + No action - + Completed torrents: - + Auto hide zero status filters - + Desktop - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrenta satvora izlikaliejums: - + Original - + Create subfolder Radeit zamapvuoci - + Don't create subfolder Naradeit zamapvuoci - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Pīlikt byrku... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Kūplītuotuoju salaidumu protokols: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits Īstateit laiku Aļternativuo kūpeiguo dreizumu lītuošonai - + From: From start time Nu: - + To: To end time Leidz: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Vaira dazynuošonys</a>) - + Maximum active checking torrents: - + &Torrent Queueing Torrentu saroksts - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Automatiski pīlikt šūs trakerus pi jaunīm torrentīm: - - - + RSS Reader RSS laseituojs - + Enable fetching RSS feeds Īgrīzt RSS laseituoju - + Feeds refresh interval: Īrokstu atsvīžeišonas iņtervals: - + + Same host request delay: + + + + Maximum number of articles per feed: Īrokstu skaits uz vīnu kanalu: - - - + + + min minutes myn - + Seeding Limits Nūsasyuteišonas rūbežas - - Pause torrent - Nūstuodeit torrentu - - - + Remove torrent Nūjimt torrentu - + Remove torrent and its files Nūjimt torrentu i failus - + Enable super seeding for torrent Īgrīzt super-nūsasyuteišonu - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + Adress: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Automatiskys torrentu atsasyuteituojs - + Enable auto downloading of RSS torrents Īgrīzt RSS Automatiskuo atsasyuteišonu - + Edit auto downloading rules... Labuot RSS Automatiskys atsasyuteišonys īstatejumus... - + RSS Smart Episode Filter RSS Gudrais epizozu fiļtrys - + Download REPACK/PROPER episodes Atsasyuteit REPACK/PROPER epizodes - + Filters: Fiļtri: - + Web User Interface (Remote control) Tuolvaļdis sadurs (Web UI) - + IP address: IP adress: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Nikod - + ban for: nūlīgt dativi uz: - + Session timeout: - + Disabled Nūgrīzts - - Enable cookie Secure flag (requires HTTPS) - Īgrīzt glabiņu Secure flag (vajadzeigs HTTPS) - - - + Server domains: Servera domeni: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6044,441 +6434,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP HTTP vītā lītuot HTTPS - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Atjaunynuot muna dinamiskuo domena pasauku - + Minimize qBittorrent to notification area - + + Search + Meklēt + + + + WebUI + + + + Interface Sadurs - + Language: Volūda - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Norma - + File association Failu asociaceja - + Use qBittorrent for .torrent files Lītuot qBittorrent priekš .torrent failim - + Use qBittorrent for magnet links Lītuot qBittorrent priekš Magnetsaitym - + Check for program updates Meklēt aplikacejis atjaunynuojumus - + Power Management Veikmis puorvolds - + + &Log Files + + + + Save path: Izglobuošonas vīta: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management Saglabuošonas puorvoļds - + Default Torrent Management Mode: Nūklusiejuma Torrenta puorvaļdis režims: - + Manual Rūkvaļde - + Automatic Automatiskuo - + When Torrent Category changed: - + Relocate torrent Puorceļt torrentu - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories Lītuot zamkategorejas - + Default Save Path: Nūklusiejuma izglobuošonys vīta: - + Copy .torrent files to: Radeit .torrent failu puorspīdumu ite: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: Radeit .torrent failu puorspīdumu dabeigtīm torrentīm ite: - + Pre-allocate disk space for all files Laiceigi puordrūsynuot vītu uz diska jaunīm failīm - + Use custom UI Theme Lītuot cytu saduri - + UI Theme file: Sadurs fails: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days dīnu - + months Delete backup logs older than 10 months mienešīm - + years Delete backup logs older than 10 years godim - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nasuokt atsasyuteišonu automatiski - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Dalikt .!qB golaini nadabeigtīm failīm - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6495,765 +6926,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Dabuojiejs - + To: To receiver Iz: - + SMTP server: SMTP servers: - + Sender Syuteituojs - + From: From sender Nu: - + This server requires a secure connection (SSL) - - + + Authentication - - - - + + + + Username: Lītuotuojs: - - - - + + + + Password: Paroļs: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP i μTP - + Listening Port - + Port used for incoming connections: Ports priekš atīmūšim salaidumim: - + Set to 0 to let your system pick an unused port - + Random Navuošai - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits Salaidumu skaita rūbežas - + Maximum number of connections per torrent: Salaidumu skaits uz vīnu torrentu: - + Global maximum number of connections: Kūpeigais salaidumu skaits: - + Maximum number of upload slots per torrent: Nūsasyuteišonas slotu skaits uz vīnu torrentu: - + Global maximum number of upload slots: Kūpeigais nūsasyuteišonas slotu skaits: - + Proxy Server Vidinīkservers - + Type: Lītuot: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Saiminīks: - - - + + + Port: Ports: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Lītuot vidinīkserveri kūplītuotuoju salaidumim - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): Fiļtrys vīta (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... Nūblokētās IP adresas... - + Apply to trackers Lītuot trakerym - + Global Rate Limits Golvonais kūpeigā dreizuma rūbežs - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Nūsasyuteišona: - - + + Download: Atsasyuteišona: - + Alternative Rate Limits Aļternativais kūpeigā dreizuma rūbežs - + Start time Suokšonas laiks - + End time Beigšonas laiks - + When: Kod: - + Every day Kas dīnys - + Weekdays Dorbadīnās - + Weekends Nedeļgolās - + Rate Limits Settings Dreizuma rūbežs īstatejumi - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy Privatums - + Enable DHT (decentralized network) to find more peers Īgrīzt DHT (nacentralizātū teiklu), lai atrastu vēļ vaira kūplītuotuoju - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Īgrīzt Datu Meitu kūplītuotuoju vydā (PeX), lai atrastu vēļ vaira kūplītuotuoju - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers Īgrīzt Vītejuo kūplītuotuoju mekliešonu, lai atrastu vēļ vaira kūplītuotuoju - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Īgrīzt anonimū režimu - + Maximum active downloads: Kūpegais aktivuo atsasyuteišonu skaits: - + Maximum active uploads: Kūpegais aktivuo nūsasyuteišonu skaits: - + Maximum active torrents: Kūpegais aktivuo torrentu skaits: - + Do not count slow torrents in these limits Najimt vārā lānuos torrentus - + Upload rate threshold: - + Download rate threshold: - - - + + + + sec seconds sek - + Torrent inactivity timer: Torrenta stibniešonys skaiteklis: - + then tod - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: Sertifikats: - + Key: Atslāgs: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Inpormaceja par sertifikatim</a> - + Change current password Puormeit niulejuo paroli - - Use alternative Web UI - Lītuot cytu tuolvaļdis paneļa saduri - - - + Files location: Failu vīta: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Drūsums - + Enable clickjacking protection Īgrīzt apsardzeibu pret clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Īgrīzt apsardzeibu pret Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Serviss: - + Register Registrētīs - + Domain name: Domena pasauka: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file Izlaseit qBittorrent sadurs failu - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - - Torrents that have metadata initially aren't affected. - - - - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Torrenta pasauka - + %L: Category %L: Kategoreja - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Izglobuošonas vīta - + %C: Number of files %C: Failu skaits - + %Z: Torrent size (bytes) %Z: Torrenta lelums (baitos) - + %T: Current tracker %T: Niulejais trakeris - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Nivīnu) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate Sertifikats - + Select certificate Izlaseit sertifikatu - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Atsarasšonys vītys kleida - - + + Choose export directory Izalaseit izglobuošonas vītu - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Byrkas (atdaleitas ar komatu) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Izalaseit izglobuošonas vītu - + + Torrents that have metadata initially will be added as stopped. + + + + Choose an IP filter file Izalaseit IP fiļtra failu - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences Īstatejumi - + Time Error Laika klaida - + The start time and the end time can't be the same. Suokšonas un beigšonas laiki navar byut vīnaiži. - - + + Length Error Garuma kleida @@ -7261,241 +7738,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Nazynoms - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection atīmūš salaidums - + Peer from DHT kūplītuotuojs nu DHT - + Peer from PEX kūplītuotuojs nu PEX - + Peer from LSD kūplītuotuojs nu LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Vaļsteiba/Apgabaļs - + IP/Address - + Port Ports - + Flags Karūgi - + Connection Salaidums: - + Client i.e.: Client application Aplikaceja - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Progress - + Down Speed i.e: Download speed Atsasyuteišonas dreizums - + Up Speed i.e: Upload speed Nūsasyuteišonas dreizums - + Downloaded i.e: total data downloaded Atsasyuteiti - + Uploaded i.e: total data uploaded Nūsasyuteiti - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Kūplītuotuoja progress - + Files i.e. files that are being downloaded right now Faili - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers Dalikt kūplītuotuojus - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently Nūblokēt kūplītuotuoju - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A Navā atrasta - + Copy IP:port Puorspīst IP i portu @@ -7513,7 +7995,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Saroksts ar kūplītuotuojīm kurus dalikt (pa vīnam katrā aiļā): - + Format: IPv4:port / [IPv6]:port Formats: IPv4:ports / [IPv6]:ports @@ -7554,27 +8036,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7587,58 +8069,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Maklātivu dapyldi - + Installed search plugins: Iņstalēti dapyldi: - + Name Pasauka - + Version Verseja - + Url Adress - - + + Enabled Īgrīzts - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Iņstalēt jaunu dapyldu - + Check for updates Meklēt atjaunynuojumus - + Close Aiztaiseit - + Uninstall Atiņstalēt @@ -7757,98 +8239,65 @@ Those plugins were disabled. - + Search plugin source: - + Local file - + Web link - - PowerManagement - - - qBittorrent is active - qBittorrent ir aktīvs - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Apsvavērt - + Name Pasauka - + Size Lelums - + Progress Progress - + Preview impossible - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7861,27 +8310,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7922,12 +8371,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Atsasyuteiti: - + Availability: Daīmamums @@ -7942,53 +8391,53 @@ Those plugins were disabled. Kūplītuošanas dati - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivs jau: - + ETA: Palykušais syuteišonys laiks: - + Uploaded: Nūsasyuteiti: - + Seeds: Devieji: - + Download Speed: Atsasyuteišonas dreizums: - + Upload Speed: Nūsasyuteišonas dreizums: - + Peers: Jāmuoji: - + Download Limit: Atsasyuteišonas limits: - + Upload Limit: Nūsasyuteišonas limits: - + Wasted: Izsvīsti: @@ -7998,193 +8447,220 @@ Those plugins were disabled. Salaidumi: - + Information Inpormaceja - + Info Hash v1: Maiseituojkods v1: - + Info Hash v2: Maiseituojkods v2: - + Comment: Komentars - + Select All Izlaseit vysys - + Select None Izlaseit nivīnu - + Share Ratio: Kūplītuošonas reitings: - + Reannounce In: Kontakts ar trakeri piec: - + Last Seen Complete: Pādejū reizi kūplītuots: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Kūpeigais lelums: - + Pieces: Dalenis: - + Created By: Darynuots ar: - + Added On: Dalaists: - + Completed On: Dabeidza: - + Created On: Darynuots: - + + Private: + + + + Save Path: Izglobuošonas vīta: - + Never Nikod - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (atsasyuteiti %3) - - + + %1 (%2 this session) %1 (%2 itymā sesejā) - - + + + N/A Navā zynoms - + + Yes + Nui + + + + No + + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (daleits %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 kūpā) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 videjais) - - New Web seed - Dalikt puorstaipteikla devieju + + Add web seed + Add HTTP source + - - Remove Web seed - Nūjimt puorstaipteikla devieju + + Add web seed: + - - Copy Web seed URL - Puorspīst puorstaipteikla devieju + + + This web seed is already in the list. + - - Edit Web seed URL - Lobuot puorstaipteikla devieju - - - + Filter files... Meklēt failuos... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Dalikt puorstaipteikla devieju - - - - New URL seed: - Dalikt puorstaipteikla devieju: - - - - - This URL seed is already in the list. - Itys puorstaipteikla deviejs jau ir sarokstā. - - - + Web seed editing Lobuot puorstaipteikla devieju - + Web seed URL: Puorstaipteikla devieju adress: @@ -8192,33 +8668,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8226,22 +8702,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8277,12 +8753,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Nadereigs RSS kanals - + %1 (line: %2, column: %3, offset: %4). @@ -8290,103 +8766,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. RSS kanals ar itaidu adresi jau ir: %1 - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. RSS kanals ar itaidu adresi jau ir: %1 - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Adress: + + + + Refresh interval: + + + + + sec + sek + + + + Default + + + RSSWidget @@ -8406,8 +8923,8 @@ Those plugins were disabled. - - + + Mark items read @@ -8432,132 +8949,115 @@ Those plugins were disabled. - - + + Delete Iztreit - + Rename... Puorsaukt... - + Rename Puorsaukt - - + + Update - + New subscription... Dalikt kanalu... - - + + Update all feeds - + Download torrent Atsasyuteit torrentu - + Open news URL Atkluot teiklavītu - + Copy feed URL Puorspīst kanāla adresi - + New folder... Jauns apvuocis... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Lyudzu izalaseit apvuoča pasauku - + Folder name: Apvuoča pasauka: - + New folder Jauns apvuocis - - - Please type a RSS feed URL - Lyudzu īvoduot RSS kanala adresi - - - - - Feed URL: - Kanala adress - - - + Deletion confirmation Apstyprynuot iztreišonu - + Are you sure you want to delete the selected RSS feeds? Voi drūši zini, ka gribi nūteireit izalaseituos RSS kanalus? - + Please choose a new name for this RSS feed - + New feed name: Jauna kanala pasauke: - + Rename failed Puorsaukšona nāisadevās - + Date: Data: - + Feed: - + Author: Autors: @@ -8565,38 +9065,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8671,132 +9171,142 @@ Those plugins were disabled. Lelums: - + Name i.e: file name Pasauka - + Size i.e: file size Lelums - + Seeders i.e: Number of full sources Devieji - + Leechers i.e: Number of partial sources Jāmuoji - - Search engine - Maklātivs - - - + Filter search results... Meklēt rezultatuos... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultati (ruoda <i>%1</i> nu <i>%2</i>): - + Torrent names only Tik torrentu pasaukuos - + Everywhere Vysur - + Use regular expressions Lītuot Reguļaras izsaceibas - + Open download window - + Download Atsasyuteit - + Open description page Atdareit aprakstejuma teiklavītu - + Copy Puorspīst - + Name Pasauka - + Download link Atsasyuteišonys saita - + Description page URL Aprakstejuma teiklavīta - + Searching... Meklē... - + Search has finished Mekliešona dabeigta - + Search aborted Mekliešona puortraukta - + An error occurred during search... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8804,104 +9314,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories Vysys kategorejas - + Movies Filmys - + TV shows Televizejis laidīņi - + Music Muzyka - + Games Datorspieles - + Anime Multiplikaceja - + Software Programatura - + Pictures Atvaigi - + Books Gruomotas - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8911,113 +9421,144 @@ Those plugins were disabled. - - - - Search Meklēt - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... Maklātivu dapyldi... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example Pīvadums: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins Vysi dapyldi - + Only enabled Īgrīztī dapyldi - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... Izlaseit... - - - + + Search Engine Maklātivs - + + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - + + Stop Puortraukt + + + SearchWidget::DataStorage - - Search has finished - Mekliešona dabeigta + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Mekliešona naīsadevās + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9130,34 +9671,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Nūsasyuteišona: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Atsasyuteišona: - + Alternative speed limits Aļternativie dreizumi @@ -9349,32 +9890,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: Daliktie kūplītuotuoji: - + All-time share ratio: Kūpeigais kūplītuošonas reitings: - + All-time download: Kūpeigais atsasyuteišonas daudzums: - + Session waste: Izsvīsts itymā sesejā: - + All-time upload: Kūpeigais nūsasyuteišonas daudzums: - + Total buffer size: Kūpeigais bufera lelums: @@ -9389,12 +9930,12 @@ Click the "Search plugins..." button at the bottom right of the window I/O darbeibys rindā: - + Write cache overload: - + Read cache overload: @@ -9413,51 +9954,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Škārsteikla salaiduma statuss: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 serveri - + qBittorrent needs to be restarted! - - - + + + Connection Status: Škārsteikla salaiduma statuss: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9487,13 +10054,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Aizsuoktie (0) + Running (0) + - Paused (0) - Nūstuodeiti (0) + Stopped (0) + @@ -9555,36 +10122,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Dabeigti (%1) + + + Running (%1) + + - Paused (%1) - Nūstuodeiti (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - Aizsuokt torrentus - - - - Pause torrents - Nūstuodeit torrentus - Remove torrents - - - Resumed (%1) - Aizsuoktie (%1) - Active (%1) @@ -9656,31 +10223,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Nūjimt nalītuotas byrkas - - - Resume torrents - Aizsuokt torrentus - - - - Pause torrents - Nūstuodeit torrentus - Remove torrents - - New Tag - Jauna byrka + + Start torrents + + + + + Stop torrents + Tag: Byrka: + + + Add tag + + Invalid tag name @@ -9825,32 +10392,32 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TorrentContentModel - + Name Pasauka - + Progress Progress - + Download Priority Atsasyuteišonas prioritets - + Remaining Palics - + Availability Daīmamums - + Total Size Kūpeigais lelums @@ -9895,102 +10462,120 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TorrentContentWidget - + Rename error Klaida puorsaukšonā - + Renaming Puorsaukšona - + New name: Jauna pasauka: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Atkluot - + Open containing folder - + Rename... Puorsaukt... - + Priority Prioritets - - + + Do not download Naatsasyuteit - + Normal Norma - + High Augsta - + Maximum Pošaugstā - + By shown file order - + Normal priority Norma prioriteta - + High priority Augsta prioriteta - + Maximum priority Pošaugstā prioriteta - + Priority by shown file order + + TorrentCreatorController + + + Too many active tasks + + + + + Torrent creation is still unfinished. + + + + + Torrent creation failed. + + + TorrentCreatorDialog @@ -10015,13 +10600,13 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. - + Select file Izlaseit failu - + Select folder Izlaseit apvuoci @@ -10046,7 +10631,7 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Dalenu lelums: - + Auto Automatiski @@ -10096,88 +10681,83 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Laukumi - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: Puorstaipteikla devieju adresas: - + Tracker URLs: Trakeru adresas: - + Comments: Komentars: - + Source: Olūts: - + Progress: Progress - + Create Torrent Radeit torrentu - - + + Torrent creation failed Torrenta radeišona naīsadevās - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent Izlaseit, kur izglobuot jaunū torrentu - + Torrent Files (*.torrent) Torrentu faili (*.torrent) - - Reason: %1 - Īmesls: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Torrentu darynuoja - + Torrent created: Torrents darynuots: @@ -10185,32 +10765,32 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10218,44 +10798,31 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 Naīsadevās atdareit magnetsaiti. Īmesls: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Nadereigi metadati - - TorrentOptionsDialog @@ -10284,126 +10851,162 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. - + Category: Kategoreja: - - Torrent speed limits + + Torrent Share Limits - + Download: Atsasyuteišona: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Nūsasyuteišona: - - Torrent share limits - Torrenta kūplītuošonas reitinga rūbežs - - - - Use global share limit - Lītuot globaluos īstatejumus - - - - Set no share limit - Nav rūbežs - - - - Set share limit to - Reitinga rūbežs - - - - ratio - reitings - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Atsasyuteit saksteiguo parādā - + Disable PeX for this torrent - + Download first and last pieces first Paprīšķu atsasyuteit pyrmuos i pādejuos dalenis - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Izalaseit izglobuošonas vītu - + Not applicable to private torrents + + + TorrentShareLimitsWidget - - No share limit method selected + + + + + Default - - Please select a limit method first + + + + Unlimited + + + + + + + Set to + + + + + Seeding time: + + + + + + + + + + min + minutes + myn + + + + Inactive seeding time: + + + + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Nūjimt torrentu + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Īgrīzt super-nūsasyuteišonu + + + + Ratio: @@ -10415,32 +11018,32 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. - - New Tag - Jauna byrka + + Add tag + - + Tag: Byrka: - + Invalid tag name Nadereiga byrkas pasauka - + Tag name '%1' is invalid. - + Tag exists Kleida pasaukā - + Tag name already exists. Byrka ar itaidu pasauku jau ir. @@ -10448,115 +11051,130 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TorrentsController - + Error: '%1' is not a valid torrent file. Kleida: '%1' navā dareigs torrenta fails. - + Priority must be an integer - + Priority is not valid Prioritets nav dereigs - + Torrent's metadata has not yet downloaded Torrenta metadati vēļ navā atsasyuteiti - + File IDs must be integers - + File ID is not valid Faile ID nav dereigs - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty Izglobuošonas vītu navar pamest tukšu - - + + Cannot create target directory - - + + Category cannot be empty Katagoreju navar pamest tukšu - + Unable to create category Nāisadevās radeit kategoreju - + Unable to edit category Naīsadevās lobuot kategoreju - + Unable to export torrent file. Error: %1 - + Cannot make save path Navar īstateit izglobuošonas vītu - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Itymā apvuocī navar izglobuot - + WebUI Set location: moving "%1", from "%2" to "%3" Puorceļšona: Puorceļ "%1", nū "%2" iz "%3" - + Incorrect torrent name Nadereiga torrenta pasauka - - + + Incorrect category name Nadereiga kategorejas pasauka @@ -10582,196 +11200,191 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TrackerListModel - + Working Lobs - + Disabled Atslēgts - + Disabled for this torrent - + This torrent is private Privats torrents - + N/A Navā atrasta - + Updating... Atjaunynuojas... - + Not working Nalobs - + Tracker error - + Unreachable - + Not contacted yet Vēļ navā salaists - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Grupa - - - - Protocol + URL/Announce Endpoint - Status - Statuss - - - - Peers - Jāmuoji - - - - Seeds - Devieji - - - - Leeches - Jāmuoji - - - - Times Downloaded - - - - - Message - Viestejums - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Grupa + + + + Status + Statuss + + + + Peers + Jāmuoji + + + + Seeds + Devieji + + + + Leeches + Jāmuoji + + + + Times Downloaded + + + + + Message + Viestejums + TrackerListWidget - + This torrent is private Privats torrents - + Tracker editing Trakeru lobuošona - + Tracker URL: Trakera adress: - - + + Tracker editing failed Trakeru lobuošona naīsadevās - + The tracker URL entered is invalid. Īvoduotā trakera adress navā dareiga. - + The tracker URL already exists. Trakers ar itaidu adresi jau ir. - + Edit tracker URL... Lobuot trakera adresi... - + Remove tracker Nūjimt trakeri - + Copy tracker URL Puorspīst trakera adresi - + Force reannounce to selected trackers Dastateigs kontakts ar izalaseitajim trakeriem - + Force reannounce to all trackers Dastateigs kontakts ar vysim trakeriem - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility @@ -10789,37 +11402,37 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Saroksts ar trakeriem kurus dalikt (pa vīnam katrā aiļā): - + µTorrent compatible list URL: Ar µTorrent kūpeiga saroksta adress: - + Download trackers list - + Add Pīlikt - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10827,62 +11440,62 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TrackersFilterWidget - + Warning (%1) Viereibu (%1) - + Trackerless (%1) Bez trakera (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Nūjimt trakeri - - Resume torrents - Aizsuokt torrentus + + Start torrents + - - Pause torrents - Nūstuodeit torrentus + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Vysi (%1) @@ -10891,7 +11504,7 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TransferController - + 'mode': invalid argument @@ -10983,11 +11596,6 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. 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. Puorbaud progresa datus - - - Paused - Nūstuodeits - Completed @@ -11011,220 +11619,252 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Klaideigai - + Name i.e: torrent name Pasauka - + Size i.e: torrent size Lelums - + Progress % Done Progress - + + Stopped + + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Statuss - + Seeds i.e. full sources (often untranslated) Devieji - + Peers i.e. partial sources (often untranslated) Jāmuoji - + Down Speed i.e: Download speed Atsasyuteišonas dreizums - + Up Speed i.e: Upload speed Nūsasyuteišonas dreizums - + Ratio Share ratio Reitings - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Palyk. syuteišonys laiks - + Category Kategoreja - + Tags Byrkas - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Dalaists - + Completed On Torrent was completed on 01/01/2010 08:00 Dabeidza - + Tracker Trakers - + Down Limit i.e: Download limit Atsasyuteišonas limits - + Up Limit i.e: Upload limit Nūsasyuteišonas limits - + Downloaded Amount of data downloaded (e.g. in MB) Atsasyuteiti - + Uploaded Amount of data uploaded (e.g. in MB) Nūsasyuteiti - + Session Download Amount of data downloaded since program open (e.g. in MB) Atsasyuteiti itymā sesejā - + Session Upload Amount of data uploaded since program open (e.g. in MB) Nūsasyuteiti itymā sesejā - + Remaining Amount of data left to download (e.g. in MB) Palics - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivs jau - + + Yes + Nui + + + + No + + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Dabeigti - + Ratio Limit Upload share ratio limit Reitinga limits - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Pādejū reizi dabeigts - + Last Activity Time passed since a chunk was downloaded/uploaded Pādejū reizi kūplītuots - + Total Size i.e. Size including unwanted data Kūpeigais lelums - + Availability The number of distributed copies of the torrent Daīmamums - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Navā zynoms - + %1 ago e.g.: 1h 20m ago pyrma %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (daleits %2) @@ -11233,339 +11873,319 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. TransferListWidget - + Column visibility - + Recheck confirmation Apstyprynuot puorvēri - + Are you sure you want to recheck the selected torrent(s)? - + Rename Puorsaukt - + New name: Jauna pasauka: - + Choose save path Izalaseit izglobuošonas vītu - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview Navar apsvavērt - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Pīlikt byrkas - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags Nūjimt vysys byrkas - + Remove all tags from selected torrents? Nūjimt vysys byrkas izalaseitajim torrentim? - + Comma-separated tags: Atdaleit byrkas ar komatu: - + Invalid tag Nadereiga byrka - + Tag name: '%1' is invalid Byrkas pasauka: '%1' navā dereiga - - &Resume - Resume/start the torrent - Aizsuokt - - - - &Pause - Pause the torrent - Nūstateit - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Atsasyuteit saksteiguo parādā - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Paprīšķu atsasyuteit pyrmuos i pādejuos dalenis - + Automatic Torrent Management Automatisks torrentu puorvaļds - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Super nūsasyuteišonas režims @@ -11610,28 +12230,28 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11639,7 +12259,12 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Naīsadevās īviļķt sadury nu faila: "%1" @@ -11670,20 +12295,21 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11691,32 +12317,32 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11724,27 +12350,27 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. Utils::IO - + File open error. File: "%1". Error: "%2" - + File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - + File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + File read error. File: "%1". Error: "%2" - + Read size mismatch. File: "%1". Expected: %2. Actual: %3 @@ -11813,67 +12439,67 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11881,125 +12507,133 @@ Lyudzu izalaseit cytu pasauku i raudzeit vēļreiz. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Nazynoma kleida + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1st %2m - + %1d %2h e.g: 2 days 10 hours %1d %2st - + %1y %2d e.g: 2 years 10 days %1g %2d - - + + Unknown Unknown (size) Nazynoms - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent tiuleņ izslēgs datori aiztuo ka visas atsasyuteišonas ir dabeigtas. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_lv_LV.ts b/src/lang/qbittorrent_lv_LV.ts index 78cb724d9..bc8dcaf57 100644 --- a/src/lang/qbittorrent_lv_LV.ts +++ b/src/lang/qbittorrent_lv_LV.ts @@ -14,77 +14,77 @@ Par - + Authors Autori - + Current maintainer Pašreizējais uzturētājs - + Greece Grieķija - - + + Nationality: Valsts: - - + + E-mail: E-pasts: - - + + Name: Vārds: - + Original author Programmas radītājs - + France Francija - + Special Thanks Īpašs paldies - + Translators Tulkotāji - + License Licence - + Software Used Programmatūra - + qBittorrent was built with the following libraries: Šī qBittorrent versija tika uzbūvēta, izmantojot šīs bibliotēkas: - + Copy to clipboard - + Kopēt uz starpliktuvi @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Autortiesības %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Autortiesības %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Saglabāt šeit - + Never show again Vairs nerādīt - - - Torrent settings - Torrenta iestatījumi - Set as default category @@ -191,12 +186,12 @@ Sākt lejupielādi - + Torrent information Torrenta informācija - + Skip hash check Izlaist jaucējkoda pārbaudi @@ -205,6 +200,11 @@ Use another path for incomplete torrent Izmantot citu vietu nepabeigtiem torrentiem + + + Torrent options + Torrenta iestatījumi + Tags: @@ -231,75 +231,75 @@ Aptstādināšanas nosacījumi: - - + + None Nevienu - - + + Metadata received Metadati ielādēti - + Torrents that have metadata initially will be added as stopped. - + Torrenti, kuriem ir metadati tiks pievienoti apstādināti. - - + + Files checked Faili pārbaudīti - + Add to top of queue Novietot saraksta augšā - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Ja atzīmēts, .torrent fails netiks dzēsts, neņemot vērā "Lejupielādes" lappuses iestatījumus - + Content layout: Satura izkārtojums: - + Original Oriģinālais - + Create subfolder Izveidot apakšmapi - + Don't create subfolder Neizveidot apakšmapi - + Info hash v1: Jaucējkods v1: - + Size: Izmērs: - + Comment: Komentārs: - + Date: Datums: @@ -329,151 +329,147 @@ Atcerēties pēdējo norādīto saglabāšanas vietu - + Do not delete .torrent file Neizdzēst .torrent failu - + Download in sequential order Lejupielādēt secīgā kārtībā - + Download first and last pieces first Vispirms ielādēt pirmās un pēdējās daļiņas - + Info hash v2: Jaucējkods v2: - + Select All Izvēlēties visus - + Select None Neizvēlēties nevienu - + Save as .torrent file... Saglabāt kā .torrent failu... - + I/O Error Ievades/izvades kļūda - + Not Available This comment is unavailable Nav pieejams - + Not Available This date is unavailable Nav pieejams - + Not available Nav pieejams - + Magnet link Magnētsaite - + Retrieving metadata... Tiek izgūti metadati... - - + + Choose save path Izvēlieties vietu, kur saglabāt - + No stop condition is set. Aptstādināšanas nosacījumi nav izvēlēti - + Torrent will stop after metadata is received. Torrents tiks apstādināts pēc metadatu ielādes. - Torrents that have metadata initially aren't affected. - Neattiecas uz torrentiem, kuriem jau sākotnēji ir metadati. - - - + Torrent will stop after files are initially checked. Torrents tiks apstādināts pēc sākotnējo failu pārbaudes. - + This will also download metadata if it wasn't there initially. Tas ielādēs arī metadatus, ja to nebija jau sākotnēji. - - + + N/A Nav zināms - + %1 (Free space on disk: %2) %1 (Brīvās vietas diskā: %2) - + Not available This size is unavailable. Nav pieejams - + Torrent file (*%1) Torrenta fails (*%1) - + Save as torrent file Saglabāt kā torrenta failu - + Couldn't export torrent metadata file '%1'. Reason: %2. Neizdevās saglabāt torrenta metadatu failu '%1'. Iemesls: %2 - + Cannot create v2 torrent until its data is fully downloaded. Nevar izveidot v2 torrentu kamēr tā datu pilna lejupielāde nav pabeigta. - + Filter files... Meklēt failos... - + Parsing metadata... Tiek parsēti metadati... - + Metadata retrieval complete Metadatu ielāde pabeigta @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Lejupielāde torrentu.... Avots: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Neizdevās ielādēt torrentu. Avots: "%1". Iemesls: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trakeru apvienošanas iespēja ir atslēgta - + Trackers cannot be merged because it is a private torrent - + Trakerus nevar apvienot, jo torrents ir privāts. - + Trackers are merged from new source + Pievienots trakeris no jaunā avota + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -536,7 +532,7 @@ Note: the current defaults are displayed for reference. - + Piezīme: pašreizējie noklusējuma iestatījumi tiek parādīti atsaucei. @@ -596,7 +592,7 @@ Torrent share limits - Torrenta dalīšanas ierobežojumi + Torrenta dalīšanas ierobežojumi @@ -672,865 +668,975 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Atkārtoti pārbaudīt torrentus pēc ielādes pabeigšanas - - + + ms milliseconds ms - + Setting Iespējas - + Value Value set for this setting Vērtība - + (disabled) (Atslēgts) - + (auto) (automātiski) - + + min minutes min - + All addresses Visas adreses - + qBittorrent Section qBittorrent sadaļa - - + + Open documentation Atvērt dokumentāciju - + All IPv4 addresses Visas IPv4 adreses - + All IPv6 addresses Visas IPv6 adreses - + libtorrent Section libtorrent sadaļa - + Fastresume files Ātri-atsākt failus - + SQLite database (experimental) SQLite datubāze (eksperimentāla) - + Resume data storage type (requires restart) Atsākšanas datu krātuves veids (nepieciešams restarts) - + Normal Normāls - + Below normal Zem normāla - + Medium Vidējs - + Low Zems - + Very low Ļoti zems - + Physical memory (RAM) usage limit Operētājatmiņas (RAM) patēriņa robeža - + Asynchronous I/O threads Asinhronās I/O plūsmas - + Hashing threads Plūsmu jaukšana - + File pool size Failu kopas lielums - + Outstanding memory when checking torrents Atmiņa straumju pārbaudēm - + Disk cache Diska kešatmiņa - - - - + + + + + s seconds s - + Disk cache expiry interval Diska kešatmiņas derīguma intervāls - + Disk queue size Diska rindas izmērs - - + + Enable OS cache Izmantot OS kešatmiņu - + Coalesce reads & writes Apvienot lasīšanas un rakstīšanas darbības - + Use piece extent affinity Izmantot līdzīgu daļiņu grupēšanu - + Send upload piece suggestions Nosūtīt ieteikumus augšupielādes daļiņām - - - - + + + + + 0 (disabled) 0 (atslēgts) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Atsākšanas datu saglabāšanas intervāls [0: atslēgts) - + Outgoing ports (Min) [0: disabled] Izejošie porti (Min) [0: atslēgts) - + Outgoing ports (Max) [0: disabled] Izejošie port (Max) [0: atslēgts] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] UPnP nomas ilgums [0: neierobežots] - + Stop tracker timeout [0: disabled] Atcelt trakeru noildzi [0: atslēgta] - + Notification timeout [0: infinite, -1: system default] Paziņojumu noildze [0: bezgalīga, -1 sistēmas noklusētā] - + Maximum outstanding requests to a single peer Atļautais neapstrādāto pieprasījumu skaits vienam koplietotājam - - - - - + + + + + KiB KiB - + (infinite) - + (bezgalīgs) - + (system default) (datorsistēmas noklusētais) - + + Delete files permanently + Neatgriezeniski dzēst failus + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux Šī iespēja īsti labi nestrādā uz Linux sistēmas - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Noklusētais - + Memory mapped files Atmiņas kartētie faili - + POSIX-compliant POSIX-saderīgs - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Diska Ievades/Izvades tips (nepieciešama pārstartēšana) - - + + Disable OS cache Atslēgt OS kešatmiņu - + Disk IO read mode Diska Ievades/Izvades lasīšana - + Write-through Pārrakstīšana - + Disk IO write mode Diska Ievades/Izvades rakstīšana - + Send buffer watermark Nosūtīt bufera slieksni - + Send buffer low watermark Zems bufera slieksnis - + Send buffer watermark factor Bufera sliekšņa koeficents - + Outgoing connections per second Izejošo savienojumu skaits sekundē - - + + 0 (system default) 0 (datorsistēmas noklusētais) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Soketa rindas izmērs - - .torrent file size limit - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Statistika saglabāšanas intervāls [0: atslēgts] - + + .torrent file size limit + .torrent faila atļautais izmērs + + + Type of service (ToS) for connections to peers Pakalpojumu veids (ToS) savienojumiem ar koplietotājiem - + Prefer TCP Priekšroku TCP - + Peer proportional (throttles TCP) Vienmērīgi koplietotājiem (regulē TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Atbalsts starptautisko domēnu vārdiem (IDN) - + Allow multiple connections from the same IP address Atļaut vairākus savienojumus no vienas IP adreses - + Validate HTTPS tracker certificates Apstiprināt HTTPS trakeru sertifikātus - + Server-side request forgery (SSRF) mitigation Servera puses pieprasījumu viltošanas (SSRF) aizsardzība - + Disallow connection to peers on privileged ports Neatļaut savienojumu, ja koplietotājs izmanto priviliģētus portus - + It appends the text to the window title to help distinguish qBittorent instances - + Tas pievieno vārdu loga nosaukumam, lai palīdzētu atšķirt vienlaicīgas qBitorrent instances. - + Customize application instance name - + Izvēlies programmas instances nosaukumu - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval Atsvaidzināšanas intervāls - + Resolve peer host names Rādīt koplietotāju Datoru nosaukumus - + IP address reported to trackers (requires restart) IP adrese, kuru paziņot trakeriem (nepieciešams restarts) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Atjaunināt datus ar trakeriem, ja tiek mainīti IP vai porti - + Enable icons in menus Rādīt ikonas izvēlnē - + + Attach "Add new torrent" dialog to main window + Pievienot "Pievienot jaunu torrentu" logu galvenajā logā + + + Enable port forwarding for embedded tracker Ieslēgt porta pāradresāciju iebūvētajam trakerim - + Enable quarantine for downloaded files - + Iespējot karantīnu lejupielādētajiem failiem - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + Neņemt vērā SSL kļūdas + + + (Auto detect if empty) - + (Automātiski, ja tukšs) - + Python executable path (may require restart) - + Python izpildāmās programma (var būt nepieciešama pārstartēšana) - + + Start BitTorrent session in paused state + Palaist BitTorrent sesiju apturētā stāvoklī + + + + sec + seconds + sek + + + + -1 (unlimited) + -1 (neierobežots) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent sesijas izslēgšanas noildze [-1: neierobežots] + + + Confirm removal of tracker from all torrents - + Apstiprināt trakeru dzēšanu no visiem torrentiem - + Peer turnover disconnect percentage Koplietotāju atvienošanas procents - + Peer turnover threshold percentage Koplietotāju atvienošanas slieksņa procents - + Peer turnover disconnect interval Koplietotaju atvienošanas intervāls - + Resets to default if empty - + Atiestata uz noklusēto, ja atstāts tukšs - + DHT bootstrap nodes - + I2P inbound quantity - + I2P ienākošais daudzums - + I2P outbound quantity - + I2P izejošais daudzums - + I2P inbound length - + I2P ienākošais garums - + I2P outbound length - + I2P izejošais garums - + Display notifications Rādīt paziņojumus - + Display notifications for added torrents Rādīt paziņojumus par pievienotajiem torrentiem - + Download tracker's favicon Ielādēt trakera adreses ikonu - + Save path history length Saglabāšanas vietu vēstures garums - + Enable speed graphs Ieslēgt ātrumu diagrammas - + Fixed slots Fiksētas laika nišas - + Upload rate based Pamatojoties uz Augšupielādes ātrumu - + Upload slots behavior Augšupielādes nišu darbība: - + Round-robin Vienmērīgi sadalīt - + Fastest upload Ātrākā augšupielāde - + Anti-leech Prioritāte tiko sākušajiem un tuvu beigām esošajiem - + Upload choking algorithm Augšupielādes regulēšanas algoritms - + Confirm torrent recheck Apstiprināt torrentu atkārtotu pārbaudi - + Confirm removal of all tags Apstiprināt visu atzīmju noņemšanu - + Always announce to all trackers in a tier Vienmēr atjaunināt datus ar visiem trakeriem grupā - + Always announce to all tiers Vienmēr atjaunināt datus ar visiem trakeriem visās grupās - + Any interface i.e. Any network interface Automātiski - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP jaukta režīma algoritms - + Resolve peer countries Rādīt koplietotāju valstis - + Network interface Interneta savienojums - + Optional IP address to bind to Piesaistīt papildu IP adresi - + Max concurrent HTTP announces Atļautais kopējais HTTP trakeru skaits - + Enable embedded tracker Ieslēgt iebūvēto trakeri - + Embedded tracker port Iebūvētā trakera ports + + AppController + + + + Invalid directory path + + + + + Directory does not exist + Mape nepastāv + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Darbojas pārnēsāmajā režīmā. Automātiski atrastā profila mape: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Konstatēts lieks komandrindas karodziņš: "%1". Pārnēsāmais režīms piedāvā salīdzinoši ātru atsākšanu. - + Using config directory: %1 Esošās konfigurācijas mape: %1 - + Torrent name: %1 Torenta nosaukums: %1 - + Torrent size: %1 Torenta izmērs: %1 - + Save path: %1 Saglabāšanas vieta: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrents tika lejupielādēts %1. - + + Thank you for using qBittorrent. Paldies, ka izmantojāt qBittorrent. - + Torrent: %1, sending mail notification Torrents: %1, sūta e-pasta paziņojumu - + Add torrent failed - + Torrenta pievienošana neizdevās - + Couldn't add torrent '%1', reason: %2. - + Neizdevās pievienot torrentu '%1', iemesls: %2. - + The WebUI administrator username is: %1 - + Tālvadības paneļa (WebUI) administratora lietotājvārds ir: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + Tālvadības paneļa (WebUI) administratoram nav uzstādīta parole. Tiek izveidota īslaicīga parole esošajai sesijai %1 - + You should set your own password in program preferences. - + Jums vajadzētu uzstādīt savu paroli programmas iestatījumos. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Tālvadības panelis (WebUI) ir atslēgts. Lai ieslēgtu WebUI, veiciet izmaiņas konfigurācijas failā. - + Running external program. Torrent: "%1". Command: `%2` Palaiž ārēju programmu. Torrents: "%1". Komanda: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Neizdevās palaist ārējo programmu. Torrents: "%1". Komanda: `%2` - + Torrent "%1" has finished downloading Torrenta "%1" lejupielāde pabeigta - + WebUI will be started shortly after internal preparations. Please wait... - + Tālvadības panelis (WebUI) tiks palaists īsi pēc sagatavošanas. Lūdzu uzgaidiet... - - + + Loading torrents... Ielādē torrentus... - + E&xit Izslēgt qBittorrent - + I/O Error i.e: Input/Output Error Ievades/izvades kļūda - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - Ievades/Izvades kļūda torrentam '%1'. + Ievades/Izvades kļūda torrentam '%1'. Iemesls: %2 - + Torrent added Torrents pievienots - + '%1' was added. e.g: xxx.avi was added. '%1' tika pievienots. - + Download completed Lejupielāde pabeigta - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1 palaists. Darbības ID: %2 - + + This is a test email. + Šis ir testa e-pasts. + + + + Test email + Testa e-pasts + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' lejupielāde ir pabeigta. - + Information Informācija - + To fix the error, you may need to edit the config file manually. - + Lai izlabotu kļūdu, jums jāveic izmaiņas konfigurācijas failā. - + To control qBittorrent, access the WebUI at: %1 Lai piekļūtu qBittorrent tālvadības panelim, atveriet: %1 - + Exit Iziet - + Recursive download confirmation Rekursīvās lejupielādes apstiprināšana - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrenta fails '%1' satur citus .torrent failus, vai vēlaties veikt to lejupielādi? - + Never Nekad - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekursīva lejupielāde - torrenta fails iekš cita torrenta. Avots: "%1". Fails: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Neizdevās iestatīt Operētājatmiņas (RAM) patēriņa robežu. Kļūdas kods: %1. Kļūdas ziņojums: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Neizdevās iestatīt Operētājatmiņas (RAM) patēriņa robežu. Noteiktais izmērs: %1. Sistēmas robeža: %2. Kļūdas kods: %3. Kļūdas ziņojums: "%4" - + qBittorrent termination initiated qBittorrent izslēgšana aizsākta - + qBittorrent is shutting down... qBittorrent tiek izslēgts... - + Saving torrent progress... Saglabā torrenta progresu... - + qBittorrent is now ready to exit qBittorrent ir gatavs izslēgšanai @@ -1609,12 +1715,12 @@ Iemesls: %2 Prioritāte: - + Must Not Contain: Neiekļaut: - + Episode Filter: Epizožu filtrs: @@ -1667,263 +1773,263 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Saglabāt filtru... - + Matches articles based on episode filter. Meklē rezultātus pēc epizožu filtra. - + Example: Piemērs: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match filtrs atlasīs 2., 5., 8. - 15., 30. un turpmākās pirmās sezonas epizodes - + Episode filter rules: Epizožu filtrs: - + Season number is a mandatory non-zero value Sezonas numurs nedrīkst būt 0 - + Filter must end with semicolon Filtram jābeidzas ar semikolu - + Three range types for episodes are supported: Filtram ir atļauti 3 parametru veidi: - + Single number: <b>1x25;</b> matches episode 25 of season one Parametrs <b>1x25;</b> atlasīs tikai 1. sezonas 25. epizodi - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Parametrs <b>1x25-40;</b> atlasīs tikai 1. sezonas epizodes, sākot no 25. līdz 40. - + Episode number is a mandatory positive value Epizodes numurs nedrīkst būt 0 - + Rules Filtrs - + Rules (legacy) Filtrs (vecmodīgais) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Parametrs <b>1x25-;</b> atlasīs visas turpmākās epizodes un sezonas, sākot ar 1. sezonas 25. epizodi - + Last Match: %1 days ago Pēdējie rezultāti: pirms %1 dienām - + Last Match: Unknown Pēdējie rezultāti: nav atrasti - + New rule name Jaunā filtra nosaukums - + Please type the name of the new download rule. Lūdzu ievadiet jaunā filtra nosaukumu. - - + + Rule name conflict Neatļauts nosaukums - - + + A rule with this name already exists, please choose another name. Filtrs ar šādu nosaukumu jau pastāv, lūdzu izvēlieties citu nosaukumu. - + Are you sure you want to remove the download rule named '%1'? Vai esat pārliecināts, ka vēlaties dzēst filtru ar nosaukumu '%1'? - + Are you sure you want to remove the selected download rules? Vai esat pārliecināts, ka vēlāties dzēst atlasītos lejupielādes filtrus? - + Rule deletion confirmation Filtra dzēšanas apstiprināšana - + Invalid action Nederīga darbība - + The list is empty, there is nothing to export. Saraksts ir tukšs, nav ko saglabāt. - + Export RSS rules Saglabāt RSS filtru - + I/O Error Ievades/izvades kļūda - + Failed to create the destination file. Reason: %1 Neizdevās izveidot failu: Iemesls: %1 - + Import RSS rules Pievienot RSS filtru - + Failed to import the selected rules file. Reason: %1 Neizdevās importēt izvēlēto filtra failu. Iemesls: %1 - + Add new rule... Pievienot jaunu filtru... - + Delete rule Dzēst filtru - + Rename rule... Pārdēvēt filtru... - + Delete selected rules Dzēst atlasītos filtrus - + Clear downloaded episodes... Noņemt jau lejupielādētās epizodes... - + Rule renaming Filtra pārdēvēšana - + Please type the new rule name Lūdzu ievadiet jauno filtra nosaukumu - + Clear downloaded episodes Noņemt jau lejupielādētās epizodes... - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Vai esat pārliecināts, ka vēlaties no saraksta nodzēst jau lejupielādētās epizodes? - + Regex mode: use Perl-compatible regular expressions Regex režīms: lietot Perl valodas regulārās izteiksmes - - + + Position %1: %2 Pozīcija %1: %2 - + Wildcard mode: you can use Aizstājējzīmju režīms: jūs varat lietot - - + + Import error Importēšanas kļūda - + Failed to read the file. %1 Neizdevās nolasīt failu. %1 - + ? to match any single character ? lai aizstātu vienu, jebkuru rakstzīmi - + * to match zero or more of any characters * lai aizstātu vairākas, jebkuras rakstzīmes - + Whitespaces count as AND operators (all words, any order) Atstarpes skaitās kā AND operatori (visi vārdi, jebkurā secībā) - + | is used as OR operator | tiek lietots kā OR operators - + If word order is important use * instead of whitespace. Ja vārdu secība ir svarīga, lietojiet * simbolu. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Izteiksme ar tukšu klauzulu %1 (piemēram %2) - + will match all articles. meklēs visos ierakstos. - + will exclude all articles. izlaidīs visus ierakstus. @@ -1965,7 +2071,7 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nevar izveidot torrentu atsākšanas mapi: "%1" @@ -1975,28 +2081,38 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Nespēj parsēt atsākšanas datus: nederīgs formāts - - + + Cannot parse torrent info: %1 Nespēj parsēt torrenta informāciju: %1 - + Cannot parse torrent info: invalid format Nespēj parsēt torrenta informāciju: nederīgs formāts - + Mismatching info-hash detected in resume data + Atsākšanas datos atklāts nesaderīgs jaucējkods + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Neizdevās saglabāt torrenta metadatus %1'. Iemesls: %2 - + Couldn't save torrent resume data to '%1'. Error: %2. Neizdevās saglabāt torrenta atsākšanas datus '%1'. Iemesls: %2 @@ -2007,16 +2123,17 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā + Cannot parse resume data: %1 Nespēj parsēt atsākšanas datus: %1 - + Resume data is invalid: neither metadata nor info-hash was found Atsākšanas dati nav nederīgi: netika atrasti metadati nedz arī jaucējkoda - + Couldn't save data to '%1'. Error: %2 Neizdevās saglabāt datus '%1'. Kļūda: %2 @@ -2024,38 +2141,60 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā BitTorrent::DBResumeDataStorage - + Not found. .Nav atrasts - + Couldn't load resume data of torrent '%1'. Error: %2 Neizdevās ielādēt atsākšanas datus torrentam "%1". Iemesls: %2 - - + + Database is corrupted. Datubāze ir bojāta. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Nespēj parsēt atsākšanas datus: %1 + + + + + Cannot parse torrent info: %1 + Nespēj parsēt torrenta informāciju: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Neizdevās saglabāt torrenta metadatus. Iemesls: %1 - + Couldn't store resume data for torrent '%1'. Error: %2 Neizdevās saglabāt atsākšanas datus torrentam "%1". Iemesls: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Neizdevās izdzēst atsākšanas datus torrentam "%1". Iemesls: %2 - + Couldn't store torrents queue positions. Error: %1 Neizdevās saglabāt ierindoto torrentu secību: Iemesls: %1 @@ -2086,457 +2225,503 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Necentralizētā tīkla (DHT) atbalsts: %1 - - - - - - - - - + + + + + + + + + ON IESLĒGTS - - - - - - - - - + + + + + + + + + OFF IZSLĒGTS - - + + Local Peer Discovery support: %1 Vietējo koplietotāju meklēšana %1 - + Restart is required to toggle Peer Exchange (PeX) support Nepieciešams pārstartēšana, lai ieslēgtu Apmaiņu koplietotāju starpā (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Neizdevās atsākt torrentu. Torrents: "%1". Iemesls: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Neizdevās atsākt torrentu: nepareizs torrenta ID. Torrents: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Atrasti nepareizi dati: iestatījumu failā netika atrasta kategorijas iestatījumi. Kategorija tiks atjaunota, bet tās iestatījumi tiks atgriezti uz noklusētajiem. Torrents "%1". Kategorija: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Atrasti nepareizi dati: nepareiza kategorija. Torrents: "%1". Kategorija: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Nav atrasta sakritība patreizējajai saglabāšanas vietai ar atjaunotās kategorijas saglabāšanas vietu torrentam. Torrents tiks pārslēgts Manuālajā pārvaldes režīmā. Torrents: "%1". Kategorija: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Atrasti nepareizi dati: iestatījumu failā netika atrasta atzīme. Atzīme tiks atjaunota. Torrents: "%1". Atzīme: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Atrasti nepareizi dati: nederīga atzīme. Torrents: "%1". Atzīme: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Reģistrēta datorsistēmas atmoda no miega režīma. Tiek veikta datu atjaunināšana ar visiem trakeriem... - + Peer ID: "%1" Koplietotāja ID: "%1" - + HTTP User-Agent: "%1" HTTP Lietotāja Aģents ir "%1" - + Peer Exchange (PeX) support: %1 Apmaiņa koplietotāju starpā (PeX): %1 - - + + Anonymous mode: %1 Anonīmais režīms %1 - - + + Encryption support: %1 Šifrēšanas atbalsts: %1 - - + + FORCED PIESPIEDU - + Could not find GUID of network interface. Interface: "%1" Neizdevās iegūt Savienojuma interfeisa GUID: "%1" - + Trying to listen on the following list of IP addresses: "%1" Mēģina savienot ar kādu no sarakstā esošajām IP adresēm: "%1" - + Torrent reached the share ratio limit. Torrents sasniedzis L/A attiecības robežu. - - - + Torrent: "%1". Torrents: "%1". - - - - Removed torrent. - Izdzēsts torrents. - - - - - - Removed torrent and deleted its content. - Izdzēsts torrents un tā saturs. - - - - - - Torrent paused. - Torrents apturēts. - - - - - + Super seeding enabled. Super-augšupielāde ieslēgta. - + Torrent reached the seeding time limit. Torrents sasniedzis augšupielādes laika robežu. - + Torrent reached the inactive seeding time limit. - + Torrents sasniedzis neaktīvas augšupielādes laika robežu. - + Failed to load torrent. Reason: "%1" Neizdevās ielādēt torrentu. Iemesls "%1" - + I2P error. Message: "%1". - + I2P kļūda. Ziņojums: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP ieslēgts - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Trakeru apvienošanas iespēja ir atslēgta + + + + Trackers cannot be merged because it is a private torrent + Trakerus nevar apvienot, jo torrents ir privāts. + + + + Trackers are merged from new source + Pievienots trakeris no jaunā avota + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP atslēgts - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Neizdevās eksportēt torrentu. Torrents: "%1". Vieta: "%2". Iemesls: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Atcelta atsākšanas datu saglabāšana norādītajam skaitam torrentu: %1 - + The configured network address is invalid. Address: "%1" Uzstādītā tīkla adrese nav derīga: Adrese: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Neizdevās atrast uzstādītu, derīgu tīkla adresi. Adrese: "%1" - + The configured network interface is invalid. Interface: "%1" Uzstādītā tīkla adrese nav derīga: Adrese: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" IP adrese: "%1" nav derīga, tādēļ tā netika pievienota bloķēto adrešu sarakstam. - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrentam pievienots trakeris. Torrents: "%1". Trakeris: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Torrentam noņemts trakeris. Torrents: "%1". Trakeris: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Torrentam pievienots Tīmekļa devējs. Torrents: "%1". Devējs: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Torrentam noņemts Tīmekļa devējs. Torrents: "%1". Devējs: "%2" - - Torrent paused. Torrent: "%1" - Torrents apturēts. Torrents: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrents atsākts. Torrents: "%1" - + Torrent download finished. Torrent: "%1" Torrenta lejupielāde pabeigta. Torrents: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrenta pārvietošana atcelta. Torrents: "%1". Avots: "%2". Galavieta: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrents apstādināts. Torrents: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Neizdevās ierindot torrenta pārvietošanu. Torrents: "%1". Avots: "%2". Galavieta: "%3". Iemesls: torrents jau ir pārvietošanas vidū - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Neizdevās ierindot torrenta pārvietošanu. Torrents: "%1". Avots: "%2". Galavieta: "%3". Iemesls: Esošā un izvēlētā jaunā galavieta ir tā pati. - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Ierindota torrenta pārvietošana. Torrents: "%1". Avots: "%2". Galavieta: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Sākt torrenta pārvietošanu. Torrents: "%1". Galavieta: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Neizdevās saglabāt Kategoriju uzstādījumus. Fails: "%1". Kļūda: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Neizdevās parsēt Kategoriju uzstādījumus. Fails: "%1". Kļūda: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Veiksmīgi parsēts IP filtrs. Pievienoto filtru skaits: %1 - + Failed to parse the IP filter file Neizdevās parsēt norādīto IP filtru - + Restored torrent. Torrent: "%1" Atjaunots torrents. Torrents: "%1" - + Added new torrent. Torrent: "%1" Pievienots jauns torrents. Torrents: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Kļūda torrentos. Torrents: "%1". Kļūda: "%2" - - - Removed torrent. Torrent: "%1" - Izdzēsts torrents. Torrents: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Izdzēsts torrents un tā saturs. Torrents: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentam iztrūkst SSL parametri. Torrents: "%1". Ziņojums: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Kļūda failos. Torrents: "%1". Fails: "%2". Iemesls: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP portu skenēšana neveiksmīga, Ziņojums: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP portu skenēšana veiksmīga, Ziņojums: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filtra dēļ. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). neatļautais ports (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). priviliģētais ports (%1) - - BitTorrent session encountered a serious error. Reason: "%1" + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" - + + BitTorrent session encountered a serious error. Reason: "%1" + BitTorrent sesija saskārusies ar nopietnu kļūdu. Iemesls: "%1" + + + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 starpniekservera kļūda. Adrese: %1. Ziņojums: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 jauktā režīma ierobežojumu dēļ. - + Failed to load Categories. %1 Neizdevās ielādēt Kategorijas. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Neizdevās ielādēt Kategoriju uzstādījumus. Fails: "%1". Iemesls: "nederīgs datu formāts" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Izdzēsts .torrent fails, but neizdevās izdzēst tā saturu vai .partfile. Torrents: "%1". Kļūda: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. jo %1 ir izslēgts - + %1 is disabled this peer was blocked. Reason: TCP is disabled. jo %1 ir izslēgts - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Neizdevās atrast Tīmekļa devēja DNS. Torrents: "%1". Devējs: "%2". Kļūda: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Saņemts kļūdas ziņojums no tīmekļa devēja. Torrents: "%1". URL: "%2". Ziņojums: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Veiksmīgi savienots. IP: "%1". Ports: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Neizdevās savienot. IP: "%1". Ports: "%2/%3". Iemesls: "%4" - + Detected external IP. IP: "%1" Reģistrētā ārējā IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Kļūda: iekšējā brīdinājumu rinda ir pilna un brīdinājumi tiek pārtraukti. Var tikt ietekmēta veiktspēja. Pārtraukto brīdinājumu veidi: "%1". Ziņojums: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrents pārvietots veiksmīgi. Torrents: "%1". Galavieta: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Neizdevās pārvietot torrentu. Torrents: "%1". Avots: "%2". Galavieta: "%3". Iemesls: "%4" @@ -2546,19 +2731,19 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Failed to start seeding. - + Neizdevās uzsākt augšupielādi. BitTorrent::TorrentCreator - + Operation aborted Darbība atcelta - - + + Create new torrent file failed. Reason: %1. Neizdevās izveidot jaunu .torrent failu. Iemesls: %1 @@ -2566,67 +2751,67 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Neizdevās pievienot koplietotāju "%1" torrentam "%2". Iemesls: %3 - + Peer "%1" is added to torrent "%2" Koplietotājs "%1" tika pievienots torrentam "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Neizdevās faila rakstīšana. Iemesls: "%1". Tamdēļ šobrīd torrents būs tikai augšupielādes režīmā. - + Download first and last piece first: %1, torrent: '%2' Vispirms ielādēt pirmās un pēdējās daļiņas: %1, torrents: '%2' - + On Ieslēgts - + Off Izslēgts - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Neizdevās ielādēt torrentu. Torrents: %1. Iemesls: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Atsākšanas datu izveidošana nesanāca. Torrents: "%1". Iemesls: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Neizdevās atjaunot torrentu. Visticamāk faili ir pārvietoti vai arī glabātuve nav pieejama. Torrents: "%1". Iemesls: "%2" - + Missing metadata Trūkst metadatu - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Neizdevās faila pārdēvēšana. Torrents: "%1", fails: "%2", iemesls: "%3" - + Performance alert: %1. More info: %2 Veiktspējas brīdinājums: %1. Sīkāka informācija: %2 @@ -2647,189 +2832,189 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametram '%1' ir jāatbilst sintaksei '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametram '%1' ir jāatbilst sintaksei '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Gaidītais veselais skaitlis vides mainīgajā '%1', bet saņemts '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametram '%1' ir jāatbilst sintaksei '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Gaidīts %1 vides mainīgajā '%2', bet saņemts '%3'' - - + + %1 must specify a valid port (1 to 65535). %1 norādiet pareizo portu (starp 1 un 65535). - + Usage: Lietojums: - + [options] [(<filename> | <url>)...] [iespējas] [(<filename> | <url>)...] - + Options: Iespējas: - + Display program version and exit Parādīt programmas versiju un aizvērt - + Display this help message and exit Parādīt palīdzības ziņojumu un aizvērt - - Confirm the legal notice - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametram '%1' ir jāatbilst sintaksei '%1=%2' - - + + Confirm the legal notice + Aptstiprināt legālo ziņojumu + + + + port ports - + Change the WebUI port - + Mainīt Tālvadības kontroles paneļa portu - + Change the torrenting port - + Disable splash screen Atslēgt uzlēcošo logu - + Run in daemon-mode (background) Darbināt fonā (daemon-mode) - + dir Use appropriate short form or abbreviation of "directory" mape - + Store configuration files in <dir> Glabāt konfigurācijas failus šeit <dir> - - + + name nosaukums - + Store configuration files in directories qBittorrent_<name> Glabāt konfigurācijas failu mapēs qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Modificēt libtorrent ātratsākšanas failus un izveidot ceļus relatīvu profila mapei - + files or URLs faili vai saites - + Download the torrents passed by the user Lejupielādēt lietotāja norādītos torrentus - + Options when adding new torrents: Iespējas, pievienojot jaunu torrentus: - + path vieta - + Torrent save path Torrenta saglabāšanas vieta - - Add torrents as started or paused - Pievienot torrentus sāktus vai apstādinātus + + Add torrents as running or stopped + Pievienot torrentus kā palaistus vai apstādinātus - + Skip hash check Izlaist jaucējkoda pārbaudi - + Assign torrents to category. If the category doesn't exist, it will be created. Iedalīt torrentus kategorijā. Ja kategorija nepastāv, tā tiks izveidota. - + Download files in sequential order Lejupielādēt secīgā kārtībā - + Download first and last pieces first Vispirms ielādēt pirmās un pēdējās daļiņas - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Norādīt vai, pievienojot torrentu, tiks parādīts "Pievienot jaunu torrentu" logs. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Opciju vērtības var norādīt, izmantojot vides mainīgos. Opcijai ar nosaukumu 'parameter-name', vides mainīgā nosaukums ir 'QBT_PARAMETER_NAME' (lielajiem burtiem, '-' aizstāj ar '_'). Lai iesniegtu vērtības, iestatiet mainīgo uz '1' vai "TRUE". Piemēram, lai atslēgtu sākuma ekrānu: - + Command line parameters take precedence over environment variables Komandrindas parametriem ir prioritāte pār vides mainīgajiem - + Help Palīdzība @@ -2881,13 +3066,13 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā - Resume torrents - Atsākt torrentus + Start torrents + Palaistie torrenti - Pause torrents - Apturēt torrentus + Stop torrents + Apstādinātie torrenti @@ -2898,15 +3083,20 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā ColorWidget - + Edit... Labot... - + Reset Atiestatīt + + + System + + CookiesDialog @@ -2947,22 +3137,22 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Neizdevās ielādēt pielāgoto saskarni. %1 - + Failed to load custom theme colors. %1 - + Neizdevās ielādēt pielāgotās saskarnes krāsas. %1 DefaultThemeSource - + Failed to load default theme colors. %1 - + Neizdevās ielādēt noklusētās saskarnes krāsas. %1 @@ -2979,23 +3169,23 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā - Also permanently delete the files - Tāpat neatgriezeniski izdzēst failus + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Vai esat pārliecināts, ka vēlaties izdzēst '%1' no Torrentu saraksta? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Vai esat pārliecināts, ka vēlaties izdzēst šos %1 torrentus no Torrentu saraksta? - + Remove Dzēst @@ -3008,12 +3198,12 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Lejupielādēt no saitēm - + Add torrent links Pievienot torrentu saites - + One link per line (HTTP links, Magnet links and info-hashes are supported) Katrā rindā pa vienai saitei (Ir atbalstītas HTTP saites, Magnētsaites un Jaucējkodi) @@ -3023,12 +3213,12 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Lejupielādēt - + No URL entered Netika ievadīta adrese - + Please type at least one URL. Lūdzu ievadiet vismaz vienu adresi. @@ -3187,25 +3377,48 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Parsēšanas kļūda: Šis filtra fails nav saderīgs are PeerGuardian P2B failu. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + Vienkāršs teksts + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Lejupielāde torrentu.... Avots: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Šis torrents jau ir pievienots - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrents '%'1 jau ir torrentu sarakstā. Vai vēlies apvienot to trakerus? @@ -3213,38 +3426,38 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā GeoIPDatabase - - + + Unsupported database file size. Neatbalstīts datubāzes faila izmērs - + Metadata error: '%1' entry not found. Kļūda Metadatos: "%1' ieraksts nav atrasts. - + Metadata error: '%1' entry has invalid type. Kļūda Metadatos: '%1' nederīgs ieraksts. - + Unsupported database version: %1.%2 Neatbalstīta datubāzes versija: %1.%2 - + Unsupported IP version: %1 Neatbalstīta IP versija: %1 - + Unsupported record size: %1 Neatbalstīts ieraksta izmērs: %1 - + Database corrupted: no data section found. Bojāta datubāze: dati netika atrasti @@ -3252,17 +3465,17 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http pieprasījuma izmērs pārsniedz robežu, aizveram socketu. Robeža: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Slikta Http pieprasījuma metode, aizveram socketu. IP: %1. Metode: "%2" - + Bad Http request, closing socket. IP: %1 Slikts Http pieprasījums, aizveram socketu. IP: %1 @@ -3303,23 +3516,57 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā IconWidget - + Browse... Pārlūkot... - + Reset Atiestatīt - + Select icon Izvēlies ikonu - + Supported image files + Atbalstītie attēlu faili + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Energoefektivitātes pārvaldnieks atrada piemērotu D-Bus interfeisu. Interfeiss: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Energoefektivitātes pārvaldnieka kļūda. Darbība: %1. Kļūda: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Negaidīta energoefektivitātes pārvaldnieka kļūda. Stāvoklis: %1. Kļūda: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3343,24 +3590,24 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā If you have read the legal notice, you can use command line option `--confirm-legal-notice` to suppress this message. - + Ja esat izlasījis legālo ziņojumu, varat izmantot komandu `--confirm-legal-notice`, lai to vairs nerādītu. Press 'Enter' key to continue... - + Spiediet "Enter", lai turpinātu... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 tika nobloķēts. Iemesls: %2. - + %1 was banned 0.0.0.0 was banned %1 tika aizliegts @@ -3369,60 +3616,60 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 ir nezināms komandlīnijas parametrs. - - + + %1 must be the single command line parameter. %1 ir jābūt vienrindiņas komandlīnijas paramateram. - + Run application with -h option to read about command line parameters. Palaist programmu ar -h parametru, lai iegūtu informāciju par komandlīnijas parametriem - + Bad command line Slikta komandlīnija - + Bad command line: Slikta komandlīnija: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Tu nevari atvērt %1: qBittorrent ir jau atvērts. - + Another qBittorrent instance is already running. - + Cita qBittorrent instance jau ir atvērta. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,681 @@ Atbalsta formātus: S01E01, 1x1, 2017.12.31 un 31.12.2017 (Datumu formātos kā &Rediģēt - + &Tools &Rīki - + &File &Fails - + &Help &Palīdzība - + On Downloads &Done Kad lejupielādes pabeigtas - + &View &Skats - + &Options... Iestatījumi... - - &Resume - Atsākt - - - + &Remove Dzēst - + Torrent &Creator Torrentu veidotājs - - + + Alternative Speed Limits Alternatīvie atļautie ātrumi - + &Top Toolbar Augšējā rīkjosla - + Display Top Toolbar Rādīt augšējo rīkjoslu - + Status &Bar Stāvokļa josla - + Filters Sidebar Filtru sāna josla - + S&peed in Title Bar Ātrums Nosaukuma joslā - + Show Transfer Speed in Title Bar Rādīt ielādes ātrumus Nosaukuma joslā - + &RSS Reader RSS lasītājs - + Search &Engine Meklētājs - + L&ock qBittorrent Aizslēgt qBittorrent - + Do&nate! Ziedot! - + + Sh&utdown System + + + + &Do nothing Nedarīt neko - + Close Window Aizvērt logu - - R&esume All - A&tsākt visus - - - + Manage Cookies... Sīkfailu pārvaldība... - + Manage stored network cookies Saglabāto tīkla sīkfailu pārvaldība - + Normal Messages Parasti ziņojumi - + Information Messages Informatīvi ziņojumi - + Warning Messages Brīdinājumu ziņojumi - + Critical Messages Kritiski ziņojumi - + &Log Reģistrs - + + Sta&rt + + + + + Sto&p + A&pstādināt + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Uzstādīt atļauto kopējo ātrumu... - + Bottom of Queue Novietot saraksta apakšā - + Move to the bottom of the queue Novietot saraksta apakšā - + Top of Queue Novietot saraksta augšā - + Move to the top of the queue Novietot saraksta augšā - + Move Down Queue Novietot zemāk sarakstā - + Move down in the queue Novietot zemāk sarakstā - + Move Up Queue Novietot augstāk sarakstā - + Move up in the queue Novietot augstāk sarakstā - + &Exit qBittorrent Aizvērt qBittorrent - + &Suspend System Pārslēgties miega režīmā - + &Hibernate System Pārslēgties hibernācijas režīmā - - S&hutdown System - Izslēgt datoru - - - + &Statistics Statistika - + Check for Updates Meklēt atjauninājumus - + Check for Program Updates Meklēt programmas atjauninājumus - + &About Par BitTorrent - - &Pause - Apturēt - - - - P&ause All - Apturēt visus - - - + &Add Torrent File... Pievienot Torrentu failus... - + Open Atvērt - + E&xit Izslēgt qBittorrent - + Open URL Atvērt adresi - + &Documentation Dokumentācija - + Lock Aizslēgt - - - + + + Show Rādīt - + Check for program updates Meklēt programmas atjauninājumus - + Add Torrent &Link... Pievienot Torrentu &saites... - + If you like qBittorrent, please donate! Ja jums patīk qBittorrent, lūdzu, ziedojiet! - - + + Execution Log Reģistrs - + Clear the password Notīrīt paroli - + &Set Password Uzstādīt paroli - + Preferences Iestatījumi - + &Clear Password Notīrīt paroli - + Transfers Torrenti - - + + qBittorrent is minimized to tray qBittorrent ir samazināts tray ikonā - - - + + + This behavior can be changed in the settings. You won't be reminded again. Šī uzvedība var tikt mainīta uzstādījumos. Jums tas vairs netiks atgādināts. - + Icons Only Tikai ikonas - + Text Only Tikai tekstu - + Text Alongside Icons Teksts blakus ikonām - + Text Under Icons Teksts zem ikonām - + Follow System Style Sistēmas noklusētais - - + + UI lock password qBittorrent atslēgšanas parole - - + + Please type the UI lock password: Izvēlies paroli qBittorrent atslēgšanai: - + Are you sure you want to clear the password? Vai esat pārliecināts, ka vēlaties notīrīt paroli? - + Use regular expressions Lietot regulāras izteiksmes (regex) - + + + Search Engine + Meklētājs + + + + Search has failed + Meklēšana neizdevās + + + + Search has finished + Meklēšana pabeigta. + + + Search Meklētājs - + Transfers (%1) Torrenti (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent nupat tika atjaunināts un ir nepieciešams restarts, lai izmaiņas stātos spēkā. - + qBittorrent is closed to tray qBittorrent ir samazināts tray ikonā - + Some files are currently transferring. Dažu failu ielāde vēl nav pabeigta. - + Are you sure you want to quit qBittorrent? Vai esat pārliecināts, ka vēlaties aizvērt qBittorrent? - + &No - + &Yes - + &Always Yes Vienmēr jā - + Options saved. Iestatījumi saglabāti. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title + + [PAUSED] %1 + %1 is the rest of the window title - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [L: %1, A: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python uzstādīšanas programmu nevarēja lejupielādēt. Kļūda: %1. +Lūdzu, uzstādiet to paši. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Neizdevās pārdēvēt Python uzstādīšanas programmu. Avots: "%1". Galamērķis: "%2". + + + + Python installation success. + Python veiksmīgi uzstādīts. + + + + Exit code: %1. + + + + + Reason: installer crashed. + Iemesls: uzstādīšanas programma avarēja. + + + + Python installation failed. + Python uzstādīšana neizdevās. + + + + Launching Python installer. File: "%1". + Palaiž Python uzstādīšanas programmu. Fails: "%1". + + + + Missing Python Runtime Nav atrasts Python interpretētājs - + qBittorrent Update Available Pieejams qBittorrent atjauninājums - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - Lai lietotu meklētāju, ir nepieciešams uzinstalēt Python. + Lai lietotu meklētāju, ir nepieciešams uzinstalēt Python. Vai vēlaties to instalēt tagad? - + Python is required to use the search engine but it does not seem to be installed. Lai lietotu meklētāju, ir nepieciešams uzinstalēt Python. - - + + Old Python Runtime Novecojis Python interpretētājs - + A new version is available. Pieejama jauna versija - + Do you want to download %1? Vai vēlaties lejupielādēt %1? - + Open changelog... Atvērt izmaiņu reģistru... - + No updates available. You are already using the latest version. - Atjauninājumi nav pieejami. + Atjauninājumi nav pieejami. Jūs jau lietojat jaunāko versiju. - + &Check for Updates Meklēt atjauninājumus - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Jūsu Pythona versija (%1) ir novecojusi. Vecākā atļautā: %2. Vai vēlaties ieinstalēt jaunāku versiju tagad? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Jūsu Python versija (1%) ir novecojusi. Lai darbotos meklētājprogrammas, lūdzu veiciet atjaunināšanu uz jaunāko versiju. Vecākā atļautā: %2. - + + Paused + Apturēts + + + Checking for Updates... Meklē atjauninājumus... - + Already checking for program updates in the background Atjauninājumu meklēšana jau ir procesā - + + Python installation in progress... + Notiek Python uzstādīšana… + + + + Failed to open Python installer. File: "%1". + Neizdevās atvērt Python uzstādīšanas programmu. Fails: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python uzstādīšanas programmas MD5 kontrolsummas pārbaude izgāzās. Fails: "%1". Reālā kontrolsumma: "%2". Vēlamā kontrolsumma: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python uzstādīšanas programmas SHA3-512 kontrolsummas pārbaude izgāzās. Fails: "%1". Reālā kontrolsumma: "%2". Vēlamā kontrolsumma: "%3". + + + Download error Lejupielādes kļūda - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python instalāciju neizdevās lejupielādēt, iemesls: %1. -Lūdzam to izdarīt manuāli. - - - - + + Invalid password Nederīga parole - + Filter torrents... - + Meklēt torrentu.... - + Filter by: - + Meklēt pēc: - + The password must be at least 3 characters long Parolei ir jāsatur vismaz 3 rakstzīmes. - - - + + + RSS (%1) RSS (%1) - + The password is invalid Parole nav derīga - + DL speed: %1 e.g: Download speed: 10 KiB/s Lejup. ātrums: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Augšup. ātrums: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [L: %1, A: %2] qBittorrent %3 - - - + Hide Paslēpt - + Exiting qBittorrent Aizvērt qBittorrent - + Open Torrent Files Izvēlieties Torrentu failus - + Torrent Files Torrentu faili @@ -4232,7 +4551,12 @@ Lūdzam to izdarīt manuāli. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL kļūda, URL: "%1", kļūdas: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorēta SSL kļūda, URL: "%1", kļūdas: "%2" @@ -5526,47 +5850,47 @@ Lūdzam to izdarīt manuāli. Net::Smtp - + Connection failed, unrecognized reply: %1 Savienojums neizdevās, neatpazīta atbilde: %1 - + Authentication failed, msg: %1 Autentifikācija neizdevās, ziņa: %1 - + <mail from> was rejected by server, msg: %1 <mail from> serveris noraidīja, ziņa: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> serveris noraidīja, ziņa: %1 - + <data> was rejected by server, msg: %1 <data> serveris noraidīja, ziņa: %1 - + Message was rejected by the server, error: %1 Serveris noraidīja ziņojumu, kļūda: %1 - + Both EHLO and HELO failed, msg: %1 Kļūda gan EHLO, gan HELO, ziņa: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP serveris neatbalsta nevienu no mūsu izmantotajām autentifikācijas metodēm [CRAM-MD5|PLAIN|LOGIN], izlaidīsim autentifikāciju, zinot, ka tas visticamāk nenostrādās... Servera autenfikācijas veids: %1 - + Email Notification Error: %1 E-pasta paziņojuma kļūda: %1 @@ -5604,299 +5928,283 @@ Lūdzam to izdarīt manuāli. BitTorrent - + RSS RSS - - Web UI - Tālvadība - - - + Advanced Papildus - + Customize UI Theme... - + Pielāgot saskarni... - + Transfer List Torrentu saraksts - + Confirm when deleting torrents Apstiprināt Torrentu dzēšanu - - Shows a confirmation dialog upon pausing/resuming all the torrents - Atsākot/Apstādinot visus torrentus, tiks parādīs apstiprinājuma logs - - - - Confirm "Pause/Resume all" actions - Apstiprināt "Atsākt/Apstādināt visus" darbības - - - + Use alternating row colors In table elements, every other row will have a grey background. Iekrāsot katru otro rindiņu - + Hide zero and infinity values Nerādīt nulles un bezgalības vērtības - + Always Vienmēr - - Paused torrents only - Tikai apturētajiem torrentiem - - - + Action on double-click Dubultklikšķa darbība - + Downloading torrents: Lejupielādējot torrentus: - - - Start / Stop Torrent - Sākt / Apturēt torentu - - - - + + Open destination folder Atvērt failu atrašanās vietu - - + + No action Nedarīt neko - + Completed torrents: Pabeigtajiem torentiem: - + Auto hide zero status filters - + Desktop Darbvirsma - + Start qBittorrent on Windows start up Ieslēgt qBittorrent reizē ar Datorsistēmu - + Show splash screen on start up Pirms palaišanas parādīt qBittorrent logo - + Confirmation on exit when torrents are active Apstiprināt programmas aizvēršanu, ja kāda faila ielāde vēl nav pabeigta - + Confirmation on auto-exit when downloads finish Apstiprināt programmas automātisko aizvēršanu pēc lejupielāžu pabeigšanas - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + <html><head/><body><p>Lai iestatītu qBittorrent kā noklusēto programmu .torrent failu un/vai Magnētsaišu atvēršanai,<br/>jūs varat izmantot <span style=" font-weight:600;">Noklusētās programmas</span> logu <span style=" font-weight:600;">Kontroles panelī</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrenta satura izkārtojums: - + Original Oriģinālais - + Create subfolder Izveidot apakšmapi - + Don't create subfolder Neizveidot apakšmapi - + The torrent will be added to the top of the download queue Torrenta tiks pievienots lejupielāžu saraksta augšā - + Add to top of queue The torrent will be added to the top of the download queue Novietot saraksta augšā - + When duplicate torrent is being added - + Pievienojot torrenta duplikātu - + Merge trackers to existing torrent - + Apvienot torrentu trakeru saites - + Keep unselected files in ".unwanted" folder - + Uzglabāt neizvēlētos failus ".unwanted" mapē - + Add... Pievienot... - + Options.. Iestatījumi... - + Remove Dzēst - + Email notification &upon download completion E-pasta paziņojums par lejupielādes pabeigšanu - + + Send test email + Nosūtīt testa e-pastu + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Koplietotāju savienojumu protokols - + Any Vienalga - + I2P (experimental) l2P (eksperimentāls) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - + Jauktais režīms - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy Ja atzīmēts, arī datoru nosaukumu noteikšanai izmantos starpniekserveri - + Perform hostname lookup via proxy Izmantot starpniekserveri datoru nosaukumu noteikšanai - + Use proxy for BitTorrent purposes - + Izmantot starpniekserveri tikai BiTtorrent savienojumiem - + RSS feeds will use proxy RSS kanāli izmantos starpniekserveri - + Use proxy for RSS purposes Izmantot starpniekserveri RSS kanāliem - + Search engine, software updates or anything else will use proxy Meklētājiem, atjaunināšanai un visam citam izmantos starpniekserveri - + Use proxy for general purposes - + Izmantot starpniekserveri visiem savienojumiem - + IP Fi&ltering IP filtrēšana - + Schedule &the use of alternative rate limits Uzstādīt laiku Alternatīvo atļauto ātrumu pielietošanai - + From: From start time No: - + To: To end time Līdz: - + Find peers on the DHT network Atrod koplietotājus publiskajā DHT tīklā - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Pieprasīt šifrēšanu: Veidot tikai šifrētus savienojumus, ar citiem kopliet Atslēgt šifrēšanu: Veidot savienojumus ar citiem koplietotājiem, kuriem arī šifrēšana ir atslēgta - + Allow encryption Atļaut šifrēšanu - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Vairāk informācijas</a>) - + Maximum active checking torrents: Atļautais vienlaicīgi pārbaudāmo torrentu skaits: - + &Torrent Queueing Torrentu saraksts - + When total seeding time reaches - + Kad kopējais augšupielādes laiks sasniedz - + When inactive seeding time reaches - + Kad neaktīvais augšupielādes laiks sasniedz - - A&utomatically add these trackers to new downloads: - A&utomātiski pievienot šos trakerus jaunajām lejupielādēm: - - - + RSS Reader RSS lasītājs - + Enable fetching RSS feeds Ieslēgt RSS kanālu nolasīšanu - + Feeds refresh interval: Ziņu atsvaidzināšanas intervāls: - + Same host request delay: - + Maximum number of articles per feed: Atļautais ziņu skaits katram kanālam: - - - + + + min minutes min - + Seeding Limits Augšupielādes ierobežojumi - - Pause torrent - Apturēt torrentu - - - + Remove torrent Dzēst torrentu - + Remove torrent and its files Izdzēst torrentu un failus - + Enable super seeding for torrent Ieslēgt torrentu super-augšupielādi - + When ratio reaches Kad L/A attiecība sasniedz - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Apstādināt torrentu + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + Adrese: + + + + Fetched trackers + + + + + Search UI + Meklētāja saskarne + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS automātiskais torrentu lejupielādētājs - + Enable auto downloading of RSS torrents Ieslēgt RSS automātisko lejupielādi - + Edit auto downloading rules... Rediģēt automātiskās lejupielādes nosacījumus... - + RSS Smart Episode Filter RSS viedais epizožu filtrs - + Download REPACK/PROPER episodes Lejupielādēt REPACK/PROPER epizodes - + Filters: Filtri: - + Web User Interface (Remote control) Tālvadības kontroles panelis (Web UI) - + IP address: IP adrese: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Norādiet IPv4 vai IPv6 adresi. Varat norādīt "0.0.0.0" jebkurai IPv "::" jebkurai IPv6 adresei, vai "*" abām IPv4 un IPv6. - + Ban client after consecutive failures: Liegt piekļuvi pēc atkārtotiem mēģinājumiem: - + Never Nekad - + ban for: liegt piekļuvi uz: - + Session timeout: Sesijas noildze: - + Disabled Atslēgts - - Enable cookie Secure flag (requires HTTPS) - Ieslēgt sīkdatņu Secure Flag (nepieciešams HTTPS) - - - + Server domains: Servera domēni: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ Lai aizsargātu pret DNS atkārtotas atsaukšanas uzbrukumiem, Izmantojiet ';' lai atdalītu vairākus vārdus. Varat izmantot vietturi '*'. - + &Use HTTPS instead of HTTP HTTP vietā izmantot HTTPS - + Bypass authentication for clients on localhost Izlaist pierakstīšanos uz saimnieka datora (localhost) - + Bypass authentication for clients in whitelisted IP subnets Izlaist pierakstīšanos klientiem, kuri atrodas apakštīklu IP baltajā sarakstā - + IP subnet whitelist... Apakštīklu IP baltais saraksts... - + + Use alternative WebUI + Lietot citu Tālvadības paneļa saskarni + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Norādiet apgriezto starpniekserveru IP adreses (vai apakštīklus, piem. 0.0.0.0/24), lai izmantotu klienta pārsūtīto adresi (X-Forwarded-For atribūts), izmantojiet ";", lai atdalītu ierakstus. - + Upda&te my dynamic domain name Atjaunināt manu dinamisko domēnu - + Minimize qBittorrent to notification area Ar samazināšanas pogu, novietot qBittorrent paziņojumu joslā - + + Search + Meklēt + + + + WebUI + Tālvadības panelis + + + Interface Saskarne - + Language: Valoda - + + Style: + + + + + Color scheme: + Krāsu shēma: + + + + Stopped torrents only + Tikai apstādinātos torrentus + + + + + Start / stop torrent + Palaist / apstādināt torrentu + + + + + Open torrent options dialog + Atvērt torrenta iestatījumu dialoglogu + + + Tray icon style: Paziņojumu joslas ikonas stils: - - + + Normal Normāls - + File association Failu piederība - + Use qBittorrent for .torrent files Lietot qBittorrent .torrent failiem - + Use qBittorrent for magnet links Lietot qBittorrent Magnētsaitēm - + Check for program updates Meklēt programmas atjauninājumus - + Power Management Barošanas pārvaldība - + + &Log Files + + + + Save path: Saglabāšanas vieta: - + Backup the log file after: Izveidot reģistra kopiju ik pēc: - + Delete backup logs older than: Dzēst reģistra kopijas vecākas par: - + + Show external IP in status bar + Rādīt publisko IP adresi statusa joslā + + + When adding a torrent Pievienojot torrentu - + Bring torrent dialog to the front Novietot torenta dialogu priekšplānā - + + The torrent will be added to download list in a stopped state + Torrents tiks pievienots lejupielāžu sarakstam apstādinātā stāvoklī + + + Also delete .torrent files whose addition was cancelled .torrent faili tiks izdzēsti arī pie pievienošanas atcelšanas. - + Also when addition is cancelled Arī atceļot pievienošanu - + Warning! Data loss possible! Brīdinājums! Iespējams datu zudums! - + Saving Management Saglabāšanas iestatījumi - + Default Torrent Management Mode: Noklusējuma torrentu pārvaldības režīms: - + Manual Manuāli - + Automatic Automātiski - + When Torrent Category changed: Mainot torrenta kategoriju: - + Relocate torrent Pārvietot torrentu - + Switch torrent to Manual Mode Pārslēgt torrentu Manuālajā režīmā - - + + Relocate affected torrents Pārvietot ietekmētos torrentus - - + + Switch affected torrents to Manual Mode Pārslēgt ietekmētos torrentus Manuālajā režīmā - + Use Subcategories Lietot apakškategorijas - + Default Save Path: Noklusētā saglabāšanas vieta: - + Copy .torrent files to: Izveidot .torrent failu kopijas šeit: - + Show &qBittorrent in notification area Rādīt &qBittorrent paziņojumu joslā - - &Log file - Reģistra fails - - - + Display &torrent content and some options Parādīt torrenta saturu un iestatījumus - + De&lete .torrent files afterwards Izdzēst .torrent failu pēc tā pievienošanas - + Copy .torrent files for finished downloads to: Izveidot .torrent failu kopijas pabeigtajiem torrentiem šeit: - + Pre-allocate disk space for all files Rezervēt brīvu vietu uz diska jaunajiem failiem - + Use custom UI Theme Izmanto pielāgotu saskarni - + UI Theme file: Saskarnes fails: - + Changing Interface settings requires application restart Saskarsnes uzstādījumu maiņai nepieciešams programmas restarts - + Shows a confirmation dialog upon torrent deletion Dzēšot torrentu, tiks parādīts apstiprinājuma logs - - + + Preview file, otherwise open destination folder Priekšskatīt failu. Ja nevar, tad atvērt atrašanās vietu - - - Show torrent options - Torrenta iestatījumi - - - + Shows a confirmation dialog when exiting with active torrents Aizverot programmu ar vēl aktīviem torrentiem, tiks parādīts apstiprinājuma logs - + When minimizing, the main window is closed and must be reopened from the systray icon Samazinot qBittorrent, programmas logs tiek aizvērts un ir atverams ar ikonu paziņojumu joslā - + The systray icon will still be visible when closing the main window Pēc programmas loga aizvēršanas, tās ikona vēl aizvien būs redzama paziņojumu joslā - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Ar aizvēršanas pogu, novietot qBittorrent paziņojumu joslā - + Monochrome (for dark theme) Vienkrāsains (tumšajam motīvam) - + Monochrome (for light theme) Vienkrāsains (gaišajam motīvam) - + Inhibit system sleep when torrents are downloading Neatļaut miega režīmu, ja kādu failu lejupielāde vēl nav pabeigta - + Inhibit system sleep when torrents are seeding Neatļaut miega režīmu, ja kādi faili vēl tiek aktīvi augšupielādēti - + Creates an additional log file after the log file reaches the specified file size Izveidot papildus reģistra failu, kad esošais sasniedzis norādīto faila izmēru - + days Delete backup logs older than 10 days dienām - + months Delete backup logs older than 10 months mēnešiem - + years Delete backup logs older than 10 years gadiem - + Log performance warnings Reģistrēt darbības brīdinājumus - - The torrent will be added to download list in a paused state - Torrents lejupielāžu sarakstā tiks pievienots apturēts - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Neuzsākt lejupielādi automātiski - + Whether the .torrent file should be deleted after adding it Vai .torrent fails ir jāizdzēš pēc tā pievienošanas - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Izbrīvēs pilnu vietu failiem pirms lejupielādes sākšanas, lai mazinātu diska fragmentāciju. Funkcija būtiska tikai HDD diskiem. - + Append .!qB extension to incomplete files Pievienot .!qB galotni nepabeigtajiem failiem - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Kad faili no torrenta ir lejupielādēti, piedāvāt lejupielādēt tajos atrastos citus .torrent failus. - + Enable recursive download dialog Parādīt rekursīvās lejupielādes dialogu - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - Automātiski: nozīmē, ka torrenta uzstādījumi (piem. saglabāšanas vieta), tiks iestatīti atbilstoši izvēlētajai kategorijai. + Automātiski: nozīmē, ka torrenta uzstādījumi (piem. saglabāšanas vieta), tiks iestatīti atbilstoši izvēlētajai kategorijai. Manuāli: Nozīmē, ka torrenta uzstādījumi (piem. saglabāšanas vieta) būs jānorāda pašam. - + When Default Save/Incomplete Path changed: Mainot noklusēto Saglabāšanas/Nepabeigto vietu: - + When Category Save Path changed: Mainot kategorijas saglabāšanas vietu: - + Use Category paths in Manual Mode Izmantot Kategoriju vietas manuālajā režīmā - + Resolve relative Save Path against appropriate Category path instead of Default one Noklusētās saglabāšanas vietas vietā izmantot attiecīgās Kategorijas saglabāšanas vietu - + Use icons from system theme Izmantot systēmas saskarnes ikonas - + Window state on start up: - + Loga stāvoklis palaišanas brīdī: - + qBittorrent window state on start up - + qBittorrent loga stāvoklis palaišanas brīdī - + Torrent stop condition: Torrenta apstādināšanas nosacījumi: - - + + None Nevienu - - + + Metadata received Metadati ielādēti - - + + Files checked Faili pārbaudīti - + Ask for merging trackers when torrent is being added manually - + Vaicāt pēc trakera saišu pievienošanas, ja torrents tiek pievienots manuāli - + Use another path for incomplete torrents: Izmantot citu vietu nepabeigtiem torrentiem: - + Automatically add torrents from: Automātiski pievienot torrentus no: - + Excluded file names Neiekļaujamo failu nosaukumi - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: neatļaus failus ar tieši tādu nosaukumu. readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet atļaus 'readme10.txt'. - + Receiver Saņēmējs - + To: To receiver Uz: - + SMTP server: SMTP serveris: - + Sender Sūtītājs - + From: From sender No: - + This server requires a secure connection (SSL) Šim serverim ir nepieciešams šifrēts savienojums (SSL) - - + + Authentication Pierakstīšanās - - - - + + + + Username: Lietotājvārds: - - - - + + + + Password: Parole: - + Run external program Palaist ārēju programmu - - Run on torrent added - Palaist reizē ar torrenta pievienošanu - - - - Run on torrent finished - Palaist pēc torrenta ielādes pabeigšanas - - - + Show console window Parādīt konsoles logu - + TCP and μTP TCP un μTP - + Listening Port Portu iestatījumi - + Port used for incoming connections: Ports, kuru izmanto ienākošajiem savienojumiem: - + Set to 0 to let your system pick an unused port Izvēlies 0, ja vēlies, lai sistēma izvēlas neizmantotu portu - + Random Nejaušs - + Use UPnP / NAT-PMP port forwarding from my router Lietot mana rūtera UPnP / NAT-PMP portu pāradresāciju - + Connections Limits Savienojumu ierobežojumi - + Maximum number of connections per torrent: Atļautais savienojumu skaits katram torrentam: - + Global maximum number of connections: Atlautais kopējais savienojumu skaits: - + Maximum number of upload slots per torrent: Atļautais augšupielādes slotu skaits katram torrentam: - + Global maximum number of upload slots: Atļautais kopējais augšupielādes slotu skaits: - + Proxy Server Starpniekserveris - + Type: Lietot: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Adrese: - - - + + + Port: Ports: - + Otherwise, the proxy server is only used for tracker connections Pretējā gadījumā, starpniekserveris tiks izmantots tikai savienojumiem ar trakeriem - + Use proxy for peer connections Izmantot starpniekserveri koplietotāju savienojumiem - + A&uthentication Pierakstīšanas - - Info: The password is saved unencrypted - Brīdinājums: Šī parole netiek glabāta šifrētā veidā - - - + Filter path (.dat, .p2p, .p2b): Filtra atrašanās vieta (.dat, .p2p, .p2b): - + Reload the filter Pārlādēt filtru - + Manually banned IP addresses... Manuāli bloķētās IP adreses... - + Apply to trackers Pielietot trakeriem - + Global Rate Limits Galvenie atļautie kopējie ātrumi - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Augšupielāde: - - + + Download: Lejupielāde: - + Alternative Rate Limits Alternatīvie atļautie kopējie ātrumi - + Start time Sākšanas laiks - + End time Beigšanas laiks - + When: Kad: - + Every day Katru dienu. - + Weekdays Darbdienās - + Weekends Nedēļas nogalēs - + Rate Limits Settings Ielādes ātrumu ierobežojumu iestatījumi - + Apply rate limit to peers on LAN Pielietot ierobežojumus koplietotājiem LAN tīklā - + Apply rate limit to transport overhead Pielietot ātruma ierobežojums tikai transporta izmaksām - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Pielietot ierobežojumus µTP protokolam - + Privacy Privātums - + Enable DHT (decentralized network) to find more peers Ieslēgt DHT (necentralizēto tīklu), lai atrastu vēl vairāk koplietotājus - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Apmainīties ar koplietotājiem ar saderīgiem Bittorrent klientiem (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Ieslēgt datu apmaiņu koplietotāju starpā (PeX), lai atrastu vairāk koplietotājus - + Look for peers on your local network Meklēt koplietotājus privātajā tīklā - + Enable Local Peer Discovery to find more peers Ieslēgt Vietējo koplietotāju meklēšanu, lai atrastu vēl vairāk koplietotājus - + Encryption mode: Šifrēšanas režīms: - + Require encryption Pieprasīt šifrēšanu - + Disable encryption Atslēgt šifrēšanu - + Enable when using a proxy or a VPN connection Ieslēgt, ja tiek izmantots starpniekserveris vai VPN - + Enable anonymous mode Iespējot anonīmo režīmu - + Maximum active downloads: Atļautais aktīvo lejupielāžu skaits: - + Maximum active uploads: Atļautais aktīvo augšupielāžu skaits: - + Maximum active torrents: Atļautais kopējais aktīvo torrentu skaits: - + Do not count slow torrents in these limits Neiekļaut šajās robežās lēnos torrentus. - + Upload rate threshold: Nepārsniedz Auģsupielādes ātrumu: - + Download rate threshold: Nepārsniedz Lejupielādes ātrumu: - - - - + + + + sec seconds sek - + Torrent inactivity timer: Torrentu neaktivitātes skaitītājs: - + then tad - + Use UPnP / NAT-PMP to forward the port from my router Lietot UPnP / NAT-PMP lai pāradresētu portu manā maršrutētājā - + Certificate: Sertifikāts - + Key: Atslēga: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informācija par sertifikātiem</a> - + Change current password Mainīt patreizējo paroli - - Use alternative Web UI - Lietot citu Tālvadības paneļa saskarni - - - + Files location: Failu atrašanās vieta: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Alternatīvo WebUI saraksts</a> + + + Security Drošība - + Enable clickjacking protection Ieslēgt aizsardzību pret clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Ieslēgt aizsardzību pret Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Ieslēgt Hosta header apstiprināšanu - + Add custom HTTP headers Pievienot pielāgotas HTTP galvenes - + Header: value pairs, one per line Galvene: Katrā rindā pa vienam vērtību pārim - + Enable reverse proxy support Atļaut reversos starptniekserverus - + Trusted proxies list: Uzticamo starpniekserveru saraksts: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reversā starpniekservera iestatīšanas piemēri</a> + + + Service: Serviss: - + Register Reģistrēties - + Domain name: Domēna vārds: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Iespējojot šo opciju, varat <strong>neatgriezeniski zaudēt</strong> .torrent failus! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Ja tu iespējosi otru opciju (&ldquo;Arī atceļot pievienošanu&rdquo;) .torrent fails <strong>tiks izdzēsts</strong> arī, ja tu piespiedīsi &ldquo;<strong>Atcelt</strong>&rdquo; &ldquo;Pievienot Torrentu failus&rdquo; logā - + Select qBittorrent UI Theme file Izvēlēties qBittorrent saskarnes failu - + Choose Alternative UI files location Izvēlieties interfeisa failu atrašanās vietu - + Supported parameters (case sensitive): Nodrošinātie parametri (reģistrjūtīgi): - + Minimized Samazināts - + Hidden Paslēpts - + Disabled due to failed to detect system tray presence - + Atslēgts, jo neizdevās noteikt sistēmas teknes klātbūtni - + No stop condition is set. Aptstādināšanas nosacījumi nav izvēlēti - + Torrent will stop after metadata is received. Torrents tiks apstādināts pēc metadatu ielādes. - Torrents that have metadata initially aren't affected. - Neattiecas uz torrentiem, kuriem jau sākotnēji ir metadati. - - - + Torrent will stop after files are initially checked. Torrents tiks apstādināts pēc sākotnējo failu pārbaudes. - + This will also download metadata if it wasn't there initially. Tas ielādēs arī metadatus, ja to nebija jau sākotnēji. - + %N: Torrent name %N: Torrent faila nosaukums - + %L: Category %L: Kategorija - + %F: Content path (same as root path for multifile torrent) %F: Satura ceļš (tāpat kā saknes ceļš daudz-failu torrentam) - + %R: Root path (first torrent subdirectory path) %R: Saknes ceļš (pirmā torrenta apakšdirektorijas ceļš) - + %D: Save path %D: Saglabāšanas vieta - + %C: Number of files %C: Failu skaits - + %Z: Torrent size (bytes) %Z: Torrenta izmērs (baitos) - + %T: Current tracker %T: Pašreizējais trakeris - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Padoms: Lai izvairītos no teksta sadalīšanās, ja lietojat atstarpes, ievietojiet parametru pēdiņās (piemēram, "%N") - + + Test email + Testa e-pasts + + + + Attempted to send email. Check your inbox to confirm success + Mēģināja nosūtīt e-pastu. Pārbaudiet savu iesūtni, lai pārliecināties, ka viss noritēja veiksmīgi + + + (None) (Nevienu) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Par lēnajiem torrentiem tiek reģistrēti tie, kuru ātrumi nepārsniedz zemāk norādītos, ilgāk kā norādīts "Torrentu neaktivātes skaitītājā". - + Certificate Sertifikāts - + Select certificate Izvēlieties sertifikātu - + Private key Privāta atslēga - + Select private key Izvēlieties privātu atslēgu - + WebUI configuration failed. Reason: %1 + Tālvadības paneļa konfigurācija neizdevās. Iemesls: %1 + + + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 ir labākais variants vislabākajai saderībai ar Windows tumšo režīmu + + + + System + System default Qt style - + + Let Qt decide the style for this system + Ļaut Qt noteikt šīs sistēmas stilu + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Izvēlēties mapi, kuru uzraudzīt - + Adding entry failed Ieraksta pievienošana neizdevās - + The WebUI username must be at least 3 characters long. - + Tālvadības paneļa lietotājvārdam jāsatur vismaz 3 rakstzīmes. - + The WebUI password must be at least 6 characters long. - + Tālvadības paneļa parolei jāsatur vismaz 6 rakstzīmes. - + Location Error Atrašanās vietas kļūda - - + + Choose export directory Izvēlieties eksportēšanas direktoriju - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Ja šīs opcijas ir iespējotas, qBittorent <strong>dzēsīs</strong> .torrent failus pēc tam, kad tie tiks veiksmīgi (pirmais variants) vai ne (otrais variants) pievienoti lejupielādes sarakstam. Tas tiks piemērots <strong>ne tikai</strong> failiem, kas atvērti, izmantojot &ldquo;Pievienot Torrentu failus&rdquo; izvēlnes darbību, bet arī, to atverot, izmantojot <strong>failu tipu piesaistes</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent saskarnes fails (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Atzīmes (atdalītas ar komatu) - + %I: Info hash v1 (or '-' if unavailable) %I: Jaucējkods v1 (vai '-' ja nav pieejams) - + %J: Info hash v2 (or '-' if unavailable) %J: Jaucējkods v2 (vai '-' ja nav pieejams) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrenta ID (Vai nu sha-1 jaucējukods torrentam v1, vai arī saīsināts sha-256 jaucējkods v2/hibrīda torrentam) - - - + + + Choose a save directory Izvēlieties saglabāšanas direktoriju - + Torrents that have metadata initially will be added as stopped. - + Torrenti, kuriem ir metadati tiks pievienoti apstādināti. - + Choose an IP filter file Izvēlieties IP filtra failu - + All supported filters Visi atbalstītie filtri - + The alternative WebUI files location cannot be blank. - + Saskarnes failu atrašanās vieta nevar tikt atstāta tukša. - + Parsing error Parsēšanas kļūda - + Failed to parse the provided IP filter Neizdevās parsēt norādīto IP filtru - + Successfully refreshed Veiksmīgi atsvaidzināts - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filtra parsēšana veiksmīga: piemēroti %1 nosacījumi. - + Preferences Iestatījumi - + Time Error Laika kļūda - + The start time and the end time can't be the same. Sākuma un beigu laiks nevar būt vienāds - - + + Length Error Garuma kļūda @@ -7335,241 +7765,246 @@ readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet PeerInfo - + Unknown Nezināms - + Interested (local) and choked (peer) Ieinteresēti (vietējie) un aizņemti (koplietotāji) - + Interested (local) and unchoked (peer) Ieinteresēti (vietējie) un nav aizņemti (koplietotāji) - + Interested (peer) and choked (local) Ieinteresēti (koplietotāji) un aizņemti (vietējie) - + Interested (peer) and unchoked (local) Ieinteresēti (koplietotāji) un nav aizņemti (vietējie) - + Not interested (local) and unchoked (peer) Nav ieinteresēti (vietējie) un nav aizņemti (koplietotāji) - + Not interested (peer) and unchoked (local) Nav ieinteresēti (koplietotāji) un nav aizņemti (vietējie) - + Optimistic unchoke Optimistisks unchoke - + Peer snubbed Koplietotājs noraidīts - + Incoming connection Ienākošs savienojums - + Peer from DHT Koplietotājs no DHT - + Peer from PEX Koplietotājs no PEX - + Peer from LSD Koplietotājs no LSD - + Encrypted traffic Šifrēta datplūsma - + Encrypted handshake Šifrēts rokasspiediens + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Valsts/Apgabals - + IP/Address IP/Adrese - + Port Ports - + Flags Karogi - + Connection Savienojums - + Client i.e.: Client application Klients - + Peer ID Client i.e.: Client resolved from Peer ID Koplietotāja klienta ID - + Progress i.e: % downloaded Pabeigti - + Down Speed i.e: Download speed Lejupielādes ātrums - + Up Speed i.e: Upload speed Augšupielādes ātrums - + Downloaded i.e: total data downloaded Lejupielādēti - + Uploaded i.e: total data uploaded Augšupielādēti - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Koplietotāja pārsvars - + Files i.e. files that are being downloaded right now Faili - + Column visibility Kolonnas redzamība - + Resize columns Mainīt kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam - + Add peers... Pievienot koplietotājus... - - + + Adding peers Pievieno koplietotājus - + Some peers cannot be added. Check the Log for details. Dažus koplietotājus neizdevās pievienot. Iemeslu skatīt Reģistrā. - + Peers are added to this torrent. Koplietotāji tika veiksmīgi pievienoti torrentam. - - + + Ban peer permanently Nobloķēt koplietotāju - + Cannot add peers to a private torrent Nevar pievienot koplietotājus privātiem torrentiem - + Cannot add peers when the torrent is checking Nevar pievienot koplietotājus torrenta pārbaudes vidū - + Cannot add peers when the torrent is queued Nevar pievienot koplietotājus rindā gaidošiem torrentiem - + No peer was selected Neviens koplietotājs nav atlasīts - + Are you sure you want to permanently ban the selected peers? Vai esat pārliecināts, ka vēlāties aizliegt atlasītos koplietotājus? - + Peer "%1" is manually banned Koplietotājs "%1" tika manuāli aizliegts - + N/A Nav zināms - + Copy IP:port Kopēt IP un portu @@ -7587,7 +8022,7 @@ readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet Saraksts ar jaunajiem koplietotājiem (katrā rindā pa vienam): - + Format: IPv4:port / [IPv6]:port Paraugs: IPv4:ports / [IPv6]:ports @@ -7628,27 +8063,27 @@ readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet PiecesBar - + Files in this piece: Faili šajā daļā: - + File in this piece: Fails šajā daļā: - + File in these pieces: Fails šajās daļās: - + Wait until metadata become available to see detailed information Uzgaidiet līdz kļūs pieejami Metadati, lai iegūtu sīkāku informāciju. - + Hold Shift key for detailed information Plašākai informācijai turiet nospiestu Shift taustiņu @@ -7661,58 +8096,58 @@ readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet Meklētāju spraudņi - + Installed search plugins: Ieinstalētie meklētāju spraudņi: - + Name Nosaukums - + Version Versija - + Url Adrese - - + + Enabled Ieslēgts - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Uzmanību: Pārliecinieties, ka ievērojat jūsu valsts autortiesību likumus, pirms lejupielādējat šajos meklētājos atrastos torrentus. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Jūs varat atrast jaunus meklētāju spraudņus šeit: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalēt jaunu spraudni - + Check for updates Meklēt atjauninājumus - + Close Aizvērt - + Uninstall Atinstalēt @@ -7740,7 +8175,7 @@ readme[0-9].txt: neatļaus 'readme1.txt', 'readme2.txt', bet 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. - Dažus spraudņus nav iespējams atinstalēt, jo tie ir iekļauti qBittorrent. Jūs varat atinstalēt tikai tos spraudņus, kurus pats ieinstalējāt. + Dažus spraudņus nav iespējams atinstalēt, jo tie ir iekļauti qBittorrent. Jūs varat atinstalēt tikai tos spraudņus, kurus pats ieinstalējāt. Esošie spraudņi tika atslēgti. @@ -7832,98 +8267,65 @@ Esošie spraudņi tika atslēgti. Spraudņa avots - + Search plugin source: Meklēt spraudņa avotu: - + Local file Datorā - + Web link Internetā - - PowerManagement - - - qBittorrent is active - qBittorrent ir aktīvs - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Sekojošie faili no torrenta "%1" atbalsta priekšskatīšanu, lūdzu izvēlieties vienu no tiem: - + Preview Priekšskatīt - + Name Nosaukums - + Size Izmērs - + Progress Pabeigti - + Preview impossible Priekšskatīšana nav iespējama - + Sorry, we can't preview this file: "%1". Atvainojiet, šo failu nevar priekšskatīt: "%1". - + Resize columns Mainīt kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam @@ -7936,27 +8338,27 @@ Esošie spraudņi tika atslēgti. Private::FileLineEdit - + Path does not exist Norādītā vieta nepastāv - + Path does not point to a directory Šajā ceļā nav norādīta mape - + Path does not point to a file Šajā ceļā nav norādīts fails - + Don't have read permission to path Nav lasīšanas tiesību šajā vietā - + Don't have write permission to path Nav rakstīšanas tiesību šajā vietā @@ -7997,12 +8399,12 @@ Esošie spraudņi tika atslēgti. PropertiesWidget - + Downloaded: Lejupielādēti: - + Availability: Pieejamība: @@ -8017,53 +8419,53 @@ Esošie spraudņi tika atslēgti. Koplietošanas dati - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktīvs jau: - + ETA: Aptuvenais ielādes laiks: - + Uploaded: Augšupielādēti: - + Seeds: Devēji: - + Download Speed: Lejupielādes ātrums: - + Upload Speed: Augšupielādes ātrums: - + Peers: Ņēmēji: - + Download Limit: Lejupielādes robeža: - + Upload Limit: Augšupielādes robeža: - + Wasted: Izmesti: @@ -8073,193 +8475,220 @@ Esošie spraudņi tika atslēgti. Savienojumi: - + Information Informācija - + Info Hash v1: Jaucējkods v1: - + Info Hash v2: Jaucējkods v2: - + Comment: Komentārs: - + Select All Izvēlēties visus - + Select None Neizvēlēties nevienu - + Share Ratio: Lejup/Augšup attiecība: - + Reannounce In: Savienojums ar trakeri pēc: - + Last Seen Complete: Pēdējo reizi koplietots: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + Popularitāte: + + + Total Size: Kopējais izmērs: - + Pieces: Daļiņas: - + Created By: Izveidots ar: - + Added On: Pievienots: - + Completed On: Pabeigts: - + Created On: Izveidots: - + + Private: + Privāts: + + + Save Path: Saglabāšanas vieta: - + Never Nekad - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ielādētas %3) - - + + %1 (%2 this session) %1 (%2 šajā sesijā) - - + + + N/A Nav zināms - + + Yes + + + + + No + + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (augšupielādē jau %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 atļauti) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 kopā) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 vidējais) - - New Web seed + + Add web seed + Add HTTP source Pievienot tīmekļa devēju - - Remove Web seed - Noņemt tīmekļa devēju + + Add web seed: + Pievienot tīmekļa devēju: - - Copy Web seed URL - Kopēt tīmekļa devēja adresi + + + This web seed is already in the list. + Šis tīmekļa devējs jau ir sarakstā. - - Edit Web seed URL - Izlabot tīmekļa devēja adresi - - - + Filter files... Meklēt failos... - + + Add web seed... + Pievienot tīmekļa devēju… + + + + Remove web seed + Noņemt tīmekļa devēju + + + + Copy web seed URL + Kopēt tīmekļa devēja adresi + + + + Edit web seed URL... + + + + Speed graphs are disabled Ātrumu diagrammas ir atslēgtas - + You can enable it in Advanced Options Varat tās ieslēgt Papildus Iestatījumos - - New URL seed - New HTTP source - Pievienot tīmekļa devēju - - - - New URL seed: - Pievienot tīmekļa devēju - - - - - This URL seed is already in the list. - Šis tīmekļa devējs jau ir sarakstā. - - - + Web seed editing Tīmekļa devēja labošana - + Web seed URL: Tīmekļa devēja adrese: @@ -8267,33 +8696,33 @@ Esošie spraudņi tika atslēgti. RSS::AutoDownloader - - + + Invalid data format. Nederīgs datu formāts. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Neizdevās saglabāt RSS automātiskā ielādētāja datus %1. Kļūda: %2 - + Invalid data format Nederīgs datu formāts. - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + '%2' filtrs atzīmējis RSS ierakstu '%1'. Mēģina pievienot torrentu... - + Failed to read RSS AutoDownloader rules. %1 Neizdevās ielādēt RSS automātiskā ielādētāja filtru. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Neizdevās ielādēt RSS automātiskā ielādētāja filtru. Iemesls: %1 @@ -8301,22 +8730,22 @@ Esošie spraudņi tika atslēgti. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Neizdevās ielādēt RSS kanālu no '%1'. Iemesls: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS kanāls '%1' veiksmīgi atjaunināts. Tika pievienoti %2 jauni ieraksti. - + Failed to parse RSS feed at '%1'. Reason: %2 Neizdevās parsēt RSS kanālu no '%1'. Iemesls: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS kanāla '%1' saturs veiksmīgi lejupielādēts. Tiek sākta datu pārstrāde. @@ -8352,12 +8781,12 @@ Esošie spraudņi tika atslēgti. RSS::Private::Parser - + Invalid RSS feed. Nederīgs RSS kanāls. - + %1 (line: %2, column: %3, offset: %4). %1 (rinda: %2, kolonna: %3, nobīde: %4). @@ -8365,103 +8794,144 @@ Esošie spraudņi tika atslēgti. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Neizdevās saglabāt RSS sesijas iestatījumus. Fails: "%1". Iemesls: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Neizdevās saglabāt RSS sesijas datus. Fails: "%1". Iemesls: "%2" - - + + RSS feed with given URL already exists: %1. Šis RSS kanāls jau ir pievienots: %1. - + Feed doesn't exist: %1. Kanāls nepastāv: %1. - + Cannot move root folder. Nevar pārvietot root mapi. - - + + Item doesn't exist: %1. Fails nepastāv: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Nevar izdzēst root mapi. - + Failed to read RSS session data. %1 Neizdevās nolasīt RSS sesijas datus. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Neizdevās parsēt RSS sesijas datus. Fails: "%1". Iemesls: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Neizdevās ielādēt RSS sesijas datus. Fails: "%1". Iemesls: "Nederīgs datu formāts." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Neizdevās ielādēt RSS kanālu. Kanāls: "%1". Iemesls: Nepieciešama kanāla adrese. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Neizdevās ielādēt RSS kanālu. Kanāls: "%1". Iemesls: UID nav derīga. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Atrasts RSS kanāla duplikāts. UID: "%1". Kļūda: Satur kļūdainu informāciju. - + Couldn't load RSS item. Item: "%1". Invalid data format. Neizdevās ielādēt ziņu no RSS kanāla. Ziņa: "%1". Nederīgs datu formāts. - + Corrupted RSS list, not loading it. Kļūdaina RSS informācija, to neielādēs. - + Incorrect RSS Item path: %1. Nepareiza vieta failam no RSS: %1. - + RSS item with given path already exists: %1. Fails no RSS ar norādīto vietu jau pastāv: %1. - + Parent folder doesn't exist: %1. Virsmape nepastāv: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Kanāls nepastāv: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Adrese: + + + + Refresh interval: + Atsvaidzināšanas intervāls: + + + + sec + sek + + + + Default + Noklusētais + + RSSWidget @@ -8481,8 +8951,8 @@ Esošie spraudņi tika atslēgti. - - + + Mark items read Atzīmēt visus kā skatītus @@ -8507,132 +8977,115 @@ Esošie spraudņi tika atslēgti. Torrenti: (dubultklikšķis, lai lejupielādētu) - - + + Delete Dzēst - + Rename... Pārdēvēt... - + Rename Pārdēvēt - - + + Update Atsvaidzināt - + New subscription... Pievienot kanālu... - - + + Update all feeds Atsvaidzināt visus kanālus - + Download torrent Lejupielādēt torrentu - + Open news URL Atvērt ieraksta adresi - + Copy feed URL Kopēt kanāla adresi - + New folder... Jauna mape... - - Edit feed URL... - Rediģēt kanāla adresi... + + Feed options... + - - Edit feed URL - Rediģēt kanāla adresi - - - + Please choose a folder name Lūdzu, izvēlēties mapes nosaukumu - + Folder name: Mapes nosaukums: - + New folder Jauna mape - - - Please type a RSS feed URL - Lūdzu ievadiet RSS kanāla adresi - - - - - Feed URL: - Kanāla adrese: - - - + Deletion confirmation Dzēšanas apstiprināšana - + Are you sure you want to delete the selected RSS feeds? Vai esat pārliecināts, ka vēlaties izdzēst atlasītos RSS kanālus? - + Please choose a new name for this RSS feed Lūdzu izvēlēties jaunu nosaukumu šim RSS kanālam - + New feed name: Jaunais kanāla nosaukums: - + Rename failed Pārdēvēšana neizdevās - + Date: Datums: - + Feed: - + Kanāls: - + Author: Autors: @@ -8640,38 +9093,38 @@ Esošie spraudņi tika atslēgti. SearchController - + Python must be installed to use the Search Engine. Lai lietotu Meklētāju, ir nepieciešams Python. - + Unable to create more than %1 concurrent searches. Nevar veikt vairāk kā %1 meklējumus vienlaicīgi. - - + + Offset is out of range Nobīde ir ārpus robežas - + All plugins are already up to date. Visi jūsu spraudņi jau ir atjaunināti. - + Updating %1 plugins Atjaunina %1 spraudņus - + Updating plugin %1 Atjaunina spraudni %1 - + Failed to check for plugin updates: %1 Neizdevās sameklēt spraudņu atjauninājumus: %1 @@ -8746,132 +9199,142 @@ Esošie spraudņi tika atslēgti. Izmērs: - + Name i.e: file name - Nosaukums + Nosaukuma - + Size i.e: file size Izmērs - + Seeders i.e: Number of full sources Devēji - + Leechers i.e: Number of partial sources Ņēmēji - - Search engine - Meklētājs - - - + Filter search results... Meklēt rezultātos... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultāti (parādīti <i>%1</i> no <i>%2</i>): - + Torrent names only Tikai torrentu nosaukumos - + Everywhere Visur - + Use regular expressions Lietot Regulārās izteiksmes - + Open download window Atvērt lejupielādes logu - + Download Lejupielādēt - + Open description page Atvērt torrenta apraksta lapu - + Copy Kopēt - + Name Nosaukumu - + Download link Lejupielādes saiti - + Description page URL Apraksta lapas adresi - + Searching... Meklē... - + Search has finished Meklēšana pabeigta. - + Search aborted Meklēšana pārtraukta - + An error occurred during search... Meklēšanas laikā radās kļūda... - + Search returned no results Meklēšana nedeva rezultātus - + + Engine + + + + + Engine URL + + + + + Published On + Publicēts + + + Column visibility Kolonnas redzamība - + Resize columns Mainīt kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam @@ -8879,104 +9342,104 @@ Esošie spraudņi tika atslēgti. SearchPluginManager - + Unknown search engine plugin file format. Nezināms meklētāja spraudņa faila formāts. - + Plugin already at version %1, which is greater than %2 Pluginam jau ir versija %1, kas ir jaunāka par %2 - + A more recent version of this plugin is already installed. Šobrīd jau ir ieinstalēta šī spraudņa jaunāka versija. - + Plugin %1 is not supported. Spraudnis %1 nav atbalstīts. - - + + Plugin is not supported. Spraudnis nav atbalstīts - + Plugin %1 has been successfully updated. Spraudnis %1 veiksmīgi atjaunināts. - + All categories Visas kategorijas - + Movies Filmas - + TV shows TV raidījumi - + Music Mūzika - + Games Spēles - + Anime Animācija - + Software Programmatūra - + Pictures Attēli - + Books Grāmatas - + Update server is temporarily unavailable. %1 Atjauninājumu serveris šobrīd nav pieejams. %1 - - + + Failed to download the plugin file. %1 Neizdevās lejupielādēt spraudņa failu. %1 - + Plugin "%1" is outdated, updating to version %2 Spraudnis "%1" ir novecojis, atjauninām uz versiju %2 - + Incorrect update info received for %1 out of %2 plugins. Par %1 no %2 spraudņiem saņemta kļūdaina atjauninājumu informācija. - + Search plugin '%1' contains invalid version string ('%2') Meklētāja spraudnis '%1' satur nederīgus datus par versiju ('%22') @@ -8986,114 +9449,145 @@ Esošie spraudņi tika atslēgti. - - - - Search Meklēt - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nav atrasti uzinstalēti meklētāju spraudņi. Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. - + Search plugins... Meklētāju spraudņi... - + A phrase to search for. Frāze, ko meklēt. - + Spaces in a search term may be protected by double quotes. Meklējot terminu ar atstarpēm, iekļaujiet to pēdiņās. - + Example: Search phrase example Piemērs: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: meklēs <b>foo bar</b> - + All plugins Visi spraudņi - + Only enabled Tikai ieslēgtie - + + + Invalid data format. + Nederīgs datu formāts. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: meklēs <b>foo</b> un <b>bar</b> - + + Refresh + + + + Close tab Aizvērt cilni - + Close all tabs Aizvērt visas cilnes - + Select... Izvēlēties... - - - + + Search Engine Meklētājs - + + Please install Python to use the Search Engine. Lūdzu uzinstalējiet Python, lai lietotu meklētāju. - + Empty search pattern Ievadiet atslēgas vārdus - + Please type a search pattern first Lūdzu meklētājā ievadiet atslēgas vārdus - + + Stop Pārtraukt + + + SearchWidget::DataStorage - - Search has finished - Meklēšana pabeigta + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Meklēšana neizdevās + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9206,34 +9700,34 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. - + Upload: Augšupielāde: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Lejupielāde: - + Alternative speed limits Alternatīvie ātrumu ierobežojumi @@ -9425,32 +9919,32 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. Vidējais laiks rindā: - + Connected peers: Pievienotie koplietotāji: - + All-time share ratio: Kopējā Lejup/Augšup attiecība: - + All-time download: Kopējais lejupielādes daudzums: - + Session waste: Izmesti šajā sesijā: - + All-time upload: Kopējais augšupielādes daudzums: - + Total buffer size: Kopējais bufera izmērs: @@ -9465,12 +9959,12 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. I/O darbības rindā: - + Write cache overload: Kešatmiņas rakstīšanas noslodze: - + Read cache overload: Kešatmiņas lasīšanas noslodze: @@ -9489,51 +9983,77 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. StatusBar - + Connection status: Savienojuma stāvoklis: - - + + No direct connections. This may indicate network configuration problems. Nav tieša savienojuma. Tas var norādīt uz nepareizi nokonfigurētu tīkla savienojumu. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 serveri - + qBittorrent needs to be restarted! qBittorrent ir nepieciešams restarts! - - - + + + Connection Status: Savienojuma stāvoklis: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Atslēdzies. Tas parasti nozīmē to, ka qBittorrent neizdevās izveidot kontaktu ar ienākošo savienojumu portu. - + Online Pieslēdzies. Tas parasti nozīmē, ka vajadzīgie porti ir atvērti un viss strādā kā nākas. - + + Free space: + + + + + External IPs: %1, %2 + Publiskās IP adreses: %1, %2 + + + + External IP: %1%2 + Publiskā IP adrese: %1%2 + + + Click to switch to alternative speed limits Klikšķiniet šeit, lai pielietotu alternatīvos ielādes ātrumus - + Click to switch to regular speed limits Klikšķiniet šeit, lai pielietotu regulāros ielādes ātrumus @@ -9563,13 +10083,13 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. - Resumed (0) - Atsākti (0) + Running (0) + - Paused (0) - Apturēti (0) + Stopped (0) + Apstādināti (0) @@ -9631,36 +10151,36 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. Completed (%1) Pabeigti (%1) + + + Running (%1) + + - Paused (%1) - Apturēti (%1) + Stopped (%1) + Apstādināti (%1) + + + + Start torrents + Palaistie torrenti + + + + Stop torrents + Apstādinātie torrenti Moving (%1) Pārvieto (%1) - - - Resume torrents - Atsākt torrentus - - - - Pause torrents - Apturēt torrentus - Remove torrents Dzēst torrentus - - - Resumed (%1) - Atsākti (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Spiediet uz "Meklētāju spraudņi..." pogas, lai kādu uzinstalētu. Remove unused tags Dzēst neizmantotās atzīmes - - - Resume torrents - Atsākt torrentus - - - - Pause torrents - Apturēt torrentus - Remove torrents Dzēst torrentus - - New Tag - Jauna atzīme + + Start torrents + Palaistie torrenti + + + + Stop torrents + Apstādinātie torrenti Tag: Atzīme: + + + Add tag + Pievienot birku + Invalid tag name @@ -9903,32 +10423,32 @@ Lūdzu izvēlieties citu nosaukumu. TorrentContentModel - + Name Nosaukums - + Progress Pabeigti - + Download Priority Lejupielādes prioritāte - + Remaining Atlikuši - + Availability Pieejamība - + Total Size Kopējais izmērs @@ -9973,98 +10493,98 @@ Lūdzu izvēlieties citu nosaukumu. TorrentContentWidget - + Rename error Kļūda pārdēvēšanā - + Renaming Pārdēvēšana - + New name: Jaunais nosaukums: - + Column visibility Kolonnas redzamība - + Resize columns Pielāgot kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam - + Open Atvērt failu - + Open containing folder Atvērt failu atrašanās vietu - + Rename... Pārdēvēt... - + Priority Prioritāte - - + + Do not download Nelejupielādēt - + Normal Normāla - + High Augsta - + Maximum Augstākā - + By shown file order Pēc redzamās failu secības - + Normal priority Normāla - + High priority Augsta - + Maximum priority Augstākā - + Priority by shown file order Pēc redzamās failu secības @@ -10072,19 +10592,19 @@ Lūdzu izvēlieties citu nosaukumu. TorrentCreatorController - + Too many active tasks - + Pārāk daudz aktīvu darbību - + Torrent creation is still unfinished. - + Torrenta izveide vēl nav pabeigta. - + Torrent creation failed. - + Torrenta izveida neizdevās. @@ -10111,13 +10631,13 @@ Lūdzu izvēlieties citu nosaukumu. - + Select file Izvēlies failu - + Select folder Izvēlies mapi @@ -10192,87 +10712,83 @@ Lūdzu izvēlieties citu nosaukumu. Laukumi - + You can separate tracker tiers / groups with an empty line. Jūs varat atdalīt trakeru adrešu grupas ar tukšu līniju - + Web seed URLs: Tīmekļa devēju adreses: - + Tracker URLs: Trakeru adreses: - + Comments: Komentārs: - + Source: Avots: - + Progress: Pabeigti: - + Create Torrent Izveidot torrentu - - + + Torrent creation failed Torrenta izveida neizdevās - + Reason: Path to file/folder is not readable. Iemesls: Faila/mapes atrašanās vieta nav nolasāma. - + Select where to save the new torrent Izvēlieties, kur saglabāt jauno torrentu - + Torrent Files (*.torrent) Torrentu faili (*.torrent) - Reason: %1 - Iemesls: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Iemesls: "%1" - + Add torrent failed - + Torrenta pievienošana neizdevās - + Torrent creator Torrentu veidotājs - + Torrent created: Torrents izveidots: @@ -10280,32 +10796,32 @@ Lūdzu izvēlieties citu nosaukumu. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Neizdevās ielādēt Uzraudzīto mapju uzstādījumus. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Neizdevās parsēt Uzraudzīto mapju uzstādījumus no %1. Iemesls: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Neizdevās ielādēt Uzraudzīto mapju uzstādījumus no %1. Iemesls: "Nederīgs datu formāts." - + Couldn't store Watched Folders configuration to %1. Error: %2 Neizdevās saglabāt Uzraudzīto mapju uzstādījumus %1. Iemesls: %2 - + Watched folder Path cannot be empty. Uzraudzītās mapes atrašanās vietu nevar atstāt tukšu. - + Watched folder Path cannot be relative. Uzraudzītās mapes atrašanās vieta nevar būt relatīva. @@ -10313,44 +10829,31 @@ Lūdzu izvēlieties citu nosaukumu. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Nederīga Magnētsaite. Magnētsaite: %1. Iemesls: %2 - + Magnet file too big. File: %1 Magnētfails pārāk liels. Fails: %1 - + Failed to open magnet file: %1 Neizdevās atvērt magnētsaiti: %1 - + Rejecting failed torrent file: %1 Noraidīts neizdevies torrenta fails: %1 - + Watching folder: "%1" Uzraugāmā mape: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Nederīgi metadati - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Lūdzu izvēlieties citu nosaukumu. Izmantot citu vietu nepabeigtiem torrentiem - + Category: Kategorija: - - Torrent speed limits - Torrenta ātrumu ierobežojumi + + Torrent Share Limits + Torrenta dalīšanas ierobežojumi - + Download: Lejupielāde: - - + + - - + + Torrent Speed Limits + Torrenta ātrumu ierobežojumi + + + + KiB/s KiB/s - + These will not exceed the global limits Šie ierobežojumi nepārsniegs Galvenos ātruma ierobežojumus - + Upload: Augšupielāde: - - Torrent share limits - Torrenta dalīšanas ierobežojumi - - - - Use global share limit - Lietot Galvenos dalīšanas ierobežojumus - - - - Set no share limit - Neierobežot - - - - Set share limit to - Ierobežot - - - - ratio - L/A attiecība - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Atslēgt DHT šim torrentam - + Download in sequential order Lejupielādēt secīgā kārtībā - + Disable PeX for this torrent Atslēgt PeX šim torrentam - + Download first and last pieces first Vispirms ielādēt pirmās un pēdējās daļiņas - + Disable LSD for this torrent Atslēgt LSD šim torrentam - + Currently used categories Patreiz izmantotās kategorijas - - + + Choose save path Izvēlieties saglabāšanas vietu - + Not applicable to private torrents Nav pielāgojams privātiem torrentiem - - - No share limit method selected - Nav izvēlēts ierobežošanas veids - - - - Please select a limit method first - Lūdzu izvēlieties ierobežošanas veidu - TorrentShareLimitsWidget - - - + + + + Default - Noklusētais + Noklusētais + + + + + + Unlimited + Neierobežots - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Uzstādīt + + + + Seeding time: + Augšupielādes laiks: + + + + + + + + min minutes - min + min - + Inactive seeding time: + Neaktīvais augšupielādes laiks: + + + + Action when the limit is reached: + Darbība, kad limits ir sasniegts: + + + + Stop torrent + Apstādināt torrentu + + + + Remove torrent + Dzēst torrentu + + + + Remove torrent and its content - + + Enable super seeding for torrent + Ieslēgt torrentu super-augšupielādi + + + Ratio: - + L/A Attiecība: @@ -10558,32 +11049,32 @@ Lūdzu izvēlieties citu nosaukumu. Torrenta atzīmes - - New Tag - Jauna atzīme + + Add tag + Pievienot birku - + Tag: Atzīme: - + Invalid tag name Nederīgs Atzīmes nosaukums - + Tag name '%1' is invalid. Atzīmes nosaukums '%1' nav derīgs. - + Tag exists Kļūda nosaukumā - + Tag name already exists. Atzīme ar šādu nosaukumu jau pastāv. @@ -10591,115 +11082,130 @@ Lūdzu izvēlieties citu nosaukumu. TorrentsController - + Error: '%1' is not a valid torrent file. Kļūda. '%1' nav derīgs torrenta fails. - + Priority must be an integer Prioritātei ir jānorāda vesels skaitlis - + Priority is not valid Prioritāte nav derīga - + Torrent's metadata has not yet downloaded Torrenta metadati vēl nav lejupielādēti - + File IDs must be integers Failu ID jānorāda veseli skaitļi - + File ID is not valid Faila ID nav derīgs - - - - + + + + Torrent queueing must be enabled Ir jāieslēdz Torrentu ierindošana - - + + Save path cannot be empty Saglabāšanas vietu nevar atstāt tukšu - - + + Cannot create target directory Neizdevās izveidot norādīto mapi - - + + Category cannot be empty Kategoriju nevar atstāt tukšu - + Unable to create category Neizdevās izveidot kategoriju - + Unable to edit category Neizdevās labot kategoriju - + Unable to export torrent file. Error: %1 Neizdevās eksportēt .torrent failu. Kļūda: %1 - + Cannot make save path Nevar izveidot saglabāšanas vietu - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 'sort' parameters nav derīgs - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" nav derīgs failu indekss. - + Index %1 is out of bounds. Indekss %1 ir ārpus robežas. - - + + Cannot write to directory Šajā mapē nevar saglabāt - + WebUI Set location: moving "%1", from "%2" to "%3" Pārvietošana: pārvietot "%1", no "%2" uz "%3" - + Incorrect torrent name Nepareizs torrenta nosaukums - - + + Incorrect category name Nepareizs kategorijas nosaukums @@ -10730,196 +11236,191 @@ Lūdzu izvēlieties citu nosaukumu. TrackerListModel - + Working Strādā - + Disabled Atslēgts - + Disabled for this torrent Atslēgts šim torrentam - + This torrent is private Privāts torrents - + N/A Nav zināms - + Updating... Atjaunina... - + Not working Nestrādā - - - Tracker error - - - - - Unreachable - - + Tracker error + Trakera kļūda + + + + Unreachable + Nesasniedzams + + + Not contacted yet Vēl nav savienots - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Grupa - - - - Protocol + URL/Announce Endpoint + BT Protocol + BT Protokols + + + + Next Announce + + + + + Min Announce + + + + + Tier + Grupa + + + Status Stāvoklis - + Peers Koplietotāji - + Seeds Devēji - + Leeches Ņēmēji - - - Times Downloaded - Lejupielādes skaits - - Message - Ziņojums + Times Downloaded + Lejupielāžu skaits - Next announce - - - - - Min announce - - - - - v%1 - + Message + Ziņojums TrackerListWidget - + This torrent is private Privāts torrents - + Tracker editing Trakera rediģēšana - + Tracker URL: Trakera adrese: - - + + Tracker editing failed Trakera rediģēšana neizdevās - + The tracker URL entered is invalid. Ievadītā trakera adrese nav derīga. - + The tracker URL already exists. Šī trakera adrese jau ir pievienota. - + Edit tracker URL... Rediģēt trakeri adresi... - + Remove tracker Noņemt trakeri - + Copy tracker URL Kopēt trakera adresi - + Force reannounce to selected trackers Piespiedu datu atjaunināšana ar izvēlētajiem trakeriem - + Force reannounce to all trackers Piespiedu datu atjaunināšana ar visiem trakeriem - + Resize columns Mainīt kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam - + Add trackers... Pievienot trakerus... - + Column visibility Kolonnas redzamība @@ -10937,37 +11438,37 @@ Lūdzu izvēlieties citu nosaukumu. Saraksts ar jaunajiem trakeriem (katrā rindā pa vienam): - + µTorrent compatible list URL: Ar µTorrent saderīgas sarakstes URL: - + Download trackers list Ielādēt trakeru sarakstu - + Add Pievienot - + Trackers list URL error Trakeru saraksta adreses kļūda - + The trackers list URL cannot be empty Trakeru saraksta adresi nevar atstāt tukšu - + Download trackers list error Kļūda trakeru saraksta ielādē - + Error occurred when downloading the trackers list. Reason: "%1" Radās kļūda, lejupielādējot trakeru sarakstu. Iemesls: "%1" @@ -10975,62 +11476,62 @@ Lūdzu izvēlieties citu nosaukumu. TrackersFilterWidget - + Warning (%1) Brīdinājums (%1) - + Trackerless (%1) Bez trakeriem (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Trakera kļūda (%1) - + + Other error (%1) + Cita kļūda (%1) + + + Remove tracker Noņemt trakeri - - Resume torrents - Atsākt torrentus + + Start torrents + Palaistie torrenti - - Pause torrents - Apturēt torrentus + + Stop torrents + Apstādinātie torrenti - + Remove torrents Dzēst torrentus - + Removal confirmation - + Dzēšanas apstiprināšana - + Are you sure you want to remove tracker "%1" from all torrents? - + Vai esat pārliecināts, ka vēlaties noņemt trakeri "%1" no visiem torrentiem? - + Don't ask me again. - + Vairs neprasīt - + All (%1) this is for the tracker filter Visi (%1) @@ -11039,7 +11540,7 @@ Lūdzu izvēlieties citu nosaukumu. TransferController - + 'mode': invalid argument @@ -11131,11 +11632,6 @@ Lūdzu izvēlieties citu nosaukumu. 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. Pārbaudām atsākšanas datus - - - Paused - Apturēts - Completed @@ -11159,220 +11655,252 @@ Lūdzu izvēlieties citu nosaukumu. Kļūdaini - + Name i.e: torrent name Nosaukums - + Size i.e: torrent size Izmērs - + Progress % Done Pabeigti - + + Stopped + Apstādināts + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stāvoklis - + Seeds i.e. full sources (often untranslated) Devēji - + Peers i.e. partial sources (often untranslated) Ņēmēji - + Down Speed i.e: Download speed Lejupielādes ātrums - + Up Speed i.e: Upload speed Augšupielādes ātrums - + Ratio Share ratio L/A Attiecība - + + Popularity + Popularitāte + + + ETA i.e: Estimated Time of Arrival / Time left Apt. Ielādes laiks - + Category Kategorija - + Tags Atzīmes - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Pievienots - + Completed On Torrent was completed on 01/01/2010 08:00 Pabeigts - + Tracker Trakeris - + Down Limit i.e: Download limit Lejupielādes robeža - + Up Limit i.e: Upload limit Augšupielādes robeža - + Downloaded Amount of data downloaded (e.g. in MB) Lejupielādēti - + Uploaded Amount of data uploaded (e.g. in MB) Augšupielādēti - + Session Download Amount of data downloaded since program open (e.g. in MB) Lejupielādēti šajā sesijā - + Session Upload Amount of data uploaded since program open (e.g. in MB) Augšupielādēti šajā sesijā - + Remaining Amount of data left to download (e.g. in MB) Atlikuši - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktīvs jau - + + Yes + + + + + No + + + + Save Path Torrent save path Saglabāšanas vieta - + Incomplete Save Path Torrent incomplete save path Saglabāšanas vieta nepabeigtajam - + Completed Amount of data completed (e.g. in MB) Pabeigti - + Ratio Limit Upload share ratio limit L/A attiecības robeža - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Pēdējo reizi koplietots - + Last Activity Time passed since a chunk was downloaded/uploaded Pēdējā aktivitāte - + Total Size i.e. Size including unwanted data Kopējais izmērs - + Availability The number of distributed copies of the torrent Pieejamība - + Info Hash v1 i.e: torrent info hash v1 Jaucējkods v1 - + Info Hash v2 i.e: torrent info hash v2 Jaucējkods v2 - + Reannounce In Indicates the time until next trackers reannounce + Kontakts ar trakeri pēc + + + + Private + Flags private torrents + Privāts + + + + Ratio / Time Active (in months), indicates how popular the torrent is - - + + + N/A Nav zināms - + %1 ago e.g.: 1h 20m ago pirms %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (augšupielādē jau %2) @@ -11381,339 +11909,319 @@ Lūdzu izvēlieties citu nosaukumu. TransferListWidget - + Column visibility Kolonnas redzamība - + Recheck confirmation Pārbaudes apstiprināšana - + Are you sure you want to recheck the selected torrent(s)? Vai esat pārliecināts, ka vēlāties pārbaudīt izvēlētos torrentus?() - + Rename Pārdēvēt - + New name: Jaunais nosaukums: - + Choose save path Izvēlieties vietu, kur saglabāt - - Confirm pause - Apstiprināt apturēšanu - - - - Would you like to pause all torrents? - Vai vēlies apturēt visus torrentus? - - - - Confirm resume - Apstiprināt atsākšanu - - - - Would you like to resume all torrents? - Vai vēlies atsākt visus torrentus? - - - + Unable to preview Nevar priekšskatīt - + The selected torrent "%1" does not contain previewable files Izvēlētais torrents "%1" nesatur priekšskatāmus failus - + Resize columns Mainīt kolonnu izmērus - + Resize all non-hidden columns to the size of their contents Pielāgot visu kolonnu izmērus attiecīgi to saturam - + Enable automatic torrent management Ieslēgt Automātisko torrentu pārvaldību - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Vai esat drošs, ka vēlaties ieslēgt Automātisko torrentu pārvaldību priekš atlasītājiem torrentiem? Attiecīgi Auto uzstādījumiem, to saturs var tikt pārvietots. - - Add Tags - Pievienot atzīmes - - - + Choose folder to save exported .torrent files Izvēlies mapi, kur eksportēt .torrent failus - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" .torrent faila eksportēšana neizdvās: "%1". Saglabāšanas vieta: "%2". Iemesls: "%3" - + A file with the same name already exists Fails ar tādu nosaukumu jau pastāv - + Export .torrent file error .torrent faila eksportēšanas kļūda - + Remove All Tags Dzēst visas atzīmes - + Remove all tags from selected torrents? Noņemt visas atzīmes no atlasītajiem torrentiem? - + Comma-separated tags: Atdalīt atzīmes ar komatu: - + Invalid tag Nederīga atzīme - + Tag name: '%1' is invalid Atzīmes nosaukums: '%1' nav derīgs - - &Resume - Resume/start the torrent - Atsākt - - - - &Pause - Pause the torrent - Apturēt - - - - Force Resu&me - Force Resume/start the torrent - Piespiedu atsākšana - - - + Pre&view file... Priekšskatīt failu... - + Torrent &options... Torrenta iestatījumi... - + Open destination &folder Atvērt failu atrašanās vietu - + Move &up i.e. move up in the queue Novietot augstāk sarakstā - + Move &down i.e. Move down in the queue Novietot zemāk sarakstā - + Move to &top i.e. Move to top of the queue Novietot saraksta augšā - + Move to &bottom i.e. Move to bottom of the queue Novietot saraksta apakšā - + Set loc&ation... Mainīt saglabāšanas vietu... - + Force rec&heck Piespiedu pārbaude - + Force r&eannounce Piespiedu datu atjaunošana ar trakeri - + &Magnet link Magnētsaite - + Torrent &ID Torrenta ID - + &Comment - + &Komentārs - + &Name Nosaukums - + Info &hash v1 Jaucējkods v1 - + Info h&ash v2 Jaucējkods v2 - + Re&name... Pārdēvēt... - + Edit trac&kers... Rediģēt trakerus... - + E&xport .torrent... Eksportēt .torrent failu... - + Categor&y Kategorija - + &New... New category... Jauna... - + &Reset Reset category Noņemt - + Ta&gs Atzīmes - + &Add... Add / assign multiple tags... Pievienot... - + &Remove All Remove all tags Dzēst visas - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue Rindošana - + &Copy Kopēt - + Exported torrent is not necessarily the same as the imported Eksportētais torrents ne obligāti būs tāds pats kā importētais - + Download in sequential order Lejupielādēt secīgā kārtībā - + + Add tags + Pievienot birkas + + + Errors occurred when exporting .torrent files. Check execution log for details. Radās kļūda, eksportējot .torrent failus. Vairāk informācijas reģistrā. - + + &Start + Resume/start the torrent + Palai&st + + + + Sto&p + Stop the torrent + A&pstādināt + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent Dzēst - + Download first and last pieces first Vispirms ielādēt pirmās un pēdējās daļiņas - + Automatic Torrent Management Automātiska torrentu pārvaldība - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automātiskais režīms nozīmē, ka vairāki torrenta iestatījumi (piem. saglabāšanas vieta), tiks pielāgoti atbilstoši izvēlētajai kategorijai - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Nevar veikt piespiedu datu atjaunošanu ar trakeri, ja torrents ir Apturēts, Gaida Rindā, Kļūdains, vai Pārbaudes vidū. - - - + Super seeding mode Super-augšupielādēšanas režīms @@ -11758,28 +12266,28 @@ Lūdzu izvēlieties citu nosaukumu. Ikonas ID - + UI Theme Configuration. Saskarnes iestatījumi. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Saskarnes izmaiņas netika pilnībā pielāgotas. Sīkākā informācija atrodama reģistrā. - + Couldn't save UI Theme configuration. Reason: %1 Neizdevās saglabāt Saskarnes iestatījumus. Iemesls: %1 - - + + Couldn't remove icon file. File: %1. Neizdevās izdzēst ikonas failu. Fails: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Neizdevās nokopēt ikonas failu. Avots: %1. Galavieta: %2. @@ -11787,7 +12295,12 @@ Lūdzu izvēlieties citu nosaukumu. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Neizdevās ielādēt saskarni no faila: "%1" @@ -11818,20 +12331,21 @@ Lūdzu izvēlieties citu nosaukumu. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Uzstādījumu pārkopēšana neizdevās: WebUI https, fails: "%1", kļūda: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Pārkopētie uzstādījumi: WebUI https, data saglabāti failā: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Konfigurācijas failā atrasta nederīga vērtība, tiek pārmainīta uz noklusēto. Atslēga: "%1". Nederīgā vērtība: "%2". @@ -11839,34 +12353,34 @@ Lūdzu izvēlieties citu nosaukumu. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Atrasta Python izpildāmā programma. Nosaukums: "%1". Versija: "%2" - + Failed to find Python executable. Path: "%1". - + Neizdevās atrast Python izpildāmo programmu. Vieta: "%1" - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Neizdevās atrast `python3` izpildāmo failu nevienā mapē, kuras definētas PATH vides mainīgajā. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - - - - - Failed to find `python` executable in Windows Registry. - + Neizdevās atrast `python` izpildāmo failu nevienā mapē, kuras definētas PATH vides mainīgajā. PATH: "%1" + Failed to find `python` executable in Windows Registry. + Neizdevās atrast `python` izpildāmo programmu Windows reģistrā. + + + Failed to find Python executable - + Neizdevās atrast Python izpildāmo programmu @@ -11884,12 +12398,12 @@ Lūdzu izvēlieties citu nosaukumu. File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + Faila izmērs pārsniedz izmēra robežu. Fails: "%1". Faila izmērs: %2. Izmēra robeža: %3 File read error. File: "%1". Error: "%2" - + Faila atvēršanas kļūda. Fails: "%1". Kļūda: "%2" @@ -11956,72 +12470,72 @@ Lūdzu izvēlieties citu nosaukumu. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Norādīts nepieņemams sesijas cepuma nosaukums: '%1'. Tiks izmantots noklusētais. - + Unacceptable file type, only regular file is allowed. Nepieņemams faila tips, atļauts ir tikai parasts fails. - + Symlinks inside alternative UI folder are forbidden. Alternatīvās lietotāja saskarnes mapē nav atļautas simboliskās saites. - + Using built-in WebUI. - + Izmanto iebūvēto Tālvadības paneli. - + Using custom WebUI. Location: "%1". - + Izmanto pielāgotu Tālvadības paneli. Vieta: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Tālvadības paneļa tulkojums izvēlētajai valodai (%1) veiksmīgi ielādēts. - + Couldn't load WebUI translation for selected locale (%1). - + Neizdevās ielādēt Tālvadības paneļa tulkojumu izvēlētajai valodai (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Tīmekļa saskarnes (WebUI) pielāgotajā HTTP galvenē "%1" trūkst atdalītāja ':' - + Web server error. %1 - + Web servera kļūda. %1 - + Web server error. Unknown error. - + Web servera kļūda. Neatpazīstama kļūda. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Izcelsmes galvene un Mērķa izcelsme nesakrīt! Avota IP: '%1'. Izcelsmes galvene: '%2'. Mērķa izcelsme: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Atsauces galvene un Mērķa izcelsme nesakrīt! Avota IP: '%1'. Atsauces galvene: '%2'. Mērķa izcelsme: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: nederīga Resursdatora galvene, porti nesakrīt. Pieprasīt avota IP: '%1'. Servera ports: '%2'. Saņemtā Resursdatora galvene: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Nederīga Resursdatora galvene. Pieprasīt avota IP: '%1'. Saņemtā Resursdatora galvene: '%2' @@ -12029,125 +12543,133 @@ Lūdzu izvēlieties citu nosaukumu. WebUI - + Credentials are not set - + Nav iestatīti autorizācijas dati - + WebUI: HTTPS setup successful - + Tālvadības panelis: HTTPS uzstādīts veiksmīgi - + WebUI: HTTPS setup failed, fallback to HTTP - + Tālvadības panelis: HTTPS uzstādīšana neizdevās, atgriežamies pie HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Tālvadības panelis: Tagad savienots ar IP: %1, ports: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - + Neizdevās savienot ar IP: %1, ports: %2. Iemesls: %3 + + + + fs + + + Unknown error + Nezināma kļūda misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1st %2m - + %1d %2h e.g: 2 days 10 hours %1d %2st - + %1y %2d e.g: 2 years 10 days %1g %2d - - + + Unknown Unknown (size) Nezināms - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorent tagad izslēgs datoru, jo visas lejupielādes ir pabeigtas. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_mn_MN.ts b/src/lang/qbittorrent_mn_MN.ts index e3f19ddeb..f1dedb7f2 100644 --- a/src/lang/qbittorrent_mn_MN.ts +++ b/src/lang/qbittorrent_mn_MN.ts @@ -14,75 +14,75 @@ Тухай - + Authors - + Current maintainer Одоогийн хөгжүүлэгч - + Greece Грек - - + + Nationality: Улс: - - + + E-mail: Ц-шуудан: - - + + Name: Нэр: - + Original author Анхны зохиогч - + France Франц - + Special Thanks Талархал - + Translators Орчуулагчид - + License Эрх - + Software Used Хэрэглэгдсэн програмууд - + qBittorrent was built with the following libraries: qBittorrent-ийг дараах сангууд дээр тулгуурлан бүтээсэн: - + Copy to clipboard @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,14 +166,13 @@ Замд хадгалах - + Never show again Дахиж бүү харуул - Torrent settings - Торрентийн тохиргоо + Торрентийн тохиргоо @@ -191,12 +190,12 @@ Торрентыг эхлүүлэх - + Torrent information Торрентийн мэдээлэл - + Skip hash check Хеш шалгалтыг алгасах @@ -205,6 +204,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -231,75 +235,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Контентийн төлөвлөлт: - + Original Ерөнхий - + Create subfolder Дэд хавтас үүсгэх - + Don't create subfolder Дэд хавтас үүсгэхгүй - + Info hash v1: - + Size: Хэмжээ: - + Comment: Сэтгэгдэл: - + Date: Огноо: @@ -329,42 +333,42 @@ Сүүлийн сонгосон замыг санах - + Do not delete .torrent file .torrent файлыг бүү устга - + Download in sequential order Дарааллаар нь татах - + Download first and last pieces first Эхний болон сүүлийн хэсгүүдийг эхэлж татах - + Info hash v2: - + Select All - + Select None - + Save as .torrent file... .torrent файлаар хадгалах... - + I/O Error О/Г-ийн алдаа @@ -373,19 +377,19 @@ Алдаатай торрент - + Not Available This comment is unavailable Боломжгүй - + Not Available This date is unavailable Боломжгүй - + Not available Боломжгүй @@ -406,18 +410,18 @@ Error: %2 Уг соронзон холбоос танигдсангүй - + Magnet link Соронзон холбоос - + Retrieving metadata... Цөм өгөгдлийг цуглуулж байна... - - + + Choose save path Хадгалах замыг сонгох @@ -434,28 +438,28 @@ Error: %2 Торрент боловсруулах дараалалд бүртгэгдсэн байна. - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A @@ -464,33 +468,33 @@ Error: %2 Соронзон холбоос боловсруулах дараалалд бүртгэгдсэн байна. - + %1 (Free space on disk: %2) %1 (Дискний сул зай: %2) - + Not available This size is unavailable. Боломжгүй - + Torrent file (*%1) - + Save as torrent file Торрент файлаар хадгалах - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. @@ -499,17 +503,17 @@ Error: %2 '%1'-ийг татаж чадахгүй: %2 - + Filter files... - + Parsing metadata... Цөм өгөгдлийг шалгаж байна... - + Metadata retrieval complete Цөм өгөгдлийг татаж дууссан @@ -527,35 +531,35 @@ Error: %2 AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -718,120 +722,121 @@ Error: %2 AdvancedSettings - - - - + + + + MiB МиБ - + Recheck torrents on completion Торрентыг татагдаж дуусмагц шалгах - - + + ms milliseconds мс - + Setting Тохиргоо - + Value Value set for this setting Утга - + (disabled) (идэвхгүй) - + (auto) (шууд) - + + min minutes минут - + All addresses Бүх хаягууд - + qBittorrent Section qBittorrent Хэсэг - - + + Open documentation Баримт бичигтэй танилцах - + All IPv4 addresses Бүх IPv4 хаягууд - + All IPv6 addresses Бүх IPv6 хаягууд - + libtorrent Section libtorrent Хэсэг - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Хэвийн - + Below normal Хэвийнээс бага - + Medium Дундаж - + Low Бага - + Very low Маш бага @@ -840,528 +845,626 @@ Error: %2 Санах ойн ачаалал (Windows >= 8) - + Physical memory (RAM) usage limit - + Asynchronous I/O threads Асинхрон О/Г-ийн утгууд - + Hashing threads Хэшлэх утгууд - + File pool size Файлын сангийн хэмжээ - + Outstanding memory when checking torrents Торрентийг шалгах үед хэрэглэх санах ой - + Disk cache Дискний кэш - - - - + + + + + s seconds с - + Disk cache expiry interval Дискний кэшийн мөчлөг - + Disk queue size - - + + Enable OS cache Үйлдлийн системийн кэшийг идэвхжүүлэх - + Coalesce reads & writes Нийт унших & бичих - + Use piece extent affinity - + Send upload piece suggestions Хуулах нэгжийг санал болгон илгээх - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB КиБ - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark Буферийн тамга илгээх - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP TCP-г илүүд үзэх - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Олон улсын домэйн нэрс (IDN)-ийг дэмжих - + Allow multiple connections from the same IP address 1 IP хаягаас олон зэрэгцээ холбогдохыг зөвшөөрөх - + Validate HTTPS tracker certificates HTTPS дамжуулагчийн гэрчилгээг баталгаажуулж байх - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names Пеерүүдийг хост нэрээн нь эрэмблэх - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus Цэсүүдэд дүрс харуулах - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Мэдэгдэл харуулах - + Display notifications for added torrents Нэмэгдсэн торрентуудад мэдэгдэл харуулах - + Download tracker's favicon - + Save path history length Хадгалах замыг бүртгэх хэмжээ - + Enable speed graphs Хурдны үзүүлэлтийг идэвхжүүлэх - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload Дээд хурд - + Anti-leech - + Upload choking algorithm Боох алгоритмийг хуулах - + Confirm torrent recheck Торрентийг дахин-шалгахыг батлах - + Confirm removal of all tags Бүх шошгыг арилгахыг зөвшөөрөх - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface Ямар ч үзэмж - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP холимог горимт алгоритм - + Resolve peer countries - + Network interface Сүлжээний төрөл - + Optional IP address to bind to Нэмэлтээр холбох IP хаягууд - + Max concurrent HTTP announces - + Enable embedded tracker Суулгагдсан мөрдөгчийг идэвхжүүлэх нь - + Embedded tracker port Жагсаасан тракеруудын порт + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application @@ -1370,126 +1473,137 @@ Error: %2 qBittorrent %1 ачааллалаа - + Running in portable mode. Auto detected profile folder at: %1 Зөөврийн горимд ажиллаж байна. Хэрэглэгчийн хавтсыг дараах замаас илрүүллээ: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 Хэрэглэж буй тохируулгын хаяг: %1 - + 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-г хэрэглэж байгаад баярлалаа. - + + This is a test email. + + + + + Test email + + + + Torrent: %1, sending mail notification Торрент: %1, ц-шуудангаар мэдэгдэл илгээж байна - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit - + I/O Error i.e: Input/Output Error О/Г-ийн алдаа - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1497,23 +1611,23 @@ Error: %2 - + Torrent added - + '%1' was added. e.g: xxx.avi was added. - + Download completed - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. @@ -1523,17 +1637,17 @@ Error: %2 Torrent файл холбоо - + Information Мэдээлэл - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 @@ -1546,57 +1660,57 @@ Error: %2 Ачаалж чадсангүй. - + Exit Гарах - + Recursive download confirmation Рекурсив татаж авах баталгаа - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Торрентийн гүйцэтгэлийг сануулж байна... - + qBittorrent is now ready to exit @@ -1683,12 +1797,12 @@ Error: %2 - + Must Not Contain: Агуулж үл болох: - + Episode Filter: Ангийн шүүлтүүр: @@ -1696,7 +1810,7 @@ Error: %2 Smart Episode Filter will check the episode number to prevent downloading of duplicates. Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also support - as a separator) - Ангийн ухаалаг шүүлтүүр нь ангийн дугаарыг шалгаж, давхардсан анги татахаас сэргийлэх боломжыг олгоно. + Ангийн ухаалаг шүүлтүүр нь ангийн дугаарыг шалгаж, давхардсан анги татахаас сэргийлэх боломжыг олгоно. Дэмжих хэлбэржүүлэлт: S01E01, 1x1, 2017.12.31 болон 31.12.2017 (Огноон хэлбэржүүлэлтэнд мөн дундуур зураасаар бичсэнийг уншина) @@ -1781,115 +1895,115 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Гаргах... - + 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 Улирал тоо заавал тэгээс ялгаатай утга нь - + Filter must end with semicolon Цэг таслалаар төгсөх ёстой - + Three range types for episodes are supported: Тохиолдож Гурван хүрээ төрлийн дэмжигдсэн байна: - + Single number: <b>1x25;</b> matches episode 25 of season one Нэг тоо: <б> 1x25; </ B> улиралд нэг нь түүхийг 25-таарч - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Энгийн хүрээ: <б> 1x25-40b> улиралд нэг нь 40 замаар тохиолдолууд 25 таарч - + Episode number is a mandatory positive value Ангийн дугаар нь заавал бичигдсэн байх шаардлагатай - + Rules Дүрмүүд - + Rules (legacy) Дүрмүүд (өвлөгдсөн) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + 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 Дүрмийг устгахад баталгаажуулах @@ -1898,32 +2012,32 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Зааж өгөх газар - + Invalid action Буруу үйлдэл байна - + The list is empty, there is nothing to export. Жагсаалт хоосон байгаа учир гаргах зүйл олдсонгүй. - + Export RSS rules RSS дүрмүүдийг гаргах - + I/O Error О/Г-ын алдаа - + Failed to create the destination file. Reason: %1 Байршлын файлыг үүсгэж чадсангүй. Шалтгаан: %1 - + Import RSS rules RSS дүрмүүдийг оруулах @@ -1936,120 +2050,120 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Оруулалтын алдаа - + Failed to import the selected rules file. Reason: %1 Сонгогдсон дүрмийн файлыг оруулж чадсангүй. Шалтгаан: %1 - + Add new rule... Шинэ дүрэм нэмэх... - + Delete rule Дүрэмийг устгах - + Rename rule... Дүрмийн нэрийг өөрчлөх... - + Delete selected rules Сонгогдсон дүрмүүдийг устгах - + Clear downloaded episodes... Татагдсан ангиудыг арилгах... - + Rule renaming Дүрмийн нэрийг нь өөрчилснөөр - + Please type the new rule name Шинэ дүрэм нэрийг оруулна уу - + Clear downloaded episodes Татагдсан ангиудыг арилгах - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Сонгогдсон дүрэмд хамаарах татагдсан ангиудын жагсаалтыг цэвэрлэх гэж байгаадаа итгэлтэй байна уу? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 %1 байршил: %2 - + Wildcard mode: you can use Тусгай тэмдэгтийн горим: хэрэглэж болох - - + + Import error - + Failed to read the file. %1 - + ? to match any single character Дурын 1 тэмдэгтийг илэрхийлэхэд ? - + * to match zero or more of any characters Дурын тооны тэмдэгтүүдийг илэрхийлэхэд * - + Whitespaces count as AND operators (all words, any order) Хоосон зайг БА нөхцөлтэй адилтгана (дараалал хамаарахгүй, бүх үгэнд) - + | is used as OR operator | тэмдэгтийг ЭСВЭЛ нөхцөлтэй адилтгана - + If word order is important use * instead of whitespace. Үгсийн дарааллыг чухалчлах бол хоосон зайны оронд * хэрэглээрэй. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. бүх нийтлэлд хамаарна. - + will exclude all articles. бүх нийтлэлд үл хамаарна. @@ -2091,7 +2205,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -2101,28 +2215,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2133,16 +2257,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2150,38 +2275,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2189,22 +2336,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2212,209 +2359,184 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED ХҮЧИТГЭСЭН - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 @@ -2437,250 +2559,321 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also %1-ийн сүлжээний тохируулга өөрчлөгдлөө, холболтыг шинэчлэж байна - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - - - - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + + Duplicate torrent + + + + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2696,13 +2889,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2710,67 +2903,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2791,189 +2984,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - + [options] [(<filename> | <url>)...] - + Options: - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Хеш шалгалтыг алгасах - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first Эхний болон сүүлийн хэсгүүдийг эхэлж татах - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Тусламж @@ -3025,13 +3218,21 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Торрентуудыг үргэлжлүүлэх + Start torrents + + Stop torrents + + + + Resume torrents + Торрентуудыг үргэлжлүүлэх + + Pause torrents - Торрентуудыг зогсоох + Торрентуудыг зогсоох @@ -3042,15 +3243,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset + + + System + + CookiesDialog @@ -3091,12 +3297,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -3104,7 +3310,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -3123,23 +3329,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3152,12 +3358,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3167,12 +3373,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Татах - + No URL entered - + Please type at least one URL. @@ -3331,25 +3537,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Уг торрент хэдийн ачааллагдсан байна - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3357,38 +3586,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. @@ -3396,17 +3625,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3447,26 +3676,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Нээх... - + Reset - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3498,13 +3761,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3513,60 +3776,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3583,404 +3846,472 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Засах - + &Tools &Багажууд - + &File &Файл - + &Help &Тусламж - + On Downloads &Done - + &View &Харах - + &Options... &Тохиргоо... - &Resume - &Үргэлжлүүлэх + &Үргэлжлүүлэх - + &Remove - + Torrent &Creator - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + Status &Bar - + Filters Sidebar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + Do&nate! - + + Sh&utdown System + + + + &Do nothing - + Close Window - R&esume All - Б&үгдийг нь үргэлжлүүлэх + Б&үгдийг нь үргэлжлүүлэх - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue Дарааллын төгсгөл - + Move to the bottom of the queue Дарааллыг төгсгөлд аваачих - + Top of Queue Дарааллын эхлэл - + Move to the top of the queue Дараалын эхэнд аваачих - + Move Down Queue Дарааллыг ухраах - + Move down in the queue Дараалал дунд ухраах - + Move Up Queue Дарааллыг урагшлуулах - + Move up in the queue Дараалалд дунд урагшлуулах - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - - S&hutdown System - - - - + &Statistics - + Check for Updates - + Check for Program Updates - + &About &Тухай - &Pause - &Завсарлах + &Завсарлах - P&ause All - Бүгдийг нь түр зогсоох + Бүгдийг нь түр зогсоох - + &Add Torrent File... - + Open Нээх - + E&xit - + Open URL УРЛ нээх - + &Documentation Бичиг баримт - + Lock Түгжих - - - + + + Show Харуулах - + Check for program updates Программын шинэчлэлийг шалгах - + Add Torrent &Link... - + If you like qBittorrent, please donate! Танд qBittorrent таалагдаж байвал хандив өргөнө үү! - - + + Execution Log Гүйцэтгэх Нэвтрэх - + Clear the password нууц үг арилгах - + &Set Password - + Preferences - + &Clear Password - + Transfers Шилжүүлгүүд - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only Зөвхөн Иконууд - + Text Only Зөвхөн бичиг - + Text Alongside Icons Дүрснүүдийг хажуугаар Текст - + Text Under Icons Текст дагуу дүрс - + Follow System Style Системийн Style дагаарай - - + + UI lock password UI нууц цоож - - + + Please type the UI lock password: UI цоож нууц үгээ оруулна уу: - + Are you sure you want to clear the password? Та нууц үгээ чөлөөлөхийн тулд хүсэж Та итгэлтэй байна уу? - + Use regular expressions Тогтмол хэллэг ашиглах - + + + Search Engine + Хайлт + + + + Search has failed + + + + + Search has finished + + + + Search Хайх - + Transfers (%1) Шилжүүлэг (% 1) + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + Recursive download confirmation Рекурсив татаж авах баталгаа @@ -3990,180 +4321,210 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Хэзээч - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? qBittorrent-ийг хаахдаа итгэлтэй байна уу? - + &No - + &Yes - + &Always Yes - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Missing Python Runtime - + qBittorrent Update Available - + 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. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. - + &Check for Updates - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + + + + Checking for Updates... - + Already checking for program updates in the background Аль хэдийн цаана нь програмын шинэчлэлийг шалгах - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Торрент татах - Python setup could not be downloaded, reason: %1. Please install it manually. - Python setup could not be downloaded, reason: %1. + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Буруу нууц үг - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) - + 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 @@ -4174,22 +4535,22 @@ Please install it manually. [D: %1, U: %2] qBittorrent %3 - + Hide Нуух - + Exiting qBittorrent qBittorrent гарах - + Open Torrent Files Торрент файлуудыг нээх - + Torrent Files Торрент файлууд @@ -4385,7 +4746,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5679,47 +6045,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5757,486 +6123,514 @@ Please install it manually. BitTorrent - + RSS RSS - Web UI - Веб ХИ + Веб ХИ - + Advanced - + Customize UI Theme... - + Transfer List - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always Үргэлж - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - - - - - + + Open destination folder - - + + No action - + Completed torrents: - + Auto hide zero status filters - + Desktop - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB КиБ - + + Show free disk space in status bar + + + + Torrent content layout: Торрентийн контент төлөвлөлт: - + Original Анхны загвар - + Create subfolder Дэд хавтас үүсгэх - + Don't create subfolder Дэд хавтас үүсгэхгүй - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time Эхлэх: - + To: To end time Дуусах: - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS Уншигч - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: - - - + + + min minutes минут - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent and its files - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) Веб Хэрэглэгчийн Интерфейс (Зайнаас удирдах) - + IP address: IP хаяг: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Үгүй - + ban for: - + Session timeout: - + Disabled Идэвхгүй - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: Серверийн домэйнууд: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6245,441 +6639,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost localhost дээр хэрэглэгчийн хандалтыг бүртгэл баталгаажуулалгүй зөвшөөрөх - + Bypass authentication for clients in whitelisted IP subnets Цагаан жагсаалтан дахь IP сабнетүүдийн хандалтыг бүртгэл баталгаажуулалгүй зөвшөөрөх - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + Хайх + + + + WebUI + + + + Interface - + Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Хэвийн - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates Программын шинэчлэлийг шалгах - + Power Management - + + &Log Files + + + + Save path: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management Хадгалалт зохион байгуулалт - + Default Torrent Management Mode: - + Manual Гараар - + Automatic Шууд - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: .torrent файлуудыг хуулах: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: Татаж дууссаны дараа .torrent файлуудыг хуулах: - + Pre-allocate disk space for all files Бүх файлд шаардлагатай зайг урьдчилж өмчлөх - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Дуусаагүй байгаа файлуудад .!qB өргөтгөл оноох - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: Торрентуудыг шууд нэмж байх: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6696,766 +7131,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver Дуусах: - + SMTP server: SMTP сервер: - + Sender - + From: From sender Эхлэх: - + This server requires a secure connection (SSL) Энэ сервер хамгаалалттай холболт (SSL) шаардана - - + + Authentication Бүртгэл - - - - + + + + Username: Хэрэглэгчийн нэр: - - - - + + + + Password: Нууц үг: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP болон μTP - + Listening Port Чагнах оролт - + Port used for incoming connections: Гаднаас ирэх холболтуудад хэрэглэгдэх оролт: - + Set to 0 to let your system pick an unused port - + Random - + Use UPnP / NAT-PMP port forwarding from my router Рүтэрийн UPnP / NAT-PMP оролт дамжуулгыг хэрэглэх - + Connections Limits Холболтуудын хязгаар - + Maximum number of connections per torrent: Торрент бүрт харгалзах холболтын дээд хэмжээ: - + Global maximum number of connections: Ерөнхий холболтын зөвшөөрөгдөх дээд хэмжээ: - + Maximum number of upload slots per torrent: Торрент тус бүрт харгалзах оролтын дээд хэмжээ: - + Global maximum number of upload slots: Илгээлтийн оролтуудын ерөнхий хэмжээ: - + Proxy Server Прокси сервер - + Type: Төрөл: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Хост: - - - + + + Port: Оролт: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): Замыг шүүх (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... Хэрэглэгчийн хориглосон IP хаягууд... - + Apply to trackers - + Global Rate Limits Зэргийн ерөнхий хязгаарууд - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s - - + + Upload: Илгээлт: - - + + Download: Таталт: - + Alternative Rate Limits Ялгаатай зэргийн хязгаарлалтууд: - + Start time - + End time - + When: Хэзээ: - + Every day Өдөр бүр - + Weekdays Ажлын өдрүүдэд - + Weekends Амралтын өдрүүдэд - + Rate Limits Settings Зэргийн хязгаарлалтын тохиргоо - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: - + Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: - + Register - + Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name - + %L: Category - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences - + Time Error Цаг Алдаа - + The start time and the end time can't be the same. - - + + Length Error @@ -7467,85 +7947,90 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Тодорхойгүй - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region @@ -7554,158 +8039,158 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not IP - + IP/Address - + Port Порт - + Flags Туг - + Connection Холболтууд - + Client i.e.: Client application Үлйчлүүлэгч - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. Хамааралтай - + Files i.e. files that are being downloaded right now - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A - + Copy IP:port @@ -7723,7 +8208,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port @@ -7764,27 +8249,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7797,58 +8282,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Installed search plugins: - + Name - + Version - + Url - - + + Enabled - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - + Check for updates Программын шинэчлэлийг шалгах - + Close - + Uninstall @@ -7967,98 +8452,65 @@ Those plugins were disabled. Плугын эх - + Search plugin source: Хайлтын плугын: - + Local file Локал файл - + Web link Веб хаяг - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Харах - + Name - + Size - + Progress Явц - + Preview impossible - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8071,27 +8523,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -8132,12 +8584,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: - + Availability: @@ -8152,53 +8604,53 @@ Those plugins were disabled. - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + ETA: - + Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: @@ -8208,193 +8660,220 @@ Those plugins were disabled. - + Information Мэдээлэл - + Info Hash v1: - + Info Hash v2: - + Comment: Сэтгэгдэл: - + Select All - + Select None - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + + Private: + + + + Save Path: - + Never Үгүй - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - - + + %1 (%2 this session) - - + + + N/A - + + Yes + Тийм + + + + No + Үгүй + + + %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.) - - New Web seed + + Add web seed + Add HTTP source - - Remove Web seed + + Add web seed: - - Copy Web seed URL + + + This web seed is already in the list. - - Edit Web seed URL - - - - + Filter files... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8421,33 +8900,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8455,22 +8934,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8506,12 +8985,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8519,103 +8998,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + + + + + Refresh interval: + + + + + sec + + + + + Default + + + RSSWidget @@ -8635,8 +9155,8 @@ Those plugins were disabled. - - + + Mark items read @@ -8661,132 +9181,115 @@ Those plugins were disabled. - - + + Delete Устгах - + Rename... Нэр солих... - + Rename - - + + Update - + New subscription... - - + + Update all feeds - + Download torrent - + Open news URL - + Copy feed URL - + New folder... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name - + Folder name: - + New folder - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: - + Rename failed - + Date: - + Feed: - + Author: @@ -8794,38 +9297,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8900,132 +9403,142 @@ Those plugins were disabled. Хэмжээ: - + 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 - - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere - + Use regular expressions Тогтмол хэллэг ашиглах - + Open download window - + Download Татах - + Open description page - + Copy Хуулбарлах - + Name - + Download link - + Description page URL - + Searching... - + Search has finished - + Search aborted - + An error occurred during search... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -9033,104 +9546,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories - + Movies - + TV shows - + Music - + Games - + Anime - + Software - + Pictures - + Books - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -9140,112 +9653,143 @@ Those plugins were disabled. - - - - Search Хайх - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... - - - + + Search Engine Хайлт - + + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - + + Stop + + + SearchWidget::DataStorage - - Search has finished + + Failed to load Search UI saved state data. File: "%1". Error: "%2" - - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" @@ -9359,34 +9903,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Илгээлт: - - - + + + - - - + + + KiB/s - - + + Download: Таталт: - + Alternative speed limits Ялгаатай хурдны хязгаарлалтууд @@ -9578,32 +10122,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -9618,12 +10162,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9642,51 +10186,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes - + qBittorrent needs to be restarted! - - - + + + Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9716,12 +10286,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) + Running (0) - Paused (0) + Stopped (0) @@ -9784,9 +10354,24 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) + + + Running (%1) + + - Paused (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents @@ -9795,25 +10380,18 @@ Click the "Search plugins..." button at the bottom right of the window - Resume torrents - Торрентуудыг үргэлжлүүлэх + Торрентуудыг үргэлжлүүлэх - Pause torrents - Торрентуудыг зогсоох + Торрентуудыг зогсоох Remove torrents - - - Resumed (%1) - - Active (%1) @@ -9886,14 +10464,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resume torrents - Торрентуудыг үргэлжлүүлэх + Торрентуудыг үргэлжлүүлэх - Pause torrents - Торрентуудыг зогсоох + Торрентуудыг зогсоох @@ -9901,8 +10477,13 @@ Click the "Search plugins..." button at the bottom right of the window - - New Tag + + Start torrents + + + + + Stop torrents @@ -9910,6 +10491,11 @@ Click the "Search plugins..." button at the bottom right of the window Tag: + + + Add tag + + Invalid tag name @@ -10053,32 +10639,32 @@ Please choose a different name and try again. TorrentContentModel - + Name - + Progress Явц - + Download Priority - + Remaining - + Availability - + Total Size @@ -10123,98 +10709,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + New name: Шинэ нэр: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Нээх - + Open containing folder - + Rename... Нэр солих... - + Priority Ээлж - - + + Do not download Бүү тат - + Normal Хэвийн - + High Их - + Maximum Маш их - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10222,17 +10808,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10261,13 +10847,13 @@ Please choose a different name and try again. - + Select file - + Select folder @@ -10342,83 +10928,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: - + Comments: - + Source: - + Progress: - + Create Torrent - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator - + Torrent created: @@ -10426,32 +11012,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10459,27 +11045,27 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" @@ -10487,14 +11073,8 @@ Please choose a different name and try again. TorrentInfo - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - Invalid metadata - Алдаатай цөм өгөгдөл + Алдаатай цөм өгөгдөл @@ -10525,173 +11105,161 @@ Please choose a different name and try again. - + Category: Ангилал: - - Torrent speed limits + + Torrent Share Limits - + Download: Таталт: - - + + - - + + Torrent Speed Limits + + + + + KiB/s - + These will not exceed the global limits - + Upload: Илгээлт: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Дарааллаар нь татах - + Disable PeX for this torrent - + Download first and last pieces first Эхний болон сүүлийн хэсгүүдийг эхэлж татах - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Хадгалах замыг сонгох - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes минут - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10704,32 +11272,32 @@ Please choose a different name and try again. - - New Tag + + Add tag - + Tag: - + Invalid tag name - + Tag name '%1' is invalid. - + Tag exists - + Tag name already exists. @@ -10737,115 +11305,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category Ангилал үүсгэж чадсангүй - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -10871,118 +11454,113 @@ Please choose a different name and try again. TrackerListModel - + Working - + Disabled Идэвхгүй - + Disabled for this torrent - + This torrent is private - + N/A - + Updating... - + Not working - + Tracker error - + Unreachable - + Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - - - - - Peers - - - - - Seeds - - - - - Leeches - - - - - Times Downloaded - - - - - Message - - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + + + Tier + + + + + Status + + + + + Peers + + + + + Seeds + + + + + Leeches + + + + + Times Downloaded + + + + + Message @@ -10993,78 +11571,78 @@ Please choose a different name and try again. Идэвхгүй - + This torrent is private - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility @@ -11082,37 +11660,37 @@ Please choose a different name and try again. - + µTorrent compatible list URL: - + Download trackers list - + Add Нэмэх - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -11125,62 +11703,70 @@ Please choose a different name and try again. Бүгд (0) - + Warning (%1) - + Trackerless (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker - + + Start torrents + + + + + Stop torrents + + + Resume torrents - Торрентуудыг үргэлжлүүлэх + Торрентуудыг үргэлжлүүлэх - Pause torrents - Торрентуудыг зогсоох + Торрентуудыг зогсоох - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Бүгд (%1) @@ -11189,7 +11775,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11281,11 +11867,6 @@ Please choose a different name and try again. 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. - - - Paused - - Completed @@ -11309,220 +11890,252 @@ Please choose a different name and try again. - + Name i.e: torrent name - + Size i.e: torrent size - + Progress % Done Явц - - Status - Torrent status (e.g. downloading, seeding, paused) + + Stopped - + + Status + Torrent status (e.g. downloading, seeding, stopped) + + + + Seeds i.e. full sources (often untranslated) - + Peers i.e. partial sources (often untranslated) - + Down Speed i.e: Download speed Татах хурд - + Up Speed i.e: Upload speed Түгээх хурд - + Ratio Share ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left - + Category - + Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 - + Completed On Torrent was completed on 01/01/2010 08:00 - + Tracker - + Down Limit i.e: Download limit - + Up Limit i.e: Upload limit - + Downloaded Amount of data downloaded (e.g. in MB) Татагдсан - + Uploaded Amount of data uploaded (e.g. in MB) Түгээсэн - + 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) - + Remaining Amount of data left to download (e.g. in MB) - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + + Yes + Тийм + + + + No + Үгүй + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded - + Total Size i.e. Size including unwanted data - + Availability The number of distributed copies of the torrent - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A - + %1 ago e.g.: 1h 20m ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) @@ -11531,339 +12144,329 @@ Please choose a different name and try again. TransferListWidget - + Column visibility - + Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? - + Rename - + New name: Шинэ нэр: - + Choose save path Хадгалах замыг сонгох - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags - + Remove all tags from selected torrents? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - &Resume Resume/start the torrent - &Үргэлжлүүлэх + &Үргэлжлүүлэх - &Pause Pause the torrent - &Завсарлах + &Завсарлах - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Дарааллаар нь татах - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Эхний болон сүүлийн хэсгүүдийг эхэлж татах - + Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode @@ -11908,28 +12511,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11937,7 +12540,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11968,20 +12576,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11989,32 +12598,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -12158,72 +12767,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12231,125 +12840,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Үл мэдэх алдаа + + misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second /s - + %1s e.g: 10 seconds - + %1m e.g: 10 minutes - + %1h %2m e.g: 3 hours 5 minutes - + %1d %2h e.g: 2 days 10 hours - + %1y %2d e.g: 2 years 10 days - - + + Unknown Unknown (size) Тодорхойгүй - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute diff --git a/src/lang/qbittorrent_ms_MY.ts b/src/lang/qbittorrent_ms_MY.ts index f796a35c1..95c7d88ed 100644 --- a/src/lang/qbittorrent_ms_MY.ts +++ b/src/lang/qbittorrent_ms_MY.ts @@ -14,75 +14,75 @@ Perihal - + Authors - + Current maintainer Penyelenggaran semasa - + Greece Yunani - - + + Nationality: Kerakyatan: - - + + E-mail: E-mel: - - + + Name: Nama: - + Original author Pengarang asal - + France Perancis - + Special Thanks Penghargaan Istimewa - + Translators Penterjemah - + License Lesen - + Software Used Perisian Digunakan - + qBittorrent was built with the following libraries: qBittorrent telah dibina dengan pustaka berikut: - + Copy to clipboard @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Disimpan di - + Never show again Jangan sesekali tunjuk lagi - - - Torrent settings - Tetapan Torrent - Set as default category @@ -191,12 +186,12 @@ Mula torrent - + Torrent information Maklumat torrent - + Skip hash check Langkau semakan cincangan @@ -205,6 +200,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Bentangan kandungan: - + Original Asal - + Create subfolder Cipta subfolder - + Don't create subfolder Jangan cipta subfolder - + Info hash v1: - + Size: Saiz: - + Comment: Ulasan: - + Date: Tarikh: @@ -329,147 +329,147 @@ Ingat laluan simpan simpan terakhir digunakan - + Do not delete .torrent file Jangan padam fail .torrent - + Download in sequential order Muat turun dalam tertib berjujukan - + Download first and last pieces first Muat turn cebisan pertama dan terakhir dahulu - + Info hash v2: - + Select All Pilih Semua - + Select None Pilih Tiada - + Save as .torrent file... Simpan sebagai fail .torrent... - + I/O Error Ralat I/O - + Not Available This comment is unavailable Tidak Tersedia - + Not Available This date is unavailable Tidak Tersedia - + Not available Tidak tersedia - + Magnet link Pautan magnet - + Retrieving metadata... Mendapatkan data meta... - - + + Choose save path Pilih laluan simpan - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A T/A - + %1 (Free space on disk: %2) %1 (Ruang bebas dalam cakera: %2) - + Not available This size is unavailable. Tidak tersedia - + Torrent file (*%1) - + Save as torrent file Simpan sebagai fail torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Tapis fail... - + Parsing metadata... Menghurai data meta... - + Metadata retrieval complete Pemerolehan data meta selesai @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Semak semula torrent seusai lengkap - - + + ms milliseconds ms - + Setting Tetapan - + Value Value set for this setting Nilai - + (disabled) (dilumpuhkan) - + (auto) (auto) - + + min minutes min - + All addresses Semua alamat - + qBittorrent Section Seksyen qBittorrent - - + + Open documentation Buka dokumentasi - + All IPv4 addresses Semua alamat IPv4 - + All IPv6 addresses Semua alamat IPv6 - + libtorrent Section Seksyen libtorrent - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Biasa - + Below normal Bawah biasa - + Medium Sederhana - + Low Rendah - + Very low Sangat rendah - + Physical memory (RAM) usage limit - + Asynchronous I/O threads Jaluran i/O tak segerak - + Hashing threads - + File pool size Saiz kolam fail - + Outstanding memory when checking torrents Ingatan belum jelas bila memeriksa torrent - + Disk cache Cache cakera - - - - + + + + + s seconds s - + Disk cache expiry interval Sela luput cache cakera - + Disk queue size - - + + Enable OS cache Benarkan cache OS - + Coalesce reads & writes baca & tulis bertaut - + Use piece extent affinity Guna afiniti tambahan cebisan - + Send upload piece suggestions Hantar cadangan cebisan muat naik - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Lalai - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark Hantar tera air penimbal - + Send buffer low watermark Hantar tera air penimbal rendah - + Send buffer watermark factor Hantar faktor tera air penimbal - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Saiz log belakang soket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP Utamakan TCP - + Peer proportional (throttles TCP) Perkadaran rakan (TCP berdikit) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address Benarkan sambungan berbilang daripada alamat IP yang sama - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names Lerai nama hos rakan - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + saat + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Papar pemberitahuan - + Display notifications for added torrents Papar pemberitahuan untuk torrent yang ditambah - + Download tracker's favicon Muat turun favicon penjejak - + Save path history length Panjang sejarah laluan simpan - + Enable speed graphs Benarkan graf kelajuan - + Fixed slots Slot tetap - + Upload rate based Muat naik berasaskan penarafan - + Upload slots behavior Kelakuan slot muat naik - + Round-robin Round-robin - + Fastest upload Muat naik terpantas - + Anti-leech Anti-penyedut - + Upload choking algorithm Algoritma pencekik muat naik - + Confirm torrent recheck Sahkan semakan semula torrent - + Confirm removal of all tags Sahkan pembuangan semua tag - + Always announce to all trackers in a tier Sentiasa umum kepada semua penjejak dalam satu peringkat - + Always announce to all tiers Sentiasa umum kepada semua peringkat - + Any interface i.e. Any network interface Mana-mana antaramuka - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritma mod bercampur %1-TCP - + Resolve peer countries Lerai negara rakan - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Benarkan penjejak terbenam - + Embedded tracker port Port penjejak terbenam + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Berjalan dalam mod mudah alih. Auto-kesan folder profil pada: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Bendera baris perintah berulang dikesan: "%1". Mod mudah alih melaksanakan sambung semula pantas secara relatif. - + Using config directory: %1 Menggunakan direktori konfig: %1 - + Torrent name: %1 Nama torrent: %1 - + Torrent size: %1 Saiz torrent: %1 - + Save path: %1 Laluan simpan: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent telah dimuat turun dalam %1. - + + Thank you for using qBittorrent. Terima kasih kerana menggunakan qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, menghantar pemberitahuan mel - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit Ke&luar - + I/O Error i.e: Input/Output Error Ralat I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ Sebab: %2 - + Torrent added Torrent ditambah - + '%1' was added. e.g: xxx.avi was added. '%1' telah ditambah. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' telah selesai dimuat turun. - + Information Maklumat - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation Pengesahan muat turun rekursif - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Tidak Sesekali - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Menyimpan kemajuan torrent... - + qBittorrent is now ready to exit @@ -1605,12 +1715,12 @@ Sebab: %2 - + Must Not Contain: Tidak Boleh Kandungi: - + Episode Filter: Penapis Episod: @@ -1662,263 +1772,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Eksport... - + Matches articles based on episode filter. Artikel sepadan berdasarkan penapis episod. - + Example: Contoh: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match akan padankan 2, 5, 8 menerusi 15, 30 dan episod seterusnya bagi musim pertama - + Episode filter rules: Peraturan penapis episod: - + Season number is a mandatory non-zero value Bilangan musim adalah nilai bukan-sifar yang mandatori - + Filter must end with semicolon Penapis mesti diakhir dengan tanda titik bertindih - + Three range types for episodes are supported: Tiga jenis julat untuk episod disokong: - + Single number: <b>1x25;</b> matches episode 25 of season one Nombor tunggal: <b>1x25;</b> sepadan episod 25 bagi musim pertama - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Julat biasa: <b>1x25-40;</b> sepadan 25 hingga 40 episod bagi musim pertama - + Episode number is a mandatory positive value Bilangan episod adalah nilai positif yang mandatori - + Rules Peraturan - + Rules (legacy) Peraturan (lama) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Julat tak terhingga: <b>1x25-;</b> sepadan 25 episod dan ke atas bagi musim pertama, dan semua episod bagi musim berikutnya - + Last Match: %1 days ago Padanan Terakhir: %1 hari yang lalu - + Last Match: Unknown Padanan Terakhir: Tidak diketahui - + New rule name Nama peraturan baharu - + Please type the name of the new download rule. Sila taip nama bagi peraturan muat turun baharu. - - + + Rule name conflict Nama peraturan berkonflik - - + + A rule with this name already exists, please choose another name. Satu nama peraturan dengan nama ini telah wujud, sila pilih nama lain. - + Are you sure you want to remove the download rule named '%1'? Anda pasti mahu buang peraturan muat turun bernama '%1'? - + Are you sure you want to remove the selected download rules? Anda pasti mahu buang peraturan muat turun terpilih? - + Rule deletion confirmation Pengesahan pemadaman peraturan - + Invalid action Tindakan tidak sah - + The list is empty, there is nothing to export. Senarai kosong, tiada apa hendak dieksportkan. - + Export RSS rules Eksport peraturan RSS - + I/O Error Ralat I/O - + Failed to create the destination file. Reason: %1 Gagal mencipta fail destinasi. Sebab: %1 - + Import RSS rules Import peraturan RSS - + Failed to import the selected rules file. Reason: %1 Gagal mengimport fail peraturan terpilih. Sebab: %1 - + Add new rule... Tambah peraturan baharu... - + Delete rule Padam peraturan - + Rename rule... Nama semula peraturan... - + Delete selected rules Padam peraturan terpilih - + Clear downloaded episodes... Kosongkan episod dimuat turun... - + Rule renaming Penamaan semula peraturan - + Please type the new rule name Sila taip nama peraturan yang baharu - + Clear downloaded episodes Kosongkan episod dimuat turun - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Anda pasti mahu kosongkan senarai episod dimuat turun untuk peraturan terpilih? - + Regex mode: use Perl-compatible regular expressions Mod ungkapan nalar: guna ungkapan nalar serasi-Perl - - + + Position %1: %2 Kedudukan %1: %2 - + Wildcard mode: you can use Mod kad liar: anda boleh gunakan - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? untuk padankan mana-mana aksara tunggal - + * to match zero or more of any characters * untuk padankan sifar atau lagi mana-mana aksara - + Whitespaces count as AND operators (all words, any order) Kiraan ruang putih dan operator AND (semua perkataan, mana-mana tertib) - + | is used as OR operator digunakan sebagai operator OR - + If word order is important use * instead of whitespace. Jika tertib perkataan adalah mustahak guna * selain dari ruang putih. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Satu ungkapan dengan klausa %1 kosong (seperti %2) - + will match all articles. akan padankan semua artikel. - + will exclude all articles. akan asingkan semua artikel. @@ -1960,7 +2070,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Tidak dapat mencipta folder sambung semula torrent: "%1" @@ -1970,28 +2080,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2002,16 +2122,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Tidak dapat menyimpan data ke dalam '%1'. Ralat: %2 @@ -2019,38 +2140,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2058,22 +2201,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2081,457 +2224,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON HIDUP - - - - - - - - - + + + + + + + + + OFF MATI - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED DIPAKSA - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2547,13 +2736,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2561,67 +2750,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Gagal menambah rakan "%1" ke torrent "%2". Sebab: %3 - + Peer "%1" is added to torrent "%2" Rakan "%1" telah ditambah ke dalam torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' Muat turun cebisan pertama dan terakhir dahulu: %1, torrent: '%2' - + On Hidup - + Off Mati - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Gagal menamakan semula fail. Torrent: "%1", fail: "%2", sebab: "%3" - + Performance alert: %1. More info: %2 @@ -2642,189 +2831,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' mesti ikuti sintak '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' mesti ikuti sintak '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Dijangka nombor integer dalam pembolehubah persekitaran '%1', tetapi dapat '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' mesti ikuti sintak '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Dijangka %1 dalam pembolehubah persekitaran '%2', tetapi dapat '%3' - - + + %1 must specify a valid port (1 to 65535). %1 mestilah nyatakan port yang sah (1 hingga 65535). - + Usage: Penggunaan: - + [options] [(<filename> | <url>)...] - + Options: Pilihan: - + Display program version and exit Papar versi program kemudian keluar - + Display this help message and exit Papar mesej bantuan ini kemudian keluar - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' mesti ikuti sintak '%1=%2' + + + Confirm the legal notice - - + + port port - + Change the WebUI port - + Change the torrenting port - + Disable splash screen Lumpuhkan skrin percikan - + Run in daemon-mode (background) Jalankan dalam mod-daemon (disebalik tabir) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Simpan fail konfigurasi dalam <dir> - - + + name nama - + Store configuration files in directories qBittorrent_<name> Simpan fail konfigurasi dalam direktori qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Godam ke dalam fail fastresume libtorrent dan buat laluan fail yang relatif dengan direktori profil - + files or URLs fail atau URL - + Download the torrents passed by the user Muat turun torrent diluluskan oleh pengguna - + Options when adding new torrents: Pilihan bila menambah torrent baharu: - + path laluan - + Torrent save path Laluan simpan Torrent - - Add torrents as started or paused - Tambah torrent sebagai dimulakan atau dijeda + + Add torrents as running or stopped + - + Skip hash check Langkau semakan cincangan - + Assign torrents to category. If the category doesn't exist, it will be created. Umpuk torrent dengan kategori. Jika kategori tidak wujuf, ia akan diciptakan. - + Download files in sequential order Muat turun fail dalam tertib berjujukan - + Download first and last pieces first Muat turn cebisan pertama dan terakhir dahulu - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Nyatakan sama ada dialog "Tambah Torrent Baharu" dibuka ketika menambah sebuah torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Nilai pilihan boleh dibekalkan melalui pembolehubah persekitaran. Untuk pilihan bernama 'parameter-name', nama pembolehubah persekitaran ialah 'QBT_PARAMETER_NAME' (dalam huruf besar, '-' diganti dengan '_'). Untuk melepasi nilai bendera, tetapkan pembolehubah ke '1' atau 'TRUE'. Sebagai contoh, untuk lumpuhkan skrin percikan: - + Command line parameters take precedence over environment variables Parameter baris perintah mengambil alih pembolehubah persekitaran - + Help Bantuan @@ -2876,13 +3065,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Sambung semula torrent + Start torrents + - Pause torrents - Jeda torrent + Stop torrents + @@ -2893,15 +3082,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset Tetap Semula + + + System + + CookiesDialog @@ -2942,12 +3136,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2955,7 +3149,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2974,23 +3168,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3003,12 +3197,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Muat turun dari URL - + Add torrent links Tambah pautan torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Satu pautan per baris (pautan HTTP, pautan Magnet dan cincangan-maklumat disokong) @@ -3018,12 +3212,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Muat turun - + No URL entered Tiada URL dimasukkan - + Please type at least one URL. Sila taip sekurang-kurangnya satu URL. @@ -3182,25 +3376,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Ralat Menghurai: Fail penapis bukan fail P2B PeerGuardian yang sah. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrent sudah ada - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3208,38 +3425,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Saiz fail pengkalan data tidak disokong. - + Metadata error: '%1' entry not found. Ralat data meta: masukan '%1' tidak ditemui. - + Metadata error: '%1' entry has invalid type. Ralat data meta: masukan '%1' mempunyai jenis yang tidak sah. - + Unsupported database version: %1.%2 Versi pangkalan data tidak disokong: %1.%2 - + Unsupported IP version: %1 Versi IP tidak disokong: %1 - + Unsupported record size: %1 Saiz rekod tidak disokong: %1 - + Database corrupted: no data section found. Pangkalan data telah rosak: tiada seksyen data ditemui. @@ -3247,17 +3464,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Permintaan Http teruk, menutup soket. IP: %1 @@ -3298,26 +3515,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Layar... - + Reset Tetap Semula - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3349,13 +3600,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned %1 telah disekat @@ -3364,60 +3615,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 bukanlah parameter baris perintah yang tidak diketahui. - - + + %1 must be the single command line parameter. %1 mestilah parameter baris perintah tunggal. - + Run application with -h option to read about command line parameters. Jalankan aplikasi dengan pilihan -h untuk baca berkenaan parameter baris perintah. - + Bad command line Baris perintah teruk - + Bad command line: Baris perintah teruk: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3430,607 +3681,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Sunting - + &Tools &Alat - + &File &Fail - + &Help &Bantuan - + On Downloads &Done Jika Muat Turun &Selesai - + &View &Lihat - + &Options... &Pilihan... - - &Resume - Sa&mbung Semula - - - + &Remove - + Torrent &Creator Pen&cipta Torrent - - + + Alternative Speed Limits Had Kelajuan Alternatif - + &Top Toolbar Palang Ala&t Atas - + Display Top Toolbar Papar Palang Alat Atas - + Status &Bar &Palang Status - + Filters Sidebar - + S&peed in Title Bar Ke&lajuan dalam Palang Tajuk - + Show Transfer Speed in Title Bar Tunjuk Kelajuan Pemindahan dalam Palang Tajuk - + &RSS Reader Pembaca &RSS - + Search &Engine &Enjin Gelintar - + L&ock qBittorrent K&unci qBittorrent - + Do&nate! Be&ri &Derma! - + + Sh&utdown System + + + + &Do nothing - + Close Window Tutup Tetingkap - - R&esume All - Samb&ung Semula Semua - - - + Manage Cookies... Urus Kuki... - + Manage stored network cookies Urus kuki rangkaian tersimpan - + Normal Messages Mesesj Biasa - + Information Messages Mesej Maklumat - + Warning Messages Mesej Amaran - + Critical Messages Mesej Kritikal - + &Log &Log - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue Terbawah Baris Gilir - + Move to the bottom of the queue Alih ke terbawah dalam baris gilir - + Top of Queue Teratas Baris Gilir - + Move to the top of the queue Alih ke teratas dalam baris gilir - + Move Down Queue Alih ke Bawah Baris Gilir - + Move down in the queue Alih ke bawah dalam baris gilir - + Move Up Queue Alih ke Atas Baris Gilir - + Move up in the queue Alih ke atas dalam baris gilir - + &Exit qBittorrent &Keluar qBittorrent - + &Suspend System Tan&gguh Sistem - + &Hibernate System &Hibernasi Sistem - - S&hutdown System - &Matikan Sistem - - - + &Statistics &Statistik - + Check for Updates Semak Kemaskini - + Check for Program Updates Semak Kemaskini Program - + &About Perih&al - - &Pause - &Jeda - - - - P&ause All - J&eda Semua - - - + &Add Torrent File... T&ambah Fail Torrent... - + Open Buka - + E&xit Ke&luar - + Open URL Buka URL - + &Documentation &Dokumentasi - + Lock Kunci - - - + + + Show Tunjuk - + Check for program updates Semak kemaskini program - + Add Torrent &Link... Tambah Pa&utan Torrent... - + If you like qBittorrent, please donate! Jika anda menyukai qBittorrent, sila beri derma! - - + + Execution Log Log Pelakuan - + Clear the password Kosongkan kata laluan - + &Set Password &Tetapkan Kata Laluan - + Preferences Keutamaan - + &Clear Password &Kosongkan Kata Laluan - + Transfers Pemindahan - - + + qBittorrent is minimized to tray qBittorrent diminimumkan ke dalam talam - - - + + + This behavior can be changed in the settings. You won't be reminded again. Kelakuan ini boleh diubah dalam tetapan. Anda tidak akan diingatkan lagi. - + Icons Only Ikon Sahaja - + Text Only Teks Sahaja - + Text Alongside Icons Teks Bersebelahan Ikon - + Text Under Icons Teks Di Bawah Ikon - + Follow System Style Ikut Gaya Sistem - - + + UI lock password Kata laluan kunci UI - - + + Please type the UI lock password: Sila taip kata laluan kunci UI: - + Are you sure you want to clear the password? Anda pasti mahu kosongkan kata laluan? - + Use regular expressions Guna ungkapan nalar - + + + Search Engine + Enjin Gelintar + + + + Search has failed + Gelintar telah gagal + + + + Search has finished + Gelintar selesai + + + Search Gelintar - + Transfers (%1) Pemindahan (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent baru sahaja dikemaskini dan perlu dimulakan semula supaya perubahan berkesan. - + qBittorrent is closed to tray qBittorrent ditutup ke dalam talam - + Some files are currently transferring. Beberapa fail sedang dipindahkan. - + Are you sure you want to quit qBittorrent? Anda pasti mahu keluar dari qBittorrent? - + &No &Tidak - + &Yes &Ya - + &Always Yes &Sentiasa Ya - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Masa Jalan Python Hilang - + qBittorrent Update Available Kemaskini qBittorrent Tersedia - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python diperlukan untuk guna enjin gelintar tetapi tidak kelihatan dipasang. Anda mahu pasangkannya sekarang? - + Python is required to use the search engine but it does not seem to be installed. Python diperlukan untuk guna enjin gelintar tetapi tidak kelihatan dipasang. - - + + Old Python Runtime Masa Jalan Python Lama - + A new version is available. Satu versi baharu telah tersedia. - + Do you want to download %1? Anda mahu memuat turun %1? - + Open changelog... Buka log perubahan... - + No updates available. You are already using the latest version. Tiada kemaskinitersedia. Anda sudah ada versi yang terkini. - + &Check for Updates &Semak Kemaskini - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Dijeda + + + Checking for Updates... Menyemak Kemaskini... - + Already checking for program updates in the background Sudah memeriksa kemaskini program disebalik tabir - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Ralat muat turun - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Persediaan Pythin tidak dapat dimuat turun, sebab: %1. -Sila pasangkannya secara manual. - - - - + + Invalid password Kata laluan tidak sah - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid Kata laluan tidak sah - + DL speed: %1 e.g: Download speed: 10 KiB/s Kelajuan MT: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Kelajuan MN: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [T: %1, N: %2] qBittorrent %3 - - - + Hide Sembunyi - + Exiting qBittorrent Keluar qBittorrent - + Open Torrent Files Buka Fail Torrent - + Torrent Files Fail Torrent @@ -4225,7 +4547,12 @@ Sila pasangkannya secara manual. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Mengabaikan ralat SSL. URL: "%1", ralat: "%2" @@ -5519,47 +5846,47 @@ Sila pasangkannya secara manual. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5597,299 +5924,283 @@ Sila pasangkannya secara manual. BitTorrent - + RSS RSS - - Web UI - UI Sesawang - - - + Advanced Lanjutan - + Customize UI Theme... - + Transfer List Senarai Pemindahan) - + Confirm when deleting torrents Sahkan bila memadam torrent - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Guna warna baris alternatif - + Hide zero and infinity values Sembunyi nilai sifar dan tak terhingga - + Always Sentiasa - - Paused torrents only - Torrent dijeda sahaja - - - + Action on double-click Tindakan bila dwi-klik - + Downloading torrents: Torrent dimuat turun: - - - Start / Stop Torrent - Mula / Henti Torrent - - - - + + Open destination folder Buka folder destinasi - - + + No action Tiada tindakan - + Completed torrents: Torrent selesai: - + Auto hide zero status filters - + Desktop Desktop - + Start qBittorrent on Windows start up Mulakan qBittorrent ketika permulaan Windows - + Show splash screen on start up Tunjuk skrin percikan ketika permulaan - + Confirmation on exit when torrents are active Pengesahan ketika keluar jika torrent masih aktif - + Confirmation on auto-exit when downloads finish Pengesahan ketika auto-keluar bila muat turun selesai - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Bentangan kandungan torrent: - + Original Asal - + Create subfolder Cipta subfolder - + Don't create subfolder Jangan cipta subfolder - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Tambah... - + Options.. - + Remove - + Email notification &upon download completion Pemberitahuan emel se&usai muat turun lengkap - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering Penap&isan IP - + Schedule &the use of alternative rate limits Jadualkan penggunaan &had kadar alternatif - + From: From start time Daripada: - + To: To end time Kepada: - + Find peers on the DHT network Cari rakan dalam rangkaian DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5898,145 +6209,190 @@ Perlu penyulitan: Hanya sambung dengan rakan dengan penyulitan protokol Lumpuhkan penyulitan: Hanya sambung dengan rakan tanpa penyulitan protokol - + Allow encryption Benarkan penyulitan - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Lagi maklumat</a>) - + Maximum active checking torrents: - + &Torrent Queueing Pembarisan Gilir &Torrent - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Tambah penjejak ini secara automatik ke muat turun baharu: - - - + RSS Reader Pembaca RSS - + Enable fetching RSS feeds Benarkan mendapatkan suapan RSS - + Feeds refresh interval: Sela segar semula suapan: - + Same host request delay: - + Maximum number of articles per feed: Bilangan maksimum artikel per suapan: - - - + + + min minutes min - + Seeding Limits Had Menyemai - - Pause torrent - Jeda torrent - - - + Remove torrent Buang torrent - + Remove torrent and its files Buang torrent dan fail-failnya - + Enable super seeding for torrent Benarkan super penyemaian untuk torrent - + When ratio reaches Bila nisbah dicapai - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Auto Pemuat Turun Torrent RSS - + Enable auto downloading of RSS torrents Benarkan auto muat turun torrent RSS - + Edit auto downloading rules... Sunting peraturan auto muat turun... - + RSS Smart Episode Filter Penapis Episod Pintar RSS - + Download REPACK/PROPER episodes Muat turun episod REPACK/PROPER - + Filters: Penapis: - + Web User Interface (Remote control) Antaramuka Pengguna Sesawang (Kawalan jauh) - + IP address: Alamat IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6045,42 +6401,37 @@ Nyatakan satu alamat IPv4 atau IPv6. Anda boleh nyatakan "0.0.0.0" unt "::" untuk mana-mana alamat IPv6, atau "*" untuk kedua-dua IPv4 dan IPv6. - + Ban client after consecutive failures: Sekat klien selepas kegagalan berturutan: - + Never Tidak sesekali - + ban for: sekat selama: - + Session timeout: Had masa tamat sesi: - + Disabled Dilumpuhkan - - Enable cookie Secure flag (requires HTTPS) - Benarkan bendera Selamat kuki (perlukan HTTPS) - - - + Server domains: Domain pelayan: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6093,442 +6444,483 @@ anda patut letak nama domain yang digunakan oleh pelayan WebUI. Guna ';' untuk asingkan masukan berbilang. Boleh guna kad liar '*'. - + &Use HTTPS instead of HTTP G&una HTTPS selain dari HTTP - + Bypass authentication for clients on localhost Lepasi pengesahihan untuk klien pada localhost - + Bypass authentication for clients in whitelisted IP subnets Lepasi pengesahihan untuk klien dalam subnet IP tersenarai putih - + IP subnet whitelist... Senarai putih subnet IP... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name Ke&maskini nama domain dinamik saya - + Minimize qBittorrent to notification area Minimumkan qBittorrent ke ruang pemberitahuan - + + Search + Gelintar + + + + WebUI + + + + Interface Antara Muka - + Language: Bahasa: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Gaya ikon talam: - - + + Normal Biasa - + File association Perkaitan fail - + Use qBittorrent for .torrent files Guna qBittorrent untuk fail .torrent - + Use qBittorrent for magnet links Guna qBittorrent untuk pautan magnet - + Check for program updates Periksa kemas kini program - + Power Management Pengurusan Kuasa - + + &Log Files + + + + Save path: Laluan simpan: - + Backup the log file after: Sandar fail log selepas: - + Delete backup logs older than: Padam log sandar lebih tua dari: - + + Show external IP in status bar + + + + When adding a torrent Bila menambah sebuah torrent - + Bring torrent dialog to the front Bawa dialog torrent ke hadapan - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Juga pada fail .torrent yang mana penambahannya telah dibatalkan - + Also when addition is cancelled Juga bila penambahan dibatalkan - + Warning! Data loss possible! Amaran! Kehilangan data mungkin berlaku! - + Saving Management Pengurusan Penyimpanan - + Default Torrent Management Mode: Mod Pengurusan Torrent Lalai: - + Manual Manual - + Automatic Automatik - + When Torrent Category changed: Bila Kategori Torrent berubah: - + Relocate torrent Tempat semula torrent - + Switch torrent to Manual Mode Tular torrent ke Mod Manual - - + + Relocate affected torrents Tempat semula torrent yang dipengaruhi - - + + Switch affected torrents to Manual Mode Tukar torrent yang dipengaruhi ke Mod Manual - + Use Subcategories Guna Subkategori - + Default Save Path: Laluan Simpan Lalai: - + Copy .torrent files to: Salin fail .torrent ke: - + Show &qBittorrent in notification area Tunjuk &qBittorrent dalam ruang pemberitahuan - - &Log file - Fail &log: - - - + Display &torrent content and some options Papar kandungan &torrent dan beberapa pilihan - + De&lete .torrent files afterwards Pa&dam fail .torrent selepas itu - + Copy .torrent files for finished downloads to: Salin fail .torrent bagi muat turun yang selesai ke: - + Pre-allocate disk space for all files Pra-peruntuk ruang cakera untuk semua fail - + Use custom UI Theme Guna Tema UI suai - + UI Theme file: Fail Tema UI: - + Changing Interface settings requires application restart Pengubahan tetapan Antara Muka memerlukan mula semula aplikasi - + Shows a confirmation dialog upon torrent deletion Tunjuk satu dialog pengesahan ketika pemadaman torrent - - + + Preview file, otherwise open destination folder Pratonton fail, jika tidak buka folder destinasi - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents Tunjuk satu dialog pengesahan ketika keluar dengan torrent aktif - + When minimizing, the main window is closed and must be reopened from the systray icon Bila diminimumkan, tetingkap utama ditutup dan mesti dibuka semula melalui ikon talam sistem - + The systray icon will still be visible when closing the main window Ikon talam sistem akan kekal tampak ketika menutup tetingkap utama - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Tutup qBittorrent masuk ke ruang pemberitahuan - + Monochrome (for dark theme) Monokrom (untuk tema gelap) - + Monochrome (for light theme) Monokrom (untuk tema cerah) - + Inhibit system sleep when torrents are downloading Sekat tidur sistem bila torrent masih memuat turun - + Inhibit system sleep when torrents are seeding Sekat tidur sistem bila torrent masih menyemai - + Creates an additional log file after the log file reaches the specified file size Cipta satu fail log tambahan selepas fail log mencapai saiz fail yang ditentukan - + days Delete backup logs older than 10 days hari - + months Delete backup logs older than 10 months bulan - + years Delete backup logs older than 10 years tahun - + Log performance warnings - - The torrent will be added to download list in a paused state - Torrent akan ditambah ke dalam senarai muat turun dalam keadaan terjeda - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Jangan mulakan muat turun secara automatik - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Peruntuk saiz fail penuh dalam cakera sebelum memulakan muat turun, untuk mengurangkan fragmentasi. Hanya berguna kepada HDD. - + Append .!qB extension to incomplete files Tambah sambungan .!qB pada fail tidak lengkap - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Bila satu torrent dimuat turun, tawar penambahan torrent dari mana-mana fail .torrent yang ditemui di dalamnya - + Enable recursive download dialog Benarkan dialog muat turun rekursif - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatik: Pelbagai sifat torrent (seperti laluan simpan) akan ditentukan oleh kategori berkaitan Manual: Pelbagai sifat torrent (seperti laluan simpan) mesti diumpuk secara manual - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Bila Laluan Simpan Kategori berubah: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: Tambah torrent secara automatik dari: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6545,766 +6937,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Penerima - + To: To receiver Kepada: - + SMTP server: Pelayan SMTP: - + Sender Pengirim - + From: From sender Daripada: - + This server requires a secure connection (SSL) Pelayan ini memerlukan satu sambungan selamat (SSL) - - + + Authentication Pengesahihan - - - - + + + + Username: Nama pengguna: - - - - + + + + Password: Kata laluan: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window Tunjuk tetingkap konsol - + TCP and μTP TCP dan μTP - + Listening Port Port Dengar - + Port used for incoming connections: Port yang digunakan untuk sambungan masuk: - + Set to 0 to let your system pick an unused port - + Random Rawak - + Use UPnP / NAT-PMP port forwarding from my router Guna pemajuan port UPnP / NAT-PMP daripada penghala saya - + Connections Limits Had Sambungan - + Maximum number of connections per torrent: Bilangan sambungan per torrent maksimum: - + Global maximum number of connections: Bilangan sambungan maksimum sejagat: - + Maximum number of upload slots per torrent: Bilangan slot muat naik per torrent maksimum: - + Global maximum number of upload slots: Bilangan maksimum sejagat bagi slot muat naik: - + Proxy Server Pelayan Proksi - + Type: Jenis: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Hos: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Jika tidak, pelayan proksi hanya digunakan untuk sambungan penjejak - + Use proxy for peer connections Guna proksi untuk sambungan rakan - + A&uthentication Pen&gesahihan - - Info: The password is saved unencrypted - Maklumat: Kata laluan disimpan secara tak sulit - - - + Filter path (.dat, .p2p, .p2b): Tapis laluan (.dat, .p2p, .p2b): - + Reload the filter Muat semula penapis - + Manually banned IP addresses... Alamat IP dilarang secara manual... - + Apply to trackers Laksana kepada penjejak - + Global Rate Limits Had Kadar Sejagat - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Muat naik: - - + + Download: Muat Turun: - + Alternative Rate Limits Had Kadar Alternatif - + Start time Masa mula - + End time Masa tamat - + When: Bila: - + Every day Setiap hari - + Weekdays Hari biasa - + Weekends Hujung minggu - + Rate Limits Settings Tetapan Had Kadar - + Apply rate limit to peers on LAN Laksana had kadar kepada rakan dalam LAN - + Apply rate limit to transport overhead Laksana had kadar untuk overhed angkutan - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Laksana had kadar ke protokol µTP - + Privacy Kerahsiaan - + Enable DHT (decentralized network) to find more peers Benarkan DHT (rangkaian tak sepusat) untuk dapatkan lagi rakan - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Tukar rakan dengan klien Bittorrent yang serasi (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Benarkan Pertukaran Rakan (PeX) untuk dapatkan lagi rakan - + Look for peers on your local network Cari rakan dalam rangkaian setempat anda - + Enable Local Peer Discovery to find more peers Benarkan Penemuan Rakan Setempat untuk cari lagi rakan - + Encryption mode: Mod penyulitan: - + Require encryption Perlu penyulitan - + Disable encryption Lumpuhkan penyulitan - + Enable when using a proxy or a VPN connection Benarkan bila menggunakan proksi atau sambungan VPN - + Enable anonymous mode Benarkan mod awanama - + Maximum active downloads: Muat turun aktif maksimum: - + Maximum active uploads: Muat naik aktif maksimum: - + Maximum active torrents: Torrent aktif maksimum: - + Do not count slow torrents in these limits Jangan kira torrent lembab dalam had ini - + Upload rate threshold: Ambang kadar muat naik: - + Download rate threshold: Ambang kadar muat turun: - - - - + + + + sec seconds saat - + Torrent inactivity timer: Pemasa ketidakaktifan torrent: - + then maka - + Use UPnP / NAT-PMP to forward the port from my router Guna UPnP / NAT-PMP untuk majukan port daripada penghala saya - + Certificate: Sijil: - + Key: Kunci: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Maklumat berkenaan sijil</a> - + Change current password Ubah kata laluan semasa - - Use alternative Web UI - Guna UI Sesawang alternatif - - - + Files location: Lokasi fail: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Keselamatan - + Enable clickjacking protection Benarkan perlindungan godaman klik - + Enable Cross-Site Request Forgery (CSRF) protection Benarkan perlindungan Pemalsuan Pintaan Silang-Laman (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Benarkan pengesahan pengepala hos - + Add custom HTTP headers Tambah pengepala HTTP suai - + Header: value pairs, one per line Pengepala: pasangan nilai, satu per baris - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Perkhidmatan: - + Register Daftar - + Domain name: Nama domain: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Dengan membenarkan pilihan ini, anda boleh <strong>kehilangan terus</strong> fail .torrent anda! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Jika anda benarkan pilihan kedua (&ldquo;Juga bila penambahan dibatalkan&rdquo;) fail .torrent <strong>akan dipadamkan</strong> walaupun jika anda menekan &ldquo;<strong>Batal</strong>&rdquo; di dalam dialog &ldquo;Tambah torrent&rdquo; - + Select qBittorrent UI Theme file Pilih fail Tema UI qBittorrent - + Choose Alternative UI files location Pilih lokasi fail UI alternatif - + Supported parameters (case sensitive): Parameter disokong (peka kata): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: Nama torrent - + %L: Category %L: Kategori - + %F: Content path (same as root path for multifile torrent) %F: Laluan kandungan (sama dengan laluan root untuk torrent berbilang-fail) - + %R: Root path (first torrent subdirectory path) %R: Laluan root (laluan subdirektori torrent pertama) - + %D: Save path %D: Laluan simpan - + %C: Number of files %C: Bilangan fail - + %Z: Torrent size (bytes) %Z: Saiz torrent (bait) - + %T: Current tracker %T: Penjejak semasa - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Petua: Parameter dalam kurungan dengan tanda petikan untuk menghindari teks dipotong pada ruang putih (contohnya., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Tiada) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Sebuah torrent akan dianggap perlahan jika kadar muat turun dan muat naiknya kekal di bawah nilai ini "Torrent inactivity timer" dalam saat - + Certificate Sijil - + Select certificate Pilih sijil - + Private key Kunci persendirian - + Select private key Pilih kunci persendirian - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Pilih folder untuk dipantau - + Adding entry failed Penambahan masukan gagal - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Ralat Lokasi - - + + Choose export directory Pilih direktori eksport - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Tag (diasing dengan tanda koma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Pilih satu direktori simpan - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file Pilih satu fail penapis IP - + All supported filters Semua penapis disokong - + The alternative WebUI files location cannot be blank. - + Parsing error Ralat penghuraian - + Failed to parse the provided IP filter Gagal menghurai penapis IP yang disediakan - + Successfully refreshed Berjaya disegar semulakan - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berjaya menghurai penapis IP yang disediakan: %1 peraturan telah dilaksanakan. - + Preferences Keutamaan - + Time Error Ralat Masa - + The start time and the end time can't be the same. Masa mula dan masa tamat tidak boleh serupa. - - + + Length Error Ralat Panjang @@ -7312,241 +7749,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Tidak diketahui - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Negara/Wilayah - + IP/Address - + Port Port - + Flags Bendera - + Connection Sambungan - + Client i.e.: Client application Klien - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Kemajuan - + Down Speed i.e: Download speed Kelajuan Turun - + Up Speed i.e: Upload speed Kelajuan Naik - + Downloaded i.e: total data downloaded Dimuat Turun - + Uploaded i.e: total data uploaded Dimuat Naik - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Berkaitan - + Files i.e. files that are being downloaded right now Fail - + Column visibility Ketampakan lajur - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers Menambah rakan - + Some peers cannot be added. Check the Log for details. Sesetengah rakan tidak dapat ditambah. Periksa Log untuk perincian. - + Peers are added to this torrent. Rakan ditambah ke dalam torrent ini. - - + + Ban peer permanently Sekat rakan selamanya - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? Anda pasti mahu menyekat rakan terpilih secara kekal? - + Peer "%1" is manually banned Rakan "%1" disekat secara manual - + N/A T/A - + Copy IP:port Salin IP:port @@ -7564,7 +8006,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Senarai rakan untuk ditambah (satu IP per baris): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7605,27 +8047,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Fail dalam cebisan ini: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information Tunggu sehingga data meta telah tersedia untuk melihat maklumat terperincinya - + Hold Shift key for detailed information Tahan kekunci Shift untuk maklumat lanjut @@ -7638,58 +8080,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Pemalam gelintar - + Installed search plugins: Pemalam gelintar terpasang: - + Name Nama - + Version Versi - + Url Url - - + + Enabled Dibenarkan - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Amaran: Pastikan menuruti undang-undang hakcipta negara anda ketika memuat turun torrent dari mana-mana enjin gelintar. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Pasang satu yang baharu - + Check for updates Periksa kemaskini - + Close Tutup - + Uninstall Nyahpasang @@ -7809,98 +8251,65 @@ Pemalam tersebut telah dilumpuhkan. Sumber pemalam - + Search plugin source: Sumber pemalam gelintar: - + Local file Fail setempat - + Web link Pautan Sesawang - - PowerManagement - - - qBittorrent is active - qBittorrent aktif - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Fail berikut daripada torrent "%1" menyokong pratonton, sila pilih salah satu: - + Preview Pratonton - + Name Nama - + Size Saiz - + Progress Kemajuan - + Preview impossible Pratonton adalah mustahil - + Sorry, we can't preview this file: "%1". Maaf, kami tidak dapat pratonton fail ini: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7913,27 +8322,27 @@ Pemalam tersebut telah dilumpuhkan. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7974,12 +8383,12 @@ Pemalam tersebut telah dilumpuhkan. PropertiesWidget - + Downloaded: Dimuat Turun: - + Availability: Ketersediaan: @@ -7994,53 +8403,53 @@ Pemalam tersebut telah dilumpuhkan. Pemindahan - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Masa Aktif: - + ETA: ETA: - + Uploaded: Dimuat Naik: - + Seeds: Semaian: - + Download Speed: Kelajuan Muat Turun: - + Upload Speed: Kelajuan Muat Naik: - + Peers: Rakan: - + Download Limit: Had Muat Turun: - + Upload Limit: Had Muat Naik: - + Wasted: Tersia: @@ -8050,193 +8459,220 @@ Pemalam tersebut telah dilumpuhkan. Sambungan: - + Information Maklumat - + Info Hash v1: - + Info Hash v2: - + Comment: Ulasan: - + Select All Pilih Semua - + Select None Pilih Tiada - + Share Ratio: Nisbah Kongsi: - + Reannounce In: Diumum Semula Dalam Tempoh: - + Last Seen Complete: Terakhir Dilihat Selesai: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Jumlah Saiz: - + Pieces: Cebisan: - + Created By: Dicipta Oleh: - + Added On: Ditambah Pada: - + Completed On: Selesai Pada: - + Created On: Dicipta Pada: - + + Private: + + + + Save Path: Laluan Simpan: - + Never Tidak sesekali - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (mempunyai %3) - - + + %1 (%2 this session) %1 (%2 sesi ini) - - + + + N/A T/A - + + Yes + Ya + + + + No + Tidak + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (disemai untuk %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 jumlah) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 pur.) - - New Web seed - Semai Sesawang Baharu + + Add web seed + Add HTTP source + - - Remove Web seed - Buang semaian Sesawang + + Add web seed: + - - Copy Web seed URL - Salin URL semai Sesawang + + + This web seed is already in the list. + - - Edit Web seed URL - Sunting URL semai Sesawang - - - + Filter files... Tapis fail... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Semai URL baharu - - - - New URL seed: - Semai URL baharu: - - - - - This URL seed is already in the list. - Semaian URL ini sudah ada dalam senarai. - - - + Web seed editing Penyuntingan semaian Sesawang - + Web seed URL: URL semaian Sesawang: @@ -8244,33 +8680,33 @@ Pemalam tersebut telah dilumpuhkan. RSS::AutoDownloader - - + + Invalid data format. Format data tidak sah. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Tidak dapat simpan data Auto-Pemuat Turun dalam %1. Ralat: %2 - + Invalid data format Format data tidak sah - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Tidak dapat memuatkan peraturan Auto-Pemuat Turun RSS. Sebab: %1 @@ -8278,22 +8714,22 @@ Pemalam tersebut telah dilumpuhkan. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Gagal memuat turun suapan RSS pada '%1', sebab: %2. - + RSS feed at '%1' updated. Added %2 new articles. Suapan RSS pada '%1' dikemaskinikan. %2 artikel baharu ditambah. - + Failed to parse RSS feed at '%1'. Reason: %2 Gagal menghurai suapan RSS pada '%1', sebab: %2. - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Suapan RSS pada '%1' berjaya dimuat turun. Mula menghurainya. @@ -8329,12 +8765,12 @@ Pemalam tersebut telah dilumpuhkan. RSS::Private::Parser - + Invalid RSS feed. Suapan RSS tidak sah. - + %1 (line: %2, column: %3, offset: %4). %1 (baris: %2, lajur: %3, ofset: %4). @@ -8342,103 +8778,144 @@ Pemalam tersebut telah dilumpuhkan. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. Suapan RSS dengan URL diberi sudah wujud: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. Tidak dapat alih folder root. - - + + Item doesn't exist: %1. Item tidak wujud: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Tidak dapat padam folder root. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Laluan Item RSS salah: %1. - + RSS item with given path already exists: %1. Suapan RSS dengan URL diberi sudah wujud: %1. - + Parent folder doesn't exist: %1. Folder induk tidak wujud: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + saat + + + + Default + Lalai + + RSSWidget @@ -8458,8 +8935,8 @@ Pemalam tersebut telah dilumpuhkan. - - + + Mark items read Tanda item telah dibaca @@ -8484,132 +8961,115 @@ Pemalam tersebut telah dilumpuhkan. Torrent: (dwi-klik untuk muat turun) - - + + Delete Padam - + Rename... Nama semula... - + Rename Nama semula - - + + Update Kemaskini - + New subscription... Langganan baharu... - - + + Update all feeds Kemaskini semua suapan - + Download torrent Muat turun torrent - + Open news URL Buka URL berita - + Copy feed URL Salin URL suapan - + New folder... Folder baharu... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Sila pilih satu nama folder - + Folder name: Nama folder: - + New folder Folder baharu - - - Please type a RSS feed URL - Sila taip satu URL suapan RSS. - - - - - Feed URL: - URL Suapan: - - - + Deletion confirmation Pengesahan pemadaman - + Are you sure you want to delete the selected RSS feeds? Anda pasti mahu memadam suapan RSS terpilih? - + Please choose a new name for this RSS feed Sila pilih satu nama baharu untuk suapan RSS ini - + New feed name: Nama suapan baharu: - + Rename failed Nama semula gagal - + Date: Tarikh: - + Feed: - + Author: Pengarang: @@ -8617,38 +9077,38 @@ Pemalam tersebut telah dilumpuhkan. SearchController - + Python must be installed to use the Search Engine. Python mesti dipasang supaya dapat guna Enjin Gelintar. - + Unable to create more than %1 concurrent searches. Tidak boleh mencipta lebih dari %1 penggelintaran berturutan. - - + + Offset is out of range Ofset diluar julat - + All plugins are already up to date. Semua pemalam sudah pun dikemaskinikan. - + Updating %1 plugins Mengemaskini %1 pemalam - + Updating plugin %1 Mengemaskini pemalam %1 - + Failed to check for plugin updates: %1 Gagal memeriksa kemaskini pemalam: %1 @@ -8723,132 +9183,142 @@ Pemalam tersebut telah dilumpuhkan. Saiz: - + Name i.e: file name Nama - + Size i.e: file size Saiz - + Seeders i.e: Number of full sources Penyemai - + Leechers i.e: Number of partial sources Penyedut - - Search engine - Enjin gelintar - - - + Filter search results... Tapis keputusan gelintar... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Keputusan (menunjukkan <i>%1</i> dari <i>%2</i>): - + Torrent names only Nama torrent sahaja - + Everywhere Di mana sahaja - + Use regular expressions Guna ungkapan nalar - + Open download window - + Download Muat turun - + Open description page Buka halaman keterangan - + Copy Salin - + Name Nama - + Download link Pautan muat turun - + Description page URL URL halaman keterangan - + Searching... Menggelintar... - + Search has finished Gelintar selesai - + Search aborted Gelintar dihenti paksa - + An error occurred during search... Satu ralat berlaku ketika menggelintar... - + Search returned no results Gelintar tidak kembalikan keputusan - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Ketampakan lajur - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8856,104 +9326,104 @@ Pemalam tersebut telah dilumpuhkan. SearchPluginManager - + Unknown search engine plugin file format. Format fail pemalam enjin gelintar tidak diketahui. - + Plugin already at version %1, which is greater than %2 Pemalam sudah pun dalam versi %1, yang mana lebih baharu daripada %2 - + A more recent version of this plugin is already installed. Versi terkini pemalam ini sudah pun dipasang. - + Plugin %1 is not supported. Pemalam %1 tidak disokong - - + + Plugin is not supported. Pemalam tidak disokong. - + Plugin %1 has been successfully updated. Pemalam %1 berjaya dikemaskinikan. - + All categories Semua kategori - + Movies Cereka - + TV shows Rancangan TV - + Music Muzik - + Games Permainan - + Anime Anime - + Software Perisian - + Pictures Gambar - + Books Buku - + Update server is temporarily unavailable. %1 Pelayan kemaskini buat masa ini tidak tersedia. %1 - - + + Failed to download the plugin file. %1 Gagal memuat turun fail pemalam. %1 - + Plugin "%1" is outdated, updating to version %2 Pemalam "%1" sudah lapuk, mengemaskini ke versi %2 - + Incorrect update info received for %1 out of %2 plugins. Maklumat kemaskini tidak betul diterima %1 dari %2 pemalam. - + Search plugin '%1' contains invalid version string ('%2') Pemalam gelintar '%1' mengandungi rentetan versi tidak sah ('%2') @@ -8963,114 +9433,145 @@ Pemalam tersebut telah dilumpuhkan. - - - - Search Gelintar - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Tiada mana-mana pelama gelintar dipasang. Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap untuk pasangkannya. - + Search plugins... Gelintar pemalam... - + A phrase to search for. Satu frasa untuk digelintarkan. - + Spaces in a search term may be protected by double quotes. Jarak dalam terma gelintar dilindungi dengan tanda petikan ganda dua. - + Example: Search phrase example Contoh: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> - + All plugins Semua pemalam - + Only enabled Hanya dibenarkan - + + + Invalid data format. + Format data tidak sah. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> - + + Refresh + + + + Close tab - + Close all tabs - + Select... Pilih... - - - + + Search Engine Enjin Gelintar - + + Please install Python to use the Search Engine. Sila pasang Python untuk guna Enjin Gelintar. - + Empty search pattern Kosongkan pola gelintar - + Please type a search pattern first Sila taip satu pola gelintar dahulu - + + Stop Henti + + + SearchWidget::DataStorage - - Search has finished - Gelintar selesai + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Gelintar telah gagal + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9183,34 +9684,34 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un - + Upload: Muat naik: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Muat Turun: - + Alternative speed limits Had kelajuan alternatif @@ -9308,7 +9809,7 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un 3 Hours - 24 Jam {3 ?} + @@ -9402,32 +9903,32 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un Masa purata dalam baris gilir: - + Connected peers: Rakan bersambung: - + All-time share ratio: Nisbah kongsi sepanjang-masa: - + All-time download: Muat turun sepanjang-masa: - + Session waste: Sisa sesi: - + All-time upload: Muat naik sepanjang-masa - + Total buffer size: Jumlah saiz penimbal: @@ -9442,12 +9943,12 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un Kerja I/O dibaris gilir: - + Write cache overload: Beban lampau cache tulis: - + Read cache overload: Beban lampau cache tulis: @@ -9466,51 +9967,77 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un StatusBar - + Connection status: Status sambungan: - - + + No direct connections. This may indicate network configuration problems. Tiada sambungan terus. Ini menunjukkan masalah konfigurasi rangkaian. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nod - + qBittorrent needs to be restarted! qBittorrent perlu dimulakan semula! - - - + + + Connection Status: Status Sambungan: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Luar talian. Ia bermaksud qBittorrent gagal mendengar port terpilih bagi sambungan masuk. - + Online Atas-Talian - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klik untuk tukar ke had kelajuan alternatif - + Click to switch to regular speed limits Klik untuk tukar ke had kelajuan biasa @@ -9540,13 +10067,13 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un - Resumed (0) - Disambung Semula (0) + Running (0) + - Paused (0) - Dijeda (0) + Stopped (0) + @@ -9608,36 +10135,36 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un Completed (%1) Selesai (%1) + + + Running (%1) + + - Paused (%1) - Dijeda (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - Sambung semula torrent - - - - Pause torrents - Jeda torrent - Remove torrents - - - Resumed (%1) - Disambung Semula (%1) - Active (%1) @@ -9709,31 +10236,31 @@ Klik butang "Gelintar pemalam..." di bahagian bawah kanan tetingkap un Remove unused tags Buang tag yang tidak digunakan - - - Resume torrents - Sambung semula torrent - - - - Pause torrents - Jeda torrent - Remove torrents - - New Tag - Tag Baharu + + Start torrents + + + + + Stop torrents + Tag: Tag: + + + Add tag + + Invalid tag name @@ -9880,32 +10407,32 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentContentModel - + Name Nama - + Progress Kemajuan - + Download Priority Keutamaan Muat Turun - + Remaining Berbaki - + Availability Ketersediaan - + Total Size Jumlah Saiz @@ -9950,98 +10477,98 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentContentWidget - + Rename error Ralat nama semula - + Renaming Penamaan semula - + New name: Nama baharu: - + Column visibility Ketampakan lajur - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Buka - + Open containing folder - + Rename... Nama Semula... - + Priority Keutamaan - - + + Do not download Jangan muat turun - + Normal Biasa - + High Tinggi - + Maximum Maksimum - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10049,17 +10576,17 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10088,13 +10615,13 @@ Sila pilih nama lain dan cuba sekali lagi. - + Select file Pilih fail - + Select folder Pilih folder @@ -10169,87 +10696,83 @@ Sila pilih nama lain dan cuba sekali lagi. Medan - + You can separate tracker tiers / groups with an empty line. Anda boleh asingkan kumpulan / tier penjejak dengan baris kosong. - + Web seed URLs: URL semaian Sesawang: - + Tracker URLs: URL penjejak: - + Comments: Ulasan: - + Source: Sumber: - + Progress: Kemajuan: - + Create Torrent Cipta Torrent - - + + Torrent creation failed Penciptaan Torrent gagal - + Reason: Path to file/folder is not readable. Sebab: Laluan ke fail/folder tidak boleh dibaca. - + Select where to save the new torrent Pilih sama ada hendak menyimpan torrent baharu - + Torrent Files (*.torrent) Fail Torrent (*.torrent) - Reason: %1 - Sebab: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Pencipta Torrent - + Torrent created: Torrent dicipta: @@ -10257,32 +10780,32 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10290,44 +10813,31 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Data meta tidak sah - - TorrentOptionsDialog @@ -10356,173 +10866,161 @@ Sila pilih nama lain dan cuba sekali lagi. - + Category: Kategori: - - Torrent speed limits + + Torrent Share Limits - + Download: Muat Turun: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits - + Upload: Muat naik: - - Torrent share limits - - - - - Use global share limit - Guna had kongsi sejagat - - - - Set no share limit - Tetapkan had tanpa kongsi - - - - Set share limit to - Tetapkan had kongsi sehingga - - - - ratio - nisbah - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Muat turun dalam tertib berjujukan - + Disable PeX for this torrent - + Download first and last pieces first Muat turn cebisan pertama dan terakhir dahulu - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Pilih laluan simpan - + Not applicable to private torrents - - - No share limit method selected - Tiada kaedah had kongsi terpilih - - - - Please select a limit method first - Sila pilih satu kaedah had dahulu - TorrentShareLimitsWidget - - - + + + + Default - Lalai + Lalai - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Buang torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Benarkan super penyemaian untuk torrent + + + Ratio: @@ -10535,32 +11033,32 @@ Sila pilih nama lain dan cuba sekali lagi. - - New Tag - Tag Baharu + + Add tag + - + Tag: Tag: - + Invalid tag name Nama tag tidak sah - + Tag name '%1' is invalid. - + Tag exists Tag wujud - + Tag name already exists. Nama tag sudah wujud. @@ -10568,115 +11066,130 @@ Sila pilih nama lain dan cuba sekali lagi. TorrentsController - + Error: '%1' is not a valid torrent file. Ralat: '%1' bukanlah fail torrent yang sah. - + Priority must be an integer Prioriti mestilah integer - + Priority is not valid Prioriti tidak sah - + Torrent's metadata has not yet downloaded Data meta torrent belum lagi dimuat turun - + File IDs must be integers ID fail mestilah integer - + File ID is not valid ID fail tidak sah - - - - + + + + Torrent queueing must be enabled Pembarisan gilir torrent mesti dibenarkan - - + + Save path cannot be empty Laluan simpan tidak boleh kosong - - + + Cannot create target directory - - + + Category cannot be empty Kategori tidak boleh kosong - + Unable to create category Tidak boleh cipta kategori - + Unable to edit category Tidak boleh sunting kategori - + Unable to export torrent file. Error: %1 - + Cannot make save path Tidak dapat buat laluan simpan - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Tidak dapat tulis ke direktori - + WebUI Set location: moving "%1", from "%2" to "%3" Lokasi Tetap WebUI: mengalih "%1", dari "%2" ke "%3" - + Incorrect torrent name Nama torrent salah - - + + Incorrect category name Nama kategori salah @@ -10707,196 +11220,191 @@ Sila pilih nama lain dan cuba sekali lagi. TrackerListModel - + Working Berusaha - + Disabled Dilumpuhkan - + Disabled for this torrent - + This torrent is private Torrent ini adalah persendirian - + N/A T/A - + Updating... Mengemaskini... - + Not working Tidak berfungsi - + Tracker error - + Unreachable - + Not contacted yet Belum dihubungi lagi - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Peringkat - - - - Protocol + URL/Announce Endpoint - Status - Status - - - - Peers - Rakan - - - - Seeds - Semai - - - - Leeches - Sedut - - - - Times Downloaded - - - - - Message - Mesej - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Peringkat + + + + Status + Status + + + + Peers + Rakan + + + + Seeds + Semai + + + + Leeches + Sedut + + + + Times Downloaded + + + + + Message + Mesej + TrackerListWidget - + This torrent is private Torrent ini adalah persendirian - + Tracker editing Penyuntingan penjejak - + Tracker URL: URL penjejak: - - + + Tracker editing failed Penyuntingan penjejak gagal - + The tracker URL entered is invalid. URL penjejak yang dimasukkan tidak sah. - + The tracker URL already exists. URL penjejak sudah wujud. - + Edit tracker URL... Sunting URL penjejak... - + Remove tracker Buang penjejak - + Copy tracker URL Salin URL penjejak - + Force reannounce to selected trackers Paksa umum semula pada penjejak terpilih - + Force reannounce to all trackers Paksa umum semula pada semua penjejak - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility Ketampakan lajur @@ -10914,37 +11422,37 @@ Sila pilih nama lain dan cuba sekali lagi. Senarai penjejak yang ditambahkan (satu per baris): - + µTorrent compatible list URL: URL senarai keserasian µTorrent: - + Download trackers list - + Add Tambah - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10952,62 +11460,62 @@ Sila pilih nama lain dan cuba sekali lagi. TrackersFilterWidget - + Warning (%1) Amaran (%1) - + Trackerless (%1) Tanpa Penjejak (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Buang penjejak - - Resume torrents - Sambung semula torrent + + Start torrents + - - Pause torrents - Jeda torrent + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Semua (%1) @@ -11016,7 +11524,7 @@ Sila pilih nama lain dan cuba sekali lagi. TransferController - + 'mode': invalid argument @@ -11108,11 +11616,6 @@ Sila pilih nama lain dan cuba sekali lagi. 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. Menyemak data sambung semula - - - Paused - Dijeda - Completed @@ -11136,220 +11639,252 @@ Sila pilih nama lain dan cuba sekali lagi. Dengan ralat - + Name i.e: torrent name Nama - + Size i.e: torrent size Saiz - + Progress % Done Kemajuan - + + Stopped + + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Semaian - + Peers i.e. partial sources (often untranslated) Rakan - + Down Speed i.e: Download speed Kelajuan Turun - + Up Speed i.e: Upload speed Kelajuan Naik - + Ratio Share ratio Nibah - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Kategori - + Tags Tag: - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Ditambah Pada - + Completed On Torrent was completed on 01/01/2010 08:00 Selesai Pada - + Tracker Penjejak - + Down Limit i.e: Download limit Had Turun - + Up Limit i.e: Upload limit Had Naik - + Downloaded Amount of data downloaded (e.g. in MB) Dimuat turun - + Uploaded Amount of data uploaded (e.g. in MB) Dimuat Naik - + Session Download Amount of data downloaded since program open (e.g. in MB) Sesi Muat Turun - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sesi Muat Naik - + Remaining Amount of data left to download (e.g. in MB) Berbaki - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Masa Aktif - + + Yes + Ya + + + + No + Tidak + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Selesai - + Ratio Limit Upload share ratio limit Had Nisbah - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Terakhir Dilihat Selesai - + Last Activity Time passed since a chunk was downloaded/uploaded Aktiviti Terakhir - + Total Size i.e. Size including unwanted data Jumlah Saiz - + Availability The number of distributed copies of the torrent Ketersediaan - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A T/A - + %1 ago e.g.: 1h 20m ago %1 yang lalu - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (disemai untuk %2) @@ -11358,339 +11893,319 @@ Sila pilih nama lain dan cuba sekali lagi. TransferListWidget - + Column visibility Ketampakan lajur - + Recheck confirmation Pengesahan semak semula - + Are you sure you want to recheck the selected torrent(s)? Anda pasti mahu menyemak semula torrent(s) terpilih? - + Rename Nama semula - + New name: Nama baharu: - + Choose save path Pilih laluan simpan - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview Tidak boleh pratonton - + The selected torrent "%1" does not contain previewable files Torrent terpilih "%1" tidak mengandungi fail-fail boleh pratonton - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - Tambah Tag - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags Buang Semua Tag - + Remove all tags from selected torrents? Buang semua tag dari torrent terpilih? - + Comma-separated tags: Tag dipisah-tanda-koma: - + Invalid tag Tag tidak sah - + Tag name: '%1' is invalid Nama tag: '%1' tidak sah - - &Resume - Resume/start the torrent - Sa&mbung Semula - - - - &Pause - Pause the torrent - &Jeda - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Muat turun dalam tertib berjujukan - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Muat turn cebisan pertama dan terakhir dahulu - + Automatic Torrent Management Pengurusan Torrent Automatik - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Mod automatik bermaksud pelbagai sifat torrent (seperti laluan simpan) akan ditentukan oleh kategori berkaitan - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Mod penyemaian super @@ -11735,28 +12250,28 @@ Sila pilih nama lain dan cuba sekali lagi. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11764,7 +12279,12 @@ Sila pilih nama lain dan cuba sekali lagi. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Gagal memuatkan tema UI dari fail: "%1" @@ -11795,20 +12315,21 @@ Sila pilih nama lain dan cuba sekali lagi. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Pemindahan keutamaan gagal: https UI Sesawang, fail: "%1", ralat: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Pemindahan keutamaan: https data dieksport ke fail: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11816,32 +12337,32 @@ Sila pilih nama lain dan cuba sekali lagi. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11933,72 +12454,72 @@ Sila pilih nama lain dan cuba sekali lagi. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Jenis fail tidak diterima, hanya fail biasa dibenarkan. - + Symlinks inside alternative UI folder are forbidden. Pautan simbolik di dalam folder UI alternatif adalah dilarang. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Tanda pemisah ':' hilang dalam pengepala HTTP suai WebUI: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' UISesawang: Pengepala asal & asal sasaran tidak sepadan! IP Sumber: '%1'. Pengepala asal: '%2'. Sasaran asal: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' UISesawang: Pengepala rujukan & asal sasaran tidak sepadan! IP Sumber: '%1'. Pengepala rujukan: '%2'. Sasaran asal: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' UISesawang: Pengepala Hos tidak sah, port tidak sepadan. IP sumber permintaan: '%1'. Port pelayan: '%2'. Pengepala Hos diterima: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' UISesawang: Pengepala Hos tidak sah. IP sumber permintaan: '%1'. Pengepala Hos diterima: '%2' @@ -12006,125 +12527,133 @@ Sila pilih nama lain dan cuba sekali lagi. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Ralat tidak diketahui + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1j %2m - + %1d %2h e.g: 2 days 10 hours %1h %2j - + %1y %2d e.g: 2 years 10 days %1t %2h - - + + Unknown Unknown (size) Tidak diketahui - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent akan matikan komputer sekarang kerana semua muat turun telah selesai. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_nb.ts b/src/lang/qbittorrent_nb.ts index b0fe1472b..757423262 100644 --- a/src/lang/qbittorrent_nb.ts +++ b/src/lang/qbittorrent_nb.ts @@ -14,75 +14,75 @@ Om - + Authors Opphavspersoner - + Current maintainer Nåværende vedlikeholder - + Greece Hellas - - + + Nationality: Nasjonalitet: - - + + E-mail: E-post: - - + + Name: Navn: - + Original author Opprinnelig opphavsperson - + France Frankrike - + Special Thanks Spesiell takk til - + Translators Oversettere - + License Lisens - + Software Used Programvare som er brukt - + qBittorrent was built with the following libraries: qBittorrent ble bygd med følgende biblioteker: - + Copy to clipboard Kopier til utklippstavla @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Opphavsrett %1 2006-2024 qBittorrent-prosjektet + Copyright %1 2006-2025 The qBittorrent project + Opphavsrett %1 2006-2025 qBittorrent-prosjektet @@ -166,15 +166,10 @@ Lagre i - + Never show again Aldri vis igjen - - - Torrent settings - Torrentinnstillinger - Set as default category @@ -191,12 +186,12 @@ Start torrent - + Torrent information Informasjon om torrent - + Skip hash check Hopp over sjekksummering @@ -205,6 +200,11 @@ Use another path for incomplete torrent Bruk en annen sti for ufullstendig torrent + + + Torrent options + Torrentinnstillinger + Tags: @@ -231,75 +231,75 @@ Stopp-betingelse: - - + + None Ingen - - + + Metadata received Metadata mottatt - + Torrents that have metadata initially will be added as stopped. - + Torrenter som har metadata innledningsvis vil legges til som stoppet. - - + + Files checked Filer er kontrollert - + Add to top of queue Legg øverst i køen - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Forhindrer sletting av .torrent-filen uavhenging av innstillinger på siden 'Nedlastinger', under 'Alternativer' - + Content layout: Innholdsoppsett: - + Original Opprinnelig - + Create subfolder Opprett undermappe - + Don't create subfolder Ikke opprett undermappe - + Info hash v1: Info-hash v1: - + Size: Størrelse: - + Comment: Kommentar: - + Date: Dato: @@ -329,151 +329,147 @@ Husk senest brukte lagringssti - + Do not delete .torrent file Ikke slett .torrent-filen - + Download in sequential order Last ned i rekkefølge - + Download first and last pieces first Last ned første og siste delene først - + Info hash v2: Info-hash v2: - + Select All Velg alle - + Select None Fravelg alle - + Save as .torrent file... Lagre som .torrent-fil … - + I/O Error Inn/ut-datafeil - + Not Available This comment is unavailable Ikke tilgjengelig - + Not Available This date is unavailable Ikke tilgjengelig - + Not available Ikke tilgjengelig - + Magnet link Magnetlenke - + Retrieving metadata... Henter metadata … - - + + Choose save path Velg lagringsmappe - + No stop condition is set. Ingen stopp-betingelse er valgt. - + Torrent will stop after metadata is received. Torrent vil stoppe etter at metadata er mottatt. - Torrents that have metadata initially aren't affected. - Torrenter som har metadata innledningsvis påvirkes ikke. - - - + Torrent will stop after files are initially checked. Torrent vil stoppe etter innledende kontroll. - + This will also download metadata if it wasn't there initially. Dette vil også laste ned metadata som ikke ble mottatt i begynnelsen. - - + + N/A I/T - + %1 (Free space on disk: %2) %1 (Ledig diskplass: %2) - + Not available This size is unavailable. Ikke tilgjengelig - + Torrent file (*%1) Torrentfil (*%1) - + Save as torrent file Lagre som torrentfil - + Couldn't export torrent metadata file '%1'. Reason: %2. Klarte ikke eksportere fil med torrent-metadata «%1» fordi: %2. - + Cannot create v2 torrent until its data is fully downloaded. Kan ikke lage v2-torrent før dens data er fullstendig nedlastet. - + Filter files... Filtrer filer … - + Parsing metadata... Analyserer metadata … - + Metadata retrieval complete Fullførte henting av metadata @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Laster ned torrent … Kilde: «%1» - + Failed to add torrent. Source: "%1". Reason: "%2" Klarte ikke legge til torrent. Kilde: «%1». Årsak: «%2» - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Oppdaget et forsøk på å legge til duplisert torrent. Kilde: %1. Eksisterende torrent: %2. Resultat: %3 - - - + Merging of trackers is disabled Sammenslåing av sporere er avslått - + Trackers cannot be merged because it is a private torrent Kan ikke slå sammen sporere fordi det er en privat torrent - + Trackers are merged from new source Sporere slås sammen fra ny kilde + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Delingsgrenser for torrent + Delingsgrenser for torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Gjennomsjekk torrenter på nytt ved fullførelse - - + + ms milliseconds ms - + Setting Innstilling - + Value Value set for this setting Verdi - + (disabled) (slått av) - + (auto) (auto) - + + min minutes min - + All addresses Alle adresser - + qBittorrent Section qBittorrent-seksjon - - + + Open documentation Åpne dokumentasjon - + All IPv4 addresses Alle IPv4-adresser - + All IPv6 addresses Alle IPv6-adresser - + libtorrent Section libtorrent-seksjon - + Fastresume files Filer for rask gjenopptakelse - + SQLite database (experimental) SQLite-database (eksperimentell) - + Resume data storage type (requires restart) Lagringstype for gjenopptakelse (krever omstart) - + Normal Normal - + Below normal Under normal - + Medium Medium - + Low Lav - + Very low Veldig lav - + Physical memory (RAM) usage limit Grense for bruk av fysisk minne (RAM) - + Asynchronous I/O threads Usynkrone I/O-tråder - + Hashing threads Hasher tråder - + File pool size Filforrådets størrelse - + Outstanding memory when checking torrents Grense for minnebruk ved kontroll av torrenter - + Disk cache Disk-hurtiglager - - - - + + + + + s seconds sek - + Disk cache expiry interval Utløpsintervall for hurtiglager på disk - + Disk queue size Køstørrelse på disk - - + + Enable OS cache Aktiver OS-hurtiglager - + Coalesce reads & writes Bland sammen lesinger og skrivinger - + Use piece extent affinity La likemenn foretrekke nærliggende deler - + Send upload piece suggestions Send forslag om opplastingsdeler - - - - + + + + + 0 (disabled) 0 (slått av) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Intervall for lagring av gjenopptakelsesdata [0: slått av] - + Outgoing ports (Min) [0: disabled] Utgående porter (Min) [0: slått av] - + Outgoing ports (Max) [0: disabled] Utgående porter (Maks) [0: slått av] - + 0 (permanent lease) 0 (fast adresse) - + UPnP lease duration [0: permanent lease] UPnP-adressens varighet [0: Fast adresse] - + Stop tracker timeout [0: disabled] Tidsavbrudd for sporers stopp-hendelse [0: slått av] - + Notification timeout [0: infinite, -1: system default] Tidsavbrudd for varsling [0: uendelig, -1: systemets standardverdi] - + Maximum outstanding requests to a single peer Største antall utestående forespørsler hos én likemann - - - - - + + + + + KiB KiB - + (infinite) (uendelig) - + (system default) (systemets standardverdi) - + + Delete files permanently + Slett filer for godt + + + + Move files to trash (if possible) + Flytt filer til papirkurven (hvis mulig) + + + + Torrent content removing mode + Modus for fjerning av torrentinnhold + + + This option is less effective on Linux Dette alternativet har mindre effekt på Linux - + Process memory priority Prosessens minneprioritet - + Bdecode depth limit Dybdegrense for bdecode - + Bdecode token limit Tokengrense for bdecode - + Default Forvalgt - + Memory mapped files Minneavbildede filer - + POSIX-compliant Iht. POSIX - + + Simple pread/pwrite + Enkel pread/pwrite + + + Disk IO type (requires restart) Type disk-IU (krever omstart) - - + + Disable OS cache Slå av OS-hurtiglager - + Disk IO read mode Lesemodus for disk-I/U - + Write-through Skriv-gjennom - + Disk IO write mode Lesemodus for disk-I/U - + Send buffer watermark Send mellomlagringsvannmerke - + Send buffer low watermark Send lavt mellomlager-vannmerke - + Send buffer watermark factor Send mellomlagringsvannmerkefaktor - + Outgoing connections per second Utgående tilkoblinger per sekund - - + + 0 (system default) 0 (systemets standardverdi) - + Socket send buffer size [0: system default] Bufferstørrelse for sending over socket [0: systemets standardverdi] - + Socket receive buffer size [0: system default] Bufferstørrelse for mottak over socket [0: systemets standardverdi] - + Socket backlog size Socket-køens størrelse - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervall for lagring av statistikk [0: slått av] + + + .torrent file size limit Grense for .torrent-filens størrelse - + Type of service (ToS) for connections to peers Tjenestetype (ToS) for tilkobling til likemenn - + Prefer TCP Foretrekk TCP - + Peer proportional (throttles TCP) Likemannsproporsjonalitet (Setter flaskehals på TCPen) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Støtte for internasjonale domenenavn (IDN) - + Allow multiple connections from the same IP address Tillat flere tilkoblinger fra samme IP-adresse - + Validate HTTPS tracker certificates Valider sertifikat til HTTPS-sporer - + Server-side request forgery (SSRF) mitigation Forebygging av forfalskede forespørsler på tjenersiden (SSRF) - + Disallow connection to peers on privileged ports Ikke tillat tilkobling til likemenn på priviligerte porter - + It appends the text to the window title to help distinguish qBittorent instances - + Legger til teksten i vindustittelen for å skille ulike qBittorrent-vinduer - + Customize application instance name - + Tilpass vindusnavn - + It controls the internal state update interval which in turn will affect UI updates Styrer internt oppdateringsintervall for status, som igjen påvirker oppdatering av brukergrensesnitt - + Refresh interval Oppdateringsintervall - + Resolve peer host names Finn frem til vertsnavn for likemenn - + IP address reported to trackers (requires restart) IP-adressen som skal rapporteres til sporere (krever omstart) - + + Port reported to trackers (requires restart) [0: listening port] + Porten som skal rapporteres til sporere (krever omstart) [0: lytteport] + + + Reannounce to all trackers when IP or port changed Reannonser til alle sporerne når IP eller port endres - + Enable icons in menus Slå på ikoner i menyer - + + Attach "Add new torrent" dialog to main window + Fest dialogvinduet «Legg til ny torrent» til hovedvinduet + + + Enable port forwarding for embedded tracker Slå på portviderekobling for innebygd sporer - + Enable quarantine for downloaded files Slå på karantene for nedlastede filer - + Enable Mark-of-the-Web (MOTW) for downloaded files Slå på MOTW (internett-markør) for nedlastede filer - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Påvirker sertifikatvalidering og protokollaktivitet utenom torrent (f.eks. RSS, programoppdateringer, torrent-filer, geoip-baser, osv.) + + + + Ignore SSL errors + Ignorer SSL-feil + + + (Auto detect if empty) (Gjenkjenn automatisk hvis tom) - + Python executable path (may require restart) Sti til python-fortolker (krever omstart) - + + Start BitTorrent session in paused state + Start BitTorrent-økt i pauset tilstand + + + + sec + seconds + sek + + + + -1 (unlimited) + -1 (ubegrenset) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Tidsavbrudd for nedstengning av BitTorrent-økt [-1: ubegrenset] + + + Confirm removal of tracker from all torrents Bekreft fjerning av sporer fra alle torrenter - + Peer turnover disconnect percentage Frakoblingsprosent for utskiftning av likemenn - + Peer turnover threshold percentage Terskelprosent for utskiftning av likemenn - + Peer turnover disconnect interval Frakoblingsintervall for utskiftning av likemenn - + Resets to default if empty Tilbakestill til standardverdi hvis tom - + DHT bootstrap nodes Startnoder for DHT - + I2P inbound quantity I2P inngående mengde - + I2P outbound quantity I2P utgående mengde - + I2P inbound length I2P inngående lengde - + I2P outbound length I2P utgående lengde - + Display notifications Vis varslinger - + Display notifications for added torrents Vis varslinger for tillagte torrenter - + Download tracker's favicon Last ned sporerens favikon - + Save path history length Antall lagringsstier som skal lagres - + Enable speed graphs Aktiver hastighetsgrafer - + Fixed slots Fastsatte plasser - + Upload rate based Opplastingsforholdsbasert - + Upload slots behavior Oppførsel for opplastingsplasser - + Round-robin Rundgang - + Fastest upload Raskeste opplasting - + Anti-leech Anti-snylting - + Upload choking algorithm Kvelningsalgoritme for opplastninger - + Confirm torrent recheck Bekreft ny gjennomsjekking av torrent - + Confirm removal of all tags Bekreft fjerning av alle etiketter - + Always announce to all trackers in a tier Alltid annonsér til alle sporere på ett nivå - + Always announce to all tiers Alltid annonsér til alle nivåer - + Any interface i.e. Any network interface Vilkårlig grensesnitt - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-algoritme for sammenblandet TCP-modus - + Resolve peer countries Finn fram til geografisk tilhørighet for likemenn - + Network interface Nettverksgrensesnitt - + Optional IP address to bind to Valgfri IP-adresse å tilknytte seg - + Max concurrent HTTP announces Største antall samtidige HTTP-annonseringer - + Enable embedded tracker Aktiver innebygd sporer - + Embedded tracker port Innebygd sporerport + + AppController + + + + Invalid directory path + Ugyldig mappesti + + + + Directory does not exist + Mappe finnes ikke + + + + Invalid mode, allowed values: %1 + Ugyldig modus, tillatte verdier: %1 + + + + cookies must be array + informasjonskapsler må være assosiativ tabell + + Application - + Running in portable mode. Auto detected profile folder at: %1 Kjører i portabel modus. Fant profilmappe på: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Fant overflødig kommandolinjeflagg: «%1». Portabel modus innebærer relativ hurtiggjenopptakelse. - + Using config directory: %1 Bruker oppsettsmappe: %1 - + Torrent name: %1 Torrentnavn: %1 - + Torrent size: %1 Torrentstørrelse: %1 - + Save path: %1 Lagringssti: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrenten ble lastet ned på %1. - + + Thank you for using qBittorrent. Takk for at du bruker qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, sender e-postmerknad - + Add torrent failed Klarte ikke legge til torrent - + Couldn't add torrent '%1', reason: %2. Klarte ikke legge til torrent «%1» fordi %2. - + The WebUI administrator username is: %1 Admin-brukernavnet for nettgrensesnittet er: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Admin-passord for nettgrensesnittet mangler. Her er et midlertidig passord for denne økta: %1 - + You should set your own password in program preferences. Velg ditt eget passord i programinnstillingene. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Webgrensesnittet er slått av. Rediger oppsettsfila manuelt for å slå på webgrensesnittet. - + Running external program. Torrent: "%1". Command: `%2` Kjører eksternt program. Torrent: «%1». Kommando: «%2» - + Failed to run external program. Torrent: "%1". Command: `%2` Klarte ikke kjøre eksternt program. Torrent: «%1». Kommando: «%2» - + Torrent "%1" has finished downloading Torrenten «%1» er ferdig nedlastet - + WebUI will be started shortly after internal preparations. Please wait... Webgrensesnittet vil startes snart etter interne forberedelser. Vennligst vent … - - + + Loading torrents... Laster torrenter … - + E&xit &Avslutt - + I/O Error i.e: Input/Output Error Inn/ut-datafeil - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Årsak: %2 - + Torrent added Torrent lagt til - + '%1' was added. e.g: xxx.avi was added. La til «%1». - + Download completed Nedlasting fullført - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 kjører. Prosess-ID: %2 - + + This is a test email. + Denne eposten er en test, bare så du vet det. + + + + Test email + Tester epost + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. «%1» er ferdig nedlastet. - + Information Informasjon - + To fix the error, you may need to edit the config file manually. For å fikse feilen må du kanskje redigere oppsettsfila manuelt. - + To control qBittorrent, access the WebUI at: %1 Bruk nettgrensesnittet for å styre qBittorrent: %1 - + Exit Avslutt - + Recursive download confirmation Rekursiv nedlastingsbekreftelse - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrenten «%1» inneholder torrentfiler, vil du fortsette nedlastingen av dem? - + Never Aldri - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekursiv nedlasting av .torrent-fil inni torrent. Kildetorrent: «%1». Fil: «%2» - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Klarte ikke å angi grense for bruk av fysisk minne (RAM). Feilkode: %1. Feilmelding: «%2» - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Klarte ikke angi grense for bruk av fysisk minne (RAM). Forespurt størrelse: %1. Systemets grense: %2. Feilkode: %3. Feilmelding: «%4» - + qBittorrent termination initiated avslutning av qBittorrent er igangsatt - + qBittorrent is shutting down... qBittorrent avslutter … - + Saving torrent progress... Lagrer torrent-framdrift … - + qBittorrent is now ready to exit qBittorrent er nå klar til avslutning @@ -1609,12 +1715,12 @@ Prioritet: - + Must Not Contain: Kan ikke inneholde: - + Episode Filter: Episodefilter: @@ -1667,263 +1773,263 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor &Eksporter … - + Matches articles based on episode filter. Samsvarende artikler i henhold til episodefilter. - + Example: Eksempel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match vil samsvare med 2, 5, de fra 8 til 15, 30, samt påfølgende episoder av sesong 1 - + Episode filter rules: Episodefiltreringsregler: - + Season number is a mandatory non-zero value Sesongnummeret er en påkrevd verdi som må være over null - + Filter must end with semicolon Filtre må avsluttes 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> samsvarer med episode 25 av sesong én - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normalgruppering: <b>1x25-40;</b> samsvarer med episode 25 til og med 40 av sesong én - + Episode number is a mandatory positive value Episodenummeret er en påkrevd verdi som må være over null - + Rules Regler - + Rules (legacy) Regler (foreldet) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Uendelig gruppering: <b>1x25-;</b> samsvarer med episode 25 og utover i sesong én og alle episoder i senere sesonger - + Last Match: %1 days ago Siste treff: %1 dager siden - + Last Match: Unknown Siste treff: Ukjent - + New rule name Navn på ny regel - + Please type the name of the new download rule. Skriv navnet på den nye nedlastingsregelen. - - + + Rule name conflict Regelnavnskonflikt - - + + A rule with this name already exists, please choose another name. En regel med dette navnet eksisterer allerede, 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 - + Invalid action Ugyldig handling - + The list is empty, there is nothing to export. Listen er tom, ingenting å eksportere. - + Export RSS rules Eksporter RSS-regler - + I/O Error Inn/ut-datafeil - + Failed to create the destination file. Reason: %1 Klarte ikke opprette målfilen. Årsak: %1 - + Import RSS rules Importer RSS-regler - + Failed to import the selected rules file. Reason: %1 Klarte ikke importere den valgte regelfilen. Årsak: %1 - + Add new rule... Legg til ny regel … - + Delete rule Slett regel - + Rename rule... Gi regel nytt navn … - + Delete selected rules Slett valgte regler - + Clear downloaded episodes... Fjern nedlastede episoder … - + Rule renaming Bytting av regelnavn - + Please type the new rule name Skriv inn nytt regelnavn - + Clear downloaded episodes Fjern nedlastede episoder - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Er du sikker på at du vil tømme den valgte regelens liste over nedlastede episoder? - + Regex mode: use Perl-compatible regular expressions Regex-modus: Bruk Perl-kompatible regulære uttrykk - - + + Position %1: %2 Posisjon %1: %2 - + Wildcard mode: you can use Joker-modus: Du kan bruke - - + + Import error Importeringsfeil - + Failed to read the file. %1 Klarte ikke lese fila. %1 - + ? to match any single character ? for å samsvare med ethvert enkeltstående tegn - + * to match zero or more of any characters * for å samsvare med null eller flere av ethvert tegn - + Whitespaces count as AND operators (all words, any order) Blanktegn teller som OG-operatorer (alle ord, vilkårlig forordning) - + | is used as OR operator | brukes som ELLER-operator - + If word order is important use * instead of whitespace. Hvis ord-rekkefølgen er viktig, bruk * i stedet for tomrom. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Et uttrykk med en tom %1-klausul (f.eks. %2) - + will match all articles. vil samsvare med alle artikler. - + will exclude all articles. vil utelate alle artikler. @@ -1965,7 +2071,7 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Kan ikke opprette gjenopptakelsesmappe for torrenter: «%1» @@ -1975,28 +2081,38 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Kan ikke tolke gjenopptakelsesdata: ugyldig format - - + + Cannot parse torrent info: %1 Kan ikke tolke informasjon om torrent: %1 - + Cannot parse torrent info: invalid format Kan ikke tolke informasjon om torrent: ugyldig format - + Mismatching info-hash detected in resume data Fant info-hash som ikke samsvarer i gjenopptakelsesdata - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Klarte ikke lagre torrent-metadata til «%1». Feil: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Klarte ikke lagre gjenopprettelsesdata for torrent til «%1». Feil: %2. @@ -2007,16 +2123,17 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor + Cannot parse resume data: %1 Kan ikke tolke gjenopptakelsesdata: %1 - + Resume data is invalid: neither metadata nor info-hash was found Gjenopptakelsesdata er ugyldig: fant verken metadata eller info-hash - + Couldn't save data to '%1'. Error: %2 Klarte ikke lagre data til «%1». Feil: %2 @@ -2024,38 +2141,60 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor BitTorrent::DBResumeDataStorage - + Not found. Fant ikke. - + Couldn't load resume data of torrent '%1'. Error: %2 Klarte ikke laste gjenopprettelsesdata til torrenten «%1». Feil: %2 - - + + Database is corrupted. Databasen er ødelagt. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Klarte ikke slå på journal med gjenopprettelsesdata («WAL – write ahead logging»). Feilmelding: %1. - + Couldn't obtain query result. Klarte ikke hente resultatet av spørringen. - + WAL mode is probably unsupported due to filesystem limitations. WAL-modus støttes ikke, kanskje på grunn av begrensninger i filsystemet. - + + + Cannot parse resume data: %1 + Kan ikke tolke gjenopptakelsesdata: %1 + + + + + Cannot parse torrent info: %1 + Kan ikke tolke informasjon om torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Klarte ikke begynne transaksjon. Feil: %1 @@ -2063,22 +2202,22 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Klarte ikke lagre torrent-metadata. Feil: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Klarte ikke lagre gjenopprettelsesdata for torrenten «%1». Feil: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Klarte ikke slette gjenopptakelsesdata til torrenten «%1». Feil: %2 - + Couldn't store torrents queue positions. Error: %1 Klarte ikke lagre kø-posisjoner til torrenter. Feil: %1 @@ -2086,457 +2225,503 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Støtte for distribuert hash-tabell (DHT): %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF AV - - + + Local Peer Discovery support: %1 Støtte for lokal likemannsoppdagelse: %1 - + Restart is required to toggle Peer Exchange (PeX) support Omstart kreves for å veksle utveksling av likemenn (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Klarte ikke gjenoppta torrent «%1» fordi «%2» - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Klarte ikke gjenoppta torrent: Fant inkonsistent torrent-ID. Torrent: «%1» - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Fant inkonsistente data: Kategori mangler i oppsettsfilen. Kategori vil gjenopprettes, men med forvalgt verdi. Torrent: «%1». Kategori: «%2» - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Fant inkonsistente data: Ugyldig kategori. Torrent: «%1». Kategori: «%2» - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Ikke samsvar mellom lagringssti i gjenopprettet kategori og torrentens gjeldende lagringssti. Torrent er endret til manuell modus. Torrent: «%1». Kategori: «%2» - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Fant inkonsistente data: tagg mangler i oppsettsfila, men vil gjenopprettes. Torrent: «%1». Tagg: «%2» - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Fant inkonsistente data: Ugyldig tagg. Torrent «%1». Tagg: «%2» - + System wake-up event detected. Re-announcing to all the trackers... Oppdaget at systemet har våknet opp. Reannonserer til alle sporere … - + Peer ID: "%1" Likemanns-ID: «%1» - + HTTP User-Agent: "%1" HTTP-brukeragent: «%1» - + Peer Exchange (PeX) support: %1 Støtte for utveksling av likemenn (PeX): %1 - - + + Anonymous mode: %1 Anonym modus: %1 - - + + Encryption support: %1 Støtte for kryptering: %1 - - + + FORCED TVUNGET - + Could not find GUID of network interface. Interface: "%1" Fant ikke GUID til nettverksgrensesnittet. Grensesnitt: «%1» - + Trying to listen on the following list of IP addresses: "%1" Forsøker å lytte på følgende liste med IP-adresser: «%1» - + Torrent reached the share ratio limit. Torrent oppnådde grense for delingsforhold. - - - + Torrent: "%1". Torrent: «%1». - - - - Removed torrent. - Fjernet torrent. - - - - - - Removed torrent and deleted its content. - Fjernet torrent og slettet innholdet. - - - - - - Torrent paused. - Torrent satt på pause. - - - - - + Super seeding enabled. Superdeling er slått på. - + Torrent reached the seeding time limit. Torrent oppnådde grense for delingstid. - + Torrent reached the inactive seeding time limit. Torrent oppnådde grense for inaktiv delingstid. - + Failed to load torrent. Reason: "%1" Klarte ikke laste torrent. Årsak: «%1» - + I2P error. Message: "%1". I2P-feil. Melding: «%1». - + UPnP/NAT-PMP support: ON Støtte for UPnP/NAT-PMP: PÅ - + + Saving resume data completed. + Fullførte lagring av gjenopptakelsesdata. + + + + BitTorrent session successfully finished. + Fullførte BitTorrent-økt. + + + + Session shutdown timed out. + Tidsavbrudd for nedstengning av økt. + + + + Removing torrent. + Fjerner torrent. + + + + Removing torrent and deleting its content. + Fjerner torrent og sletter innholdet. + + + + Torrent stopped. + Torrent stoppet. + + + + Torrent content removed. Torrent: "%1" + Fjernet torrent-innholdet. Torrent: «%1» + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Klarte ikke fjerne torrent-innholdet. Torrent: «%1». Feil: «%2» + + + + Torrent removed. Torrent: "%1" + Fjernet torrent. Torrent: «%1» + + + + Merging of trackers is disabled + Sammenslåing av sporere er avslått + + + + Trackers cannot be merged because it is a private torrent + Kan ikke slå sammen sporere fordi det er en privat torrent + + + + Trackers are merged from new source + Sporere slås sammen fra ny kilde + + + UPnP/NAT-PMP support: OFF Støtte for UPnP/NAT-PMP: AV - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Klarte ikke eksportere torrent. Torrent: «%1». Mål: «%2». Årsak: «%3» - + Aborted saving resume data. Number of outstanding torrents: %1 Avbrøt lagring av gjenopptakelsesdata. Antall gjenværende torrenter: %1 - + The configured network address is invalid. Address: "%1" Den oppsatte nettverksadressen er ugyldig. Adresse: «%1» - - + + Failed to find the configured network address to listen on. Address: "%1" Fant ikke noen nettverksadresse å lytte på. Adresse: «%1» - + The configured network interface is invalid. Interface: "%1" Det oppsatte nettverksgrensesnittet er ugyldig. Grensesnitt: «%1» - + + Tracker list updated + Sporerlisten ble oppdatert + + + + Failed to update tracker list. Reason: "%1" + Klarte ikke oppdatere sporerlisten. Årsak: «%1» + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Forkastet ugyldig IP-adresse i listen over bannlyste IP-adresser. IP: «%1» - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" La sporer til i torrent. Torrent: «%1». Sporer: «%2» - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Fjernet sporer fra torrent. Torrent: «%1». Sporer: «%2» - + Added URL seed to torrent. Torrent: "%1". URL: "%2" La nettadressedeler til i torrent. Torrent: «%1». Adresse: «%2» - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Fjernet nettadressedeler fra torrent. Torrent: «%1». Adresse: «%2» - - Torrent paused. Torrent: "%1" - Torrent satt på pause. Torrent: «%1» + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Klarte ikke fjerne partfil. Torrent: «%1». Årsak: «%2». - + Torrent resumed. Torrent: "%1" Gjenoptok torrent. Torrent: «%1» - + Torrent download finished. Torrent: "%1" Nedlasting av torrent er fullført. Torrent: «%1» - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Avbrøt flytting av torrent. Torrent: «%1». Kilde: «%2». Mål: «%3» - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Stoppet torrent. Torrent: «%1» + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Klarte ikke legge flytting av torrent i kø. Torrent: «%1». Kilde: «%2». Mål: «%3». Årsak: Torrenten flyttes nå til målet - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Klarte ikke legge flytting av torrent i kø. Torrent: «%1». Kilde: «%2». Mål: «%3». Årsak: Begge stiene peker til samme sted - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" La flytting av torrent i kø. Torrent: «%1». Kilde: «%2». Mål: «%3» - + Start moving torrent. Torrent: "%1". Destination: "%2" Start flytting av torrent. Torrent: «%1». Mål: «%2» - + Failed to save Categories configuration. File: "%1". Error: "%2" Klarte ikke lagre oppsett av kategorier. Fil: «%1». Feil: «%2» - + Failed to parse Categories configuration. File: "%1". Error: "%2" Klarte ikke fortolke oppsett av kategorier. Fil: «%1». Feil: «%2» - + Successfully parsed the IP filter file. Number of rules applied: %1 Fortolket fil med IP-filter. Antall regler tatt i bruk: %1 - + Failed to parse the IP filter file Klarte ikke fortolke fil med IP-filter - + Restored torrent. Torrent: "%1" Gjenopprettet torrent. Torrent: «%1» - + Added new torrent. Torrent: "%1" La til ny torrent. Torrent: «%1» - + Torrent errored. Torrent: "%1". Error: "%2" Torrent mislyktes. Torrent: «%1». Feil: «%2» - - - Removed torrent. Torrent: "%1" - Fjernet torrent. Torrent: «%1» - - - - Removed torrent and deleted its content. Torrent: "%1" - Fjernet torrent og slettet innholdet. Torrent: «%1» - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrenten mangler SSL-parametre. Torrent: «%1». Melding: «%2» - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Varsel om filfeil. Torrent: «%1». Fil: «%2». Årsak: «%3» - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP: Portviderekobling mislyktes. Melding: «%1» - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP: Portviderekobling lyktes. Melding: «%1» - + IP filter this peer was blocked. Reason: IP filter. IP-filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrert port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). priviligert port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Klarte ikke koble til nettadressedelernavn. Torrent: «%1». URL: «%2». Feil: «%3» + + + BitTorrent session encountered a serious error. Reason: "%1" Det oppstod en alvorlig feil i BitTorrent-økta. Årsak: «%1» - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5-proxyfeil. Adresse: «%1». Melding: «%2». - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 blandingsmodusbegrensninger - + Failed to load Categories. %1 Klarte ikke laste kategorier. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Klarte ikke laste oppsett av kategorier. Fil: «%1». Feil: «Ugyldig dataformat» - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Fjernet torrent, men klarte ikke å slette innholdet. Torrent: «%1». Feil: «%2» - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 er slått av - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 er slått av - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - DNS-oppslag av nettadressedelernavn mislyktes. Torrent: «%1». URL: «%2». Feil: «%3». - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Mottok feilmelding fra nettadressedeler. Torrent: «%1». URL: «%2». Melding: «%3». - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Lytter på IP. IP: «%1». Port: «%2/%3» - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Mislyktes i å lytte på IP. IP: «%1». Port: «%2/%3». Årsak: «%4» - + Detected external IP. IP: "%1" Oppdaget ekstern IP. IP: «%1» - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Feil: Den interne varselkøen er full, og varsler forkastes. Ytelsen kan være redusert. Forkastede varseltyper: «%1». Melding: «%2». - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Flytting av torrent er fullført. Torrent: «%1». Mål: «%2» - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Klarte ikke flytte torrent. Torrent: «%1». Kilde: «%2». Mål: «%3». Årsak: «%4» @@ -2546,19 +2731,19 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Failed to start seeding. - + Klarte ikke starte deling. BitTorrent::TorrentCreator - + Operation aborted Handling avbrutt - - + + Create new torrent file failed. Reason: %1. Klarte ikke opprette ny torrentfil fordi: %1. @@ -2566,67 +2751,67 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Klarte ikke legge likemann «%1» til torrentfil «%2» fordi: %3 - + Peer "%1" is added to torrent "%2" La likemann «%1» til torrent «%2» - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Oppdaget uventede data. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Klarte ikke skrive til fil fordi: «%1». Torrenten har nå modusen «kun opplasting». - + Download first and last piece first: %1, torrent: '%2' Last ned første og siste bit først: %1, torrent: «%2» - + On - + Off Av - + Failed to reload torrent. Torrent: %1. Reason: %2 Klarte ikke gjeninnlaste torrent «%1» fordi «%2» - + Generate resume data failed. Torrent: "%1". Reason: "%2" Klarte ikke danne gjenopptakelsesdata. Torrent: «%1», feil: «%2» - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Klarte ikke gjenopprette torrent. Filene ble kanskje flyttet eller lagringsenheten er utilgjengelig. Torrent: «%1». Årsak: «%2». - + Missing metadata Mangler metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Klarte ikke endre navn. Torrent: «%1», fil: «%2», årsak: «%3» - + Performance alert: %1. More info: %2 Varsel om ytelse: %1. Mer info: %2 @@ -2647,189 +2832,189 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameteret '%1' må følge syntaksen '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameteret '%1' må følge syntaksen '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Forventet heltall i miljøvariabel '%1', men fikk '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameteret '%1' må følge syntaksen '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Forventet %1 i miljøvariabel '%2', men fikk '%3' - - + + %1 must specify a valid port (1 to 65535). %1 må spesifisere en gyldig port (1 til 65535). - + Usage: Bruk: - + [options] [(<filename> | <url>)...] [alternativer] [(<filename> | <url>)...] - + Options: Alternativer: - + Display program version and exit Vis programversjon og avslutt - + Display this help message and exit Vis denne hjelpemeldingen og avslutt - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameteret '%1' må følge syntaksen '%1=%2' + + + Confirm the legal notice Bekreft juridisk merknad - - + + port port - + Change the WebUI port Endre port for nettgrensesnittet - + Change the torrenting port Endre torrent-port - + Disable splash screen Skru av velkomstskjerm - + Run in daemon-mode (background) Kjør i bakgrunnsmodus - + dir Use appropriate short form or abbreviation of "directory" kat. - + Store configuration files in <dir> Lagre oppsettsfiler i <dir> - - + + name navn - + Store configuration files in directories qBittorrent_<name> Lagre oppsettsfiler i mapper qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hack inn i libtorrents hurtigopptakelsesfiler og gjør filstier relative til profilmappen - + files or URLs filer eller URL-er - + Download the torrents passed by the user Last ned torrenter godkjent av brukeren - + Options when adding new torrents: Valg ved tillegg av nye torrenter: - + path sti - + Torrent save path Torrentlagringssti - - Add torrents as started or paused - Legg til torrenter som startet eller pauset + + Add torrents as running or stopped + Legg til torrenter som startet eller stoppet - + Skip hash check Hopp over sjekksummering - + Assign torrents to category. If the category doesn't exist, it will be created. Tildel torrenter til kategori. Hvis kategorien ikke finnes vil den bli opprettes. - + Download files in sequential order Last ned filer i sekvensiell rekkefølge - + Download first and last pieces first Last ned de første og siste delene først - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Angi hvorvidt dialogvinduet «Legg til ny torrent» åpnes når en torrent legges til. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Valgbare verdier kan angis via miljøvariabler. For valget ved navn "parameter-name" er miljøvariabelen "QBT_PARAMETER_NAME" (med store bokstaver "-" erstattet med "_". For å sende flaggverdier, sett variabelen til "1" eller "TRUE". For eksempel for å skru av oppstartsskjermen: - + Command line parameters take precedence over environment variables Kommandolinjeparameter overstyrer miljøvariabler - + Help Hjelp @@ -2881,13 +3066,13 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor - Resume torrents - Gjenoppta torrenter + Start torrents + Start torrenter - Pause torrents - Sett torrenter på pause + Stop torrents + Stopp torrenter @@ -2898,15 +3083,20 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor ColorWidget - + Edit... Rediger … - + Reset Tilbakestill + + + System + System + CookiesDialog @@ -2947,12 +3137,12 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor CustomThemeSource - + Failed to load custom theme style sheet. %1 Klarte ikke laste stilark for selvvalgt grensesnittdrakt. %1 - + Failed to load custom theme colors. %1 Klarte ikke laste farger for selvvalgt grensesnittdrakt. %1 @@ -2960,7 +3150,7 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor DefaultThemeSource - + Failed to load default theme colors. %1 Klarte ikke laste farger for standard grensesnittdrakt. %1 @@ -2979,23 +3169,23 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor - Also permanently delete the files - Slett også filene permanent + Also remove the content files + Også fjern filene i innholdet - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Er du sikker på at du vil fjerne «%1» fra overføringslisten? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Er du sikker på at du vil fjerne disse %1 torrentene fra overføringslisten? - + Remove Fjern @@ -3008,12 +3198,12 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Last ned fra URLer - + Add torrent links Legg til torrentlenker - + One link per line (HTTP links, Magnet links and info-hashes are supported) Én lenke per linje (HTTP-lenker, magnetlenker, og informative verifiseringsnøkler er støttet) @@ -3023,12 +3213,12 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Last ned - + No URL entered Ingen URL er skrevet inn - + Please type at least one URL. Vennligst skriv inn minst én URL. @@ -3187,25 +3377,48 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Fortolkningsfil: Filterfilen er ikke en gyldig PeerGuardian-P2B-fil. + + FilterPatternFormatMenu + + + Pattern Format + Mønsterformat + + + + Plain text + Ren tekst + + + + Wildcards + Jokertegn + + + + Regular expression + Regulære uttrykk + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Laster ned torrent … Kilde: «%1» - - Trackers cannot be merged because it is a private torrent - Kan ikke slå sammen sporere fordi det er en privat torrent - - - + Torrent is already present Torrenten er allerede til stede - + + Trackers cannot be merged because it is a private torrent. + Kan ikke slå sammen sporere fordi det er en privat torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? «%1»-torrenten er allerede i overføringslisten. Vil du slå sammen sporere fra den nye kilden? @@ -3213,38 +3426,38 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor GeoIPDatabase - - + + Unsupported database file size. Databasefilens størrelse støttes ikke. - + Metadata error: '%1' entry not found. Metadata-feil: Fant ikke oppføringen «%1». - + Metadata error: '%1' entry has invalid type. Metadata-feil: Oppføringen «%1» 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 - + Database corrupted: no data section found. Ødelagt database: Ingen dataseksjon funnet. @@ -3252,17 +3465,17 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-forespørselens størrelse overskrider grensen, derfor lukkes socketen. Grense: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Ugyldig HTTP-forespørselsmetode, lukker socketen. IP: %1. Metode: «%2» - + Bad Http request, closing socket. IP: %1 Ugyldig HTTP-forespørsel, lukker socketen. IP: %1 @@ -3303,26 +3516,60 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor IconWidget - + Browse... Bla gjennom … - + Reset Tilbakestill - + Select icon Velg ikon - + Supported image files Støttede bildefiler + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Strømstyringen fant passende D-Bus-grensesnitt. Grensesnitt: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Strømstyringsfeil. Handling: %1. Feil: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Uventet feil ved strømstyring. Tilstand: %1. Feil: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 ble blokkert fordi: %2. - + %1 was banned 0.0.0.0 was banned %1 ble bannlyst @@ -3369,60 +3616,60 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 er et ukjent kommandolinje-parameter. - - + + %1 must be the single command line parameter. %1 må være det enkle kommandolinje-parametret. - + Run application with -h option to read about command line parameters. Kjør programmet med -h flagg for å lese om kommandolinje-parametre. - + Bad command line Dårlig kommandolinje - + Bad command line: Dårlig kommandolinje: - + An unrecoverable error occurred. Det oppstod en ubotelig feil. + - qBittorrent has encountered an unrecoverable error. Det oppstod en ubotelig feil i qBittorrent. - + You cannot use %1: qBittorrent is already running. Du kan ikke bruke %1: qBittorrent kjører allerede. - + Another qBittorrent instance is already running. En annen qBittorrent-instans kjører allerede. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Fant uventet qBittorrent-instans. Avslutter denne instansen. Gjeldende prosess-ID: %1 - + Error when daemonizing. Reason: "%1". Error code: %2. Klarte ikke gå inn i nissemodus fordi «%1». Feilkode: %2. @@ -3435,609 +3682,681 @@ Støtter de følgende formatene: S01E01, 1x1, 2017.12.31, og 31.12.2017 (Datofor R&ediger - + &Tools Verk&tøy - + &File &Fil - + &Help &Hjelp - + On Downloads &Done Når nedlastinger er fer&dige - + &View &Vis - + &Options... &Alternativer … - - &Resume - &Gjenoppta - - - + &Remove Fje&rn - + Torrent &Creator &Torrentoppretter - - + + Alternative Speed Limits Alternative hastighetsgrenser - + &Top Toolbar &Toppverktøylinje - + Display Top Toolbar Vis toppverktøylinjen - + Status &Bar Status&felt - + Filters Sidebar Sidestolpe med filter - + 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øke&motor - + L&ock qBittorrent Lås qBitt&orrent - + Do&nate! Do&ner! - + + Sh&utdown System + Sl&å av systemet + + + &Do nothing &Ikke gjør noe - + Close Window Lukk vindu - - R&esume All - Gj&enoppta alle - - - + Manage Cookies... Behandle informasjonskapsler … - + Manage stored network cookies Behandle lagrede nettverksinformasjonskapsler - + Normal Messages Normale meldinger - + Information Messages Informasjonsmeldinger - + Warning Messages Advarselsmeldinger - + Critical Messages Kritiske meldinger - + &Log &Logg - + + Sta&rt + Sta&rt + + + + Sto&p + Sto&pp + + + + R&esume Session + Gj&enoppta økt + + + + Pau&se Session + Sett økt på pau&se + + + Set Global Speed Limits... Velg globale hastighetsgrenser … - + Bottom of Queue Nederst i køen - + Move to the bottom of the queue Flytt nederst i køen - + Top of Queue Øverst i køen - + Move to the top of the queue Flytt øverst i køen - + Move Down Queue Flytt ned i køen - + Move down in the queue Flytt ned i køen - + Move Up Queue Flytt opp i køen - + Move up in the queue Flytt opp i køen - + &Exit qBittorrent Avslutt qBittorr&ent - + &Suspend System &Sett system i hvilemodus - + &Hibernate System Sett system i &dvalemodus - - S&hutdown System - Sk&ru av systemet - - - + &Statistics &Statistikk - + Check for Updates Se etter oppdateringer - + Check for Program Updates Se etter programoppdateringer - + &About &Om - - &Pause - Sett på &pause - - - - P&ause All - Sett alt på p&ause - - - + &Add Torrent File... Legg til torrent&fil … - + Open Åpne - + E&xit &Avslutt - + Open URL Åpne nettadresse - + &Documentation &Dokumentasjon - + Lock Lås - - - + + + Show Vis - + Check for program updates Se etter programoppdateringer - + Add Torrent &Link... Legg til torrent&lenke … - + If you like qBittorrent, please donate! Send noen kroner hvis du liker qBittorrent. - - + + Execution Log Utførelseslogg - + Clear the password Fjern passordet - + &Set Password &Sett passord - + Preferences Innstillinger - + &Clear Password &Fjern passord - + Transfers Overføringer - - + + qBittorrent is minimized to tray qBittorrent er minimert til verktøykassen - - - + + + This behavior can be changed in the settings. You won't be reminded again. Denne oppførselen kan bli endret i innstillingene. Du vil ikke bli minnet på det igjen. - + 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 systemsøm - - + + UI lock password Låsepassord for brukergrensesnitt - - + + Please type the UI lock password: Skriv låsepassordet for brukergrensesnittet: - + Are you sure you want to clear the password? Er du sikker på at du vil fjerne passordet? - + Use regular expressions Bruk regulære uttrykk - + + + Search Engine + Søkemotor + + + + Search has failed + Søket mislyktes + + + + Search has finished + Søket er ferdig + + + Search Søk - + Transfers (%1) Overføringer (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent ble nettopp oppdatert og trenger å bli omstartet for at forandringene skal tre i kraft. - + qBittorrent is closed to tray qBittorrent er lukket til verktøykassen - + Some files are currently transferring. Noen filer overføres for øyeblikket. - + Are you sure you want to quit qBittorrent? Er du sikker på at du vil avslutte qBittorrent? - + &No &Nei - + &Yes &Ja - + &Always Yes &Alltid Ja - + Options saved. Valg er lagret. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSET] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Klarte ikke laste ned Python-installerer. Feil: %1. +Den må installeres manuelt. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Klarte ikke endre navnet til Python-installereren. Kilde: «%1». Mål: «%2». + + + + Python installation success. + Python-installering vellykket. + + + + Exit code: %1. + Avslutningskode: %1. + + + + Reason: installer crashed. + Årsak: Installasjonen krasjet. + + + + Python installation failed. + Python-installering mislyktes. + + + + Launching Python installer. File: "%1". + Starter Python-installasjon. Fil: «%1». + + + + Missing Python Runtime Manglende Python-kjøretidsfil - + qBittorrent Update Available qBittorrent-oppdatering tilgjengelig - + 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. - - + + Old Python Runtime Gammel Python-kjøretidsfil - + A new version is available. En ny versjon er tilgjengelig. - + Do you want to download %1? Vil du laste ned %1? - + Open changelog... Åpne endringslogg … - + No updates available. You are already using the latest version. Ingen oppdateringer tilgjengelig. Du bruker allerede den seneste versjonen. - + &Check for Updates &Se etter oppdateringer - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Python-versjonen din (%1) er utdatert. Minstekravet er: %2. Vil du installere en nyere versjon nå? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - Din Python-versjon (%1) er utdatert. Oppgrader til siste versjon for at søkemotorene skal virke. + Din Python-versjon (%1) er utdatert. Oppgrader til siste versjon for at søkemotorene skal virke. Minimumskrav: %2. - + + Paused + Pauset + + + Checking for Updates... Ser etter oppdateringer … - + Already checking for program updates in the background Ser allerede etter programoppdateringer i bakgrunnen - + + Python installation in progress... + Python-installasjon pågår … + + + + Failed to open Python installer. File: "%1". + Klarte ikke åpne Python-installerer. Fil: «%1». + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + MD5-sjekksum mislyktes for Python-installerer. Fil: «%1». Reell sjekksum: «%2». Forventet sjekksum: «%3». + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + SHA3-512-sjekksum mislyktes for Python-installerer. Fil: «%1». Reell sjekksum: «%2». Forventet sjekksum: «%3». + + + Download error Nedlastingsfeil - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Klarte ikke laste ned Python-oppsettet fordi: %1. -Installer det manuelt. - - - - + + Invalid password Ugyldig passord - + Filter torrents... Filtrer torrenter … - + Filter by: Filtrer etter: - + The password must be at least 3 characters long Passordet må være minst 3 tegn langt - - - + + + RSS (%1) Nyhetsmating (%1) - + The password is invalid Passordet er ugyldig - + DL speed: %1 e.g: Download speed: 10 KiB/s ↓-hastighet: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s ↑-hastighet: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [↓: %1, ↑: %2] qBittorrent %3 - - - + Hide Skjul - + Exiting qBittorrent Avslutter qBittorrent - + Open Torrent Files Åpne torrentfiler - + Torrent Files Torrentfiler @@ -4232,7 +4551,12 @@ Installer det manuelt. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL-feil, URL: «%1», feil: «%2» + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorerer SSL-fil, URL: «%1», feil: «%2» @@ -5526,47 +5850,47 @@ Installer det manuelt. Net::Smtp - + Connection failed, unrecognized reply: %1 Tilkobling mislyktes. Dette svaret forvirret programmet: %1 - + Authentication failed, msg: %1 Autentisering mislyktes. Melding: %1 - + <mail from> was rejected by server, msg: %1 Tjeneren avviste <mail from>. Melding: %1 - + <Rcpt to> was rejected by server, msg: %1 Tjeneren avviste <Rcpt to>. Melding: %1 - + <data> was rejected by server, msg: %1 Tjeneren avviste <data>. Melding: %1 - + Message was rejected by the server, error: %1 Tjeneren avviste meldingen. Feil: %1 - + Both EHLO and HELO failed, msg: %1 Mislyktes med både EHLO og HELO. Melding: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP-tjeneren støtter tilsynelatende ikke noen av de følgende autentiseringsmetodene: CRAM-MD5, PLAIN, LOGIN. Unnlater autentisering, men det vil antakelig mislykkes … Tjenerens aut.-metoder: %1 - + Email Notification Error: %1 E-post-varslingsfeil: %1 @@ -5604,299 +5928,283 @@ Installer det manuelt. BitTorrent - + RSS Nyhetsmating (RSS) - - Web UI - Nettgrensesnitt - - - + Advanced Avansert - + Customize UI Theme... Velg grensesnittdrakt … - + Transfer List Overføringsliste - + Confirm when deleting torrents Bekreft ved sletting av torrenter - - Shows a confirmation dialog upon pausing/resuming all the torrents - Vis bekreftelsesdialog når torrenter pauses/gjenopptas - - - - Confirm "Pause/Resume all" actions - Bekreft handlingene «Pause/Gjenoppta alle» - - - + Use alternating row colors In table elements, every other row will have a grey background. Bruk alternerende radfarger - + Hide zero and infinity values Skjul null- og uendelighets -verdier - + Always Alltid - - Paused torrents only - Kun torrenter satt på pause - - - + Action on double-click Handling ved dobbelklikk - + Downloading torrents: Nedlastende torrenter: - - - Start / Stop Torrent - Start / stopp torrent - - - - + + Open destination folder Åpne målmappe - - + + No action Ingen handling - + Completed torrents: Fullførte torrenter: - + Auto hide zero status filters Skjul automatisk filtre som mangler status - + Desktop Skrivebord - + Start qBittorrent on Windows start up Start qBittorrent ved Windows-oppstart - + Show splash screen on start up Vis velkomstskjerm ved oppstart - + Confirmation on exit when torrents are active Bekreftelse ved programavslutning når torrenter er aktive - + Confirmation on auto-exit when downloads finish Bekreftelse ved auto-programavslutning når nedlastinger er ferdige - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>For å bruke qBittorrent som standardprogram for .torrent-filer og/eller Magnet-lenker <br/> kan du bruke <span style=" font-weight:600;">Standardprogrammer</span> i <span style=" font-weight:600;">Kontrollpanelet</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Oppsett av innhold i torrent: - + Original Opprinnelig - + Create subfolder Lag undermappe - + Don't create subfolder Ikke lag undermappe - + The torrent will be added to the top of the download queue Torrenten vil legges øverst i nedlastingskøen - + Add to top of queue The torrent will be added to the top of the download queue Legg øverst i køen - + When duplicate torrent is being added Når duplisert torrent legges til - + Merge trackers to existing torrent Slå sammen sporere til eksisterende torrent - + Keep unselected files in ".unwanted" folder Behold fravalgte filer i mappa «.unwanted» - + Add... Legg til … - + Options.. Alternativer … - + Remove Fjern - + Email notification &upon download completion E-postvarsling &ved nedlastingsfullførelse - + + Send test email + Send test-epost + + + + Run on torrent added: + Kjør når torrent legges til: + + + + Run on torrent finished: + Kjør når torrent er fullført: + + + Peer connection protocol: Protokoll for tilkoblinger fra likemenn: - + Any Hvilken som helst - + I2P (experimental) I2P (eksperimentell) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Hvis &quo;blandet modus&quot; er slått på, så vil I2P-torrenter kunne få likemenn fra andre kilder enn sporeren og koble til vanlige IP-adresser uten anonymisering. Dette kan være nyttig hvis brukeren ikke er interessert i anonymisering, men likevel vil koble til I2P-likemenn.</p></body></html> - - - + Mixed mode Blandet modus - - Some options are incompatible with the chosen proxy type! - Noen alternativer passer ikke med valgt type mellomtjener. - - - + If checked, hostname lookups are done via the proxy Velg for å slå opp vertsnavn via mellomtjener - + Perform hostname lookup via proxy Slå opp vertsnavn via mellomtjener - + Use proxy for BitTorrent purposes Bruk mellomtjener for BitTorrent-formål - + RSS feeds will use proxy Informasjonskanaler vil bruke mellomtjener - + Use proxy for RSS purposes Bruk mellomtjener for informasjonskanaler (RSS) - + Search engine, software updates or anything else will use proxy Søkemotor, programvareoppdateringer og alt annet vil bruke mellomtjener - + Use proxy for general purposes Bruk alltid mellomtjener - + IP Fi&ltering IP-fil&trering - + Schedule &the use of alternative rate limits Planlegg &bruken av alternative hastighetsgrenser - + From: From start time Fra: - + To: To end time Til: - + Find peers on the DHT network Finn likemenn på DHT-nettverket - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Krev kryptering: Koble kun til likemenn med protokollkryptering Slå av kryptering: Koble kun til likemenn uten protokollkryptering - + Allow encryption Tillat kryptering - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mer informasjon</a>) - + Maximum active checking torrents: Største antall aktive kontroller av torrenter: - + &Torrent Queueing &Torrentkødanning - + When total seeding time reaches Når total delingstid når - + When inactive seeding time reaches Når inaktiv delingstid når - - A&utomatically add these trackers to new downloads: - A&utomatisk legg disse sporerne til nye nedlastinger: - - - + RSS Reader Nyhetsmatingsleser (RSS) - + Enable fetching RSS feeds Skru på innhenting av RSS-informasjonskanaler - + Feeds refresh interval: Oppdateringsintervall for informasjonskanaler: - + Same host request delay: - + Forespørselsforsinkelse samme vert: - + Maximum number of articles per feed: Maksimalt antall artikler per mating: - - - + + + min minutes min - + Seeding Limits Delegrenser - - Pause torrent - Sett torrent på pause - - - + Remove torrent Fjern torrent - + Remove torrent and its files Fjern torrent og dens filer - + Enable super seeding for torrent Skru på superdeling av torrent - + When ratio reaches Når forholdet når - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Stopp torrent + + + + A&utomatically append these trackers to new downloads: + A&utomatisk legg til disse sporerne til nye nedlastinger: + + + + Automatically append trackers from URL to new downloads: + Automatisk legg til disse sporerne fra adresse til nye nedlastinger: + + + + URL: + URL: + + + + Fetched trackers + Hentet sporere + + + + Search UI + Søkegrensesnitt + + + + Store opened tabs + Lagre åpne faner + + + + Also store search results + Lagre også søkeresultater + + + + History length + Historikk-lengde + + + RSS Torrent Auto Downloader Automatisk RSS-informasjonskanalsnedlaster - + Enable auto downloading of RSS torrents Skru på automatisk nedlasting av RSS-torrenter - + Edit auto downloading rules... Rediger automatiske nedlastingsregler … - + RSS Smart Episode Filter RSS-episodesmartfilter - + Download REPACK/PROPER episodes Last ned REPACK-/PROPER-episoder - + Filters: Filtre: - + Web User Interface (Remote control) Nettbrukergrenesnitt (fjernkontroll) - + IP address: IP-adresse: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Angi en IPv4- eller IPv6-adresse. Du kan oppgi "0.0.0.0" for enhver IP "::" for enhver IPv6-adresse, eller "*" for både IPv4 og IPv6. - + Ban client after consecutive failures: Bannlys klient etter påfølgende feil: - + Never Aldri - + ban for: bannlys i: - + Session timeout: Tidsavbrudd for økt: - + Disabled Slått av - - Enable cookie Secure flag (requires HTTPS) - Slå på Secure-flagget i informasjonskapsler (HTTPS) - - - + Server domains: Tjenerdomener: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ burde du skrive inn domenenavn brukt av vevgrensesnittjeneren. Bruk ";" for å splitte flerfoldige oppføringer. Jokertegnet "*" kan brukes. - + &Use HTTPS instead of HTTP &Bruk HTTPS istedenfor HTTP - + Bypass authentication for clients on localhost Omgå autentisering for klienter på lokalvert - + Bypass authentication for clients in whitelisted IP subnets Omgå autentisering for klienter i hvitelistede IP-subnett - + IP subnet whitelist... Hviteliste for IP-undernett … - + + Use alternative WebUI + Bruk et alternativt nettgrensesnitt + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Angi IP-er til reverserte mellomtjenere (f.eks. 0.0.0.0/24 for subnett) for å bruke videresendte klientaddresser (attributtet X-Forwarded-For). Bruk «;» for å adskille flere oppføringer. - + Upda&te my dynamic domain name Oppda&ter mitt dynamiske domenenavn - + Minimize qBittorrent to notification area Minimer qBittorrent til varslingsområdet - + + Search + Søk + + + + WebUI + Nettgrensesnitt + + + Interface Grensesnitt - + Language: Språk: - + + Style: + Stil: + + + + Color scheme: + Palett: + + + + Stopped torrents only + Kun stoppede torrenter + + + + + Start / stop torrent + Start / stopp torrent + + + + + Open torrent options dialog + Vis innstillinger for torrent + + + Tray icon style: Systemkurvikonets stil: - - + + Normal Normal - + File association Filtilknytning - + Use qBittorrent for .torrent files Bruk qBittorrent for .torrent-filer - + Use qBittorrent for magnet links Bruk qBittorrent for magnetlenker - + Check for program updates Se etter programoppdateringer - + Power Management Strømstyring - + + &Log Files + &Loggfiler + + + Save path: Lagringssti: - + Backup the log file after: Sikkerhetskopier loggfilen etter: - + Delete backup logs older than: Slett sikkerhetskopier av loggføringer som er eldre enn: - + + Show external IP in status bar + Vis ekstern IP i statuslinja + + + When adding a torrent Når en torrent legges til - + Bring torrent dialog to the front Hent torrentdialog til forgrunnen - + + The torrent will be added to download list in a stopped state + Torrenten vil legges til i nedlastingslisten som stoppet + + + Also delete .torrent files whose addition was cancelled Slett .torrent-filer som hvis tillegg i listen ble avbrutt samtidig - + Also when addition is cancelled Også når tillegging blir avbrutt - + Warning! Data loss possible! Advarsel! Datatap mulig! - + Saving Management Lagringsbehandling - + Default Torrent Management Mode: Forvalgt torrentbehandlingsmodus: - + Manual Manuell - + Automatic Automatisk - + When Torrent Category changed: Når torrentkategori endres: - + Relocate torrent Omplasser torrent - + Switch torrent to Manual Mode Bytt torrent til manuell modus - - + + Relocate affected torrents Omplasser berørte torrenter - - + + Switch affected torrents to Manual Mode Bytt berørte torrenter til manuell modus - + Use Subcategories Bruk underkategorier - + Default Save Path: Forvalgt lagringsmappe: - + Copy .torrent files to: Kopier .torrent-filer til: - + Show &qBittorrent in notification area Vis &qBittorrent i varslingsområdet - - &Log file - &Loggfil - - - + Display &torrent content and some options Vis &torrentinnhold og noen alternativer - + De&lete .torrent files afterwards Sl&ett .torrent-filer etterpå - + Copy .torrent files for finished downloads to: Kopier .torrent-filer for fullførte nedlastinger til: - + Pre-allocate disk space for all files Forhåndstildel diskplass for alle filer - + Use custom UI Theme Bruk selvvalgt grensesnittdrakt - + UI Theme file: Fil med grensesnittdrakt: - + Changing Interface settings requires application restart Programmet må startes på nytt for å ta i bruk endringer i brukergrensesnitt - + Shows a confirmation dialog upon torrent deletion Vis bekreftelsesdialog ved sletting av torrenter - - + + Preview file, otherwise open destination folder Forhåndsvis fil, eller åpne målmappe - - - Show torrent options - Vis innstillinger for torrent - - - + Shows a confirmation dialog when exiting with active torrents Vis bekreftelsesdialog når torrenter er aktive ved programavslutning - + When minimizing, the main window is closed and must be reopened from the systray icon Hovedvinduet vil lukkes og må gjenåpnes fra systemkurven når det minimeres - + The systray icon will still be visible when closing the main window Ikonet i systemkurven vil fortsatt være synlig når hovedvinduet lukkes - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Steng qBittorrent til varslingsområdet - + Monochrome (for dark theme) Monokromt (mørk drakt) - + Monochrome (for light theme) Monokromt (lys drakt) - + Inhibit system sleep when torrents are downloading Hindre systemhvile når torrenter er aktive - + Inhibit system sleep when torrents are seeding Hindre systemhvile når torrenter deler - + Creates an additional log file after the log file reaches the specified file size Lager en ny loggfil når loggfilen når angitt filstørrelse - + days Delete backup logs older than 10 days dager - + months Delete backup logs older than 10 months måneder - + years Delete backup logs older than 10 years år - + Log performance warnings Varsel om logg-ytelse - - The torrent will be added to download list in a paused state - Torrenten vil legges til nedlastingslisten og settes på pause - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ikke start nedlastingen automatisk - + Whether the .torrent file should be deleted after adding it Skal .torrent-filen slettes etter å ha blitt lagt til - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Reserver full filstørrelse på disk før nedlasting startes, for å hindre fragmentering. Dette er kun nyttig for spinnedisker. - + Append .!qB extension to incomplete files Tilføy en .!qB-benevnelse til ikke-fullførte filer - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Spør om å legge til torrenter fra .torrent-filer inni nylig nedlastet torrent - + Enable recursive download dialog Skru på rekursiv nedlastingsbekreftelse - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatisk: Diverse torrent-egenskaper (f.eks. lagringssti) vil bestemmes av tilordnet kategori Manuelt: Diverse torrent-egenskaper (f.eks. lagringssti) må tilordnes manuelt - + When Default Save/Incomplete Path changed: Når forvalgt lagringssti/ufullstendig sti endres: - + When Category Save Path changed: Når kategoriens lagringssti endres: - + Use Category paths in Manual Mode Bruk kategoristier i manuell modus - + Resolve relative Save Path against appropriate Category path instead of Default one Slå opp relativ lagringssti mot passende kategoristi i stedet for den forvalge - + Use icons from system theme Bruk ikoner fra systemdrakt - + Window state on start up: Vindustilstand ved oppstart: - + qBittorrent window state on start up Vindustilstanden til qBittorrent ved oppstart - + Torrent stop condition: Stopp-betingelse for torrent: - - + + None Ingen - - + + Metadata received Metadata mottatt - - + + Files checked Filer er kontrollert - + Ask for merging trackers when torrent is being added manually Spør om å slå sammen sporere når torrent legges til manuelt - + Use another path for incomplete torrents: Bruk en annen sti for ufullstendige torrenter: - + Automatically add torrents from: Legg automatisk til torrenter fra: - + Excluded file names Utelatte filnavn - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: filtrerer eksakt filnavn. readme{0-9].txt: filtrerer «readme1.txt», «readme2.txt», men ikke «readme10.txt». - + Receiver Mottaker - + To: To receiver Til: - + SMTP server: SMTP-tjener: - + Sender Sender - + From: From sender Fra: - + This server requires a secure connection (SSL) Denne tjeneren krever en sikker tilkobling (SSL) - - + + Authentication Autentisering - - - - + + + + Username: Brukernavn: - - - - + + + + Password: Passord: - + Run external program Kjør eksternt program - - Run on torrent added - Kjør når torrent legges til - - - - Run on torrent finished - Kjør når torrent er fullført - - - + Show console window Vis konsollvindu - + TCP and μTP TCP og μTP - + Listening Port Lytteport - + Port used for incoming connections: Port brukt for innkommende tilkoblinger: - + Set to 0 to let your system pick an unused port Sett lik 0 for å la systemet velge en port som ikke brukes - + Random Tilfeldig - + Use UPnP / NAT-PMP port forwarding from my router Bruk UPnP / NAT-PMP port-videresending fra min ruter - + Connections Limits Tilkoblingsgrenser - + Maximum number of connections per torrent: Maksimalt antall tilkoblinger per torrent: - + Global maximum number of connections: Globalt maksimumsantall for tilkoblinger: - + Maximum number of upload slots per torrent: Maksimalt antall opplastingsåpninger per torrent: - + Global maximum number of upload slots: Globalt maksimumsantall for opplastingsåpninger: - + Proxy Server Mellomtjener - + Type: Type: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Vert: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Ellers blir mellomtjeneren bare brukt til sporertilkoblinger - + Use proxy for peer connections Bruk mellomtjener for likemannstilkoblinger - + A&uthentication Id&entitetsbekreftelse - - Info: The password is saved unencrypted - Info: Passordet er lagret ukryptert - - - + Filter path (.dat, .p2p, .p2b): Filtermappe (.dat, .p2p, .p2b): - + Reload the filter Last inn filteret på nytt - + Manually banned IP addresses... Manuelt bannlyste IP-adresser … - + Apply to trackers Bruk for sporere - + Global Rate Limits Globale hastighetsgrenser - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Opplasting: - - + + Download: Nedlasting: - + Alternative Rate Limits Alternative hastighetsgrenser - + Start time Starttid - + End time Sluttid - + When: Når: - + Every day Hver dag - + Weekdays Ukedager - + Weekends Helger - + Rate Limits Settings Innstillinger for hastighetsgrenser - + Apply rate limit to peers on LAN Bruk hastighetsgrense for likemenn på lokalnett - + Apply rate limit to transport overhead Bruk hastighetsgrense for transportering av tilleggsdata - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Hvis «blandet modus» er slått på, så vil I2P-torrenter kunne få likemenn fra andre kilder enn sporeren og koble til vanlige IP-adresser uten anonymisering. Dette kan være nyttig hvis brukeren ikke er interessert i anonymisering, men likevel vil koble til I2P-likemenn.</p></body></html> + + + Apply rate limit to µTP protocol Bruk hastighetsgrense for µTP-protokoll - + Privacy Personvern - + Enable DHT (decentralized network) to find more peers Aktiver DHT (desentralisert nettverk) for å finne flere likemenn - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Utveksle likemenn med kompatible Bittorrent-klienter (µTorrent, Vuze, …) - + Enable Peer Exchange (PeX) to find more peers Skru på likemennsutveksling (PeX) for å finne flere likemenn - + Look for peers on your local network Se etter likemenn i ditt lokalnettverk - + Enable Local Peer Discovery to find more peers Aktiver lokal likemannsoppdaging for å finne flere likemenn - + Encryption mode: Krypteringsmodus: - + Require encryption Krev kryptering - + Disable encryption Deaktiver kryptering - + Enable when using a proxy or a VPN connection Aktiver ved bruk av mellomtjener eller en VPN-tilkobling - + Enable anonymous mode Aktiver anonymitetsmodus - + Maximum active downloads: Maksimalt antall aktive nedlastinger: - + Maximum active uploads: Maksimalt antall aktive opplastinger: - + Maximum active torrents: Maksimalt antall aktive torrenter: - + Do not count slow torrents in these limits Ikke ta med trege torrenter i regnskapet for disse grensene - + Upload rate threshold: Opplastingsforholdsgrense: - + Download rate threshold: Nedlastingsforholdsgrense: - - - - + + + + sec seconds sek - + Torrent inactivity timer: Torrent-inaktivitetsklokke: - + then deretter - + Use UPnP / NAT-PMP to forward the port from my router Bruk UPnP / NAT-PMP for å videresende porten fra min ruter - + Certificate: Sertifikat: - + Key: Nøkkel: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informasjon om sertifikater</a> - + Change current password Endre gjeldende passord - - Use alternative Web UI - Bruk et alternativt nettgrensesnitt - - - + Files location: Filenes plassering: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Liste over alternative WebUI</a> + + + Security Sikkerhet - + Enable clickjacking protection Aktiver beskyttelse mot klikkoverstyring - + Enable Cross-Site Request Forgery (CSRF) protection Skru på «Cross-Site Request Forgery»-beskyttelse (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Slå på Secure-flagget i informasjonskapsler (krever HTTPS eller localhost-tilkobling) + + + Enable Host header validation Skru på validering av «Host»-feltet i hodet - + Add custom HTTP headers Legg til brukervalgte HTTP-hoder - + Header: value pairs, one per line Hode: verdipar, ett per linje - + Enable reverse proxy support Slå på støtte for reversert mellomtjener - + Trusted proxies list: Liste over tiltrodde mellomtjenere: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Eksempler på oppsett av reversert mellomtjener</a> + + + Service: Tjeneste: - + Register Registrer - + Domain name: Domenenavn: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ved å aktivere disse alternativene kan du miste dine .torrent-filer <strong>for godt</strong>! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Hvis du aktiverer det andre alternativet (&ldquo;Også når tillegging blir avbrutt&rdquo;) vil .torrent-filen <strong>bli slettet</strong> selv om du trykker &ldquo;<strong>Avbryt</strong>&rdquo; i &ldquo;Legg til torrent&rdquo;-dialogen - + Select qBittorrent UI Theme file Velg draktfil for qBittorrent - + Choose Alternative UI files location Plasseringen til «Alternativt grensesnitt»-filene - + Supported parameters (case sensitive): Støttede parametre (forskjell på små og store bokstaver): - + Minimized Minimert - + Hidden Skjult - + Disabled due to failed to detect system tray presence Slått av fordi tilstedeværelse i systemkurv er ukjent - + No stop condition is set. Ingen stopp-betingelse er valgt. - + Torrent will stop after metadata is received. Torrent vil stoppe etter at metadata er mottatt. - Torrents that have metadata initially aren't affected. - Torrenter som har metadata innledningsvis påvirkes ikke. - - - + Torrent will stop after files are initially checked. Torrent vil stoppe etter innledende kontroll. - + This will also download metadata if it wasn't there initially. Dette vil også laste ned metadata som ikke ble mottatt i begynnelsen. - + %N: Torrent name %N: Torrentnavn - + %L: Category %L: Kategori - + %F: Content path (same as root path for multifile torrent) %F: Innholdsmappe (samme som rotmappe for flerfilstorrenter) - + %R: Root path (first torrent subdirectory path) %R: Rotmappe (første undermappe for torrenter) - + %D: Save path %D: Lagringsmappe - + %C: Number of files %C: Antall filer - + %Z: Torrent size (bytes) %Z: Torrentstørrelse (Byte) - + %T: Current tracker %T: Nåværende sporer - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tips: Innkapsle parameter med anførselstegn for å unngå at teksten blir avskåret ved mellomrom (f.eks., "%N") - + + Test email + Tester epost + + + + Attempted to send email. Check your inbox to confirm success + Forsøkte å sende epost. Se i innboksen om det lyktes + + + (None) (Ingen) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds En torrent vil bli ansett for å være treg dersom dens ned- og opp-lastingsfrekvenser holder seg under disse verdiene, i det antall sekunder som er valgt i «Torrent-inaktivitetsklokke» - + Certificate Sertifikat - + Select certificate Velg sertifikat - + Private key Privat nøkkel - + Select private key Velg privat nøkkel - + WebUI configuration failed. Reason: %1 Oppsett av nettgrensesnittet mislyktes fordi: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 anbefales fordi den passer best med Windows' mørk modus + + + + System + System default Qt style + System + + + + Let Qt decide the style for this system + La Qt styre systemets stil + + + + Dark + Dark color scheme + Mørk + + + + Light + Light color scheme + Lys + + + + System + System color scheme + System + + + Select folder to monitor Velg mappe å overvåke - + Adding entry failed Tillegg av oppføring mislyktes - + The WebUI username must be at least 3 characters long. Brukernavn for nettgrensesnittet må være minst 3 tegn. - + The WebUI password must be at least 6 characters long. Passordet for nettgrensesnittet må være minst 6 tegn. - + Location Error Stedsfeil - - + + Choose export directory Velg eksporteringsmappe - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Når disse alternativene er aktivert vil qBittorrent <strong>slette</strong> .torrentfiler etter at de har blitt vellykket (det første alternativet), eller ikke (det andre alternativet), lagt til nedlastingskøen. Dette vil bli brukt <strong>ikke bare</strong> for filer åpnet via meny-handlingen &ldquo;Legg til torrent&rdquo;, men også for dem som blir åpnet via <strong>filtypetilknytning</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent draktfil (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiketter (adskilt med kommaer) - + %I: Info hash v1 (or '-' if unavailable) %I: Info-hash v1 (eller «-» hvis utilgjengelig) - + %J: Info hash v2 (or '-' if unavailable) %J: Info-hash v2 (eller «-» hvis utilgjengelig) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent-ID (enten sha-1 info-hash for v1-torrenter, eller forkortet sha-256 info-hash for v2/hybrid-torrenter) - - - + + + Choose a save directory Velg en lagringsmappe - + Torrents that have metadata initially will be added as stopped. - + Torrenter som har metadata innledningsvis vil legges til som stoppet. - + Choose an IP filter file Velg en IP-filterfil - + All supported filters Alle støttede filter - + The alternative WebUI files location cannot be blank. Filplasseringen til det alternative nettgrensesnittet kan ikke være blank. - + Parsing error Tolkningsfeil - + Failed to parse the provided IP filter Klarte ikke å fortolke oppgitt IP-filter - + Successfully refreshed Oppdatert - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Fortolket oppgitt IP-filter: La til %1 regler. - + Preferences Innstillinger - + Time Error Tidsfeil - + The start time and the end time can't be the same. Start- og slutt -tidspunktet kan ikke være det samme. - - + + Length Error Lengdefeil @@ -7335,241 +7765,246 @@ readme{0-9].txt: filtrerer «readme1.txt», «readme2.txt», men ikke «readme10 PeerInfo - + Unknown Ukjent - + Interested (local) and choked (peer) Interessert (lokal) og kvalt (likemann) - + Interested (local) and unchoked (peer) Interessert (lokal) og ukvalt (likemann) - + Interested (peer) and choked (local) Interessert (likemann) og kvalt (lokal) - + Interested (peer) and unchoked (local) Interessert (likemann) og ukvalt (lokal) - + Not interested (local) and unchoked (peer) Ikke interessert (lokal) og ukvalt (likemann) - + Not interested (peer) and unchoked (local) Ikke interessert (likemann) og ukvalt (lokal) - + Optimistic unchoke Optimistisk avkvelning - + Peer snubbed Likemann avbrutt - + Incoming connection Innkommende tilkobling - + Peer from DHT Likemann fra DHT - + Peer from PEX Likemann fra PEX - + Peer from LSD Likemann fra LSD - + Encrypted traffic Kryptert trafikk - + Encrypted handshake Kryptert håndtrykk + + + Peer is using NAT hole punching + Likemann har slått hull gjennom NAT + PeerListWidget - + Country/Region Land/region - + IP/Address IP/Adresse - + Port Port - + Flags Flagg - + Connection Tilkobling - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID Likemanns-ID-klient - + Progress i.e: % downloaded Framdrift - + 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 - + Files i.e. files that are being downloaded right now Filer - + Column visibility Kolonnesynlighet - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet - + Add peers... Legg til likemenn … - - + + Adding peers Legger til likemenn - + Some peers cannot be added. Check the Log for details. Noen likemenn kunne ikke legges til. Se loggen for flere detaljer. - + Peers are added to this torrent. Likemenn er lagt til denne torrenten. - - + + Ban peer permanently Bannlys likemann for godt - + Cannot add peers to a private torrent Kan ikke legge til likemenn til en privat torrent - + Cannot add peers when the torrent is checking Kan ikke legge til likemenn når torrenten kontrolleres - + Cannot add peers when the torrent is queued Kan ikke legge til likemenn når torrenten er i kø - + No peer was selected Ingen likemenn ble valgt - + Are you sure you want to permanently ban the selected peers? Er du sikker på at du vil bannlyse permanent de valgte likemennene? - + Peer "%1" is manually banned Likemannen «%1» er manuelt bannlyst - + N/A I/T - + Copy IP:port Kopier IP:port @@ -7587,7 +8022,7 @@ readme{0-9].txt: filtrerer «readme1.txt», «readme2.txt», men ikke «readme10 Liste over likemenn som skal legges til (Én IP per linje): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7628,27 +8063,27 @@ readme{0-9].txt: filtrerer «readme1.txt», «readme2.txt», men ikke «readme10 PiecesBar - + Files in this piece: Filer i denne biten: - + File in this piece: Fil i denne biten: - + File in these pieces: Fil i disse bitene: - + Wait until metadata become available to see detailed information Vent til metadata blir tilgjengelig for å se detaljert informasjon - + Hold Shift key for detailed information Hold Shift-tasten for detaljert informasjon @@ -7661,58 +8096,58 @@ readme{0-9].txt: filtrerer «readme1.txt», «readme2.txt», men ikke «readme10 Søketillegg - + Installed search plugins: Installerte søketillegg: - + Name Navn - + Version Versjon - + Url Url - - + + Enabled Skrudd på - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Advarsel: Pass på å overholde landets opphavsrettslover når du laster ned torrenter fra noen av disse søkemotorene. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Du kan få nye søkemotormoduler her: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installer en ny en - + Check for updates Se etter oppdateringer - + Close Lukk - + Uninstall Avinstaller @@ -7832,98 +8267,65 @@ De uavinstallerbare programtilleggene ble avskrudd. Tilleggets kilde - + Search plugin source: Søketilleggets kilde: - + Local file Lokal fil - + Web link Nettlenke - - PowerManagement - - - qBittorrent is active - qBittorrent er aktiv - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Strømstyringen fant passende D-Bus-grensesnitt. Grensesnitt: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Strømstyringsfeil. Fant ikke noe passende D-Bus-grensesnitt. - - - - - - Power management error. Action: %1. Error: %2 - Strømstyringsfeil. Handling: %1. Feil: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Uventet feil ved strømstyring. Tilstand: %1. Feil: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: De følgende filene fra torrent «%1» støtter forhåndsvisning. Velg en av dem: - + Preview Forhåndsvis - + Name Navn - + Size Størrelse - + Progress Fremdrift - + Preview impossible Forhåndsvisning er ikke mulig - + Sorry, we can't preview this file: "%1". Denne fila kan ikke forhåndsvises: «%1». - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet @@ -7936,27 +8338,27 @@ De uavinstallerbare programtilleggene ble avskrudd. Private::FileLineEdit - + Path does not exist Sti finnes ikke - + Path does not point to a directory Sti peker ikke til noen mappe - + Path does not point to a file Sti peker ikke til noen fil - + Don't have read permission to path Mangler lesetilgang til sti - + Don't have write permission to path Mangler skrivetilgang til sti @@ -7997,12 +8399,12 @@ De uavinstallerbare programtilleggene ble avskrudd. PropertiesWidget - + Downloaded: Nedlastet: - + Availability: Tilgjengelighet: @@ -8017,53 +8419,53 @@ De uavinstallerbare programtilleggene ble avskrudd. Overføring - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktivitetstid: - + ETA: Gjenværende tid: - + Uploaded: Opplastet: - + Seeds: Delere: - + Download Speed: Nedlastingshastighet: - + Upload Speed: Opplastingshastighet: - + Peers: Likemenn: - + Download Limit: Nedlastingsgrense: - + Upload Limit: Opplastingsgrense: - + Wasted: Ødslet: @@ -8073,193 +8475,220 @@ De uavinstallerbare programtilleggene ble avskrudd. Tilkoblinger: - + Information Informasjon - + Info Hash v1: Info-hash v1: - + Info Hash v2: Info-hash v2: - + Comment: Kommentar: - + Select All Velg alle - + Select None Fravelg alt - + Share Ratio: Delingsforhold: - + Reannounce In: Reannonsering om: - + Last Seen Complete: Sist sett fullført: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Forhold / Tid aktiv (i måneder), antyder hvor populær torrenten er + + + + Popularity: + Popularitet: + + + Total Size: Total størrelse: - + Pieces: Deler: - + Created By: Opprettet av: - + Added On: Lagt til: - + Completed On: Fullført: - + Created On: Opprettet: - + + Private: + Privat: + + + Save Path: Lagringsmappe: - + 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 økt) - - + + + N/A I/T - + + Yes + Ja + + + + No + Nei + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (delt 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.) - - New Web seed - Ny nettdeler + + Add web seed + Add HTTP source + Legg til nettdeler - - Remove Web seed - Fjern nettdeler + + Add web seed: + Legg til nettdeler: - - Copy Web seed URL - Kopier adresse for nettdeler + + + This web seed is already in the list. + Nettdeleren er allerede i listen. - - Edit Web seed URL - Rediger adresse for nettdeler - - - + Filter files... Filtrer filer … - + + Add web seed... + Legg til nettdeler … + + + + Remove web seed + Fjern nettdeler + + + + Copy web seed URL + Kopier adresse for nettdeler + + + + Edit web seed URL... + Rediger adresse for nettdeler … + + + Speed graphs are disabled Hastighetsgrafer er slått av - + You can enable it in Advanced Options Kan slås på under avanserte innstillinger - - New URL seed - New HTTP source - Ny nettadressedeler - - - - New URL seed: - Ny nettadressedeler - - - - - This URL seed is already in the list. - Denne nettadressedeleren er allerede i listen. - - - + Web seed editing Nettdeler-redigering - + Web seed URL: Nettdeleradresse: @@ -8267,33 +8696,33 @@ De uavinstallerbare programtilleggene ble avskrudd. RSS::AutoDownloader - - + + Invalid data format. Ugyldig dataformat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Kunne ikke lagre RSS AutoDownloader-data i %1. Feil: %2 - + Invalid data format Ugyldig dataformat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-artikkel «%1» aksepteres av regel «%2». Forsøker å legge til torrent … - + Failed to read RSS AutoDownloader rules. %1 Klarte ikke laste inn RSS AutoDownloader-regler. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Kunne ikke laste inn RSS AutoDownloader-regler. Grunn: %1 @@ -8301,22 +8730,22 @@ De uavinstallerbare programtilleggene ble avskrudd. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Mislyktes i å laste ned RSS-kanalen hos «%1». Årsak: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-kanalen hos «%1» ble oppdatert. %2 nye artikler ble lagt til. - + Failed to parse RSS feed at '%1'. Reason: %2 Klarte ikke å fortolke RSS-kanalen hos «%1». Årsak: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Lastet ned RSS-kanalen fra «%1». Starter analysering. @@ -8352,12 +8781,12 @@ De uavinstallerbare programtilleggene ble avskrudd. RSS::Private::Parser - + Invalid RSS feed. Ugyldig RSS-informasjonskanal. - + %1 (line: %2, column: %3, offset: %4). %1 (linje: %2, kolonne: %3, forskyvning: %4). @@ -8365,103 +8794,144 @@ De uavinstallerbare programtilleggene ble avskrudd. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Klarte ikke lagre oppsett av RSS-økt. Fil: «%1». Feil: «%2» - + Couldn't save RSS session data. File: "%1". Error: "%2" Klarte ikke lagre øktdata for RSS. Fil: «%1». Feil: «%2» - - + + RSS feed with given URL already exists: %1. RSS-informasjonskanal med angitt nettadresse finnes allerede: %1|. - + Feed doesn't exist: %1. Informasjonskanal finnes ikke: %1. - + Cannot move root folder. Kan ikke flytte rotmappe. - - + + Item doesn't exist: %1. Elementet finnes ikke: %1 - - Couldn't move folder into itself. - Kan ikke flytte mappe til seg selv. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Kan ikke slette rotmappe. - + Failed to read RSS session data. %1 Klarte ikke lese øktdata for RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Klarte ikke tolke øktdata for RSS. Fil: «%1». Feil: «%2» - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Klarte ikke laste øktdata for RSS. Fil: «%1». Feil: «Ugyldig dataformat.» - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Klarte ikke laste RSS-kilde. Kilde: «%1». Årsak: URL kreves. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Klarte ikke laste RSS-kilde. Kilde: «%1». Årsak: Ugyldig UID. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Fant duplisert RSS-kilde. UID: «%1». Feil: Oppsettet er ugyldig. - + Couldn't load RSS item. Item: "%1". Invalid data format. Klarte ikke laste RSS-element. Element: «%1». Ugyldig dataformat. - + Corrupted RSS list, not loading it. Ugyldig RSS-liste lastes ikke. - + Incorrect RSS Item path: %1. Uriktig nyhetsmatingselemetsti: %1. - + RSS item with given path already exists: %1. RSS-informasjonskanal med angitt sti finnes allerede: %1|. - + Parent folder doesn't exist: %1. Overnevnte mappe finnes ikke: %1 + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Informasjonskanal finnes ikke: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Oppdateringsintervall: + + + + sec + sek + + + + Default + Forvalgt + + RSSWidget @@ -8481,8 +8951,8 @@ De uavinstallerbare programtilleggene ble avskrudd. - - + + Mark items read Marker ting som lest @@ -8507,132 +8977,115 @@ De uavinstallerbare programtilleggene ble avskrudd. Torrenter: (dobbel-klikk for å laste ned) - - + + Delete Slett - + Rename... Gi nytt navn … - + Rename Gi nytt navn - - + + Update Oppdater - + New subscription... Nytt abonnement … - - + + Update all feeds Oppdater alle informasjonskanaler - + Download torrent Last ned torrent - + Open news URL Åpne nyhetsnettadresse - + Copy feed URL Kopier informasjonskanalens adresse - + New folder... Ny mappe … - - Edit feed URL... - Rediger informasjonskanalens adresse … + + Feed options... + - - Edit feed URL - Rediger informasjonskanalens adresse - - - + Please choose a folder name Velg et mappenavn - + Folder name: Mappenavn: - + New folder Ny mappe - - - Please type a RSS feed URL - Skriv inn informasjonskanalens nettadresse - - - - - Feed URL: - Informasjonskanalens adresse: - - - + Deletion confirmation Slettingsbekreftelse - + Are you sure you want to delete the selected RSS feeds? Er du sikker på at du vil slette de valgte informasjonskanalene? - + Please choose a new name for this RSS feed Velg et nytt navn for denne informasjonskanalen - + New feed name: Nytt navn for informasjonskanal: - + Rename failed Klarte ikke endre navn - + Date: Dato: - + Feed: Informasjonskanal: - + Author: Utvikler: @@ -8640,38 +9093,38 @@ De uavinstallerbare programtilleggene ble avskrudd. SearchController - + Python must be installed to use the Search Engine. Installer Python for å bruke søkemotoren. - + Unable to create more than %1 concurrent searches. Klarte ikke lage mer enn %1 samtidige søk. - - + + Offset is out of range Avviket er utenfor rekkevidden - + All plugins are already up to date. Alle tilleggene er allerede fullt oppdatert. - + Updating %1 plugins Oppdaterer %1 tillegg - + Updating plugin %1 Oppdaterer «%1»-tillegget - + Failed to check for plugin updates: %1 Klarte ikke se etter programtilleggsoppdateringer: %1 @@ -8746,132 +9199,142 @@ De uavinstallerbare programtilleggene ble avskrudd. Størrelse: - + 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 Snyltere - - Search engine - Søkemotor - - - + Filter search results... Filtrer søkeresultater … - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultater (viser <i>%1</i> av <i>%2</i>): - + Torrent names only Kun torrentnavn - + Everywhere Overalt - + Use regular expressions Bruk regulære uttrykk - + Open download window Åpne nedlastingsvindu - + Download Last ned - + Open description page Åpne beskrivelsesside - + Copy Kopier - + Name Navn - + Download link Nedlastingslenke - + Description page URL Adressen til beskrivelsessiden - + Searching... Søker … - + Search has finished Søket er ferdig - + Search aborted Søket ble avbrutt - + An error occurred during search... En feil oppstod under søket … - + Search returned no results Søket ga ingen resultater - + + Engine + Motor: + + + + Engine URL + Motoradresse + + + + Published On + Publisert den + + + Column visibility Kolonnesynlighet - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet @@ -8879,104 +9342,104 @@ De uavinstallerbare programtilleggene ble avskrudd. SearchPluginManager - + Unknown search engine plugin file format. Ukjent søkemotor-tilleggsfilformat. - + Plugin already at version %1, which is greater than %2 Tillegget er allerede ved versjon %1, som er større enn %2 - + A more recent version of this plugin is already installed. En nyere versjon av dette tillegget er allerede installert. - + Plugin %1 is not supported. %1-tillegget er ikke støttet. - - + + Plugin is not supported. Tillegget er ikke støttet. - + Plugin %1 has been successfully updated. %1-tillegget har blitt vellykket oppdatert. - + All categories Alle kategorier - + Movies Filmer - + TV shows TV-serier - + Music Musikk - + Games Spill - + Anime Anime - + Software Programvare - + Pictures Bilder - + Books Bøker - + Update server is temporarily unavailable. %1 Oppdateringstjeneren er midlertidlig utilgjengelig. %1 - - + + Failed to download the plugin file. %1 Nedlasting av tilleggsfilen mislyktes. %1 - + Plugin "%1" is outdated, updating to version %2 «%1»-tillegget er utdatert, derfor oppdateres den til versjon %2 - + Incorrect update info received for %1 out of %2 plugins. Feilaktig oppdateringsinfo ble mottatt for %1 av %2 tillegg. - + Search plugin '%1' contains invalid version string ('%2') Søkemotortillegget «%1» inneholder en ugyldig versjonsstreng («%2») @@ -8986,114 +9449,145 @@ De uavinstallerbare programtilleggene ble avskrudd. - - - - Search Søk - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Ingen søkeprogramtillegg installert. Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for å installere det. - + Search plugins... Søk i programtillegg … - + A phrase to search for. Søkefrase. - + Spaces in a search term may be protected by double quotes. Mellomrom i søkebegrep kan være beskyttet av doble anførselstegn. - + Example: Search phrase example Eksempel: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: søk etter <b>foo bar</b> - + All plugins Alle programtillegg - + Only enabled Kun aktiverte - + + + Invalid data format. + Ugyldig dataformat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: søk etter <b>foo</b> og <b>bar</b> - + + Refresh + Oppdater + + + Close tab Lukk fane - + Close all tabs Lukk alle faner - + Select... Velg … - - - + + Search Engine Søkemotor - + + Please install Python to use the Search Engine. Installer Python for å bruke søkemotoren. - + Empty search pattern Tom søkestreng - + Please type a search pattern first Skriv en søkestreng først - + + Stop Stopp + + + SearchWidget::DataStorage - - Search has finished - Søket er ferdig + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Klarte ikke laste inn lagrede tilstandsdata for søkegrensesnittet. Fil: «%1». Feil: «%2» - - Search has failed - Søket mislyktes + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Klarte ikke laste inn lagrede søkeresultater. Fane: «%1». Fil: «%2». Feil: «%3» + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Klarte ikke lagre tilstand for søkegrensesnittet. Fil: «%1». Feil: «%2» + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Klarte ikke lagre søkeresultatet. Fane: «%1». Fil: «%2». Feil: «%3» + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Klarte ikke laste inn søkegrensesnittets historikk. Fil: «%1». Feil: «%2» + + + + Failed to save search history. File: "%1". Error: "%2" + Klarte ikke lagre søkehistorikken. Fil: «%1». Feil: «%2» @@ -9206,34 +9700,34 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for - + Upload: Opplasting: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Nedlasting: - + Alternative speed limits Alternative hastighetsgrenser @@ -9425,32 +9919,32 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for Gjennomsnittlig tid i kø: - + Connected peers: Tilkoblede likemenn: - + All-time share ratio: Totalt deleforhold: - + All-time download: Totalt nedlastet: - + Session waste: Økts-ødsling: - + All-time upload: Totalt opplastet: - + Total buffer size: Total mellomlagerstørrelse: @@ -9465,12 +9959,12 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for Inn- ut -jobber i kø: - + Write cache overload: Overlast i skrivingshurtiglager: - + Read cache overload: Overlast i lesingshurtiglager: @@ -9489,51 +9983,77 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for StatusBar - + Connection status: Tilkoblingsstatus: - - + + No direct connections. This may indicate network configuration problems. Ingen direkte tilkoblinger. Dette kan indikere problemer med nettverksoppsettet. - - + + Free space: N/A + + + + + + External IP: N/A + Ekstern IP: I/T + + + + DHT: %1 nodes DHT: %1 noder - + qBittorrent needs to be restarted! qBittorrent må startes på nytt. - - - + + + Connection Status: Tilkoblingsstatus: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Frakoblet. Dette betyr vanligvis at qBittorrent ikke klarte å lytte til den valgte porten for innkommende tilkoblinger. - + Online Tilkoblet - + + Free space: + + + + + External IPs: %1, %2 + Eksterne IP-er: %1, %2 + + + + External IP: %1%2 + Ekstern IP: %1%2 + + + Click to switch to alternative speed limits Klikk for å bytte til alternative hastighetsgrenser - + Click to switch to regular speed limits Klikk for å bytte til vanlige hastighetsgrenser @@ -9563,13 +10083,13 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for - Resumed (0) - Gjenopptatte (0) + Running (0) + Kjører (0) - Paused (0) - Satt på pause (0) + Stopped (0) + Stoppet (0) @@ -9631,36 +10151,36 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for Completed (%1) Fullførte (%1) + + + Running (%1) + Kjører (%1) + - Paused (%1) - Satt på pause (%1) + Stopped (%1) + Stoppet (%1) + + + + Start torrents + Start torrenter + + + + Stop torrents + Stopp torrenter Moving (%1) Flytter (%1) - - - Resume torrents - Gjenoppta torrenter - - - - Pause torrents - Sett torrenter på pause - Remove torrents Fjern torrenter - - - Resumed (%1) - Gjenopptatte (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Klikk «Søk etter programtillegg …»-knappen nederst til høyre i vinduet for Remove unused tags Fjern ubrukte etiketter - - - Resume torrents - Gjenoppta torrenter - - - - Pause torrents - Sett torrenter på pause - Remove torrents Fjern torrenter - - New Tag - Ny etikett + + Start torrents + Start torrenter + + + + Stop torrents + Stopp torrenter Tag: Etikett: + + + Add tag + Legg til etikett + Invalid tag name @@ -9903,32 +10423,32 @@ Velg et annet navn og prøv igjen. TorrentContentModel - + Name Navn - + Progress Framdrift - + Download Priority Nedlastingsprioritet - + Remaining Gjenstående - + Availability Tilgjengelighet - + Total Size Total størrelse @@ -9973,98 +10493,98 @@ Velg et annet navn og prøv igjen. TorrentContentWidget - + Rename error Klarte ikke endre navn - + Renaming Gir nytt navn - + New name: Nytt navn: - + Column visibility Kolonnesynlighet - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet - + Open Åpne - + Open containing folder Åpne relevant mappe - + Rename... Gi nytt navn … - + Priority Prioritet - - + + Do not download Ikke last ned - + Normal Normal - + High Høy - + Maximum Maksimal - + By shown file order Etter vist filrekkefølge - + Normal priority Normal prioritet - + High priority Høy prioritet - + Maximum priority Maksimal prioritet - + Priority by shown file order Prioriter etter vist filrekkefølge @@ -10072,19 +10592,19 @@ Velg et annet navn og prøv igjen. TorrentCreatorController - + Too many active tasks - + For mange aktive oppgaver - + Torrent creation is still unfinished. - + Torrenten er fortsatt ikke opprettet. - + Torrent creation failed. - + Klarte ikke opprette torrent. @@ -10111,13 +10631,13 @@ Velg et annet navn og prøv igjen. - + Select file Velg fil - + Select folder Velg mappe @@ -10192,87 +10712,83 @@ Velg et annet navn og prøv igjen. Felter - + You can separate tracker tiers / groups with an empty line. Du kan adskille sporerlag/grupper med en tom linje. - + Web seed URLs: Nettdeler-URLer: - + Tracker URLs: Sporer-URLer: - + Comments: Kommentarer: - + Source: Kilde: - + Progress: Framdrift: - + Create Torrent Opprett torrent - - + + Torrent creation failed Klarte ikke opprette torrent - + Reason: Path to file/folder is not readable. Årsak: Stien til filen/mappen kan ikke leses. - + Select where to save the new torrent Velg hvor den nye torrenten skal lagres - + Torrent Files (*.torrent) Torrentfiler (*.torrent) - Reason: %1 - Årsak: %1 - - - + Add torrent to transfer list failed. Klarte ikke legge til torrent i overføringsliste. - + Reason: "%1" Årsak: «%1» - + Add torrent failed Klarte ikke legge til torrent - + Torrent creator Torrentens oppretter - + Torrent created: Torrent opprettet: @@ -10280,32 +10796,32 @@ Velg et annet navn og prøv igjen. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Klarte ikke laste oppsett for overvåkede mapper. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Klarte ikke å fortolke oppsett av overvåkede mapper fra %1. Feil: «%2» - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Klarte ikke laste oppsett for overvåkede mapper fra %1. Feil: «Ugyldig dataformat.» - + Couldn't store Watched Folders configuration to %1. Error: %2 Klarte ikke lagre oppsett for overvåkede mapper til %1. Feil: %2 - + Watched folder Path cannot be empty. Sti til overvåkede mapper kan ikke være tom. - + Watched folder Path cannot be relative. Sti til overvåkede mapper kan ikke være relativ. @@ -10313,44 +10829,31 @@ Velg et annet navn og prøv igjen. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Ugyldig Magnet-URI. URI: %1. Årsak: %2 - + Magnet file too big. File: %1 Magnet-fila er for stor. Fil: %1 - + Failed to open magnet file: %1 Klarte ikke åpne magnet-fil: %1 - + Rejecting failed torrent file: %1 Avviser mislykket torrent-fil: %1 - + Watching folder: "%1" Overvåker mappe: «%1» - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Klarte ikke allokere minne ved lesing av fil. Fil: «%1». Feil: «%2» - - - - Invalid metadata - Ugyldig metadata - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Velg et annet navn og prøv igjen. Bruk en annen sti for ufullstendig torrent - + Category: Kategori: - - Torrent speed limits - Hastighetsgrenser for torrent + + Torrent Share Limits + Delingsgrenser for torrent - + Download: Nedlasting: - - + + - - + + Torrent Speed Limits + Hastighetsgrenser for torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Disse vil ikke overskride de globale grensene - + Upload: Opplasting: - - Torrent share limits - Delingsgrenser for torrent - - - - Use global share limit - Bruk global delingsgrense - - - - Set no share limit - Fri delingsgrense - - - - Set share limit to - Sett delingsgrense til - - - - ratio - forhold - - - - total minutes - totalt antall minutter - - - - inactive minutes - antall inaktive minutter - - - + Disable DHT for this torrent Slå av DHT for denne torrenten - + Download in sequential order Last ned i rekkefølge - + Disable PeX for this torrent Slå av PeX for denne torrenten - + Download first and last pieces first Last ned de første og siste delene først - + Disable LSD for this torrent Slå av LSD for denne torrenten - + Currently used categories Kategorier som er i bruk - - + + Choose save path Velg lagringssti - + Not applicable to private torrents Kan ikke anvendes på private torrenter - - - No share limit method selected - Ingen delegrensemetode har blitt valgt - - - - Please select a limit method first - Velg en begrensningsmetode først - TorrentShareLimitsWidget - - - + + + + Default - Forvalgt + Forvalgt + + + + + + Unlimited + Ubegrenset - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Velg + + + + Seeding time: + Delingstid: + + + + + + + + min minutes - + min - + Inactive seeding time: - + Inaktiv delingstid: - + + Action when the limit is reached: + Handling når grensen er nådd: + + + + Stop torrent + Stopp torrent + + + + Remove torrent + Fjern torrent + + + + Remove torrent and its content + Fjern torrenten og innholdet + + + + Enable super seeding for torrent + Skru på superdeling av torrent + + + Ratio: - + Forhold: @@ -10558,32 +11049,32 @@ Velg et annet navn og prøv igjen. Torrent-etiketter - - New Tag - Ny etikett + + Add tag + Legg til etikett - + Tag: Etikett: - + Invalid tag name Ugyldig etikettnavn - + Tag name '%1' is invalid. Etikettnavnet «%1» er ugyldig. - + Tag exists Etiketten finnes - + Tag name already exists. Etikettnavnet finnes allerede. @@ -10591,115 +11082,130 @@ Velg et annet navn og prøv igjen. TorrentsController - + Error: '%1' is not a valid torrent file. Feil: «%1» er ikke en gyldig torrentfil. - + Priority must be an integer Prioritet må være et helt tall - + Priority is not valid Prioritet er ikke gyldig - + Torrent's metadata has not yet downloaded Torrents metadata har ikke lastet ned ennå - + File IDs must be integers Fil-ID-er må være heltall - + File ID is not valid Fil-ID er ugyldig - - - - + + + + Torrent queueing must be enabled Køoppstilling av torrenter må være skrudd på - - + + Save path cannot be empty Lagringsstien kan ikke være tom - - + + Cannot create target directory Kan ikke opprette målmappe - - + + Category cannot be empty Kategorien kan ikke være tom - + Unable to create category Kunne ikke opprette kategorien - + Unable to edit category Kunne ikke redigere kategorien - + Unable to export torrent file. Error: %1 Klarte ikke eksportere torrent-fil. Feil: %1 - + Cannot make save path Kan ikke opprette lagringsstien - + + "%1" is not a valid URL + «%1» er ikke en gyldig adresse + + + + URL scheme must be one of [%1] + Adresseskjemaet må være en av [%1] + + + 'sort' parameter is invalid Parameteren «sort» er ugyldig - + + "%1" is not an existing URL + «%1» er ikke en eksisterende adresse + + + "%1" is not a valid file index. «%1» er ikke en gyldig filindeks. - + Index %1 is out of bounds. Indeksen %1 kan ikke nås. - - + + Cannot write to directory Kan ikke skrive til mappen - + WebUI Set location: moving "%1", from "%2" to "%3" Velg nettgrensesnitt-plassering: Flytter «%1», fra «%2» til «%3» - + Incorrect torrent name Feil torrentnavn - - + + Incorrect category name Feil kategorinavn @@ -10730,196 +11236,191 @@ Velg et annet navn og prøv igjen. TrackerListModel - + Working Virker - + Disabled Deaktivert - + Disabled for this torrent Slått av for denne torrenten - + This torrent is private Denne torrenten er privat - + N/A Irrelevant - + Updating... Oppdaterer … - + Not working Virker ikke - + Tracker error Sporerfeil - + Unreachable Kan ikke nås - + Not contacted yet Ikke kontaktet ennå - - Invalid status! - Ugyldig status! - - - - URL/Announce endpoint - URL/annonseringsendepunkt + + Invalid state! + Ugyldig tilstand! + URL/Announce Endpoint + URL/annonseringsendepunkt + + + + BT Protocol + BT-protokoll + + + + Next Announce + Neste annonsering + + + + Min Announce + Minste annonsering + + + Tier Nivå - - Protocol - Protokoll - - - + Status Status - + Peers Likemenn - + Seeds Delere - + Leeches Snyltere - + Times Downloaded Ganger nedlastet - + Message Melding - - - Next announce - Neste annonsering - - - - Min announce - Minste annonsering - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Denne torrenten er privat - + Tracker editing Sporer-redigering - + Tracker URL: Sporer-URL: - - + + Tracker editing failed Sporer-redigering mislyktes - + The tracker URL entered is invalid. Sporer-URLen som ble skrevet inn er ugyldig - + The tracker URL already exists. Sporer-URLen finnes allerede. - + Edit tracker URL... Rediger sporerens nettadresse … - + Remove tracker Fjern sporer - + Copy tracker URL Kopier sporer-URLen - + Force reannounce to selected trackers Tving reannonsering til de valgte sporerne - + Force reannounce to all trackers Tving reannonsering til alle sporerne - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet - + Add trackers... Legg til sporere … - + Column visibility Kolonnesynlighet @@ -10937,37 +11438,37 @@ Velg et annet navn og prøv igjen. Liste over sporere som skal legges til (én per linje): - + µTorrent compatible list URL: Nettadresse for µTorrent-kompatibel liste: - + Download trackers list Last ned liste over sporere - + Add Legg til - + Trackers list URL error Feil med adressen til sporerlisten - + The trackers list URL cannot be empty Adressen til sporerlisten kan ikke være tom - + Download trackers list error Feil ved nedlasting av sporerliste - + Error occurred when downloading the trackers list. Reason: "%1" Feil ved nedlasting av sporerliste. Årsak: «%1» @@ -10975,62 +11476,62 @@ Velg et annet navn og prøv igjen. TrackersFilterWidget - + Warning (%1) Advarsel (%1) - + Trackerless (%1) Sporerløse (%1) - + Tracker error (%1) Sporerfeil (%1) - + Other error (%1) Andre feil (%1) - + Remove tracker Fjern sporer - - Resume torrents - Gjenoppta torrenter + + Start torrents + Start torrenter - - Pause torrents - Sett torrenter på pause + + Stop torrents + Stopp torrenter - + Remove torrents Fjern torrenter - + Removal confirmation Bekreft fjerning - + Are you sure you want to remove tracker "%1" from all torrents? Er du sikker på at du vil fjerne sporeren «%1» fra alle torrenter? - + Don't ask me again. Ikke spør igjen. - + All (%1) this is for the tracker filter Alle (%1) @@ -11039,7 +11540,7 @@ Velg et annet navn og prøv igjen. TransferController - + 'mode': invalid argument «mode»: ugyldig argument @@ -11131,11 +11632,6 @@ Velg et annet navn og prøv igjen. 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. Kontrollerer gjenopptakelsesdata - - - Paused - Satt på pause - Completed @@ -11159,220 +11655,252 @@ Velg et annet navn og prøv igjen. Mislyktes - + Name i.e: torrent name Navn - + Size i.e: torrent size Størrelse - + Progress % Done Framdrift - + + Stopped + Stoppet + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Delere - + Peers i.e. partial sources (often untranslated) Likemenn - + Down Speed i.e: Download speed Nedlast-fart - + Up Speed i.e: Upload speed Opplast-fart - + Ratio Share ratio Forhold - + + Popularity + Popularitet + + + ETA i.e: Estimated Time of Arrival / Time left Anslått tid igjen - + Category Kategori - + Tags Etiketter - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Lagt til den - + Completed On Torrent was completed on 01/01/2010 08:00 Fullført den - + Tracker Sporer - + Down Limit i.e: Download limit Nedlastingsgrense - + Up Limit i.e: Upload limit Opplastingsgrense - + Downloaded Amount of data downloaded (e.g. in MB) Nedlastet - + Uploaded Amount of data uploaded (e.g. in MB) Opplastet - + Session Download Amount of data downloaded since program open (e.g. in MB) Øktnedlasting - + Session Upload Amount of data uploaded since program open (e.g. in MB) Øktopplasting - + Remaining Amount of data left to download (e.g. in MB) Gjenværende - + Time Active - Time (duration) the torrent is active (not paused) - Har vært aktiv i + Time (duration) the torrent is active (not stopped) + Aktivitetstid - + + Yes + Ja + + + + No + Nei + + + Save Path Torrent save path Lagringssti - + Incomplete Save Path Torrent incomplete save path Ufullstendig lagringssti - + Completed Amount of data completed (e.g. in MB) Ferdig - + Ratio Limit Upload share ratio limit Forholdsgrense - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Senest sett i fullført tilstand - + Last Activity Time passed since a chunk was downloaded/uploaded Seneste aktivitet - + Total Size i.e. Size including unwanted data Total størrelse - + Availability The number of distributed copies of the torrent Tilgjengelighet - + Info Hash v1 i.e: torrent info hash v1 Info-hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info-hash v2 - + Reannounce In Indicates the time until next trackers reannounce Reannonsering om - - + + Private + Flags private torrents + Privat + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Forhold / Tid aktiv (i måneder), antyder hvor populær torrenten er + + + + + N/A I/T - + %1 ago e.g.: 1h 20m ago %1 siden - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (delt i %2) @@ -11381,339 +11909,319 @@ Velg et annet navn og prøv igjen. TransferListWidget - + Column visibility Kolonnesynlighet - + Recheck confirmation Bekreftelse av ny gjennomsjekking - + Are you sure you want to recheck the selected torrent(s)? Er du sikker på at du vil sjekke valgte torrent(er) på nytt? - + Rename Gi nytt navn - + New name: Nytt navn: - + Choose save path Velg lagringsmappe - - Confirm pause - Bekreft pause - - - - Would you like to pause all torrents? - Vil du sette alle torrenter på pause? - - - - Confirm resume - Bekreft gjenopptaking - - - - Would you like to resume all torrents? - Vil du gjenoppta alle torrenter? - - - + Unable to preview Kan ikke forhåndsvise - + The selected torrent "%1" does not contain previewable files Den valgte torrenten «%1» har ingen filer som kan forhåndsvises - + Resize columns Tilpass kolonnebredde - + Resize all non-hidden columns to the size of their contents Tilpass bredden til alle synlige kolonner til innholdet - + Enable automatic torrent management Slå på automatisk torrentbehandling - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Vil du virkelig slå på automatisk torrentbehandling for valgt(e) torrent(er)? De kan bli flyttet. - - Add Tags - Legg til etiketter - - - + Choose folder to save exported .torrent files Hvor skal eksporterte .torrent-filer lagres - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Klarte ikke eksportere .torrent-fil. Torrent: «%1». Sti: «%2». Årsak: «%3» - + A file with the same name already exists Det finnes allerede en fil med dette navnet - + Export .torrent file error Feil ved eksportering av .torrent - + Remove All Tags Fjern alle etiketter - + Remove all tags from selected torrents? Fjern alle etiketter fra valgte torrenter? - + Comma-separated tags: Kommainndelte etiketter: - + Invalid tag Ugyldig etikett - + Tag name: '%1' is invalid Etikettnavnet: «%1» er ugyldig - - &Resume - Resume/start the torrent - &Gjenoppta - - - - &Pause - Pause the torrent - &Pause - - - - Force Resu&me - Force Resume/start the torrent - P&åtving gjenopptakelse - - - + Pre&view file... &Forhåndsvis fil … - + Torrent &options... Torrent&innstillinger … - + Open destination &folder Åpne &målmappe - + Move &up i.e. move up in the queue Flytt &opp - + Move &down i.e. Move down in the queue Flytt &ned - + Move to &top i.e. Move to top of the queue Flytt til &toppen - + Move to &bottom i.e. Move to bottom of the queue Flytt til &bunnen - + Set loc&ation... Velg pl&assering - + Force rec&heck Påtving n&y gjennomsjekk - + Force r&eannounce Tving r&eannonsering - + &Magnet link &Magnetlenke - + Torrent &ID Torrent-&ID - + &Comment &Kommentar - + &Name &Navn - + Info &hash v1 Info-hash v&1 - + Info h&ash v2 Info-hash v&2 - + Re&name... Endre &navn … - + Edit trac&kers... Rediger &sporere … - + E&xport .torrent... E&ksporter torrent … - + Categor&y Kategor&i - + &New... New category... &Ny … - + &Reset Reset category Til&bakestill - + Ta&gs Merke&lapper - + &Add... Add / assign multiple tags... Le&gg til … - + &Remove All Remove all tags F&jern alle - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Kan ikke tvinge reannonsering når torrenten er stoppet/i kø/har feil/kontrolleres + + + &Queue K&ø - + &Copy &Kopier - + Exported torrent is not necessarily the same as the imported Den eksporterte torrenten er ikke nødvendigvis lik den importerte - + Download in sequential order Last ned i rekkefølge - + + Add tags + Legg til etiketter + + + Errors occurred when exporting .torrent files. Check execution log for details. Det oppstod feil ved eksportering av .torrent-filer. Undersøk kjøreloggen for flere detaljer. - + + &Start + Resume/start the torrent + &Start + + + + Sto&p + Stop the torrent + Sto&pp + + + + Force Star&t + Force Resume/start the torrent + Tving star&t + + + &Remove Remove the torrent Fje&rn - + Download first and last pieces first Last ned de første og siste delene først - + Automatic Torrent Management Automatisk torrentbehandling - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatisk modus betyr at diverse torrent-egenskaper (f.eks. lagringsmappe) vil bli bestemt av tilknyttet kategori - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Kan ikke tvinge reannonsering når torrenten er pauset/i kø/har feil/kontrolleres - - - + Super seeding mode Superdelingsmodus @@ -11758,28 +12266,28 @@ Velg et annet navn og prøv igjen. Ikon-ID - + UI Theme Configuration. Oppsett av grensesnittdrakt. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Klarte ikke ta i bruk alle endringene i grensesnittdrakta. Detaljene finner du i loggen. - + Couldn't save UI Theme configuration. Reason: %1 Klarte ikke lagre oppsett av grensesnittdrakt fordi: %1 - - + + Couldn't remove icon file. File: %1. Klarte ikke fjerne ikonfil. Fil: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Klarte ikke kopiere ikonfil. Kilde: %1. Mål: %2. @@ -11787,7 +12295,12 @@ Velg et annet navn og prøv igjen. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Klarte ikke ta i bruk programstil. Ukjent stil: «%1» + + + Failed to load UI theme from file: "%1" Klarte ikke laste draktfil for brukergrensesnitt: «%1» @@ -11818,20 +12331,21 @@ Velg et annet navn og prøv igjen. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Klarte ikke migrere innstillinger: WebUI https, fil: «%1», feil: «%2» - + Migrated preferences: WebUI https, exported data to file: "%1" Migrerte innstillinger: WebUI https, eksporterte data til fil: «%1» - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Fant ugyldig verdi i oppsettsfila og tilbakestiller til standardverdi. Nøkkel: «%1». Ugyldig verdi: «%2». @@ -11839,32 +12353,32 @@ Velg et annet navn og prøv igjen. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Fant python-fortolker. Navn: «%1». Versjon: «%2» - + Failed to find Python executable. Path: "%1". Fant ikke python-fortolker. Sti: «%1». - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Fant ikke python3-fortolker i miljøvariabelen PATH. PATH: «%1» - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Fant ikke python-fortolker i miljøvariabelen PATH. PATH: «%1» - + Failed to find `python` executable in Windows Registry. Fant ikke python-fortolker i Windows-registeret - + Failed to find Python executable Fant ikke python-fortolker @@ -11956,72 +12470,72 @@ Velg et annet navn og prøv igjen. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Ugyldig økt-informasjonskapsel er oppgitt: «%1». Bruker standard i stedet for. - + Unacceptable file type, only regular file is allowed. Uakseptabel filtype, bare ordinære filer er tillatt. - + Symlinks inside alternative UI folder are forbidden. Symbolske lenker inni mapper for alternative grensesnitt er forbudt. - + Using built-in WebUI. Bruker det innebygde nettgrensesnittet. - + Using custom WebUI. Location: "%1". Bruker et tilpasset nettgrensesnitt. Plassering: «%1». - + WebUI translation for selected locale (%1) has been successfully loaded. Lastet inn nettgrensesnittets oversettelse for det valgte språket (%1). - + Couldn't load WebUI translation for selected locale (%1). Klarte ikke laste inn nettgrensesnittets oversettelse for det valgte språket (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Mangler skilletegn «:» i webgrensesnittets brukervalgte HTTP-hode: «%1» - + Web server error. %1 Feil fra web-tjener. %1 - + Web server error. Unknown error. Feil fra web-tjener. Ukjent feil. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Nettgrensesnitt: Opprinnelseshodet og målopprinnelsen samsvarer ikke! Kilde-IP: «%1». Opprinnelseshode: «%2». Målopprinnelse: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Nettgrensesnitt: Henvisningsshodet og målopprinnelsen samsvarer ikke! Kilde-IP: «%1». Henvisningshode: «%2». Målopprinnelse: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Nettgrensesnitt: Ugyldig vertsoverskrift, porter samsvarer ikke. Forespørselens kilde-IP: «%1». Tjenerport: «%2». Mottatt vertsoverskrift: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Nettgrensesnitt: Ugyldig vertsoverskrift. Forespørselens kilde-IP: «%1». Mottatt vertsoverskrift: «%2» @@ -12029,125 +12543,133 @@ Velg et annet navn og prøv igjen. WebUI - + Credentials are not set Referanser ikke angitt - + WebUI: HTTPS setup successful Nettgrensesnitt: HTTPS satt opp - + WebUI: HTTPS setup failed, fallback to HTTP Nettgrensesnitt: Oppsett av HTTPS mislyktes, faller tilbake til HTTP - + WebUI: Now listening on IP: %1, port: %2 Nettgrensesnitt: Lytter nå på IP. %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Klarte ikke binde til IP. %1, port: %2, fordi: %3 + + fs + + + Unknown error + Ukjent feil + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1t %2m - + %1d %2h e.g: 2 days 10 hours %1d %2t - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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ørt. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_nl.ts b/src/lang/qbittorrent_nl.ts index 1b031f462..9f4d6a6d3 100644 --- a/src/lang/qbittorrent_nl.ts +++ b/src/lang/qbittorrent_nl.ts @@ -14,75 +14,75 @@ Over - + Authors Auteurs - + Current maintainer Huidige beheerder - + Greece Griekenland - - + + Nationality: Nationaliteit: - - + + E-mail: E-mail: - - + + Name: Naam: - + Original author Oorspronkelijke auteur - + France Frankrijk - + Special Thanks Speciale dank - + Translators Vertalers - + License Licentie - + Software Used Gebruikte software - + qBittorrent was built with the following libraries: qBittorrent werd gebouwd met de volgende bibliotheken: - + Copy to clipboard Naar klembord kopiëren @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Auteursrecht %1 2006-2024 het qBittorrent-project + Copyright %1 2006-2025 The qBittorrent project + Auteursrecht %1 2006-2025 het qBittorrent-project @@ -166,15 +166,10 @@ Opslaan op - + Never show again Nooit meer weergeven - - - Torrent settings - Torrent-instellingen - Set as default category @@ -191,12 +186,12 @@ Torrent starten - + Torrent information Torrent-informatie - + Skip hash check Hash-check overslaan @@ -205,6 +200,11 @@ Use another path for incomplete torrent Ander pad gebruiken voor onvolledige torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Stop-voorwaarde: - - + + None Geen - - + + Metadata received Metadata ontvangen - + Torrents that have metadata initially will be added as stopped. - + Torrents die in eerste instantie metadata hebben, worden toegevoegd als gestopt. - - + + Files checked Bestanden gecontroleerd - + Add to top of queue Bovenaan wachtrij toevoegen - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Indien aangevinkt zal het .torrent-bestand niet verwijderd worden, ongeacht de instellingen op de "download"-pagina van het opties-dialoogvenster. - + Content layout: Indeling van inhoud: - + Original Oorspronkelijk - + Create subfolder Submap aanmaken - + Don't create subfolder Geen submap aanmaken - + Info hash v1: Info-hash v1: - + Size: Grootte: - + Comment: Opmerking: - + Date: Datum: @@ -329,151 +329,147 @@ Laatst gebruikte opslagpad onthouden - + Do not delete .torrent file .torrent-bestand niet verwijderen - + Download in sequential order In sequentiële volgorde downloaden - + Download first and last pieces first Eerste en laatste deeltjes eerst downloaden - + Info hash v2: Info-hash v2: - + Select All Alles selecteren - + Select None Niets selecteren - + Save as .torrent file... Opslaan als .torrent-bestand... - + I/O Error I/O-fout - + Not Available This comment is unavailable Niet beschikbaar - + Not Available This date is unavailable Niet beschikbaar - + Not available Niet beschikbaar - + Magnet link Magneetkoppeling - + Retrieving metadata... Metadata ophalen... - - + + Choose save path Opslagpad kiezen - + No stop condition is set. Er is geen stop-voorwaarde ingesteld. - + Torrent will stop after metadata is received. Torrent zal stoppen nadat metadata is ontvangen. - Torrents that have metadata initially aren't affected. - Torrents die in eerste instantie metadata hebben worden niet beïnvloed. - - - + Torrent will stop after files are initially checked. Torrent zal stoppen nadat de bestanden in eerste instantie zijn gecontroleerd. - + This will also download metadata if it wasn't there initially. Dit zal ook metadata downloaden als die er aanvankelijk niet was. - - + + N/A N/B - + %1 (Free space on disk: %2) %1 (vrije ruimte op schijf: %2) - + Not available This size is unavailable. Niet beschikbaar - + Torrent file (*%1) Torrentbestand (*%1) - + Save as torrent file Opslaan als torrentbestand - + Couldn't export torrent metadata file '%1'. Reason: %2. Kon torrent-metadatabestand '%1' niet exporteren. Reden: %2. - + Cannot create v2 torrent until its data is fully downloaded. Kan v2-torrent niet aanmaken totdat de gegevens ervan volledig zijn gedownload. - + Filter files... Bestanden filteren... - + Parsing metadata... Metadata verwerken... - + Metadata retrieval complete Metadata ophalen voltooid @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrent downloaden... Bron: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Toevoegen van torrent mislukt. Bron: "%1". Reden: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Poging gedetecteerd om een dubbele torrent toe te voegen. Bron: %1. Bestaande torrent: %2. Resultaat: %3 - - - + Merging of trackers is disabled Samenvoegen van trackers is uitgeschakeld - + Trackers cannot be merged because it is a private torrent Trackers kunnen niet worden samengevoegd omdat het een privétorrent is - + Trackers are merged from new source Trackers worden samengevoegd vanaf nieuwe bron + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent-deelbegrenzing + Torrent-deelbegrenzing @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torrents opnieuw controleren bij voltooiing - - + + ms milliseconds ms - + Setting Instelling - + Value Value set for this setting Waarde - + (disabled) (uitgeschakeld) - + (auto) (automatisch) - + + min minutes min - + All addresses Alle adressen - + qBittorrent Section qBittorrent-sectie - - + + Open documentation Documentatie openen - + All IPv4 addresses Alle IPv4-adressen - + All IPv6 addresses Alle IPv6-adressen - + libtorrent Section libtorrent-sectie - + Fastresume files Bestanden voor snel hervatten - + SQLite database (experimental) SQLite-database (experimenteel) - + Resume data storage type (requires restart) Opslagtype hervattingsgegevens (opnieuw starten vereist) - + Normal Normaal - + Below normal Lager dan normaal - + Medium Gemiddeld - + Low Laag - + Very low Zeer laag - + Physical memory (RAM) usage limit Gebruikslimiet fysiek geheugen (RAM) - + Asynchronous I/O threads Asynchrone I/O-threads - + Hashing threads Hashing-threads - + File pool size Grootte filepool - + Outstanding memory when checking torrents Vrij geheugen bij controleren van torrents - + Disk cache Schijfbuffer - - - - + + + + + s seconds s - + Disk cache expiry interval Interval voor verstrijken van schijfbuffer - + Disk queue size Grootte van wachtrij op schijf - - + + Enable OS cache Systeembuffer inschakelen - + Coalesce reads & writes Lezen en schrijven combineren - + Use piece extent affinity Affiniteit voor deeltjes in de buurt gebruiken - + Send upload piece suggestions Suggesties voor uploaden van deeltjes zenden - - - - + + + + + 0 (disabled) 0 (uitgeschakeld) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Interval voor opslaan van hervattingsgegevens [0: uitgeschakeld] - + Outgoing ports (Min) [0: disabled] Uitgaande poorten (min) [0: uitgeschakeld] - + Outgoing ports (Max) [0: disabled] Uitgaande poorten (max) [0: uitgeschakeld] - + 0 (permanent lease) 0 (permanente lease) - + UPnP lease duration [0: permanent lease] UPnP-leaseduur [0: permanente lease] - + Stop tracker timeout [0: disabled] Timeout voor stoppen van tracker [0: uitgeschakeld] - + Notification timeout [0: infinite, -1: system default] Time-out melding [0: oneindig, -1: systeemstandaard] - + Maximum outstanding requests to a single peer Maximaal aantal openstaande verzoeken aan een enkele peer - - - - - + + + + + KiB KiB - + (infinite) (oneindig) - + (system default) (systeemstandaard) - + + Delete files permanently + Bestanden permanent verwijderen + + + + Move files to trash (if possible) + Bestanden naar prullenbak verplaatsen (indien mogelijk) + + + + Torrent content removing mode + Modus voor verwijderen van torrent-inhoud + + + This option is less effective on Linux Deze optie is minder effectief op Linux - + Process memory priority Proces-geheugenprioriteit - + Bdecode depth limit Limiet Bdecode-diepte - + Bdecode token limit Limiet Bdecode-token - + Default Standaard - + Memory mapped files Bestanden opgeslagen in geheugen - + POSIX-compliant POSIX-conform - + + Simple pread/pwrite + Eenvoudige pread/pwrite + + + Disk IO type (requires restart) Type schijf-IO (opnieuw starten vereist) - - + + Disable OS cache Systeembuffer uitschakelen - + Disk IO read mode Schijf-IO leesmodus - + Write-through Write-through - + Disk IO write mode Schijf-IO schrijfmodus - + Send buffer watermark Verzendbuffer-watermerk - + Send buffer low watermark Verzendbuffer laag watermerk - + Send buffer watermark factor Verzendbuffer watermerk factor - + Outgoing connections per second Uitgaande verbindingen per seconde - - + + 0 (system default) 0 (systeemstandaard) - + Socket send buffer size [0: system default] Socket-verzendbuffergrootte [0: systeemstandaard] - + Socket receive buffer size [0: system default] Socket-ontvangstbuffergrootte [0: systeemstandaard] - + Socket backlog size Grootte socket-backlog - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit Limiet .torrent-bestandsgrootte - + Type of service (ToS) for connections to peers Type dienst (ToS) voor verbindingen naar peers - + Prefer TCP TCP verkiezen - + Peer proportional (throttles TCP) Peer-proportioneel (vermindert TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Ondersteuning voor geïnternationaliseerde domeinnamen (IDN) - + Allow multiple connections from the same IP address Meerdere verbindingen van hetzelfde IP-adres toestaan - + Validate HTTPS tracker certificates Certificaten van HTTPS-trackers valideren - + Server-side request forgery (SSRF) mitigation Beperking van verzoekvervalsing aan de serverzijde (SSRF) - + Disallow connection to peers on privileged ports Verbinding met peers via systeempoorten weigeren - + It appends the text to the window title to help distinguish qBittorent instances - + Het voegt de tekst toe aan de venstertitel om qBittorrent-instanties te helpen onderscheiden - + Customize application instance name - + Naam van instantie van toepassing aanpassen - + It controls the internal state update interval which in turn will affect UI updates Het regelt het update-interval van de interne status, dat op zijn beurt UI-updates zal beïnvloeden - + Refresh interval Vernieuwinterval - + Resolve peer host names Hostnamen van peers oplossen - + IP address reported to trackers (requires restart) IP-adres gemeld aan trackers (opnieuw starten vereist) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Alle trackers opnieuw aankondigen wanneer IP of poort wijzigt - + Enable icons in menus Pictogrammen in menu's inschakelen - + + Attach "Add new torrent" dialog to main window + Dialoogvenster "nieuwe torrent toevoegen" vastmaken aan hoofdvenster + + + Enable port forwarding for embedded tracker Port forwarding inschakelen voor ingebedde tracker - + Enable quarantine for downloaded files Quarantaine voor gedownloade bestanden inschakelen - + Enable Mark-of-the-Web (MOTW) for downloaded files Mark-of-the-Web (MOTW) voor gedownloade bestanden inschakelen - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Van invloed op certificaatvalidatie en niet-torrent-protocol-activiteiten (bijv. RSS-feeds, programma-updates, torrentbestanden, geoip db, enz.) + + + + Ignore SSL errors + SSL-fouten negeren + + + (Auto detect if empty) (automatisch detecteren wanneer leeg) - + Python executable path (may require restart) Pad naar python-executable (kan herstart vereisen) - + + Start BitTorrent session in paused state + BitTorrent-sessie starten in gepauzeerde status + + + + sec + seconds + sec + + + + -1 (unlimited) + -1 (onbegrensd) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Time-out voor uitschakelen van BitTorrent-sessie [-1: onbegrensd] + + + Confirm removal of tracker from all torrents Verwijdering van tracker uit alle torrents bevestigen - + Peer turnover disconnect percentage Peer-omloop ontkoppelingspercentage - + Peer turnover threshold percentage Peer-omloop drempelpercentage - + Peer turnover disconnect interval Peer-omloop ontkoppelingsinterval - + Resets to default if empty Wordt teruggezet op standaard als deze leeg is - + DHT bootstrap nodes DHT-bootstrap-nodes - + I2P inbound quantity I2P inkomende hoeveelheid - + I2P outbound quantity I2P uitgaande hoeveelheid - + I2P inbound length I2P inkomende lengte - + I2P outbound length I2P uitgaande lengte - + Display notifications Meldingen weergeven - + Display notifications for added torrents Meldingen weergeven voor toegevoegde torrents - + Download tracker's favicon Favicon van tracker downloaden - + Save path history length Lengte geschiedenis opslagpaden - + Enable speed graphs Snelheidsgrafieken inschakelen - + Fixed slots Vaste slots - + Upload rate based Gebaseerd op uploadsnelheid - + Upload slots behavior Gedrag van uploadslots - + Round-robin Elk om beurt - + Fastest upload Snelste upload - + Anti-leech Anti-leech - + Upload choking algorithm Upload-choking-algoritme - + Confirm torrent recheck Torrent opnieuw controleren bevestigen - + Confirm removal of all tags Verwijderen van alle labels bevestigen - + Always announce to all trackers in a tier Altijd aankondigen bij alle trackers in een niveau - + Always announce to all tiers Altijd aankondigen bij alle niveaus - + Any interface i.e. Any network interface Om het even welke interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP gemengde modus algoritme - + Resolve peer countries Landen van peers oplossen - + Network interface Netwerkinterface - + Optional IP address to bind to Optioneel IP-adres om aan te binden - + Max concurrent HTTP announces Maximaal aantal gelijktijdige HTTP-aankondigingen - + Enable embedded tracker Ingebedde tracker inschakelen - + Embedded tracker port Poort ingebedde tracker + + AppController + + + + Invalid directory path + Ongeldig map-pad + + + + Directory does not exist + Map bestaat niet + + + + Invalid mode, allowed values: %1 + Ongeldige modus. Toegestane waarden: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Actief in draagbare modus. Profielmap automatisch gedetecteerd in: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Redundante opdrachtregelvlag gedetecteerd: "%1". Draagbare modus impliceert een relatieve snelhervatting. - + Using config directory: %1 Configuratiemap gebruiken: %1 - + Torrent name: %1 Naam torrent: %1 - + Torrent size: %1 Grootte torrent: %1 - + Save path: %1 Opslagpad: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds De torrent werd gedownload in %1. - + + Thank you for using qBittorrent. Bedankt om qBittorrent te gebruiken. - + Torrent: %1, sending mail notification Torrent: %1, melding via mail verzenden - + Add torrent failed Toevoegen van torrent mislukt - + Couldn't add torrent '%1', reason: %2. Kon torrent '%1' niet toevoegen. Reden: %2 - + The WebUI administrator username is: %1 De WebUI-administrator-gebruikersnaam is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Het administratorwachtwoord voor WebUI is niet ingesteld. Er wordt een tijdelijk wachtwoord gegeven voor deze sessie: %1 - + You should set your own password in program preferences. U moet uw eigen wachtwoord instellen in de programmavoorkeuren. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. De WebUI is uitgeschakeld! Bewerk het configuratiebestand handmatig om de WebUI in te schakelen. - + Running external program. Torrent: "%1". Command: `%2` Extern programma uitvoeren. Torrent: "%1". Opdracht: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Extern programma uitvoeren mislukt. Torrent: "%1". Opdracht: `%2` - + Torrent "%1" has finished downloading Torrent '%1' is klaar met downloaden - + WebUI will be started shortly after internal preparations. Please wait... WebUI zal kort na de interne voorbereidingen worden opgestart. Even geduld... - - + + Loading torrents... Torrents laden... - + E&xit Sluiten - + I/O Error i.e: Input/Output Error I/O-fout - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Reden: %2 - + Torrent added Torrent toegevoegd - + '%1' was added. e.g: xxx.avi was added. '%1' werd toegevoegd. - + Download completed Download voltooid - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 gestart. Proces-ID: %2 - + + This is a test email. + Dit is een test e-mail. + + + + Test email + Test e-mail + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' is klaar met downloaden. - + Information Informatie - + To fix the error, you may need to edit the config file manually. Om de fout te herstellen, moet u mogelijk het configuratiebestand handmatig bewerken. - + To control qBittorrent, access the WebUI at: %1 Gebruik de WebUI op %1 om qBittorrent te besturen - + Exit Afsluiten - + Recursive download confirmation Bevestiging voor recursief downloaden - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' bevat .torrent-bestanden, wilt u verdergaan met hun download? - + Never Nooit - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" .torrent-bestand binnenin torrent recursief downloaden. Bron-torrent: "%1". Bestand: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Instellen van gebruikslimiet fysiek geheugen (RAM) mislukt. Foutcode: %1. Foutbericht: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Instellen van gebruikslimiet fysiek geheugen (RAM) mislukt. Gevraagde grootte: %1. Harde systeemlimiet: %2. Foutcode: %3. Foutbericht: "%4" - + qBittorrent termination initiated Afsluiten van qBittorrent gestart - + qBittorrent is shutting down... qBittorrent wordt afgesloten... - + Saving torrent progress... Torrent-voortgang opslaan... - + qBittorrent is now ready to exit qBittorrent is nu klaar om af te sluiten @@ -1609,12 +1715,12 @@ Prioriteit: - + Must Not Contain: Mag niet bevatten: - + Episode Filter: Afleveringsfilter: @@ -1667,263 +1773,263 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o 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 - + 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 - + Episode number is a mandatory positive value Afleveringsnummer is een verplichte positieve waarde - + Rules Regels - + Rules (legacy) Regels (oud) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Oneindig bereik: <b>1x25-;</b> komt overeen met aflevering 25 en verder van seizoen 1, en alle afleveringen van latere seizoenen - + 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? Weet u zeker dat u de geselecteerde downloadregels wilt verwijderen? - + Rule deletion confirmation Bevestiging verwijderen regel - + Invalid action Ongeldige handeling - + The list is empty, there is nothing to export. De lijst is leeg, er is niets om te exporteren. - + Export RSS rules RSS-regels exporteren - + I/O Error I/O-fout - + Failed to create the destination file. Reason: %1 Doelbestand aanmaken mislukt. Reden: %1 - + Import RSS rules RSS-regels importeren - + Failed to import the selected rules file. Reason: %1 Importeren van geselecteerd regelbestand mislukt. Reden: %1 - + Add new rule... Nieuwe regel toevoegen... - + Delete rule Regel verwijderen - + Rename rule... Regel hernoemen... - + Delete selected rules Geselecteerde regels verwijderen - + Clear downloaded episodes... Gedownloade afleveringen wissen... - + Rule renaming Regelhernoeming - + Please type the new rule name Typ de naam van de nieuwe regel - + Clear downloaded episodes Gedownloade afleveringen wissen - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Weet u zeker dat u de lijst van gedownloade afleveringen voor de geselecteerde regel wilt wissen? - + Regex mode: use Perl-compatible regular expressions Regex-modus: Perl-compatibele reguliere expressies gebruiken - - + + Position %1: %2 Positie %1: %2 - + Wildcard mode: you can use U kunt volgende jokertekens gebruiken: - - + + Import error Importeerfout - + Failed to read the file. %1 Lezen van bestand mislukt. %1 - + ? to match any single character ? voor een enkel teken - + * to match zero or more of any characters * voor nul of meerdere tekens - + Whitespaces count as AND operators (all words, any order) Spaties tellen als AND-operatoren (alle woorden, om het even welke volgorde) - + | is used as OR operator | wordt gebruikt als OR-operator - + If word order is important use * instead of whitespace. Gebruik * in plaats van een spatie als woordvolgorde belangrijk is. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Een expressie met een lege %1-clausule (bijvoorbeeld %2) - + will match all articles. zal met alle artikels overeenkomen. - + will exclude all articles. zal alle artikels uitsluiten. @@ -1965,7 +2071,7 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Kan torrent-hervattingsmap niet aanmaken: "%1" @@ -1975,28 +2081,38 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Kan hervattingsgegevens niet verwerken: ongeldig formaat - - + + Cannot parse torrent info: %1 Kan torrent-informatie niet verwerken: %1 - + Cannot parse torrent info: invalid format Kan torrent-informatie niet verwerken: ongeldig formaat - + Mismatching info-hash detected in resume data Niet-overeenkomende info-hash gedetecteerd in hervattingsgegevens - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Kon metadata van torrent niet opslaan naar '%1'. Fout: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Kon hervattingsgegevens van torrent niet opslaan naar '%1'. Fout: %2. @@ -2007,16 +2123,17 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o + Cannot parse resume data: %1 Kan hervattingsgegevens niet verwerken: %1 - + Resume data is invalid: neither metadata nor info-hash was found Hervattingsgegevens zijn ongeldig: geen metadata of info-hash gevonden - + Couldn't save data to '%1'. Error: %2 Kon gegevens niet opslaan naar '%1'. Fout: %2 @@ -2024,38 +2141,60 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o BitTorrent::DBResumeDataStorage - + Not found. Niet gevonden. - + Couldn't load resume data of torrent '%1'. Error: %2 Kon hervattingsgegevens van torrent '%1' niet laden. Fout: %2 - - + + Database is corrupted. Database is beschadigd. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Kon Write-Ahead Logging (WAL) logboekmodus niet inschakelen. Fout: %1. - + Couldn't obtain query result. Kon zoekresultaat niet verkrijgen. - + WAL mode is probably unsupported due to filesystem limitations. WAL-modus wordt waarschijnlijk niet ondersteund door beperkingen in het bestandssysteem. - + + + Cannot parse resume data: %1 + Kan hervattingsgegevens niet verwerken: %1 + + + + + Cannot parse torrent info: %1 + Kan torrent-informatie niet verwerken: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Kon transactie niet starten. Fout: %1 @@ -2063,22 +2202,22 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Kon metadata van torrent niet opslaan. Fout: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Kon hervattingsgegevens voor torrent '%1' niet opslaan. Fout: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Kon hervattingsgegevens van torrent '%1' niet verwijderen. Fout: %2 - + Couldn't store torrents queue positions. Error: %1 Kon torrentwachtrijposities niet opslaan. Fout: %1 @@ -2086,457 +2225,503 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Ondersteuning voor Distributed Hash Table (DHT): %1 - - - - - - - - - + + + + + + + + + ON AAN - - - - - - - - - + + + + + + + + + OFF UIT - - + + Local Peer Discovery support: %1 Ondersteuning voor lokale peer-ontdekking: %1 - + Restart is required to toggle Peer Exchange (PeX) support Opnieuw opstarten is vereist om ondersteuning voor peer-uitwisseling (PeX) in/uit te schakelen - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Hervatten van torrent mislukt. Torrent: "%1". Reden: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Hervatten van torrent mislukt. Inconsistente torrent-ID gedetecteerd. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Inconsistente gegevens gedetecteerd: categorie ontbreekt in het configuratiebestand. Categorie zal worden hersteld, maar de instellingen worden teruggezet naar standaard. Torrent: "%1". Categorie: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Inconsistente gegevens gedetecteerd: ongeldige categorie. Torrent: "%1". Categorie: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Gedetecteerd dat de opslagpaden van de herstelde categorie en het huidige opslagpad van de torrent niet overeenkomen. Torrent is nu overgeschakeld naar handmatige modus. Torrent: "%1". Categorie: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Inconsistente gegevens gedetecteerd: label ontbreekt in het configuratiebestand. Het label zal worden hersteld. Torrent: "%1". Label: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Inconsistente gegevens gedetecteerd: ongeldig label. Torrent: "%1". Label: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Systeem-wake-up-gebeurtenis gedetecteerd. Opnieuw aankondigen bij alle trackers... - + Peer ID: "%1" Peer-ID: "%1" - + HTTP User-Agent: "%1" HTTP user-agent: "%1" - + Peer Exchange (PeX) support: %1 Ondersteuning voor peer-uitwisseling (PeX): %1 - - + + Anonymous mode: %1 Anonieme modus: %1 - - + + Encryption support: %1 Versleutelingsondersteuning %1 - - + + FORCED GEFORCEERD - + Could not find GUID of network interface. Interface: "%1" Kon GUID van netwerkinterface niet terugvinden. Interface: %1 - + Trying to listen on the following list of IP addresses: "%1" Proberen luisteren op de volgende lijst van IP-adressen: "%1" - + Torrent reached the share ratio limit. Torrent heeft de limiet voor deelverhouding bereikt. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent verwijderd. - - - - - - Removed torrent and deleted its content. - Torrent en zijn inhoud verwijderd. - - - - - - Torrent paused. - Torrent gepauzeerd. - - - - - + Super seeding enabled. Super-seeding ingeschakeld. - + Torrent reached the seeding time limit. Torrent heeft de limiet voor seed-tijd bereikt. - + Torrent reached the inactive seeding time limit. Torrent heeft de limiet voor inactieve seed-tijd bereikt. - + Failed to load torrent. Reason: "%1" Laden van torrent mislukt. Reden: "%1 - + I2P error. Message: "%1". I2P-fout. Bericht: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP-ondersteuning: AAN - + + Saving resume data completed. + Opslaan van hervattingsgegevens voltooid. + + + + BitTorrent session successfully finished. + BitTorrent-sessie met succes voltooid. + + + + Session shutdown timed out. + Uitschakelen van sessie is verlopen. + + + + Removing torrent. + Torrent verwijderen. + + + + Removing torrent and deleting its content. + Torrent en zijn inhoud verwijderen. + + + + Torrent stopped. + Torrent gestopt. + + + + Torrent content removed. Torrent: "%1" + Torrent-inhoud verwijderd. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Verwijderen van torrent-inhoud mislukt. Torrent: "%1". Fout: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent verwijderd. Torrent: "%1" + + + + Merging of trackers is disabled + Samenvoegen van trackers is uitgeschakeld + + + + Trackers cannot be merged because it is a private torrent + Trackers kunnen niet worden samengevoegd omdat het een privétorrent is + + + + Trackers are merged from new source + Trackers worden samengevoegd vanaf nieuwe bron + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP-ondersteuning: UIT - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Exporteren van torrent mislukt. Torrent: "%1". Bestemming: "%2". Reden: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Opslaan van hervattingsgegevens afgebroken. Aantal openstaande torrents: %1 - + The configured network address is invalid. Address: "%1" Het geconfigureerde netwerkadres is ongeldig. Adres: "%1 - - + + Failed to find the configured network address to listen on. Address: "%1" Kon het geconfigureerde netwerkadres om op te luisteren niet vinden. Adres: "%1" - + The configured network interface is invalid. Interface: "%1" De geconfigureerde netwerkinterface is ongeldig. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Ongeldig IP-adres verworpen tijdens het toepassen van de lijst met verbannen IP-adressen. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Tracker aan torrent toegevoegd. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tracker uit torrent verwijderd. Torrent: "%1". Tracker: "%2". - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL-seed aan torrent toegevoegd. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL-seed uit torrent verwijderd. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent gepauzeerd. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Verwijderen van part-bestand mislukt. Torrent: "%1". Reden: "%2". - + Torrent resumed. Torrent: "%1" Torrent hervat. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Downloaden van torrent voltooid. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Verplaatsen van torrent geannuleerd. Torrent: "%1". Bron: "%2". Bestemming: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent gestopt. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Verplaatsen van torrent in wachtrij zetten mislukt. Torrent: "%1". Bron: "%2". Bestemming: "%3". Reden: torrent wordt momenteel naar de bestemming verplaatst - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Verplaatsen van torrent in wachtrij zetten mislukt. Torrent: "%1". Bron: "%2". Bestemming: "%3". Reden: beide paden verwijzen naar dezelfde locatie - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Verplaatsen van torrent in wachtrij gezet. Torrent: "%1". Bron: "%2". Bestemming: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrent beginnen verplaatsen. Torrent: "%1". Bestemming: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Opslaan van configuratie van categorieën mislukt. Bestand: "%1". Fout: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Verwerken van configuratie van categorieën mislukt. Bestand: "%1". Fout: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP-filterbestand met succes verwerkt. Aantal toegepaste regels: %1 - + Failed to parse the IP filter file Verwerken van IP-filterbestand mislukt - + Restored torrent. Torrent: "%1" Torrent hersteld. Torrent: "%1" - + Added new torrent. Torrent: "%1" Nieuwe torrent toegevoegd. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrentfout. Torrent: "%1". Fout: "%2". - - - Removed torrent. Torrent: "%1" - Torrent verwijderd. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent en zijn inhoud verwijderd. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent mist SSL-parameters. Torrent: “%1”. Bericht: “%2” - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Bestandsfoutwaarschuwing. Torrent: "%1". Bestand: "%2". Reden: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP: port mapping mislukt. Bericht: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP: port mapping gelukt. Bericht: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP-filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). gefilterde poort (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). systeempoort (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent-sessie heeft een ernstige fout ondervonden. Reden: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5-proxyfout. Adres: %1. Bericht: "%2" - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 gemengde modus beperkingen - + Failed to load Categories. %1 Laden van categorieën mislukt: %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Laden van configuratie van categorieën mislukt. Bestand: "%1". Fout: "ongeldig gegevensformaat" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent verwijderd maar verwijderen van zijn inhoud en/of part-bestand is mislukt. Torrent: "%1". Fout: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 is uitgeschakeld - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 is uitgeschakeld - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Raadpleging van URL-seed-DNS mislukt. Torrent: "%1". URL: "%2". Fout: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Foutmelding ontvangen van URL-seed. Torrent: "%1". URL: "%2". Bericht: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Luisteren naar IP gelukt: %1. Poort: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Luisteren naar IP mislukt. IP: "%1". Poort: "%2/%3". Reden: "%4" - + Detected external IP. IP: "%1" Externe IP gedetecteerd. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Fout: de interne waarschuwingswachtrij is vol en er zijn waarschuwingen weggevallen, waardoor u mogelijk verminderde prestaties ziet. Soort weggevallen waarschuwingen: "%1". Bericht: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Verplaatsen van torrent gelukt. Torrent: "%1". Bestemming: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Verplaatsen van torrent mislukt. Torrent: "%1". Bron: "%2". Bestemming: "%3". Reden: "%4" @@ -2546,19 +2731,19 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Failed to start seeding. - + Beginnen met seeden mislukt. BitTorrent::TorrentCreator - + Operation aborted Bewerking afgebroken - - + + Create new torrent file failed. Reason: %1. Aanmaken van nieuw torrentbestand mislukt. Reden: %1. @@ -2566,67 +2751,67 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Toevoegen van peer "%1" aan torrent "%2" mislukt. Reden: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" is toegevoegd aan torrent "%2". - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Onverwachte gegevens gedetecteerd. Torrent: %1. Gegevens: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Kon niet schrijven naar bestand. Reden: "%1". Torrent is nu in modus "alleen uploaden". - + Download first and last piece first: %1, torrent: '%2' Eerste en laatste deeltjes eerst downloaden: %1, torrent: '%2' - + On Aan - + Off Uit - + Failed to reload torrent. Torrent: %1. Reason: %2 Herladen van torrent mislukt. Torrent: %1. Reden: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Genereren van hervattingsgegevens mislukt. Torrent: "%1". Reden: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Herstellen van torrent mislukt. Bestanden zijn waarschijnlijk verplaatst of opslag is niet toegankelijk. Torrent: "%1". Reden: "%2". - + Missing metadata Ontbrekende metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Naam wijzigen van bestand mislukt. Torrent: "%1", bestand: "%2", reden: "%3" - + Performance alert: %1. More info: %2 Prestatiewaarschuwing: %1. Meer informatie: %2 @@ -2647,189 +2832,189 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' moet syntax '%1 = %2' volgen - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' moet syntax '%1 = %2' volgen - + Expected integer number in environment variable '%1', but got '%2' Geheel nummer verwacht in omgevingsvariabele '%1', maar kreeg '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' moet syntax '%1 = %2' volgen - - - + Expected %1 in environment variable '%2', but got '%3' %1 verwacht in omgevingsvariabele '%2', maar kreeg '%3' - - + + %1 must specify a valid port (1 to 65535). %1 moet een geldige poort opgeven (1 tot 65535). - + Usage: Gebruik: - + [options] [(<filename> | <url>)...] [opties] [(<filename> | <url>)...] - + Options: Opties: - + Display program version and exit Programmaversie weergeven en afsluiten - + Display this help message and exit Dit helpbericht weergeven en afsluiten - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' moet syntax '%1 = %2' volgen + + + Confirm the legal notice Bevestig de juridische mededeling - - + + port poort - + Change the WebUI port De WebUI-poort wijzigen - + Change the torrenting port De torrent-poort wijzigen - + Disable splash screen Opstartscherm uitschakelen - + Run in daemon-mode (background) Uitvoeren in daemon-modus (achtergrond) - + dir Use appropriate short form or abbreviation of "directory" map - + Store configuration files in <dir> Configuratiebestanden opslaan in <dir> - - + + name naam - + Store configuration files in directories qBittorrent_<name> Configuratiebestanden opslaan in mappen qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory In de bestanden voor snel hervatten van libtorrent hacken en bestandspaden relatief aan de profielmap maken. - + files or URLs bestanden of URL's - + Download the torrents passed by the user Torrents doorgegeven door de gebruiker downloaden - + Options when adding new torrents: Opties bij het toevoegen van nieuwe torrents: - + path pad - + Torrent save path Opslagpad torrent - - Add torrents as started or paused - Torrents als gestart of gepauzeerd toevoegen + + Add torrents as running or stopped + Torrents toevoegen als actief of gestopt - + Skip hash check Hash-check overslaan - + Assign torrents to category. If the category doesn't exist, it will be created. Torrents aan categorie toewijzen. Als de categorie niet bestaat, zal hij aangemaakt worden. - + Download files in sequential order Bestanden in sequentiële volgorde downloaden - + Download first and last pieces first Eerste en laatste deeltjes eerst downloaden - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Opgeven of het "nieuwe torrent toevoegen"-venster opent bij het toevoegen van een torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Optiewaarden kunnen voorzien worden via omgevingsvariabelen. Voor optie 'parameter-naam' is de naam van de omgevingsvariabele 'QBT_PARAMETER_NAAM' (in hoofdletters, '-' vervangen door '_'). Om vlagwaarden door te geven stelt u de variabele in op '1' of 'TRUE'. Om bijvoorbeeld het 'splash screen' uit te schakelen: - + Command line parameters take precedence over environment variables Opdrachtregelparameters krijgen voorrang op omgevingsvariabelen - + Help Help @@ -2881,13 +3066,13 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o - Resume torrents - Torrents hervatten + Start torrents + Torrents starten - Pause torrents - Torrents pauzeren + Stop torrents + Torrents stoppen @@ -2898,15 +3083,20 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o ColorWidget - + Edit... Bewerken... - + Reset Herstellen + + + System + Systeem + CookiesDialog @@ -2947,12 +3137,12 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o CustomThemeSource - + Failed to load custom theme style sheet. %1 Laden van aangepast thema-stijlblad mislukt. %1 - + Failed to load custom theme colors. %1 Laden van aangepaste themakleuren mislukt. %1 @@ -2960,7 +3150,7 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o DefaultThemeSource - + Failed to load default theme colors. %1 Laden van standaard themakleuren mislukt. %1 @@ -2979,23 +3169,23 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o - Also permanently delete the files - Bestanden ook permanent verwijderen + Also remove the content files + Ook de inhoud-bestanden verwijderen - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Weet u zeker dat u '%1' uit de overdrachtlijst wilt verwijderen? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Weet u zeker dat u deze %1 torrents uit de overdrachtlijst wilt verwijderen? - + Remove Verwijderen @@ -3008,12 +3198,12 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Downloaden uit URL's - + Add torrent links Torrent-koppelingen toevoegen - + One link per line (HTTP links, Magnet links and info-hashes are supported) Een koppeling per regel (http-verbindingen, magneetkoppelingen en info-hashes worden ondersteund) @@ -3023,12 +3213,12 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Downloaden - + No URL entered Geen URL opgegeven - + Please type at least one URL. Typ op zijn minst één URL. @@ -3187,25 +3377,48 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Fout bij verwerken: het filterbestand is geen geldig PeerGuardian P2B-bestand. + + FilterPatternFormatMenu + + + Pattern Format + Patroon-formaat + + + + Plain text + Platte tekst + + + + Wildcards + Jokertekens + + + + Regular expression + Reguliere expressie + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrent downloaden... Bron: "%1" - - Trackers cannot be merged because it is a private torrent - Trackers kunnen niet worden samengevoegd omdat het een privétorrent is - - - + Torrent is already present Torrent is reeds aanwezig - + + Trackers cannot be merged because it is a private torrent. + Trackers kunnen niet worden samengevoegd omdat het een privétorrent is. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' staat reeds in de overdrachtlijst. Wilt u trackers samenvoegen vanuit de nieuwe bron? @@ -3213,38 +3426,38 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o 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 - + Database corrupted: no data section found. Database beschadigd: geen gegevenssectie teruggevonden. @@ -3252,17 +3465,17 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-aanvraaggrootte overschrijdt grens. Socket sluiten. Grens: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Foute HTTP-aanvraag-methode. Socket sluiten. IP: %1. Methode: "%2" - + Bad Http request, closing socket. IP: %1 Foute HTTP-aanvraag. Socket sluiten. IP: %1 @@ -3303,26 +3516,60 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o IconWidget - + Browse... Bladeren... - + Reset Herstellen - + Select icon Pictogram selecteren - + Supported image files Ondersteunde afbeeldingsbestanden + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Energiebeheer heeft geschikte D-Bus interface gevonden. Interface: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Fout in energiebeheer. Actie: %1. Fout: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Onverwachte fout in energiebeheer. Status: %1. Error: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 werd geblokkeerd. Reden: %2. - + %1 was banned 0.0.0.0 was banned %1 werd verbannen @@ -3369,60 +3616,60 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 is een onbekende opdrachtregelparameter - - + + %1 must be the single command line parameter. %1 moet de enige opdrachtregelparameter zijn - + Run application with -h option to read about command line parameters. Voer de toepassing uit met optie -h om te lezen over opdrachtregelparameters - + Bad command line Slechte opdrachtregel - + Bad command line: Slechte opdrachtregel: - + An unrecoverable error occurred. Er is een onherstelbare fout opgetreden. + - qBittorrent has encountered an unrecoverable error. qBittorrent heeft een onherstelbare fout ondervonden. - + You cannot use %1: qBittorrent is already running. U kunt %1 niet gebruiken: qBittorrent wordt al uitgevoerd. - + Another qBittorrent instance is already running. Er wordt al een andere instantie van qBittorrent uitgevoerd. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Onverwachte qBittorrent-instantie gevonden. Deze instantie wordt afgesloten. Huidige proces-ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Fout bij daemoniseren. Reden: "%1". Foutcode: %2. @@ -3435,609 +3682,680 @@ Ondersteunt de formaten: S01E01, 1x1, 2017.12.31 en 31.12.2017 (datumformaten o B&ewerken - + &Tools &Gereedschap - + &File &Bestand - + &Help &Help - + On Downloads &Done Wanneer downloads voltooid zijn - + &View Beel&d - + &Options... Opties... - - &Resume - Hervatten - - - + &Remove Verwijderen - + Torrent &Creator Torrent aanmaken - - + + Alternative Speed Limits Alternatieve snelheidsbegrenzing - + &Top Toolbar Bovenste werkbalk - + Display Top Toolbar Bovenste werkbalk weergeven - + Status &Bar Statusbalk - + Filters Sidebar Filter-zijbalk - + S&peed in Title Bar Snelheid in titelbalk - + Show Transfer Speed in Title Bar Overdrachtsnelheid weergeven in titelbalk - + &RSS Reader RSS-lezer - + Search &Engine Zoekmachine - + L&ock qBittorrent qBittorrent vergrendelen - + Do&nate! Doneren! - + + Sh&utdown System + + + + &Do nothing Niets doen - + Close Window Venster sluiten - - R&esume All - Alles hervatten - - - + Manage Cookies... Cookies beheren... - + Manage stored network cookies Opgeslagen netwerkcookies beheren - + Normal Messages Normale berichten - + Information Messages Informatieberichten - + Warning Messages Waarschuwingsberichten - + Critical Messages Kritieke berichten - + &Log Log - + + Sta&rt + Starten + + + + Sto&p + Stoppen + + + + R&esume Session + + + + + Pau&se Session + Sessie pauzeren + + + Set Global Speed Limits... Algemene snelheidsbegrenzing instellen... - + Bottom of Queue Onderaan wachtrij - + Move to the bottom of the queue Naar onderkant van de wachtrij verplaatsen - + Top of Queue Bovenaan wachtrij - + Move to the top of the queue Naar bovenkant van de wachtrij verplaatsen - + Move Down Queue Naar beneden in wachtrij - + Move down in the queue Naar beneden in de wachtrij verplaatsen - + Move Up Queue Naar boven in wachtrij - + Move up in the queue Naar boven in de wachtrij verplaatsen - + &Exit qBittorrent qBittorrent afsluiten - + &Suspend System Slaapstand - + &Hibernate System Sluimerstand - - S&hutdown System - Afsluiten - - - + &Statistics Statistieken - + Check for Updates Controleren op updates - + Check for Program Updates Op programma-updates controleren - + &About Over - - &Pause - Pauzeren - - - - P&ause All - Alles pauzeren - - - + &Add Torrent File... Torrentbestand toevoegen... - + Open Openen - + E&xit Sluiten - + Open URL URL openen - + &Documentation Documentatie - + Lock Vergrendelen - - - + + + Show Weergeven - + Check for program updates Op programma-updates controleren - + Add Torrent &Link... Torrent-koppeling toevoegen - + If you like qBittorrent, please donate! Als u qBittorrent leuk vindt, doneer dan! - - + + Execution Log Uitvoeringslog - + Clear the password Wachtwoord wissen - + &Set Password Wachtwoord instellen - + Preferences Voorkeuren - + &Clear Password Wachtwoord wissen - + Transfers Overdrachten - - + + qBittorrent is minimized to tray qBittorrent is naar systeemvak geminimaliseerd - - - + + + This behavior can be changed in the settings. You won't be reminded again. Dit gedrag kan veranderd worden in de instellingen. U zult niet meer herinnerd worden. - + 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: - + Are you sure you want to clear the password? Weet u zeker dat u het wachtwoord wilt wissen? - + Use regular expressions Reguliere expressies gebruiken - + + + Search Engine + Zoekmachine + + + + Search has failed + Zoeken mislukt + + + + Search has finished + Zoeken is voltooid + + + Search Zoeken - + Transfers (%1) Overdrachten (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent is bijgewerkt en moet opnieuw gestart worden om de wijzigingen toe te passen. - + qBittorrent is closed to tray qBittorrent is naar systeemvak gesloten - + Some files are currently transferring. Er worden momenteel een aantal bestanden overgedragen. - + Are you sure you want to quit qBittorrent? Weet u zeker dat u qBittorrent wilt afsluiten? - + &No Nee - + &Yes Ja - + &Always Yes Altijd ja - + Options saved. Opties opgeslagen - + + [PAUSED] %1 + %1 is the rest of the window title + [GEPAUZEERD] %1 + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. - - + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Ontbrekende Python-runtime - + qBittorrent Update Available qBittorrent-update beschikbaar - + 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. - - + + Old Python Runtime Verouderde Python-runtime - + A new version is available. Er is een nieuwe versie beschikbaar. - + Do you want to download %1? Wilt u %1 downloaden? - + Open changelog... Wijzigingenlogboek openen... - + No updates available. You are already using the latest version. Geen updates beschikbaar. U gebruikt de laatste versie. - + &Check for Updates Controleren op updates - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Uw Python-versie (%1) is verouderd. Minimale vereiste: %2 Wilt u nu een nieuwere versie installeren? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Uw Pythonversie (%1) is verouderd. Werk bij naar de laatste versie om zoekmachines te laten werken. Minimale vereiste: %2. - + + Paused + Gepauzeerd + + + 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 installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 handmatig te installeren. - - - - + + Invalid password Ongeldig wachtwoord - + Filter torrents... Torrents filteren... - + Filter by: Filteren op: - + The password must be at least 3 characters long Het wachtwoord moet minstens 3 tekens lang zijn - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Torrentbestanden openen - + Torrent Files Torrentbestanden @@ -4232,7 +4550,12 @@ Gelieve het handmatig te installeren. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL-fout, URL: "%1", fouten: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL-fout negeren, URL: "%1", fouten: "%2" @@ -5526,47 +5849,47 @@ Gelieve het handmatig te installeren. Net::Smtp - + Connection failed, unrecognized reply: %1 Verbinding mislukt. Niet herkend antwoord: %1 - + Authentication failed, msg: %1 Authenticatie mislukt. Bericht: %1 - + <mail from> was rejected by server, msg: %1 <mail from> werd geweigerd door server. Bericht: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> werd geweigerd door server. Bericht: %1 - + <data> was rejected by server, msg: %1 <data> werd geweigerd door server. Bericht: %1 - + Message was rejected by the server, error: %1 Bericht werd geweigerd door de server. Fout: %1 - + Both EHLO and HELO failed, msg: %1 Zowel EHLO als HELO mislukt. Bericht: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 De SMTP-server lijkt geen van de door ons ondersteunde authenticatiemodi [CRAM-MD5|PLAIN|LOGIN] te ondersteunen. Authenticatie wordt overgeslagen omdat het waarschijnlijk zal mislukken... Server-authenticatiemodi: %1 - + Email Notification Error: %1 E-mail-meldingsfout: %1 @@ -5604,299 +5927,283 @@ Gelieve het handmatig te installeren. BitTorrent - + RSS RSS - - Web UI - Web-UI - - - + Advanced Geavanceerd - + Customize UI Theme... UI-thema aanpassen... - + Transfer List Overdrachtlijst - + Confirm when deleting torrents Bevestigen bij verwijderen van torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Geeft een bevestigingsvenster weer bij het pauzeren/hervatten van alle torrents - - - - Confirm "Pause/Resume all" actions - Bevestigen van "Alles pauzeren/hervatten"-acties - - - + Use alternating row colors In table elements, every other row will have a grey background. Afwisselende rijkleuren gebruiken - + Hide zero and infinity values Waarden nul en oneindig verbergen - + Always Altijd - - Paused torrents only - Alleen gepauzeerde torrents - - - + Action on double-click Actie bij dubbelklikken - + Downloading torrents: Downloadende torrents: - - - Start / Stop Torrent - Torrent starten/stoppen - - - - + + Open destination folder Doelmap openen - - + + No action Geen actie - + Completed torrents: Voltooide torrents: - + Auto hide zero status filters Filters met nulstatus automatisch verbergen - + Desktop Bureaublad - + Start qBittorrent on Windows start up qBittorrent starten bij opstarten van Windows - + Show splash screen on start up Splash-screen weergeven bij opstarten - + Confirmation on exit when torrents are active Bevestiging bij afsluiten wanneer torrents actief zijn - + Confirmation on auto-exit when downloads finish Bevestiging bij automatisch afsluiten wanneer downloads voltooid zijn - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Om qBittorrent in te stellen als standaardprogramma voor .torrent-bestanden en/of magneetkoppelingen<br/>kunt u het dialoogvenster <span style=" font-weight:600;">Standaardprogramma's</span> via het <span style=" font-weight:600;">configuratiescherm</span> gebruiken.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Indeling van torrent-inhoud: - + Original Oorspronkelijk - + Create subfolder Submap aanmaken - + Don't create subfolder Geen submap aanmaken - + The torrent will be added to the top of the download queue De torrent wordt bovenaan de downloadwachtrij toegevoegd - + Add to top of queue The torrent will be added to the top of the download queue Bovenaan wachtrij toevoegen - + When duplicate torrent is being added Wanneer een dubbele torrent toegevoegd wordt - + Merge trackers to existing torrent Trackers samenvoegen in bestaande torrent - + Keep unselected files in ".unwanted" folder Niet-geselecteerde bestanden in ".unwanted"-map houden - + Add... Toevoegen... - + Options.. Opties... - + Remove Verwijderen - + Email notification &upon download completion Melding via e-mail wanneer download voltooid is - + + Send test email + Test e-mail versturen + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Peer-verbindingsprotocol: - + Any Om het even welke - + I2P (experimental) I2P (experimenteel) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Als &quot;gemengde modus&quot; is ingeschakeld, kunnen I2P-torrents ook peers krijgen van andere bronnen dan de tracker, en verbinding maken met gewone IP's, zonder enige anonimisering. Dit kan nuttig zijn als de gebruiker niet geïnteresseerd is in de anonimisering van I2P, maar toch wil kunnen verbinden met I2P-peers.</p></body></html> - - - + Mixed mode Gemengde modus - - Some options are incompatible with the chosen proxy type! - Sommige opties zijn niet compatibel met het gekozen proxy-type! - - - + If checked, hostname lookups are done via the proxy Indien aangevinkt, worden hostnamen opgezocht via de proxy - + Perform hostname lookup via proxy Opzoeken van hostnamen uitvoeren via proxy - + Use proxy for BitTorrent purposes Proxy gebruiken voor BitTorrent-doeleinden - + RSS feeds will use proxy RSS-feeds zullen proxy gebruiken - + Use proxy for RSS purposes Proxy gebruiken voor RSS-doeleinden - + Search engine, software updates or anything else will use proxy Zoekmachine, software updates of iets anders zal gebruik maken van proxy - + Use proxy for general purposes Proxy gebruiken voor algemene doeleinden - + IP Fi&ltering IP-filtering - + Schedule &the use of alternative rate limits Gebruik van alternatieve snelheidsbegrenzing inplannen - + From: From start time Van: - + To: To end time Tot: - + Find peers on the DHT network Peers zoeken op het DHT-netwerk - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Versleuteling vereisen: uitsluitend verbinden met peers met protocolversleutelin Versleuteling uitschakelen: uitsluitend verbinden met peers zonder protocolversleuteling - + Allow encryption Versleuteling toestaan - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Meer informatie</a>) - + Maximum active checking torrents: Maximaal aantal actieve controlerende torrents: - + &Torrent Queueing Torrents in wachtrij plaatsen - + When total seeding time reaches Wanneer een totale seed-tijd bereikt wordt van - + When inactive seeding time reaches Wanneer een niet-actieve seed-tijd bereikt wordt van - - A&utomatically add these trackers to new downloads: - Deze trackers automatisch toevoegen aan nieuwe downloads: - - - + RSS Reader RSS-lezer - + Enable fetching RSS feeds Ophalen van RSS-feeds inschakelen - + Feeds refresh interval: Vernieuwinterval feeds: - + Same host request delay: - + Vertraging voor verzoek van dezelfde host: - + Maximum number of articles per feed: Maximaal aantal artikels per feed: - - - + + + min minutes min - + Seeding Limits Begrenzing voor seeden - - Pause torrent - Torrent pauzeren - - - + Remove torrent Torrent verwijderen - + Remove torrent and its files Torrent en zijn bestanden verwijderen - + Enable super seeding for torrent Superseeden inschakelen voor torrent - + When ratio reaches Wanneer verhouding bereikt wordt van - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Torrent stoppen + + + + A&utomatically append these trackers to new downloads: + Deze trackers automatisch toevoegen aan nieuwe downloads: + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Automatische RSS-torrent-downloader - + Enable auto downloading of RSS torrents Automatisch downloaden van RSS-torrents inschakelen - + Edit auto downloading rules... Regels voor automatisch downloaden bewerken... - + RSS Smart Episode Filter RSS slimme afleveringsfilter - + Download REPACK/PROPER episodes REPACK/PROPER-afleveringen downloaden - + Filters: Filters: - + Web User Interface (Remote control) Web-gebruikersinterface (bediening op afstand) - + IP address: IP-adres: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Geef een IPv4- of IPv6-adres op. U kunt "0.0.0.0" opgeven voor om het "::" voor om het even welk IPv6-adres of "*" voor IPv4 en IPv6. - + Ban client after consecutive failures: Cliënt verbannen na opeenvolgende fouten: - + Never Nooit - + ban for: verbannen voor: - + Session timeout: Sessie-timeout: - + Disabled Uitgeschakeld - - Enable cookie Secure flag (requires HTTPS) - Secure-flag van cookie inschakelen (vereist HTTPS) - - - + Server domains: Server-domeinen: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6447,483 @@ zet u er domeinnamen in die gebruikt worden door de WebUI-server. Gebruik ';' om meerdere items te splitsen. Jokerteken '*' kan gebruikt worden. - + &Use HTTPS instead of HTTP HTTPS in plaats van HTTP gebruiken - + Bypass authentication for clients on localhost Authenticatie overslaan voor clients op localhost - + Bypass authentication for clients in whitelisted IP subnets Authenticatie overslaan voor clients in toegestane IP-subnets - + IP subnet whitelist... Toegestane IP-subnets... - + + Use alternative WebUI + Alternatieve WebUI gebruiken + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Geef reverse proxy IP's (of subnets, bijvoorbeeld 0.0.0.0/24) op om forwarded client adres te gebruiken (X-Forwarded-For header). Gebruik ';' om meerdere items te splitsen. - + Upda&te my dynamic domain name Mijn dynamische domeinnaam bijwerken - + Minimize qBittorrent to notification area qBittorrent naar systeemvak minimaliseren - + + Search + Zoeken + + + + WebUI + WebUI + + + Interface Interface - + Language: Taal: - + + Style: + Stijl: + + + + Color scheme: + Kleurenschema + + + + Stopped torrents only + Alleen gestopte torrents + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Stijl systeemvakpictogram - - + + Normal Normaal - + File association Bestandskoppeling - + Use qBittorrent for .torrent files qBittorrent gebruiken voor .torrent-bestanden - + Use qBittorrent for magnet links qBittorrent gebruiken voor magneetkoppelingen - + Check for program updates Op programma-updates controleren - + Power Management Energiebeheer - + + &Log Files + + + + Save path: Opslagpad: - + Backup the log file after: Back-up maken van logbestand na: - + Delete backup logs older than: Back-up-logs verwijderen die ouder zijn dan: - + + Show external IP in status bar + + + + When adding a torrent Bij toevoegen torrent - + Bring torrent dialog to the front Torrent-dialoogvenster naar voor brengen - + + The torrent will be added to download list in a stopped state + De torrent zal in een gestopte status aan de downloadlijst toegevoegd worden + + + Also delete .torrent files whose addition was cancelled Ook .torrent-bestanden verwijderen waarvan de toevoeging geannuleerd werd. - + Also when addition is cancelled Ook wanneer toevoeging geannuleerd is - + Warning! Data loss possible! Waarschuwing! Gegevensverlies mogelijk! - + Saving Management Opslagbeheer - + Default Torrent Management Mode: Standaard torrent-beheermodus: - + Manual Handmatig - + Automatic Automatisch - + When Torrent Category changed: Wanneer torrentcategorie wijzigt: - + Relocate torrent Torrent verplaatsen - + Switch torrent to Manual Mode Torrent overschakelen naar handmatige modus - - + + Relocate affected torrents Beïnvloede torrents verplaatsen - - + + Switch affected torrents to Manual Mode Beïnvloede torrents overschakelen naar handmatige modus - + Use Subcategories Subcategorieën gebruiken - + Default Save Path: Standaard opslagpad: - + Copy .torrent files to: .torrent-bestanden kopiëren naar: - + Show &qBittorrent in notification area qBittorrent weergeven in systeemvak - - &Log file - Logbestand - - - + Display &torrent content and some options Torrentinhoud en enkele opties weergeven - + De&lete .torrent files afterwards .torrent-bestanden nadien verwijderen - + Copy .torrent files for finished downloads to: .torrent-bestanden voor voltooide downloads kopiëren naar: - + Pre-allocate disk space for all files Schijfruimte vooraf toewijzen voor alle bestanden - + Use custom UI Theme Aangepast UI-thema gebruiken - + UI Theme file: UI-themabestand: - + Changing Interface settings requires application restart Wijzigen van interface-instellingen vereist opnieuw starten van de toepassing - + Shows a confirmation dialog upon torrent deletion Geeft een bevestigingsvenster weer bij verwijderen van een torrent - - + + Preview file, otherwise open destination folder Voorbeeld van bestand weergeven, anders doelmap openen - - - Show torrent options - Torrent-opties weergeven - - - + Shows a confirmation dialog when exiting with active torrents Geeft een bevestigingsvenster weer bij het afsluiten wanneer er actieve torrents zijn - + When minimizing, the main window is closed and must be reopened from the systray icon Bij het minimaliseren wordt het hoofdventer gesloten en moet het opnieuw geopend worden via het systeemvakpictogram - + The systray icon will still be visible when closing the main window Het systeemvakpictogram zal nog steeds zichtbaar zijn bij het sluiten van het hoofdvenster - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrent naar systeemvak sluiten - + Monochrome (for dark theme) Monochroom (voor donker thema) - + Monochrome (for light theme) Monochroom (voor licht thema) - + Inhibit system sleep when torrents are downloading Slaapstand voorkomen wanneer torrents aan het downloaden zijn - + Inhibit system sleep when torrents are seeding Slaapstand voorkomen wanneer torrents aan het seeden zijn - + Creates an additional log file after the log file reaches the specified file size Maakt een extra logbestand aan nadat het logbestand de opgegeven bestandsgrootte bereikt heeft - + days Delete backup logs older than 10 days dagen - + months Delete backup logs older than 10 months maand - + years Delete backup logs older than 10 years jaar - + Log performance warnings Prestatiewaarschuwingen loggen - - The torrent will be added to download list in a paused state - De torrent zal in een gepauzeerde status aan de downloadlijst toegevoegd worden - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Download niet automatisch starten - + Whether the .torrent file should be deleted after adding it Of het .torrent-bestand moet worden verwijderd nadat het is toegevoegd - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Volledige bestandsgroottes toewijzen op schijf voordat het downloaden begint om fragmentatie tot een minimum te beperken. Alleen nuttig voor HDD's. - + Append .!qB extension to incomplete files .!qB-extensie toevoegen aan onvolledige bestanden - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Wanneer een torrent gedownload is, aanbieden om torrents toe te voegen van alle .torrent-bestanden die er zich in bevinden - + Enable recursive download dialog Venster voor recursieve download inschakelen - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatisch: verschillende torrent-eigenschappen (bijvoorbeeld opslagpad) worden bepaald door de bijbehorende categorie Handmatig: verschillende torrent-eigenschappen (bijvoorbeeld opslagpad) moeten handmatig worden toegewezen - + When Default Save/Incomplete Path changed: Wanneer standaard opslagpad of onvolledig pad wijzigt: - + When Category Save Path changed: Wanneer categorie-opslagpad wijzigt: - + Use Category paths in Manual Mode Categoriepaden gebruiken in handmatige modus - + Resolve relative Save Path against appropriate Category path instead of Default one Relatief opslagpad omzetten in het juiste categoriepad in plaats van het standaardpad - + Use icons from system theme Pictogrammen van systeemthema gebruiken - + Window state on start up: Vensterstatus bij opstarten: - + qBittorrent window state on start up Status van qBittorrent-venster bij opstarten - + Torrent stop condition: Stop-voorwaarde torrent: - - + + None Geen - - + + Metadata received Metadata ontvangen - - + + Files checked Bestanden gecontroleerd - + Ask for merging trackers when torrent is being added manually Vragen om trackers samen te voegen wanneer torrent handmatig toegevoegd wordt - + Use another path for incomplete torrents: Ander pad gebruiken voor onvolledige torrents: - + Automatically add torrents from: Torrents automatisch toevoegen vanuit: - + Excluded file names Uitgesloten bestandsnamen - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6952,811 @@ readme.txt: filtert de exacte bestandsnaam. readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt' maar niet 'readme10.txt'. - + Receiver Ontvanger - + To: To receiver Aan: - + SMTP server: SMTP-server: - + Sender Afzender - + From: From sender Van: - + This server requires a secure connection (SSL) Deze server vereist een veilige verbinding (SSL) - - + + Authentication Authenticatie - - - - + + + + Username: Gebruikersnaam: - - - - + + + + Password: Wachtwoord: - + Run external program Extern programma uitvoeren - - Run on torrent added - Uitvoeren wanneer torrent toegevoegd wordt - - - - Run on torrent finished - Uitvoeren wanneer torrent klaar is - - - + Show console window Consolevenster weergeven - + TCP and μTP TCP en µTP - + Listening Port Luisterpoort - + Port used for incoming connections: Poort voor binnenkomende verbindingen: - + Set to 0 to let your system pick an unused port Instellen op 0 om uw systeem een ongebruikte poort te laten kiezen - + Random Willekeurig - + Use UPnP / NAT-PMP port forwarding from my router UPnP/NAT-PMP port forwarding van mijn router gebruiken - + Connections Limits Begrenzing verbindingen - + Maximum number of connections per torrent: Maximaal aantal verbindingen per torrent: - + Global maximum number of connections: Algemeen maximaal aantal verbindingen: - + Maximum number of upload slots per torrent: Maximaal aantal uploadslots per torrent: - + Global maximum number of upload slots: Algemeen maximaal aantal uploadslots: - + Proxy Server Proxy-server - + Type: Type: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Poort: - + 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 - + A&uthentication Authenticatie - - Info: The password is saved unencrypted - Info: het wachtwoord wordt onversleuteld opgeslagen - - - + Filter path (.dat, .p2p, .p2b): Filterpad (.dat, p2p, p2b): - + Reload the filter Filter opnieuw laden - + Manually banned IP addresses... Handmatig verbannen IP-adressen... - + Apply to trackers Toepassen op trackers - + Global Rate Limits Algemene snelheidsbegrenzing - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Upload: - - + + Download: Download: - + Alternative Rate Limits Alternatieve snelheidsbegrenzing - + Start time Begintijd - + End time Eindtijd - + When: Wanneer: - + Every day Elke dag - + Weekdays Weekdagen - + Weekends Weekends - + Rate Limits Settings Instellingen snelheidsbegrenzing - + Apply rate limit to peers on LAN Snelheidsbegrenzing toepassen op peers op LAN - + Apply rate limit to transport overhead Snelheidsbegrenzing toepassen op transport-overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Peers uitwisselen met compatibele Bittorrent-clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Peer-uitwisseling (PeX) inschakelen om meer peers te vinden - + Look for peers on your local network Zoeken naar peers in uw lokaal netwerk - + Enable Local Peer Discovery to find more peers Lokale peer-ontdekking inschakelen om meer peers te vinden - + Encryption mode: Versleutelingsmodus: - + Require encryption Versleuteling vereisen - + Disable encryption Versleuteling uitschakelen - + Enable when using a proxy or a VPN connection Inschakelen bij gebruik van een proxy of vpn-verbinding - + Enable anonymous mode Anonieme modus inschakelen - + Maximum active downloads: Maximaal aantal actieve downloads: - + Maximum active uploads: Maximaal aantal actieve uploads: - + Maximum active torrents: Maximaal aantal actieve torrents: - + Do not count slow torrents in these limits Trage torrents niet meerekenen bij deze begrenzing - + Upload rate threshold: Uploadsnelheid-drempel: - + Download rate threshold: Downloadsnelheid-drempel: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Inactiviteitstimer van torrent: - + then en daarna - + Use UPnP / NAT-PMP to forward the port from my router UPnP/NAT-PMP gebruiken om de poort van mijn router te forwarden - + Certificate: Certificaat: - + Key: Sleutel: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informatie over certificaten</a> - + Change current password Huidig wachtwoord wijzigen - - Use alternative Web UI - Alternatieve web-UI gebruiken - - - + Files location: Locatie van bestanden: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Beveiliging - + Enable clickjacking protection Clickjacking-bescherming inschakelen - + Enable Cross-Site Request Forgery (CSRF) protection Bescherming tegen Cross-Site Request Forgery (CSRF) inschakelen - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Validatie van host-header inschakelen - + Add custom HTTP headers Aangepaste HTTP-headers toevoegen - + Header: value pairs, one per line Header: waardeparen, één per regel - + Enable reverse proxy support Ondersteuning voor reverse proxy inschakelen - + Trusted proxies list: Lijst van vertrouwde proxy's: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Dienst: - + Register Registreren - + Domain name: Domeinnaam: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Door deze opties in te schakelen, kunt u uw .torrent-bestanden <strong>onomkeerbaar kwijtraken</strong>! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Als u de tweede optie inschakelt (&ldquo;Ook als toevoegen geannuleerd wordt&rdquo;), zal het .torrent-bestand <strong>verwijderd worden</strong>, zelfs als u op &ldquo;<strong>annuleren</strong>&rdquo; drukt in het &ldquo;torrent toevoegen&rdquo;-scherm - + Select qBittorrent UI Theme file qBittorrent-UI-themabestand selecteren - + Choose Alternative UI files location Locatie van bestanden van alternatieve UI kiezen - + Supported parameters (case sensitive): Ondersteunde parameters (hoofdlettergevoelig): - + Minimized Geminimaliseerd - + Hidden Verborgen - + Disabled due to failed to detect system tray presence Uitgeschakeld omdat de aanwezigheid van het systeemvak niet is gedetecteerd - + No stop condition is set. Er is geen stop-voorwaarde ingesteld. - + Torrent will stop after metadata is received. Torrent zal stoppen nadat metadata is ontvangen. - Torrents that have metadata initially aren't affected. - Torrents die in eerste instantie metadata hebben worden niet beïnvloed. - - - + Torrent will stop after files are initially checked. Torrent zal stoppen nadat de bestanden in eerste instantie zijn gecontroleerd. - + This will also download metadata if it wasn't there initially. Dit zal ook metadata downloaden als die er aanvankelijk niet was. - + %N: Torrent name %N: naam torrent - + %L: Category %L: categorie - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: omring de parameter met aanhalingstekens om te vermijden dat tekst afgekapt wordt bij witruimte (bijvoorbeeld: "%N") - + + Test email + Test e-mail + + + + Attempted to send email. Check your inbox to confirm success + Geprobeerd e-mail te verzenden. Controleer uw inbox voor bevestiging + + + (None) (Geen) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Een torrent zal als traag beschouwd worden als zijn download- en uploadsnelheden onder deze waarden blijven voor het aantal seconden in "inactiviteitstimer van torrent". - + Certificate Certificaat - + Select certificate Certificaat selecteren - + Private key Privésleutel - + Select private key Privésleutel selecteren - + WebUI configuration failed. Reason: %1 WebUI-configuratie mislukt. Reden: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 wordt aanbevolen voor beste compatibiliteit met de donkere modus van Windows + + + + System + System default Qt style + Systeem + + + + Let Qt decide the style for this system + Laat Qt de stijl voor dit systeem bepalen + + + + Dark + Dark color scheme + Donker + + + + Light + Light color scheme + Licht + + + + System + System color scheme + Systeem + + + Select folder to monitor Map selecteren om te monitoren - + Adding entry failed Item toevoegen mislukt - + The WebUI username must be at least 3 characters long. De WebUI-gebruikersnaam moet minstens 3 tekens lang zijn. - + The WebUI password must be at least 6 characters long. Het WebUI-wachtwoord moet minstens 6 tekens lang zijn. - + Location Error Locatiefout - - + + Choose export directory Export-map kiezen - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Wanneer deze opties ingeschakeld zijn, zal qBittorrent .torrent-bestanden <strong>verwijderen</strong> nadat ze met succes (de eerste optie) of niet (de tweede optie) toegevoegd zijn aan de downloadwachtrij. Dit wordt <strong>niet alleen</strong> toegepast op de bestanden die via de &ldquo;torrent toevoegen&rdquo;-menu-optie geopend worden, maar ook op de bestanden die via de <strong>bestandskoppeling</strong> geopend worden - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent-UI-themabestand (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: labels (gescheiden door komma) - + %I: Info hash v1 (or '-' if unavailable) %I: Info-hash v1 (of '-' indien niet beschikbaar) - + %J: Info hash v2 (or '-' if unavailable) %J: Info-hash v2 (of '-' indien niet beschikbaar) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (ofwel sha-1 info-hash voor v1-torrent of afgekapte sha-256 info-hash voor v2/hybride-torrent) - - - + + + Choose a save directory Opslagmap kiezen - + Torrents that have metadata initially will be added as stopped. - + Torrents die in eerste instantie metadata hebben, worden toegevoegd als gestopt. - + Choose an IP filter file IP-filterbestand kiezen - + All supported filters Alle ondersteunde filters - + The alternative WebUI files location cannot be blank. De alternatieve locatie van WebUI-bestanden mag niet leeg zijn. - + 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. - + Preferences Voorkeuren - + Time Error Tijd-fout - + The start time and the end time can't be the same. De starttijd en de eindtijd kan niet hetzelfde zijn. - - + + Length Error Lengte-fout @@ -7335,241 +7764,246 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt' maar n PeerInfo - + Unknown Onbekend - + Interested (local) and choked (peer) Geïnteresseerd (lokaal) en choked (peer) - + Interested (local) and unchoked (peer) Geïnteresseerd (lokaal) en unchoked (peer) - + Interested (peer) and choked (local) Geïnteresseerd (peer) en choked (lokaal) - + Interested (peer) and unchoked (local) Geïnteresseerd (peer) en unchoked (lokaal) - + Not interested (local) and unchoked (peer) Niet geïnteresseerd (lokaal) en unchoked (peer) - + Not interested (peer) and unchoked (local) Niet geïnteresseerd (peer) en unchoked (lokaal) - + Optimistic unchoke Optimistische unchoke - + Peer snubbed Peer gestopt met uploaden - + Incoming connection Binnenkomende verbinding - + Peer from DHT Peer van DHT - + Peer from PEX Peer via PEX - + Peer from LSD Peer van LSD - + Encrypted traffic Versleuteld verkeer - + Encrypted handshake Versleutelde handdruk + + + Peer is using NAT hole punching + Peer gebruikt NAT hole punching + PeerListWidget - + Country/Region Land/regio - + IP/Address IP/adres - + Port Poort - + Flags Vlaggen - + Connection Verbinding - + Client i.e.: Client application Cliënt - + Peer ID Client i.e.: Client resolved from Peer ID Peer-ID client - + 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 - + Files i.e. files that are being downloaded right now Bestanden - + Column visibility Kolom-zichtbaarheid - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud - + Add peers... Peers toevoegen... - - + + Adding peers Peers toevoegen - + Some peers cannot be added. Check the Log for details. Een aantal peers kunnen niet toegevoegd worden. Controleer het logbestand voor details. - + Peers are added to this torrent. Peers zijn toegevoegd aan deze torrent. - - + + Ban peer permanently Peer permanent verbannen - + Cannot add peers to a private torrent Kan geen peers toevoegen aan een privétorrent - + Cannot add peers when the torrent is checking Kan geen peers toevoegen wanneer de torrent wordt gecontroleerd - + Cannot add peers when the torrent is queued Kan geen peers toevoegen wanneer de torrent in de wachtrij staat - + No peer was selected Er werd geen peer geselecteerd - + Are you sure you want to permanently ban the selected peers? Weet u zeker dat u de geselecteerde peers permanent wilt verbannen? - + Peer "%1" is manually banned Peer "%1" is manueel verbannen - + N/A N/B - + Copy IP:port IP:poort kopiëren @@ -7587,7 +8021,7 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt' maar n Lijst van toe te voegen peers (een IP per regel): - + Format: IPv4:port / [IPv6]:port Formaat: IPv4:poort / [IPv6]:poort @@ -7628,27 +8062,27 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt' maar n PiecesBar - + Files in this piece: Bestanden in dit deeltje: - + File in this piece: Bestand in dit deeltje: - + File in these pieces: Bestand in deze deeltjes: - + Wait until metadata become available to see detailed information Wacht totdat metadata beschikbaar wordt om gedetailleerde informatie te zien - + Hold Shift key for detailed information Shif-toets ingedrukt houden voor gedetailleerde informatie @@ -7661,58 +8095,58 @@ readme[0-9].txt: filtert 'readme1.txt', 'readme2.txt' maar n Zoekplugins - + Installed search plugins: Geïnstalleerde zoekplugins: - + Name Naam - + Version Versie - + Url URL - - + + Enabled Ingeschakeld - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Waarschuwing: verzeker u ervan dat u voldoet aan de wetten op auteursrecht in uw land wanneer u torrents downloadt via een van deze zoekmachines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> U kunt hier nieuwe zoekmachineplugins vinden: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Een nieuwe installeren - + Check for updates Op updates controleren - + Close Sluiten - + Uninstall Verwijderen @@ -7832,98 +8266,65 @@ Deze plugins zijn uitgeschakeld. Plugin-bron - + Search plugin source: Zoekplugin-bron: - + Local file Lokaal bestand - + Web link Webkoppeling - - PowerManagement - - - qBittorrent is active - qBittorrent is actief - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Energiebeheer heeft geschikte D-Bus interface gevonden. Interface: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Fout in energiebeheer. Geen geschikte D-Bus interface gevonden. - - - - - - Power management error. Action: %1. Error: %2 - Fout in energiebeheer. Actie: %1. Fout: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Onverwachte fout in energiebeheer. Status: %1. Error: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: De volgende bestanden uit torrent "%1" ondersteunen het weergeven van een voorbeeld. Selecteer er een van: - + Preview Voorbeeld - + Name Naam - + Size Grootte - + Progress Voortgang - + Preview impossible Voorbeeld onmogelijk - + Sorry, we can't preview this file: "%1". Sorry, we kunnen geen voorbeeld weergeven van dit bestand: "%1". - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud @@ -7936,27 +8337,27 @@ Deze plugins zijn uitgeschakeld. Private::FileLineEdit - + Path does not exist Pad bestaat niet - + Path does not point to a directory Pad wijst niet naar een map - + Path does not point to a file Pad wijst niet naar een bestand - + Don't have read permission to path Geen leesrechten voor pad - + Don't have write permission to path Geen schrijfrechten voor pad @@ -7997,12 +8398,12 @@ Deze plugins zijn uitgeschakeld. PropertiesWidget - + Downloaded: Gedownload: - + Availability: Beschikbaarheid: @@ -8017,53 +8418,53 @@ Deze plugins zijn uitgeschakeld. Overdracht - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tijd actief: - + ETA: Geschatte resterende tijd: - + Uploaded: Geüpload: - + Seeds: Seeds: - + Download Speed: Downloadsnelheid: - + Upload Speed: Uploadsnelheid: - + Peers: Peers: - + Download Limit: Downloadbegrenzing: - + Upload Limit: Uploadbegrenzing: - + Wasted: Verloren: @@ -8073,193 +8474,220 @@ Deze plugins zijn uitgeschakeld. Verbindingen: - + Information Informatie - + Info Hash v1: Info-hash v1: - + Info Hash v2: Info-hash v2: - + Comment: Opmerkingen: - + Select All Alles selecteren - + Select None Niets selecteren - + Share Ratio: Deelverhouding: - + Reannounce In: Opnieuw aankondigen over: - + Last Seen Complete: Laatst volledig gezien: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Verhouding / tijd actief (in maanden), geeft aan hoe populair de torrent is + + + + Popularity: + Populariteit: + + + Total Size: Totale grootte: - + Pieces: Deeltjes: - + Created By: Aangemaakt door: - + Added On: Toegevoegd op: - + Completed On: Voltooid op: - + Created On: Aangemaakt op: - + + Private: + Privé: + + + Save Path: Opslagpad: - + 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) - - + + + N/A N/B - + + Yes + Ja + + + + No + Nee + + + %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.) - - New Web seed - Nieuwe webseed + + Add web seed + Add HTTP source + - - Remove Web seed - Webseed verwijderen + + Add web seed: + - - Copy Web seed URL - Webseed-URL kopiëren + + + This web seed is already in the list. + - - Edit Web seed URL - Webseed-URL bewerken - - - + Filter files... Bestanden filteren... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Snelheidsgrafieken zijn uitgeschakeld - + You can enable it in Advanced Options U kunt het inschakelen in de geavanceerde opties - - 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: @@ -8267,33 +8695,33 @@ Deze plugins zijn uitgeschakeld. RSS::AutoDownloader - - + + Invalid data format. Ongeldig gegevensformaat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Kon gegevens van automatische RSS-downloader niet opslaan in %1. Fout: %2 - + Invalid data format Ongeldig gegevensformaat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-artikel '%1' wordt geaccepteerd door regel '%2'. Proberen om torrent toe te voegen... - + Failed to read RSS AutoDownloader rules. %1 Lezen van regels van automatische RSS-downloader mislukt. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Kon regels van automatische RSS-downloader niet laden. Reden: %1 @@ -8301,22 +8729,22 @@ Deze plugins zijn uitgeschakeld. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Downloaden van RSS-feed op '%1' mislukt. Reden: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-feed op '%1' bijgewerkt. %2 nieuwe artikels toegevoegd. - + Failed to parse RSS feed at '%1'. Reason: %2 Verwerken van RSS-feed op '%1' mislukt. Reden: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-feed op '%1' is met succes gedownload. Beginnen met verwerken van de feed. @@ -8352,12 +8780,12 @@ Deze plugins zijn uitgeschakeld. RSS::Private::Parser - + Invalid RSS feed. Ongeldige RSS-feed. - + %1 (line: %2, column: %3, offset: %4). %1 (regel: %2, kolom: %3, offset: %4). @@ -8365,103 +8793,144 @@ Deze plugins zijn uitgeschakeld. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Kon de configuratie van de RSS-sessie niet opslaan. Bestand: "%1". Fout: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Kon de gegevens van de RSS-sessie niet opslaan. Bestand: "%1". Fout: "%2" - - + + RSS feed with given URL already exists: %1. RSS-feed met opgegeven URL bestaat reeds: %1. - + Feed doesn't exist: %1. Feed bestaat niet: %1. - + Cannot move root folder. Kan hoofdmap niet verplaatsen. - - + + Item doesn't exist: %1. Item bestaat niet: %1. - - Couldn't move folder into itself. - Kon map niet in zichzelf verplaatsen + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Kan hoofdmap niet verwijderen. - + Failed to read RSS session data. %1 Lezen van RSS-sessiegegevens mislukt. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Verwerken van RSS-sessiegegevens mislukt. Bestand: "%1". Fout: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Laden van RSS-sessiegegevens mislukt. Bestand: "%1". Fout: "ongeldig gegevensformaat". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Kon RSS-feed niet laden. Feed: "%1". Reden: URL is vereist. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Kon RSS-feed niet laden. Feed: "%1". Reden: UID is ongeldig. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Dubbele RSS-feed gevonden. UID: "%1". Fout: de configuratie lijkt beschadigd te zijn. - + Couldn't load RSS item. Item: "%1". Invalid data format. Kon RSS-item niet laden. Item: "%1". Ongeldig gegevensformaat. - + Corrupted RSS list, not loading it. Beschadigde RSS-lijst. Wordt niet geladen. - + Incorrect RSS Item path: %1. Onjuist RSS-item-pad: %1. - + RSS item with given path already exists: %1. RSS-item met opgegeven pad bestaat reeds: %1. - + Parent folder doesn't exist: %1. Bovenliggende map bestaat niet: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Feed bestaat niet: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Vernieuwinterval: + + + + sec + sec + + + + Default + Standaard + + RSSWidget @@ -8481,8 +8950,8 @@ Deze plugins zijn uitgeschakeld. - - + + Mark items read Items als gelezen markeren @@ -8507,132 +8976,115 @@ Deze plugins zijn uitgeschakeld. Torrents (dubbelklikken om te downloaden): - - + + Delete Verwijderen - + Rename... Naam wijzigen... - + Rename Naam wijzigen - - + + Update Bijwerken - + New subscription... Nieuw abonnement... - - + + Update all feeds Alle feeds bijwerken - + Download torrent Torrent downloaden - + Open news URL Nieuws-URL openen - + Copy feed URL Feed-URL kopiëren - + New folder... Nieuwe map... - - Edit feed URL... - Feed-URL bewerken... + + Feed options... + - - Edit feed URL - Feed-URL bewerken - - - + Please choose a folder name Mapnaam kiezen - + Folder name: Mapnaam: - + New folder Nieuwe map - - - Please type a RSS feed URL - Typ een RSS-feed-URL - - - - - Feed URL: - Feed-URL: - - - + Deletion confirmation Bevestiging verwijdering - + 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 Kies een nieuwe naam voor deze RSS-feed - + New feed name: Nieuwe feed-naam: - + Rename failed Naam wijzigen mislukt - + Date: Datum: - + Feed: Feed: - + Author: Auteur: @@ -8640,38 +9092,38 @@ Deze plugins zijn uitgeschakeld. SearchController - + Python must be installed to use the Search Engine. Python moet geïnstalleerd worden om de zoekmachine te gebruiken. - + Unable to create more than %1 concurrent searches. Kan niet meer dan %1 gelijktijdige zoekopdrachten aanmaken. - - + + Offset is out of range Offset is buiten bereik - + All plugins are already up to date. Alle plugins zijn al bijgewerkt. - + Updating %1 plugins %1 plugins bijwerken - + Updating plugin %1 Plugin %1 bijwerken - + Failed to check for plugin updates: %1 Controleren op plugin-updates mislukt: %1 @@ -8746,132 +9198,142 @@ Deze plugins zijn uitgeschakeld. Grootte: - + 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 - - - + Filter search results... Zoekresultaten filteren... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultaten (<i>%1</i> van <i>%2</i>): - + Torrent names only Alleen torrentnamen - + Everywhere Overal - + Use regular expressions Reguliere expressies gebruiken - + Open download window Downloadvenster openen - + Download Downloaden - + Open description page Beschrijvingspagina openen - + Copy Kopiëren - + Name Naam - + Download link Downloadkoppeling - + Description page URL URL van beschrijvingspagina - + Searching... Zoeken... - + Search has finished Zoeken is voltooid - + Search aborted Zoeken afgebroken - + An error occurred during search... Er trad een fout op tijdens het zoeken... - + Search returned no results Zoeken gaf geen resultaten - + + Engine + Engine + + + + Engine URL + Engine-URL + + + + Published On + Verschenen op + + + Column visibility Kolom-zichtbaarheid - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud @@ -8879,104 +9341,104 @@ Deze plugins zijn uitgeschakeld. SearchPluginManager - + Unknown search engine plugin file format. Onbekend bestandsformaat van zoekmachineplugin. - + Plugin already at version %1, which is greater than %2 Plugin is al op versie %1, die hoger is dan %2 - + A more recent version of this plugin is already installed. Er is al een nieuwere versie van deze plugin geïnstalleerd. - + Plugin %1 is not supported. Plugin %1 wordt niet ondersteund. - - + + Plugin is not supported. Plugin wordt niet ondersteund. - + Plugin %1 has been successfully updated. Plugin %1 werd met succes bijgewerkt. - + All categories Alle categorieën - + Movies Films - + TV shows Tv-shows - + Music Muziek - + Games Spellen - + Anime Anime - + Software Software - + Pictures Afbeeldingen - + Books Boeken - + Update server is temporarily unavailable. %1 Updateserver is tijdelijk niet bereikbaar. %1 - - + + Failed to download the plugin file. %1 Downloaden van pluginbestand mislukt. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" is verouderd. bijwerken naar versie %2 - + Incorrect update info received for %1 out of %2 plugins. Onjuiste update-info ontvangen voor %1 van %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') Zoekplugin '%1' bevat ongeldige versie-string ('%2') @@ -8986,114 +9448,145 @@ Deze plugins zijn uitgeschakeld. - - - - Search Zoeken - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Er zijn geen zoekplugins geïnstalleerd. Klik op de knop "zoekplugins..." rechtsonder in het venster om er een aantal te installeren. - + Search plugins... Zoekplugins... - + A phrase to search for. Een zin om naar te zoeken. - + Spaces in a search term may be protected by double quotes. Spaties in een zoekterm kunnen beschermd worden door dubbele aanhalingstekens. - + Example: Search phrase example Voorbeeld: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: zoekt naar <b>foo bar</b> - + All plugins Alle plugins - + Only enabled Alleen ingeschakeld - + + + Invalid data format. + Ongeldig gegevensformaat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: zoekt naar <b>foo</b> en <b>bar</b> - + + Refresh + + + + Close tab Tabblad sluiten - + Close all tabs Alle tabbladen sluiten - + Select... Selecteren... - - - + + 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 - + + Stop Stoppen + + + SearchWidget::DataStorage - - Search has finished - Zoeken is voltooid + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Zoeken mislukt + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9206,34 +9699,34 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een - + Upload: Upload: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Download: - + Alternative speed limits Alternatieve snelheidsbegrenzing @@ -9425,32 +9918,32 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een Gemiddelde tijd in wachtrij: - + Connected peers: Verbonden peers: - + All-time share ratio: Deelverhouding van altijd: - + All-time download: Download van altijd: - + Session waste: Sessie-verlies: - + All-time upload: Upload van altijd: - + Total buffer size: Totale buffergrootte: @@ -9465,12 +9958,12 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een I/O-taken in wachtrij: - + Write cache overload: Schrijfbuffer-overbelasting: - + Read cache overload: Leesbuffer-overbelasting: @@ -9489,51 +9982,77 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een StatusBar - + Connection status: Verbindingsstatus: - - + + No direct connections. This may indicate network configuration problems. Geen directe verbindingen. Dit kan komen door netwerkconfiguratieproblemen. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nodes - + qBittorrent needs to be restarted! qBittorrent moet opnieuw gestart worden! - - - + + + Connection Status: Verbindingsstatus: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. Dit betekent meestal dat qBittorrent mislukte om te luisteren naar de geselecteerde poort voor binnenkomende verbindingen. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Klikken om over te schakelen naar alternatieve snelheidbegrenzing - + Click to switch to regular speed limits Klikken om over te schakelen naar algemene snelheidbegrenzing @@ -9563,13 +10082,13 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een - Resumed (0) - Hervat (0) + Running (0) + Actief (0) - Paused (0) - Gepauzeerd (0) + Stopped (0) + Gestopt (0) @@ -9631,36 +10150,36 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een Completed (%1) Voltooid (%1) + + + Running (%1) + Actief (%1) + - Paused (%1) - Gepauzeerd (%1) + Stopped (%1) + Gestopt (%1) + + + + Start torrents + Torrents starten + + + + Stop torrents + Torrents stoppen Moving (%1) Verplaatsen (%1) - - - Resume torrents - Torrents hervatten - - - - Pause torrents - Torrents pauzeren - Remove torrents Torrents verwijderen - - - Resumed (%1) - Hervat (%1) - Active (%1) @@ -9732,31 +10251,31 @@ Klik op de knop "zoekplugins..." rechtsonder in het venster om er een Remove unused tags Niet-gebruikte labels verwijderen - - - Resume torrents - Torrents hervatten - - - - Pause torrents - Torrents pauzeren - Remove torrents Torrents verwijderen - - New Tag - Nieuw label + + Start torrents + Torrents starten + + + + Stop torrents + Torrents stoppen Tag: Label: + + + Add tag + + Invalid tag name @@ -9903,32 +10422,32 @@ Kies een andere naam en probeer het opnieuw. TorrentContentModel - + Name Naam - + Progress Voortgang - + Download Priority Downloadprioriteit - + Remaining Resterend - + Availability Beschikbaarheid - + Total Size Totale grootte @@ -9973,98 +10492,98 @@ Kies een andere naam en probeer het opnieuw. TorrentContentWidget - + Rename error Fout bij naam wijzigen - + Renaming Naam wijzigen - + New name: Nieuwe naam: - + Column visibility Kolom-zichtbaarheid - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud - + Open Openen - + Open containing folder Bijbehorende map openen - + Rename... Naam wijzigen... - + Priority Prioriteit - - + + Do not download Niet downloaden - + Normal Normaal - + High Hoog - + Maximum Maximum - + By shown file order Op weergegeven bestandsvolgorde - + Normal priority Normale prioriteit - + High priority Hoge prioriteit - + Maximum priority Maximale prioriteit - + Priority by shown file order Prioriteit volgens weergegeven bestandsvolgorde @@ -10072,19 +10591,19 @@ Kies een andere naam en probeer het opnieuw. TorrentCreatorController - + Too many active tasks - + Te veel actieve taken - + Torrent creation is still unfinished. - + Torrent aanmaken is nog niet voltooid. - + Torrent creation failed. - + Torrent aanmaken mislukt. @@ -10111,13 +10630,13 @@ Kies een andere naam en probeer het opnieuw. - + Select file Bestand selecteren - + Select folder Map selecteren @@ -10192,87 +10711,83 @@ Kies een andere naam en probeer het opnieuw. Velden - + You can separate tracker tiers / groups with an empty line. U kunt tracker tiers/groepen scheiden met een lege regel. - + Web seed URLs: Webseed-URL's: - + Tracker URLs: Tracker-URL's: - + Comments: Opmerkingen: - + Source: Bron: - + Progress: Voortgang: - + Create Torrent Torrent aanmaken - - + + Torrent creation failed Torrent aanmaken mislukt - + Reason: Path to file/folder is not readable. Reden: pad naar bestand/map is niet leesbaar. - + Select where to save the new torrent Selecteer waar de nieuwe torrent moet opgeslagen worden - + Torrent Files (*.torrent) Torrentbestanden (*.torrent) - Reason: %1 - Reden: %1 - - - + Add torrent to transfer list failed. Torrent toevoegen aan overdrachtlijst mislukt. - + Reason: "%1" Reden: "%1" - + Add torrent failed Toevoegen van torrent mislukt - + Torrent creator Torrent aanmaken - + Torrent created: Torrent aangemaakt: @@ -10280,32 +10795,32 @@ Kies een andere naam en probeer het opnieuw. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Laden van configuratie van gevolgde mappen mislukt. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Verwerken van configuratie van gevolgde mappen van %1 mislukt. Fout: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Laden van configuratie van gevolgde mappen van %1 mislukt. Fout: "ongeldig gegevensformaat". - + Couldn't store Watched Folders configuration to %1. Error: %2 Kon configuratie van gevolgde mappen niet opslaan in %1. Fout: %2 - + Watched folder Path cannot be empty. Het pad van de gevolgde map mag niet leeg zijn. - + Watched folder Path cannot be relative. Het pad van de gevolgde map mag niet relatief zijn. @@ -10313,44 +10828,31 @@ Kies een andere naam en probeer het opnieuw. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Ongeldige magneet-URI. URI: %1. Reden: %2 - + Magnet file too big. File: %1 Magneetbestand te groot. Bestand: %1 - + Failed to open magnet file: %1 Openen van magneetbestand mislukt: %1 - + Rejecting failed torrent file: %1 Mislukt torrentbestand verwerpen: %11 - + Watching folder: "%1" Map volgen: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Toewijzen van geheugen bij lezen van bestand mislukt. Bestand: "%1". Fout: "%2" - - - - Invalid metadata - Ongeldige metadata - - TorrentOptionsDialog @@ -10379,175 +10881,163 @@ Kies een andere naam en probeer het opnieuw. Ander pad gebruiken voor onvolledige torrent - + Category: Categorie: - - Torrent speed limits - Torrent-snelheidsbegrenzing + + Torrent Share Limits + - + Download: Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Deze zullen de algemene begrenzing niet overschrijden. - + Upload: Upload: - - Torrent share limits - Torrent-deelbegrenzing - - - - Use global share limit - Algemene deelbegrenzing gebruiken - - - - Set no share limit - Geen deelbegrenzing instellen - - - - Set share limit to - Deelbegrenzing instellen op - - - - ratio - ratio - - - - total minutes - totaal aantal minuten - - - - inactive minutes - aantal minuten niet actief - - - + Disable DHT for this torrent DHT voor deze torrent uitschakelen - + Download in sequential order In sequentiële volgorde downloaden - + Disable PeX for this torrent PeX voor deze torrent uitschakelen - + Download first and last pieces first Eerste en laatste deeltjes eerst downloaden - + Disable LSD for this torrent LSD voor deze torrent uitschakelen - + Currently used categories Momenteel gebruikte categorieën - - + + Choose save path Opslagpad kiezen - + Not applicable to private torrents Niet van toepassing op privétorrents - - - No share limit method selected - Geen deelbegrenzingsmethode geselecteerd - - - - Please select a limit method first - Selecteer eerst een begrenzingsmethode - TorrentShareLimitsWidget - - - + + + + Default - Standaard + Standaard + + + + + + Unlimited + Onbegrensd - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Instellen op + + + + Seeding time: + Seed-tijd: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Niet-actieve seed-tijd: - + + Action when the limit is reached: + Actie wanneer de limiet bereikt is: + + + + Stop torrent + Torrent stoppen + + + + Remove torrent + Torrent verwijderen + + + + Remove torrent and its content + Torrent en zijn inhoud verwijderen + + + + Enable super seeding for torrent + Superseeden inschakelen voor torrent + + + Ratio: - + Verhouding: @@ -10558,32 +11048,32 @@ Kies een andere naam en probeer het opnieuw. Torrent-labels - - New Tag - Nieuw label + + Add tag + - + Tag: Label: - + Invalid tag name Ongeldige labelnaam - + Tag name '%1' is invalid. Labelnaam '%1' is ongeldig. - + Tag exists Label bestaat - + Tag name already exists. Labelnaam bestaat al. @@ -10591,115 +11081,130 @@ Kies een andere naam en probeer het opnieuw. TorrentsController - + Error: '%1' is not a valid torrent file. Fout: '%1' is geen geldig torrentbestand. - + Priority must be an integer Prioriteit moet een geheel getal zijn - + Priority is not valid Prioriteit is niet geldig - + Torrent's metadata has not yet downloaded Metadata van torrent is nog niet gedownload - + File IDs must be integers Bestand-ID's moeten gehele getallen zijn - + File ID is not valid Bestand-ID is niet geldig - - - - + + + + Torrent queueing must be enabled Torrents in wachtrij plaatsen moet ingeschakeld zijn - - + + Save path cannot be empty Opslagpad mag niet leeg zijn - - + + Cannot create target directory Kan doelmap niet aanmaken - - + + Category cannot be empty Categorie mag niet leeg zijn - + Unable to create category Kan categorie niet aanmaken - + Unable to edit category Kan categorie niet bewerken - + Unable to export torrent file. Error: %1 Kan torrentbestand niet exporteren. Fout: %1 - + Cannot make save path Kan opslagpad niet aanmaken - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid De 'sort'-parameter is ongeldig - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" is geen geldige bestandsindex. - + Index %1 is out of bounds. Index %1 is buiten de grenzen. - - + + Cannot write to directory Kan niet schrijven naar map - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI locatie instellen: "%1" verplaatsen van "%2" naar "%3" - + Incorrect torrent name Incorrecte torrentnaam - - + + Incorrect category name Incorrecte categorienaam @@ -10730,196 +11235,191 @@ Kies een andere naam en probeer het opnieuw. TrackerListModel - + Working Werkend - + Disabled Uitgeschakeld - + Disabled for this torrent Uitgeschakeld voor deze torrent - + This torrent is private Deze torrent is privé - + N/A N/B - + Updating... Bijwerken... - + Not working Niet werkend - + Tracker error Tracker-fout - + Unreachable Niet bereikbaar - + Not contacted yet Nog niet gecontacteerd - - Invalid status! + + Invalid state! Ongeldige status! - - URL/Announce endpoint + + URL/Announce Endpoint URL/aankondiging-endpoint - + + BT Protocol + BT-protocol + + + + Next Announce + Volgende aankondiging + + + + Min Announce + Min aankondiging + + + Tier Niveau - - Protocol - Protocol - - - + Status Status - + Peers Peers - + Seeds Seeds - + Leeches Leeches - + Times Downloaded Aantal keer gedownload - + Message Bericht - - - Next announce - Volgende aankondiging - - - - Min announce - Min aankondiging - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Deze torrent is privé - + Tracker editing Tracker bewerken - + Tracker URL: Tracker-URL: - - + + Tracker editing failed Tracker bewerken mislukt - + The tracker URL entered is invalid. De ingevoerde tracker-URL is ongeldig - + The tracker URL already exists. De tracker-URL bestaat al - + Edit tracker URL... Tracker-URL bewerken... - + Remove tracker Tracker verwijderen - + Copy tracker URL Tracker-URL kopiëren - + Force reannounce to selected trackers Opnieuw aankondigen bij geselecteerde trackers forceren - + Force reannounce to all trackers Opnieuw aankondigen bij alle trackers forceren - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud - + Add trackers... Trackers toevoegen... - + Column visibility Kolom-zichtbaarheid @@ -10937,37 +11437,37 @@ Kies een andere naam en probeer het opnieuw. Lijst van toe te voegen trackers (een per regel): - + µTorrent compatible list URL: URL van µTorrent-compatibele lijst: - + Download trackers list Lijst met trackers downloaden - + Add Toevoegen - + Trackers list URL error URL-fout van lijst met trackers - + The trackers list URL cannot be empty URL van lijst met trackers mag niet leeg zijn - + Download trackers list error Fout bij downloaden van lijst met trackers - + Error occurred when downloading the trackers list. Reason: "%1" Fout opgetreden bij het downloaden van de lijst met trackers. Reden: "%1" @@ -10975,62 +11475,62 @@ Kies een andere naam en probeer het opnieuw. TrackersFilterWidget - + Warning (%1) Waarschuwing (%1) - + Trackerless (%1) Zonder trackers (%1) - + Tracker error (%1) Tracker-fout (%1) - + Other error (%1) Andere fout (%1) - + Remove tracker Tracker verwijderen - - Resume torrents - Torrents hervatten + + Start torrents + Torrents starten - - Pause torrents - Torrents pauzeren + + Stop torrents + Torrents stoppen - + Remove torrents Torrents verwijderen - + Removal confirmation Bevestiging verwijdering - + Are you sure you want to remove tracker "%1" from all torrents? Weet u zeker dat u tracker "%1" uit alle torrents wilt verwijderen? - + Don't ask me again. Niet meer vragen. - + All (%1) this is for the tracker filter Alle (%1) @@ -11039,7 +11539,7 @@ Kies een andere naam en probeer het opnieuw. TransferController - + 'mode': invalid argument 'modus': ongeldig argument @@ -11131,11 +11631,6 @@ Kies een andere naam en probeer het opnieuw. 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. Hervattingsgegevens controleren - - - Paused - Gepauzeerd - Completed @@ -11159,220 +11654,252 @@ Kies een andere naam en probeer het opnieuw. Met fouten - + Name i.e: torrent name Naam - + Size i.e: torrent size Grootte - + Progress % Done Voortgang - + + Stopped + Gestopt + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Seeds - + Peers i.e. partial sources (often untranslated) Peers - + Down Speed i.e: Download speed Downloadsnelheid - + Up Speed i.e: Upload speed Uploadsnelheid - + Ratio Share ratio Verhouding - + + Popularity + Populariteit + + + ETA i.e: Estimated Time of Arrival / Time left Geschatte resterende tijd - + Category Categorie - + Tags Labels - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Toegevoegd op - + Completed On Torrent was completed on 01/01/2010 08:00 Voltooid op - + Tracker Tracker - + Down Limit i.e: Download limit Downloadbegrenzing - + Up Limit i.e: Upload limit Uploadbegrenzing - + Downloaded Amount of data downloaded (e.g. in MB) Gedownload - + Uploaded Amount of data uploaded (e.g. in MB) Geüpload - + Session Download Amount of data downloaded since program open (e.g. in MB) Sessie-download - + Session Upload Amount of data uploaded since program open (e.g. in MB) Sessie-upload - + Remaining Amount of data left to download (e.g. in MB) Resterend - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tijd actief - + + Yes + Ja + + + + No + Nee + + + Save Path Torrent save path Opslagpad - + Incomplete Save Path Torrent incomplete save path Onvolledig opslagpad - + Completed Amount of data completed (e.g. in MB) Voltooid - + Ratio Limit Upload share ratio limit Begrenzing deelverhouding - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Laatst volledig gezien - + Last Activity Time passed since a chunk was downloaded/uploaded Laatste activiteit - + Total Size i.e. Size including unwanted data Totale grootte - + Availability The number of distributed copies of the torrent Beschikbaarheid - + Info Hash v1 i.e: torrent info hash v1 Info-hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info-hash v2 - + Reannounce In Indicates the time until next trackers reannounce Opnieuw aankondigen over - - + + Private + Flags private torrents + Privé + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Verhouding / tijd actief (in maanden), geeft aan hoe populair de torrent is + + + + + N/A N/B - + %1 ago e.g.: 1h 20m ago %1 geleden - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (geseed voor %2) @@ -11381,339 +11908,319 @@ Kies een andere naam en probeer het opnieuw. TransferListWidget - + Column visibility Kolom-zichtbaarheid - + Recheck confirmation Bevestiging opnieuw controleren - + Are you sure you want to recheck the selected torrent(s)? Weet u zeker dat u de geselecteerde torrent(s) opnieuw wilt controleren? - + Rename Naam wijzigen - + New name: Nieuwe naam: - + Choose save path Opslagpad kiezen - - Confirm pause - Pauzeren bevestigen - - - - Would you like to pause all torrents? - Wilt u alle torrents pauzeren? - - - - Confirm resume - Hervatten bevestigen - - - - Would you like to resume all torrents? - Wilt u alle torrents hervatten? - - - + Unable to preview Kan geen voorbeeld weergeven - + The selected torrent "%1" does not contain previewable files De geselecteerde torrent "%1" bevat geen bestanden waarvan een voorbeeld kan worden weergegeven - + Resize columns Kolomgroottes aanpassen - + Resize all non-hidden columns to the size of their contents Alle niet-verborgen kolommen aanpassen aan de grootte van hun inhoud - + Enable automatic torrent management Automatisch torrent-beheer inschakelen - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Weet u zeker dat u automatisch torrent-beheer wilt inschakelen voor de geselecteerde torrent(s)? Mogelijk worden ze verplaatst. - - Add Tags - Labels toevoegen - - - + Choose folder to save exported .torrent files Map kiezen om geëxporteerde .torrent-bestanden op te slaan - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Exporteren van .torrent-bestand mislukt. Torrent: "%1". Opslagpad: "%2". Reden: "%3". - + A file with the same name already exists Er bestaat al een bestand met dezelfde naam - + Export .torrent file error Fout bij exporteren van .torrent-bestand - + Remove All Tags Alle labels verwijderen - + Remove all tags from selected torrents? Alle labels van geselecteerde torrents verwijderen? - + Comma-separated tags: Kommagescheiden labels: - + Invalid tag Ongeldig label - + Tag name: '%1' is invalid Labelnaam '%1' is ongeldig - - &Resume - Resume/start the torrent - Hervatten - - - - &Pause - Pause the torrent - Pauzeren - - - - Force Resu&me - Force Resume/start the torrent - Geforceerd hervatten - - - + Pre&view file... Voorbeeld van bestand weergeven... - + Torrent &options... Torrent-opties... - + Open destination &folder Doelmap openen - + Move &up i.e. move up in the queue Omhoog verplaatsen - + Move &down i.e. Move down in the queue Omlaag verplaatsen - + Move to &top i.e. Move to top of the queue Bovenaan plaatsen - + Move to &bottom i.e. Move to bottom of the queue Onderaan plaatsen - + Set loc&ation... Locatie instellen... - + Force rec&heck Opnieuw controleren forceren - + Force r&eannounce Opnieuw aankondigen forceren - + &Magnet link Magneetkoppeling - + Torrent &ID Torrent-ID - + &Comment Opmerking - + &Name Naam - + Info &hash v1 Info-hash v1 - + Info h&ash v2 Info-hash v2 - + Re&name... Naam wijzigen... - + Edit trac&kers... Trackers bewerken... - + E&xport .torrent... .torrent exporteren... - + Categor&y Categorie - + &New... New category... Nieuw... - + &Reset Reset category Herstellen - + Ta&gs Labels - + &Add... Add / assign multiple tags... Toevoegen... - + &Remove All Remove all tags Alles verwijderen - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Kan opnieuw aankondigen niet forceren als een torrent gestopt is, in wachtrij geplaatst is, fouten heeft of aan het controleren is. + + + &Queue Wachtrij - + &Copy Kopiëren - + Exported torrent is not necessarily the same as the imported De geëxporteerde torrent is niet noodzakelijk dezelfde als de geïmporteerde - + Download in sequential order In sequentiële volgorde downloaden - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Er zijn fouten opgetreden bij het exporteren van .torrent-bestanden. Controleer het uitvoeringslogboek voor details. - + + &Start + Resume/start the torrent + Starten + + + + Sto&p + Stop the torrent + Stoppen + + + + Force Star&t + Force Resume/start the torrent + Geforceerd starten + + + &Remove Remove the torrent Verwijderen - + Download first and last pieces first Eerste en laatste deeltjes eerst downloaden - + Automatic Torrent Management Automatisch torrent-beheer - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatische modus betekent dat verschillende torrent-eigenschappen (bijvoorbeeld opslagpad) bepaald zullen worden door de bijbehorende categorie. - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Kan opnieuw aankondigen niet forceren als een torrent gepauzeerd is, in wachtrij geplaatst is, fouten heeft of aan het controleren is. - - - + Super seeding mode Super-seeding-modus @@ -11758,28 +12265,28 @@ Kies een andere naam en probeer het opnieuw. Pictogram-ID - + UI Theme Configuration. Configuratie UI-thema. - + The UI Theme changes could not be fully applied. The details can be found in the Log. De wijzigingen aan het UI-thema konden niet volledig worden toegepast. De details staan in het logboek. - + Couldn't save UI Theme configuration. Reason: %1 Kon de configuratie van het UI-thema niet opslaan. Reden: %1 - - + + Couldn't remove icon file. File: %1. Kon pictogrambestand niet verwijderen. Bestand: %1 - + Couldn't copy icon file. Source: %1. Destination: %2. Kon pictogrambestand niet kopiëren. Bron: %1. Bestemming: %2 @@ -11787,7 +12294,12 @@ Kies een andere naam en probeer het opnieuw. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Instellen van app-stijl mislukt. Onbekende stijl: "%1" + + + Failed to load UI theme from file: "%1" Laden van UI-thema uit bestand "%1" mislukt @@ -11818,20 +12330,21 @@ Kies een andere naam en probeer het opnieuw. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migreren van voorkeuren mislukt: WebUI https, bestand: "%1", fouten: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Voorkeuren gemigreerd: WebUI https, gegevens geëxporteerd naar bestand: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Ongeldige waarde gevonden in configuratiebestand. Terugzetten naar standaard. Sleutel: "%1". Ongeldige waarde: "%2". @@ -11839,32 +12352,32 @@ Kies een andere naam en probeer het opnieuw. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Python-executable teruggevonden. Naam: "%1". Versie: "%2" - + Failed to find Python executable. Path: "%1". Python-executable niet gevonden. Pad: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" 'Python3'-executable niet gevonden in PATH-omgevingsvariabele. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" 'Python'-executable niet gevonden in PATH-omgevingsvariabele. PATH: "%1" - + Failed to find `python` executable in Windows Registry. 'Python'-executable niet gevonden in Windows-register. - + Failed to find Python executable Python-excecutable niet gevonden @@ -11956,72 +12469,72 @@ Kies een andere naam en probeer het opnieuw. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Er is een onacceptabele sessie-cookienaam opgegeven: '%1'. De standaard wordt gebruikt. - + Unacceptable file type, only regular file is allowed. Niet-aanvaardbaar bestandstype, alleen gewoon bestand is toegestaan. - + Symlinks inside alternative UI folder are forbidden. Symlinks in map van alternatieve UI zijn verboden. - + Using built-in WebUI. Ingebouwde WebUI gebruiken - + Using custom WebUI. Location: "%1". Aangepaste WebUI gebruiken. Locatie: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. WebUI-vertaling voor geselecteerde taal (%1) is met succes geladen. - + Couldn't load WebUI translation for selected locale (%1). Kon vertaling van WebUI voor geselecteerde taal (%1) niet laden. - + Missing ':' separator in WebUI custom HTTP header: "%1" Ontbrekende ':'-separator in aangepaste HTTP-header van de WebUI: "%1" - + Web server error. %1 Webserver-fout; %1 - + Web server error. Unknown error. Webserver-fout. Onbekende fout. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: oorsprong-header en doel-oorsprong komen niet overeen! Bron-IP: '%1'. Oorsprong-header: '%2'. Doel-oorsprong: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: referer-header en doel-oorsprong komen niet overeen! Bron-IP: '%1'. Referer-header: '%2'. Doel-oorsprong: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: ongeldige host-header, poorten komen niet overeen. Aanvragen bron-IP: '%1'. Server-poort: '%2'. Ontvangen host-header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: ongeldige host-header. Aanvragen bron-IP: '%1'. Ontvangen host-header: '%2' @@ -12029,125 +12542,133 @@ Kies een andere naam en probeer het opnieuw. WebUI - + Credentials are not set Aanmeldingsgegevens zijn niet ingesteld - + WebUI: HTTPS setup successful WebUI: HTTPS-instelling gelukt - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS-instelling mislukt, terugvallen op HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: luisteren naar IP: %1, poort: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Kan niet binden aan IP: %1, poort: %2. Reden: %3 + + fs + + + Unknown error + Onbekende fout + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1 s - + %1m e.g: 10 minutes %1 m - + %1h %2m e.g: 3 hours 5 minutes %1 h %2 m - + %1d %2h e.g: 2 days 10 hours %1 d %2 h - + %1y %2d e.g: 2 years 10 days %1 j %2 d - - + + 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 diff --git a/src/lang/qbittorrent_oc.ts b/src/lang/qbittorrent_oc.ts index 73f933716..a390349af 100644 --- a/src/lang/qbittorrent_oc.ts +++ b/src/lang/qbittorrent_oc.ts @@ -14,75 +14,75 @@ A prepaus - + Authors - + Current maintainer Manteneire actual - + Greece Grècia - - + + Nationality: Nacionalitat : - - + + E-mail: Corrièr electronic : - - + + Name: Nom : - + Original author Autor original - + France França - + Special Thanks Mercejaments - + Translators Traductors - + License Licéncia - + Software Used - + qBittorrent was built with the following libraries: qBittorrent es estat compilat amb las bibliotècas seguentas : - + Copy to clipboard @@ -93,7 +93,7 @@ - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Enregistrar jos - + Never show again Afichar pas mai - - - Torrent settings - Paramètres del torrent - Set as default category @@ -191,12 +186,12 @@ Aviar lo torrent - + Torrent information Informacions sul torrent - + Skip hash check Verificar pas las donadas del torrent @@ -205,6 +200,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ - - + + None - - + + Metadata received - + Torrents that have metadata initially will be added as stopped. - - + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: - + Original - + Create subfolder - + Don't create subfolder - + Info hash v1: - + Size: Talha : - + Comment: Comentari : - + Date: Data : @@ -329,147 +329,147 @@ - + Do not delete .torrent file suprimir pas lo fichièr .torrent - + Download in sequential order Telecargament sequencial - + Download first and last pieces first Telecargar primièras e darrièras pèças en primièr - + Info hash v2: - + Select All Seleccionar tot - + Select None Seleccionar pas res - + Save as .torrent file... - + I/O Error ErrorE/S - + Not Available This comment is unavailable Pas disponible - + Not Available This date is unavailable Pas disponible - + Not available Pas disponible - + Magnet link Ligam magnet - + Retrieving metadata... Recuperacion de las metadonadas… - - + + Choose save path Causir un repertòri de destinacion - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) - + Not available This size is unavailable. Pas disponible - + Torrent file (*%1) - + Save as torrent file - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... Filtrar los fichièrs… - + Parsing metadata... Analisi sintaxica de las metadonadas... - + Metadata retrieval complete Recuperacion de las metadonadas acabada @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB Mio - + Recheck torrents on completion Reverificar los torrents quand son acabats - - + + ms milliseconds ms - + Setting Paramètre - + Value Value set for this setting Valor - + (disabled) - + (auto) (automatic) - + + min minutes min - + All addresses Totas las adreças - + qBittorrent Section Seccion qBittorrent - - + + Open documentation Dobrir documentacion - + All IPv4 addresses - + All IPv6 addresses - + libtorrent Section Seccion libtorrent - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Normala - + Below normal - + Medium - + Low - + Very low - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval Interval de l'expiracion del cache disc - + Disk queue size - - + + Enable OS cache Activar lo cache del sistèma operatiu - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval - + Resolve peer host names Afichar lo nom d'òste dels pars - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Afichar las notificacions - + Display notifications for added torrents Afichar las notificacions pels torrents aponduts - + Download tracker's favicon - + Save path history length - + Enable speed graphs - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck Confirmer la reverificacion del torrent - + Confirm removal of all tags - + Always announce to all trackers in a tier - + Always announce to all tiers - + Any interface i.e. Any network interface Quina interfàcia que siá - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Activar lo tracker integrat - + Embedded tracker port Pòrt del tracker integrat + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + Torrent name: %1 Nom del torrent : %1 - + Torrent size: %1 Talha del torrent : %1 - + Save path: %1 Camin de salvament : %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Lo torrent es estat telecargat dins %1. - + + Thank you for using qBittorrent. Mercé d'utilizar qBittorrent. - + Torrent: %1, sending mail notification - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit &Quitar - + I/O Error i.e: Input/Output Error ErrorE/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ Rason : %2 - + Torrent added Torrent apondut - + '%1' was added. e.g: xxx.avi was added. '%1' es estat apondut. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Lo telecargament de « %1 » es acabat. - + Information Informacion - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation Confirmacion per telecargament recursiu - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Pas jamai - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Salvament de l'avançament del torrent. - + qBittorrent is now ready to exit @@ -1605,12 +1715,12 @@ Rason : %2 - + Must Not Contain: Deu pas conténer : - + Episode Filter: Filtre d'episòdi : @@ -1662,263 +1772,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Exportar... - + Matches articles based on episode filter. Articles correspondents basats sul filtratge episòdi - + Example: Exemple : - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match correspondrà als episòdis 2, 5, 8 e 15-30 e superiors de la sason 1 - + Episode filter rules: Règlas de filtratge d'episòdis : - + Season number is a mandatory non-zero value Lo numèro de sason es una valor obligatòria diferenta de zèro - + Filter must end with semicolon Lo filtre se deu acabar amb un punt-virgula - + Three range types for episodes are supported: Tres tipes d'intervals d'episòdis son preses en carga : - + Single number: <b>1x25;</b> matches episode 25 of season one Nombre simple : <b>1×25;</b> correspond a l'episòdi 25 de la sason 1 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Interval standard : <b>1×25-40;</b> correspond als episòdis 25 a 40 de la saison 1 - + Episode number is a mandatory positive value - + Rules - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + Last Match: %1 days ago Darrièra correspondéncia : i a %1 jorns - + Last Match: Unknown Darrièra correspondéncia : desconegut - + New rule name Novèl nom per la règla - + Please type the name of the new download rule. Entratz lo nom de la novèla règla de telecargament. - - + + Rule name conflict Conflicte dins los noms de règla - - + + A rule with this name already exists, please choose another name. Una règla amb aqueste nom existís ja, causissètz-ne un autre. - + Are you sure you want to remove the download rule named '%1'? Sètz segur que volètz suprimir la règla de telecargament '%1' - + Are you sure you want to remove the selected download rules? Sètz segur que volètz suprimir las règlas seleccionadas ? - + Rule deletion confirmation Confirmacion de la supression - + Invalid action Accion invalida - + The list is empty, there is nothing to export. La lista es voida, i a pas res a exportar. - + Export RSS rules - + I/O Error Error E/S - + Failed to create the destination file. Reason: %1 - + Import RSS rules - + Failed to import the selected rules file. Reason: %1 - + Add new rule... Apondre una novèla règla… - + Delete rule Suprimir la règla - + Rename rule... Renomenar la règla… - + Delete selected rules Suprimir las règlas seleccionadas - + Clear downloaded episodes... - + Rule renaming Renommage de la règla - + Please type the new rule name Entratz lo novèl nom per la règla - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1960,7 +2070,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1970,28 +2080,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2002,16 +2122,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2019,38 +2140,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2058,22 +2201,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2081,457 +2224,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2547,13 +2736,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2561,67 +2750,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2642,189 +2831,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: Utilizacion : - + [options] [(<filename> | <url>)...] - + Options: Opcions - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen Desactivar l'ecran d'aviada - + Run in daemon-mode (background) Executar en prètzfait de fons - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Verificar pas las donadas del torrent - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first Telecargar primièras e darrièras pèças en primièr - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Ajuda @@ -2876,13 +3065,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Aviar los torrents + Start torrents + - Pause torrents - Metre en pausa los torrents + Stop torrents + @@ -2893,15 +3082,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset Reïnicializar + + + System + + CookiesDialog @@ -2942,12 +3136,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2955,7 +3149,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2974,23 +3168,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -3003,12 +3197,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Telecargar dempuèi d'URLs - + Add torrent links Apondon de ligams cap a de torrents - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -3018,12 +3212,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Telecargar - + No URL entered Cap d'URL pas entrada - + Please type at least one URL. Entratz al mens una URL. @@ -3182,25 +3376,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Error d'analisi : lo fichièr de filtratge es pas un fichièr P2B PeerGuardian valid. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3208,38 +3425,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Talha del fichièr de basa de donadas pas suportat. - + Metadata error: '%1' entry not found. Error de las metadonadas : '%1' pas trobat. - + Metadata error: '%1' entry has invalid type. Error de las metadonadas : lo tipe de '%1' es invalid. - + Unsupported database version: %1.%2 Version de basa de donadas pas suportada : %1.%2 - + Unsupported IP version: %1 Version IP pas suportada : %1 - + Unsupported record size: %1 Talha del registre pas suportada : %1 - + Database corrupted: no data section found. Basa de donadas corrompuda : seccion data introbabla. @@ -3247,17 +3464,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3298,26 +3515,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Percórrer... - + Reset Reïnicializar - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3349,13 +3600,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3364,60 +3615,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 es un paramètre de linha de comanda desconegut. - - + + %1 must be the single command line parameter. %1 deu èsser lo paramètre de linha de comanda unica. - + Run application with -h option to read about command line parameters. Executar lo programa amb l'opcion -h per afichar los paramètres de linha de comanda. - + Bad command line Marrida linha de comanda - + Bad command line: Marrida linha de comanda : - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3430,607 +3681,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Edicion - + &Tools Ai&sinas - + &File &Fichièr - + &Help &Ajuda - + On Downloads &Done Accion quand los telecargaments son acaba&ts - + &View A&fichatge - + &Options... &Opcions... - - &Resume - &Aviar - - - + &Remove - + Torrent &Creator &Creator de torrent - - + + Alternative Speed Limits Limits de velocitat alternativas - + &Top Toolbar Barra d'ai&sinas - + Display Top Toolbar Afichar la barra d'aisinas - + Status &Bar - + Filters Sidebar - + S&peed in Title Bar &Velocitat dins lo títol de la fenèstra - + Show Transfer Speed in Title Bar Afichar la velocitat dins lo títol de la fenèstra - + &RSS Reader Lector &RSS - + Search &Engine &Motor de recèrca - + L&ock qBittorrent &Verrolhar qBittorrent - + Do&nate! Far un do&n ! - + + Sh&utdown System + + + + &Do nothing - + Close Window - - R&esume All - A&viar tot - - - + Manage Cookies... Gerir los Cookies... - + Manage stored network cookies Gerir les cookies ret emmagazinats - + Normal Messages Messatges normals - + Information Messages Messatges d'informacion - + Warning Messages Messatges d'avertiment - + Critical Messages Messatges critics - + &Log &Jornal - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue - + Move to the bottom of the queue - + Top of Queue - + Move to the top of the queue - + Move Down Queue - + Move down in the queue - + Move Up Queue - + Move up in the queue - + &Exit qBittorrent &Quitar qBittorrent - + &Suspend System &Metre en velha lo sistèma - + &Hibernate System &Metre en velha perlongada lo sistèma - - S&hutdown System - A&tudar lo sistèma - - - + &Statistics &Estatisticas - + Check for Updates Verificar las mesas a jorn - + Check for Program Updates Verificar las mesas a jorn del programa - + &About &A prepaus - - &Pause - Metre en &pausa - - - - P&ause All - Tout &metre en pausa - - - + &Add Torrent File... &Apondre un fichièr torrent… - + Open Dobrir - + E&xit &Quitar - + Open URL Dobrir URL - + &Documentation &Documentacion - + Lock Verrolhar - - - + + + Show Afichar - + Check for program updates Verificar la disponibilitat de mesas a jorn del logicial - + Add Torrent &Link... Apondre &ligam cap a un torrent… - + If you like qBittorrent, please donate! Se qBittorrent vos agrada, fasètz un don ! - - + + Execution Log Jornal d'execucion - + Clear the password Escafar lo senhal - + &Set Password &Definir lo senhal - + Preferences - + &Clear Password &Suprimir lo mot de pass - + Transfers Transferiments - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only Icònas solament - + Text Only Tèxte solament - + Text Alongside Icons Tèxte al costat de las Icònas - + Text Under Icons Tèxte jos las Icònas - + Follow System Style Seguir l'estil del sistèma - - + + UI lock password Senhal de verrolhatge - - + + Please type the UI lock password: Entratz lo senhal de verrolhatge : - + Are you sure you want to clear the password? Sètz segur que volètz escafar lo senhal ? - + Use regular expressions - + + + Search Engine + Motor de recèrca + + + + Search has failed + La recèrca a fracassat + + + + Search has finished + Recèrca acabada + + + Search Recèrca - + Transfers (%1) Transferiments (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent ven d'èsser mes a jorn e deu èsser reaviat per que los cambiaments sián preses en compte. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No &Non - + &Yes &Òc - + &Always Yes &Òc, totjorn - + Options saved. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available Mesa a jorn de qBittorrent disponibla - + 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 necessari per fin d'utilizar lo motor de recèrca mas sembla pas èsser installat. Lo volètz installar ara ? - + Python is required to use the search engine but it does not seem to be installed. Python es necessari per fin d'utilizar lo motor de recèrca mas sembla pas èsser installat. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. Pas de mesas a jorn disponiblas. Utilizatz ja la darrièra version. - + &Check for Updates &Verificar las mesas a jorn - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + En pausa + + + Checking for Updates... Verificacion de las mesas a jorn… - + Already checking for program updates in the background Recèrca de mesas a jorn ja en cors en prètzfait de fons - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Error de telecargament - - Python setup could not be downloaded, reason: %1. -Please install it manually. - L’installador Python pòt pas èsser telecargat per la rason seguenta : %1. -Installatz-lo manualament. - - - - + + Invalid password Senhal invalid - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid Lo senhal fourni es invalid - + DL speed: %1 e.g: Download speed: 10 KiB/s Velocitat de recepcion : %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Velocitat de mandadís : %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [R : %1, E : %2] qBittorrent %3 - - - + Hide Amagar - + Exiting qBittorrent Tampadura de qBittorrent - + Open Torrent Files Dobrir fichièrs torrent - + Torrent Files Fichièrs torrent @@ -4225,7 +4547,12 @@ Installatz-lo manualament. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5519,47 +5846,47 @@ Installatz-lo manualament. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5597,486 +5924,510 @@ Installatz-lo manualament. BitTorrent - + RSS - - Web UI - Interfàcia web - - - + Advanced Avançat - + Customize UI Theme... - + Transfer List Lista dels transferiments - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always Totjorn - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - - - - - + + Open destination folder Dobrir lo repertòri de destinacion - - + + No action Pas cap d'accion - + Completed torrents: Torrents telecargats : - + Auto hide zero status filters - + Desktop Burèu - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original - + Create subfolder - + Don't create subfolder - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time De : - + To: To end time A : - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: Nombre maximum d'articles per flux : - - - + + + min minutes min - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent and its files - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) - + IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Pas jamai - + ban for: - + Session timeout: - + Disabled Desactivat - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6085,441 +6436,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + Recèrca + + + + WebUI + + + + Interface - + Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Normala - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates Verificar la disponibilitat de mesas a jorn del logicial - + Power Management - + + &Log Files + + + + Save path: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: - + Manual Manual - + Automatic Automatic - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days jorns - + months Delete backup logs older than 10 months meses - + years Delete backup logs older than 10 years ans - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6536,766 +6928,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver A : - + SMTP server: Servidor SMTP : - + Sender - + From: From sender De : - + This server requires a secure connection (SSL) - - + + Authentication Autentificacion - - - - + + + + Username: Nom d'utilizaire : - - - - + + + + Password: Senhal : - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + Listening Port - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits - + Maximum number of connections per torrent: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server - + Type: Tipe : - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Òste : - - - + + + Port: Pòrt : - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s - - + + Upload: Mandadís : - - + + Download: Telecargament : - + Alternative Rate Limits - + Start time - + End time - + When: Quora : - + Every day Cada jorn - + Weekdays Jorns de setmana - + Weekends Fins de setmanas - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: Certificat : - + Key: Clau : - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Servici : - + Register - + Domain name: Nom de domeni : - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N : Nom del torrent - + %L: Category %L : Categoria - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D : Camin de salvament - + %C: Number of files %C : Nombre de fichièrs - + %Z: Torrent size (bytes) - + %T: Current tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Pas cap) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 Lo filtre IP es estat cargat corrèctament : %1 règlas son estadas aplicadas. - + Preferences - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7303,241 +7740,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Desconeguda - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port Pòrt - + Flags Indicadors - + Connection Connexion - + Client i.e.: Client application Logicial - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded Progression - + Down Speed i.e: Download speed Velocitat DL - + Up Speed i.e: Upload speed Velocitat UP - + Downloaded i.e: total data downloaded Telecargat - + Uploaded i.e: total data uploaded Mandat - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Pertinéncia - + Files i.e. files that are being downloaded right now Fichièrs - + Column visibility Visibilitat de colomna - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently Blocar lo par indefinidament - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A N/A - + Copy IP:port Copiar l'IP:pòrt @@ -7555,7 +7997,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port Format : IPv4:port / [IPv6]:port @@ -7596,27 +8038,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7629,58 +8071,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Empeutons de recèrca - + Installed search plugins: Empeutons de recèrca installats : - + Name Nom - + Version Version - + Url URL - - + + Enabled Activat - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installar un novèl - + Check for updates Recercar de mesas a jorn - + Close Tampar - + Uninstall Desinstallar @@ -7800,98 +8242,65 @@ Los empeutons en question son estats desactivats. Font de l'empeuton - + Search plugin source: Font de l'empeuton de recèrca : - + Local file Fichièr local - + Web link Ligam web - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview Previsualizar - + Name Nom - + Size Talha - + Progress Progression - + Preview impossible Previsualizacion impossibla - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7904,27 +8313,27 @@ Los empeutons en question son estats desactivats. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7965,12 +8374,12 @@ Los empeutons en question son estats desactivats. PropertiesWidget - + Downloaded: Telecargat : - + Availability: Disponibilitat : @@ -7985,53 +8394,53 @@ Los empeutons en question son estats desactivats. Transferiment - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Actiu pendent : - + ETA: Temps restant : - + Uploaded: Mandat : - + Seeds: Fonts : - + Download Speed: Velocitat de telecargament : - + Upload Speed: Velocitat d'emission : - + Peers: Pars : - + Download Limit: Limit de telecargament : - + Upload Limit: Limit de mandadís : - + Wasted: Degalhat : @@ -8041,193 +8450,220 @@ Los empeutons en question son estats desactivats. Connexions : - + Information Informacions - + Info Hash v1: - + Info Hash v2: - + Comment: Comentari : - + Select All Seleccionar tot - + Select None Seleccionar pas res - + Share Ratio: Ratio de partiment : - + Reannounce In: Anonciar dins : - + Last Seen Complete: Darrièra fois vu complet : - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Talha totala : - + Pieces: Tròces : - + Created By: Creat per : - + Added On: Apondut lo : - + Completed On: Completat lo : - + Created On: Creat lo : - + + Private: + + + + Save Path: Camin de salvament : - + Never Pas jamai - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 × %2 (a %3) - - + + %1 (%2 this session) %1 (%2 aquesta session) - - + + + N/A N/A - + + Yes + Òc + + + + No + Non + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (partejat pendent %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 mejana) - - New Web seed - Novèla font web + + Add web seed + Add HTTP source + - - Remove Web seed - Suprimir la font web + + Add web seed: + - - Copy Web seed URL - Copiar l'URL de la font web + + + This web seed is already in the list. + - - Edit Web seed URL - Modificar l'URL de la font web - - - + Filter files... Filtrar los fichièrs… - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - Novèla font URL - - - - New URL seed: - Novèla font URL : - - - - - This URL seed is already in the list. - Aquesta font URL es ja sus la liste. - - - + Web seed editing Modificacion de la font web - + Web seed URL: URL de la font web : @@ -8235,33 +8671,33 @@ Los empeutons en question son estats desactivats. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8269,22 +8705,22 @@ Los empeutons en question son estats desactivats. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8320,12 +8756,12 @@ Los empeutons en question son estats desactivats. RSS::Private::Parser - + Invalid RSS feed. Flux RSS invalid. - + %1 (line: %2, column: %3, offset: %4). @@ -8333,103 +8769,144 @@ Los empeutons en question son estats desactivats. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + + + + + Default + + + RSSWidget @@ -8449,8 +8926,8 @@ Los empeutons en question son estats desactivats. - - + + Mark items read Marcar coma legit @@ -8475,132 +8952,115 @@ Los empeutons en question son estats desactivats. Torrents : (doble-clic per telecargar) - - + + Delete Suprimir - + Rename... Renomenar… - + Rename Renomenar - - + + Update Metre a jorn - + New subscription... Novèla soscripcion… - - + + Update all feeds Tot metre a jorn - + Download torrent Telecargar lo torrent - + Open news URL Dobrir l'URL de l'article - + Copy feed URL Copiar l'URL del flux - + New folder... Novèl dorsièr… - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Indicatz un nom de dorsièr - + Folder name: Nom del dorsièr : - + New folder Novèl dorsièr - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + Deletion confirmation Confirmacion de supression - + Are you sure you want to delete the selected RSS feeds? Sètz segur que volètz suprimir los fluxes RSS seleccionats ? - + Please choose a new name for this RSS feed Causissètz un novèl nom per aqueste flux RSS - + New feed name: Novèl nom del flux : - + Rename failed - + Date: Data : - + Feed: - + Author: Autor : @@ -8608,38 +9068,38 @@ Los empeutons en question son estats desactivats. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8714,132 +9174,142 @@ Los empeutons en question son estats desactivats. Talha : - + Name i.e: file name Nom - + Size i.e: file size Talha - + Seeders i.e: Number of full sources Fonts completas - + Leechers i.e: Number of partial sources Fonts parcialas - - Search engine - Motor de recèrca - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultats (afichatge <i>%1</i> de <i>%2</i>) : - + Torrent names only Noms de torrent solament - + Everywhere Pertot - + Use regular expressions - + Open download window - + Download Telecargar - + Open description page - + Copy Copiar - + Name Nom - + Download link - + Description page URL - + Searching... Recèrca... - + Search has finished Recèrca acabada - + Search aborted Recèrca interrompuda - + An error occurred during search... Una error s'es produita pendent la recèrca.. - + Search returned no results La recèrca a pas tornat cap de resultat - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Visibilitat de las colomnas - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8847,104 +9317,104 @@ Los empeutons en question son estats desactivats. SearchPluginManager - + Unknown search engine plugin file format. Format de fichièrs de l'empeuton de recèrca desconegut. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. Una version mai recenta d'aqueste empeuton es ja installada. - + Plugin %1 is not supported. - - + + Plugin is not supported. L'empeuton es pas suportat. - + Plugin %1 has been successfully updated. - + All categories Totas las categorias - + Movies Filmes - + TV shows Serias TV - + Music Musica - + Games Jòcs - + Anime Anime - + Software Logicials - + Pictures Fòtos - + Books Libres - + Update server is temporarily unavailable. %1 O planhèm, lo servidor de mesa a jorn es temporàriament indisponible. %1 - - + + Failed to download the plugin file. %1 Impossible de telecargar l'empeuton. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8954,113 +9424,144 @@ Los empeutons en question son estats desactivats. - - - - Search Recèrca - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... Empeutons de recèrca... - + A phrase to search for. Una frasa de recercar - + Spaces in a search term may be protected by double quotes. Los espacis dins un tèrme de recèrca pòdon èsser protegits per de verguetas. - + Example: Search phrase example Exemple : - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: recèrca <b>foo bar</b> - + All plugins Totes los empeutons - + Only enabled Unicament activat(s) - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: recèrca <b>foo</b> e <b>bar</b> - + + Refresh + + + + Close tab - + Close all tabs - + Select... Causir... - - - + + Search Engine Motor de recèrca - + + Please install Python to use the Search Engine. Installatz Python per fin d'utilizar lo motor de recèrca. - + Empty search pattern Motiu de recèrca void - + Please type a search pattern first Entratz un motiu de recèrca - + + Stop Arrestar + + + SearchWidget::DataStorage - - Search has finished - Recèrca acabada + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - La recèrca a fracassat + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9173,34 +9674,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Mandadís : - - - + + + - - - + + + KiB/s - - + + Download: Telecargament : - + Alternative speed limits @@ -9298,17 +9799,17 @@ Click the "Search plugins..." button at the bottom right of the window 3 Hours - 6 oras {3 ?} + 12 Hours - 6 oras {12 ?} + 24 Hours - 6 oras {24 ?} + @@ -9392,32 +9893,32 @@ Click the "Search plugins..." button at the bottom right of the window Temps mejan passat en fila d'espèra : - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -9432,12 +9933,12 @@ Click the "Search plugins..." button at the bottom right of the window Accions d'E/S en fila d'espèra : - + Write cache overload: Subrecarga del tampon d'escritura : - + Read cache overload: Subrecarga del tampon de lectura : @@ -9456,51 +9957,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Estatut de la connexion : - - + + No direct connections. This may indicate network configuration problems. Pas cap de connexion dirècta. Aquò pòt èsser signe d'una marrida configuracion de la ret. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT : %1 nosèls - + qBittorrent needs to be restarted! - - - + + + Connection Status: Estat de la connexion : - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Fòra linha. Aquò significa generalament que qBittorrent a pas pogut se metre en escota sul pòrt definit per las connexions entrantas. - + Online Connectat - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Clicatz aicí per utilizar los limits de velocitat alternatius - + Click to switch to regular speed limits Clicatz aicí per utilizar los limits de velocitat normals @@ -9530,13 +10057,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Aviats (0) + Running (0) + - Paused (0) - En Pausa (0) + Stopped (0) + @@ -9598,36 +10125,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Acabats (%1) + + + Running (%1) + + - Paused (%1) - En Pausa (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) - - - Resume torrents - Aviar los torrents - - - - Pause torrents - Metre en pausa los torrents - Remove torrents - - - Resumed (%1) - Aviats (%1) - Active (%1) @@ -9699,24 +10226,19 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags - - - Resume torrents - Aviar los torrents - - - - Pause torrents - Metre en pausa los torrents - Remove torrents - - New Tag + + Start torrents + + + + + Stop torrents @@ -9724,6 +10246,11 @@ Click the "Search plugins..." button at the bottom right of the window Tag: + + + Add tag + + Invalid tag name @@ -9867,32 +10394,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Nom - + Progress Progression - + Download Priority Prioritat de telecargament - + Remaining Restant - + Availability - + Total Size Talha totala @@ -9937,98 +10464,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + New name: Novèl nom : - + Column visibility Visibilitat de las colomnas - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Dobèrt - + Open containing folder - + Rename... Renomenar… - + Priority Prioritat - - + + Do not download Telecargar pas - + Normal Normala - + High Nauta - + Maximum Maximala - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order @@ -10036,17 +10563,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10075,13 +10602,13 @@ Please choose a different name and try again. - + Select file - + Select folder @@ -10156,83 +10683,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. Podètz separar los nivèls / gropes del tracker per una linha voida. - + Web seed URLs: - + Tracker URLs: URL dels trackers : - + Comments: - + Source: - + Progress: Progression : - + Create Torrent - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) Fichièrs torrent (*.torrent) - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator - + Torrent created: @@ -10240,32 +10767,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10273,44 +10800,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadata invalidas. - - TorrentOptionsDialog @@ -10339,173 +10853,161 @@ Please choose a different name and try again. - + Category: Categoria : - - Torrent speed limits + + Torrent Share Limits - + Download: Telecargament : - - + + - - + + Torrent Speed Limits + + + + + KiB/s - + These will not exceed the global limits - + Upload: Mandadís : - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order Telecargament sequencial - + Disable PeX for this torrent - + Download first and last pieces first Telecargar primièras e darrièras pèças en primièr - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Causida del repertòri de destinacion - + Not applicable to private torrents - - - No share limit method selected - - - - - Please select a limit method first - - TorrentShareLimitsWidget - - - + + + + Default - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10518,32 +11020,32 @@ Please choose a different name and try again. - - New Tag + + Add tag - + Tag: - + Invalid tag name - + Tag name '%1' is invalid. - + Tag exists - + Tag name already exists. @@ -10551,115 +11053,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name Nom de categoria incorrect @@ -10685,196 +11202,191 @@ Please choose a different name and try again. TrackerListModel - + Working Fonciona - + Disabled Desactivat - + Disabled for this torrent - + This torrent is private Aqueste torrent es privat - + N/A N/A - + Updating... Mesa a jorn… - + Not working Fonciona pas - + Tracker error - + Unreachable - + Not contacted yet Pas encara contactat - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - Estatut - - - - Peers - Pars - - - - Seeds - Fonts - - - - Leeches - - - - - Times Downloaded - - - - - Message - Messatge - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + Estatut + + + + Peers + Pars + + + + Seeds + Fonts + + + + Leeches + + + + + Times Downloaded + + + + + Message + Messatge + TrackerListWidget - + This torrent is private Aqueste torrent es privat - + Tracker editing Modificacion del tracker - + Tracker URL: URL del tracker : - - + + Tracker editing failed Fracàs de la modificacion del tracker - + The tracker URL entered is invalid. L'URL del tracker provesit es invalid. - + The tracker URL already exists. L'URL del tracker existís ja. - + Edit tracker URL... - + Remove tracker Suprimir lo tracker - + Copy tracker URL Copiar l'URL del tracker - + Force reannounce to selected trackers Forçar una novèla anóncia als trackers seleccionats - + Force reannounce to all trackers Forçar una novèla anóncia a totes los trackers - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility Visibilitat de las colomnas @@ -10892,37 +11404,37 @@ Please choose a different name and try again. Lista dels trackers d'apondre (un per linha) : - + µTorrent compatible list URL: URL de la lista compatibla amb µTorrent : - + Download trackers list - + Add Apondre - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10930,62 +11442,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Alèrta (%1) - + Trackerless (%1) Sens tracker (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Suprimir lo tracker - - Resume torrents - Aviar los torrents + + Start torrents + - - Pause torrents - Metre en pausa los torrents + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Totes (%1) @@ -10994,7 +11506,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11086,11 +11598,6 @@ Please choose a different name and try again. 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. Verificacion de las donadas de reaviada - - - Paused - En pausa - Completed @@ -11114,220 +11621,252 @@ Please choose a different name and try again. Error - + Name i.e: torrent name Nom - + Size i.e: torrent size Talha - + Progress % Done Progression - + + Stopped + + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Estatut - + Seeds i.e. full sources (often untranslated) Fonts - + Peers i.e. partial sources (often untranslated) Pars - + Down Speed i.e: Download speed Velocitat DL - + Up Speed i.e: Upload speed Velocitat UP - + Ratio Share ratio Ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Temps restant - + Category Categoria - + Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Apondut lo - + Completed On Torrent was completed on 01/01/2010 08:00 Acabat lo - + Tracker Tracker - + Down Limit i.e: Download limit Limit recepcion - + Up Limit i.e: Upload limit Limit mandadís - + Downloaded Amount of data downloaded (e.g. in MB) Telecargat - + Uploaded Amount of data uploaded (e.g. in MB) Mandat - + Session Download Amount of data downloaded since program open (e.g. in MB) Telecargament de la session - + Session Upload Amount of data uploaded since program open (e.g. in MB) Emission de la session - + Remaining Amount of data left to download (e.g. in MB) Restant - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Actiu pendent - + + Yes + Òc + + + + No + Non + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Acabat - + Ratio Limit Upload share ratio limit Limit de ratio - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Darrièr còp vist complet - + Last Activity Time passed since a chunk was downloaded/uploaded Darrièra activitat - + Total Size i.e. Size including unwanted data Talha totala - + Availability The number of distributed copies of the torrent - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago i a %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (partejat pendent %2) @@ -11336,339 +11875,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Visibilitat de las colomnas - + Recheck confirmation Reverificar la confirmacion - + Are you sure you want to recheck the selected torrent(s)? Sètz segur que volètz reverificar lo o los torrent(s) seleccionat(s) ? - + Rename Renomenar - + New name: Novèl nom : - + Choose save path Causida del repertòri de destinacion - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags - + Remove all tags from selected torrents? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Aviar - - - - &Pause - Pause the torrent - Metre en &pausa - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Telecargament sequencial - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first Telecargar primièras e darrièras pèças en primièr - + Automatic Torrent Management Gestion de torrent automatique - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode Mòde de superpartiment @@ -11713,28 +12232,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11742,7 +12261,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11773,20 +12297,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11794,32 +12319,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11911,72 +12436,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11984,125 +12509,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Error desconeguda + + misc - + B bytes Oct - + KiB kibibytes (1024 bytes) Kio - + MiB mebibytes (1024 kibibytes) Mio - + GiB gibibytes (1024 mibibytes) Gio - + TiB tebibytes (1024 gibibytes) Tio - + PiB pebibytes (1024 tebibytes) Pio - + EiB exbibytes (1024 pebibytes) Eio - + /s per second /s - + %1s e.g: 10 seconds - %1min {1s?} + - + %1m e.g: 10 minutes %1min - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1j %2h - + %1y %2d e.g: 2 years 10 days - %1j %2h {1y?} {2d?} + - - + + Unknown Unknown (size) Desconeguda - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent, ara, va atudar l'ordenador perque totes los telecargaments son acabats. - + < 1m < 1 minute < 1min diff --git a/src/lang/qbittorrent_pl.ts b/src/lang/qbittorrent_pl.ts index 8d1088e49..ae331d1c8 100644 --- a/src/lang/qbittorrent_pl.ts +++ b/src/lang/qbittorrent_pl.ts @@ -14,75 +14,75 @@ O programie - + Authors Autorzy - + Current maintainer Aktualny opiekun - + Greece Grecja - - + + Nationality: Narodowość: - - + + E-mail: E-mail: - - + + Name: Imię i nazwisko: - + Original author Pierwotny autor - + France Francja - + Special Thanks Specjalne podziękowania - + Translators Tłumacze - + License Licencja - + Software Used Użyte oprogramowanie - + qBittorrent was built with the following libraries: qBittorrent został stworzony z wykorzystaniem następujących bibliotek: - + Copy to clipboard Skopiuj do schowka @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 Projekt qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 Projekt qBittorrent @@ -166,15 +166,10 @@ Zapisz w - + Never show again Nigdy więcej nie pokazuj - - - Torrent settings - Ustawienia torrenta - Set as default category @@ -191,12 +186,12 @@ Rozpocznij pobieranie - + Torrent information Informacje o torrencie - + Skip hash check Pomiń sprawdzanie danych @@ -205,6 +200,11 @@ Use another path for incomplete torrent Używaj innej ścieżki do niekompletnego torrenta + + + Torrent options + Opcje torrentów + Tags: @@ -231,75 +231,75 @@ Warunek zatrzymania: - - + + None Żaden - - + + Metadata received Odebrane metadane - + Torrents that have metadata initially will be added as stopped. - + Torrenty, które mają metadane, początkowo zostaną dodane jako zatrzymane. - - + + Files checked Sprawdzone pliki - + Add to top of queue Dodaj na początek kolejki - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Gdy zaznaczone, plik .torrent nie zostanie usunięty niezależnie od ustawień na stronie "Pobieranie" okna dialogowego Opcje - + Content layout: Układ zawartości: - + Original Pierwotny - + Create subfolder Utwórz podfolder - + Don't create subfolder Nie twórz podfolderu - + Info hash v1: Info hash v1: - + Size: Rozmiar: - + Comment: Komentarz: - + Date: Data: @@ -329,151 +329,147 @@ Zapamiętaj ostatnią użytą ścieżkę zapisu - + Do not delete .torrent file Nie usuwaj pliku .torrent - + Download in sequential order Pobierz w kolejności sekwencyjnej - + Download first and last pieces first Pobierz najpierw część pierwszą i ostatnią - + Info hash v2: Info hash v2: - + Select All Zaznacz wszystko - + Select None Odznacz wszystko - + Save as .torrent file... Zapisz jako plik .torrent... - + I/O Error Błąd we/wy - + Not Available This comment is unavailable Niedostępne - + Not Available This date is unavailable Niedostępne - + Not available Niedostępne - + Magnet link Odnośnik magnet - + Retrieving metadata... Pobieranie metadanych... - - + + Choose save path Wybierz ścieżkę zapisu - + No stop condition is set. Nie jest ustawiony żaden warunek zatrzymania. - + Torrent will stop after metadata is received. Torrent zatrzyma się po odebraniu metadanych. - Torrents that have metadata initially aren't affected. - Nie ma to wpływu na torrenty, które początkowo zawierają metadane. - - - + Torrent will stop after files are initially checked. Torrent zatrzyma się po wstępnym sprawdzeniu plików. - + This will also download metadata if it wasn't there initially. Spowoduje to również pobranie metadanych, jeśli początkowo ich tam nie było. - - + + N/A Nie dotyczy - + %1 (Free space on disk: %2) %1 (Wolne miejsce na dysku: %2) - + Not available This size is unavailable. Niedostępne - + Torrent file (*%1) Pliki torrent (*%1) - + Save as torrent file Zapisz jako plik torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Nie można wyeksportować pliku metadanych torrenta '%1'. Powód: %2. - + Cannot create v2 torrent until its data is fully downloaded. Nie można utworzyć torrenta v2, dopóki jego dane nie zostaną w pełni pobrane. - + Filter files... Filtruj pliki... - + Parsing metadata... Przetwarzanie metadanych... - + Metadata retrieval complete Pobieranie metadanych zakończone @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Pobieranie torrenta... Źródło: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Nie udało się dodać torrenta. Źródło: "%1". Powód: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Wykryto próbę dodania zduplikowanego torrenta. Źródło: %1. Istniejący torrent: %2. Wynik: %3 - - - + Merging of trackers is disabled Scalanie trackerów jest wyłączone - + Trackers cannot be merged because it is a private torrent Nie można scalić trackerów, ponieważ jest to prywatny torrent - + Trackers are merged from new source Trackery zostały scalone z nowego źródła + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Wykryto próbę dodania zduplikowanego torrenta. Źródło: %1. Istniejący torrent: "%2". Infohash torrenta: %3. Wynik: %4 + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Limity udziału torrenta + Limity udziału torrenta @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Sprawdzaj dane po pobraniu - - + + ms milliseconds ms - + Setting Ustawienie - + Value Value set for this setting Wartość - + (disabled) (wyłączone) - + (auto) (auto) - + + min minutes min - + All addresses Wszystkie adresy - + qBittorrent Section Sekcja qBittorrent - - + + Open documentation Otwórz dokumentację - + All IPv4 addresses Wszystkie adresy IPv4 - + All IPv6 addresses Wszystkie adresy IPv6 - + libtorrent Section Sekcja libtorrent - + Fastresume files Pliki fastresume - + SQLite database (experimental) Baza danych SQLite (eksperymentalne) - + Resume data storage type (requires restart) Wznów typ przechowywania danych (wymaga ponownego uruchomienia) - + Normal Normalny - + Below normal Poniżej normalnnego - + Medium Średni - + Low Niski - + Very low Bardzo niski - + Physical memory (RAM) usage limit Limit wykorzystania pamięci fizycznej (RAM) - + Asynchronous I/O threads Asynchroniczne wątki we-wy - + Hashing threads Wątki hashujące - + File pool size Rozmiar puli plików - + Outstanding memory when checking torrents Nieuregulowana pamięć podczas sprawdzania torrentów - + Disk cache Pamięć podręczna dysku - - - - + + + + + s seconds s - + Disk cache expiry interval Okres ważności pamięci podręcznej - + Disk queue size Rozmiar kolejki dysku - - + + Enable OS cache Włącz pamięć podręczną systemu operacyjnego - + Coalesce reads & writes Połączone odczyty i zapisy - + Use piece extent affinity Użyj koligacji zakresu części - + Send upload piece suggestions Wyślij sugestie wysyłanej części - - - - + + + + + 0 (disabled) 0 (wyłączone) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Interwał zapisu danych wznowienia [0: wyłączone] - + Outgoing ports (Min) [0: disabled] Porty wychodzące (min.) [0: wyłączone] - + Outgoing ports (Max) [0: disabled] Porty wychodzące (maks.) [0: wyłączone] - + 0 (permanent lease) 0 (dzierżawa stała) - + UPnP lease duration [0: permanent lease] Okres dzierżawy UPnP [0: dzierżawa stała] - + Stop tracker timeout [0: disabled] Limit czasu zatrzymania trackera [0: wyłączone] - + Notification timeout [0: infinite, -1: system default] Limit czasu powiadomienia [0: nieskończony, -1: domyślne systemowe] - + Maximum outstanding requests to a single peer Maksymalne zaległe żądania do pojedynczego partnera - - - - - + + + + + KiB KiB - + (infinite) (nieskończone) - + (system default) (domyślne systemowe) - + + Delete files permanently + Usuń pliki trwale + + + + Move files to trash (if possible) + Przenieś pliki do kosza (jeśli to możliwe) + + + + Torrent content removing mode + Tryb usuwania zawartości torrenta + + + This option is less effective on Linux Ta opcja jest mniej efektywna w systemie Linux - + Process memory priority Priorytet pamięci procesu - + Bdecode depth limit Limit głębi bdecode - + Bdecode token limit Limit tokena bdecode - + Default Domyślny - + Memory mapped files Pliki mapowane w pamięci - + POSIX-compliant Zgodny z POSIX - + + Simple pread/pwrite + Proste pread/pwrite + + + Disk IO type (requires restart) Typ we/wy dysku (wymaga ponownego uruchomienia): - - + + Disable OS cache Wyłącz pamięć podręczną systemu operacyjnego - + Disk IO read mode Tryb odczytu we/wy dysku - + Write-through Bez buforowania zapisu - + Disk IO write mode Tryb zapisu we/wy dysku - + Send buffer watermark Wyślij limit bufora - + Send buffer low watermark Wyślij dolny limit bufora - + Send buffer watermark factor Wyślij czynnik limitu bufora - + Outgoing connections per second Połączenia wychodzące na sekundę - - + + 0 (system default) 0 (domyślne systemowe) - + Socket send buffer size [0: system default] Rozmiar bufora wysyłania gniazda [0: domyślne systemowe]: - + Socket receive buffer size [0: system default] Rozmiar bufora odbierania gniazda [0: domyślne systemowe] - + Socket backlog size Rozmiar zaległości gniazda - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Interwał zapisu statystyk [0: wyłączone] + + + .torrent file size limit Limit rozmiaru pliku .torrent - + Type of service (ToS) for connections to peers Typ usługi (ToS) do połączeń z partnerami - + Prefer TCP Preferuj TCP - + Peer proportional (throttles TCP) Partner współmierny (dławi TCP) - + + Internal hostname resolver cache expiry interval + Interwał wygaśnięcia pamięci podręcznej wewnętrznego programu do rozpoznawania nazw hostów + + + Support internationalized domain name (IDN) Obsługuj międzynarodowe nazwy domen (IDN) - + Allow multiple connections from the same IP address Zezwalaj na wiele połączeń z tego samego adresu IP - + Validate HTTPS tracker certificates Sprawdź poprawność certyfikatów HTTPS trackerów - + Server-side request forgery (SSRF) mitigation Zapobieganie fałszowaniu żądań po stronie serwera (SSRF) - + Disallow connection to peers on privileged ports Nie zezwalaj na połączenia z partnerami na portach uprzywilejowanych - + It appends the text to the window title to help distinguish qBittorent instances - + Dołącza tekst do tytułu okna, aby pomóc rozróżnić instancje qBittorent - + Customize application instance name - + Dostosuj nazwę instancji aplikacji - + It controls the internal state update interval which in turn will affect UI updates Kontroluje częstotliwość aktualizacji stanu wewnętrznego, co z kolei wpłynie na aktualizacje interfejsu użytkownika - + Refresh interval Częstotliwość odświeżania - + Resolve peer host names Odczytuj nazwy hostów partnerów - + IP address reported to trackers (requires restart) Adres IP zgłoszony trackerom (wymaga ponownego uruchomienia) - + + Port reported to trackers (requires restart) [0: listening port] + Port zgłoszony do trackerom (wymaga ponownego uruchomienia) [0: port nasłuchujący] + + + Reannounce to all trackers when IP or port changed Rozgłaszaj wszystkim trackerom po zmianie adresu IP lub portu - + Enable icons in menus Włącz ikony w menu - + + Attach "Add new torrent" dialog to main window + Dołącz okno dialogowe "Dodaj nowy torrent" do okna głównego + + + Enable port forwarding for embedded tracker Włącz przekierowanie portów dla wbudowanego trackera - + Enable quarantine for downloaded files Włącz kwarantannę dla pobranych plików - + Enable Mark-of-the-Web (MOTW) for downloaded files Włącz Mark-of-the-Web (MOTW) dla pobranych plików - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Dotyczy walidacji certyfikatów i działań niezwiązanych z protokołami torrent (np. kanałów RSS, aktualizacji programów, plików torrent, bazy danych geoip itp.) + + + + Ignore SSL errors + Ignoruj ​​błędy SSL: + + + (Auto detect if empty) (Autowykrywanie, jeśli puste) - + Python executable path (may require restart) Ścieżka pliku wykonywalnego Pythona (może wymagać ponownego uruchomienia) - + + Start BitTorrent session in paused state + Uruchom sesję BitTorrent w stanie wstrzymanym + + + + sec + seconds + s + + + + -1 (unlimited) + -1 (nieograniczone) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Limit czasu zamknięcia sesji BitTorrent [-1: nieograniczony] + + + Confirm removal of tracker from all torrents Potwierdź usunięcie trackera ze wszystkich torrentów - + Peer turnover disconnect percentage Procent rozłączania obrotu partnerów - + Peer turnover threshold percentage Procent progu obrotu partnerów - + Peer turnover disconnect interval Interwał rozłączania obrotu partnerów - + Resets to default if empty Resetuje do ustawień domyślnych, jeśli puste - + DHT bootstrap nodes Węzły bootstrap DHT - + I2P inbound quantity Ilość ruchu przychodzącego I2P - + I2P outbound quantity Ilość ruchu wychodzącego I2P - + I2P inbound length Długość ruchu przychodzącego I2P - + I2P outbound length Długość ruchu wychodzącego I2P - + Display notifications Wyświetlaj powiadomienia - + Display notifications for added torrents Wyświetlaj powiadomienia dodanych torrentów - + Download tracker's favicon Pobierz ikonę ulubionych trackera - + Save path history length Długość historii ścieżki zapisu - + Enable speed graphs Włącz wykresy prędkości - + Fixed slots Stałe sloty - + Upload rate based Na podstawie współczynnika wysyłania - + Upload slots behavior Zachowanie slotów wysyłania - + Round-robin Karuzela - + Fastest upload Najszybsze wysyłanie - + Anti-leech - Anty-pijawka + Antypijawka - + Upload choking algorithm Algorytm dławienia wysyłania - + Confirm torrent recheck Potwierdź ponowne sprawdzanie torrenta - + Confirm removal of all tags Potwierdź usunięcie wszystkich znaczników - + Always announce to all trackers in a tier Zawsze ogłaszaj do wszystkich trackerów na poziomie - + Always announce to all tiers Zawsze ogłaszaj na wszystkich poziomach - + Any interface i.e. Any network interface Dowolny interfejs - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algorytm trybu mieszanego %1-TCP - + Resolve peer countries Uzgodnij państwa partnera - + Network interface Interfejs sieciowy - + Optional IP address to bind to Opcjonalny adres IP do powiązania - + Max concurrent HTTP announces Maksymalna liczba jednoczesnych komunikatów HTTP - + Enable embedded tracker Włącz wbudowany tracker - + Embedded tracker port Port wbudowanego trackera + + AppController + + + + Invalid directory path + Nieprawidłowa ścieżka katalogu + + + + Directory does not exist + Katalog nie istnieje + + + + Invalid mode, allowed values: %1 + Nieprawidłowy tryb, dozwolone wartości: %1 + + + + cookies must be array + ciasteczka muszą być tablicą + + Application - + Running in portable mode. Auto detected profile folder at: %1 Uruchomiono w trybie przenośnym. Automatycznie wykryty folder profilu w: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Wykryto nadmiarową flagę wiersza poleceń: "%1". Tryb przenośny oznacza względne fastresume. - + Using config directory: %1 Korzystanie z katalogu konfiguracji: %1 - + Torrent name: %1 Nazwa torrenta: %1 - + Torrent size: %1 Rozmiar torrenta: %1 - + Save path: %1 Ścieżka zapisu: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent został pobrany w %1. - + + Thank you for using qBittorrent. Dziękujemy za używanie qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, wysyłanie powiadomienia e-mail - + Add torrent failed Dodanie torrenta nie powiodło się - + Couldn't add torrent '%1', reason: %2. Nie można dodać torrenta '%1', powód: %2. - + The WebUI administrator username is: %1 Nazwa użytkownika administratora interfejsu WWW to: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Hasło administratora interfejsu WWW nie zostało ustawione. Dla tej sesji podano tymczasowe hasło: %1 - + You should set your own password in program preferences. Należy ustawić własne hasło w preferencjach programu. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Interfejs WWW jest wyłączony! Aby go włączyć, edytuj ręcznie plik konfiguracyjny. - + Running external program. Torrent: "%1". Command: `%2` Uruchamianie programu zewnętrznego. Torrent: "%1". Polecenie: `% 2` - + Failed to run external program. Torrent: "%1". Command: `%2` Uruchomienie programu zewnętrznego nie powiodło się. Torrent: "%1". Polecenie: `%2` - + Torrent "%1" has finished downloading Torrent "%1" skończył pobieranie - + WebUI will be started shortly after internal preparations. Please wait... Interfejs WWW zostanie uruchomiony wkrótce po wewnętrznych przygotowaniach. Proszę czekać... - - + + Loading torrents... Ładowanie torrentów... - + E&xit Zak&ończ - + I/O Error i.e: Input/Output Error Błąd we/wy - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Powód: %2 - + Torrent added Dodano torrent - + '%1' was added. e.g: xxx.avi was added. '%1' został dodany. - + Download completed Pobieranie zakończone - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 został uruchomiony. Identyfikator procesu: %2 - + + This is a test email. + To jest e-mail testowy. + + + + Test email + E-mail testowy + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' został pobrany. - + Information Informacje - + To fix the error, you may need to edit the config file manually. Aby naprawić błąd, może być konieczna ręczna edycja pliku konfiguracyjnego. - + To control qBittorrent, access the WebUI at: %1 Aby kontrolować qBittorrent, należy uzyskać dostęp do interfejsu WWW pod adresem: %1 - + Exit Zakończ - + Recursive download confirmation Potwierdzenie pobierania rekurencyjnego - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' zawiera pliki torrent, czy chcesz rozpocząć ich pobieranie? - + Never Nigdy - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekursywne pobieranie pliku .torrent w obrębie torrenta. Torrent źródłowy: "%1". Plik: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Nie udało się ustawić limitu wykorzystania pamięci fizycznej (RAM). Kod błędu: %1. Komunikat o błędzie: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Nie udało się ustawić twardego limitu użycia pamięci fizycznej (RAM). Żądany rozmiar: %1. Twardy limit systemowy: %2. Kod błędu: %3. Komunikat o błędzie: "%4" - + qBittorrent termination initiated Rozpoczęto wyłączanie programu qBittorrent - + qBittorrent is shutting down... qBittorrent wyłącza się... - + Saving torrent progress... Zapisywanie postępu torrenta... - + qBittorrent is now ready to exit qBittorrent jest teraz gotowy do zakończenia @@ -1609,12 +1715,12 @@ Powód: %2 Priorytet: - + Must Not Contain: Nie może zawierać: - + Episode Filter: Filtr odcinków: @@ -1667,263 +1773,263 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi &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ą - + 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 - + Episode number is a mandatory positive value Numer odcinka jest obowiązkową wartością dodatnią - + Rules Reguły - + Rules (legacy) Reguły (przestarzałe) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Nieskończony zakres: <b>1x25-;</b> dopasuje odcinki 25 i wzwyż sezonu pierwszego, a także wszystkie odcinki późniejszych sezonów - + 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 pobierania. - - + + Rule name conflict Konflikt nazw reguł - - + + A rule with this name already exists, please choose another name. Reguła o wybranej nazwie już istnieje. Wybierz inną. - + Are you sure you want to remove the download rule named '%1'? Czy na pewno 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 Potwierdzenie usuwania reguły - + Invalid action Nieprawidłowa czynność - + The list is empty, there is nothing to export. Lista jest pusta, nie ma czego eksportować. - + Export RSS rules Eksportuj reguły RSS - + I/O Error Błąd we/wy - + Failed to create the destination file. Reason: %1 Nie udało się utworzyć pliku docelowego. Powód: %1 - + Import RSS rules Importuj reguły RSS - + Failed to import the selected rules file. Reason: %1 Nie udało się zaimportować wybranego pliku reguł. Powód: %1 - + Add new rule... Dodaj nową regułę... - + Delete rule Usuń regułę - + Rename rule... Zmień nazwę reguły... - + Delete selected rules Usuń wybrane reguły - + Clear downloaded episodes... Wyczyść pobrane odcinki... - + Rule renaming Zmiana nazwy reguły - + Please type the new rule name Podaj nową nazwę reguły - + Clear downloaded episodes Wyczyść pobrane odcinki - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Czy na pewno chcesz wyczyścić listę pobranych odcinków dla wybranej reguły? - + Regex mode: use Perl-compatible regular expressions Tryb regex: używaj wyrażeń regularnych zgodnych z Perl - - + + Position %1: %2 Pozycja %1: %2 - + Wildcard mode: you can use Tryb wieloznaczny: można używać - - + + Import error Błąd podczas importowania - + Failed to read the file. %1 Nie udało się odczytać pliku. %1 - + ? to match any single character ? do dopasowania dowolnego pojedynczego znaku - + * to match zero or more of any characters * do dopasowania zera lub więcej dowolnych znaków - + Whitespaces count as AND operators (all words, any order) Odstępy traktowane są jako operatory AND (wszystkie słowa, dowolna kolejność) - + | is used as OR operator | jest użyty jako operator OR - + If word order is important use * instead of whitespace. Jeśli kolejność słów jest ważna, użyj * zamiast odstępu. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Wyrażenie z pustą %1 klauzulą (np. %2) - + will match all articles. będzie pasować do wszystkich artykułów. - + will exclude all articles. wykluczy wszystkie artykuły. @@ -1965,7 +2071,7 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nie możma utworzyć folderu wznawiania torrenta: "%1" @@ -1975,28 +2081,38 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Nie można przetworzyć danych wznowienia - - + + Cannot parse torrent info: %1 Nie można przetworzyć informacji torrenta: %1 - + Cannot parse torrent info: invalid format Nie można przetworzyć informacji torrenta: nieprawidłowy format - + Mismatching info-hash detected in resume data Wykryto niezgodny info hash w danych wznawiania - + + Corrupted resume data: %1 + Uszkodzone dane wznowienia: %1 + + + + save_path is invalid + Ścieżka zapisu jest nieprawidłowa + + + Couldn't save torrent metadata to '%1'. Error: %2. Nie można zapisać metdanych torrenta w '%1'. Błąd: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Nie można zapisać danych wznawiania torrenta w '%1'. Błąd: %2. @@ -2007,16 +2123,17 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi + Cannot parse resume data: %1 Nie można przetworzyć danych wznowienia: %1 - + Resume data is invalid: neither metadata nor info-hash was found Dane wznawiania są nieprawidłowe: nie znaleziono metadanych ani info hashu - + Couldn't save data to '%1'. Error: %2 Nie można zapisać danych w '%1'. Błąd: %2 @@ -2024,38 +2141,60 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi BitTorrent::DBResumeDataStorage - + Not found. Nie znaleziono. - + Couldn't load resume data of torrent '%1'. Error: %2 Nie można wczytać danych wznawiania torrenta '%1'. Błąd: %2 - - + + Database is corrupted. Baza danych jest uszkodzona. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Nie można włączyć trybu dziennikowania zapisu z wyprzedzeniem (WAL). Błąd: %1. - + Couldn't obtain query result. Nie można uzyskać wyniku zapytania. - + WAL mode is probably unsupported due to filesystem limitations. Tryb WAL prawdopodobnie nie jest obsługiwany ze względu na ograniczenia systemu plików. - + + + Cannot parse resume data: %1 + Nie można przetworzyć danych wznowienia: %1 + + + + + Cannot parse torrent info: %1 + Nie można przetworzyć informacji torrenta: %1 + + + + Corrupted resume data: %1 + Uszkodzone dane wznowienia: %1 + + + + save_path is invalid + Ścieżka zapisu jest nieprawidłowa + + + Couldn't begin transaction. Error: %1 Nie można rozpocząć transakcji. Błąd: %1 @@ -2063,22 +2202,22 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Nie można zapisać metdanych torrenta. Błąd: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nie można przechować danych wznawiania torrenta '%1'. Błąd: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nie można usunąć danych wznawiania torrenta '%1'. Błąd: %2 - + Couldn't store torrents queue positions. Error: %1 Nie można przechować pozycji w kolejce torrentów. Błąd: %1 @@ -2086,457 +2225,503 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Obsługa rozproszonej tablicy mieszającej (DHT): %1 - - - - - - - - - + + + + + + + + + ON WŁ. - - - - - - - - - + + + + + + + + + OFF WYŁ. - - + + Local Peer Discovery support: %1 Obsługa wykrywania partnerów w sieci lokalnej: %1 - + Restart is required to toggle Peer Exchange (PeX) support Ponowne uruchomienie jest wymagane, aby przełączyć obsługę wymiany partnerów (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Nie udało się wznowić torrenta. Torrent: "%1". Powód: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Nie udało się wznowić torrenta: wykryto niespójny identyfikator torrenta. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Wykryto niespójne dane: brak kategorii w pliku konfiguracyjnym. Kategoria zostanie przywrócona, ale jej ustawienia zostaną zresetowane do wartości domyślnych. Torrent: "%1". Kategoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Wykryto niespójne dane: nieprawidłowa kategoria. Torrent: "%1". Kategoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Wykryto niezgodność między ścieżkami zapisu odzyskanej kategorii i bieżącą ścieżką zapisu torrenta. Torrent jest teraz przełączony w tryb ręczny. Torrent: "%1". Kategoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Wykryto niespójne dane: w pliku konfiguracyjnym brakuje znacznika. Znacznik zostanie odzyskany. Torrent: "%1". Znacznik: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Wykryto niespójne dane: nieprawidłowy znacznik. Torrent: "%1". Znacznik: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Wykryto zdarzenie wybudzenia systemu. Rozgłaszam wszystkim trackerom... - + Peer ID: "%1" Identyfikator partnera: "%1" - + HTTP User-Agent: "%1" Agent użytkownika HTTP: "%1" - + Peer Exchange (PeX) support: %1 Obsługa wymiany partnerów (PeX): %1 - - + + Anonymous mode: %1 Tryb anonimowy: %1 - - + + Encryption support: %1 Obsługa szyfrowania: %1 - - + + FORCED WYMUSZONE - + Could not find GUID of network interface. Interface: "%1" Nie mozna uzyskać GUID interfejsu sieciowego. Interfejs: "%1" - + Trying to listen on the following list of IP addresses: "%1" Próbuję nasłuchiwać na poniższej liście adresów IP: "%1" - + Torrent reached the share ratio limit. Torrent osiągnął limit współczynnika udziału. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent usunięto. - - - - - - Removed torrent and deleted its content. - Usunięto torrent i skasowano jego zawartość. - - - - - - Torrent paused. - Torrent wstrzymano. - - - - - + Super seeding enabled. Super-seedowanie włączone. - + Torrent reached the seeding time limit. Torrent osiągnął limit czasu seedowania. - + Torrent reached the inactive seeding time limit. Torrent osiągnął limit nieaktywnego czasu seedowania. - + Failed to load torrent. Reason: "%1" Nie udało się załadować torrenta. Powód: "%1" - + I2P error. Message: "%1". Błąd I2P. Komunikat: "%1". - + UPnP/NAT-PMP support: ON Obsługa UPnP/NAT-PMP: WŁ - + + Saving resume data completed. + Zapisywanie danych wznowienia zostało zakończone. + + + + BitTorrent session successfully finished. + Sesja BitTorrent zakończona pomyślnie. + + + + Session shutdown timed out. + Upłynął limit czasu zamknięcia sesji. + + + + Removing torrent. + Usuwanie torrenta. + + + + Removing torrent and deleting its content. + Usuwanie torrenta i kasowanie jego zawartości. + + + + Torrent stopped. + Torrent zatrzymano. + + + + Torrent content removed. Torrent: "%1" + Usunięto zawartość torrenta. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Nie udało się usunąć zawartości torrenta. Torrent: "%1". Błąd: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent usunięto. Torrent: "%1" + + + + Merging of trackers is disabled + Scalanie trackerów jest wyłączone + + + + Trackers cannot be merged because it is a private torrent + Nie można scalić trackerów, ponieważ jest to prywatny torrent + + + + Trackers are merged from new source + Trackery zostały scalone z nowego źródła + + + UPnP/NAT-PMP support: OFF Obsługa UPnP/NAT-PMP: WYŁ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Nie udało się wyeksportować torrenta. Torrent: "%1". Cel: "%2". Powód: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Przerwano zapisywanie danych wznowienia. Liczba zaległych torrentów: %1 - + The configured network address is invalid. Address: "%1" Skonfigurowany adres sieciowy jest nieprawidłowy. Adres: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Nie udało się znaleźć skonfigurowanego adresu sieciowego do nasłuchu. Adres: "%1" - + The configured network interface is invalid. Interface: "%1" Skonfigurowany interfejs sieciowy jest nieprawidłowy. Interfejs: "%1" - + + Tracker list updated + Zaktualizowano listę trackerów + + + + Failed to update tracker list. Reason: "%1" + Nie udało się zaktualizować listy trackerów. Powód: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Odrzucono nieprawidłowy adres IP podczas stosowania listy zbanowanych adresów IP. Adres IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Dodano tracker do torrenta. Torrent: "%1". Tracker: "%2". - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Usunięto tracker z torrenta. Torrent: "%1". Tracker: "%2". - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Dodano adres URL seeda do torrenta. Torrent: "%1". URL: "%2". - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Usunięto adres URL seeda z torrenta. Torrent: "%1". URL: "%2". - - Torrent paused. Torrent: "%1" - Torrent wstrzymano. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Nie udało się usunąć pliku partfile. Torrent: "%1". Powód: "%2". - + Torrent resumed. Torrent: "%1" Torrent wznowiono. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrenta pobieranie zakończyło się. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Anulowano przenoszenie torrenta. Torrent: "%1". Źródło: "%2". Cel: "%3" - + + Duplicate torrent + Duplikat torrenta + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Wykryto próbę dodania duplikatu torrenta. Istniejący torrent: "%1". Infohash torrenta: %2. Wynik: %3 + + + + Torrent stopped. Torrent: "%1" + Torrent zatrzymano. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Nie udało się zakolejkować przenoszenia torrenta. Torrent: "%1". Źródło: "%2". Cel: "%3". Powód: torrent obecnie przenosi się do celu - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Nie udało się zakolejkować przenoszenia torrenta. Torrent: "%1". Źródło: "%2". Cel: "%3". Powód: obie ścieżki prowadzą do tej samej lokalizacji - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Przenoszenie zakolejkowanego torrenta. Torrent: "%1". Źródło: "%2". Cel: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Rozpoczęcie przenoszenia torrenta. Torrent: "%1". Cel: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Nie udało się zapisać konfiguracji kategorii. Plik: "%1" Błąd: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nie udało się przetworzyć konfiguracji kategorii. Plik: "%1". Błąd: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Pomyślnie przetworzono plik filtra IP. Liczba zastosowanych reguł: %1 - + Failed to parse the IP filter file Nie udało się przetworzyć pliku filtra IP - + Restored torrent. Torrent: "%1" Przywrócono torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Dodano nowy torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent wadliwy. Torrent: "%1". Błąd: "%2" - - - Removed torrent. Torrent: "%1" - Usunięto torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Usunięto torrent i skasowano jego zawartość. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentowi brakuje parametrów SSL. Torrent: "%1". Komunikat: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alert błędu pliku. Torrent: "%1". Plik: "%2". Powód: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Mapowanie portu UPnP/NAT-PMP nie powiodło się. Komunikat: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Mapowanie portu UPnP/NAT-PMP powiodło się. Komunikat: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtr IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). port filtrowany (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). port uprzywilejowany (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Połączenie z adresem URL seeda nie powiodło się. Torrent: "%1". URL: "%2". Błąd: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" Sesja BitTorrent napotkała poważny błąd. Powód: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Błąd proxy SOCKS5. Adres: %1. Komunikat: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 ograniczenia trybu mieszanego - + Failed to load Categories. %1 Nie udało się załadować kategorii. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Nie udało się załadować konfiguracji kategorii. Plik: "%1". Błąd: "Nieprawidłowy format danych" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Usunięto torrent, ale nie udało się skasować jego zawartości i/lub pliku częściowego. Torrent: "%1". Błąd: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 jest wyłączone - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 jest wyłączone - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Wyszukanie DNS adresu URL seeda nie powiodło się. Torrent: "%1". URL: "%2". Błąd: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Odebrano komunikat o błędzie URL seeda. Torrent: "%1". URL: "%2". Komunikat: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Pomyślne nasłuchiwanie IP. Adres IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Nie udało się nasłuchiwać IP. Adres IP: "%1". Port: "%2/%3". Powód: "%4" - + Detected external IP. IP: "%1" Wykryto zewnętrzny IP. Adres IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Błąd: wewnętrzna kolejka alertów jest pełna, a alerty są odrzucane, może wystąpić spadek wydajności. Porzucony typ alertu: "%1". Komunikat: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Przeniesiono torrent pomyślnie. Torrent: "%1". Cel: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Nie udało się przenieść torrenta. Torrent: "%1". Źródło: "%2". Cel: "%3". Powód "%4" @@ -2546,19 +2731,19 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Failed to start seeding. - + Nie udało się rozpocząć seedowania. BitTorrent::TorrentCreator - + Operation aborted Operacja przerwana - - + + Create new torrent file failed. Reason: %1. Utworzenie nowego pliku torrent nie powiodło się. Powód: %1. @@ -2566,67 +2751,67 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Nie powiodło się dodanie partnera "%1" do torrenta "%2". Powód: %3 - + Peer "%1" is added to torrent "%2" Partner "%1" został dodany do torrenta "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Wykryto nieoczekiwane dane. Torrent: %1. Dane: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nie udało się zapisać do pliku. Powód: "%1". Torrent jest teraz w trybie "tylko przesyłanie". - + Download first and last piece first: %1, torrent: '%2' Pobierz najpierw część pierwszą i ostatnią: %1, torrent: '%2' - + On Wł. - + Off Wył. - + Failed to reload torrent. Torrent: %1. Reason: %2 Nie udało się ponownie załadować torrenta. Torrent: %1. Powód: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Nie udało się wygenerować danych wznowienia. Torrent: "%1". Powód: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Nie udało się przywrócić torrenta. Pliki zostały prawdopodobnie przeniesione lub pamięć jest niedostępna. Torrent: "%1". Powód: "%2" - + Missing metadata Brakujące metadane - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Zmiana nazwy pliku nie powiodła się. Torrent: "%1", plik: "%2", powód: "%3" - + Performance alert: %1. More info: %2 Alert wydajności: %1. Więcej informacji: %2 @@ -2647,189 +2832,189 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametr '%1' musi odpowiadać składni '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametr '%1' musi odpowiadać składni '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Oczekiwano liczbę całkowitą w zmiennej środowiskowej '%1', ale otrzymano '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametr '%1' musi odpowiadać składni '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Oczekiwano %1 w zmiennej środowiskowej '%2', ale otrzymano '%3' - - + + %1 must specify a valid port (1 to 65535). %1 musi określić prawidłowy port (1 do 65535). - + Usage: Użycie: - + [options] [(<filename> | <url>)...] [opcje] [(<filename> | <url>)...] - + Options: Opcje: - + Display program version and exit Wyświetl wersję programu i zamknij - + Display this help message and exit Wyświetl tę wiadomość pomocy i zamknij - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametr '%1' musi odpowiadać składni '%1=%2' + + + Confirm the legal notice Potwierdź informację prawną - - + + port port - + Change the WebUI port Zmień port interfejsu WWW - + Change the torrenting port Zmień port torrentowy - + Disable splash screen Wyłączenie ekranu startowego - + Run in daemon-mode (background) Uruchom w trybie demona (w tle) - + dir Use appropriate short form or abbreviation of "directory" katalog - + Store configuration files in <dir> Przechowuj pliki konfiguracyjne w <dir> - - + + name nazwa - + Store configuration files in directories qBittorrent_<name> Przechowuj pliki konfiguracyjne w katalogach qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Włam się do plików fastresume libtorrent i uczyń ścieżki plików względnymi do katalogu profilu - + files or URLs pliki albo adresy URL - + Download the torrents passed by the user Pobierz pliki torrent podane przez użytkownika - + Options when adding new torrents: Opcje podczas dodawania nowych torrentów: - + path ścieżka - + Torrent save path Ścieżka zapisu torrenta - - Add torrents as started or paused - Dodaj torrenty jako rozpoczęte lub wstrzymane + + Add torrents as running or stopped + Dodaj torrenty jako uruchomione lub zatrzymane - + Skip hash check Pomiń sprawdzanie danych - + Assign torrents to category. If the category doesn't exist, it will be created. Przypisz torrenty do kategorii. Jeśli kategoria nie istnieje, zostanie utworzona. - + Download files in sequential order Pobierz pliki w kolejności sekwencyjnej - + Download first and last pieces first Pobierz najpierw część pierwszą i ostatnią - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Określ, czy otwierać okno "Dodaj nowy plik torrent" podczas dodawnia torrenta. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Wartości opcji mogą być dostarczane za pośrednictwem zmiennych środowiskowych. Dla opcji nazwanej 'parameter-name', nazwa zmiennej środowiskowej to 'QBT_PARAMETER_NAME' (w trybie wielkich liter '-' zastąpione jest '_'). Aby przekazać wartości flagi, ustaw zmienną na '1' albo 'TRUE'. Na przykład, aby wyłączyć ekran powitalny: - + Command line parameters take precedence over environment variables Parametry linii poleceń mają pierwszeństwo przed zmiennymi środowiskowymi - + Help Pomoc @@ -2881,13 +3066,13 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi - Resume torrents - Wznów torrenty + Start torrents + Uruchom torrenty - Pause torrents - Wstrzymaj torrenty + Stop torrents + Zatrzymaj torrenty @@ -2898,15 +3083,20 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi ColorWidget - + Edit... Edytuj... - + Reset Resetuj + + + System + Systemowy + CookiesDialog @@ -2947,12 +3137,12 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi CustomThemeSource - + Failed to load custom theme style sheet. %1 Nie udało się załadować niestandardowego arkusza stylów motywu. %1 - + Failed to load custom theme colors. %1 Nie udało się załadować niestandardowych kolorów motywu. %1 @@ -2960,7 +3150,7 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi DefaultThemeSource - + Failed to load default theme colors. %1 Nie udało się załadować domyślnych kolorów motywu. %1 @@ -2979,23 +3169,23 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi - Also permanently delete the files - Również trwale usuń pliki + Also remove the content files + Usuń również pliki z zawartością - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Czy na pewno chcesz usunąć '%1' z listy transferów? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Czy na pewno usunąć te torrenty (w sumie: %1) z listy transferów? - + Remove Usuń @@ -3008,12 +3198,12 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Pobierz z adresów URL - + Add torrent links Dodaj odnośniki do plików torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Jeden odnośnik w wierszu (dozwolone są odnośniki HTTP, magnet oraz info hashe) @@ -3023,12 +3213,12 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Pobierz - + No URL entered Nie wprowadzono adresu URL - + Please type at least one URL. Proszę podać przynajmniej jeden adres URL. @@ -3187,25 +3377,48 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Błąd przetwarzania: plik filtra nie jest prawidłowym plikiem PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Format wzoru + + + + Plain text + Zwykły tekst + + + + Wildcards + Symbole wieloznaczne + + + + Regular expression + Wyrażenie regularne + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Pobieranie torrenta... Źródło: "%1" - - Trackers cannot be merged because it is a private torrent - Nie można scalić trackerów, ponieważ jest to prywatny torrent - - - + Torrent is already present Torrent jest już obecny - + + Trackers cannot be merged because it is a private torrent. + Nie można scalić trackerów, ponieważ jest to prywatny torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' jest już na liście transferów. Czy chcesz scalić trackery z nowego źródła? @@ -3213,38 +3426,38 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi 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 - + Database corrupted: no data section found. Uszkodzona baza danych: nie odnaleziono sekcji danych. @@ -3252,17 +3465,17 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Rozmiar żądania HTTP przekracza ograniczenie, zamykam gniazdo. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Zła metoda żądania HTTP, zamykanie gniazda. IP: %1. Metoda: "%2" - + Bad Http request, closing socket. IP: %1 Złe żądanie HTTP, zamykam gniazdo. IP: %1 @@ -3303,26 +3516,60 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi IconWidget - + Browse... Przeglądaj... - + Reset Resetuj - + Select icon Wybierz ikonę - + Supported image files Obsługiwane pliki obrazów + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Zarządzanie energią znalazło odpowiedni interfejs D-Bus. Interfejs: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Błąd zarządzania energią. Nie znaleziono odpowiedniego interfejsu D-Bus. + + + + + + Power management error. Action: %1. Error: %2 + Błąd zarządzania energią. Czynność: %1. Błąd: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Nieoczekiwany błąd zarządzania energią. Stan: %1. Błąd: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 został zablokowany. Powód: %2. - + %1 was banned 0.0.0.0 was banned %1 został zbanowany @@ -3369,60 +3616,60 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 to nieznany parametr linii poleceń. - - + + %1 must be the single command line parameter. %1 musi być pojedynczym parametrem linii poleceń. - + Run application with -h option to read about command line parameters. Uruchom aplikację z opcją -h, aby przeczytać o parametrach linii komend. - + Bad command line Niewłaściwy wiersz poleceń - + Bad command line: Niewłaściwy wiersz poleceń: - + An unrecoverable error occurred. Wystąpił nieodwracalny błąd. + - qBittorrent has encountered an unrecoverable error. qBittorrent napotkał nieodwracalny błąd. - + You cannot use %1: qBittorrent is already running. Nie możesz użyć %1: qBittorrent już działa. - + Another qBittorrent instance is already running. Inna instancja qBittorrent już działa. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Znaleziono nieoczekiwaną instancję qBittorrent. Wychodzę z tej instancji. Bieżący identyfikator procesu: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Błąd podczas demonizowania. Powód: "%1". Kod błędu: %2. @@ -3435,609 +3682,681 @@ Obsługuje formaty: S01E01, 1x1, 2017.12.31 oraz 31.12.2017 (Formaty daty równi &Edycja - + &Tools &Narzędzia - + &File P&lik - + &Help &Pomoc - + On Downloads &Done Po ukończeniu &pobierania - + &View &Widok - + &Options... &Opcje... - - &Resume - W&znów - - - + &Remove &Usuń - + Torrent &Creator Kreator plików torre&nt - - + + 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 - + Status &Bar Pa&sek stanu - + Filters Sidebar Pasek boczny filtrów - + 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 - + Do&nate! W&spomóż! - + + Sh&utdown System + Zamknij syst&em + + + &Do nothing &Nic nie rób - + Close Window Zamknij okno - - R&esume All - Wznów wszystki&e - - - + Manage Cookies... Zarządzaj ciasteczkami... - + Manage stored network cookies Zarządzaj przechowywanymi ciasteczkami sieciowymi - + Normal Messages Komunikaty zwykłe - + Information Messages Komunikaty informacyjne - + Warning Messages Komunikaty ostrzegawcze - + Critical Messages Komunikaty krytyczne - + &Log &Dziennik - + + Sta&rt + U&ruchom + + + + Sto&p + Za&trzymaj + + + + R&esume Session + &Wznów sesję + + + + Pau&se Session + W&strzymaj sesję + + + Set Global Speed Limits... Ustaw ogólne limity prędkości... - + Bottom of Queue Koniec kolejki - + Move to the bottom of the queue Przenieś na koniec kolejki - + Top of Queue Początek kolejki - + Move to the top of the queue Przenieś na początek kolejki - + Move Down Queue Przenieś w dół kolejki - + Move down in the queue Przejdź w dół w kolejce - + Move Up Queue Przenieś w górę kolejki - + Move up in the queue Przejdź w górę w kolejce - + &Exit qBittorrent Zakończ &qBittorrent - + &Suspend System Wst&rzymaj system - + &Hibernate System &Hibernuj system - - S&hutdown System - Zamknij syst&em - - - + &Statistics S&tatystyki - + Check for Updates Sprawdź aktualizacje - + Check for Program Updates Sprawdź aktualizacje programu - + &About &O programie - - &Pause - &Wstrzymaj - - - - P&ause All - Ws&trzymaj wszystkie - - - + &Add Torrent File... &Dodaj plik torrent... - + Open Otwórz - + E&xit Zak&ończ - + Open URL Otwórz URL - + &Documentation &Dokumentacja - + Lock Zablokuj - - - + + + Show Pokaż - + Check for program updates Sprawdź aktualizacje programu - + Add Torrent &Link... D&odaj odnośnik torrenta... - + If you like qBittorrent, please donate! Jeśli lubisz qBittorrent, przekaż pieniądze! - - + + Execution Log Dziennik programu - + Clear the password Wyczyść hasło - + &Set Password &Ustaw hasło - + Preferences Preferencje - + &Clear Password Wyczyść ha&sło - + Transfers Transfery - - + + qBittorrent is minimized to tray qBittorrent jest zminimalizowany do zasobnika - - - + + + This behavior can be changed in the settings. You won't be reminded again. To zachowanie można zmienić w ustawieniach. Nie będziesz już otrzymywać przypomnień. - + 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: - + Are you sure you want to clear the password? Czy jesteś pewien, że chcesz wyczyścić hasło? - + Use regular expressions Użyj wyrażeń regularnych - + + + Search Engine + Wyszukiwarka + + + + Search has failed + Wyszukiwanie nie powiodło się + + + + Search has finished + Wyszukiwanie zakończone + + + Search Szukaj - + Transfers (%1) Transfery (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent został zaktualizowany i konieczne jest jego ponowne uruchomienie. - + qBittorrent is closed to tray qBittorrent jest zamknięty do zasobnika - + Some files are currently transferring. Niektóre pliki są obecnie przenoszone. - + Are you sure you want to quit qBittorrent? Czy na pewno chcesz zamknąć qBittorrent? - + &No &Nie - + &Yes &Tak - + &Always Yes &Zawsze tak - + Options saved. Opcje zapisane. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [WSTRZYMANO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [P: %1, W: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Nie można pobrać instalatora Pythona. Błąd: %1. +Należy zainstalować go ręcznie. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Zmiana nazwy instalatora Pythona nie powiodła się. Źródło: "%1". Miejsce docelowe: "%2". + + + + Python installation success. + Instalacja Pythona zakończona sukcesem. + + + + Exit code: %1. + Kod wyjścia: %1. + + + + Reason: installer crashed. + Powód: instalator uległ awarii. + + + + Python installation failed. + Instalacja Pythona nie powiodła się. + + + + Launching Python installer. File: "%1". + Uruchamianie instalatora Pythona. Plik: "%1". + + + + Missing Python Runtime Nie znaleziono środowiska wykonawczego Pythona - + qBittorrent Update Available Dostępna aktualizacja qBittorrenta - + 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. - - + + Old Python Runtime Stare środowisko wykonawcze Pythona - + A new version is available. Dostępna jest nowa wersja. - + Do you want to download %1? Czy chcesz pobrać %1? - + Open changelog... Otwórz dziennik zmian... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Twoja wersja Pythona (%1) jest przestarzała. Minimalny wymóg: %2. Czy chcesz teraz zainstalować nowszą wersję? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Twoja wersja Pythona (%1) jest przestarzała. Uaktualnij ją do najnowszej wersji, aby wyszukiwarki mogły działać. Minimalny wymóg: %2. - + + Paused + Wstrzymano + + + Checking for Updates... Sprawdzanie aktualizacji... - + Already checking for program updates in the background Trwa sprawdzanie aktualizacji w tle - + + Python installation in progress... + Instalacja Pythona w toku... + + + + Failed to open Python installer. File: "%1". + Nie udało się otworzyć instalatora Pythona. Plik: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Nieudane sprawdzenie skrótu MD5 instalatora Pythona. Plik: "%1". Wynik skrótu: "%2". Oczekiwany skrót: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Nieudane sprawdzenie skrótu SHA3-512 instalatora Pythona. Plik: "%1". Wynik skrótu: "%2". Oczekiwany skrót: "%3". + + + Download error Błąd pobierania - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Nie można pobrać instalatora Pythona z powodu %1 . -Należy zainstalować go ręcznie. - - - - + + Invalid password Nieprawidłowe hasło - + Filter torrents... Filtruj torrenty... - + Filter by: Filtruj według: - + The password must be at least 3 characters long Hasło musi mieć co najmniej 3 znaki - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Otwórz pliki torrent - + Torrent Files Pliki .torrent @@ -4232,7 +4551,12 @@ Należy zainstalować go ręcznie. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Błąd SSL, adres URL: "%1", błędy: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorowanie błędu SSL, adres URL: "%1", błędy: "%2" @@ -5526,47 +5850,47 @@ Należy zainstalować go ręcznie. Net::Smtp - + Connection failed, unrecognized reply: %1 Połączenie nie powiodło się, nierozpoznana odpowiedź: %1 - + Authentication failed, msg: %1 Uwierzytelnianie nie powiodło się, kom.: %1 - + <mail from> was rejected by server, msg: %1 <mail from> została odrzucona przez serwer, kom.: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> został odrzucony przez serwer, kom.: %1 - + <data> was rejected by server, msg: %1 <data> zostały odrzucone przez serwer, kom.: %1 - + Message was rejected by the server, error: %1 Wiadomość została odrzucona przez serwer, błąd: %1 - + Both EHLO and HELO failed, msg: %1 EHLO i HELO nie powiodły się, kom.: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Serwer SMTP nie wydaje się obsługiwać żadnych trybów uwierzytelniających, które obsługujemy [CRAM-MD5|PLAIN|LOGIN], pomijam uwierzytelnianie, wiedząc, że prawdopodobnie się nie powiedzie... Tryby uwierzytelniania serwera: %1 - + Email Notification Error: %1 Błąd powiadomienia e-mail: %1 @@ -5604,299 +5928,283 @@ Należy zainstalować go ręcznie. BitTorrent - + RSS RSS - - Web UI - Interfejs WWW - - - + Advanced Zaawansowane - + Customize UI Theme... Dostosuj motyw interfejsu użytkownika... - + Transfer List Lista transferów - + Confirm when deleting torrents Potwierdzaj usuwanie torrentów - - Shows a confirmation dialog upon pausing/resuming all the torrents - Pokazuje okno dialogowe potwierdzenia po wstrzymaniu/wznawianiu wszystkich torrentów - - - - Confirm "Pause/Resume all" actions - Potwierdź czynności "Wstrzymaj/Wznów wszystkie". - - - + Use alternating row colors In table elements, every other row will have a grey background. Użyj naprzemiennego kolorowania wierszy - + Hide zero and infinity values Ukryj zerowe i nieskończone wartości - + Always Zawsze - - Paused torrents only - Tylko wstrzymane torrenty - - - + Action on double-click Czynność podwójnego kliknięcia - + Downloading torrents: Pobierane torrenty: - - - Start / Stop Torrent - Uruchom / Zatrzymaj pobieranie - - - - + + Open destination folder Otwórz folder docelowy - - + + No action Brak czynności - + Completed torrents: Ukończone torrenty: - + Auto hide zero status filters Automatyczne ukrywanie filtrów stanu zerowego - + Desktop Pulpit - + Start qBittorrent on Windows start up Uruchamiaj qBittorrent ze startem systemu Windows - + Show splash screen on start up Pokazuj ekran startowy podczas uruchamiania - + Confirmation on exit when torrents are active Potwierdzenie wyjścia, gdy torrenty są aktywne - + Confirmation on auto-exit when downloads finish Potwierdzenie automatycznego wyjścia, gdy pobierania zostaną ukończone - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Aby ustawić qBittorrent jako program domyślny dla plików .torrent i/lub łączy magnet,<br/>możesz skorzystać z okna <span style=" font-weight:600;">Programy domyślne</span> w <span style=" font-weight:600;">Panelu sterowania</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + Pokaż wolne miejsce na dysku na pasku stanu + + + Torrent content layout: Układ zawartości torrenta: - + Original Pierwotny - + Create subfolder Utwórz podfolder - + Don't create subfolder Nie twórz podfolderu - + The torrent will be added to the top of the download queue Torrent zostanie dodany na początek kolejki pobierania - + Add to top of queue The torrent will be added to the top of the download queue Dodaj na początek kolejki - + When duplicate torrent is being added Gdy dodawany jest zduplikowany torrent - + Merge trackers to existing torrent Scal trackery z istniejącym torrentem - + Keep unselected files in ".unwanted" folder Zachowaj niewybrane pliki w folderze ".unwanted" - + Add... Dodaj... - + Options.. Opcje... - + Remove Usuń - + Email notification &upon download completion Wyślij e-mail po &ukończeniu pobierania - + + Send test email + Wyślij e-mail testowy + + + + Run on torrent added: + Uruchom po dodaniu torrenta: + + + + Run on torrent finished: + Uruchom po ukończeniu torrenta: + + + Peer connection protocol: Protokół połączenia z partnerami: - + Any Każdy - + I2P (experimental) I2P (eksperymentalne) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Jeśli &quot;tryb mieszany&quot; jest włączony, torrenty I2P mogą również uzyskiwać partnerzy z innych źródeł niż tracker i łączyć się ze zwykłymi adresami IP, nie zapewniając żadnej anonimizacji. Może to być przydatne, jeśli użytkownik nie jest zainteresowany anonimizacją I2P, ale nadal chce mieć możliwość łączenia się z partnerami I2P.</p></body></html> - - - + Mixed mode Tryb mieszany - - Some options are incompatible with the chosen proxy type! - Niektóre opcje są niezgodne z wybranym typem proxy! - - - + If checked, hostname lookups are done via the proxy Jeśli zaznaczono, wyszukiwanie nazw hostów odbywa się za pośrednictwem proxy - + Perform hostname lookup via proxy Wykonaj wyszukiwanie nazwy hosta przez serwer proxy - + Use proxy for BitTorrent purposes Użyj proxy do celów BitTorrenta - + RSS feeds will use proxy Kanały RSS będą korzystać z proxy - + Use proxy for RSS purposes Użyj proxy do celów RSS - + Search engine, software updates or anything else will use proxy Wyszukiwarka, aktualizacje oprogramowania lub cokolwiek innego będzie używać proxy - + Use proxy for general purposes Użyj proxy do celów ogólnych - + IP Fi&ltering Filtrowa&nie IP - + Schedule &the use of alternative rate limits &Harmonogram użycia alternatywnych limitów prędkości - + From: From start time Od: - + To: To end time Do: - + Find peers on the DHT network Znajdź partnerów w sieci DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Wymagaj szyfrowania: łącz się tylko z partnerami z szyfrowaniem protokołu Wyłącz szyfrowanie: łącz się tylko z partnerami bez szyfrowania protokołu - + Allow encryption Zezwalaj na szyfrowanie - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Więcej informacji</a>) - + Maximum active checking torrents: Maksimum aktywnego sprawdzania torrentów: - + &Torrent Queueing K&olejkowanie torrentów - + When total seeding time reaches Gdy całkowity czas seedowania osiągnie - + When inactive seeding time reaches Gdy nieaktywny czas seedowania osiągnie - - A&utomatically add these trackers to new downloads: - A&utomatycznie dodaj te trackery do nowych pobierań: - - - + RSS Reader Czytnik RSS - + Enable fetching RSS feeds Włącz pobieranie kanałów RSS - + Feeds refresh interval: Częstotliwość odświeżania kanałów: - + Same host request delay: - + Opóźnienie żądania tego samego hosta: - + Maximum number of articles per feed: Maksymalna liczba artykułów na kanał: - - - + + + min minutes min - + Seeding Limits Limity seedowania - - Pause torrent - Wstrzymaj torrent - - - + Remove torrent Usuń torrent - + Remove torrent and its files Usuń torrent i jego pliki - + Enable super seeding for torrent Włącz super-seedowanie dla torrenta - + When ratio reaches Gdy współczynnik udziału osiągnie - + + Some functions are unavailable with the chosen proxy type! + Niektóre funkcje są niedostępne przy wybranym typie serwera proxy! + + + + Note: The password is saved unencrypted + Uwaga: hasło jest zapisywane w postaci niezaszyfrowanej + + + + Stop torrent + Zatrzymaj torrent + + + + A&utomatically append these trackers to new downloads: + Auto&matycznie dodawaj te trackery do nowych pobrań: + + + + Automatically append trackers from URL to new downloads: + Automatycznie dodawaj trackery z adresu URL do nowych pobrań: + + + + URL: + Adres URL: + + + + Fetched trackers + Pobrane trackery + + + + Search UI + Interfejs wyszukiwania + + + + Store opened tabs + Przechowuj otwarte karty + + + + Also store search results + Przechowuj również wyniki wyszukiwania + + + + History length + Długość historii + + + RSS Torrent Auto Downloader Automatyczne pobieranie torrentów RSS - + Enable auto downloading of RSS torrents Włącz automatyczne pobieranie torrentów RSS - + Edit auto downloading rules... Edytuj reguły automatycznego pobierania... - + RSS Smart Episode Filter Inteligentny filtr odcinków RSS - + Download REPACK/PROPER episodes Pobierz odcinki REPACK/PROPER - + Filters: Filtry: - + Web User Interface (Remote control) Interfejs WWW (zdalne zarządzanie) - + IP address: Adres IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Ustal adres IPv4 albo IPv6. Możesz ustawić 0.0.0.0 dla adresu IPv4, "::" dla adresu IPv6, albo "*" dla zarówno IPv4 oraz IPv6. - + Ban client after consecutive failures: Zbanuj klienta po kolejnych niepowodzeniach: - + Never Nigdy - + ban for: ban na: - + Session timeout: Limit czasu sesji: - + Disabled Wyłączone - - Enable cookie Secure flag (requires HTTPS) - Włącz flagę bezpieczeństwa ciasteczka (wymaga HTTPS) - - - + Server domains: Domeny serwera: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ należy wpisać nazwy domen używane przez serwer interfejsu WWW. Użyj ';' do rozdzielania wielu wpisów. Można użyć wieloznacznika '*'. - + &Use HTTPS instead of HTTP &Używaj HTTPS zamiast HTTP - + Bypass authentication for clients on localhost Pomiń uwierzytelnianie dla klientów lokalnego hosta - + Bypass authentication for clients in whitelisted IP subnets Pomiń uwierzytelnianie dla klientów w podsieciach IP z białej listy - + IP subnet whitelist... Biała lista podsieci IP... - + + Use alternative WebUI + Używaj alternatywnego interfejsu WWW + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Określ adresy IP zwrotnego proxy (lub podsieci, np. 0.0.0.0/24), aby używać przekazywanego adresu klienta (nagłówek X-Forwarded-For). Użyj ';' do dzielenia wielu wpisów. - + Upda&te my dynamic domain name A&ktualizuj nazwę domeny dynamicznej - + Minimize qBittorrent to notification area Minimalizuj qBittorrent do obszaru powiadomień - + + Search + Szukaj + + + + WebUI + Interfejs WWW + + + Interface Interfejs - + Language: Język: - + + Style: + Styl: + + + + Color scheme: + Schemat kolorów: + + + + Stopped torrents only + Tylko zatrzymane torrenty + + + + + Start / stop torrent + Uruchom / zatrzymaj torrent + + + + + Open torrent options dialog + Otwórz okno dialogowe opcji torrenta + + + Tray icon style: Styl ikony w obszarze powiadomień: - - + + Normal Normalny - + File association Skojarzenie plików - + Use qBittorrent for .torrent files Używaj qBittorrent z plikami .torrent - + Use qBittorrent for magnet links Używaj qBittorrent z odnośnikami magnet - + Check for program updates Sprawdź aktualizacje programu - + Power Management Zarządzanie energią - + + &Log Files + Plik &dziennika + + + Save path: Ścieżka zapisu: - + Backup the log file after: Stwórz kopię pliku dziennika po: - + Delete backup logs older than: Usuń kopie dzienników starszych niż: - + + Show external IP in status bar + Pokaż zewnętrzny adres IP na pasku stanu + + + When adding a torrent Podczas dodawania torrenta - + Bring torrent dialog to the front Przywołaj okno dialogowe torrenta na wierzch - + + The torrent will be added to download list in a stopped state + Torrent zostanie dodany do listy pobierania w stanie zatrzymanym + + + Also delete .torrent files whose addition was cancelled Usuń także pliki .torrent, których dodanie zostało anulowane - + Also when addition is cancelled Także gdy dodanie zostało anulowane - + Warning! Data loss possible! Uwaga! Możliwa utrata danych! - + Saving Management Zarządzanie zapisywaniem - + Default Torrent Management Mode: Domyślny tryb zarządzania torrentem: - + Manual Ręczny - + Automatic Automatyczny - + When Torrent Category changed: Gdy zmieniono kategorię torrenta: - + Relocate torrent Przenieś torrent - + Switch torrent to Manual Mode Przełącz torrent na tryb ręczny - - + + Relocate affected torrents Przenieś dotknięte torrenty - - + + Switch affected torrents to Manual Mode Przełącz zależne torrenty na tryb ręczny - + Use Subcategories Użyj podkategorii - + Default Save Path: Domyślna ścieżka zapisu: - + Copy .torrent files to: Kopiuj pliki .torrent do: - + Show &qBittorrent in notification area Pokazuj ikonę &qBittorrent w obszarze powiadomień - - &Log file - Plik &dziennika - - - + Display &torrent content and some options Pokaż zawartość &torrenta i kilka opcji - + De&lete .torrent files afterwards P&otem usuń pliki .torrent - + Copy .torrent files for finished downloads to: Kopiuj pliki .torrent zakończonych pobierań do: - + Pre-allocate disk space for all files Rezerwuj miejsce na dysku dla wszystkich plików - + Use custom UI Theme Używaj niestandardowego motywu interfejsu użytkownika - + UI Theme file: Plik motywu interfejsu użytkownika: - + Changing Interface settings requires application restart Zmiana ustawień interfejsu wymaga ponownego uruchomienia aplikacji - + Shows a confirmation dialog upon torrent deletion Wyświetla okno dialogowe potwierdzenia przy usuwaniu torrenta - - + + Preview file, otherwise open destination folder Podgląd pliku, w przeciwnym razie otwórz folder docelowy - - - Show torrent options - Pokaż opcje torrenta - - - + Shows a confirmation dialog when exiting with active torrents Wyświetla okno dialogowe potwierdzenia podczas wychodzenia z aktywnymi torrentami - + When minimizing, the main window is closed and must be reopened from the systray icon Podczas minimalizacji okno główne jest zamknięte i musi zostać ponownie otwarte z ikony zasobnika systemowego - + The systray icon will still be visible when closing the main window Ikona zasobnika systemowego będzie nadal widoczna po zamknięciu głównego okna - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Zamykaj qBittorrent do obszaru powiadomień - + Monochrome (for dark theme) Monochromatyczny (do ciemnego motywu) - + Monochrome (for light theme) Monochromatyczny (do jasnego motywu) - + Inhibit system sleep when torrents are downloading Nie pozwalaj na usypianie systemu podczas pobierania torrentów - + Inhibit system sleep when torrents are seeding Nie pozwalaj na usypianie systemu podczas seedowania torrentów - + Creates an additional log file after the log file reaches the specified file size Tworzy dodatkowy plik dziennika po osiągnięciu przez plik dziennika określonego rozmiaru - + days Delete backup logs older than 10 days dni - + months Delete backup logs older than 10 months miesięcy - + years Delete backup logs older than 10 years lat - + Log performance warnings Rejestruj ostrzeżenia dotyczące wydajności - - The torrent will be added to download list in a paused state - Torrent zostanie dodany do listy pobierania w stanie wstrzymanym - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nie uruchamiaj automatycznie pobierań - + Whether the .torrent file should be deleted after adding it Czy plik .torrent powinien zostać usunięty po jego dodaniu - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Przydziel pełne rozmiary plików na dysku przed rozpoczęciem pobierania, aby zminimalizować fragmentację. Przydatne tylko w przypadku dysków twardych (HDD). - + Append .!qB extension to incomplete files Dodaj rozszerzenie .!qB do niekompletnych plików - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Gdy pobierany jest torrent, zaoferuj dodanie torrentów z dowolnych plików .torrent w nim zawartych - + Enable recursive download dialog Włącz okno dialogowe pobierania rekursywnego - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatycznie: różne właściwości torrentów (np. ścieżka zapisu) zostaną określone przez powiązaną kategorię Ręcznie: różne właściwości torrenta (np. ścieżka zapisu) muszą być przypisane ręcznie - + When Default Save/Incomplete Path changed: Po zmianie domyślnej ścieżki zapisu/ścieżki niekompletnych: - + When Category Save Path changed: Gdy zmieniono ścieżkę zapisu kategorii: - + Use Category paths in Manual Mode Użyj ścieżek kategorii w trybie ręcznym - + Resolve relative Save Path against appropriate Category path instead of Default one Rozwiąż relatywną ścieżkę zapisu z odpowiednią ścieżką kategorii zamiast domyślnej - + Use icons from system theme Użyj ikon z motywu systemowego - + Window state on start up: Stan okna przy uruchamianiu: - + qBittorrent window state on start up Stan okna qBittorrent przy uruchamianiu - + Torrent stop condition: Warunek zatrzymania torrenta: - - + + None Żaden - - + + Metadata received Odebrane metadane - - + + Files checked Sprawdzone pliki - + Ask for merging trackers when torrent is being added manually Pytaj o scalenie trackerów, gdy torrent jest dodawany ręcznie - + Use another path for incomplete torrents: Użyj innej ścieżki do niekompletnych torrentów: - + Automatically add torrents from: Automatycznie dodawaj torrenty z: - + Excluded file names Wykluczone nazwy plików - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: filtruje dokładną nazwę pliku. readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale nie 'readme10.txt'. - + Receiver Odbiorca - + To: To receiver Do: - + SMTP server: Serwer SMTP: - + Sender Nadawca - + From: From sender Od: - + This server requires a secure connection (SSL) Ten serwer wymaga bezpiecznego połączenia (SSL) - - + + Authentication Uwierzytelnianie - - - - + + + + Username: Nazwa użytkownika: - - - - + + + + Password: Hasło: - + Run external program Uruchom program zewnętrzny - - Run on torrent added - Uruchom po dodaniu torrenta - - - - Run on torrent finished - Uruchom po ukończeniu torrenta - - - + Show console window Pokaż okno konsoli - + TCP and μTP TCP oraz μTP - + Listening Port Port nasłuchu - + Port used for incoming connections: Port do połączeń przychodzących: - + Set to 0 to let your system pick an unused port Ustaw na 0, aby system mógł wybrać nieużywany port - + Random Losowy - + Use UPnP / NAT-PMP port forwarding from my router Używaj UPnP / NAT-PMP do przekierowania portów na moim routerze - + Connections Limits Limit połączeń - + Maximum number of connections per torrent: Maksymalna liczba połączeń na torrent: - + Global maximum number of connections: Maksymalna liczba połączeń: - + Maximum number of upload slots per torrent: Maksymalna liczba slotów wysyłania na torrent: - + Global maximum number of upload slots: Maksymalna liczba slotów wysyłania: - + Proxy Server Serwer proxy - + Type: Typ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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żyj proxy do połączeń z partnerami - + A&uthentication U&wierzytelnianie - - Info: The password is saved unencrypted - Informacja: hasło jest zapisywane bez szyfrowania - - - + Filter path (.dat, .p2p, .p2b): Ścieżka do pliku filtra (.dat, .p2p, .p2b): - + Reload the filter Przeładuj filtr - + Manually banned IP addresses... Ręcznie zbanowane adresy IP... - + Apply to trackers Zastosuj do trackerów - + Global Rate Limits Ogólne limity prędkości - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Wysyłanie: - - + + Download: Pobieranie: - + Alternative Rate Limits Alternatywne limity prędkości - + Start time Czas rozpoczęcia - + End time Czas zakończenia - + When: Kiedy: - + Every day Codziennie - + Weekdays Dni robocze - + Weekends Weekendy - + Rate Limits Settings Ustawienia limitów prędkości - + Apply rate limit to peers on LAN Stosuj limity prędkości do partnerów w LAN - + Apply rate limit to transport overhead Stosuj limity prędkości do transferów z narzutem - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Jeśli "tryb mieszany" jest włączony, torrenty I2P mogą również uzyskiwać partnerzy z innych źródeł niż tracker i łączyć się ze zwykłymi adresami IP, nie zapewniając żadnej anonimizacji. Może to być przydatne, jeśli użytkownik nie jest zainteresowany anonimizacją I2P, ale nadal chce mieć możliwość łączenia się z partnerami I2P.</p></body></html> + + + Apply rate limit to µTP protocol Stosuj limity prędkości do protokołu µTP - + Privacy Prywatność - + Enable DHT (decentralized network) to find more peers Włącz sieć DHT (sieć rozproszona), aby odnależć więcej partnerów - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Wymieniaj partnerów pomiędzy kompatybilnymi klientami sieci Bittorrent (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Włącz wymianę partnerów (PeX), aby odnależć więcej partnerów - + Look for peers on your local network Wyszukuj partnerów w sieci lokalnej - + Enable Local Peer Discovery to find more peers Włącz wykrywanie partnerów w sieci lokalnej, aby znaleźć więcej partnerów - + Encryption mode: Tryb szyfrowania: - + Require encryption Wymagaj szyfrowania - + Disable encryption Wyłącz szyfrowanie - + 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 - + Maximum active downloads: Maksymalna liczba aktywnych pobierań: - + Maximum active uploads: Maksymalna liczba aktywnych wysyłań: - + Maximum active torrents: Maksymalna liczba aktywnych torrentów: - + Do not count slow torrents in these limits Nie wliczaj powolnych torrentów do tych limitów - + Upload rate threshold: Próg prędkości wysyłania: - + Download rate threshold: Próg prędkości pobierania: - - - - + + + + sec seconds s - + Torrent inactivity timer: Zegar bezczynności torrenta: - + then następnie - + Use UPnP / NAT-PMP to forward the port from my router Używaj UPnP / NAT-PMP do przekierowania portów na moim routerze - + Certificate: Certyfikat: - + Key: Klucz: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informacje o certyfikatach</a> - + Change current password Zmień obecne hasło - - Use alternative Web UI - Używaj alternatywnego interfejsu WWW - - - + Files location: Położenie plików: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Lista alternatywnych interfejsów WWW</a> + + + Security Bezpieczeństwo - + Enable clickjacking protection Włącz ochronę przed porywaniem kliknięć - + Enable Cross-Site Request Forgery (CSRF) protection Włącz ochronę przed Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Włącz flagę bezpieczeństwa ciasteczka (wymaga połączenia HTTPS lub localhost) + + + Enable Host header validation Włącz sprawdzanie nagłówków hosta - + Add custom HTTP headers Dodaj niestandardowe nagłówki HTTP - + Header: value pairs, one per line Nagłówek: pary wartości, po jednej w wierszu - + Enable reverse proxy support Włącz obsługę zwrotnego proxy - + Trusted proxies list: Lista zaufanych proxy: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Przykłady konfiguracji odwrotnego serwera proxy</a> + + + Service: Usługa: - + Register Zarejestruj - + Domain name: Nazwa domeny: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Poprzez włączenie tych opcji możesz <strong>nieodwołalnie stracić</strong> twoje pliki .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Jeżeli włączysz drugą opcję (&ldquo;Także gdy dodanie zostało anulowane&rdquo;), plik .torrent <strong>zostanie usunięty</strong> nawet po wciśnięciu &ldquo;<strong>Anuluj</strong>&rdquo; w oknie &ldquo;Dodaj torrent&rdquo; - + Select qBittorrent UI Theme file Wybierz plik motywu interfejsu qBittorrent - + Choose Alternative UI files location Wybierz położenie plików alternatywnego interfejsu - + Supported parameters (case sensitive): Obsługiwane parametry (z uwzględnieniem wielkości liter): - + Minimized Zminimalizowany - + Hidden Ukryty - + Disabled due to failed to detect system tray presence Wyłączono, ponieważ nie udało się wykryć obecności w zasobniku systemowym - + No stop condition is set. Nie jest ustawiony żaden warunek zatrzymania. - + Torrent will stop after metadata is received. Torrent zatrzyma się po odebraniu metadanych. - Torrents that have metadata initially aren't affected. - Nie ma to wpływu na torrenty, które początkowo zawierają metadane. - - - + Torrent will stop after files are initially checked. Torrent zatrzyma się po wstępnym sprawdzeniu plików. - + This will also download metadata if it wasn't there initially. Spowoduje to również pobranie metadanych, jeśli początkowo ich tam nie było. - + %N: Torrent name %N: Nazwa torrenta - + %L: Category %L: Kategoria - + %F: Content path (same as root path for multifile torrent) %F: Ścieżka zawartości (taka sama, jak główna ścieżka do wieloplikowych torrentów) - + %R: Root path (first torrent subdirectory path) %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Wskazówka: otocz parametr cudzysłowem, aby uniknąć odcięcia tekstu (np. "%N") - + + Test email + E-mail testowy + + + + Attempted to send email. Check your inbox to confirm success + Próbowano wysłać e-mail. Sprawdź skrzynkę odbiorczą, aby potwierdzić powodzenie + + + (None) (Żaden) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent będzie uważany za powolny, jeśli jego szybkość pobierania i wysyłania pozostanie poniżej tych wartości sekund "Zegara bezczynności torrenta" - + Certificate Certyfikat - + Select certificate Wybierz certyfikat - + Private key Klucz prywatny - + Select private key Wybierz klucz prywatny - + WebUI configuration failed. Reason: %1 Konfiguracja interfejsu WWW nie powiodła się. Powód: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Zaleca się korzystanie z %1 w celu zapewnienia najlepszej zgodności z ciemnym trybem systemu Windows + + + + System + System default Qt style + Systemowy + + + + Let Qt decide the style for this system + Niech Qt zdecyduje o stylu tego systemu + + + + Dark + Dark color scheme + Ciemny + + + + Light + Light color scheme + Jasny + + + + System + System color scheme + Systemowy + + + Select folder to monitor Wybierz folder do monitorowania - + Adding entry failed Dodanie wpisu nie powiodło się - + The WebUI username must be at least 3 characters long. Nazwa użytkownika interfejsu WWW musi składać się z co najmniej 3 znaków. - + The WebUI password must be at least 6 characters long. Hasło interfejsu WWW musi składać się z co najmniej 6 znaków. - + Location Error Błąd położenia - - + + Choose export directory Wybierz katalog eksportu - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Gdy te opcje zostaną włączone, qBittorrent <strong>usunie</strong> pliki .torrent po ich pomyślnym (pierwsza opcja) lub niepomyślnym (druga opcja) dodaniu do kolejki pobierania. Stosuje się to <strong>nie tylko</strong> do plików otwarych poprzez czynność menu &ldquo;Dodaj torrent&rdquo;, ale także do plików otwartych poprzez <strong>skojarzenie typu pliku</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Plik motywu interfejsu qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Znaczniki (oddzielone przecinkiem) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (lub '-', jeśli niedostępne) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (lub '-', jeśli niedostępne) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Identyfikator torrenta (albo info hash sha-1 dla torrenta v1 lub przycięty info hash sha-256 dla torrenta v2/hybrydowego) - - - + + + Choose a save directory Wybierz katalog docelowy - + Torrents that have metadata initially will be added as stopped. - + Torrenty, które mają metadane, początkowo zostaną dodane jako zatrzymane. - + Choose an IP filter file Wybierz plik filtra IP - + All supported filters Wszystkie obsługiwane filtry - + The alternative WebUI files location cannot be blank. Lokalizacja plików alternatywnego interfejsu WWW nie może być pusta. - + 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ł. - + Preferences Preferencje - + Time Error Błąd ustawień harmonogramu - + The start time and the end time can't be the same. Czas uruchomienia nie może byś taki sam jak czas zakończenia. - - + + Length Error Błąd długości @@ -7335,241 +7765,246 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PeerInfo - + Unknown Nieznany - + 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) - + Not interested (local) and unchoked (peer) Niezainteresowany (lokalny) i niestłumiony (partner) - + Not interested (peer) and unchoked (local) Niezainteresowany (partner) i niestłumiony (lokalny) - + Optimistic unchoke Niestłumienie optymistyczne - + Peer snubbed Ignorowany partner - + Incoming connection Przychodzące połączenie - + Peer from DHT Partner z DHT - + Peer from PEX Partner z PEX - + Peer from LSD Partner z LSD - + Encrypted traffic Zaszyfrowany ruch - + Encrypted handshake Zaszyfrowane potwierdzenie + + + Peer is using NAT hole punching + Partner używa dziurkowania NAT + PeerListWidget - + Country/Region Kraj/Region - + IP/Address IP/Addres - + Port Port - + Flags Flagi - + Connection Połączenie - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID Identyfikator klienta partnera - + 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ść - + Files i.e. files that are being downloaded right now Pliki - + Column visibility Widoczność kolumy - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości - + Add peers... Dodaj partnerów... - - + + Adding peers Dodawamie partnerów - + Some peers cannot be added. Check the Log for details. Niektórzy partnerzy nie mogą zostać dodani. Sprawdź szczegóły w Dzienniku. - + Peers are added to this torrent. Partnerzy zostają dodawani do tego torrenta. - - + + Ban peer permanently Zbanuj partnera na stałe - + Cannot add peers to a private torrent Nie można dodać partnerów do prywatnego torrenta - + Cannot add peers when the torrent is checking Nie można dodać partnerów, gdy torrent jest sprawdzany - + Cannot add peers when the torrent is queued Nie można dodać partnerów, gdy torrent jest w kolejce - + No peer was selected Nie wybrano partnera - + Are you sure you want to permanently ban the selected peers? Czy na pewno zbanować na stałe wybranych partnerów? - + Peer "%1" is manually banned Partner "%1" został zbanowany ręcznie - + N/A Nie dotyczy - + Copy IP:port Kopiuj IP:port @@ -7587,7 +8022,7 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Lista partnerów do dodania (po jednym IP w wierszu): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7628,27 +8063,27 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PiecesBar - + Files in this piece: Pliki w tym kawałku: - + File in this piece: Plik w tej części: - + File in these pieces: Plik w tych częściach: - + Wait until metadata become available to see detailed information Poczekaj, aż metadane będą dostępne, aby uzyskać szczegółowe informacje - + Hold Shift key for detailed information Przytrzymaj klawisz Shift w celu uzyskania szczegółowych informacji @@ -7661,58 +8096,58 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Wtyczki wyszukiwania - + Installed search plugins: Zainstalowane wtyczki wyszukiwania: - + Name Nazwa - + Version Wersja - + Url Adres URL - - + + Enabled Włączone - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Ostrzeżenie: upewnij się, że przestrzegasz praw autorskich swojego kraju podczas pobierania torrentów z każdej z tych wyszukiwarek. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Nowe wtyczki wyszukiwarek można pobrać tutaj: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Zainstaluj nową - + Check for updates Sprawdź aktualizacje - + Close Zamknij - + Uninstall Odinstaluj @@ -7832,98 +8267,65 @@ Te wtyczki zostały wyłączone. Źródło wtyczki - + Search plugin source: Źródło wtyczki wyszukiwania: - + Local file Plik lokalny - + Web link Odnośnik sieciowy - - PowerManagement - - - qBittorrent is active - qBittorrent jest aktywny - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Zarządzanie energią znalazło odpowiedni interfejs D-Bus. Interfejs: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Błąd zarządzania energią. Nie znaleziono odpowiedniego interfejsu D-Bus. - - - - - - Power management error. Action: %1. Error: %2 - Błąd zarządzania energią. Czynność: %1. Błąd: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Nieoczekiwany błąd zarządzania energią. Stan: %1. Błąd: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Następujące pliki z torrenta "%1" obsługują podgląd, wybierz jeden z nich: - + Preview Podgląd - + Name Nazwa - + Size Rozmiar - + Progress Postęp - + Preview impossible Podgląd niemożliwy - + Sorry, we can't preview this file: "%1". Niestety nie możemy wyświetlić podglądu tego pliku: "%1". - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości @@ -7936,27 +8338,27 @@ Te wtyczki zostały wyłączone. Private::FileLineEdit - + Path does not exist Ścieżka nie istnieje - + Path does not point to a directory Ścieżka nie wskazuje na katalog - + Path does not point to a file Ścieżka nie wskazuje na plik - + Don't have read permission to path Nie masz uprawnień do odczytu ścieżki - + Don't have write permission to path Nie masz uprawnień do zapisu w ścieżce @@ -7997,12 +8399,12 @@ Te wtyczki zostały wyłączone. PropertiesWidget - + Downloaded: Pobrano: - + Availability: Dostępność: @@ -8017,53 +8419,53 @@ Te wtyczki zostały wyłączone. Transfer - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktywny przez: - + ETA: ETA: - + Uploaded: Wysłano: - + Seeds: Seedy: - + Download Speed: Pobieranie: - + Upload Speed: Wysyłanie: - + Peers: Peery: - + Download Limit: Limit pobierania: - + Upload Limit: Limit wysyłania: - + Wasted: Odrzucono: @@ -8073,227 +8475,254 @@ Te wtyczki zostały wyłączone. Połączeń: - + Information Informacje - + Info Hash v1: Info hash v1: - + Info Hash v2: Info hash v2: - + Comment: Komentarz: - + Select All Zaznacz wszystko - + Select None Odznacz wszystko - + Share Ratio: Współczynnik udziału: - + Reannounce In: Rozgłoszenie za: - + Last Seen Complete: Ostatni raz widziany kompletny: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Współczynnik / Czas aktywności (w miesiącach) wskazuje, jak popularny jest torrent + + + + Popularity: + Popularność: + + + Total Size: Całkowity rozmiar: - + Pieces: Części: - + Created By: Utworzony przez: - + Added On: Dodano: - + Completed On: Ukończono: - + Created On: Utworzono: - + + Private: + Prywatne: + + + Save Path: Ścieżka zapisu: - + 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) - - + + + N/A Nie dotyczy - + + Yes + Tak + + + + No + Nie + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedowane 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) - - New Web seed - Nowy seed sieciowy + + Add web seed + Add HTTP source + Dodaj seed sieciowy - - Remove Web seed - Usuń seed sieciowy + + Add web seed: + Dodaj seed sieciowy: - - Copy Web seed URL - Kopiuj URL seeda sieciowego + + + This web seed is already in the list. + Ten seed sieciowy już jest na liście. - - Edit Web seed URL - Edytuj URL seeda sieciowego - - - + Filter files... Filtrowane pliki... - + + Add web seed... + Dodaj seed sieciowy... + + + + Remove web seed + Usuń seed sieciowy + + + + Copy web seed URL + Kopiuj adres URL seeda sieciowego + + + + Edit web seed URL... + Edytuj adres URL seeda sieciowego... + + + Speed graphs are disabled Wykresy prędkości są wyłączone - + You can enable it in Advanced Options Możesz to włączyć w opcjach zaawansowanych - - 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 Edytowanie seeda sieciowego - + Web seed URL: - URL seeda sieciowego: + Adres URL seeda sieciowego: RSS::AutoDownloader - - + + Invalid data format. Nieprawidłowy format danych. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nie można zapisać danych automatycznego pobierania RSS w %1. Błąd: %2 - + Invalid data format Nieprawidłowy format danych - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... Artykuł RSS '%1' jest akceptowany przez regułę '%2'. Próbuję dodać torrenta... - + Failed to read RSS AutoDownloader rules. %1 Nie udało się wczytać reguł automatycznego pobierania RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nie można wczytać reguł automatycznego pobierania RSS. Powód: %1 @@ -8301,22 +8730,22 @@ Te wtyczki zostały wyłączone. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Nie udało się pobrać kanału RSS z '%1'. Powód: %2 - + RSS feed at '%1' updated. Added %2 new articles. Kanał RSS z '%1' został zaktualizowany. Dodano %2 nowe artykuły. - + Failed to parse RSS feed at '%1'. Reason: %2 Nie udało się przetworzyć kanału RSS z '%1'. Powód: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Kanał RSS z '%1' został pomyślnie pobrany. Zaczynam go przetwarzać. @@ -8352,12 +8781,12 @@ Te wtyczki zostały wyłączone. RSS::Private::Parser - + Invalid RSS feed. Nieprawidłowy kanał RSS. - + %1 (line: %2, column: %3, offset: %4). %1 (wiersz: %2, kolumna: %3, rozstaw: %4). @@ -8365,103 +8794,144 @@ Te wtyczki zostały wyłączone. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nie można zapisać konfiguracji sesji RSS. Plik: "%1". Błąd: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Nie można zapisać danych sesji RSS. Plik: "%1". Błąd: "%2" - - + + RSS feed with given URL already exists: %1. Kanał RSS z tym samym adresem URL już istnieje: %1. - + Feed doesn't exist: %1. Kanał nie istnieje: %1. - + Cannot move root folder. Nie można przenieść folderu głównego. - - + + Item doesn't exist: %1. Element nie istnieje: %1. - - Couldn't move folder into itself. - Nie można przenieść folderu do siebie. + + Can't move a folder into itself or its subfolders. + Nie można przenieść folderu do niego samego ani do jego podfolderów. - + Cannot delete root folder. Nie można usunąć folderu głównego. - + Failed to read RSS session data. %1 Nie udało się odczytać danych sesji RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Nie udało się przeanalizować danych sesji RSS. Plik: "%1". Błąd: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Nie udało się załadować danych sesji RSS. Plik: "%1". Błąd: "Nieprawidłowy format danych." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nie można załadować kanału RSS. Kanał: "%1". Powód: adres URL jest wymagany. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Nie można załadować kanału RSS. Kanał: "%1". Powód: UID jest nieprawidłowy. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Znaleziono zduplikowany UID kanału RSS. UID: "%1". Błąd: konfiguracja wydaje się uszkodzona. - + Couldn't load RSS item. Item: "%1". Invalid data format. Nie można załadować elementu RSS. Element: "%1". Niepoprawny format danych. - + Corrupted RSS list, not loading it. Uszkodzona lista RSS, nie ładuję jej. - + Incorrect RSS Item path: %1. Nieprawidłowa ścieżka elementu RSS: %1. - + RSS item with given path already exists: %1. Element RSS z tą samą ścieżką już istnieje: %1. - + Parent folder doesn't exist: %1. Folder nadrzędny nie istnieje: %1. + + RSSController + + + Invalid 'refreshInterval' value + Nieprawidłowa wartość 'refreshInterval' + + + + Feed doesn't exist: %1. + Kanał nie istnieje: %1. + + + + RSSFeedDialog + + + RSS Feed Options + Opcje kanału RSS + + + + URL: + Adres URL: + + + + Refresh interval: + Częstotliwość odświeżania: + + + + sec + s + + + + Default + Domyślny + + RSSWidget @@ -8481,8 +8951,8 @@ Te wtyczki zostały wyłączone. - - + + Mark items read Zaznacz jako przeczytane @@ -8507,132 +8977,115 @@ Te wtyczki zostały wyłączone. Torrenty: (podwójne kliknięcie, aby pobrać) - - + + Delete Usuń - + Rename... Zmień nazwę... - + Rename Zmień nazwę - - + + Update Odśwież - + New subscription... Nowa subskrypcja... - - + + Update all feeds Zaktualizuj wszystkie kanały - + Download torrent Pobierz torrent - + Open news URL Otwórz adres URL wiadomości - + Copy feed URL Kopiuj adres URL kanału - + New folder... Nowy folder... - - Edit feed URL... - Edytuj adres URL kanału... + + Feed options... + Opcje kanału... - - Edit feed URL - Edytuj adres URL kanału - - - + Please choose a folder name Wybierz nazwę folderu - + Folder name: Nazwa folderu: - + New folder Nowy folder - - - Please type a RSS feed URL - Proszę wpisać adres URL kanału RSS - - - - - Feed URL: - Adres URL kanału: - - - + Deletion confirmation Potwierdzenie 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 Wybierz nową nazwę dla tego kanału RSS - + New feed name: Nowa nazwa kanału: - + Rename failed Zmiana nazwy nie powiodła się - + Date: Data: - + Feed: Kanał: - + Author: Autor: @@ -8640,38 +9093,38 @@ Te wtyczki zostały wyłączone. SearchController - + Python must be installed to use the Search Engine. Python musi być zainstalowany, aby korzystać z wyszukiwarki. - + Unable to create more than %1 concurrent searches. Nie można utworzyć więcej niż %1 równoczesnych wyszukiwań. - - + + Offset is out of range Przesunięcie jest poza zakresem - + All plugins are already up to date. Wszystkie wtyczki są aktualne. - + Updating %1 plugins Aktualizowanie wtyczek %1 - + Updating plugin %1 Aktualizowanie wtyczki %1 - + Failed to check for plugin updates: %1 Nie udało się sprawdzić aktualizacji wtyczki: %1 @@ -8746,132 +9199,142 @@ Te wtyczki zostały wyłączone. Rozmiar: - + Name i.e: file name Nazwa - + Size i.e: file size Rozmiar - + Seeders i.e: Number of full sources Seedujący - + Leechers i.e: Number of partial sources Pijawki - - Search engine - Wyszukiwarka - - - + Filter search results... Filtruj wyniki wyszukiwania... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Wyniki (pokazuje <i>%1</i> z <i>%2</i>): - + Torrent names only Tylko nazwy torrentów - + Everywhere Wszędzie - + Use regular expressions Używaj wyrażeń regularnych - + Open download window Otwórz okno pobierania - + Download Pobierz - + Open description page Otwórz stronę z opisem - + Copy Kopiuj - + Name Nazwa - + Download link Odnośnik pobierania - + Description page URL Adres URL strony opisu - + Searching... Wyszukiwanie... - + Search has finished Wyszukiwanie zakończone - + Search aborted Wyszukiwanie przerwane - + An error occurred during search... Wystąpił błąd podczas wyszukiwania... - + Search returned no results Wyszukiwanie nie zwróciło wyników - + + Engine + Wyszukiwarka + + + + Engine URL + Adres URL wyszukiwarki + + + + Published On + Opublikowano + + + Column visibility Widoczność kolumy - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości @@ -8879,104 +9342,104 @@ Te wtyczki zostały wyłączone. SearchPluginManager - + Unknown search engine plugin file format. Nieznany format pliku wtyczki wyszukiwania. - + Plugin already at version %1, which is greater than %2 Wtyczka jest już w wersji %1, która jest większa niż %2 - + A more recent version of this plugin is already installed. Najnowsza wersja tej wtyczki jest już zainstalowana. - + Plugin %1 is not supported. Wtyczka %1 nie jest obsługiwania. - - + + Plugin is not supported. Wtyczka nie jest obsługiwania. - + Plugin %1 has been successfully updated. Pomyślnie zaktualizowano wtyczkę %1. - + All categories Wszystko - + Movies Filmy - + TV shows Seriale TV - + Music Muzyka - + Games Gry - + Anime Anime - + Software Oprogramowanie - + Pictures Obrazki - + Books Książki - + 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 - + Plugin "%1" is outdated, updating to version %2 Wtyczka "%1" jest nieaktualna, aktualizowanie do wersji %2 - + Incorrect update info received for %1 out of %2 plugins. Otrzymano niepoprawne informacje o aktualizacji dla wtyczek %1 z %2. - + Search plugin '%1' contains invalid version string ('%2') Wtyczka wyszukiwania '%1' zawiera nieprawidłowy ciąg wersji ('%2') @@ -8986,114 +9449,145 @@ Te wtyczki zostały wyłączone. - - - - Search Wyszukaj - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nie ma zainstalowanych żadnych wtyczek wyszukiwania. Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, aby zainstalować niektóre. - + Search plugins... Wtyczki wyszukiwania... - + A phrase to search for. Fraza do wyszukiwania. - + Spaces in a search term may be protected by double quotes. Odstępy w wyszukiwanej frazie mogą być chronione przez cudzysłów. - + Example: Search phrase example Przykład: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: wyszukaj <b>foo bar</b> - + All plugins Wszystkie wtyczki - + Only enabled Tylko włączone - + + + Invalid data format. + Nieprawidłowy format danych. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: wyszukaj <b>foo</b> oraz <b>bar</b> - + + Refresh + Odśwież + + + Close tab Zamknij kartę - + Close all tabs Zamknij wszystkie karty - + Select... Wybierz... - - - + + Search Engine Wyszukiwarka - + + Please install Python to use the Search Engine. Należy zainstalować Pythona, aby móc używać wyszukiwarki. - + Empty search pattern Pusty wzorzec wyszukiwania - + Please type a search pattern first Najpierw podaj wzorzec wyszukiwania - + + Stop Zatrzymaj + + + SearchWidget::DataStorage - - Search has finished - Wyszukiwanie zakończone + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Nie udało się załadować zapisanych danych stanu interfejsu wyszukiwania. Plik: "%1". Błąd: "%2" - - Search has failed - Wyszukiwanie nie powiodło się + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Nie udało się załadować zapisanych wyników wyszukiwania. Karta: "%1". Plik: "%2". Błąd: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Nie udało się zapisać stanu interfejsu wyszukiwania. Plik: "%1". Błąd: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Nie udało się zapisać wyników wyszukiwania. Karta: "%1". Plik: "%2". Błąd: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Nie udało się załadować historii interfejsu wyszukiwania. Plik: "%1". Błąd: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Nie udało się zapisać historii wyszukiwania. Plik: "%1". Błąd: "%2" @@ -9206,34 +9700,34 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, - + Upload: Wysyłanie: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Pobieranie: - + Alternative speed limits Alternatywne limity prędkości @@ -9425,32 +9919,32 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, Średni czas w kolejce: - + Connected peers: Połączone peery: - + All-time share ratio: Współczynnik udziału absolutny: - + All-time download: Pobieranie absolutne: - + Session waste: Strata sesji: - + All-time upload: Wysyłanie absolutne: - + Total buffer size: Całość rozmiaru bufora: @@ -9465,12 +9959,12 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, Zadania we/wy w kolejce: - + Write cache overload: Przepełnienie pamięci podręcznej zapisu: - + Read cache overload: Przepełnienie pamięci podręcznej odczytu: @@ -9489,51 +9983,77 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, StatusBar - + Connection status: Stan połączenia: - - + + No direct connections. This may indicate network configuration problems. Brak bezpośrednich połączeń. Może to oznaczać problem z konfiguracją sieci. - - + + Free space: N/A + Wolne miejsce: niedostępne + + + + + External IP: N/A + Zewnętrzny adres IP: brak + + + + DHT: %1 nodes Węzły DHT: %1 - + qBittorrent needs to be restarted! qBittorrent musi zostać uruchomiony ponownie! - - - + + + Connection Status: Stan połączenia: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. Oznacza, że qBittorent nie jest w stanie nasłuchiwać połączeń przychodzących na wybranym porcie. - + Online Połączony - + + Free space: + Wolne miejsce: + + + + External IPs: %1, %2 + Zewnętrzne adresy IP: %1, %2 + + + + External IP: %1%2 + Zewnętrzny adres IP: %1%2 + + + Click to switch to alternative speed limits 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 @@ -9563,13 +10083,13 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, - Resumed (0) - Wznowione (0) + Running (0) + Uruchomione (0) - Paused (0) - Wstrzymane (0) + Stopped (0) + Zatrzymane (0) @@ -9631,36 +10151,36 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, Completed (%1) Ukończone (%1) + + + Running (%1) + Uruchomione (%1) + - Paused (%1) - Wstrzymane (%1) + Stopped (%1) + Zatrzymane (%1) + + + + Start torrents + Uruchom torrenty + + + + Stop torrents + Zatrzymaj torrenty Moving (%1) Przenoszenie (%1) - - - Resume torrents - Wznów torrenty - - - - Pause torrents - Wstrzymaj torrenty - Remove torrents Usuń torrenty - - - Resumed (%1) - Wznowione (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Kliknij przycisk "Wtyczki wyszukiwania..." w prawym dolnym rogu okna, Remove unused tags Usuń nieużywane znaczniki - - - Resume torrents - Wznów torrenty - - - - Pause torrents - Wstrzymaj torrenty - Remove torrents Usuń torrenty - - New Tag - Nowy znacznik + + Start torrents + Uruchom torrenty + + + + Stop torrents + Zatrzymaj torrenty Tag: Znacznik: + + + Add tag + Dodaj znacznik + Invalid tag name @@ -9903,32 +10423,32 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentContentModel - + Name Nazwa - + Progress Postęp - + Download Priority Priorytet pobierania - + Remaining Pozostało - + Availability Dostępność - + Total Size Całkowity rozmiar @@ -9973,98 +10493,98 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentContentWidget - + Rename error Błąd zmiany nazwy - + Renaming Zmiana nazwy - + New name: Nowa nazwa: - + Column visibility Widoczność kolumny - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości - + Open Otwórz - + Open containing folder Otwórz folder pobierań - + Rename... Zmień nazwę... - + Priority Priorytet - - + + Do not download Nie pobieraj - + Normal Normalny - + High Wysoki - + Maximum Maksymalny - + By shown file order Według pokazanej kolejności plików - + Normal priority Normalny priorytet - + High priority Wysoki priorytet - + Maximum priority Maksymalny priorytet - + Priority by shown file order Priorytet według pokazanej kolejności plików @@ -10072,19 +10592,19 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentCreatorController - + Too many active tasks - + Zbyt wiele aktywnych zadań - + Torrent creation is still unfinished. - + Tworzenie torrenta nie zostało jeszcze ukończone. - + Torrent creation failed. - + Niepowodzenie tworzenia torrenta. @@ -10111,13 +10631,13 @@ Wybierz inną nazwę i spróbuj ponownie. - + Select file Wybierz plik - + Select folder Wybierz folder @@ -10192,87 +10712,83 @@ Wybierz inną nazwę i spróbuj ponownie. Pola - + You can separate tracker tiers / groups with an empty line. Można oddzielić warstwy / grupy trackerów za pomocą pustej linii. - + Web seed URLs: Adresy URL źródła sieciowego: - + Tracker URLs: Adresy URL trackerów: - + Comments: Komentarze: - + Source: Źródło: - + Progress: Postęp: - + Create Torrent Utwórz torrent - - + + Torrent creation failed Niepowodzenie tworzenia torrenta - + Reason: Path to file/folder is not readable. Powód: nie można odczytać ścieżki do pliku lub folderu. - + Select where to save the new torrent Wybierz, gdzie zapisać nowy torrent - + Torrent Files (*.torrent) Pliki torrent (*.torrent) - Reason: %1 - Powód: %1 - - - + Add torrent to transfer list failed. Dodanie torrenta do listy transferów nie powiodło się. - + Reason: "%1" Powód: "%1" - + Add torrent failed Dodanie torrenta nie powiodło się - + Torrent creator Kreator torrentów - + Torrent created: Torrent utworzono: @@ -10280,32 +10796,32 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Nie udało się załadować konfiguracji folderów obserwowanych. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Nie udało się przeanalizować konfiguracji folderów obserwowanych z %1. Błąd: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Nie udało się załadować konfiguracji folderów obserwowanych z %1. Błąd: "Nieprawidłowy format danych". - + Couldn't store Watched Folders configuration to %1. Error: %2 Nie można zapisać konfiguracji obserwowanych folderów w %1. Błąd: %2 - + Watched folder Path cannot be empty. Ścieżka folderu obserwowanego nie może być pusta. - + Watched folder Path cannot be relative. Ścieżka folderu obserwowanego nie może być względna. @@ -10313,44 +10829,31 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Nieprawidłowy identyfikator URI magnet. URI: %1. Powód: %2 - + Magnet file too big. File: %1 Plik magnet zbyt duży. Plik: %1 - + Failed to open magnet file: %1 Nie udało się otworzyć pliku magnet: %1 - + Rejecting failed torrent file: %1 Odrzucanie nieudanego pliku torrent: %1 - + Watching folder: "%1" Obserwowanie folderu: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Nie udało się przydzielić pamięci podczas odczytu pliku. Plik: "%1". Błąd: "%2" - - - - Invalid metadata - Nieprawidłowe metadane - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Wybierz inną nazwę i spróbuj ponownie. Użyj innej ścieżki do niekompletnego torrenta - + Category: Kategoria: - - Torrent speed limits - Limity prędkości torrenta + + Torrent Share Limits + Limity udostępniania torrenta - + Download: Pobieranie: - - + + - - + + Torrent Speed Limits + Limity prędkości torrenta + + + + KiB/s KiB/s - + These will not exceed the global limits Nie przekroczą ogólnych limitów - + Upload: Wysyłanie: - - Torrent share limits - Limity udziału torrenta - - - - Use global share limit - Użyj ogólnego limitu udziału - - - - Set no share limit - Ustaw bez limitu udziału - - - - Set share limit to - Ustaw limit udziału na - - - - ratio - ratio - - - - total minutes - łączne minuty - - - - inactive minutes - nieaktywne minuty - - - + Disable DHT for this torrent Wyłącz DHT dla tego torrenta - + Download in sequential order Pobierz w kolejności sekwencyjnej - + Disable PeX for this torrent Wyłącz PeX dla tego torrenta - + Download first and last pieces first Pobierz najpierw część pierwszą i ostatnią - + Disable LSD for this torrent Wyłącz LSD dla tego torrenta - + Currently used categories Aktualnie używane kategorie - - + + Choose save path Wybierz ścieżkę zapisu - + Not applicable to private torrents Nie dotyczy prywatnych torrentów - - - No share limit method selected - Nie wybrano metody limitu udziału - - - - Please select a limit method first - Proszę najpierw wybrać metodę limitu - TorrentShareLimitsWidget - - - + + + + Default - + Domyślne + + + + + + Unlimited + Nieograniczone - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Ustaw + + + + Seeding time: + Czas seedowania: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Nieaktywny czas seedowania: - + + Action when the limit is reached: + Działanie po osiągnięciu limitu: + + + + Stop torrent + Zatrzymaj torrent + + + + Remove torrent + Usuń torrent + + + + Remove torrent and its content + Usuń torrent i jego zawartość + + + + Enable super seeding for torrent + Włącz super-seedowanie dla torrenta + + + Ratio: - + Udział: @@ -10558,32 +11049,32 @@ Wybierz inną nazwę i spróbuj ponownie. Znaczniki torrenta - - New Tag - Nowy znacznik + + Add tag + Dodaj znacznik - + Tag: Znacznik: - + Invalid tag name Nieprawidłowa nazwa znacznika - + Tag name '%1' is invalid. Nazwa znacznika '%1' jest nieprawidłowa. - + Tag exists Znacznik istnieje - + Tag name already exists. Nazwa znacznika już istnieje. @@ -10591,115 +11082,130 @@ Wybierz inną nazwę i spróbuj ponownie. TorrentsController - + Error: '%1' is not a valid torrent file. Błąd: '%1' nie jest prawidłowym plikiem torrent. - + Priority must be an integer Priorytet musi być liczbą całkowitą - + Priority is not valid Priorytet jest nieprawidłowy - + Torrent's metadata has not yet downloaded Metadane torrenta nie zostały jeszcze pobrane - + File IDs must be integers Identyfikatory plików muszą być liczbami całkowitymi - + File ID is not valid Identyfikator pliku jest nieprawidłowy - - - - + + + + Torrent queueing must be enabled Kolejkowanie torrentów musi być włączone - - + + Save path cannot be empty Ścieżka zapisu nie może być pusta - - + + Cannot create target directory Nie można utworzyć katalogu docelowego - - + + Category cannot be empty Kategoria nie może być pusta - + Unable to create category Nie można utworzyć kategorii - + Unable to edit category Nie można edytować kategorii - + Unable to export torrent file. Error: %1 Nie można wyeksportować pliku torrent. Błąd: %1 - + Cannot make save path Nie można utworzyć ścieżki zapisu - + + "%1" is not a valid URL + "%1" nie jest prawidłowym adresem URL + + + + URL scheme must be one of [%1] + Schemat URL musi być jednym z [%1] + + + 'sort' parameter is invalid Parametr 'sort' jest nieprawidłowy - + + "%1" is not an existing URL + "%1" nie jest istniejącym adresem URL + + + "%1" is not a valid file index. "%1" nie jest prawidłowym indeksem plików. - + Index %1 is out of bounds. Indeks %1 jest poza zakresem. - - + + Cannot write to directory Nie można zapisać do katalogu - + WebUI Set location: moving "%1", from "%2" to "%3" Interfejs WWW Ustaw położenie: przenoszenie "%1", z "%2" do "%3" - + Incorrect torrent name Nieprawidłowa nazwa torrenta - - + + Incorrect category name Nieprawidłowa nazwa kategorii @@ -10730,196 +11236,191 @@ Wybierz inną nazwę i spróbuj ponownie. TrackerListModel - + Working Działa - + Disabled Wyłączone - + Disabled for this torrent Wyłączone dla tego torrenta - + This torrent is private Ten torrent jest prywatny - + N/A Nie dotyczy - + Updating... Aktualizowanie... - + Not working Nie działa - + Tracker error Błąd trackera - + Unreachable Nieosiągalny - + Not contacted yet Niesprawdzony - - Invalid status! + + Invalid state! Nieprawidłowy stan! - - URL/Announce endpoint + + URL/Announce Endpoint Punkt końcowy adresu URL/rozgłoszenia - + + BT Protocol + Protokół BT + + + + Next Announce + Następne rozgłoszenie + + + + Min Announce + Minimalne rozgłoszenie + + + Tier Poziom - - Protocol - Protokół - - - + Status Stan - + Peers Partnerzy - + Seeds Seedy - + Leeches Pijawki - + Times Downloaded Liczba pobrań - + Message Komunikat - - - Next announce - Następne rozgłoszenie - - - - Min announce - Minimalne rozgłoszenie - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Ten torrent jest prywatny - + Tracker editing Edytowanie trackera - + Tracker URL: Adres URL trackera: - - + + Tracker editing failed Edytowanie trackera nie powiodła się - + The tracker URL entered is invalid. Wprowadzony adres URL trackera jest nieprawidłowy. - + The tracker URL already exists. Adres URL trackera już istnieje. - + Edit tracker URL... Edytuj adres URL trackera... - + Remove tracker Usuń tracker - + Copy tracker URL Kopiuj adres URL trackera - + Force reannounce to selected trackers Wymuś rozgłoszenie do wybranych trackerów - + Force reannounce to all trackers Wymuś rozgłoszenie do wszystkich trackerów - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości - + Add trackers... Dodaj trackery... - + Column visibility Widoczność kolumy @@ -10937,37 +11438,37 @@ Wybierz inną nazwę i spróbuj ponownie. Lista trackerów do dodania (po jednym w wierszu): - + µTorrent compatible list URL: Adres kompatybilny z µTorrent: - + Download trackers list Pobierz listę trackerów - + Add Dodaj - + Trackers list URL error Błąd adresu URL listy trackerów - + The trackers list URL cannot be empty Adres URL listy trackerów nie może być pusty - + Download trackers list error Błąd pobierania listy trackerów - + Error occurred when downloading the trackers list. Reason: "%1" Wystąpił błąd podczas pobierania listy trackerów. Powód: "%1" @@ -10975,62 +11476,62 @@ Wybierz inną nazwę i spróbuj ponownie. TrackersFilterWidget - + Warning (%1) Z ostrzeżeniem (%1) - + Trackerless (%1) Bez trackera (%1) - + Tracker error (%1) Błąd trackera (%1) - + Other error (%1) Inny błąd (%1) - + Remove tracker Usuń tracker - - Resume torrents - Wznów torrenty + + Start torrents + Uruchom torrenty - - Pause torrents - Wstrzymaj torrenty + + Stop torrents + Zatrzymaj torrenty - + Remove torrents Usuń torrenty - + Removal confirmation Potwierdzenie usunięcia - + Are you sure you want to remove tracker "%1" from all torrents? Czy na pewno chcesz usunąć tracker "%1" ze wszystkich torrentów? - + Don't ask me again. Nie pytaj mnie więcej. - + All (%1) this is for the tracker filter Wszystkie (%1) @@ -11039,7 +11540,7 @@ Wybierz inną nazwę i spróbuj ponownie. TransferController - + 'mode': invalid argument 'tryb': nieprawidłowy argument @@ -11131,11 +11632,6 @@ Wybierz inną nazwę i spróbuj ponownie. 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. Sprawdzanie danych wznawiania - - - Paused - Wstrzymano - Completed @@ -11159,220 +11655,252 @@ Wybierz inną nazwę i spróbuj ponownie. Błędne - + Name i.e: torrent name Nazwa - + Size i.e: torrent size Rozmiar - + Progress % Done Postęp - + + Stopped + Zatrzymany + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stan - + Seeds i.e. full sources (often untranslated) Seedy - + Peers i.e. partial sources (often untranslated) Peery - + Down Speed i.e: Download speed Prędkość pobierania - + Up Speed i.e: Upload speed Prędkość wysyłania - + Ratio Share ratio Ratio - + + Popularity + Popularność + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Kategoria - + Tags Znaczniki - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Dodano - + Completed On Torrent was completed on 01/01/2010 08:00 Ukończono - + Tracker Tracker - + Down Limit i.e: Download limit Limit pobierania - + Up Limit i.e: Upload limit Limit wysyłania - + Downloaded Amount of data downloaded (e.g. in MB) Pobrano - + Uploaded Amount of data uploaded (e.g. in MB) Wysłano - + Session Download Amount of data downloaded since program open (e.g. in MB) Pobrane w sesji - + Session Upload Amount of data uploaded since program open (e.g. in MB) Wysłane w sesji - + Remaining Amount of data left to download (e.g. in MB) Pozostało - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Aktywny przez - + + Yes + Tak + + + + No + Nie + + + Save Path Torrent save path Ścieżka zapisu - + Incomplete Save Path Torrent incomplete save path Niepełna ścieżka zapisu - + Completed Amount of data completed (e.g. in MB) Ukończone - + Ratio Limit Upload share ratio limit Limit współczynnika udziału - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Ostatni raz widziany kompletny - + Last Activity Time passed since a chunk was downloaded/uploaded Ostatnia aktywność - + Total Size i.e. Size including unwanted data Całkowity rozmiar - + Availability The number of distributed copies of the torrent Dostępność - + Info Hash v1 i.e: torrent info hash v1 Info hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info hash v2 - + Reannounce In Indicates the time until next trackers reannounce Rozgłoszenie za - - + + Private + Flags private torrents + Prywatne + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Współczynnik / Czas aktywności (w miesiącach) wskazuje, jak popularny jest torrent + + + + + N/A Nie dotyczy - + %1 ago e.g.: 1h 20m ago %1 temu - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedowane przez %2) @@ -11381,339 +11909,319 @@ Wybierz inną nazwę i spróbuj ponownie. TransferListWidget - + Column visibility Widoczność kolumn - + Recheck confirmation Potwierdzenie ponownego sprawdzania - + Are you sure you want to recheck the selected torrent(s)? Czy na pewno ponownie sprawdzić wybrane torrenty? - + Rename Zmień nazwę - + New name: Nowa nazwa: - + Choose save path Wybierz katalog docelowy - - Confirm pause - Potwierdź wstrzymanie - - - - Would you like to pause all torrents? - Czy chcesz wstrzymać wszystkie torrenty? - - - - Confirm resume - Potwierdź wznowienie - - - - Would you like to resume all torrents? - Czy chcesz wznowić wszystkie torrenty? - - - + Unable to preview Nie można wyświetlić podglądu - + The selected torrent "%1" does not contain previewable files Wybrany torrent "%1" nie zawiera plików możliwych do podglądu - + Resize columns Zmień rozmiar kolumn - + Resize all non-hidden columns to the size of their contents Zmień rozmiar wszystkich nieukrytych kolumn do rozmiaru ich zawartości - + Enable automatic torrent management Włącz automatyczne zarządzanie torrentem - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Czy na pewno chcesz włączyć automatyczne zarządzanie torrentem dla wybranego torrenta lub torrentów? Mogą zostać przeniesione. - - Add Tags - Dodaj znaczniki - - - + Choose folder to save exported .torrent files Wybierz folder do zapisywania wyeksportowanych plików .torrent - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Nie udało się wyeksportować pliku .torrent. Torrent: "%1". Ścieżka zapisu: "%2". Powód: "%3" - + A file with the same name already exists Plik o tej nazwie już istnieje - + Export .torrent file error Błąd eksportu pliku .torrent - + Remove All Tags Usuń wszystkie znaczniki - + Remove all tags from selected torrents? Usunąć wszystkie znaczniki z wybranych torrentów? - + Comma-separated tags: Znaczniki rozdzielone przecinkami: - + Invalid tag Niepoprawny znacznik - + Tag name: '%1' is invalid Nazwa znacznika '%1' jest nieprawidłowa - - &Resume - Resume/start the torrent - W&znów - - - - &Pause - Pause the torrent - &Wstrzymaj - - - - Force Resu&me - Force Resume/start the torrent - Wymuś wz&nowienie - - - + Pre&view file... Podglą&d pliku... - + Torrent &options... &Opcje torrenta... - + Open destination &folder Otwórz &folder pobierań - + Move &up i.e. move up in the queue Przenieś w &górę - + Move &down i.e. Move down in the queue Przenieś w &dół - + Move to &top i.e. Move to top of the queue Przenieś na &początek - + Move to &bottom i.e. Move to bottom of the queue Przenieś na &koniec - + Set loc&ation... U&staw położenie... - + Force rec&heck Wy&muś ponowne sprawdzenie - + Force r&eannounce Wymuś ro&zgłoszenie - + &Magnet link Odnośnik &magnet - + Torrent &ID &Identyfikator torrenta - + &Comment &Komentarz: - + &Name &Nazwa - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Zmień &nazwę... - + Edit trac&kers... Edytuj trac&kery... - + E&xport .torrent... Eksportuj .torrent... - + Categor&y Kategor&ia - + &New... New category... &Nowa... - + &Reset Reset category &Resetuj - + Ta&gs Zna&czniki - + &Add... Add / assign multiple tags... &Dodaj... - + &Remove All Remove all tags Usuń &wszystkie - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Nie można wymusić rozgłaszania, jeśli torrent jest zatrzymany/w kolejce/błędny/sprawdzany + + + &Queue Ko&lejka - + &Copy &Kopiuj - + Exported torrent is not necessarily the same as the imported Eksportowany torrent niekoniecznie jest taki sam jak importowany - + Download in sequential order Pobierz w kolejności sekwencyjnej - + + Add tags + Dodaj znaczniki + + + Errors occurred when exporting .torrent files. Check execution log for details. Podczas eksportowania plików .torrent wystąpiły błędy. Sprawdź dziennik wykonania, aby uzyskać szczegółowe informacje. - + + &Start + Resume/start the torrent + &Uruchom + + + + Sto&p + Stop the torrent + Za&trzymaj + + + + Force Star&t + Force Resume/start the torrent + Wymuś uruc&homienie + + + &Remove Remove the torrent &Usuń - + Download first and last pieces first Pobierz najpierw część pierwszą i ostatnią - + Automatic Torrent Management Automatyczne zarządzanie torrentem - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Tryb automatyczny oznacza, że różne właściwości torrenta (np. ścieżka zapisu) będą określane przez powiązaną kategorię - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Nie można wymusić rozgłaszania, jeśli torrent jest wstrzymany/w kolejce/błędny/sprawdzany - - - + Super seeding mode Tryb super-seeding @@ -11758,28 +12266,28 @@ Wybierz inną nazwę i spróbuj ponownie. Identyfikator ikony - + UI Theme Configuration. Konfiguracja motywu interfejsu użytkownika. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Nie można w pełni zastosować zmian motywu interfejsu użytkownika. Szczegóły znajdziesz w dzienniku. - + Couldn't save UI Theme configuration. Reason: %1 Nie można zapisać konfiguracji motywu interfejsu użytkownika. Powód: %1 - - + + Couldn't remove icon file. File: %1. Nie można usunąć pliku ikony. Plik: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Nie można skopiować pliku ikony. Źródło: %1. Miejsce docelowe: %2. @@ -11787,7 +12295,12 @@ Wybierz inną nazwę i spróbuj ponownie. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Nie udało się ustawić stylu aplikacji. Nieznany styl: "%1" + + + Failed to load UI theme from file: "%1" Nie udało się załadować motywu interfejsu użytkownika z pliku: "%1" @@ -11818,20 +12331,21 @@ Wybierz inną nazwę i spróbuj ponownie. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migracja ustawień nie powiodła się: WebUI https, plik: "%1", błąd: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Zmigrowane ustawienia: WebUI https, wyeksportowane dane do pliku: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". W pliku konfiguracyjnym znaleziono nieprawidłową wartość, przywracanie jej do wartości domyślnej. Klucz: "%1". Nieprawidłowa wartość: "%2". @@ -11839,32 +12353,32 @@ Wybierz inną nazwę i spróbuj ponownie. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Znaleziono plik wykonywalny Pythona. Nazwa: "%1". Wersja: "%2" - + Failed to find Python executable. Path: "%1". Nie udało się znaleźć pliku wykonywalnego Pythona. Ścieżka: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Nie udało się znaleźć pliku wykonywalnego `python3` w zmiennej środowiskowej PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Nie udało się znaleźć pliku wykonywalnego `python` w zmiennej środowiskowej PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Nie udało się znaleźć pliku wykonywalnego `python` w rejestrze systemu Windows. - + Failed to find Python executable Nie udało się znaleźć pliku wykonywalnego Pythona @@ -11956,72 +12470,72 @@ Wybierz inną nazwę i spróbuj ponownie. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Określono nieakceptowalną nazwę pliku cookie sesji: '%1'. Używana jest domyślna. - + Unacceptable file type, only regular file is allowed. Niedozwolony typ pliku, dozwolone są tylko zwykłe pliki. - + Symlinks inside alternative UI folder are forbidden. Dowiązania symboliczne w alternatywnym folderze interfejsu są zabronione. - + Using built-in WebUI. Używanie wbudowanego interfejsu WWW. - + Using custom WebUI. Location: "%1". Używanie niestandardowego interfejsu WWW. Położenie: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Pomyślnie załadowano tłumaczenie interfejsu WWW dla wybranych ustawień narodowych (%1). - + Couldn't load WebUI translation for selected locale (%1). Nie można załadować tłumaczenia interfejsu WWW dla wybranych ustawień narodowych (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Brak separatora ':' w niestandardowym nagłówku HTTP interfejsu WWW: "%1" - + Web server error. %1 Błąd serwera WWW. %1 - + Web server error. Unknown error. Błąd serwera WWW. Nieznany błąd. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Interfejs WWW: Niedopasowanie nagłówka źródłowego i źródła celu! Źródło IP: '%1'. Nagłówek źródłowy: '%2'. Źródło celu: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Interfejs WWW: Niedopasowanie nagłówka odsyłacza i źródła celu! Źródło IP: '%1'. Nagłówek odsyłacza: '%2'. Źródło celu: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Interfejs WWW: Nieprawidłowy nagłówek hosta, niedopasowanie portu. Źródło IP żądania: '%1'. Port serwera: '%2'. Odebrany nagłówek hosta: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Interfejs WWW: Nieprawidłowy nagłówek hosta. Źródło IP żądania: '%1'. Nagłówek hosta: '%2' @@ -12029,125 +12543,133 @@ Wybierz inną nazwę i spróbuj ponownie. WebUI - + Credentials are not set Poświadczenia nie są ustawione - + WebUI: HTTPS setup successful Interfejs WWW: pomyślna konfiguracja HTTPS - + WebUI: HTTPS setup failed, fallback to HTTP Interfejs WWW: nieprawidłowa konfiguracja HTTPS, powrót do HTTP - + WebUI: Now listening on IP: %1, port: %2 Interfejs WWW: teraz nasłuchuje IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Interfejs WWW: nie można powiązać z IP: %1, port: %2. Powód: %3 + + fs + + + Unknown error + Nieznany błąd + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_pt_BR.ts b/src/lang/qbittorrent_pt_BR.ts index 080417e2d..e43804846 100644 --- a/src/lang/qbittorrent_pt_BR.ts +++ b/src/lang/qbittorrent_pt_BR.ts @@ -14,75 +14,75 @@ Sobre - + Authors Autores - + Current maintainer Responsável atual - + Greece Grécia - - + + Nationality: Nacionalidade: - - + + E-mail: E-mail: - - + + Name: Nome: - + Original author Autor original - + France França - + Special Thanks Agradecimentos Especiais - + Translators Tradutores - + License Licença - + Software Used Softwares Usados - + qBittorrent was built with the following libraries: O qBittorrent foi construído com as seguintes bibliotecas: - + Copy to clipboard Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 O Projeto do qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 O Projeto do qBittorrent @@ -166,15 +166,10 @@ Salvar em - + Never show again Nunca mostrar de novo - - - Torrent settings - Configurações do torrent - Set as default category @@ -191,12 +186,12 @@ Iniciar torrent - + Torrent information Informações do torrent - + Skip hash check Ignorar verificação do hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Usar outro caminho pro torrent incompleto + + + Torrent options + Opções do torrent + Tags: @@ -231,75 +231,75 @@ Condição de parada: - - + + None Nenhum - - + + Metadata received Metadados recebidos - + Torrents that have metadata initially will be added as stopped. - + Torrents que possuem metadados inicialmente serão adicionados como parados. - - + + Files checked Arquivos verificados - + Add to top of queue Adicionar ao início da fila - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Quando selecionado, o arquivo .torrent não será apagado independente das configurações na página "Download" do diálogo das Opções - + Content layout: Layout do conteúdo: - + Original Original - + Create subfolder Criar sub-pasta - + Don't create subfolder Não criar sub-pasta - + Info hash v1: Informações do hash v1: - + Size: Tamanho: - + Comment: Comentário: - + Date: Data: @@ -329,151 +329,147 @@ Lembrar o último caminho de salvamento usado - + Do not delete .torrent file Não apagar arquivo .torrrent - + Download in sequential order Baixar em ordem sequencial - + Download first and last pieces first Baixar primeiro os primeiros e os últimos pedaços - + Info hash v2: Informações do hash v2: - + Select All Selecionar tudo - + Select None Não selecionar nenhum - + Save as .torrent file... Salvar como arquivo .torrent... - + I/O Error Erro de E/S - + 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 - + Magnet link Link magnético - + Retrieving metadata... Recuperando metadados... - - + + Choose save path Escolha o caminho do salvamento - + No stop condition is set. Nenhuma condição de parada definida. - + Torrent will stop after metadata is received. O torrent será parado após o recebimento dos metadados. - Torrents that have metadata initially aren't affected. - Torrents que possuem metadados inicialmente não são afetados. - - - + Torrent will stop after files are initially checked. O torrent será parado após o a verificação inicial dos arquivos. - + This will also download metadata if it wasn't there initially. Isso também fará o download dos metadados, caso não existam inicialmente. - - + + N/A N/D - + %1 (Free space on disk: %2) %1 (Espaço livre no disco: %2) - + Not available This size is unavailable. Não disponível - + Torrent file (*%1) Arquivo torrent (*%1) - + Save as torrent file Salvar como arquivo torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Não pôde exportar o arquivo de metadados do torrent '%1'. Motivo: %2. - + Cannot create v2 torrent until its data is fully downloaded. Não pôde criar o torrent v2 até que seus dados sejam totalmente baixados. - + Filter files... Filtrar arquivos... - + Parsing metadata... Analisando metadados... - + Metadata retrieval complete Recuperação dos metadados completa @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Baixando torrent... Fonte: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Falha ao adicionar o torrent. Fonte: "%1". Motivo: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Detectada uma tentativa de adicionar um torrent duplicado. Fonte: %1. Torrent existente: %2. Resultado: %3 - - - + Merging of trackers is disabled A mesclagem de rastreadores está desativada - + Trackers cannot be merged because it is a private torrent Os rastreadores não podem ser mesclados pois este é um torrent privado - + Trackers are merged from new source Rastreadores mesclados a partir da nova fonte + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Detectada uma tentativa de adicionar um torrent duplicado. Fonte: %1. Torrent existente: %2. Hash de informação do torrent: %3. Resultado: %4 + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Limites de compartilhamento do torrent + Limites de compartilhamento do torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Verificar os torrents de novo ao completar - - + + ms milliseconds ms - + Setting Configuração - + Value Value set for this setting Valor - + (disabled) (desativado) - + (auto) (auto) - + + min minutes mín - + All addresses Todos os endereços - + qBittorrent Section Seção do qBittorrent - - + + Open documentation Abrir documentação - + All IPv4 addresses Todos os endereços IPv4 - + All IPv6 addresses Todos os endereços IPv6 - + libtorrent Section Seção do libtorrent - + Fastresume files Retomada rápida dos arquivos - + SQLite database (experimental) Banco de dados do SQLite (experimental) - + Resume data storage type (requires restart) Retomar tipo de armazenamento de dados (requer reinicialização) - + Normal Normal - + Below normal Abaixo do normal - + Medium Média - + Low Baixa - + Very low Muito baixa - + Physical memory (RAM) usage limit Limite de uso da memória física (RAM) - + Asynchronous I/O threads Threads de E/S assíncronos - + Hashing threads Threads de cálculo do hash - + File pool size Tamanho do conjunto de arquivos - + Outstanding memory when checking torrents Memória excelente quando verificar torrents - + Disk cache Cache do disco - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalo de expiração do cache do disco - + Disk queue size Tamanho da fila do disco - - + + Enable OS cache Ativar cache do sistema operacional - + Coalesce reads & writes Coalescer leituras & gravações - + Use piece extent affinity Usar afinidade da extensão dos pedaços - + Send upload piece suggestions Enviar sugestões de pedaços do upload - - - - + + + + + 0 (disabled) 0 (desativado) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Salvar o intervalo de dados de retomada [0: desativado] - + Outgoing ports (Min) [0: disabled] Portas de saída (Mín) [0: desativado] - + Outgoing ports (Max) [0: disabled] Portas de saída (Máx) [0: desativado] - + 0 (permanent lease) 0 (locação permanente) - + UPnP lease duration [0: permanent lease] Duração da locação UPnP [0: locação permanente] - + Stop tracker timeout [0: disabled] Intervalo para parar o rastreador [0: disabled] - + Notification timeout [0: infinite, -1: system default] Intervalo da notificação [0: infinito, -1: padrão do sistema] - + Maximum outstanding requests to a single peer Máximo de requisições pendentes pra um único par - - - - - + + + + + KiB KiB - + (infinite) (infinito) - + (system default) (padrão do sistema) - + + Delete files permanently + Excluir arquivos permanentemente + + + + Move files to trash (if possible) + Mover arquivos para a Lixeira (se possível) + + + + Torrent content removing mode + Modo de remoção de conteúdo do torrent + + + This option is less effective on Linux Esta opção é menos efetiva no Linux - + Process memory priority Prioridade de memória de processo - + Bdecode depth limit Limite de profundidade Bdecode - + Bdecode token limit Limite do token Bdecode - + Default Padrão - + Memory mapped files Arquivos mapeados na memória - + POSIX-compliant Compatível com POSIX - + + Simple pread/pwrite + Pread/pwrite simples + + + Disk IO type (requires restart) Tipo de E/S de disco (requer reinicialização) - - + + Disable OS cache Desativar cache do sistema - + Disk IO read mode Modo de leitura de E/S do disco: - + Write-through Write-through - + Disk IO write mode Modo de escrita de E/S do disco - + Send buffer watermark Enviar marca d'água do buffer - + Send buffer low watermark Enviar marca d'água do buffer baixo - + Send buffer watermark factor Enviar fator de marca d'água do buffer - + Outgoing connections per second Conexões de saída por segundo - - + + 0 (system default) 0 (padrão do sistema) - + Socket send buffer size [0: system default] Tamanho do buffer do socket de envio [0: padrão do sistema] - + Socket receive buffer size [0: system default] Tamanho do buffer do socket de recebimento [0: padrão do sistema] - + Socket backlog size Tamanho do backlog do soquete - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Intervalo para salvar estatísticas [0: desativado] + + + .torrent file size limit Limite de tamanho do arquivo .torrent - + Type of service (ToS) for connections to peers Tipo de serviço (ToS) para as conexões com os pares - + Prefer TCP Preferir TCP - + Peer proportional (throttles TCP) Par proporcional (sufoca o TCP) - + + Internal hostname resolver cache expiry interval + Intervalo de expiração do cache do resolvedor de nome de host interno + + + Support internationalized domain name (IDN) Suporte a nome internacionalizado de domínio (IDN) - + Allow multiple connections from the same IP address Permitir múltiplas conexões do mesmo endereço de IP - + Validate HTTPS tracker certificates Validar certificados dos rastreadores HTTPS - + Server-side request forgery (SSRF) mitigation Atenuação da falsificação da requisição do lado do servidor (SSRF) - + Disallow connection to peers on privileged ports Não permitir conexão com pares em portas privilegiadas - + It appends the text to the window title to help distinguish qBittorent instances - + Ele anexa o texto ao título da janela para ajudar a distinguir as instâncias do qBittorent - + Customize application instance name - + Personalizar nome da instância do aplicativo - + It controls the internal state update interval which in turn will affect UI updates Ele controla o intervalo de atualização do estado interno que, por sua vez, afetará as atualizações da interface do usuário - + Refresh interval Intervalo de atualização - + Resolve peer host names Revelar nomes dos hospedeiros pares - + IP address reported to trackers (requires restart) Endereço de IP reportado aos rastreadores (requer reiniciar) - + + Port reported to trackers (requires restart) [0: listening port] + Porta reportada aos trackers (necessário reiniciar) [0: porta de escuta] + + + Reannounce to all trackers when IP or port changed Reanunciar para todos os rastreadores quando o IP ou porta for alterado - + Enable icons in menus Ativar ícones nos menus - + + Attach "Add new torrent" dialog to main window + Anexar diálogo "Adicionar novo torrent" à janela principal + + + Enable port forwarding for embedded tracker Habilitar encaminhamento de porta para o rastreador incorporado - + Enable quarantine for downloaded files Ativar quarentena par arquivos baixados - + Enable Mark-of-the-Web (MOTW) for downloaded files Ativar Mark-of-the-Web (MOTW) para arquivos baixados - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Afeta a validação de certificados e atividades de protocolo não torrent (por exemplo, feeds RSS, atualizações de programas, arquivos torrent, banco de dados geoip, etc.) + + + + Ignore SSL errors + Ignorar erros SSL + + + (Auto detect if empty) (Auto detect if empty) - + Python executable path (may require restart) Caminho do executável do Python (pode ser necessário reiniciar) - + + Start BitTorrent session in paused state + Iniciar sessão do Bittorrent no modo pausado + + + + sec + seconds + seg + + + + -1 (unlimited) + -1 (ilimitado) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Tempo limite de encerramento da sessão BitTorrent [-1: ilimitado] + + + Confirm removal of tracker from all torrents Confirmar remoção do rastreador de todos os torrents - + Peer turnover disconnect percentage Porcentagem da desconexão da rotatividade dos pares - + Peer turnover threshold percentage Porcentagem do limite da rotatividade dos pares - + Peer turnover disconnect interval Intervalo da desconexão da rotatividade dos pares - + Resets to default if empty Resets to default if empty - + DHT bootstrap nodes Nós de inicialização DHT - + I2P inbound quantity Quantidade de entrada I2P - + I2P outbound quantity Quantidade de saída I2P - + I2P inbound length Comprimento de entrada I2P - + I2P outbound length Comprimento de saída I2P - + Display notifications Exibir notificações - + Display notifications for added torrents Exibe notificações pros torrents adicionados - + Download tracker's favicon Baixar favicon do rastreador - + Save path history length Tamanho do histórico do caminho do salvamento - + Enable speed graphs Ativar os gráficos da velocidade - + Fixed slots Slots fixos - + Upload rate based Baseado na taxa de upload - + Upload slots behavior Comportamento dos slots de upload - + Round-robin Pontos-corridos - + Fastest upload Upload mais rápido - + Anti-leech Anti-leech - + Upload choking algorithm Algorítmo de sufoco do upload - + Confirm torrent recheck Confirmar nova verificação do torrent - + Confirm removal of all tags Confirmar remoção de todas as etiquetas - + Always announce to all trackers in a tier Sempre anunciar a todos os rastreadores numa camada - + Always announce to all tiers Sempre anunciar pra todas as camadas - + Any interface i.e. Any network interface Qualquer interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algorítmo de modo misto %1-TCP - + Resolve peer countries Revelar os países dos pares - + Network interface Interface de rede - + Optional IP address to bind to Endereço de IP opcional pra se vincular - + Max concurrent HTTP announces Máximo de anúncios HTTP simultâneos - + Enable embedded tracker Ativar rastreador embutido - + Embedded tracker port Porta do rastreador embutido + + AppController + + + + Invalid directory path + Caminho da pasta inválido + + + + Directory does not exist + A pasta não existe + + + + Invalid mode, allowed values: %1 + Modo inválido, valores permitidos: %1 + + + + cookies must be array + os cookies devem ser uma matriz + + Application - + Running in portable mode. Auto detected profile folder at: %1 Executando no modo portátil. Pasta do perfil auto-detectada em: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Bandeira de linha de comando redundante detectado: "%1". O modo portátil implica uma retomada rápida relativa. - + Using config directory: %1 Usando diretório das configurações: %1 - + Torrent name: %1 Nome do torrent: %1 - + Torrent size: %1 Tamanho do torrent: %1 - + Save path: %1 Caminho do salvamento: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds O torrent foi baixado em %1. - + + Thank you for using qBittorrent. Obrigado por usar o qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, enviando notificação por e-mail - + Add torrent failed Falha ao adicionar torrent - + Couldn't add torrent '%1', reason: %2. Não foi possível adicionar o torrent '%1', motivo: %2. - + The WebUI administrator username is: %1 O nome de usuário do administrador da interface web é: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 A senha do administrador da interface web não foi definida. Uma senha temporária será fornecida para esta sessão: %1 - + You should set your own password in program preferences. Você deve definir sua própria senha nas preferências do programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. A interface web está desativada! Para ativar, edite o arquivo de configuração manualmente. - + Running external program. Torrent: "%1". Command: `%2` Execução de programa externo. Torrent: "%1". Comando: '%2' - + Failed to run external program. Torrent: "%1". Command: `%2` Falha ao executar o programa externo. Torrent: "%1". Comando: '%2' - + Torrent "%1" has finished downloading O torrent "%1" terminou de ser baixado - + WebUI will be started shortly after internal preparations. Please wait... A interface web será iniciada logo após os preparativos internos. Por favor, aguarde... - - + + Loading torrents... Carregando torrents... - + E&xit S&air - + I/O Error i.e: Input/Output Error Erro de E/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Motivo: %2 - + Torrent added Torrent adicionado - + '%1' was added. e.g: xxx.avi was added. '%1' foi adicionado. - + Download completed Download concluído - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 iniciado. ID do proceso: %2 - + + This is a test email. + Este é um e-mail de teste. + + + + Test email + Testar e-mail + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' terminou de ser baixado. - + Information Informação - + To fix the error, you may need to edit the config file manually. Para corrigir o erro, pode ser necessário editar o arquivo de configuração manualmente. - + To control qBittorrent, access the WebUI at: %1 Pra controlar o qBittorrent acesse a interface de usuário da web em: %1 - + Exit Sair - + Recursive download confirmation Confirmação do download recursivo - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? O torrent '%1' contém arquivos .torrent, deseja continuar com o download deles? - + Never Nunca - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Download recursivo do arquivo .torrent dentro do torrent. Torrent fonte: "%1". Arquivo: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Falhou em definir o limite de uso da memória física (RAM). Código do erro: %1. Mensagem de erro: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Falha ao definir limite de uso de memória física (RAM). Tamanho solicitado: %1. Limite do sistema: %2. Código de erro: %3. Mensagem de erro: "%4" - + qBittorrent termination initiated Finalização do qBittorrent iniciada - + qBittorrent is shutting down... O qBittorrent está fechando... - + Saving torrent progress... Salvando o progresso do torrent... - + qBittorrent is now ready to exit O qBittorrent agora está pronto para ser fechado @@ -1609,12 +1715,12 @@ Motivo: %2 Prioridade: - + Must Not Contain: Não Deve Conter: - + Episode Filter: Filtro do Episódio: @@ -1667,263 +1773,263 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t &Exportar... - + Matches articles based on episode filter. Combina artigos baseado no filtro dos episódios. - + Example: Exemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match combinará nos episódios 2, 5, 8 até 15, 30 e dos episódios posteriores da temporada um - + Episode filter rules: Regras do filtro dos episódios: - + Season number is a mandatory non-zero value O número da temporada é um valor obrigatório não-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 alcance pros 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 Alcance normal: <b>1x25-40;</b> combina com os episódios 25 até 40 da temporada um - + Episode number is a mandatory positive value O número do episódio é um valor positivo obrigatório - + Rules Regras - + Rules (legacy) Regras (legado) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Alcance infinito: <b>1x25-;</b> combina com os episódios 25 e acima da temporada um e todos os episódios das temporadas posteriores - + Last Match: %1 days ago Última combinação: %1 dias atrás - + Last Match: Unknown Última combinação: 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 do nome da regra - - + + A rule with this name already exists, please choose another name. Uma regra com este nome já existe, por favor escolha outro nome. - + Are you sure you want to remove the download rule named '%1'? Você tem certeza que você quer remover a regra do download chamada "%1"? - + Are you sure you want to remove the selected download rules? Você tem certeza que você quer remover as regras de download selecionadas? - + Rule deletion confirmation Confirmação de exclusão da regra - + Invalid action Ação inválida - + The list is empty, there is nothing to export. A lista está vazia, não há nada pra exportar. - + Export RSS rules Exportar regras do RSS - + I/O Error Erro de E/S - + Failed to create the destination file. Reason: %1 Falhou em criar o arquivo de destino. Motivo: %1 - + Import RSS rules Importar regras do RSS - + Failed to import the selected rules file. Reason: %1 Falhou em importar o arquivo de regras selecionado. Motivo: %1 - + Add new rule... Adicionar nova regra... - + Delete rule Apagar regra - + Rename rule... Renomear regra... - + Delete selected rules Apagar as regras selecionadas - + Clear downloaded episodes... Limpar episódios baixados... - + Rule renaming Renomear regra - + Please type the new rule name Por favor digite o novo nome da regra - + Clear downloaded episodes Limpar episódios baixados - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Você tem certeza que você quer limpar a lista de episódios baixados da regra selecionada? - + Regex mode: use Perl-compatible regular expressions Modo Regex: usar expressões regulares compatíveis com Perl - - + + Position %1: %2 Posição %1: %2 - + Wildcard mode: you can use Modo wildcard: você pode usar - - + + Import error Erro ao importar - + Failed to read the file. %1 Falha ao ler o arquivo. %1 - + ? to match any single character ? pra combinar com qualquer caractere único - + * to match zero or more of any characters * pra combinar com zero ou mais de quaisquer caracteres - + Whitespaces count as AND operators (all words, any order) Espaços em branco contam como operadores AND (todas as palavras, qualquer ordem) - + | is used as OR operator | é usado como operador OR - + If word order is important use * instead of whitespace. Se as ordem das palavras é importante, use * ao invés de espaço em branco. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Uma expressão com uma cláusula %1 vazia (ex: %2) - + will match all articles. combinará com todos os artigos. - + will exclude all articles. apagará todos os artigos. @@ -1965,7 +2071,7 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Não é possível criar pasta de retomada do torrent: "%1" @@ -1975,28 +2081,38 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Não foi possível analisar os dados de retomada: formato inválido - - + + Cannot parse torrent info: %1 Não foi possível analisar as informações do torrent: %1 - + Cannot parse torrent info: invalid format Não foi possível analisar as informações do torrent: formato inválido - + Mismatching info-hash detected in resume data Hash de informações incompatível detectado nos dados de resumo - + + Corrupted resume data: %1 + Dados de resumo corrompidos: %1 + + + + save_path is invalid + save_path é inválido + + + Couldn't save torrent metadata to '%1'. Error: %2. Não pôde salvar os metadados do torrent em '%1'. Erro: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Não foi possível salvar os dados de retomada do torrent para '%1'. Erro: %2. @@ -2007,16 +2123,17 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t + Cannot parse resume data: %1 Não foi possível analisar os dados de retomada: %1 - + Resume data is invalid: neither metadata nor info-hash was found Dados de retomada inválidos: não foram encontrados nem metadados, nem informações do hash - + Couldn't save data to '%1'. Error: %2 Não pôde salvar os dados em '%1'. Erro: %2 @@ -2024,38 +2141,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t BitTorrent::DBResumeDataStorage - + Not found. Não encontrado. - + Couldn't load resume data of torrent '%1'. Error: %2 Não foi possível carregar os dados de retomada do torrent '%1'. Erro: %2 - - + + Database is corrupted. O banco de dados está corrompido. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Não foi possível ativar o modo de registro Write-Ahead Logging (WAL). Erro: %1. - + Couldn't obtain query result. Não foi possível obter o resultado da consulta. - + WAL mode is probably unsupported due to filesystem limitations. O modo WAL provavelmente não é suportado devido a limitações do sistema de arquivos. - + + + Cannot parse resume data: %1 + Não foi possível analisar os dados de retomada: %1 + + + + + Cannot parse torrent info: %1 + Não foi possível analisar as informações do torrent: %1 + + + + Corrupted resume data: %1 + Dados de resumo corrompidos: %1 + + + + save_path is invalid + save_path é inválido + + + Couldn't begin transaction. Error: %1 Não foi possível iniciar a transação. Erro: %1 @@ -2063,22 +2202,22 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Não pôde salvar os metadados do torrent. Erro: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Não foi possível armazenar os dados de retomada do torrent '%1'. Erro: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Não foi possível apagar os dados de retomada do torrent '%1'. Erro: %2 - + Couldn't store torrents queue positions. Error: %1 Não pôde armazenar as posições da fila dos torrents. Erro: %1 @@ -2086,457 +2225,503 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Suporte a Tabela do Hash Distribuído (DHT): %1 - - - - - - - - - + + + + + + + + + ON LIGADO - - - - - - - - - + + + + + + + + + OFF DESLIGADO - - + + Local Peer Discovery support: %1 Suporte a Descoberta de Pares locais: %1 - + Restart is required to toggle Peer Exchange (PeX) support É necessário reiniciar para ativar/desativar o suporte para Troca de Pares (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Falha ao retomar o torrent. Torrent: "%1". Motivo: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Falha ao retomar o torrent: ID de torrent inconsistente detectado. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Dados inconsistentes detectados: a categoria está ausente no arquivo de configuração. A categoria será recuperada, mas suas configurações serão redefinidas para o padrão. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Dados inconsistentes detectados: categoria inválida. Torrent: "%1". Categoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Detectada falta de combinação entre os caminhos do salvamento da categoria recuperada e o caminho de salvamento atual do torrent. O torrent agora foi trocado pro modo Manual. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Dados inconsistentes detectados: a tag está ausente no arquivo de configuração. A tag será recuperada. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Dados inconsistentes detectados: tag inválida. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Detectado evento de despertar do sistema. Reanunciando a todos os rastreadores... - + Peer ID: "%1" ID do par: "%1" - + HTTP User-Agent: "%1" Agente do Usuário HTTP: "%1" - + Peer Exchange (PeX) support: %1 Suporte para Troca de Pares (PeX): %1 - - + + Anonymous mode: %1 Modo anônimo: %1 - - + + Encryption support: %1 Suporte a criptografia: %1 - - + + FORCED FORÇADO - + Could not find GUID of network interface. Interface: "%1" Não foi possível encontrar o GUID da interface de rede. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" Tentando escutar na seguinte lista de endereços de IP: "%1" - + Torrent reached the share ratio limit. O torrent atingiu o limite da proporção de compartimento. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent removido. - - - - - - Removed torrent and deleted its content. - Torrent removido e apagado o seu conteúdo. - - - - - - Torrent paused. - Torrent pausado. - - - - - + Super seeding enabled. Super semeadura ativada. - + Torrent reached the seeding time limit. O torrent atingiu o limite de tempo de semeadura. - + Torrent reached the inactive seeding time limit. O torrent atingiu o limite de tempo de seeding inativo. - + Failed to load torrent. Reason: "%1" Falha ao carregar o torrent. Motivo: "%1" - + I2P error. Message: "%1". I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON Suporte UPnP/NAT-PMP: LIGADO - + + Saving resume data completed. + Salvamento dos dados de retomada concluído. + + + + BitTorrent session successfully finished. + Sessão Bittorrent encerrada em sucesso. + + + + Session shutdown timed out. + O tempo limite do encerramento da sessão foi atingido. + + + + Removing torrent. + Removendo o torrent. + + + + Removing torrent and deleting its content. + Removendo o torrent e excluindo seu conteúdo. + + + + Torrent stopped. + Torrent parado. + + + + Torrent content removed. Torrent: "%1" + Conteúdo do torrent removido. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Falha ao remover conteúdo do torrent. Torrent: "%1". Erro: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent removido. Torrent: "%1" + + + + Merging of trackers is disabled + A mesclagem de rastreadores está desativada + + + + Trackers cannot be merged because it is a private torrent + Os rastreadores não podem ser mesclados pois este é um torrent privado + + + + Trackers are merged from new source + Rastreadores mesclados a partir da nova fonte + + + UPnP/NAT-PMP support: OFF Suporte a UPnP/NAT-PMP: DESLIGADO - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Falha ao exportar o torrent. Torrent: "%1". Destino: "%2". Motivo: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Abortado o salvamento dos dados de retomada. Número de torrents pendentes: %1 - + The configured network address is invalid. Address: "%1" O endereço de rede configurado é inválido. Endereço: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Falha ao encontrar o endereço de rede configurado para escutar. Endereço: "%1" - + The configured network interface is invalid. Interface: "%1" A interface da rede configurada é inválida. Interface: "%1" - + + Tracker list updated + Lista de trackers atualizada + + + + Failed to update tracker list. Reason: "%1" + Falha ao atualizar lista de trackers. Motivo: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Endereço de IP inválido rejeitado enquanto aplicava a lista de endereços de IP banidos. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Adicionado o rastreador ao torrent. Torrent: "%1". Rastreador: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Removido o rastreador do torrent. Torrent: "%1". Rastreador: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL da semente adicionada ao torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL da semente removida do torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent pausado. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Falha ao remover arquivo parcial. Torrent: "%1". Motivo: "%2". - + Torrent resumed. Torrent: "%1" Torrent retomado. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Download do torrent concluído. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Movimentação do torrent cancelada. Torrent: "%1". Fonte: "%2". Destino: "%3" - + + Duplicate torrent + Torrent duplicado + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Detectada uma tentativa de adicionar um torrent duplicado. Torrent existente: %1. Hash de informação do torrent: %2. Resultado: %3 + + + + Torrent stopped. Torrent: "%1" + Torrent parado. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Falha ao enfileirar a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: o torrent está sendo movido atualmente para o destino - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Falha ao enfileirar a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: ambos os caminhos apontam para o mesmo local - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Enfileirada a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Iniciando a movimentação do torrent. Torrent: "%1". Destino: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Falha ao salvar a configuração das categorias. Arquivo: "%1". Erro: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Falha ao analisar a configuração das categorias. Arquivo: "%1". Erro: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Arquivo de filtro dos IPs analisado com sucesso. Número de regras aplicadas: %1 - + Failed to parse the IP filter file Falha ao analisar o arquivo de filtro de IPs - + Restored torrent. Torrent: "%1" Torrent restaurado. Torrent: "%1" - + Added new torrent. Torrent: "%1" Novo torrent adicionado. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent com erro. Torrent: "%1". Erro: "%2" - - - Removed torrent. Torrent: "%1" - Torrent removido. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent removido e apagado o seu conteúdo. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Os parâmetros SSL do torrent estão faltando. Torrent: "%1". Mensagem: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alerta de erro de arquivo. Torrent: "%1". Arquivo: "%2". Motivo: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Falha ao mapear portas UPnP/NAT-PMP. Mensagem: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Êxito ao mapear portas UPnP/NAT-PMP. Mensagem: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtro de IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). porta filtrada (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). porta privilegiada (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Falha na conexão com o URL de seed. Torrent: "%1". URL: "%2". Erro: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Erro de proxy SOCKS5. Endereço: %1. Mensagem: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restrições do modo misto - + Failed to load Categories. %1 Falha ao carregar as categorias. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Falha ao carregar a configuração das categorias. Arquivo: "%1". Erro: "Formato inválido dos dados" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent removido, mas ocorreu uma falha ao excluir o seu conteúdo e/ou arquivo parcial. Torrent: "%1". Erro: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 está desativado - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 está desativado - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Falha ao buscar DNS do URL da semente. Torrent: "%1". URL: "%2". Erro: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Mensagem de erro recebida do URL da semente. Torrent: "%1". URL: "%2". Mensagem: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Êxito ao escutar no IP. IP: "%1". Porta: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Falha ao escutar o IP. IP: "%1". Porta: "%2/%3". Motivo: "%4" - + Detected external IP. IP: "%1" Detectado IP externo. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Erro: a fila de alertas internos está cheia e os alertas foram descartados, você pode experienciar uma desempenho baixo. Tipos de alerta descartados: "%1". Mensagem: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent movido com sucesso. Torrent: "%1". Destino: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Falha ao mover o torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: "%4" @@ -2546,19 +2731,19 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Failed to start seeding. - + Falha ao iniciar a semear. BitTorrent::TorrentCreator - + Operation aborted Operação abortada - - + + Create new torrent file failed. Reason: %1. Falhou em criar um novo arquivo torrent. Motivo: %1. @@ -2566,67 +2751,67 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Falhou em adicionar o par "%1" ao torrent "%2". Motivo: %3 - + Peer "%1" is added to torrent "%2" O par "%1" foi adicionado ao torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Dados inesperados detectados. Torrent: %1. Dados: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Não foi possível salvar no arquivo. Motivo: "%1". O torrent agora está no modo "somente upload". - + Download first and last piece first: %1, torrent: '%2' Baixar primeiro os primeiros e os últimos pedaços: %1, torrent: '%2' - + On Ligado - + Off Desligado - + Failed to reload torrent. Torrent: %1. Reason: %2 Falha ao recarregar o torrent. Torrent: %1. Motivo: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Falha ao gerar dados de resumo. Torrent: "%1". Motivo: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Falha ao restaurar o torrent. Os arquivos provavelmente foram movidos ou o armazenamento não está acessível. Torrent: "%1". Motivo: "%2" - + Missing metadata Metadados faltando - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Falhou em renomear o arquivo. Torrent: "%1", arquivo: "%2", motivo: "%3" - + Performance alert: %1. More info: %2 Alerta de performance: %1. Mais informações: %2 @@ -2647,189 +2832,189 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' O parâmetro '%1' deve seguir a sintaxe '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' O parâmetro '%1' deve seguir a sintaxe '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Número inteiro esperado na variável do ambiente '%1', mas obteve '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - O parâmetro '%1' deve seguir a sintaxe '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Esperava %1 na variável do ambiente '%2', mas obteve '%3' - - + + %1 must specify a valid port (1 to 65535). %1 deve especificar uma porta válida (De 1 até 65535). - + Usage: Uso: - + [options] [(<filename> | <url>)...] [opções] [(<filename> | <url>)...] - + Options: Opções: - + Display program version and exit Exibe a versão do programa e sai - + Display this help message and exit Exibe esta mensagem de ajuda e sai - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + O parâmetro '%1' deve seguir a sintaxe '%1=%2' + + + Confirm the legal notice Confirme o aviso legal - - + + port porta - + Change the WebUI port Alterar a porta WebUI - + Change the torrenting port Alterar a porta de torrent - + Disable splash screen Desativar a tela de inicialização - + Run in daemon-mode (background) Executar no modo-daemon (em 2o plano) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Armazenar os arquivos de configuração em <dir> - - + + name nome - + Store configuration files in directories qBittorrent_<name> Armazenar os arquivos de configuração nos diretórios do qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Acessar os arquivos de retomada rápida do libtorrent e criar caminhos de arquivos relativos ao diretório do perfil - + files or URLs arquivos ou URLs - + Download the torrents passed by the user Baixa os torrents passados pelo usuário - + Options when adding new torrents: Opções quando adicionar novos torrents: - + path caminho - + Torrent save path Caminho de salvamento do torrent - - Add torrents as started or paused - Adicionar torrents como iniciados ou pausados + + Add torrents as running or stopped + Adicionar torrents como iniciados ou parados - + Skip hash check Ignorar a verificação do hash - + Assign torrents to category. If the category doesn't exist, it will be created. Atribui os torrents a uma categoria. Se a categoria não existir ela será criada. - + Download files in sequential order Baixar arquivos em ordem sequencial - + Download first and last pieces first Baixar os primeiros e os últimos pedaços primeiro - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Especifica se o diálogo "Adicionar Novo Torrent" abre quando adicionar um torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Os valores das opções podem ser supridos via variáveis do ambiente. Para a opção chamada 'parameter-name', o nome da variável do ambiente é 'QBT_PARAMETER_NAME' (em maiúsculas, '-' substituído por '_'). Pra passar os valores da bandeira, defina a variável como '1' ou 'TRUE'. Por exemplo, pra desativar a tela de inicialização: - + Command line parameters take precedence over environment variables Os parâmetros da linha de comando têm precedência sobre as variáveis do ambiente - + Help Ajuda @@ -2881,13 +3066,13 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t - Resume torrents - Retomar torrents + Start torrents + Iniciar torrents - Pause torrents - Pausar torrents + Stop torrents + Parar torrents @@ -2898,15 +3083,20 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t ColorWidget - + Edit... Editar... - + Reset Resetar + + + System + Sistema + CookiesDialog @@ -2947,12 +3137,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t CustomThemeSource - + Failed to load custom theme style sheet. %1 Falha ao carregar a folha de estilo do tema personalizado. %1 - + Failed to load custom theme colors. %1 Falha ao carregar as cores do tema personalizado. %1 @@ -2960,7 +3150,7 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t DefaultThemeSource - + Failed to load default theme colors. %1 Falha ao carregar as cores do tema padrão. %1 @@ -2979,23 +3169,23 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t - Also permanently delete the files - Também excluir permanentemente os arquivos + Also remove the content files + Remover também os arquivos de conteúdo - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Deseja realmente remover '%1' da lista de transferências? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Deseja realmente remover os %1 torrents selecionados da lista de transferências? - + Remove Remover @@ -3008,12 +3198,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Baixar das URLs - + Add torrent links Adicionar links dos torrents - + One link per line (HTTP links, Magnet links and info-hashes are supported) Um link por linha (links HTTP, links magnéticos e hashes das informações são suportados) @@ -3023,12 +3213,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Download - + No URL entered Nenhuma URL inserida - + Please type at least one URL. Por favor digite pelo menos uma URL. @@ -3187,25 +3377,48 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Erro de análise: O arquivo de filtro não é um arquivo P2B válido do PeerGuardian. + + FilterPatternFormatMenu + + + Pattern Format + Formato padrão + + + + Plain text + Texto simples + + + + Wildcards + Curingas + + + + Regular expression + Expressão regular + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Baixando torrent... Fonte: "%1" - - Trackers cannot be merged because it is a private torrent - Os rastreadores não podem ser mesclados pois este é um torrent privado - - - + Torrent is already present O torrent já está presente - + + Trackers cannot be merged because it is a private torrent. + Os rastreadores não podem ser mesclados pois este é um torrent privado. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? O torrent '%1' já existe na lista de transferências. Deseja unir os rastreadores da nova fonte? @@ -3213,38 +3426,38 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t GeoIPDatabase - - + + Unsupported database file size. Tamanho do arquivo do banco de dados não suportado. - + Metadata error: '%1' entry not found. Erro dos metadados: Entrada '%1' não encontrada. - + Metadata error: '%1' entry has invalid type. Erro dos metadados: A 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 - + Database corrupted: no data section found. Banco de dados corrompido: nenhuma seção de dados achada. @@ -3252,17 +3465,17 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 O tamanho da requisição do HTTP excede o limite, fechando o soquete. Limite: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Requisição ruim do HTTP, fechando o soquete. IP: %1. Método: "%2" - + Bad Http request, closing socket. IP: %1 Requisição ruim do HTTP, fechando o soquete. IP: %1 @@ -3303,26 +3516,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t IconWidget - + Browse... Procurar... - + Reset Resetar - + Select icon Selecione o ícone - + Supported image files Arquivos de imagem suportados + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + O gerenciamento de energia encontrou uma interface D-Bus adequada. Interface: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Erro de gerenciamento de energia. Não foi encontrada uma interface D-Bus adequada. + + + + + + Power management error. Action: %1. Error: %2 + Erro de gerenciamento de energia. Ação: %1. Erro: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Erro inesperado do gerenciamento de energia. Estado: %1. Erro: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 foi bloqueado. Motivo: %2. - + %1 was banned 0.0.0.0 was banned %1 foi banido @@ -3369,60 +3616,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 é um parâmetro desconhecido da linha de comando. - - + + %1 must be the single command line parameter. %1 deve ser o único parâmetro da linha de comando. - + Run application with -h option to read about command line parameters. Execute o aplicativo com a opção -h pra ler sobre os parâmetros da linha de comando. - + Bad command line Linha de comando ruim - + Bad command line: Linha de comando ruim: - + An unrecoverable error occurred. An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. Você não pode usar o %1: o qBittorrent já está em execução. - + Another qBittorrent instance is already running. Uma outra instância do qBittorrent já está em execução. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Encontrada uma instância inesperada do qBittorrent. Saindo desta instância. ID do processo atual: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Erro ao daemonizar. Motivo: "%1". Código de erro: %2. @@ -3435,609 +3682,681 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Os formatos de data t &Editar - + &Tools &Ferramentas - + &File &Arquivo - + &Help &Ajuda - + On Downloads &Done Com os &Downloads Concluídos - + &View &Visualizar - + &Options... &Opções... - - &Resume - &Retomar - - - + &Remove &Remover - + Torrent &Creator Criador de &Torrents - - + + Alternative Speed Limits Limites de Velocidade Alternativos - + &Top Toolbar &Barra de Ferramentas no Topo - + Display Top Toolbar Exibir Barra de Ferramentas no Topo - + Status &Bar Barra de &Status - + Filters Sidebar Barra Lateral dos Filtros - + S&peed in Title Bar V&elocidade na Barra Título - + Show Transfer Speed in Title Bar Mostrar Velocidade de Transferência na Barra Título - + &RSS Reader &Leitor de RSS - + Search &Engine Motor de &Busca - + L&ock qBittorrent T&ravar o qBittorrent - + Do&nate! Do&ar! - + + Sh&utdown System + D&esligar o sistema + + + &Do nothing &Não fazer nada - + Close Window Fechar Janela - - R&esume All - R&etomar Todos - - - + Manage Cookies... Gerenciar Cookies... - + Manage stored network cookies Gerenciar cookies armazenados da rede - + Normal Messages Mensagens normais - + Information Messages Mensagens de informação - + Warning Messages Mensagens de aviso - + Critical Messages Mensagens críticas - + &Log &Log - + + Sta&rt + Inicia&r + + + + Sto&p + &Parar + + + + R&esume Session + &Retomar sessão + + + + Pau&se Session + Pau&sar sessão + + + Set Global Speed Limits... Definir limites globais de velocidade... - + Bottom of Queue Final da fila - + Move to the bottom of the queue Mover para o final da fila - + Top of Queue Topo da fila - + Move to the top of the queue Mover para o topo da fila - + Move Down Queue Mover pra baixo na fila - + Move down in the queue Mover pra baixo na fila - + Move Up Queue Mover pra cima na fila - + Move up in the queue Mover pra cima na fila - + &Exit qBittorrent &Sair do qBittorrent - + &Suspend System &Suspender o sistema - + &Hibernate System &Hibernar o sistema - - S&hutdown System - D&esligar o sistema - - - + &Statistics &Estatísticas - + Check for Updates Procurar atualizações - + Check for Program Updates Procurar atualizações do programa - + &About &Sobre - - &Pause - &Pausar - - - - P&ause All - P&ausar Todos - - - + &Add Torrent File... &Adicionar arquivo torrent... - + Open Abrir - + E&xit S&air - + Open URL Abrir URL - + &Documentation &Documentação - + Lock Travar - - - + + + Show Mostrar - + Check for program updates Procurar atualizações do programa - + Add Torrent &Link... Adicionar Link do &Torrent... - + If you like qBittorrent, please donate! Se você gosta do qBittorrent, por favor, doe! - - + + Execution Log Log da Execução - + Clear the password Limpar a senha - + &Set Password &Definir senha - + Preferences Preferências - + &Clear Password &Limpar senha - + Transfers Transferências - - + + qBittorrent is minimized to tray O qBittorrent está minimizado no tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. Este comportamento pode ser mudado nas configurações. Você não será lembrado de novo. - + Icons Only Só ícones - + Text Only Só texto - + Text Alongside Icons Texto junto dos ícones - + Text Under Icons Texto sob os ícones - + Follow System Style Seguir estilo do sistema - - + + UI lock password Senha da tranca da IU - - + + Please type the UI lock password: Por favor digite a senha da tranca da IU: - + Are you sure you want to clear the password? Você tem certeza que você quer limpar a senha? - + Use regular expressions Usar expressões regulares - + + + Search Engine + Motor de Busca + + + + Search has failed + A busca falhou + + + + Search has finished + A busca foi concluída + + + Search Busca - + Transfers (%1) Transferências (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. O qBittorrent foi atualizado e precisa ser reiniciado para as mudanças serem efetivas. - + qBittorrent is closed to tray O qBittorrent está fechado no tray - + Some files are currently transferring. Alguns arquivos estão atualmente sendo transferidos. - + Are you sure you want to quit qBittorrent? Você tem certeza que você quer sair do qBittorrent? - + &No &Não - + &Yes &Sim - + &Always Yes &Sempre sim - + Options saved. Opções salvas. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSADO] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + A instalação do Python não pôde ser baixada. Erro: %1. +Por favor, instale-o manualmente. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Falha ao renomear instalador do Python. Origem: "%1". Destino: "%2" + + + + Python installation success. + Python instalado com sucesso. + + + + Exit code: %1. + Código de saída: %1. + + + + Reason: installer crashed. + Motivo: o instalador travou. + + + + Python installation failed. + Falha na instalação do Python. + + + + Launching Python installer. File: "%1". + Executando instalador do Python. Arquivo: "%1". + + + + Missing Python Runtime Runtime do python ausente - + qBittorrent Update Available Atualização do qBittorent disponível - + 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 pra usar o motor de busca mas ele não parece estar instalado. Você quer instalá-lo agora? - + Python is required to use the search engine but it does not seem to be installed. O Python é requerido pra usar o motor de busca mas ele não parece estar instalado. - - + + Old Python Runtime Runtime do python antigo - + A new version is available. Uma nova versão está disponível. - + Do you want to download %1? Você quer baixar o %1? - + Open changelog... Abrir changelog... - + No updates available. You are already using the latest version. Não há atualizações disponíveis. Você já está usando a versão mais recente. - + &Check for Updates &Procurar atualizações - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? A sua versão do Python (%1) está desatualizada. Requerimento mínimo: %2. Você quer instalar uma versão mais nova agora? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. A sua versão do Python (%1) está desatualizada. Por favor atualize pra versão mais recente pras engines de busca funcionarem. Requerimento mínimo: %2. - + + Paused + Pausado + + + Checking for Updates... Procurar atualizações... - + Already checking for program updates in the background Já procurando por atualizações do programa em segundo plano - + + Python installation in progress... + Instalação do Python em andamento... + + + + Failed to open Python installer. File: "%1". + Falha ao abrir instalador do Python. Arquivo: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Falha na verificação de hash MD5 para o instalador Python. Arquivo: "%1". Hash do resultado: "%2". Hash esperado: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Falha na verificação de hash SHA3-512 para o instalador Python. Arquivo: "%1". Hash do resultado: "%2". Hash esperado: "%3". + + + Download error Erro do download - - Python setup could not be downloaded, reason: %1. -Please install it manually. - A instalação do Python não pôde ser baixada, motivo: %1. -Por favor instale-o manualmente. - - - - + + Invalid password Senha inválida - + Filter torrents... Filtrar torrents... - + Filter by: Filtrar por: - + The password must be at least 3 characters long A senha deve ter pelo menos 3 caracteres - - - + + + RSS (%1) RSS (%1) - + The password is invalid A senha é 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 - + Open Torrent Files Abrir Arquivos Torrent - + Torrent Files Arquivos Torrent @@ -4232,7 +4551,12 @@ Por favor instale-o manualmente. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Erro SSL, URL: "%1", erros: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorando erro do SSL, URL: "%1", erros: "%2" @@ -5526,47 +5850,47 @@ Por favor instale-o manualmente. Net::Smtp - + Connection failed, unrecognized reply: %1 A conexão falhou, resposta não reconhecida: %1 - + Authentication failed, msg: %1 A autenticação falhou, mensagem: %1 - + <mail from> was rejected by server, msg: %1 O <mail from> foi rejeitado pelo servidor, mensagem: %1 - + <Rcpt to> was rejected by server, msg: %1 O <Rcpt to> foi rejeitado pelo servidor, mensagem: %1 - + <data> was rejected by server, msg: %1 O <data> foi rejeitado pelo servidor, mensagem: %1 - + Message was rejected by the server, error: %1 A mensagem foi rejeitada pelo servidor, erro: %1 - + Both EHLO and HELO failed, msg: %1 Ambos o EHLO e o HELO falharam, mensagem: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 O servidor SMTP não parece oferecer suporte a qualquer dos modos de autenticação que nós suportamos [CRAM-MD5|PLAIN|LOGIN], ignorando a autenticação, sabendo que provavelmente falhará... Modos de autenticação do servidor: %1 - + Email Notification Error: %1 E-mail de Notificação do Erro: %1 @@ -5604,299 +5928,283 @@ Por favor instale-o manualmente. BitTorrent - + RSS RSS - - Web UI - Interface de usuário da web - - - + Advanced Avançado - + Customize UI Theme... Personalizar tema da interface... - + Transfer List Lista de Transferência - + Confirm when deleting torrents Confirmar quando apagar torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - Mostra uma caixa de diálogo de confirmação ao pausar/retomar todos os torrents - - - - Confirm "Pause/Resume all" actions - Confirmar ações "Pausar/Retomar todos" - - - + Use alternating row colors In table elements, every other row will have a grey background. Usar cores alternantes nas linhas - + Hide zero and infinity values Ocultar valores zero e infinito - + Always Sempre - - Paused torrents only - Só torrents pausados - - - + Action on double-click Ação do duplo clique - + Downloading torrents: Baixando torrents: - - - Start / Stop Torrent - Iniciar / Parar Torrent - - - - + + Open destination folder Abrir pasta de destino - - + + No action Nenhuma ação - + Completed torrents: Torrents completados: - + Auto hide zero status filters Ocultar filtro de status zero - + Desktop Área de trabalho - + Start qBittorrent on Windows start up Iniciar o qBittorrent quando o Windows inicializar - + Show splash screen on start up Mostrar a tela de inicialização ao inicializar - + Confirmation on exit when torrents are active Confirmação ao sair quando os torrents estão ativos - + Confirmation on auto-exit when downloads finish Confirmação ao auto-sair quando os downloads concluírem - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Para definir o qBittorrent como programa padrão ara arquivos .torrent e/ou links magnéticos<br/>você pode usar o diálogo <span style=" font-weight:600;">Programas Padrão</span> do <span style=" font-weight:600;">Painel de Controle</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + Mostrar espaço livre em disco na barra de status + + + Torrent content layout: Layout do conteúdo do torrent: - + Original Original - + Create subfolder Criar sub-pasta - + Don't create subfolder Não criar sub-pasta - + The torrent will be added to the top of the download queue O torrent será adicionado ao início da fila de downloads - + Add to top of queue The torrent will be added to the top of the download queue Adicionar ao início da fila - + When duplicate torrent is being added Quando um torrent duplicado for adicionado - + Merge trackers to existing torrent Mesclar rastreadores ao torrent existente - + Keep unselected files in ".unwanted" folder Manter arquivos não selecionados na pasta ".unwanted" - + Add... Adicionar... - + Options.. Opções.. - + Remove Remover - + Email notification &upon download completion Notificação por e-mail &ao completar o download - + + Send test email + Enviar e-mail de teste + + + + Run on torrent added: + Executar ao adicionar o torrent: + + + + Run on torrent finished: + Executar ao concluir o torrent: + + + Peer connection protocol: Protocolo de conexão com os pares: - + Any Qualquer um - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Se o &quot;modo misto&quot; estiver habilitado, torrents I2P terão permissão para acessar pares de outras fontes além do rastreador e conectar com IPs regulares, não fornecendo nenhum anonimato. Isso pode ser útil caso o usuário não esteja interessado no anonimato do I2P mas ainda deseje a possibilidade de se conectar a pares I2P.</p></body></html> - - - + Mixed mode Modo misto - - Some options are incompatible with the chosen proxy type! - Algumas opções são incompatíveis com o tipo de proxy escolhido! - - - + If checked, hostname lookups are done via the proxy Se marcado, as pesquisas de nome de servidor são feitas por meio do proxy - + Perform hostname lookup via proxy Realize a consulta de hostname via proxy - + Use proxy for BitTorrent purposes Use proxy para fins de BitTorrent - + RSS feeds will use proxy Os feeds RSS irão usar proxy - + Use proxy for RSS purposes Usar proxy para fins de RSS - + Search engine, software updates or anything else will use proxy Mecanismo de pesquisa, atualizações de software ou qualquer outra coisa usará proxy - + Use proxy for general purposes Usar proxy para fins gerais - + IP Fi&ltering Filtra&gem dos IPs - + Schedule &the use of alternative rate limits Agendar &o uso de limites alternativos das taxas - + From: From start time De: - + To: To end time Até: - + Find peers on the DHT network Achar pares na rede DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Requer encriptação: Só conectar com os pares com encriptação do protocolo Desativar encriptação: Só conectar com os pares sem encriptação do protocolo - + Allow encryption Permitir encriptação - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mais informações</a>) - + Maximum active checking torrents: Máximo de torrents ativos em verificação: - + &Torrent Queueing &Torrents na Fila - + When total seeding time reaches Quando o tempo total de semeadura for atingido - + When inactive seeding time reaches Quando o tempo inativo de semeadura for atingido - - A&utomatically add these trackers to new downloads: - A&dicionar automaticamente estes rastreadores aos novos downloads: - - - + RSS Reader Leitor do RSS - + Enable fetching RSS feeds Ativar a busca de feeds do RSS - + Feeds refresh interval: Intervalo de atualização dos feeds: - + Same host request delay: - + Atraso na solicitação do mesmo host: - + Maximum number of articles per feed: Número máximo de artigos por feed: - - - + + + min minutes min - + Seeding Limits Limites de Semeadura - - Pause torrent - Pausar torrent - - - + Remove torrent Remover torrent - + Remove torrent and its files Remover o torrent e seus arquivos - + Enable super seeding for torrent Ativar super semeadura para o torrent - + When ratio reaches Quando a proporção alcançar - + + Some functions are unavailable with the chosen proxy type! + Algumas funções não estão disponíveis com o tipo de proxy escolhido! + + + + Note: The password is saved unencrypted + Aviso: A senha é salva sem criptografia + + + + Stop torrent + Parar torrent + + + + A&utomatically append these trackers to new downloads: + A&utomaticamente adicionar estes rastreadores aos novos downloads: + + + + Automatically append trackers from URL to new downloads: + Automaticamente adicionar estes rastreadores do URL aos novos downloads: + + + + URL: + URL: + + + + Fetched trackers + Rastreadores buscados + + + + Search UI + Interface de busca + + + + Store opened tabs + Armazenar abas abertas + + + + Also store search results + Também armazenar resultados da busca + + + + History length + Tamanho do histórico + + + RSS Torrent Auto Downloader Auto-Baixador de Torrents do RSS - + Enable auto downloading of RSS torrents Ativar auto-download dos torrents do RSS - + Edit auto downloading rules... Editar regras de auto-download... - + RSS Smart Episode Filter Filtro inteligente de episódios do RSS - + Download REPACK/PROPER episodes Baixar episódios REPACK/PROPER - + Filters: Filtros: - + Web User Interface (Remote control) Interface de Usuário da Web (Controle remoto) - + IP address: Endereço de IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Especifique um endereço IPv4 ou IPv6. Você pode especificar "0.0.0.0" "::" pra qualquer endereço IPv6 ou "*" pra ambos IPv4 e IPv6. - + Ban client after consecutive failures: Banir cliente após falhas consecutivas: - + Never Nunca - + ban for: banir por: - + Session timeout: Tempo pra esgotar a sessão: - + Disabled Desativado - - Enable cookie Secure flag (requires HTTPS) - Ativar bandeira segura do cookie (requer HTTPS) - - - + Server domains: Domínios do servidor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ você deve colocar nomes de domínio usados pelo servidor WebUI. Use ';' pra dividir múltiplas entradas. Pode usar o wildcard '*'. - + &Use HTTPS instead of HTTP &Usar HTTPS ao invés do HTTP - + Bypass authentication for clients on localhost Ignorar autenticação pra clientes no hospedeiro local - + Bypass authentication for clients in whitelisted IP subnets Ignorar autenticação pra clientes em sub-redes com IPs na lista branca - + IP subnet whitelist... Lista branca de sub-redes dos IPs... - + + Use alternative WebUI + Usar interface web alternativa + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Especifique IPs de proxies reversos (ou sub-máscaras, ex.: 0.0.0.0/24) para usar no endereço do cliente encaminhado (atributo X-Forwarded-For). Use ';' pra dividir múltiplas entradas. - + Upda&te my dynamic domain name Atualiz&ar meu nome de domínio dinâmico - + Minimize qBittorrent to notification area Minimizar o qBittorrent na área de notificação - + + Search + Busca + + + + WebUI + Interface Web + + + Interface Interface - + Language: Idioma: - + + Style: + Estilo: + + + + Color scheme: + Esquema de cor: + + + + Stopped torrents only + Somente torrents parados + + + + + Start / stop torrent + Iniciar / Parar torrent + + + + + Open torrent options dialog + Abrir diálogo de opções do torrent + + + Tray icon style: Estilo do ícone do tray: - - + + Normal Normal - + File association Associação de arquivo - + Use qBittorrent for .torrent files Usar qBittorrent pra arquivos .torrent - + Use qBittorrent for magnet links Usar qBittorrent para links magnéticos - + Check for program updates Procurar atualizações do programa - + Power Management Gerenciamento de Energia - + + &Log Files + &Arquivos do log + + + Save path: Caminho do salvamento: - + Backup the log file after: Fazer backup do arquivo de log após: - + Delete backup logs older than: Apagar logs de backup mais velhos do que: - + + Show external IP in status bar + Mostrar IP externo na barra de status + + + When adding a torrent Quando adicionar um torrent - + Bring torrent dialog to the front Trazer o diálogo do torrent para a frente - + + The torrent will be added to download list in a stopped state + O torrent será adicionado à lista de downloads no estado parado + + + Also delete .torrent files whose addition was cancelled Também apagar arquivos .torrent cuja adição foi cancelada - + Also when addition is cancelled Também quando a adição for cancelada - + Warning! Data loss possible! Aviso! Perda de dados possível! - + Saving Management Gerenciamento do salvamento - + Default Torrent Management Mode: Modo de gerenciamento padrão dos torrents: - + Manual Manual - + Automatic Automático - + When Torrent Category changed: Quando a categoria do torrent for mudada: - + Relocate torrent Re-alocar torrent - + Switch torrent to Manual Mode Trocar o torrent pro modo manual - - + + Relocate affected torrents Re-alocar torrents afetados - - + + Switch affected torrents to Manual Mode Trocar os torrents afetados pro modo manual - + Use Subcategories Usar sub-categorias - + Default Save Path: Caminho padrão do salvamento: - + Copy .torrent files to: Copiar os arquivos .torrent pra: - + Show &qBittorrent in notification area Mostrar o &qBittorrent na área de notificação - - &Log file - &Arquivo do log - - - + Display &torrent content and some options Exibir &conteúdo do torrent e algumas opções - + De&lete .torrent files afterwards Ap&agar os arquivos .torrent mais tarde - + Copy .torrent files for finished downloads to: Copiar os arquivos .torrent dos downloads concluídos para: - + Pre-allocate disk space for all files Pré-alocar espaço em disco pra todos os arquivos - + Use custom UI Theme Usar tema personalizado da interface do usuário - + UI Theme file: Arquivo do tema da interface do usuário: - + Changing Interface settings requires application restart Mudar as configurações da interface requer o reinício do aplicativo - + Shows a confirmation dialog upon torrent deletion Mostra um diálogo de confirmação ao apagar o torrent - - + + Preview file, otherwise open destination folder Pré-visualizar arquivo, de outro modo abrir a pasta de destino - - - Show torrent options - Mostrar opções do torrent - - - + Shows a confirmation dialog when exiting with active torrents Mostra um diálogo de confirmação quando sair com torrents ativos - + When minimizing, the main window is closed and must be reopened from the systray icon Quando minimizar, a janela principal é fechada e deve ser reaberta no ícone do tray - + The systray icon will still be visible when closing the main window O ícone do tray ainda estará visível quando fechar a janela principal - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Fechar o qBittorrent na área de notificação - + Monochrome (for dark theme) Monocromático (pro tema escuro) - + Monochrome (for light theme) Monocromático (pro tema claro) - + Inhibit system sleep when torrents are downloading Inibir o sono do sistema quando os torrents estão baixando - + Inhibit system sleep when torrents are seeding Inibir a suspensão do sistema quando os torrents estão semeando - + Creates an additional log file after the log file reaches the specified file size Cria um arquivo de log adicional após o arquivo de log alcançar o tamanho especificado do arquivo - + days Delete backup logs older than 10 days dias - + months Delete backup logs older than 10 months meses - + years Delete backup logs older than 10 years anos - + Log performance warnings Registrar avisos sobre a performance - - The torrent will be added to download list in a paused state - O torrent será adicionado a lista de downloads num estado pausado - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Não iniciar o download automaticamente - + Whether the .torrent file should be deleted after adding it Se o arquivo .torrent deve ser apagado após adicioná-lo - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Aloca o tamanho completo dos arquivos no disco antes de iniciar os downloads pra minimizar a fragmentação. Só é útil pra HDDs. - + Append .!qB extension to incomplete files Adicionar a extensão .!qB nos arquivos incompletos - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Quando um torrent é baixado oferece pra adicionar torrents de quaisquer arquivos .torrent achados dentro dele - + Enable recursive download dialog Ativar diálogo de download recursivo - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automático: Várias propriedades do torrent (ex: o caminho do salvamento) serão decididas pela categoria associada Manual: Várias propriedades do torrent (ex: o caminho do salvamento) devem ser atribuídas manualmente - + When Default Save/Incomplete Path changed: Quando o caminho padrão pra Salvar/Incompleto mudar: - + When Category Save Path changed: Quando o caminho do salvamento da categoria for mudado: - + Use Category paths in Manual Mode Usar os caminhos da Categoria no Modo Manual - + Resolve relative Save Path against appropriate Category path instead of Default one Resolver o Caminho de Salvamento relativo contra o Caminho da Categoria apropriado ao invés do caminho Padrão - + Use icons from system theme Usar ícones do tema do sistema - + Window state on start up: Estado da janela ao iniciar: - + qBittorrent window state on start up Estado da janela do qBittorrent ao iniciar - + Torrent stop condition: Condição de parada do torrent: - - + + None Nenhum - - + + Metadata received Metadados recebidos - - + + Files checked Arquivos verificados - + Ask for merging trackers when torrent is being added manually Pedir para mesclar rastreadores quando o torrent estiver sendo adicionado manualmente - + Use another path for incomplete torrents: Usar outro caminho pros torrents incompletos: - + Automatically add torrents from: Adicionar automaticamente torrents de: - + Excluded file names Nomes de arquivos excluídos - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: filtra o nome exato do arquivo. readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas não 'readme10.txt'. - + Receiver Receptor - + To: To receiver Até: - + SMTP server: Servidor SMTP: - + Sender Remetente - + From: From sender De: - + This server requires a secure connection (SSL) Este servidor requer uma conexão segura (SSL) - - + + Authentication Autenticação - - - - + + + + Username: Nome de usuário: - - - - + + + + Password: Senha: - + Run external program Executar programa externo - - Run on torrent added - Executar ao adicionar o torrent - - - - Run on torrent finished - Executar ao concluir o torrent - - - + Show console window Mostrar janela do console - + TCP and μTP TCP e μTP - + Listening Port Porta de Escuta - + Port used for incoming connections: Porta usada pra conexões de entrada: - + Set to 0 to let your system pick an unused port Defina em 0 pra deixar seu sistema escolher uma porta não usada - + Random Aleatória - + Use UPnP / NAT-PMP port forwarding from my router Usar abertura de porta UPnP / NAT-PMP do meu roteador - + Connections Limits Limites da Conexão - + Maximum number of connections per torrent: Número máximo de conexões por torrent: - + Global maximum number of connections: Número máximo global de conexões: - + Maximum number of upload slots per torrent: Número máximo de slots de upload por torrent: - + Global maximum number of upload slots: Número global máximo de slots de upload: - + Proxy Server Servidor Proxy - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Hospedeiro: - - - + + + Port: Porta: - + Otherwise, the proxy server is only used for tracker connections De outro modo o servidor proxy só é usado pra conexões com o rastreador - + Use proxy for peer connections Usar proxy pra conexões com os pares - + A&uthentication A&utenticação - - Info: The password is saved unencrypted - Info: A senha é salva desencriptada - - - + Filter path (.dat, .p2p, .p2b): Caminho do filtro (.dat, .p2p, .p2b): - + Reload the filter Recarregar o filtro - + Manually banned IP addresses... Endereços de IP banidos manualmente... - + Apply to trackers Aplicar aos rastreadores - + Global Rate Limits Limites Globais da Taxa - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Upload: - - + + Download: Download: - + Alternative Rate Limits Limites Alternativos da Taxa - + Start time Hora do início - + End time Hora do término - + When: Quando: - + Every day Todo dia - + Weekdays Dias da semana - + Weekends Finais de semana - + Rate Limits Settings Configurações dos Limites da Taxa - + Apply rate limit to peers on LAN Aplicar limite da taxa aos pares na LAN - + Apply rate limit to transport overhead Aplicar limite da taxa a sobrecarga do transporte - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Se o "modo misto" estiver habilitado, torrents I2P terão permissão para acessar pares de outras fontes além do rastreador e conectar com IPs regulares, não fornecendo nenhum anonimato. Isso pode ser útil caso o usuário não esteja interessado no anonimato do I2P mas ainda deseje a possibilidade de se conectar a pares I2P.</p></body></html> + + + Apply rate limit to µTP protocol Aplicar limite da taxa ao protocolo µTP - + Privacy Privacidade - + Enable DHT (decentralized network) to find more peers Ativar DHT (rede decentralizada) pra achar mais pares - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Trocar pares com clientes Bittorrent compatíveis (µTorrent, Vuze...) - + Enable Peer Exchange (PeX) to find more peers Ativar Troca de Pares (PeX) pra achar mais pares - + Look for peers on your local network Procurar pares na sua rede local - + Enable Local Peer Discovery to find more peers Ativar descoberta de pares locais pra achar mais pares - + Encryption mode: Modo de encriptação: - + Require encryption Requer encriptação - + Disable encryption Desativar encriptação - + Enable when using a proxy or a VPN connection Ativar quando usar um proxy ou uma conexão VPN - + Enable anonymous mode Ativar modo anônimo - + Maximum active downloads: Máximo de downloads ativos: - + Maximum active uploads: Máximo de uploads ativos: - + Maximum active torrents: Máximo de torrents ativos: - + Do not count slow torrents in these limits Não contar torrents lentos nestes limites - + Upload rate threshold: Limite da taxa de upload: - + Download rate threshold: Limite da taxa de download: - - - - + + + + sec seconds seg - + Torrent inactivity timer: Cronômetro da inatividade do torrent: - + then então - + Use UPnP / NAT-PMP to forward the port from my router Usar UPnP / NAT-PMP pra abrir a porta do meu roteador - + Certificate: Certificado: - + Key: Chave: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informações sobre certificados</a> - + Change current password Mudar a senha atual - - Use alternative Web UI - Usar interface alternativa de usuário da web - - - + Files location: Local dos arquivos: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Lista de WebUI alternativo</a> + + + Security Segurança - + Enable clickjacking protection Ativar proteção contra clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Ativar proteção contra falsificação de requisição de sites cruzados (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Habilitar sinalizador de cookie seguro (requer conexão HTTPS ou localhost) + + + Enable Host header validation Ativar validação de cabeçalho do hospedeiro - + Add custom HTTP headers Adicionar cabeçalhos HTTP personalizados - + Header: value pairs, one per line Cabeçalho: pares de valores, um por linha - + Enable reverse proxy support Ativar suporte pro proxy reverso - + Trusted proxies list: Lista de proxies confiáveis: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Exemplos de configuração de proxy reverso</a> + + + Service: Serviço: - + Register Registrar - + Domain name: Nome do domínio: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ao ativar estas opções, você pode <strong>perder irremediavelmente</strong> seus arquivos .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Se você ativar a segunda opção (&ldquo;Também quando a adição for cancelada&rdquo;) o arquivo .torrent <strong>será apagado</strong> mesmo se você pressionar &ldquo;<strong>Cancelar</strong>&rdquo; no diálogo &ldquo;Adicionar torrent&rdquo; - + Select qBittorrent UI Theme file Selecione o arquivo do tema da interface do usuário do qBittorrent - + Choose Alternative UI files location Escolha o local alternativo dos arquivos da interface do usuário - + Supported parameters (case sensitive): Parâmetros suportados (caso sensitivo): - + Minimized Minimizada - + Hidden Oculta - + Disabled due to failed to detect system tray presence Desativado devido a falha ao detectar presença na área de notificação do sistema - + No stop condition is set. Nenhuma condição de parada definida. - + Torrent will stop after metadata is received. O torrent será parado após o recebimento dos metadados. - Torrents that have metadata initially aren't affected. - Torrents que possuem metadados inicialmente não são afetados. - - - + Torrent will stop after files are initially checked. O torrent será parado após o a verificação inicial dos arquivos. - + This will also download metadata if it wasn't there initially. Isso também fará o download dos metadados, caso não existam inicialmente. - + %N: Torrent name %N: Nome do torrent - + %L: Category %L: Categoria - + %F: Content path (same as root path for multifile torrent) %F: Caminho do conteúdo (o mesmo do caminho raiz pra torrent multi-arquivos) - + %R: Root path (first torrent subdirectory path) %R: Caminho raiz (primeiro caminho do sub-diretório do torrent) - + %D: Save path %D: Caminho do salvamento - + %C: Number of files %C: Número de arquivos - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Rastreador atual - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Dica: Encapsule o parâmetro entre aspas pra evitar que o texto seja cortado nos espaços em branco (ex: "%N") - + + Test email + Testar e-mail + + + + Attempted to send email. Check your inbox to confirm success + Tentativa de enviar e-mail. Verifique sua caixa de entrada para confirmar o sucesso + + + (None) (Nenhum) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Um torrent será considerado lento se suas taxas de download e upload ficarem abaixo destes valores pelos segundos do "Cronômetro de inatividade do torrent" - + Certificate Certificado - + Select certificate Selecionar certificado - + Private key Chave privada - + Select private key Selecione a chave privada - + WebUI configuration failed. Reason: %1 Falha na configuração da WebUI. Motivo: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + O %1 é recomendado para melhor compatibilidade com o modo escuro do Windows + + + + System + System default Qt style + Sistema + + + + Let Qt decide the style for this system + Deixar o Qt decidir o estilo para este sistema + + + + Dark + Dark color scheme + Escuro + + + + Light + Light color scheme + Claro + + + + System + System color scheme + Sistema + + + Select folder to monitor Selecione a pasta a monitorar - + Adding entry failed Falhou em adicionar a entrada - + The WebUI username must be at least 3 characters long. O nome de usuário da interface web deve ter pelo menos 3 caracteres. - + The WebUI password must be at least 6 characters long. A senha de interface web deve ter pelo menos 6 caracteres. - + Location Error Erro do local - - + + Choose export directory Escolha o diretório pra exportar - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Quando estas opções estão ativadas o qBittorrent <strong>apagará</strong> os arquivos .torrent após eles serem adicionados com sucesso (a primeira opção) ou não (a segunda opção) nas suas filas de download. Isto será aplicado <strong>não só</strong> nos arquivos abertos via ação pelo menu &ldquo;Adicionar torrent&rdquo;, mas também para aqueles abertos via <strong>associação de tipos de arquivo</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Arquivo do tema da interface do usuário do qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiquetas (separadas por vírgula) - + %I: Info hash v1 (or '-' if unavailable) %I: Informações do hash v1 (ou '-' se indisponível) - + %J: Info hash v2 (or '-' if unavailable) %J: Informações do hash v2 (ou '-' se indisponível) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID do torrent (hash das informações do sha-1 pro torrent v1 ou hash das informações do sha-256 truncadas pra torrent v2/híbrido) - - - + + + Choose a save directory Escolha um diretório pra salvar - + Torrents that have metadata initially will be added as stopped. - + Torrents que possuem metadados inicialmente serão adicionados como parados. - + Choose an IP filter file Escolha um arquivo de filtro de IP - + All supported filters Todos os filtros suportados - + The alternative WebUI files location cannot be blank. O local alternativo dos arquivos da interface web não pode estar em branco. - + Parsing error Erro de análise - + Failed to parse the provided IP filter Falhou em analisar o filtro de IP fornecido - + Successfully refreshed Atualizado com sucesso - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analisou com sucesso o filtro de IP fornecido: %1 regras foram aplicadas. - + Preferences Preferências - + Time Error Erro do Tempo - + The start time and the end time can't be the same. A hora de início e a hora do término não podem ser as mesmas. - - + + Length Error Erro de Comprimento @@ -7335,241 +7765,246 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n PeerInfo - + Unknown Desconhecido - + Interested (local) and choked (peer) Interessados​ ​(locais) e paralisados (pares) - + Interested (local) and unchoked (peer) Interessados (locais) e não paralisados (pares) - + Interested (peer) and choked (local) Interessados (pares) e paralisados (locais) - + Interested (peer) and unchoked (local) Interessados (pares) e não paralisados (locais) - + Not interested (local) and unchoked (peer) Não interessados (locais) e não paralisados (pares) - + Not interested (peer) and unchoked (local) Não interessados (pares) e não paralisados (locais) - + Optimistic unchoke Não paralisado otimista - + Peer snubbed Par esnobado - + Incoming connection Conexão de entrada - + Peer from DHT Par do DHT - + Peer from PEX Par do PEX - + Peer from LSD Par do LSD - + Encrypted traffic Tráfego criptografado - + Encrypted handshake Handshake criptografado + + + Peer is using NAT hole punching + O peer está usando NAT Hole Punching + PeerListWidget - + Country/Region País/Região - + IP/Address IP/Endereço - + Port Porta - + Flags Bandeiras - + Connection Conexão - + Client i.e.: Client application Cliente - + Peer ID Client i.e.: Client resolved from Peer ID Cliente de ID do par - + 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 Baixados - + Uploaded i.e: total data uploaded Enviados - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevância - + Files i.e. files that are being downloaded right now Arquivos - + Column visibility Visibilidade da coluna - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas não ocultas para o tamanho do conteúdo delas - + Add peers... Adicionar pares... - - + + Adding peers Adicionando pares - + Some peers cannot be added. Check the Log for details. Alguns pares não puderam ser adicionados. Verifique o log pra detalhes. - + Peers are added to this torrent. Os pares são adicionados a este torrent. - - + + Ban peer permanently Banir o par permanentemente - + Cannot add peers to a private torrent Não pôde adicionar os pares em um torrent privado - + Cannot add peers when the torrent is checking Não pode adicionar os pares quando o torrent está verificando - + Cannot add peers when the torrent is queued Não pode adicionar os pares quando o torrent está na fila - + No peer was selected Nenhum par foi selecionado - + Are you sure you want to permanently ban the selected peers? Você tem certeza que você quer banir permanentemente os pares selecionados? - + Peer "%1" is manually banned O Par "%1" foi banido manualmente - + N/A N/D - + Copy IP:port Copiar IP:porta @@ -7587,7 +8022,7 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n Lista de pares pra adicionar (um IP por linha): - + Format: IPv4:port / [IPv6]:port Formato: IPv4:porta / [IPv6]:porta @@ -7628,27 +8063,27 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n PiecesBar - + Files in this piece: Arquivos neste pedaço: - + File in this piece: Arquivo neste pedaço: - + File in these pieces: Arquivo nestes pedaços: - + Wait until metadata become available to see detailed information Aguarde até que os metadados se tornem disponíveis pra ver a informação detalhada - + Hold Shift key for detailed information Pressione a tecla Shift pra informações detalhadas @@ -7661,58 +8096,58 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n Plugins de busca - + Installed search plugins: Plugins de busca instalados: - + Name Nome - + Version Versão - + Url URL - - + + Enabled Ativado - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Aviso: Certifique-se de obedecer as leis de copyright do seu país quando baixar torrents de quaisquer destes motores de busca. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Você pode obter novos plugins de motores de busca aqui: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalar um novo plugin - + Check for updates Procurar atualizações - + Close Fechar - + Uninstall Desinstalar @@ -7832,98 +8267,65 @@ Esses plugins foram desativados. Fonte do plugin - + Search plugin source: Fonte do plugin de busca: - + Local file Arquivo local - + Web link Link da web - - PowerManagement - - - qBittorrent is active - O qBittorrent está ativo - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - O gerenciamento de energia encontrou uma interface D-Bus adequada. Interface: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Erro de gerenciamento de energia. Não foi encontrada uma interface D-Bus adequada. - - - - - - Power management error. Action: %1. Error: %2 - Erro de gerenciamento de energia. Ação: %1. Erro: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Erro inesperado do gerenciamento de energia. Estado: %1. Erro: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Os seguintes arquivos do torrent "%1" suportam pré-visualização por favor selecione um deles: - + Preview Pré-visualização - + Name Nome - + Size Tamanho - + Progress Progresso - + Preview impossible Pré-visualização impossivel - + Sorry, we can't preview this file: "%1". Lamento, nós não conseguimos pré-visualizar este arquivo: "%1". - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas não ocultas para o tamanho do conteúdo delas @@ -7936,27 +8338,27 @@ Esses plugins foram desativados. Private::FileLineEdit - + Path does not exist O caminho não existe - + Path does not point to a directory O caminho não aponta para uma pasta - + Path does not point to a file O caminho não aponta para um arquivo - + Don't have read permission to path Não tem permissão de leitura para o caminho - + Don't have write permission to path Não tem permissão de escrita para o caminho @@ -7997,12 +8399,12 @@ Esses plugins foram desativados. PropertiesWidget - + Downloaded: Baixados: - + Availability: Disponibilidade: @@ -8017,53 +8419,53 @@ Esses plugins foram desativados. Transferência - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tempo Ativo: - + ETA: Tempo Restante: - + Uploaded: Enviados: - + Seeds: Sementes: - + Download Speed: Velocidade de download: - + Upload Speed: Velocidade de upload: - + Peers: Pares: - + Download Limit: Limite do download: - + Upload Limit: Limite do upload: - + Wasted: Perdidos: @@ -8073,193 +8475,220 @@ Esses plugins foram desativados. Conexões: - + Information Informação - + Info Hash v1: Informações do Hash v1: - + Info Hash v2: Informações do Hash v2: - + Comment: Comentário: - + Select All Selecionar tudo - + Select None Não selecionar nenhum - + Share Ratio: Proporção do compartilhamento: - + Reannounce In: Reanunciar em: - + Last Seen Complete: Visto completo pela última vez: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Proporção / Tempo ativo (em meses), indica o quão popular o torrent é + + + + Popularity: + Popularidade: + + + Total Size: Tamanho total: - + Pieces: Pedaços: - + Created By: Criado por: - + Added On: Adicionado em: - + Completed On: Completado em: - + Created On: Criado em: - + + Private: + Privado: + + + Save Path: Caminho do salvamento: - + 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) - - + + + N/A N/D - + + Yes + Sim + + + + No + Nã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 em média) - - New Web seed - Nova semente da Web + + Add web seed + Add HTTP source + Novo seed da web - - Remove Web seed - Remover semente da web + + Add web seed: + Adicionar seed da web: - - Copy Web seed URL - Copiar URL da semente da web + + + This web seed is already in the list. + O seed da web já está na lista - - Edit Web seed URL - Editar a URL da semente da web - - - + Filter files... Filtrar arquivos... - + + Add web seed... + Adicionar seed da web... + + + + Remove web seed + Remover seed da web + + + + Copy web seed URL + Copiar URL do seed da web + + + + Edit web seed URL... + Editar a URL do seed da web... + + + Speed graphs are disabled Os gráficos de velocidade estão desativados - + You can enable it in Advanced Options Você pode ativá-lo nas Opções Avançadas - - New URL seed - New HTTP source - Nova URL da semente - - - - New URL seed: - Nova URL da semente: - - - - - This URL seed is already in the list. - Essa URL da semente já está na lista. - - - + Web seed editing Editando a semente da web - + Web seed URL: URL da semente da web: @@ -8267,33 +8696,33 @@ Esses plugins foram desativados. RSS::AutoDownloader - - + + Invalid data format. Formato inválido dos dados. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Não pôde salvar os dados do auto-baixador do RSS em %1. Erro: %2 - + Invalid data format Formato inválido dos dados - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... O artigo RSS "%1" é aceito pela regra "%2". Tentando adicionar o torrent... - + Failed to read RSS AutoDownloader rules. %1 Falha ao ler as regras do RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Não pôde carregar as regras do auto-baixador do RSS. Motivo: %1 @@ -8301,22 +8730,22 @@ Esses plugins foram desativados. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Falhou em baixar o feed do RSS em '%1'. Motivo: %2 - + RSS feed at '%1' updated. Added %2 new articles. Feed do RSS em '%1' atualizado. Adicionou %2 novos artigos. - + Failed to parse RSS feed at '%1'. Reason: %2 Falhou em analisar o feed do RSS em '%1'. Motivo: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. O feed do RSS em '%1' foi baixado com sucesso. Começando a analisá-lo. @@ -8352,12 +8781,12 @@ Esses plugins foram desativados. RSS::Private::Parser - + Invalid RSS feed. Feed do RSS inválido. - + %1 (line: %2, column: %3, offset: %4). %1 (linha: %2, coluna: %3, deslocamento: %4). @@ -8365,103 +8794,144 @@ Esses plugins foram desativados. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Não pôde salvar a configuração da sessão do RSS. Arquivo "%1". Erro: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Não pôde salvar os dados da sessão do RSS. Arquivo "%1". Erro: "%2" - - + + RSS feed with given URL already exists: %1. O feed do RSS com a URL dada já existe: %1. - + Feed doesn't exist: %1. O feed não existe: %1. - + Cannot move root folder. Não pôde mover a pasta raiz. - - + + Item doesn't exist: %1. O item não existe: %1. - - Couldn't move folder into itself. - Não foi possível mover a pasta para dentro dela. + + Can't move a folder into itself or its subfolders. + Não foi possível mover a pasta para dentro dela mesma ou de suas subpastas. - + Cannot delete root folder. Não pôde apagar a pasta raiz. - + Failed to read RSS session data. %1 Falha ao ler os dados da sessão RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Falha ao analisar os dados da sessão RSS. Arquivo: "%1". Erro: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Falha ao carregar os dados da sessão RSS. Arquivo: "%1". Erro: "Formato de dados inválido." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Não pôde carregar o feed do RSS. Feed: "%1". Motivo: a URL é requerida. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Não pôde carregar o feed do RSS. Feed: "%1". Motivo: UID inválido. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Feed duplicado do RSS encontrado. UID: "%1". Erro: A configuração parece estar corrompida. - + Couldn't load RSS item. Item: "%1". Invalid data format. Não pôde carregar o item do RSS. Item: "%1". Formato inválidos dos dados inválido. - + Corrupted RSS list, not loading it. Lista do RSS corrompida, não irá carregá-la. - + Incorrect RSS Item path: %1. Caminho incorreto do item do RSS: %1. - + RSS item with given path already exists: %1. O item do RSS com o caminho dado já existe: %1. - + Parent folder doesn't exist: %1. A pasta pai não existe: %1. + + RSSController + + + Invalid 'refreshInterval' value + Valor 'refreshInterval' inválido + + + + Feed doesn't exist: %1. + O feed não existe: %1. + + + + RSSFeedDialog + + + RSS Feed Options + Opções do feed RSS + + + + URL: + URL: + + + + Refresh interval: + Intervalo de atualização: + + + + sec + seg + + + + Default + Padrão + + RSSWidget @@ -8481,8 +8951,8 @@ Esses plugins foram desativados. - - + + Mark items read Marcar itens como lidos @@ -8507,132 +8977,115 @@ Esses plugins foram desativados. Torrents: (clique-duplo pra baixar) - - + + Delete Apagar - + Rename... Renomear... - + Rename Renomear - - + + Update Atualizar - + New subscription... Nova subscrição... - - + + Update all feeds Atualizar todos os feeds - + Download torrent Baixar torrent - + Open news URL Abrir novas URLs - + Copy feed URL Copiar URL do feed - + New folder... Nova pasta... - - Edit feed URL... - Editar URL do feed... + + Feed options... + Opções do feed... - - Edit feed URL - Editar URL do feed - - - + Please choose a folder name Por favor escolha um nome de pasta - + Folder name: Nome da pasta: - + New folder Nova pasta - - - Please type a RSS feed URL - Por favor digite uma URL de feed do RSS - - - - - Feed URL: - URL do feed: - - - + Deletion confirmation Confirmação de exclusão - + Are you sure you want to delete the selected RSS feeds? Você tem certeza que você quer apagar os feeds do RSS selecionados? - + Please choose a new name for this RSS feed Por favor escolha um novo nome pra este feed do RSS - + New feed name: Novo nome do feed: - + Rename failed Falhou em renomear - + Date: Data: - + Feed: Feed: - + Author: Autor: @@ -8640,38 +9093,38 @@ Esses plugins foram desativados. SearchController - + Python must be installed to use the Search Engine. O Python deve estar instalado pra usar o Motor de Busca. - + Unable to create more than %1 concurrent searches. Incapaz de criar mais do que %1 buscas simultâneas. - - + + Offset is out of range O deslocamento está fora do alcance - + All plugins are already up to date. Todos os plugins já estão atualizados. - + Updating %1 plugins Atualizando %1 plugins - + Updating plugin %1 Atualizando o plugin %1 - + Failed to check for plugin updates: %1 Falhou em procurar as atualizações dos plugins: %1 @@ -8746,132 +9199,142 @@ Esses plugins foram desativados. Tamanho: - + Name i.e: file name Nome - + Size i.e: file size Tamanho - + Seeders i.e: Number of full sources Semeadores - + Leechers i.e: Number of partial sources Leechers - - Search engine - Motor de busca - - - + Filter search results... Filtrar resultados da busca... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultados (mostrando <i>%1</i> de <i>%2</i>): - + Torrent names only Só nomes de torrents - + Everywhere Em toda parte - + Use regular expressions Usar expressões regulares - + Open download window Abrir janela de download - + Download Download - + Open description page Abrir página da descrição - + Copy Copiar - + Name Nome - + Download link Link do download - + Description page URL URL da página de descrição - + Searching... Procurando... - + Search has finished A busca foi concluída - + Search aborted Busca abortada - + An error occurred during search... Um erro ocorreu durante a busca... - + Search returned no results A busca não retornou resultados - + + Engine + Mecanismo + + + + Engine URL + URL do mecanismo + + + + Published On + Publicado em + + + Column visibility Visibilidade da coluna - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas não ocultas para o tamanho do conteúdo delas @@ -8879,104 +9342,104 @@ Esses plugins foram desativados. SearchPluginManager - + Unknown search engine plugin file format. Formato desconhecido do arquivo do plugin do motor de busca. - + Plugin already at version %1, which is greater than %2 O plugin já está na versão: %1, a qual é superior a %2 - + A more recent version of this plugin is already installed. Uma versão mais recente deste plugin já está instalada. - + Plugin %1 is not supported. O plugin %1 não é suportado. - - + + Plugin is not supported. O plugin não é suportado. - + Plugin %1 has been successfully updated. O plugin %1 foi atualizado com sucesso. - + All categories Todas as categorias - + Movies Filmes - + TV shows Shows de TV - + Music Músicas - + Games Jogos - + Anime Animes - + Software Softwares - + Pictures Imagens - + Books Livros - + Update server is temporarily unavailable. %1 O servidor de atualização está temporariamente indisponível. %1 - - + + Failed to download the plugin file. %1 Falhou em baixar o arquivo do plugin. %1 - + Plugin "%1" is outdated, updating to version %2 O plugin "%1" está desatualizado, atualizando para a versão %2 - + Incorrect update info received for %1 out of %2 plugins. Informação de atualização incorreta recebida por %1 de %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') O plugin de busca '%1' contém uma string de versão inválida ('%2') @@ -8986,114 +9449,145 @@ Esses plugins foram desativados. - - - - Search Busca - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Não há quaisquer plugins de busca instalados. Clique no botão "Plugins de busca" na parte inferior direita da janela pra instalar alguns. - + Search plugins... Plugins de busca... - + A phrase to search for. Uma frase a ser procurada. - + Spaces in a search term may be protected by double quotes. Os espaços num termo de busca podem ser protegidos por aspas duplas. - + Example: Search phrase example Exemplo: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: procure por <b>foo bar</b> - + All plugins Todos os plugins - + Only enabled Só ativados - + + + Invalid data format. + Formato inválido dos dados. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: procure por <b>foo</b> e <b>bar</b> - + + Refresh + Atualizar + + + Close tab Fechar aba - + Close all tabs Fechar todas as abas - + Select... Selecionar... - - - + + Search Engine Motor de Busca - + + Please install Python to use the Search Engine. Por favor instale o Python pra usar o motor de busca. - + Empty search pattern Modelo de busca vazio - + Please type a search pattern first Por favor digite um modelo de busca primeiro - + + Stop Parar + + + SearchWidget::DataStorage - - Search has finished - A busca foi concluída + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Falha ao carregar dados de estado salvos da interface de busca. Arquivo: "%1". Erro: "%2" - - Search has failed - A busca falhou + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Falha ao carregar resultados de busca salvos. Guia: "%1". Arquivo: "%2". Erro: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Falha ao salvar o estado da interface de busca. Arquivo: "%1". Erro: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Falha ao salvar resultados da busca. Guia: "%1". Arquivo: "%2". Erro: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Falha ao carregar histórico da interface de busca. Arquivo: "%1". Erro: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Falha ao salvar histórico de busca. Arquivo: "%1". Erro: "%2" @@ -9206,34 +9700,34 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel - + Upload: Upload: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Download: - + Alternative speed limits Limites alternativos de velocidade @@ -9425,32 +9919,32 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel Tempo médio na fila: - + Connected peers: Pares conectados: - + All-time share ratio: Proporção do compartilhamento de todos os tempos: - + All-time download: Download de todos os tempos: - + Session waste: Perdas da sessão: - + All-time upload: Upload de todos os tempos: - + Total buffer size: Tamanho total do buffer: @@ -9465,12 +9959,12 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel Trabalhos de E/S na fila: - + Write cache overload: Sobrecarga do cache da gravação: - + Read cache overload: Sobrecarga do cache de leitura: @@ -9489,51 +9983,77 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel StatusBar - + Connection status: Status da conexão: - - + + No direct connections. This may indicate network configuration problems. Não há conexões diretas. Isto pode indicar problemas na configuração da rede. - - + + Free space: N/A + Espaço livre: N/A + + + + + External IP: N/A + IP externo: N/A + + + + DHT: %1 nodes DHT: %1 nós - + qBittorrent needs to be restarted! O qBittorrent precisa ser reiniciado! - - - + + + Connection Status: Status da conexão: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Offline. Isto geralmente significa que o qBittorrent falhou em escutar a porta selecionada pra conexões de entrada. - + Online Online - + + Free space: + Espaço livre: + + + + External IPs: %1, %2 + IPs externos: %1, %2 + + + + External IP: %1%2 + IP externo: %1%2 + + + Click to switch to alternative speed limits Clique pra trocar pros limites alternativos da velocidade - + Click to switch to regular speed limits Clique pra trocar pros limites regulares da velocidade @@ -9563,13 +10083,13 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel - Resumed (0) - Retomado (0) + Running (0) + Em andamento (0) - Paused (0) - Pausado (0) + Stopped (0) + Parado (0) @@ -9631,36 +10151,36 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel Completed (%1) Completado (%1) + + + Running (%1) + Em andamento (%1) + - Paused (%1) - Pausado (%1) + Stopped (%1) + Parado (%1) + + + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Moving (%1) Movendo (%1) - - - Resume torrents - Retomar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Remover torrents - - - Resumed (%1) - Retomado (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Clique no botão "Plugins de busca" na parte inferior direita da janel Remove unused tags Remover etiquetas não usadas - - - Resume torrents - Retomar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Remover torrents - - New Tag - Nova etiqueta + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Tag: Etiqueta: + + + Add tag + Adicionar etiqueta + Invalid tag name @@ -9903,32 +10423,32 @@ Por favor escolha um nome diferente e tente de novo. TorrentContentModel - + Name Nome - + Progress Progresso - + Download Priority Prioridade do download - + Remaining Restante - + Availability Disponibilidade - + Total Size Tamanho total @@ -9973,98 +10493,98 @@ Por favor escolha um nome diferente e tente de novo. TorrentContentWidget - + Rename error Erro ao renomear - + Renaming Renomeando - + New name: Novo nome: - + Column visibility Visibilidade da coluna - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho do conteúdo delas - + Open Abrir - + Open containing folder Abrir pasta de destino - + Rename... Renomear... - + Priority Prioridade - - + + Do not download Não baixar - + Normal Normal - + High Alta - + Maximum Máxima - + By shown file order Pela ordem mostrada dos arquivos - + Normal priority Prioridade normal - + High priority Prioridade alta - + Maximum priority Prioridade máxima - + Priority by shown file order Prioridade pela ordem de exibição dos arquivos @@ -10072,19 +10592,19 @@ Por favor escolha um nome diferente e tente de novo. TorrentCreatorController - + Too many active tasks - + Muitas tarefas ativas - + Torrent creation is still unfinished. - + A criação do torrent não foi concluída ainda. - + Torrent creation failed. - + Falha na criação do torrent. @@ -10111,13 +10631,13 @@ Por favor escolha um nome diferente e tente de novo. - + Select file Selecione o arquivo - + Select folder Selecione a pasta @@ -10192,87 +10712,83 @@ Por favor escolha um nome diferente e tente de novo. Campos - + You can separate tracker tiers / groups with an empty line. Você pode separar camadas / grupos de rastreadores com uma linha vazia. - + Web seed URLs: URLs de semente da web: - + Tracker URLs: URLs do rastreador: - + Comments: Comentários: - + Source: Fonte: - + Progress: Progresso: - + Create Torrent Criar Torrent - - + + Torrent creation failed Falhou na criação do torrent - + Reason: Path to file/folder is not readable. Motivo: O caminho para o arquivo/pasta não é legível. - + Select where to save the new torrent Selecione aonde salvar o novo torrent - + Torrent Files (*.torrent) Arquivos Torrent (*.torrent) - Reason: %1 - Motivo: %1 - - - + Add torrent to transfer list failed. Falha ao adicionar o torrent à lista de transferências. - + Reason: "%1" Motivo: "%1" - + Add torrent failed Falha ao adicionar torrent - + Torrent creator Criador de torrents - + Torrent created: Torrent criado: @@ -10280,32 +10796,32 @@ Por favor escolha um nome diferente e tente de novo. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Não foi possível carregar a configuração das Pastas Monitoradas. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Falha ao analisar a configuração das Pastas Monitoradas de %1. Erro: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Falha ao carregar a configuração das Pastas Monitoradas de %1. Erro: "Formato de dados inválido." - + Couldn't store Watched Folders configuration to %1. Error: %2 Não pôde armazenar a configuração das Pastas Observadas em %1. Erro: %2 - + Watched folder Path cannot be empty. O caminho da pasta observada não pode estar vazio. - + Watched folder Path cannot be relative. O caminho da pasta observada não pode ser relativo. @@ -10313,44 +10829,31 @@ Por favor escolha um nome diferente e tente de novo. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 URI magnético inválido. URI: %1. Motivo: %2 - + Magnet file too big. File: %1 Arquivo magnético muito grande. Arquivo: %1 - + Failed to open magnet file: %1 Falhou em abrir o arquivo magnético: %1 - + Rejecting failed torrent file: %1 Rejeitando arquivo do torrent que falhou: %1 - + Watching folder: "%1" Pasta de observação: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Falha ao alocar memória ao ler o arquivo. Arquivo: "%1". Erro: "%2" - - - - Invalid metadata - Metadados inválidos - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Por favor escolha um nome diferente e tente de novo. Usar outro caminho pro torrent incompleto - + Category: Categoria: - - Torrent speed limits - Limites da velocidade do torrent + + Torrent Share Limits + Limites de compartilhamento do torrent - + Download: Download: - - + + - - + + Torrent Speed Limits + Limites da velocidade do torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Estes não excederão os limites globais - + Upload: Upload: - - Torrent share limits - Limites de compartilhamento do torrent - - - - Use global share limit - Usar limite global de compartilhamento - - - - Set no share limit - Definir nenhum limite de compartilhamento - - - - Set share limit to - Definir limite de compartilhamento pra - - - - ratio - proporção - - - - total minutes - total de minutos - - - - inactive minutes - minutos inativos - - - + Disable DHT for this torrent Desativar DHT pra este torrent - + Download in sequential order Baixar em ordem sequencial - + Disable PeX for this torrent Desativar PeX pra este torrent - + Download first and last pieces first Baixar os primeiros e os últimos pedaços primeiro - + Disable LSD for this torrent Desativar LSD pra este torrent - + Currently used categories Categorias usadas atualmente - - + + Choose save path Escolha o caminho do salvamento - + Not applicable to private torrents Não aplicável a torrents privados - - - No share limit method selected - Nenhum método de limite de compartilhamento selecionado - - - - Please select a limit method first - Por favor selecione um método limite primeiro - TorrentShareLimitsWidget - - - + + + + Default - Padrão + Padrão + + + + + + Unlimited + Ilimitado - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Definir para + + + + Seeding time: + Tempo para semear: + + + + + + + + min minutes - + mín - + Inactive seeding time: - + Tempo de semear inativo: - + + Action when the limit is reached: + Ação ao atingir o limite: + + + + Stop torrent + Parar torrent + + + + Remove torrent + Remover torrent + + + + Remove torrent and its content + Remover torrent e seu conteúdo + + + + Enable super seeding for torrent + Ativar super semeadura para o torrent + + + Ratio: - + Taxa: @@ -10558,32 +11049,32 @@ Por favor escolha um nome diferente e tente de novo. Tags do torrent - - New Tag - Nova etiqueta + + Add tag + Adicionar etiqueta - + Tag: Etiqueta: - + Invalid tag name Nome da etiqueta inválido - + Tag name '%1' is invalid. O nome '%1' da tag é inválido. - + Tag exists A etiqueta existe - + Tag name already exists. O nome da etiqueta já existe. @@ -10591,115 +11082,130 @@ Por favor escolha um nome diferente e tente de novo. TorrentsController - + Error: '%1' is not a valid torrent file. Erro: '%1' não é um arquivo torrent válido. - + Priority must be an integer A prioridade deve ser um inteiro - + Priority is not valid A prioridade não é válida - + Torrent's metadata has not yet downloaded Os metadados do torrent ainda não foram baixados - + File IDs must be integers As IDs dos arquivos devem ser inteiras - + File ID is not valid A ID do arquivo não é válida - - - - + + + + Torrent queueing must be enabled Os torrents na fila devem estar ativados - - + + Save path cannot be empty O caminho do salvamento não pode estar vazio - - + + Cannot create target directory Não pôde criar a pasta de destino - - + + Category cannot be empty A categoria não pode estar vazia - + Unable to create category Incapaz de criar a categoria - + Unable to edit category Incapaz de editar a categoria - + Unable to export torrent file. Error: %1 Não foi possível exportar o arquivo torrent. Erro: %1 - + Cannot make save path Não pôde criar o caminho do salvamento - + + "%1" is not a valid URL + "%1" não é um URL válido + + + + URL scheme must be one of [%1] + O esquema do URL deve ser um de [%1} + + + 'sort' parameter is invalid O parâmetro 'sort' é inválido - + + "%1" is not an existing URL + "%1" não é um URL existente + + + "%1" is not a valid file index. "%1" não é um arquivo de índice válido. - + Index %1 is out of bounds. O índice %1 está fora dos limites. - - + + Cannot write to directory Não pôde gravar no diretório - + WebUI Set location: moving "%1", from "%2" to "%3" Definir local da interface de usuário da web: movendo "%1", de "%2" pra "%3" - + Incorrect torrent name Nome incorreto do torrent - - + + Incorrect category name Nome incorreto da categoria @@ -10730,196 +11236,191 @@ Por favor escolha um nome diferente e tente de novo. TrackerListModel - + Working Funcionando - + Disabled Desativado - + Disabled for this torrent Desativado pra este torrent - + This torrent is private Este torrent é privado - + N/A N/D - + Updating... Atualizando... - + Not working Não funcionando - + Tracker error Erro de rastreador - + Unreachable Inacessível - + Not contacted yet Não contactado ainda - - Invalid status! - Status inválido! - - - - URL/Announce endpoint - Endpoint de URL/anúncio + + Invalid state! + Estado inválido! + URL/Announce Endpoint + Endpoint de URL/anúncio + + + + BT Protocol + Protocolo BT + + + + Next Announce + Próximo anúncio + + + + Min Announce + Anúncio mínimo + + + Tier Camada - - Protocol - Protocolo - - - + Status Status - + Peers Peers - + Seeds Seeds - + Leeches Leeches - + Times Downloaded Número de vezes baixado - + Message Mensagem - - - Next announce - Próximo anúncio - - - - Min announce - Anúncio mínimo - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Este torrent é privado - + Tracker editing Editando o rastreador - + Tracker URL: URL do rastreador: - - + + Tracker editing failed Falhou em editar o rastreador - + The tracker URL entered is invalid. A URL inserida do rastreador é inválida. - + The tracker URL already exists. A URL do rastreador já existe. - + Edit tracker URL... Editar URL do rastreador... - + Remove tracker Remover rastreador - + Copy tracker URL Copiar URL do rastreador - + Force reannounce to selected trackers Forçar reanúncio para os rastreadores selecionados - + Force reannounce to all trackers Forçar reanúncio para todos os rastreadores - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas não ocultas para o tamanho do conteúdo delas - + Add trackers... Adicionar rastreadores... - + Column visibility Visibilidade da coluna @@ -10937,37 +11438,37 @@ Por favor escolha um nome diferente e tente de novo. Lista de rastreadores pra adicionar (um por linha): - + µTorrent compatible list URL: URL da lista compatível com µTorrent: - + Download trackers list Baixar lista de rastreadores - + Add Adicionar - + Trackers list URL error Erro do URL da lista de rastreadores - + The trackers list URL cannot be empty O URL da lista de rastreadores não pode estar vazio - + Download trackers list error Erro ao baixar lista de rastreadores - + Error occurred when downloading the trackers list. Reason: "%1" Ocorreu um erro ao baixar a lista de rastreadores. Motivo: "%1" @@ -10975,62 +11476,62 @@ Por favor escolha um nome diferente e tente de novo. TrackersFilterWidget - + Warning (%1) Aviso (%1) - + Trackerless (%1) Sem rastreadores (%1) - + Tracker error (%1) Erro de rastreador (%1) - + Other error (%1) Outro erro (%1) - + Remove tracker Remover tracker - - Resume torrents - Retomar torrents + + Start torrents + Iniciar torrents - - Pause torrents - Pausar torrents + + Stop torrents + Parar torrents - + Remove torrents Remover torrents - + Removal confirmation Confirmar remoção - + Are you sure you want to remove tracker "%1" from all torrents? Tem certeza de que deseja remover o rastreador "%1" de todos os torrents? - + Don't ask me again. Não perguntar novamente - + All (%1) this is for the tracker filter Todos (%1) @@ -11039,7 +11540,7 @@ Por favor escolha um nome diferente e tente de novo. TransferController - + 'mode': invalid argument 'mode': argumento inválido @@ -11131,11 +11632,6 @@ Por favor escolha um nome diferente e tente de novo. 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. Verificando dados de retomada - - - Paused - Pausado - Completed @@ -11159,220 +11655,252 @@ Por favor escolha um nome diferente e tente de novo. Com erro - + Name i.e: torrent name Nome - + Size i.e: torrent size Tamanho - + Progress % Done Progresso - + + Stopped + Parado + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Sementes - + Peers i.e. partial sources (often untranslated) Pares - + Down Speed i.e: Download speed Velocidade de download - + Up Speed i.e: Upload speed Velocidade de upload - + Ratio Share ratio Proporção - + + Popularity + Popularidade + + + ETA i.e: Estimated Time of Arrival / Time left Tempo restante - + Category Categoria - + Tags Etiquetas - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Adicionado em - + Completed On Torrent was completed on 01/01/2010 08:00 Completado em - + Tracker Rastreadores - + Down Limit i.e: Download limit Limite de download - + Up Limit i.e: Upload limit Limite de upload - + Downloaded Amount of data downloaded (e.g. in MB) Baixados - + Uploaded Amount of data uploaded (e.g. in MB) Enviados - + Session Download Amount of data downloaded since program open (e.g. in MB) Download da sessão - + Session Upload Amount of data uploaded since program open (e.g. in MB) Upload da sessão - + Remaining Amount of data left to download (e.g. in MB) Restante - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tempo ativo - + + Yes + Sim + + + + No + Não + + + Save Path Torrent save path Caminho do salvamento - + Incomplete Save Path Torrent incomplete save path Caminho de salvamento incompleto - + Completed Amount of data completed (e.g. in MB) Completado - + Ratio Limit Upload share ratio limit Limite da proporção - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Visto completo pela última vez - + Last Activity Time passed since a chunk was downloaded/uploaded Última atividade - + Total Size i.e. Size including unwanted data Tamanho total - + Availability The number of distributed copies of the torrent Disponibilidade - + Info Hash v1 i.e: torrent info hash v1 Informações do Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Informações do Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Reannounce In - - + + Private + Flags private torrents + Privado + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Proporção / Tempo ativo (em meses), indica o quão popular o torrent é + + + + + N/A N/D - + %1 ago e.g.: 1h 20m ago %1 atrás - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (semeado por %2) @@ -11381,339 +11909,319 @@ Por favor escolha um nome diferente e tente de novo. TransferListWidget - + Column visibility Visibilidade da coluna - + Recheck confirmation Confirmação da nova verificação - + Are you sure you want to recheck the selected torrent(s)? Você tem certeza que você quer verificar de novo o(s) torrent(s) selecionado(s)? - + Rename Renomear - + New name: Novo nome: - + Choose save path Escolha o caminho do salvamento - - Confirm pause - Confirmar pausar - - - - Would you like to pause all torrents? - Você gostaria de pausar todos os torrents? - - - - Confirm resume - Confirmar retomada - - - - Would you like to resume all torrents? - Você gostaria de retomar todos os torrents? - - - + Unable to preview Incapaz de pré-visualizar - + The selected torrent "%1" does not contain previewable files O torrent selecionado "%1" não contém arquivos pré-visualizáveis - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas não ocultas para o tamanho do conteúdo delas - + Enable automatic torrent management Ativar gerenciamento automático dos torrents - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Você tem certeza que você quer ativar o gerenciamento automático dos torrents para os torrents selecionados? Eles podem ser realocados. - - Add Tags - Adicionar etiquetas - - - + Choose folder to save exported .torrent files Escolha a pasta para salvar os arquivos .torrent exportados - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Falha ao exportar o arquivo .torrent. Torrent: "%1". Caminho para salvar: "%2". Motivo: "%3" - + A file with the same name already exists Um arquivo com o mesmo nome já existe - + Export .torrent file error Erro ao exportar arquivo .torrent - + Remove All Tags Remover todas as etiquetas - + Remove all tags from selected torrents? Remover todas as etiquetas dos torrents selecionados? - + Comma-separated tags: Etiquetas separadas por vírgulas: - + Invalid tag Etiqueta inválida - + Tag name: '%1' is invalid O nome da etiqueta '%1' é inválido - - &Resume - Resume/start the torrent - &Retomar - - - - &Pause - Pause the torrent - &Pausar - - - - Force Resu&me - Force Resume/start the torrent - Forçar retor&nar - - - + Pre&view file... Pré-&visualizar arquivo... - + Torrent &options... &Opções do torrent... - + Open destination &folder Abrir &pasta de destino - + Move &up i.e. move up in the queue Mover para &cima - + Move &down i.e. Move down in the queue Mover para &baixo - + Move to &top i.e. Move to top of the queue Mover para o &início - + Move to &bottom i.e. Move to bottom of the queue Mover para o &final - + Set loc&ation... Definir loc&al... - + Force rec&heck Forçar no&va verificação - + Force r&eannounce Forçar r&eanunciar - + &Magnet link Link &magnético - + Torrent &ID &ID do torrent - + &Comment &Comentário - + &Name &Nome - + Info &hash v1 Informações do &hash v1 - + Info h&ash v2 Informações do h&ash v2 - + Re&name... Re&nomear... - + Edit trac&kers... Editar trac&kers... - + E&xport .torrent... E&xportar .torrent... - + Categor&y Categor&ia - + &New... New category... &Novo... - + &Reset Reset category &Redefinir - + Ta&gs Ta&gs - + &Add... Add / assign multiple tags... &Adicionar... - + &Remove All Remove all tags &Remover tudo - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Não é possível forçar reanunciar se o torrent está Pausado/Na Fila/Com Erro/Verificando + + + &Queue &Fila - + &Copy &Copiar - + Exported torrent is not necessarily the same as the imported O torrent exportado não é necessariamente o mesmo do importado - + Download in sequential order Baixar em ordem sequencial - + + Add tags + Adicionar etiquetas + + + Errors occurred when exporting .torrent files. Check execution log for details. Ocorreram erros ao exportar os arquivos .torrent. Verifique o log de execução para detalhes. - + + &Start + Resume/start the torrent + &Iniciar + + + + Sto&p + Stop the torrent + &Parar + + + + Force Star&t + Force Resume/start the torrent + &Forçar início + + + &Remove Remove the torrent &Remover - + Download first and last pieces first Baixar os primeiros e os últimos pedaços primeiro - + Automatic Torrent Management Gerenciamento automático dos torrents - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category O modo automático significa que várias propriedades do torrent (ex: caminho do salvamento) serão decididas pela categoria associada - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Não é possível forçar reanúncio se o torrent está Pausado/Na Fila/Com Erro/Verificando - - - + Super seeding mode Modo super semeadura @@ -11758,28 +12266,28 @@ Por favor escolha um nome diferente e tente de novo. ID do ícone - + UI Theme Configuration. Configuração de tema da interface. - + The UI Theme changes could not be fully applied. The details can be found in the Log. As alterações no tema da interface não puderam ser totalmente aplicadas. Os detalhes podem ser vistos no Log. - + Couldn't save UI Theme configuration. Reason: %1 Não foi possível salvar a configuração do tema da interface. Razão: %1 - - + + Couldn't remove icon file. File: %1. Não foi possível remover o arquivo de ícone. Arquivo: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Não foi possível copiar o arquivo de ícone. Fonte: %1. Destino: %2. @@ -11787,7 +12295,12 @@ Por favor escolha um nome diferente e tente de novo. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Falha ao definir estilo do aplicativo. Estilo desconhecido: "%1" + + + Failed to load UI theme from file: "%1" Falhou em carregar o tema da interface de usuário do arquivo: "%1" @@ -11818,20 +12331,21 @@ Por favor escolha um nome diferente e tente de novo. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Falhou em migrar as preferências: HTTPS WebUI, arquivo: "%1", erro: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Preferências migradas: HTTPS WebUI, exportou os dados pro arquivo: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Valor inválido encontrado no arquivo de configuração, revertendo para o padrão. Chave: "%1". Valor inválido: "%2". @@ -11839,32 +12353,32 @@ Por favor escolha um nome diferente e tente de novo. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Encontrado o executável do Python. Nome: "%1". Versão: "%2" - + Failed to find Python executable. Path: "%1". Falha ao localizar o executável do Python. Caminho: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Falha ao localizar o executável do 'python3' na variável de ambiente PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Falha ao localizar o executável do 'python' na variável de ambiente PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Falha ao localizar o executável do Python no registro do Windows. - + Failed to find Python executable Falha ao localizar o executável do Python @@ -11956,72 +12470,72 @@ Por favor escolha um nome diferente e tente de novo. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Nome do cookie de sessão inaceitável especificado: '%1'. O padrão será usado. - + Unacceptable file type, only regular file is allowed. Tipo de arquivo inaceitável, só o arquivo regular é permitido. - + Symlinks inside alternative UI folder are forbidden. Os links simbólicos dentro da pasta alternativa da interface do usuário são proibidos. - + Using built-in WebUI. Utilizando a interface web incluída. - + Using custom WebUI. Location: "%1". Utilizando interface web personalizada. Localização: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. A tradução da interface web para o idioma selecionado (%1) foi carregada com sucesso. - + Couldn't load WebUI translation for selected locale (%1). Não foi possível carregar a tradução da interface web para o idioma selecionado (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Separador ':' ausente no cabeçalho HTTP personalizado da interface de usuário da web: "%1" - + Web server error. %1 Erro do servidor web. %1 - + Web server error. Unknown error. Erro do servidor web. Erro desconhecido. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: O cabeçalho de origem & e a origem do alvo não combinam! IP de origem: '%1'. Cabeçalho de origem: '%2'. Origem do alvo: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI : O cabeçalho do referenciador & e de origem do alvo não combinam! IP de origem: '%1'. Cabeçalho do referenciador: '%2'. Origem do alvo: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Cabeçalho do hospedeiro inválido, a porta não combina. IP de origem da requisição: '%1'. Porta do servidor '%2'. Cabeçalho recebido do hospedeiro: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Cabeçalho inválido do hospedeiro. IP de origem da requisição: '%1'. Cabeçalho recebido do hospedeiro: '%2' @@ -12029,125 +12543,133 @@ Por favor escolha um nome diferente e tente de novo. WebUI - + Credentials are not set Credenciais não definidas - + WebUI: HTTPS setup successful WebUI: HTTPS configurado com sucesso - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: falha ao configurar HTTPS, revertendo para HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Escutando agora no IP: %1, porta: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 WebUI: Não foi possível vincular ao IP: %1, porta: %2. Motivo: %3 + + fs + + + Unknown error + Erro desconhecido + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes - %1 minuto + %1 m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1a %2d - - + + Unknown Unknown (size) Desconhecido - + qBittorrent will shutdown the computer now because all downloads are complete. O qBIttorrent desligará o computador agora porque todos os downloads estão completos. - + < 1m < 1 minute < 1 minuto diff --git a/src/lang/qbittorrent_pt_PT.ts b/src/lang/qbittorrent_pt_PT.ts index 8faf69525..c4cce2fc1 100644 --- a/src/lang/qbittorrent_pt_PT.ts +++ b/src/lang/qbittorrent_pt_PT.ts @@ -14,75 +14,75 @@ Acerca - + Authors Autores - + Current maintainer Programador atual - + Greece Grécia - - + + Nationality: Nacionalidade: - - + + E-mail: E-mail: - - + + Name: Nome: - + Original author Autor original - + France França - + Special Thanks Agradecimento especial - + Translators Tradutores - + License Licença - + Software Used Software utilizado - + qBittorrent was built with the following libraries: O qBittorrent foi criado com as seguintes bibliotecas: - + Copy to clipboard Copiar para a área de transferência @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 O projeto qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 O projeto qBittorrent @@ -166,15 +166,10 @@ Guardar em - + Never show again Não mostrar novamente - - - Torrent settings - Definições do torrent - Set as default category @@ -191,12 +186,12 @@ Iniciar torrent - + Torrent information Informação do torrent - + Skip hash check Ignorar verificação hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Usar outra localização para torrent incompleto + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Condição para parar: - - + + None Nenhum - - + + Metadata received Metadados recebidos - + Torrents that have metadata initially will be added as stopped. - + Os torrents que possuem metadados inicialmente serão adicionados como parados. - - + + Files checked Ficheiros verificados - + Add to top of queue Adicionar ao início da fila - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Quando selecionado, o ficheiro .torrent não será eliminado independente das definições na página "Transferência" da janela das Opções - + Content layout: Disposição do conteúdo: - + Original Original - + Create subfolder Criar subpasta - + Don't create subfolder Não criar subpasta - + Info hash v1: Informações do hash v1: - + Size: Tamanho: - + Comment: Comentário: - + Date: Data: @@ -329,151 +329,147 @@ Lembrar o último caminho utilizado guardado - + Do not delete .torrent file Não eliminar o ficheiro .torrent - + Download in sequential order Fazer a tranferência sequencialmente - + Download first and last pieces first Fazer a transferência da primeira e última peça primeiro - + Info hash v2: Informações do hash v2: - + Select All Selecionar tudo - + Select None Não selecionar nenhum - + Save as .torrent file... Guardar como ficheiro .torrent... - + I/O Error Erro I/O - + Not Available This comment is unavailable Indisponível - + Not Available This date is unavailable Indisponível - + Not available Indisponível - + Magnet link Ligação magnet - + Retrieving metadata... Obtenção de metadados... - - + + Choose save path Escolha o caminho para guardar - + No stop condition is set. Não foi definida nenhuma condição para parar. - + Torrent will stop after metadata is received. O torrent será parado após a recepção dos metadados. - Torrents that have metadata initially aren't affected. - Torrents que possuem metadados inicialmente não são afetados. - - - + Torrent will stop after files are initially checked. O torrent parará após o a verificação inicial dos ficheiros. - + This will also download metadata if it wasn't there initially. Isso também fará a transferência dos metadados, caso não existam inicialmente. - - + + N/A N/D - + %1 (Free space on disk: %2) %1 (Espaço livre no disco: %2) - + Not available This size is unavailable. Indisponível - + Torrent file (*%1) Ficheiro torrent (*%1) - + Save as torrent file Guardar como ficheiro torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Não foi possível exportar o arquivo de metadados do torrent '%1'. Motivo: %2. - + Cannot create v2 torrent until its data is fully downloaded. Não é possível criar o torrent v2 até que seus dados sejam totalmente transferidos. - + Filter files... Filtrar ficheiros... - + Parsing metadata... Análise de metadados... - + Metadata retrieval complete Obtenção de metadados terminada @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" A transferir torrent... Fonte: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Ocorreu um erro ao adicionar o torrent. Fonte: "%1". Motivo: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Detetada uma tentativa de adicionar um torrent duplicado. Fonte: %1. Torrent existente: %2. Resultado: %3 - - - + Merging of trackers is disabled A fusão de trackers está desativada - + Trackers cannot be merged because it is a private torrent Os trackers não podem ser fundidos porque se trata de um torrent privado - + Trackers are merged from new source Os trackers são fundidos a partir da nova fonte + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Limites de partilha de torrent + Limites de partilha de torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Verificar torrents ao terminar - - + + ms milliseconds ms - + Setting Definição - + Value Value set for this setting Valor - + (disabled) (desativado) - + (auto) (automático) - + + min minutes min - + All addresses Todos os endereços - + qBittorrent Section Secção qBittorrent - - + + Open documentation Abrir documentação - + All IPv4 addresses Todos os endereços IPv4 - + All IPv6 addresses Todos os endereços IPv6 - + libtorrent Section Secção libtorrent - + Fastresume files Resumo rápido dos ficheiros - + SQLite database (experimental) Base de dados do SQLite (experimental) - + Resume data storage type (requires restart) Retomar tipo de armazenamento de dados (requer reinício) - + Normal Normal - + Below normal Abaixo do normal - + Medium Médio - + Low Baixo - + Very low Muito baixo - + Physical memory (RAM) usage limit Limite de utilização da memória física (RAM) - + Asynchronous I/O threads Threads assíncronas I/O - + Hashing threads Segmentos de cálculo de hash - + File pool size Tamanho do pool de ficheiros - + Outstanding memory when checking torrents Memória excelente ao verificar os torrents - + Disk cache Cache do disco - - - - + + + + + s seconds s - + Disk cache expiry interval Intervalo para cache de disco - + Disk queue size Tamanho da fila do disco - - + + Enable OS cache Ativar cache do sistema - + Coalesce reads & writes Unir leituras e escritas - + Use piece extent affinity Utilizar a afinidade da extensão da peça - + Send upload piece suggestions Enviar o upload da peça de sugestões - - - - + + + + + 0 (disabled) 0 (desativado) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Guardar o intervalo de dados de retomada [0: desativado] - + Outgoing ports (Min) [0: disabled] Portas de saída (Mín) [0: desativado] - + Outgoing ports (Max) [0: disabled] Portas de saída (Máx) [0: desativado] - + 0 (permanent lease) 0 (locação permanente) - + UPnP lease duration [0: permanent lease] Duração da locação UPnP [0: locação permanente] - + Stop tracker timeout [0: disabled] Intervalo para parar o tracker [0: disativado] - + Notification timeout [0: infinite, -1: system default] Intervalo da notificação [0: infinito, -1: predefinição do sistema] - + Maximum outstanding requests to a single peer Máximo de pedidos pendentes a uma única fonte: - - - - - + + + + + KiB KiB - + (infinite) (infinito) - + (system default) (predefinição do sistema) - + + Delete files permanently + Eliminar ficheiros permanentemente + + + + Move files to trash (if possible) + Mover ficheiros para o lixo (se possível) + + + + Torrent content removing mode + Modo de remoção de conteúdo do torrent + + + This option is less effective on Linux Esta opção é menos efetiva no Linux - + Process memory priority Prioridade de memória de processo - + Bdecode depth limit Limite de profundidade Bdecode - + Bdecode token limit Limite do token Bdecode - + Default Padrão - + Memory mapped files Arquivos mapeados na memória - + POSIX-compliant Compatível com POSIX - + + Simple pread/pwrite + Pread/pwrite simples + + + Disk IO type (requires restart) Tipo de E/S de disco (requer reinicialização) - - + + Disable OS cache Desativar cache do sistema - + Disk IO read mode Modo de leitura de E/S do disco - + Write-through Write-through - + Disk IO write mode Modo de gravação de E/S do disco - + Send buffer watermark Marca de água do buffer de envio - + Send buffer low watermark Marca de água baixa do buffer de envio - + Send buffer watermark factor Fator da marca de água do buffer de envio - + Outgoing connections per second Ligações de saída por segundo - - + + 0 (system default) 0 (predefinição do sistema) - + Socket send buffer size [0: system default] Tamanho do buffer do socket de envio [0: system default] - + Socket receive buffer size [0: system default] Tamanho do buffer do socket de recebimento [0: system default] - + Socket backlog size Tamanho da lista pendente do socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit Limite de tamanho do ficheiro .torrent - + Type of service (ToS) for connections to peers Tipo de serviço (TdS) para ligações com pares - + Prefer TCP Preferir TCP - + Peer proportional (throttles TCP) Semear de forma proporcional (limita TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Suporta nome de domínio internacionalizado (IDN) - + Allow multiple connections from the same IP address Permitir várias ligações a partir do mesmo endereço de IP - + Validate HTTPS tracker certificates Validar certificados de rastreio HTTPS - + Server-side request forgery (SSRF) mitigation Redução do pedido de falsificação do lado do servidor (SSRF) - + Disallow connection to peers on privileged ports Não permitir ligação com pares em portas privilegiadas - + It appends the text to the window title to help distinguish qBittorent instances - + Anexa o texto ao título da janela para ajudar a distinguir as instâncias do qBittorent - + Customize application instance name - + Personalizar nome da instância da aplicação - + It controls the internal state update interval which in turn will affect UI updates Controla o intervalo de atualização do estado interno que, por sua vez, afetará as atualizações da interface do utilizador - + Refresh interval Intervalo de atualização - + Resolve peer host names Resolver nomes dos servidores de fontes - + IP address reported to trackers (requires restart) Endereço de IP reportado aos rastreadores (requer reinício) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Reanunciar para todos os trackers quando o IP ou porta forem alterados - + Enable icons in menus Ativar ícones nos menus - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Ativar reencaminhamento de porta para o rastreador incorporado - + Enable quarantine for downloaded files Ativar quarentena para ficheiros transferidos - + Enable Mark-of-the-Web (MOTW) for downloaded files Ativar Mark-of-the-Web (MOTW) para ficheiros transferidos - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) (Deteção automática se estiver vazio) - + Python executable path (may require restart) Caminho do executável Python (pode ser necessário reiniciar) - + + Start BitTorrent session in paused state + Iniciar sessão do Bittorrent no modo pausado + + + + sec + seconds + seg + + + + -1 (unlimited) + -1 (ilimitado) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Tempo limite de encerramento da sessão BitTorrent [-1: ilimitado] + + + Confirm removal of tracker from all torrents Confirmar a remoção do tracker de todos os torrents - + Peer turnover disconnect percentage Percentagem de não ligação da rotatividade dos pares - + Peer turnover threshold percentage Percentagem de limite de rotatividade de pares - + Peer turnover disconnect interval Intervalo de não ligação de rotatividade de pares - + Resets to default if empty Repor o valor por defeito se estiver vazio - + DHT bootstrap nodes - + Nós de inicialização DHT - + I2P inbound quantity - + Quantidade de entrada I2P - + I2P outbound quantity - + Quantidade de saída I2P - + I2P inbound length - + Comprimento de entrada I2P - + I2P outbound length - + Comprimento de saída I2P - + Display notifications Mostrar notificações - + Display notifications for added torrents Mostrar notificações para os torrents adicionados - + Download tracker's favicon Fazer a transferência do favicon tracker - + Save path history length Guardar o tamanho do histórico do caminho - + Enable speed graphs Ativar gráfico de velocidade - + Fixed slots Slots corrigidos - + Upload rate based Baseado no rácio de upload - + Upload slots behavior Comportamento das slots de upload - + Round-robin Round-robin - + Fastest upload Upload mais rápido - + Anti-leech Anti-sanguessuga - + Upload choking algorithm Algoritmo choking do upload - + Confirm torrent recheck Confirmar reverificação do torrent - + Confirm removal of all tags Confirme o remover de todas as etiquetas - + Always announce to all trackers in a tier Anunciar sempre para todos os rastreadores numa fila - + Always announce to all tiers Anunciar sempre para todos as filas - + Any interface i.e. Any network interface Qualquer interface - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritmo do modo de mistura %1-TCP - + Resolve peer countries Resolver fontes dos países - + Network interface Interface de rede - + Optional IP address to bind to Endereço de IP opcional para ligar-se - + Max concurrent HTTP announces Máximo de anúncios HTTP simultâneos - + Enable embedded tracker Ativar tracker embutido - + Embedded tracker port Porta do tracker embutido + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 A correr no modo portátil. Detectada automaticamente pasta de perfil em: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Detetado um sinalizador de linha de comando redundante: "%1". O modo portátil implica um resumo relativo. - + Using config directory: %1 A utilizar diretoria de configuração: %1 - + Torrent name: %1 Nome do torrent: %1 - + Torrent size: %1 Tamanho do torrent: %1 - + Save path: %1 Caminho para guardar: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Foi feita a transferência do torrent para %1. - + + Thank you for using qBittorrent. Obrigado por utilizar o qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, a enviar notificação por e-mail - + Add torrent failed Ocorreu um erro ao adicionar o torrent - + Couldn't add torrent '%1', reason: %2. - + Não foi possível adicionar o torrent '%1', motivo: %2. - + The WebUI administrator username is: %1 - + O nome de utilizador do administrador da interface web é: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + A palavra-passe do administrador da interface web não foi definida. Uma palavra-passe temporária será fornecida para esta sessão: %1 - + You should set your own password in program preferences. - + Deve definir a sua própria palavra-passe nas preferências do programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + A interface web está desativada! Para ativar, edite o ficheiro de configuração manualmente. - + Running external program. Torrent: "%1". Command: `%2` Execução de programa externo. Torrent: "%1". Comando: '%2' - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading O torrent "%1" terminou a transferência - + WebUI will be started shortly after internal preparations. Please wait... A interface web será iniciada logo após os preparativos internos. Aguarde... - - + + Loading torrents... A carregar torrents... - + E&xit S&air - + I/O Error i.e: Input/Output Error Erro de E/S - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Motivo: %2 - + Torrent added Torrent adicionado - + '%1' was added. e.g: xxx.avi was added. '%1' foi adicionado. - + Download completed Transferência concluída - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' terminou a transferência. - + Information Informações - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 Para controlar o qBittorrent, aceda ao WebUI em: %1 - + Exit Sair - + Recursive download confirmation Confirmação de transferência recursiva - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? O torrent '%1' contém ficheiros .torrent. Quer continuar com a sua transferência? - + Never Nunca - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Transferência recursiva do ficheiro .torrent dentro do torrent. Torrent fonte: "%1". Ficheiro: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Falha ao definir o limite de utilização da memória física (RAM). Código do erro: %1. Mensagem de erro: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated Finalização do qBittorrent iniciada - + qBittorrent is shutting down... O qBittorrent está a fechar... - + Saving torrent progress... A guardar progresso do torrent... - + qBittorrent is now ready to exit O qBittorrent está agora pronto para ser fechado @@ -1609,12 +1715,12 @@ Motivo: %2 Prioridade - + Must Not Contain: Não deverá conter: - + Episode Filter: Filtro de episódio: @@ -1667,263 +1773,263 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para &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 primeira temporada - + 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 - + 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 - + Episode number is a mandatory positive value O número de episódio tem de ser obrigatóriamente positivo - + Rules Regras - + Rules (legacy) Regras (legado) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Limite infinito: <b>1x25-;</b> corresponde os episódios 25 e superiores da temporada um, e a todos os episódios de temporadas posteriores - + 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. Escreva o nome da nova regra para transferências. - - + + 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 para transferências com o nome '%1'? - + Are you sure you want to remove the selected download rules? Tem a certeza de que quer remover as regras de transferência selecionadas? - + Rule deletion confirmation Confirmação de eliminação de regra - + Invalid action Ação inválida - + The list is empty, there is nothing to export. A lista encontra-se vazia, não há nada para exportar. - + Export RSS rules Exportar regras RSS - + I/O Error Erro I/O - + Failed to create the destination file. Reason: %1 Ocorreu um erro ao tentar criar o ficheiro de destino. Motivo: %1 - + Import RSS rules Importar regras RSS - + Failed to import the selected rules file. Reason: %1 Ocorreu um erro ao tentar o ficheiro com as regras selecionadas. Motivo: %1 - + Add new rule... Adicionar nova regra... - + Delete rule Eliminar regra - + Rename rule... Renomear regra... - + Delete selected rules Eliminar regras selecionadas - + Clear downloaded episodes... Limpar os episódios transferidos... - + Rule renaming Renomear regra - + Please type the new rule name Por favor, escreva o novo nome da regra - + Clear downloaded episodes Limpar episódios transferidos - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Deseja realmente limpar a lista de episódios transferidos da regra selecionada? - + Regex mode: use Perl-compatible regular expressions Modo regex: utilizar expressões regulares compatíveis com Perl - - + + Position %1: %2 Posição %1: %2 - + Wildcard mode: you can use Modo 'Wildcard': você pode utilizar - - + + Import error Erro ao importar - + Failed to read the file. %1 Ocorreu um erro ao tentar ler o ficheiro. %1 - + ? to match any single character ? para corresponder a qualquer caracter - + * to match zero or more of any characters * para igualar a zero ou mais caracteres - + Whitespaces count as AND operators (all words, any order) Os espaços em branco contam como operadores AND (E) (todas as palavras, qualquer ordem) - + | is used as OR operator É utilizado como operador OU (OR) - + If word order is important use * instead of whitespace. Se a ordem das palavras é importante utilize * em vez de um espaço em branco. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Uma expressão com uma cláusula %1 vazia (por exemplo, %2) - + will match all articles. irá corresponder a todos os artigos. - + will exclude all articles. irá excluir todos os artigos. @@ -1965,7 +2071,7 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Não é possível criar pasta do retomar do torrent: "%1" @@ -1975,28 +2081,38 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Não foi possível analisar os dados para retomar: formato inválido - - + + Cannot parse torrent info: %1 Não foi possível analisar as informações do torrent: %1 - + Cannot parse torrent info: invalid format Não foi possível analisar as informações do torrent: formato inválido - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Não foi possível guardar metadados de torrents para '%1'. Erro: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Não foi possível guardar os dados do retomar do torrent para '%1'. Erro: %2. @@ -2007,16 +2123,17 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para + Cannot parse resume data: %1 Não foi possível analisar os dados de retomada: %1 - + Resume data is invalid: neither metadata nor info-hash was found Dados de retomada inválidos: não foram encontrados nem metadados, nem informações do hash - + Couldn't save data to '%1'. Error: %2 Não foi possível guardar dados para '%1'. Erro: %2 @@ -2024,38 +2141,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::DBResumeDataStorage - + Not found. Não encontrado. - + Couldn't load resume data of torrent '%1'. Error: %2 Não foi possível carregar os dados do retomar do torrent '%1'. Erro: %2 - - + + Database is corrupted. A base de dados está corrompida. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Não foi possível ativar o modo de registo Write-Ahead Logging (WAL). Erro: %1. - + Couldn't obtain query result. Não foi possível obter o resultado da análise. - + WAL mode is probably unsupported due to filesystem limitations. O modo WAL provavelmente não é suportado devido a limitações do sistema de ficheiros. - + + + Cannot parse resume data: %1 + Não foi possível analisar os dados de retomada: %1 + + + + + Cannot parse torrent info: %1 + Não foi possível analisar as informações do torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Não foi possível iniciar a transação. Erro: %1 @@ -2063,22 +2202,22 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Não foi possível guardar os metadados do torrent. Erro: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Não foi possível armazenar os dados do retomar do torrent '%1'. Erro: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Não foi possível eliminar os dados do retomar do torrent '%1'. Erro: %2 - + Couldn't store torrents queue positions. Error: %1 Não foi possível armazenar as posições da lista de torrents. Erro:%1 @@ -2086,457 +2225,503 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Suporte para a 'Tabela do hash distribuído (DHT)': %1 - - - - - - - - - + + + + + + + + + ON ON - - - - - - - - - + + + + + + + + + OFF OFF - - + + Local Peer Discovery support: %1 Suporte para a 'Descoberta de fontes locais': %1 - + Restart is required to toggle Peer Exchange (PeX) support É necessário reiniciar para ativar/desativar o suporte para Troca de pares (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Falha ao retomar o torrent. Torrent: "%1". Motivo: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Falha ao retomar o torrent: Foi detetado um ID inconsistente do torrent. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Detetados dados inconsistentes: a categoria está ausente no ficheiro de configuração. A categoria será recuperada, mas as suas configurações serão redefinidas para os valores padrão. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Detetados dados inconsistentes: categoria inválida. Torrent: "%1". Categoria: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Detetada falta de combinação entre os caminhos para guardar da categoria recuperada e o caminho para guardar atual do torrent. O torrent agora foi trocado para o modo 'Manual'. Torrent: "%1". Categoria: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Detetados dados inconsistentes: a categoria está ausente no ficheiro de configuração. A categoria será recuperada. Torrent: "%1". Etiqueta: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Detetados dados inconsistentes: Etiqueta inválida. Torrent: "%1". Etiqueta: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Detectado evento de despertar do sistema. Reanunciando a todos os rastreadores... - + Peer ID: "%1" ID da fonte: "%1" - + HTTP User-Agent: "%1" Agente de utilizador HTTP: "%1" - + Peer Exchange (PeX) support: %1 Suporte para 'Troca de fontes (PeX)': %1 - - + + Anonymous mode: %1 Modo anónimo: %1 - - + + Encryption support: %1 Suporte à encriptação: %1 - - + + FORCED FORÇADO - + Could not find GUID of network interface. Interface: "%1" Não é possível encontrar o 'Identificador único global' (GUID) da interface de rede: "%1" - + Trying to listen on the following list of IP addresses: "%1" A tentar escutar na seguinte lista de endereços de IP: "%1" - + Torrent reached the share ratio limit. O torrent atingiu o limite da proporção de partilha. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent removido. - - - - - - Removed torrent and deleted its content. - Torrent removido e eliminado o seu conteúdo. - - - - - - Torrent paused. - Torrent em pausa. - - - - - + Super seeding enabled. Modo super semeador ativado. - + Torrent reached the seeding time limit. O torrent atingiu o limite de tempo a semear. - + Torrent reached the inactive seeding time limit. O torrent atingiu o limite de tempo inativo a semear. - + Failed to load torrent. Reason: "%1" Falha ao carregar o torrent. Motivo: "%1" - + I2P error. Message: "%1". Erro I2P. Mensagem: "%1". - + UPnP/NAT-PMP support: ON Suporte a UPnP/NAT-PMP: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + A fusão de trackers está desativada + + + + Trackers cannot be merged because it is a private torrent + Os trackers não podem ser fundidos porque se trata de um torrent privado + + + + Trackers are merged from new source + Os trackers são fundidos a partir da nova fonte + + + UPnP/NAT-PMP support: OFF Suporte a UPnP/NAT-PMP: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Falha ao exportar o torrent. Torrent: "%1". Destino: "%2". Motivo: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 O retomar da poupança de dados foi abortado. Número de torrents pendentes: %1 - + The configured network address is invalid. Address: "%1" O endereço de rede configurado é inválido. Endereço: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Falha ao encontrar o endereço de rede configurado para escutar. Endereço: "%1" - + The configured network interface is invalid. Interface: "%1" A interface da rede configurada é inválida. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Endereço de IP inválido rejeitado enquanto aplicava a lista de endereços de IP banidos. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Adicionado o tracker ao torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Removido o tracker do torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL da semente adicionado ao torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Removido o URL da semente do torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent em pausa. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrent retomado. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Transferência do torrent concluída. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Movimentação do torrent cancelada. Torrent: "%1". Fonte: "%2". Destino: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Falha ao enfileirar a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: o torrent está atualmente a ser movido para o destino - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Falha ao enfileirar a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: ambos os caminhos apontam para o mesmo local - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Enfileirada a movimentação do torrent. Torrent: "%1". Fonte: "%2". Destino: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Iniciada a movimentação do torrent. Torrent: "%1". Destino: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Falha ao guardar a configuração das categorias. Ficheiro: "%1". Erro: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Falha ao analisar a configuração das categorias. Ficheiro: "%1". Erro: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Ficheiro de filtro dos IPs analisado com sucesso. Número de regras aplicadas: %1 - + Failed to parse the IP filter file Falha ao analisar o ficheiro de filtro dos IPs - + Restored torrent. Torrent: "%1" Torrent restaurado. Torrent: "%1" - + Added new torrent. Torrent: "%1" Novo torrent adicionado. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Erro de torrent. Torrent: "%1". Erro: "%2" - - - Removed torrent. Torrent: "%1" - Torrent removido. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent removido e eliminado o seu conteúdo. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alerta de erro no ficheiro. Torrent: "%1". Ficheiro: "%2". Motivo: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Falha no mapeamento das portas UPnP/NAT-PMP. Mensagem: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Mapeamento das portas UPnP/NAT-PMP realizado com sucesso. Mensagem: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtro de IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). porta filtrada (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). porta privilegiada (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" A sessão BitTorrent encontrou um erro grave. Motivo: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Erro de proxy SOCKS5. Endereço: %1. Mensagem: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restrições de modo misto - + Failed to load Categories. %1 Ocorreu um erro ao carregar as Categorias. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Ocorreu um erro ao carregar a configuração das Categorias. Ficheiro: "%1". Erro: "Formato de dados inválido" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent removido, mas ocorreu uma falha ao eliminar o seu conteúdo e/ou ficheiro parcial. Torrent: "%1". Erro: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 encontra-se inativo - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 está desativado - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Falha na pesquisa do DNS da URL da semente. Torrent: "%1". URL: "%2". Erro: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Mensagem de erro recebida do URL da semente. Torrent: "%1". URL: "%2". Mensagem: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" A receber com sucesso através do IP. IP: "%1". Porta: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Falha de recepção no IP. IP: "%1". Porta: "%2/%3". Motivo: "%4" - + Detected external IP. IP: "%1" IP externo detetado. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Erro: A fila de alertas internos está cheia e os alertas foram perdidos, poderá experienciar uma degradação na performance. Tipos de alertas perdidos: "%1". Mensagem: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent movido com sucesso. Torrent: "%1". Destino: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Falha ao mover o torrent. Torrent: "%1". Fonte: "%2". Destino: "%3". Motivo: "%4" @@ -2552,13 +2737,13 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::TorrentCreator - + Operation aborted Operação abortada - - + + Create new torrent file failed. Reason: %1. Falha ao criar um novo ficheiro torrent. Motivo: %1. @@ -2566,67 +2751,67 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Ocorreu um erro ao tentar semear "%1" para o torrent "%2". Motivo: %3 - + Peer "%1" is added to torrent "%2" A semente "%1" foi adicionada ao torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Não foi possível guardar no ficheiro. Motivo: "%1". O torrent agora está no modo "somente upload". - + Download first and last piece first: %1, torrent: '%2' Fazer a transferência da primeira e última parte primeiro: %1, torrent: '%2' - + On On - + Off Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Falha ao gerar dados de resumo. Torrent: "%1". Motivo: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Falha ao restaurar o torrent. Os arquivos provavelmente foram movidos ou o armazenamento não está acessível. Torrent: "%1". Motivo: "%2" - + Missing metadata Metadados faltando - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Falha ao renomear. Torrent: "%1", ficheiro: "%2", razão: "%3" - + Performance alert: %1. More info: %2 Alerta de performance: %1. Mais informações: %2 @@ -2647,189 +2832,189 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' O parâmetro '%1' deverá seguir a sintaxe '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' O parâmetro '%1' deverá seguir a sintaxe '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Era esperado o número inteiro na variável ambiente '%1', mas foi obtido '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - O parâmetro '%1' deverá seguir a sintaxe '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Era esperado %1 na variável ambiente '%2', mas foi obtido '%3' - - + + %1 must specify a valid port (1 to 65535). %1 deverá especificar uma porta válida (entre 1 e 65535). - + Usage: Utilização: - + [options] [(<filename> | <url>)...] [opções] [(<filename> | <url>)...] - + Options: Opções: - + Display program version and exit Mostrar a versão do programa e sair - + Display this help message and exit Mostrar esta mensagem de ajuda e sair - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + O parâmetro '%1' deverá seguir a sintaxe '%1=%2' + + + Confirm the legal notice - - + + port porta - + Change the WebUI port Alterar a porta WebUI - + Change the torrenting port Alterar a porta de torrent - + Disable splash screen Desativar ecrã de arranque - + Run in daemon-mode (background) Executar no modo daemon (em segundo plano) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Guardar ficheiros de configuração em <dir> - - + + name nome - + Store configuration files in directories qBittorrent_<name> Guardar ficheiros de configuração em diretorias qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Retalhar em ficheiros fastresume libtorrent e fazer caminhos de ficheiro relativos para a diretoria do perfil - + files or URLs ficheiros ou URLs - + Download the torrents passed by the user Transferir os torrents enviados pelo utilizador - + Options when adding new torrents: Opções ao adicionar novos torrents: - + path caminho - + Torrent save path Caminho para guardar o torrent - - Add torrents as started or paused - Adicionar torrents como iniciados ou pausados + + Add torrents as running or stopped + Adicionar torrents como em execução ou parados - + Skip hash check Ignorar a verificação do hash - + Assign torrents to category. If the category doesn't exist, it will be created. Atribuir os torrents a categorias. Se ela não existir será criada. - + Download files in sequential order Transferir os ficheiros por ordem sequencial - + Download first and last pieces first Transferir a primeira e a última parte primeiro - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Especifica se a caixa de diálogo "Adicionar novo torrent" é aberta ao adicionar um torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Os valores das opções podem ser fornecidos através de variáveis de ambiente. Para a opção denominada 'nome-parâmetro', o nome da variável de ambiente é 'QBT_PARAMETER_NAME' (em maiúsculas, '-' substituído por '_'). Para passar os valores do sinalizador, defina a variável como '1' ou 'VERDADEIRO'. Por exemplo, para desativar o ecrã inicial: - + Command line parameters take precedence over environment variables Os parâmetros da linha de comando têm precedência sobre as variáveis de ambiente - + Help Ajuda @@ -2881,13 +3066,13 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para - Resume torrents - Retomar torrents + Start torrents + Iniciar torrents - Pause torrents - Pausar torrents + Stop torrents + Parar torrents @@ -2898,15 +3083,20 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para ColorWidget - + Edit... Editar... - + Reset Redefinir + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para CustomThemeSource - + Failed to load custom theme style sheet. %1 Falha ao carregar a folha de estilo do tema personalizado. %1 - + Failed to load custom theme colors. %1 Falha ao carregar as cores do tema personalizado. %1 @@ -2960,7 +3150,7 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para DefaultThemeSource - + Failed to load default theme colors. %1 Falha ao carregar as cores do tema predefinido. %1 @@ -2979,23 +3169,23 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para - Also permanently delete the files - Também eliminar permanentemente os ficheiros + Also remove the content files + Remover também os ficheiros de conteúdo - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Quer eliminar '%1' da lista de transferências? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Quer remover estes %1 torrents selecionados da lista de transferências? - + Remove Remover @@ -3008,12 +3198,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Transferir a partir de URLs - + Add torrent links Adicionar ligações torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Uma ligação por linha (são suportados ligações HTTP, ligações magnet e info-hashes) @@ -3023,12 +3213,12 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Transferir - + No URL entered Nenhum URL inserido - + Please type at least one URL. Por favor, introduza pelo menos um URL. @@ -3187,25 +3377,48 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Erro de análise: O ficheiro do filtro não é um ficheiro PeerGuardian P2B válido. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" A transferir torrent... Fonte: "%1" - - Trackers cannot be merged because it is a private torrent - Os trackers não podem ser fundidos porque se trata de um torrent privado - - - + Torrent is already present O torrent já se encontra presente - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? O torrent '%1' já existe na lista de transferências. Deseja unir os rastreadores da nova fonte? @@ -3213,38 +3426,38 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para GeoIPDatabase - - + + Unsupported database file size. Tamanho do ficheiro da base 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: A entrada '%1' é de um tipo inválido. - + Unsupported database version: %1.%2 Versão não suportada da base de dados: %1.%2 - + Unsupported IP version: %1 Versão não suportada do IP: %1 - + Unsupported record size: %1 Tamanho de gravação não suportado: %1 - + Database corrupted: no data section found. Base de dados corrompida: secção de dados não encontrada. @@ -3252,17 +3465,17 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 O tamanho do pedido HTTP excede o limite, a fechar socket. Limite: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Pedido inválido de Http, a encerrar socket: IP: %1 @@ -3303,26 +3516,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para IconWidget - + Browse... Navegar... - + Reset Redefinir - + Select icon Selecionar ícone - + Supported image files Ficheiros de imagem suportados + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 foi bloqueado. Motivo: %2. - + %1 was banned 0.0.0.0 was banned %1 foi banido @@ -3369,60 +3616,60 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 é um parâmetro de linha de comandos desconhecido. - - + + %1 must be the single command line parameter. %1 deverá ser o único parâmetro da linha de comandos. - + Run application with -h option to read about command line parameters. Executa a aplicação com a opção -h para saber mais acerca dos parâmetros da linha de comandos. - + Bad command line Linha de comandos inválida - + Bad command line: Linha de comandos inválida: - + An unrecoverable error occurred. Ocorreu um erro irrecuperável. + - qBittorrent has encountered an unrecoverable error. O qBittorrent encontrou um erro irrecuperável. - + You cannot use %1: qBittorrent is already running. - + Não pode usar o %1: o qBittorrent já está em execução. - + Another qBittorrent instance is already running. - + Uma outra instância do qBittorrent já está em execução. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Suporta os formatos: S01E01, 1x1, 2017.12.31 e 31.12.2017 (Suporte também para &Editar - + &Tools Ferramen&tas - + &File &Ficheiro - + &Help Aj&uda - + On Downloads &Done Ao t&erminar as transferências - + &View &Ver - + &Options... &Opções... - - &Resume - &Retomar - - - + &Remove &Remover - + Torrent &Creator &Criador de torrents - - + + Alternative Speed Limits Limites alternativos de velocidade - + &Top Toolbar &Barra superior - + Display Top Toolbar Mostrar a barra superior - + Status &Bar &Barra de estado - + Filters Sidebar Barra lateral dos filtros - + S&peed in Title Bar &Velocidade na barra de título - + Show Transfer Speed in Title Bar Mostrar a velocidade de transferência na barra de título - + &RSS Reader Leitor &RSS - + Search &Engine Motor de &pesquisa - + L&ock qBittorrent Bl&oquear o qBittorrent - + Do&nate! Do&ar! - + + Sh&utdown System + + + + &Do nothing &Não fazer nada - + Close Window Fechar janela - - R&esume All - R&etomar tudo - - - + Manage Cookies... Gerir cookies... - + Manage stored network cookies Gerir os cookies de rede guardados - + Normal Messages Mensagens normais - + Information Messages Mensagens informativas - + Warning Messages Mensagens de aviso - + Critical Messages Mensagens críticas - + &Log &Registo - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Definir limite global de velocidade... - + Bottom of Queue Fundo da fila - + Move to the bottom of the queue Mover para o fundo da fila - + Top of Queue Topo da fila - + Move to the top of the queue Mover para o topo da fila - + Move Down Queue Mover abaixo na fila - + Move down in the queue Mover abaixo na fila - + Move Up Queue Mover acima na fila - + Move up in the queue Mover acima na fila - + &Exit qBittorrent S&air do qBittorrent - + &Suspend System &Suspender sistema - + &Hibernate System &Hibernar sistema - - S&hutdown System - D&esligar sistema - - - + &Statistics Estatística&s - + Check for Updates Pesquisar por atualizações - + Check for Program Updates Pesquisar por atualizações da aplicação - + &About &Acerca - - &Pause - &Pausar - - - - P&ause All - P&ausar tudo - - - + &Add Torrent File... &Adicionar ficheiro torrent... - + Open Abrir - + E&xit Sa&ir - + Open URL Abrir URL - + &Documentation &Documentação - + Lock Bloquear - - - + + + Show Mostrar - + Check for program updates Pesquisar por atualizações da aplicação - + Add Torrent &Link... Adicionar &ligação torrent... - + If you like qBittorrent, please donate! Se gosta do qBittorrent, ajude-nos e faça uma doação! - - + + Execution Log Registo de execução - + Clear the password Limpar palavra-passe - + &Set Password Definir palavra-pa&sse - + Preferences Preferências - + &Clear Password &Limpar palavra-passe - + Transfers Transferências - - + + qBittorrent is minimized to tray O qBittorrent foi minimizado para a barra de tarefas - - - + + + This behavior can be changed in the settings. You won't be reminded again. Este comportamento pode ser modificado nas definições. Você não será novamente relembrado. - + 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 o estilo do sistema - - + + UI lock password Palavra-passe da interface - - + + Please type the UI lock password: Escreva a palavra-passe da interface: - + Are you sure you want to clear the password? Tem a certeza que pretende eliminar a palavra-passe? - + Use regular expressions Utilizar expressões regulares - + + + Search Engine + Motor de pesquisa + + + + Search has failed + A pesquisa falhou + + + + Search has finished + A pesquisa terminou + + + Search Pesquisar - + Transfers (%1) Transferências (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. O qBittorrent foi atualizado e necessita de ser reiniciado para que as alterações tenham efeito. - + qBittorrent is closed to tray O qBittorrent foi fechado para a barra de tarefas - + Some files are currently transferring. Ainda estão a ser transferidos alguns ficheiros. - + Are you sure you want to quit qBittorrent? Tem a certeza que deseja sair do qBittorrent? - + &No &Não - + &Yes &Sim - + &Always Yes &Sair sempre - + Options saved. Opções guardadas. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title + + [PAUSED] %1 + %1 is the rest of the window title - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Python Runtime em falta - + qBittorrent Update Available Atualização disponível - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? É necessário o Python para poder utilizar o motor de pesquisa, mas parece que não existe nenhuma versão instalada. Gostaria de o instalar agora? - + Python is required to use the search engine but it does not seem to be installed. É necessário o Python para poder utilizar o motor de pesquisa, mas parece que não existe nenhuma versão instalada. - - + + Old Python Runtime Python Runtime antigo - + A new version is available. Está disponível uma nova versão. - + Do you want to download %1? Pretende transferir %1? - + Open changelog... Abrir histórico de alterações... - + No updates available. You are already using the latest version. Não existem atualizações disponíveis. Você já possui a versão mais recente. - + &Check for Updates Pesq&uisar por atualizações - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? A sua versão do Python (%1) está desatualizada. Requerimento mínimo: %2. Quer instalar uma versão mais recente agora? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. A sua versão do Python (%1) está desatualizada. Atualize para a versão mais recente para que os motores de pesquisa funcionem. Requerimento mínimo: %2. - + + Paused + Em pausa + + + Checking for Updates... A pesquisar atualizações... - + Already checking for program updates in the background O programa já está à procura de atualizações em segundo plano - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Ocorreu um erro ao tentar transferir - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Não foi possível fazer a transferência do Python. Motivo: %1. -Por favor, instale-o manualmente. - - - - + + Invalid password Palavra-passe inválida - + Filter torrents... Filtrar torrents... - + Filter by: Filtrar por: - + The password must be at least 3 characters long A palavra-passe deve ter pelo menos 3 caracteres - - - + + + RSS (%1) RSS (%1) - + The password is invalid A palavra-passe é inválida - + DL speed: %1 e.g: Download speed: 10 KiB/s Veloc. download: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Vel. upload: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [D: %1, U: %2] qBittorrent %3 - - - + Hide Ocultar - + Exiting qBittorrent A sair do qBittorrent - + Open Torrent Files Abrir ficheiros torrent - + Torrent Files Ficheiros torrent @@ -4232,7 +4550,12 @@ Por favor, instale-o manualmente. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" A ignorar erro SSL, URL: "%1", erros: "%2" @@ -5526,47 +5849,47 @@ Por favor, instale-o manualmente. Net::Smtp - + Connection failed, unrecognized reply: %1 Falha na ligação, resposta não reconhecida: %1 - + Authentication failed, msg: %1 Falha na autenticação, mensagem: %1 - + <mail from> was rejected by server, msg: %1 <mail from> foi rejeitado pelo servidor, mensagem: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> foi rejeitado pelo servidor, mensagem: %1 - + <data> was rejected by server, msg: %1 <data> foi rejeitado pelo servidor, mensagem: %1 - + Message was rejected by the server, error: %1 A mensagem foi rejeitada pelo servidor, erro: %1 - + Both EHLO and HELO failed, msg: %1 Ambos o EHLO e o HELO falharam, mensagem: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 O servidor SMTP não parece oferecer suporte a nenhum dos modos de autenticação que suportamos [CRAM-MD5|PLAIN|LOGIN], ignorando a autenticação, sabendo que provavelmente falhará... Modos de autenticação do servidor: %1 - + Email Notification Error: %1 E-mail de notificação de erro: %1 @@ -5604,299 +5927,283 @@ Por favor, instale-o manualmente. BitTorrent - + RSS RSS - - Web UI - Interface Web - - - + Advanced Avançado - + Customize UI Theme... Personalizar tema da interface... - + Transfer List Lista de transferências - + Confirm when deleting torrents Confirmar eliminação de torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Utilizar cores alternadas para as linhas - + Hide zero and infinity values Ocultar os valores zero e infinito - + Always Sempre - - Paused torrents only - Apenas os torrents pausados - - - + Action on double-click Ação do duplo clique - + Downloading torrents: A transferir torrents: - - - Start / Stop Torrent - Iniciar/Parar torrent - - - - + + Open destination folder Abrir pasta de destino - - + + No action Nenhuma ação - + Completed torrents: Torrents completos: - + Auto hide zero status filters Ocultar filtro de estado zero - + Desktop Área de trabalho - + Start qBittorrent on Windows start up Iniciar o qBittorrent ao arrancar o Windows - + Show splash screen on start up Mostrar ecrã de arranque - + Confirmation on exit when torrents are active Confirmação necessária ao sair caso existam torrents ativos - + Confirmation on auto-exit when downloads finish Confirmação durante a saída automática ao terminar as transferências - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Disposição do conteúdo do torrent: - + Original Original - + Create subfolder Criar subpasta - + Don't create subfolder Não criar subpasta - + The torrent will be added to the top of the download queue O torrent será adicionado ao início da fila de transferências - + Add to top of queue The torrent will be added to the top of the download queue Adicionar ao início da fila - + When duplicate torrent is being added - + Quando um torrent duplicado for adicionado - + Merge trackers to existing torrent - + Unir rastreadores ao torrent existente - + Keep unselected files in ".unwanted" folder - + Manter ficheiros não selecionados na pasta ".unwanted" - + Add... Adicionar... - + Options.. Opções.. - + Remove Remover - + Email notification &upon download completion Enviar notificação &por e-mail ao terminar a transferência - + + Send test email + Enviar e-mail de teste + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Protocolo de ligação de pares: - + Any Qualquer um - + I2P (experimental) I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode Modo misto - - Some options are incompatible with the chosen proxy type! - Algumas opções são incompatíveis com o tipo de proxy escolhido! - - - + If checked, hostname lookups are done via the proxy Se selecionado, as pesquisas de nome de servidor são feitas por meio do proxy - + Perform hostname lookup via proxy Realizar a consulta de hostname via proxy - + Use proxy for BitTorrent purposes Utilize um proxy para fins de BitTorrent - + RSS feeds will use proxy Os feeds RSS irão usar proxy - + Use proxy for RSS purposes Utilizar proxy para fins de RSS - + Search engine, software updates or anything else will use proxy Mecanismo de pesquisa, atualizações de software ou outra coisa qualquer usará proxy - + Use proxy for general purposes Utilizar proxy para fins gerais - + IP Fi&ltering Fi&ltro de IP - + Schedule &the use of alternative rate limits Agendar &a utilização dos limites de rácio alternativos - + From: From start time De: - + To: To end time Para: - + Find peers on the DHT network Encontrar fontes na rede DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Exigir encriptação: Apenas liga a fontes com protocolo de encriptação Desativar encriptação: Apenas liga a fontes sem protocolo de encriptação - + Allow encryption Permitir encriptação - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mais informação</a>) - + Maximum active checking torrents: Máximo de torrents ativos em verificação: - + &Torrent Queueing Fila de &torrents - + When total seeding time reaches - + Quando o tempo total de semear for atingido - + When inactive seeding time reaches - + Quando o tempo inativo de semear for atingido - - A&utomatically add these trackers to new downloads: - Adicionar a&utomaticamente estes rastreadores às novas transferências: - - - + RSS Reader Leitor RSS - + Enable fetching RSS feeds Ativar a procura de fontes RSS - + Feeds refresh interval: Intervalo de atualização das fontes: - + Same host request delay: - + Atraso na solicitação do mesmo host: - + Maximum number of articles per feed: Número máximo de artigos por fonte: - - - + + + min minutes min - + Seeding Limits Limites do semear - - Pause torrent - Pausar torrent - - - + Remove torrent Remover torrent - + Remove torrent and its files Remover o torrent e os seus ficheiros - + Enable super seeding for torrent Ativar o super semear para o torrent - + When ratio reaches Quando o rácio atingir - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Parar torrent + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Transferidor automático de RSS Torrent - + Enable auto downloading of RSS torrents Ativar a transferência automática de torrents RSS - + Edit auto downloading rules... Editar regras da transferência automática... - + RSS Smart Episode Filter Filtro inteligente de episódios RSS - + Download REPACK/PROPER episodes Transferir episódios REPACK/PROPER - + Filters: Filtros: - + Web User Interface (Remote control) Interface web do utilizador (controlo remoto) - + IP address: Endereço IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Especifique um endereço IPv4 ou IPv6. Você pode especificar "0.0.0.0" "::" para qualquer endereço IPv6, ou "*" para IPv4 e IPv6. - + Ban client after consecutive failures: Banir cliente depois de várias falhas consecutivas: - + Never Nunca - + ban for: banir durante: - + Session timeout: Terminado o tempo da sessão: - + Disabled Desativado(a) - - Enable cookie Secure flag (requires HTTPS) - Ativar cookie bandeira segura (requer HTTPS) - - - + Server domains: Domínio do servidor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6447,483 @@ você deverá colocar os nomes de domínio usados pelo servidor da interface web Utilize ';' para dividir várias entradas. Pode usar o asterisco '*'. - + &Use HTTPS instead of HTTP &Utilizar o HTTPS como alternativa ao HTTP - + Bypass authentication for clients on localhost Desativar a autenticação para clientes no localhost - + Bypass authentication for clients in whitelisted IP subnets Desativar a autenticação para clientes pertencentes à lista de IPs confiáveis - + IP subnet whitelist... Sub-rede de IP confiável... - + + Use alternative WebUI + Usar interface web alternativa + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Especifique IPs de proxies reversos (ou sub-máscaras, ex.: 0.0.0.0/24) para utilizar no endereço do cliente encaminhado (atributo X-Forwarded-For). Utilize ';' para dividir múltiplas entradas. - + Upda&te my dynamic domain name A&tualizar o nome de domínio dinâmico - + Minimize qBittorrent to notification area Minimizar o qBittorrent para a área de notificação - + + Search + Procurar + + + + WebUI + Interface Web + + + Interface Interface - + Language: Idioma: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Estilo do ícone: - - + + Normal Normal - + File association Associação de ficheiros - + Use qBittorrent for .torrent files Associar o qBittorrent aos ficheiros .torrent - + Use qBittorrent for magnet links Associar o qBittorrent às ligações magnet - + Check for program updates Pesquisar por atualizações da aplicação - + Power Management Gestão de energia - + + &Log Files + + + + Save path: Guardar em: - + Backup the log file after: Fazer backup do ficheiro de registo após: - + Delete backup logs older than: Eliminar registos de backup anteriores a: - + + Show external IP in status bar + + + + When adding a torrent Ao adicionar um torrent - + Bring torrent dialog to the front Trazer o diálogo do torrent para a frente - + + The torrent will be added to download list in a stopped state + O torrent será adicionado à lista de transferências no estado parado + + + Also delete .torrent files whose addition was cancelled Eliminar também os ficheiros .torrent cuja adição foi cancelada - + Also when addition is cancelled Também quando a adição for cancelada - + Warning! Data loss possible! Atenção! Possível perda de dados! - + Saving Management Gestão do "Guardar" - + Default Torrent Management Mode: Modo de gestão do torrent por defeito: - + Manual Manual - + Automatic Automático - + When Torrent Category changed: Quando a 'Categoria do torrent' for alterada: - + Relocate torrent Realocar torrent - + Switch torrent to Manual Mode Mudar o torrent para o 'Modo manual' - - + + Relocate affected torrents Realocar torrents afetados - - + + Switch affected torrents to Manual Mode Mudar os torrents afetados para o 'Modo manual' - + Use Subcategories Utilizar subcategorias - + Default Save Path: Caminho padrão para o 'Guardar': - + Copy .torrent files to: Copiar os ficheiros .torrent para: - + Show &qBittorrent in notification area Mostrar o &qBittorrent na área de notificação - - &Log file - Ficheiro de &registo - - - + Display &torrent content and some options Mostrar o conteúdo do &torrent e algumas opções - + De&lete .torrent files afterwards E&liminar os ficheiros .torrent mais tarde - + Copy .torrent files for finished downloads to: Copiar os ficheiros .torrent das transferências terminadas para: - + Pre-allocate disk space for all files Pré-alocar espaço em disco para todos os ficheiros - + Use custom UI Theme Utilizar um tema personalizado da interface web - + UI Theme file: Ficheiro do tema da interface web: - + Changing Interface settings requires application restart Para alterar as definições da interface necessita de reiniciar a aplicação - + Shows a confirmation dialog upon torrent deletion Exibe um diálogo de confirmação durante a eliminação de torrents - - + + Preview file, otherwise open destination folder Pré-visualizar ficheiro, alternativamente abrir a pasta de destino - - - Show torrent options - Mostrar opções do torrent - - - + Shows a confirmation dialog when exiting with active torrents Exibe um diálogo de confirmação ao sair, caso existam torrents ativos - + When minimizing, the main window is closed and must be reopened from the systray icon Ao minimizar, a janela principal é fechada e deverá ser reaberta a partir do ícone da bandeja do sistema - + The systray icon will still be visible when closing the main window O ícone da barra de tarefas permanecerá visível mesmo ao fechar a janela principal - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Fechar o qBittorrent para a área de notificação - + Monochrome (for dark theme) Monocromático (para o tema escuro) - + Monochrome (for light theme) Monocromático (para o tema claro) - + Inhibit system sleep when torrents are downloading Impedir a suspensão do sistema caso existam torrents a serem transferidos - + Inhibit system sleep when torrents are seeding Impedir a suspensão do sistema caso existam torrents a serem semeados - + Creates an additional log file after the log file reaches the specified file size Cria um ficheiro adicional com o registo de atividade depois do ficheiro do registo de atividade atingir o tamanho especificado - + days Delete backup logs older than 10 days dias - + months Delete backup logs older than 10 months meses - + years Delete backup logs older than 10 years anos - + Log performance warnings Registar avisos de desempenho - - The torrent will be added to download list in a paused state - O torrent será adicionado à lista de transferências em estado de pausa - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Não iniciar a transferência automaticamente - + Whether the .torrent file should be deleted after adding it Se o ficheiro .torrent deve ser eliminado após ter sido adicionado - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Atribui o tamanho total dos ficheiros no disco antes de iniciar as transferências, para minimizar a fragmentação. Útil apenas para HDDs. - + Append .!qB extension to incomplete files Adicionar a extensão .!qB aos ficheiros incompletos - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Quando está a ser descarregado um torrent, oferecer para adicionar torrents a partir de ficheiros .torrent encontrados dentro deles - + Enable recursive download dialog Ativar o diálogo de transferência recursiva - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automático: Várias propriedades do torrent (ex: caminho para guardar) serão decididas pela categoria associada Manual: Várias propriedades do torrent (ex: caminho para guardar) deverão ser decididas manualmente - + When Default Save/Incomplete Path changed: Quando o caminho padrão para Guardar/Incompleto mudar: - + When Category Save Path changed: Quando alterar a 'Categoria do caminho para guardar': - + Use Category paths in Manual Mode Utilizar os caminhos de 'Categoria' no 'Modo manual' - + Resolve relative Save Path against appropriate Category path instead of Default one Resolver o 'Caminho para guardar' relativo contra o 'Caminho da categoria' apropriado ao invés do 'Caminho padrão' - + Use icons from system theme Usar ícones do tema do sistema - + Window state on start up: Estado da janela ao iniciar: - + qBittorrent window state on start up Estado da janela do qBittorrent ao iniciar - + Torrent stop condition: Condição para parar torrent: - - + + None Nenhum - - + + Metadata received Metadados recebidos - - + + Files checked Ficheiros verificados - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Usar outro caminho para os torrents incompletos: - + Automatically add torrents from: Adicionar automaticamente os torrents de: - + Excluded file names Nomes de ficheiro excluídos - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6952,811 @@ readme.txt: filtra o nome exato do ficheiro. readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas não 'readme10.txt'. - + Receiver Recetor - + To: To receiver Para: - + SMTP server: Servidor SMTP: - + Sender Emissor - + From: From sender De: - + This server requires a secure connection (SSL) Este servidor requer uma ligação segura (SSL) - - + + Authentication Autenticação - - - - + + + + Username: Nome de utilizador: - - - - + + + + Password: Palavra-passe: - + Run external program Executar programa externo - - Run on torrent added - Executar ao adicionar o torrent - - - - Run on torrent finished - Executar ao concluir o torrent - - - + Show console window Mostrar a janela da consola - + TCP and μTP TCP e μTP - + Listening Port Porta de receção - + Port used for incoming connections: Porta utilizada para as ligações recebidas: - + Set to 0 to let your system pick an unused port Definir para 0 para deixar o seu sistema escolher uma porta não utilizada - + Random Aleatória - + Use UPnP / NAT-PMP port forwarding from my router Utilizar o reencaminhamento de portas UPnP/NAT-PMP do meu router - + Connections Limits Limites das ligações - + Maximum number of connections per torrent: Número máximo de ligações por torrent: - + Global maximum number of connections: Número máximo de ligações globais: - + Maximum number of upload slots per torrent: Número máximo de slots de upload por torrent: - + Global maximum number of upload slots: Número máximo de slots de upload por torrent: - + Proxy Server Servidor proxy - + Type: Tipo: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Servidor: - - - + + + Port: Porta: - + 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 um proxy para ligações às fontes - + A&uthentication A&utenticação - - Info: The password is saved unencrypted - Informação: A palavra-passe é guardada sem encriptação - - - + Filter path (.dat, .p2p, .p2b): Filtrar caminho (.dat, .p2p, .p2b): - + Reload the filter Recarregar o filtro - + Manually banned IP addresses... Endereços de IP banidos manualmente... - + Apply to trackers Aplicar aos rastreadores - + Global Rate Limits Limites de rácio globais - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Upload: - - + + Download: Transferência: - + Alternative Rate Limits Limites de rácio alternativo - + Start time Hora de início - + End time Hora de fim - + When: Quando: - + Every day Diariamente - + Weekdays Dias da semana - + Weekends Fins de semana - + Rate Limits Settings Definições dos limites de rácio - + Apply rate limit to peers on LAN Aplicar o limite de rácio às fontes nas ligações LAN - + Apply rate limit to transport overhead Aplicar os limites de rácio para o transporte "overhead" - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Aplicar os limites de rácio ao protocolo µTP - + Privacy Privacidade - + Enable DHT (decentralized network) to find more peers Ativar DHT (rede descentralizada) para encontrar mais fontes - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Trocar fontes com clientes Bittorrent compatíveis (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Ativar a 'Troca de Fontes' (PeX) para encontrar mais fontes - + Look for peers on your local network Procurar fontes na rede local - + Enable Local Peer Discovery to find more peers Ativar 'Descoberta de fontes locais' para encontrar mais fontes - + Encryption mode: Modo de encriptação: - + Require encryption Requer encriptação - + Disable encryption Desativar encriptação - + Enable when using a proxy or a VPN connection Ativar ao utilizar uma ligação proxy ou VPN - + Enable anonymous mode Ativar o modo anónimo - + Maximum active downloads: Nº máximo de transferências ativas: - + Maximum active uploads: Nº máximo de uploads ativos: - + Maximum active torrents: Nº máximo de torrents ativos: - + Do not count slow torrents in these limits Não considerar os torrents lentos para estes limites - + Upload rate threshold: Limite do rácio de upload: - + Download rate threshold: Limite do rácio de transferência: - - - - + + + + sec seconds seg - + Torrent inactivity timer: Temporizador de inatividade do torrent: - + then depois - + Use UPnP / NAT-PMP to forward the port from my router Utilizar o reencaminhamento de portas UPnP/NAT-PMP do meu router - + Certificate: Certificado: - + Key: Chave: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informação acerca dos certificados</a> - + Change current password Alterar a palavra-passe atual - - Use alternative Web UI - Utilizar a interface web alternativa - - - + Files location: Localização dos ficheiros: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Segurança - + Enable clickjacking protection Ativar a proteção contra o "clickjacking" - + Enable Cross-Site Request Forgery (CSRF) protection Ativar a proteção contra falsificação de solicitação entre sites (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Ativar a validação do cabeçalho do Host - + Add custom HTTP headers Adicionar cabeçalhos HTTP personalizados - + Header: value pairs, one per line Cabeçalho: pares de valores, um por linha - + Enable reverse proxy support Ativar o suporte para proxy reverso - + Trusted proxies list: Lista de proxies confiáveis: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Serviço: - + Register Registar - + Domain name: Nome do domínio: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Ao ativar estas opções, poderá <strong>perder permanentemente</strong> os seus ficheiros .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Se ativar a segunda opção (&ldquo;Também quando a adição for cancelada&rdquo;) o ficheiro .torrent <strong>será eliminado</strong>, mesmo que prima &ldquo;<strong>Cancelar</ strong>&rdquo; no diálogo &ldquo;Adicionar torrent&rdquo; - + Select qBittorrent UI Theme file Selecione o ficheiro do tema da interface do utilizador do qBittorrent - + Choose Alternative UI files location Escolher localização alternativa para os ficheiros da interface do utilizador - + Supported parameters (case sensitive): Parâmetros suportados (sensível a maiúsculas/minúsculas): - + Minimized Minimizado - + Hidden Escondido - + Disabled due to failed to detect system tray presence Desativado devido a falha ao detectar presença na área de notificação do sistema - + No stop condition is set. Não foi definida nenhuma condição para parar. - + Torrent will stop after metadata is received. O torrent será parado após a recepção dos metadados. - Torrents that have metadata initially aren't affected. - Os torrents que possuem metadados inicialmente não são afetados. - - - + Torrent will stop after files are initially checked. O torrent parará após o a verificação inicial dos ficheiros. - + This will also download metadata if it wasn't there initially. Isto também irá transferir metadados caso não existam inicialmente. - + %N: Torrent name %N: Nome do torrent - + %L: Category %L: Categoria - + %F: Content path (same as root path for multifile torrent) %F: Caminho do conteúdo (igual ao caminho raiz para torrents de vários ficheiros) - + %R: Root path (first torrent subdirectory path) %R: Caminho raiz (caminho da primeira subdiretoria do torrent) - + %D: Save path %D: Caminho para gravar - + %C: Number of files %C: Número de ficheiros - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Tracker atual - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Dica: Encapsule o parâmetro entre aspas para evitar que sejam cortados os espaços em branco do texto (ex: "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + Tentativa de enviar e-mail. Verifique a sua caixa de entrada para confirmar + + + (None) (Nenhum(a)) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Um torrent será considerado lento se os rácios de download e upload se mantiverem abaixo destes valores durante "Temporizador de inatividade do torrent" segundos - + Certificate Certificado - + Select certificate Selecionar certificado - + Private key Chave privada - + Select private key Selecionar chave privada - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Selecione a pasta a ser monitorizada - + Adding entry failed Ocorreu um erro ao tentar adicionar a entrada - + The WebUI username must be at least 3 characters long. - + O nome de utilizador da interface web deve ter pelo menos 3 caracteres. - + The WebUI password must be at least 6 characters long. - + A palavra-passe da interface web tem de ter pelo menos 6 caracteres. - + Location Error Erro de localização - - + + Choose export directory Escolha a diretoria para exportar - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Quando estas opções estão ativadas, o qBittorrent irá <strong>eliminar</strong> os ficheiros .torrent após serem adicionados com sucesso (primeira opção) ou não (segunda opção) nas suas filas de transferência. Isto será aplicado <strong>não apenas</strong> aos ficheiros abertos pelo menu &ldquo;Adicionar torrent&rdquo;, mas também para aqueles abertos pela <strong>associação de tipos de ficheiro</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Ficheiro do tema da IU do qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiquetas (separadas por vírgula) - + %I: Info hash v1 (or '-' if unavailable) %I: Informações do hash v1 (ou '-' se indisponível) - + %J: Info hash v2 (or '-' if unavailable) %J: Informações do hash v2 (ou '-' se indisponível) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID do torrent (hash das informações do sha-1 pro torrent v1 ou hash das informações do sha-256 truncadas para torrent v2/híbrido) - - - + + + Choose a save directory Escolha uma diretoria para o gravar - + Torrents that have metadata initially will be added as stopped. - + Os torrents que possuem metadados inicialmente serão adicionados como parados. - + Choose an IP filter file Escolha um ficheiro de filtro IP - + All supported filters Todos os filtros suportados - + The alternative WebUI files location cannot be blank. - + O local alternativo dos ficheiros da interface web não pode estar em branco. - + 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 IP fornecido foi processado com sucesso: Foram aplicadas %1 regras. - + Preferences Preferências - + Time Error Erro de horário - + The start time and the end time can't be the same. A hora de início e a de fim não podem ser idênticas. - - + + Length Error Erro de comprimento @@ -7335,241 +7764,246 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n PeerInfo - + Unknown Desconhecido - + Interested (local) and choked (peer) Interessado (local) e choked (fonte) - + Interested (local) and unchoked (peer) Interessado (local) e unchoked (fonte) - + Interested (peer) and choked (local) Interessado (fonte) e choked (local) - + Interested (peer) and unchoked (local) Interessado (fonte) e unchoked (local) - + Not interested (local) and unchoked (peer) Não interessado (local) e unchoked (fonte) - + Not interested (peer) and unchoked (local) Não interessado (fonte) e unchoked (local) - + Optimistic unchoke Unchoke otimista - + Peer snubbed Fonte censurada - + Incoming connection Ligação de entrada - + Peer from DHT Fonte de DHT - + Peer from PEX Fonte de PEX - + Peer from LSD Fonte de LSD - + Encrypted traffic Tráfego encriptado - + Encrypted handshake Negociação encriptada + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region País/Região - + IP/Address Endereço IP: - + Port Porta - + Flags Bandeiras - + Connection Ligação - + Client i.e.: Client application Cliente - + Peer ID Client i.e.: Client resolved from Peer ID Cliente de ID do par - + Progress i.e: % downloaded Evolução - + Down Speed i.e: Download speed Vel. download - + Up Speed i.e: Upload speed Vel. upload - + 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 - + Files i.e. files that are being downloaded right now Ficheiros - + Column visibility Visibilidade da coluna - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos - + Add peers... Adicionar peers... - - + + Adding peers A adicionar fontes - + Some peers cannot be added. Check the Log for details. Não foi possível adicionar algumas das sementes. Para mais detalhes consulte o 'Registo'. - + Peers are added to this torrent. As fontes foram adicionadas a este torrent. - - + + Ban peer permanently Banir fonte permanentemente - + Cannot add peers to a private torrent Não foi possível adicionar fontes a um torrent privado - + Cannot add peers when the torrent is checking Não pode adicionar às fontes enquanto o torrent está a ser verificado - + Cannot add peers when the torrent is queued Não pode adicionar às fontes enquanto o torrent está a ser colocado em fila - + No peer was selected Não foi selecionada nenhuma fonte - + Are you sure you want to permanently ban the selected peers? Tem a certeza que deseja banir permanentemente as fontes selecionadas? - + Peer "%1" is manually banned A fonte "%1" foi banida manualmente - + N/A N/A - + Copy IP:port Copiar IP: porta @@ -7587,7 +8021,7 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n Lista de fontes a adicionar (um IP por linha): - + Format: IPv4:port / [IPv6]:port Formato: IPv4:porta / [IPv6]:porta @@ -7628,27 +8062,27 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n PiecesBar - + Files in this piece: Ficheiros nesta peça: - + File in this piece: Ficheiro neste pedaço: - + File in these pieces: Ficheiro nestes pedaços: - + Wait until metadata become available to see detailed information Espere até aos metadados ficarem disponíveis de forma a poder ver informação mais detalhada - + Hold Shift key for detailed information Manter premida a tecla Shift para uma informação detalhada @@ -7661,58 +8095,58 @@ readme[0-9].txt: filtra 'readme1.txt', 'readme2.txt', mas n 'Plugins' de pesquisa - + Installed search plugins: Plugins de pesquisa instalados: - + Name Nome - + Version Versão - + Url Url - - + + Enabled Ativo - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Aviso: Certifique-se que cumpre as leis de direitos de autor do seu país ao fazer a transferência de torrents a partir de qualquer um destes motores de pesquisa. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalar um novo - + Check for updates Procurar atualizações - + Close Fechar - + Uninstall Desinstalar @@ -7832,98 +8266,65 @@ Esses plugins foram desativados. Fonte do plugin - + Search plugin source: Pesquisar fonte do plugin: - + Local file Ficheiro local - + Web link Ligação da web - - PowerManagement - - - qBittorrent is active - O qBittorrent encontra-se ativo - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Os ficheiros seguintes do torrent "%1" suportam a pré-visualização. Por favor escolha um deles: - + Preview Visualizar - + Name Nome - + Size Tamanho - + Progress Evolução - + Preview impossible Não é possível visualizar - + Sorry, we can't preview this file: "%1". Desculpe, não é possível pré-visualizar este ficheiro: "%1". - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos @@ -7936,27 +8337,27 @@ Esses plugins foram desativados. Private::FileLineEdit - + Path does not exist O caminho não existe - + Path does not point to a directory O caminho não aponta para um diretório - + Path does not point to a file O caminho não aponta para um ficheiro - + Don't have read permission to path Não tem permissão de leitura para o caminho - + Don't have write permission to path Não tem permissão de gravação para o caminho @@ -7997,12 +8398,12 @@ Esses plugins foram desativados. PropertiesWidget - + Downloaded: Transferido: - + Availability: Disponibilidade: @@ -8017,53 +8418,53 @@ Esses plugins foram desativados. Transferir - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Ativo há: - + ETA: Temp. est. fim: - + Uploaded: Enviados: - + Seeds: Sementes: - + Download Speed: Vel. de transferência: - + Upload Speed: Vel. upload: - + Peers: Fontes: - + Download Limit: Limite de transferência: - + Upload Limit: Limite de upload: - + Wasted: Perdido: @@ -8073,193 +8474,220 @@ Esses plugins foram desativados. Ligações: - + Information Informações - + Info Hash v1: Informações de Hash v1: - + Info Hash v2: Informações de Hash v2: - + Comment: Comentário: - + Select All Selecionar tudo - + Select None Selecionar nada - + Share Ratio: Rácio de partilha: - + Reannounce In: Novo anúncio em: - + Last Seen Complete: Última vez que esteve completo: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Proporção / Tempo ativo (em meses), indica o quão popular o torrent é + + + + Popularity: + Popularidade: + + + Total Size: Tamanho total: - + Pieces: Peças: - + Created By: Criado por: - + Added On: Adicionado em: - + Completed On: Terminado em: - + Created On: Criado em: - + + Private: + Privado: + + + Save Path: Guardado em: - + 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) - - + + + N/A N/D - + + Yes + Sim + + + + No + Não + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (semeado 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) - - New Web seed - Nova fonte web + + Add web seed + Add HTTP source + - - Remove Web seed - Remover fonte web + + Add web seed: + - - Copy Web seed URL - Copiar URL da fonte web + + + This web seed is already in the list. + - - Edit Web seed URL - Editar URL da fonte web - - - + Filter files... Filtrar ficheiros... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Os gráficos de velocidade estão desativados - + You can enable it in Advanced Options Pode ativá-lo nas Opções Avançadas - - New URL seed - New HTTP source - Novo URL de sementes - - - - New URL seed: - Novo URL de sementes: - - - - - This URL seed is already in the list. - Este URL de sementes já existe na lista. - - - + Web seed editing Edição de sementes web - + Web seed URL: URL de sementes da web: @@ -8267,33 +8695,33 @@ Esses plugins foram desativados. RSS::AutoDownloader - - + + Invalid data format. Formato de dados inválido. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Não foi possível guardar os dados RSS do AutoDownloader em %1. Erro: %2 - + Invalid data format Formato de dados inválido - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 Ocorreu um erro ao ler as regras do RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Não foi possível carregar as regras RSS do AutoDownloader. Motivo: %1 @@ -8301,22 +8729,22 @@ Esses plugins foram desativados. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Não foi possível fazer o download da fonte RSS em '%1'. Motivo: %2 - + RSS feed at '%1' updated. Added %2 new articles. A fonte RSS em '%1' foi atualizada. Adicionados %2 novos artigos. - + Failed to parse RSS feed at '%1'. Reason: %2 Não foi possível analisar a fonte RSS em '%1'. Motivo: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Feito o download com sucesso da fonte RSS em '%1'. A começar a iniciá-lo. @@ -8352,12 +8780,12 @@ Esses plugins foram desativados. RSS::Private::Parser - + Invalid RSS feed. Fonte RSS inválida. - + %1 (line: %2, column: %3, offset: %4). %1 (linha: %2, coluna: %3, offset: %4). @@ -8365,103 +8793,144 @@ Esses plugins foram desativados. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Não foi possível guardar a 'Sessão RSS' de configuração. Ficheiro: "%1". Erro: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Não foi possível guardar os dados da sessão RSS. Ficheiro "%1". Erro: "%2" - - + + RSS feed with given URL already exists: %1. Já existe uma fonte RSS com o URL dado: %1. - + Feed doesn't exist: %1. O feed não existe: %1. - + Cannot move root folder. Não é possível mover a pasta root. - - + + Item doesn't exist: %1. O item não existe: %1. - - Couldn't move folder into itself. - Não foi possível mover a pasta para dentro da mesma. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Não é possível eliminar a pasta root. - + Failed to read RSS session data. %1 Ocorreu um erro ao ler os dados da sessão RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Não foi possível carregar o feed RSS: "%1". Motivo: É necessário um URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Não foi possível carregar o feed RSS: "%1". Motivo: O URL é inválido. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Encontrada fonte RSS duplicada. UID: "%1". Erro: A configuração parece estar corrompida. - + Couldn't load RSS item. Item: "%1". Invalid data format. Não foi possível carregar o item RSS:. Item: "%1". Formato de dados inválido. - + Corrupted RSS list, not loading it. Lista RSS corrompida, não irá carregá-la. - + Incorrect RSS Item path: %1. Caminho do item RSS incorreto: %1. - + RSS item with given path already exists: %1. Já existe o item RSS com o caminho dado: %1. - + Parent folder doesn't exist: %1. Pasta associada inexistente: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + O feed não existe: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Intervalo de atualização: + + + + sec + seg + + + + Default + Padrão + + RSSWidget @@ -8481,8 +8950,8 @@ Esses plugins foram desativados. - - + + Mark items read Marcar itens como lidos @@ -8507,132 +8976,115 @@ Esses plugins foram desativados. Torrents: (duplo clique para fazer o download) - - + + Delete Eliminar - + Rename... Renomear... - + Rename Renomear - - + + Update Atualizar - + New subscription... Nova subscrição... - - + + Update all feeds Atualizar todas as fontes - + Download torrent Fazer o download do torrent - + Open news URL Abrir URL - + Copy feed URL Copiar URL da fonte - + New folder... Nova pasta... - - Edit feed URL... - Editar URL do feed... + + Feed options... + - - Edit feed URL - Editar URL do feed - - - + Please choose a folder name Por favor, escolha o nome da pasta - + Folder name: Nome da pasta: - + New folder Nova pasta - - - Please type a RSS feed URL - Por favor, introduza um URL com fonte RSS - - - - - Feed URL: - URL fonte: - - - + 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: - + Rename failed Ocorreu um erro ao tentar renomear - + Date: Data: - + Feed: Feed: - + Author: Autor: @@ -8640,38 +9092,38 @@ Esses plugins foram desativados. SearchController - + Python must be installed to use the Search Engine. O Python deverá estar instalado para poder utilizar o Motor de pesquisa. - + Unable to create more than %1 concurrent searches. Não é possível criar mais do que %1 pesquisas simultâneas. - - + + Offset is out of range Offset fora do alcance - + All plugins are already up to date. Todos os plugins já se encontram atualizados. - + Updating %1 plugins A atualizar %1 plugins - + Updating plugin %1 A atualizar %1 plugin - + Failed to check for plugin updates: %1 Ocorreu um erro ao tentar verificar se existem atualizações para o plugin: %1 @@ -8746,132 +9198,142 @@ Esses plugins foram desativados. Tamanho: - + Name i.e: file name Nome - + Size i.e: file size Tamanho - + Seeders i.e: Number of full sources Semeadores - + Leechers i.e: Number of partial sources Sanguessugas - - Search engine - Motor de pesquisa - - - + Filter search results... Filtrar resultados da pesquisa... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Resultados (a mostrar <i>%1</i> de <i>%2</i>): - + Torrent names only Apenas nomes de torrents - + Everywhere Em tudo - + Use regular expressions Utilizar expressões regulares - + Open download window Abrir a janela de download - + Download Download - + Open description page Abrir página de descrição - + Copy Copiar - + Name Nome - + Download link Link para download - + Description page URL URL da página de descrição - + Searching... A pesquisar... - + Search has finished A pesquisa terminou - + Search aborted Pesquisa abortada - + An error occurred during search... Ocorreu um erro durante a procura... - + Search returned no results A pesquisa não devolveu resultados - + + Engine + + + + + Engine URL + + + + + Published On + Publicado em + + + Column visibility Visibilidade da coluna - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos @@ -8879,104 +9341,104 @@ Esses plugins foram desativados. SearchPluginManager - + Unknown search engine plugin file format. Formato desconhecido do ficheiro do plugin de motor de pesquisa. - + Plugin already at version %1, which is greater than %2 O plugin já se encontra na versão %1, que é superior à %2 - + A more recent version of this plugin is already installed. Já se encontra instalada uma versão mais recente deste plugin. - + Plugin %1 is not supported. O plugin %1 não é suportado. - - + + Plugin is not supported. Plugin não suportado. - + Plugin %1 has been successfully updated. O plugin %1 foi atualizado com sucesso. - + All categories Todas as categorias - + Movies Filmes - + TV shows Programas de TV - + Music Música - + Games Jogos - + Anime Animação - + Software Software - + Pictures Imagens - + Books Livros - + Update server is temporarily unavailable. %1 O servidor de atualizações encontra-se temporariamente indisponível. %1 - - + + Failed to download the plugin file. %1 Ocorreu um erro ao tentar fazer o download do ficheiro de plugin. %1 - + Plugin "%1" is outdated, updating to version %2 O plugin "%1" encontra-se desatualizado, a fazer o update para a versão %2 - + Incorrect update info received for %1 out of %2 plugins. Foi recebida uma informação de atualização incorreta para %1 de %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') O plugin de procura '%1' contém uma versão inválida da string ('%2') @@ -8986,114 +9448,145 @@ Esses plugins foram desativados. - - - - Search Procurar - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Não se encontram instalados nenhuns plugins de pesquisa. Para instalar alguns, clique no botão "Plugins de pesquisa..." localizado no canto inferior direito da janela. - + Search plugins... Plugins de pesquisa... - + A phrase to search for. Uma frase para procurar. - + Spaces in a search term may be protected by double quotes. Os espaços dentro de um termo de pesquisa poderão ser protegidos com aspas duplas. - + Example: Search phrase example Exemplo: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: pesquisar por <b>foo bar</b> - + All plugins Todos os plugins - + Only enabled Apenas ativo(s) - + + + Invalid data format. + Formato de dados inválido. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: procurar por <b>foo</b> e <b>bar</b> - + + Refresh + + + + Close tab Fechar separador - + Close all tabs Fechar todos os separadores - + Select... Selecionar... - - - + + Search Engine Motor de pesquisa - + + Please install Python to use the Search Engine. Por favor, instale o Python para poder utilizar o Motor de pesquisa. - + Empty search pattern Padrão de procura vazio - + Please type a search pattern first Por favor, indique primeiro um padrão de procura - + + Stop Parar + + + SearchWidget::DataStorage - - Search has finished - A pesquisa terminou + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - A pesquisa falhou + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9206,34 +9699,34 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali - + Upload: Upload: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Download: - + Alternative speed limits Limites de velocidade alternativos @@ -9425,32 +9918,32 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali Tempo médio em fila: - + Connected peers: Fontes ligadas: - + All-time share ratio: Taxa de partilha global: - + All-time download: Downloads globais: - + Session waste: Desperdício da sessão: - + All-time upload: Uploads globais: - + Total buffer size: Tamanho total do buffer: @@ -9465,12 +9958,12 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali Tarefas I/O na fila: - + Write cache overload: Excesso de escrita em cache: - + Read cache overload: Excesso de leitura em cache: @@ -9489,51 +9982,77 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali StatusBar - + Connection status: Estado da ligação: - - + + No direct connections. This may indicate network configuration problems. Sem ligações diretas. Isto poderá indicar erros na configuração da rede. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 nós - + qBittorrent needs to be restarted! O qBittorrent necessita de ser reiniciado! - - - + + + Connection Status: Estado da ligação: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Off-line. Normalmente isto significa que o qBittorrent não conseguiu ativar a porta selecionada para as ligações recebidas. - + Online On-line - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Clique para mudar para os limites alternativos de velocidade - + Click to switch to regular speed limits Clique para mudar para os limites normais de velocidade @@ -9563,13 +10082,13 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali - Resumed (0) - Retomado(s) (0) + Running (0) + Em execução (0) - Paused (0) - Em pausa (0) + Stopped (0) + Parado (0) @@ -9631,36 +10150,36 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali Completed (%1) Terminado(s) (%1) + + + Running (%1) + Em execução (%1) + - Paused (%1) - Em pausa (%1) + Stopped (%1) + Parado (%1) + + + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Moving (%1) A mover (%1) - - - Resume torrents - Retomar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Remover torrents - - - Resumed (%1) - Retomado(s) (%1) - Active (%1) @@ -9732,31 +10251,31 @@ Para instalar alguns, clique no botão "Plugins de pesquisa..." locali Remove unused tags Remover etiquetas não utilizadas - - - Resume torrents - Retomar torrents - - - - Pause torrents - Pausar torrents - Remove torrents Remover torrents - - New Tag - Nova etiqueta + + Start torrents + Iniciar torrents + + + + Stop torrents + Parar torrents Tag: Etiqueta: + + + Add tag + + Invalid tag name @@ -9903,32 +10422,32 @@ Por favor, escolha um nome diferente e tente novamente. TorrentContentModel - + Name Nome - + Progress Evolução - + Download Priority Prioridade dos downloads - + Remaining Restante - + Availability Disponibilidade - + Total Size Tamanho total @@ -9973,98 +10492,98 @@ Por favor, escolha um nome diferente e tente novamente. TorrentContentWidget - + Rename error Erro ao renomear - + Renaming A renomear - + New name: Novo nome: - + Column visibility Visibilidade das colunas - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos - + Open Abrir - + Open containing folder Abrir pasta de destino - + Rename... Renomear... - + Priority Prioridade - - + + Do not download Não transferir - + Normal Normal - + High Alta - + Maximum Máxima - + By shown file order Pela ordem mostrada dos ficheiros - + Normal priority Prioridade normal - + High priority Prioridade alta - + Maximum priority Prioridade máxima - + Priority by shown file order Prioridade pela ordem de exibição dos ficheiros @@ -10072,17 +10591,17 @@ Por favor, escolha um nome diferente e tente novamente. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10111,13 +10630,13 @@ Por favor, escolha um nome diferente e tente novamente. - + Select file Selecione o ficheiro - + Select folder Selecione a pasta @@ -10192,87 +10711,83 @@ Por favor, escolha um nome diferente e tente novamente. Campos - + You can separate tracker tiers / groups with an empty line. Pode separar os grupos/filas de trackers com uma linha vazia. - + Web seed URLs: URL de sementes da web: - + Tracker URLs: URLs do tracker: - + Comments: Comentários: - + Source: Fonte: - + Progress: Evolução: - + Create Torrent Criar torrent - - + + Torrent creation failed Falha ao tentar criar torrent - + Reason: Path to file/folder is not readable. Motivo: O caminho para o ficheiro/pasta é ilegível. - + Select where to save the new torrent Selecione para onde guardar o torrent novo - + Torrent Files (*.torrent) Ficheiros torrent (*.torrent) - Reason: %1 - Motivo: %1 - - - + Add torrent to transfer list failed. Ocorreu um erro ao adicionar o torrent à lista de transferências. - + Reason: "%1" Motivo: "%1" - + Add torrent failed Ocorreu um erro ao adicionar o torrent - + Torrent creator Criador de torrents - + Torrent created: Torrent criado: @@ -10280,32 +10795,32 @@ Por favor, escolha um nome diferente e tente novamente. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 Não foi possível armazenar a configuração das 'Pastas monitorizadas' de %1. Erro: %2 - + Watched folder Path cannot be empty. O caminho da pasta monitorizada não pode estar vazio. - + Watched folder Path cannot be relative. O caminho da pasta monitorizada não pode estar vazio. @@ -10313,44 +10828,31 @@ Por favor, escolha um nome diferente e tente novamente. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 Ficheiro magnético muito grande. Ficheiro: %1 - + Failed to open magnet file: %1 Ocorreu um erro ao tentar abrir o ficheiro magnet: %1 - + Rejecting failed torrent file: %1 Ocorreu um erro ao tentar rejeitar o ficheiro torrent: %1 - + Watching folder: "%1" A observar pasta: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadados inválidos - - TorrentOptionsDialog @@ -10379,173 +10881,161 @@ Por favor, escolha um nome diferente e tente novamente. Utilizar outra localização para torrent incompleto - + Category: Categoria: - - Torrent speed limits - Limites de velocidade do torrent + + Torrent Share Limits + - + Download: Transferência: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Estes não excederão os limites globais - + Upload: Envio: - - Torrent share limits - Limites de partilha de torrent - - - - Use global share limit - Utilizar limite de partilha global - - - - Set no share limit - Definir ausência de limite de partilha - - - - Set share limit to - Definir o limite de partilha para - - - - ratio - rácio - - - - total minutes - minutos totais - - - - inactive minutes - minutos inativos - - - + Disable DHT for this torrent Desativar DHT para este torrent - + Download in sequential order Fazer o download sequencialmente - + Disable PeX for this torrent Desativar PeX para este torrent - + Download first and last pieces first Fazer o download da primeira e última peça primeiro - + Disable LSD for this torrent Desativar LSD para este torrent - + Currently used categories Categorias usadas atualmente - - + + Choose save path Escolher o caminho para guardar - + Not applicable to private torrents Não aplicável a torrents privados - - - No share limit method selected - Não foi selecionado nenhum método de limite de partilha - - - - Please select a limit method first - Selecione primeiro um método de limite - TorrentShareLimitsWidget - - - + + + + Default - Padrão + Padrão - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + Parar torrent + + + + Remove torrent + Remover torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Ativar o super semear para o torrent + + + Ratio: @@ -10558,32 +11048,32 @@ Por favor, escolha um nome diferente e tente novamente. Etiquetas do torrent - - New Tag - Nova etiqueta + + Add tag + - + Tag: Etiqueta: - + Invalid tag name Nome de etiqueta inválido - + Tag name '%1' is invalid. O nome da etiqueta '%1' é inválido - + Tag exists A etiqueta já existe - + Tag name already exists. O nome da etiqueta já existe. @@ -10591,115 +11081,130 @@ Por favor, escolha um nome diferente e tente novamente. TorrentsController - + Error: '%1' is not a valid torrent file. Erro: '%1' não é um ficheiro torrent válido. - + Priority must be an integer A prioridade deverá ser um número inteiro - + Priority is not valid A prioridade não é válida - + Torrent's metadata has not yet downloaded Os metadados do torrent ainda não foram descarregados - + File IDs must be integers Os IDs do ficheiro deverão ser números inteiros - + File ID is not valid O ID do ficheiro não é válido - - - - + + + + Torrent queueing must be enabled Deverá ser ativada a fila de torrents - - + + Save path cannot be empty O caminho para gravar não pode estar em branco - - + + Cannot create target directory Não é possível criar a diretoria de destino - - + + Category cannot be empty A categoria não pode estar em branco - + Unable to create category Não foi possível criar a categoria - + Unable to edit category Não foi possível editar a categoria - + Unable to export torrent file. Error: %1 Não foi possível exportar o arquivo torrent. Erro: %1 - + Cannot make save path Não é possível criar o caminho de gravação - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid O parâmetro 'ordenar' é inválido - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" não é um índice de ficheiro válido. - + Index %1 is out of bounds. O índice %1 está fora dos limites. - - + + Cannot write to directory Não é possível escrever na diretoria - + WebUI Set location: moving "%1", from "%2" to "%3" Definir localização da interface web: a mover "%1", de "%2" para"%3" - + Incorrect torrent name Nome do torrent incorreto - - + + Incorrect category name Nome de categoria incorreto @@ -10730,196 +11235,191 @@ Por favor, escolha um nome diferente e tente novamente. TrackerListModel - + Working A executar - + Disabled Inativo - + Disabled for this torrent Desativado para este torrent - + This torrent is private Este torrent é privado - + N/A N/D - + Updating... A atualizar... - + Not working Parado - + Tracker error - + Unreachable Inacessível - + Not contacted yet Ainda não contactado - - Invalid status! - Estado inválido! - - - - URL/Announce endpoint + + Invalid state! + URL/Announce Endpoint + + + + + BT Protocol + + + + + Next Announce + + + + + Min Announce + + + + Tier Fila - - Protocol - Protocolo - - - + Status Estado - + Peers Fontes - + Seeds Sementes - + Leeches Sanguessuga - + Times Downloaded Número de vezes baixado - + Message Mensagem - - - Next announce - Próximo anúncio - - - - Min announce - Anúncio mínimo - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Este torrent é privado - + Tracker editing A editar tracker - + Tracker URL: URL do tracker: - - + + Tracker editing failed Ocorreu um erro ao tentar editar o tracker - + The tracker URL entered is invalid. O URL do tracker introduzido é inválido. - + The tracker URL already exists. O URL do tracker já existe. - + Edit tracker URL... Editar URL do tracker... - + Remove tracker Remover tracker - + Copy tracker URL Copiar URL do tracker - + Force reannounce to selected trackers Forçar novo anúncio dos rastreadores selecionados - + Force reannounce to all trackers Forçar novo anúncio de todos os rastreadores - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos - + Add trackers... Adicionar trackers... - + Column visibility Visibilidade da coluna @@ -10937,37 +11437,37 @@ Por favor, escolha um nome diferente e tente novamente. Lista de rastreadores a adicionar (um por linha): - + µTorrent compatible list URL: URL da lista compatível com µTorrent: - + Download trackers list Transferir lista de trackers - + Add Adicionar - + Trackers list URL error Erro do URL da lista de trackers - + The trackers list URL cannot be empty O URL da lista de trackers não pode estar em branco - + Download trackers list error Erro ao transferir lista de trackers - + Error occurred when downloading the trackers list. Reason: "%1" Ocorreu um erro ao transferir a lista de trackers. Motivo: "%1" @@ -10975,62 +11475,62 @@ Por favor, escolha um nome diferente e tente novamente. TrackersFilterWidget - + Warning (%1) Aviso (%1) - + Trackerless (%1) Trackerless (%1) - + Tracker error (%1) Erro do tracker (%1) - + Other error (%1) Outro erro (%1) - + Remove tracker Remover tracker - - Resume torrents - Retomar torrents + + Start torrents + Iniciar torrents - - Pause torrents - Pausar torrents + + Stop torrents + Parar torrents - + Remove torrents Remover torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Tudo (%1) @@ -11039,7 +11539,7 @@ Por favor, escolha um nome diferente e tente novamente. TransferController - + 'mode': invalid argument 'mode': argumento inválido @@ -11131,11 +11631,6 @@ Por favor, escolha um nome diferente e tente novamente. 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. A analisar dados para retomar - - - Paused - Em pausa - Completed @@ -11159,220 +11654,252 @@ Por favor, escolha um nome diferente e tente novamente. Com erro - + Name i.e: torrent name Nome - + Size i.e: torrent size Tamanho - + Progress % Done Evolução - + + Stopped + Parado + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Estado - + Seeds i.e. full sources (often untranslated) Sementes - + Peers i.e. partial sources (often untranslated) Fontes - + Down Speed i.e: Download speed Vel. download - + Up Speed i.e: Upload speed Vel. upload - + Ratio Share ratio Rácio - + + Popularity + Popularidade + + + ETA i.e: Estimated Time of Arrival / Time left Temp. est. fim - + Category Categoria - + Tags Etiquetas - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Adicionado em - + Completed On Torrent was completed on 01/01/2010 08:00 Terminado em - + Tracker Tracker - + Down Limit i.e: Download limit Limite de transferências - + Up Limit i.e: Upload limit Limite de uploads - + Downloaded Amount of data downloaded (e.g. in MB) Transferido - + Uploaded Amount of data uploaded (e.g. in MB) Enviado - + Session Download Amount of data downloaded since program open (e.g. in MB) Dados recebidos - + Session Upload Amount of data uploaded since program open (e.g. in MB) Dados enviados - + Remaining Amount of data left to download (e.g. in MB) Restante - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tempo ativo - + + Yes + Sim + + + + No + Não + + + Save Path Torrent save path Guardar em - + Incomplete Save Path Torrent incomplete save path Caminho do "Guardar em" incompleto - + Completed Amount of data completed (e.g. in MB) Terminado(s) - + Ratio Limit Upload share ratio limit Limite do rácio - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Última vez que o ficheiro esteve completo - + Last Activity Time passed since a chunk was downloaded/uploaded Última atividade - + Total Size i.e. Size including unwanted data Tamanho total - + Availability The number of distributed copies of the torrent Disponibilidade - + Info Hash v1 i.e: torrent info hash v1 Informação do Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Informação do Hash v2 - + Reannounce In Indicates the time until next trackers reannounce - + Anunciar novamente em - - + + Private + Flags private torrents + Privado + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Proporção / Tempo ativo (em meses), indica o quão popular o torrent é + + + + + N/A N/D - + %1 ago e.g.: 1h 20m ago %1 atrás - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (semeado durante %2) @@ -11381,339 +11908,319 @@ Por favor, escolha um nome diferente e tente novamente. TransferListWidget - + Column visibility Visibilidade das colunas - + Recheck confirmation Confirmação de reverificação - + Are you sure you want to recheck the selected torrent(s)? Tem a certeza de que deseja reverificar o(s) torrent(s) selecionado(s)? - + Rename Renomear - + New name: Novo nome: - + Choose save path Escolha o caminho para guardar - - Confirm pause - Confirmar pausa - - - - Would you like to pause all torrents? - Colocar todos os torrents em pausa? - - - - Confirm resume - Confirmar o retomar - - - - Would you like to resume all torrents? - Retomar todos os torrents? - - - + Unable to preview Impossível pré-visualizar - + The selected torrent "%1" does not contain previewable files O torrent selecionado "%1" não contém ficheiros onde seja possível pré-visualizar - + Resize columns Redimensionar colunas - + Resize all non-hidden columns to the size of their contents Redimensionar todas as colunas visíveis para o tamanho dos seus conteúdos - + Enable automatic torrent management Ativar a gestão automática dos torrents - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Tem a certeza que deseja ativar o gestor automático dos torrents para os torrents selecionados? Eles poderão ser realocados. - - Add Tags - Adicionar etiquetas - - - + Choose folder to save exported .torrent files Escolha a pasta para salvar os arquivos .torrent exportados - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Falha ao exportar o arquivo .torrent. Torrent: "%1". Caminho para salvar: "%2". Motivo: "%3" - + A file with the same name already exists Um arquivo com o mesmo nome já existe - + Export .torrent file error Erro ao exportar arquivo .torrent - + Remove All Tags Remover todas as etiquetas - + Remove all tags from selected torrents? Remover todas as etiquetas dos torrents selecionados? - + Comma-separated tags: Etiquetas separadas por virgulas: - + Invalid tag Etiqueta inválida - + Tag name: '%1' is invalid Nome da etiqueta: '%1' é inválido - - &Resume - Resume/start the torrent - &Retomar - - - - &Pause - Pause the torrent - &Pausar - - - - Force Resu&me - Force Resume/start the torrent - Forçar retor&nar - - - + Pre&view file... Pré-&visualizar arquivo... - + Torrent &options... &Opções do torrent... - + Open destination &folder Abrir &pasta de destino - + Move &up i.e. move up in the queue Mover para &cima - + Move &down i.e. Move down in the queue Mover para &baixo - + Move to &top i.e. Move to top of the queue Mover para o &início - + Move to &bottom i.e. Move to bottom of the queue Mover para o &final - + Set loc&ation... Definir loc&al... - + Force rec&heck Forçar no&va verificação - + Force r&eannounce Forçar r&eanunciar - + &Magnet link Link &magnet - + Torrent &ID &ID do torrent - + &Comment - + &Name &Nome - + Info &hash v1 Informações do &hash v1 - + Info h&ash v2 Informações do h&ash v2 - + Re&name... Re&nomear... - + Edit trac&kers... Editar trac&kers... - + E&xport .torrent... E&xportar .torrent... - + Categor&y Categor&ia - + &New... New category... &Novo... - + &Reset Reset category &Redefinir - + Ta&gs Ta&gs - + &Add... Add / assign multiple tags... &Adicionar... - + &Remove All Remove all tags &Remover tudo - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Fila - + &Copy &Copiar - + Exported torrent is not necessarily the same as the imported O torrent exportado não é necessariamente o mesmo do importado - + Download in sequential order Fazer o download sequencialmente - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Ocorreram erros ao exportar os ficheiros .torrent. Verifique o registo de execução para mais detalhes. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Remover - + Download first and last pieces first Fazer o download da primeira e última peça primeiro - + Automatic Torrent Management Gestão automática do torrent - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category O modo automático significa que várias propriedades do torrent (ex: guardar caminho) serão decididas pela categoria associada - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Não pode forçar o re-anúncio caso o torrent esteja Pausado/Na fila/Com erro/A verificar - - - + Super seeding mode Modo super semeador @@ -11758,28 +12265,28 @@ Por favor, escolha um nome diferente e tente novamente. ID do ícone - + UI Theme Configuration. Configuração de tema da interface. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11787,7 +12294,12 @@ Por favor, escolha um nome diferente e tente novamente. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Falha ao carregar o tema da IU a partir do ficheiro: "%1" @@ -11818,20 +12330,21 @@ Por favor, escolha um nome diferente e tente novamente. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Ocorreu um erro ao migrar as preferências: https interface web, ficheiro: "%1", erro: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Preferências migradas: https interface web, exportados dados para o ficheiro: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Encontrado um valor inválido no ficheiro de configuração. A reverter para o padrão. Chave: "%1". Valor inválido: "%2". @@ -11839,32 +12352,32 @@ Por favor, escolha um nome diferente e tente novamente. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Ocorreu um erro ao tentar localizar o executável do Python no registo do Windows. - + Failed to find Python executable Ocorreu um erro ao tentar localizar o executável do Python @@ -11956,72 +12469,72 @@ Por favor, escolha um nome diferente e tente novamente. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Nome do cookie de sessão inaceitável especificado: '%1'. O padrão será usado. - + Unacceptable file type, only regular file is allowed. Tipo de ficheiro não permitido, apenas são permitidos ficheiros regulares. - + Symlinks inside alternative UI folder are forbidden. São proibidos Symlinks dentro da pasta alternativa da interface o utilizador. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Falta o separador ':' no cabeçalho personalizado HTTP da interface web: "%1" - + Web server error. %1 Erro do servidor web. %1 - + Web server error. Unknown error. Erro do servidor web. Erro desconhecido. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Interface web: O 'Cabeçalho de origem' e o 'Alvo de origem' são incompatíveis! IP da fonte: '%1'. Cabeçalho de origem: '%2'. Alvo de origem: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Interface web: O 'Cabeçalho referenciador' e o 'Alvo de origem' são incompatíveis! IP da fonte: '%1'. Cabeçalho referenciador: '%2'. Alvo de origem: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Interface web: Porta incompatível no 'Cabeçalho referenciador. IP da fonte pedido: '%1'. Porta do servidor: '%2'. Cabeçalho do host recebido: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Interface web: Cabeçalho do Host inválido. IP da fonte pedido: '%1'. Recebido o cabeçalho do Host: '%2' @@ -12029,125 +12542,133 @@ Por favor, escolha um nome diferente e tente novamente. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Erro desconhecido + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) GB - + TiB tebibytes (1024 gibibytes) TB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 m - + %1h %2m e.g: 3 hours 5 minutes %1 h e %2 m - + %1d %2h e.g: 2 days 10 hours %1 d e %2 h - + %1y %2d e.g: 2 years 10 days %1a %2d - - + + Unknown Unknown (size) Desconhecido - + qBittorrent will shutdown the computer now because all downloads are complete. O qBittorrent vai desligar o computador porque todos as transferências foram concluídas. - + < 1m < 1 minute < 1 m diff --git a/src/lang/qbittorrent_ro.ts b/src/lang/qbittorrent_ro.ts index 990e0d884..dd368b889 100644 --- a/src/lang/qbittorrent_ro.ts +++ b/src/lang/qbittorrent_ro.ts @@ -14,77 +14,77 @@ Despre - + Authors Autori - + Current maintainer Responsabil actual - + Greece Grecia - - + + Nationality: Naționalitate: - - + + E-mail: Poștă electronică: - - + + Name: Nume: - + Original author Autor original - + France Franța - + Special Thanks Mulțumiri speciale - + Translators Traducători - + License Licență - + Software Used Programe folosite - + qBittorrent was built with the following libraries: qBittorrent a fost construit folosind următoarele biblioteci: - + Copy to clipboard - + Copiază pe planșa de tranfer @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Drept de autor %1 2006-2024 Proiectul qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Drept de autor %1 2006-2025 Proiectul qBittorrent @@ -166,15 +166,10 @@ Salvează în - + Never show again Nu arăta din nou - - - Torrent settings - Configurări torent - Set as default category @@ -191,12 +186,12 @@ Pornește torentul - + Torrent information Informații torent - + Skip hash check Omite verificarea indexului @@ -205,6 +200,11 @@ Use another path for incomplete torrent Folosește o altă cale pentru torentul incomplet + + + Torrent options + Opțiuni torent + Tags: @@ -231,75 +231,75 @@ Condiție de oprire: - - + + None Niciuna - - + + Metadata received Metadate primite - + Torrents that have metadata initially will be added as stopped. - + Torentele care au metadate inițial o să fie adăugate ca oprite. - - + + Files checked Fișiere verificate - + Add to top of queue Adaugă în vârful cozii - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Când e bifat, fișierul .torrent nu va fi șters, indiferent de configurările de pe pagina „Descărcări” a dialogului Opțiuni - + Content layout: Aranjament conținut: - + Original Original - + Create subfolder Creează subdosar - + Don't create subfolder Nu crea subdosar - + Info hash v1: Informații index v1: - + Size: Dimensiune: - + Comment: Comentariu: - + Date: Dată: @@ -329,151 +329,147 @@ Ține minte ultima cale de salvare folosită - + Do not delete .torrent file Nu șterge fișierul .torrent - + Download in sequential order Descarcă în ordine secvențială - + Download first and last pieces first Descarcă întâi primele și ultimele bucăți - + Info hash v2: Informații index v2: - + Select All Selectează toate - + Select None Nu selecta nimic - + Save as .torrent file... Salvare ca fișier .torrent... - + I/O Error Eroare Intrare/Ieșire - + Not Available This comment is unavailable Nu este disponibil - + Not Available This date is unavailable Nu este disponibil - + Not available Nu este disponibil - + Magnet link Legătură magnet - + Retrieving metadata... Se obțin metadatele... - - + + Choose save path Alegeți calea de salvare - + No stop condition is set. Nicio condiție de oprire stabilită. - + Torrent will stop after metadata is received. Torentul se va opri dupa ce se primesc metadatele. - Torrents that have metadata initially aren't affected. - Torentele care au metadate inițial nu sunt afectate. - - - + Torrent will stop after files are initially checked. Torentul se va opri după ce fișierele sunt verificate inițial. - + This will also download metadata if it wasn't there initially. Aceasta va descarca de asemenea și metadatele dacă nu au fost acolo inițial. - - + + N/A Indisponibil - + %1 (Free space on disk: %2) %1 (Spațiu disponibil pe disc: %2) - + Not available This size is unavailable. Indisponibil - + Torrent file (*%1) Fisier torent (*%1) - + Save as torrent file Salvează ca fișier torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Nu s-a putut exporta fișierul „%1” cu metadatele torentului. Motiv: %2. - + Cannot create v2 torrent until its data is fully downloaded. Nu poate fi creat un torent de versiuna 2 ptână când datele nu sunt complet descărcate. - + Filter files... Filtrare fișiere... - + Parsing metadata... Se analizează metadatele... - + Metadata retrieval complete Metadatele au fost obținute @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Se descarcă torentul… Sursă: „%1” - + Failed to add torrent. Source: "%1". Reason: "%2" - + Adăugarea torentului a eșuat. Sursă: „%1”. Motiv: „%2” - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Combinarea urmăritoarelor este dezactivată - + Trackers cannot be merged because it is a private torrent - + Urmăritoarele nu a putut fi combinate deoarece este un torent privat - + Trackers are merged from new source + Urmăritoarele sunt combinate cu cele din sursa nouă + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -596,7 +592,7 @@ Torrent share limits - Limitele de partajare a torenților + Limitele de partajare a torenților @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiO - + Recheck torrents on completion Reverifică torentele la finalizare - - + + ms milliseconds ms - + Setting Configurare - + Value Value set for this setting Valoare - + (disabled) (dezactivată) - + (auto) (automată) - + + min minutes min - + All addresses Toate adresele - + qBittorrent Section Secțiune qBittorrent - - + + Open documentation Deschide documentația - + All IPv4 addresses Toate adresele IPv4 - + All IPv6 addresses Toate adresele IPv6 - + libtorrent Section Secțiune libtorrent - + Fastresume files Reia rapid fișierele - + SQLite database (experimental) Bază de date SQLite (experimental) - + Resume data storage type (requires restart) Tip stocare date de reluare (necesită repornirea programului) - + Normal Normal - + Below normal Sub normal - + Medium Mediu - + Low Scăzut - + Very low Foarte scăzut - + Physical memory (RAM) usage limit Limită de folosire a memorie fizice (RAM) - + Asynchronous I/O threads Fire de execuție Intrare/Ieșire asincrone - + Hashing threads Fire pentru sumele de control - + File pool size Numărul maxim de fișiere deschise - + Outstanding memory when checking torrents Memorie pentru verificarea torentelor - + Disk cache Prestocare disc - - - - + + + + + s seconds s - + Disk cache expiry interval Interval de expirare prestocare (cache) disc - + Disk queue size Dimensiune coadă disc - - + + Enable OS cache Activează prestocarea (cache-ul) sistemului - + Coalesce reads & writes Contopește citirile și scrierile - + Use piece extent affinity - + Send upload piece suggestions Trimite sugestii bucăți de încărcat - - - - + + + + + 0 (disabled) 0 (dezactivat) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Porturi de ieșire (Min) [0: dezactivat] - + Outgoing ports (Max) [0: disabled] - + Porturi de ieșire (Max) [0: dezactivat] - + 0 (permanent lease) - + 0 (închiriere permanentă) - + UPnP lease duration [0: permanent lease] - + Durata închirierii UPnP [0: închiriere permanentă] - + Stop tracker timeout [0: disabled] - + Oprește timeout-ul trackerului [0: dezactivat] - + Notification timeout [0: infinite, -1: system default] - + Durată expirare notificare [0: infinit, -1: prestabilit sistem] - + Maximum outstanding requests to a single peer Număr maxim de cereri în așteptare spre un singur partener - - - - - + + + + + KiB KiO - + (infinite) (infinit) - + (system default) (implicit sistemului) - + + Delete files permanently + Șterge permanent fișiere + + + + Move files to trash (if possible) + Mută fișiere la gunoi (dacă e posibil) + + + + Torrent content removing mode + Regim de ștergere a conținutului torentului: + + + This option is less effective on Linux Această opțiune are mai puțin efect pe Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default Implicit - + Memory mapped files Fișiere mapate în memorie - + POSIX-compliant Compatibil cu standardul POSIX - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Tipul IO al discului (neceistă repornire) - - + + Disable OS cache Dezactivează prestocarea (cache-ul) sistemului - + Disk IO read mode Modul de citire IO al discului - + Write-through - + Disk IO write mode Modul de scriere IO al discului - + Send buffer watermark Filigranul tamponului de trimitere - + Send buffer low watermark - + Send buffer watermark factor Factorul filigranului tamponului de trimitere - + Outgoing connections per second Conexiuni de ieșire pe secundă - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Dimensiunea cozii pentru socluri - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers Tip de serviciu (ToS) pentru conexiunile spre parteneri - + Prefer TCP Preferă TCP - + Peer proportional (throttles TCP) Proporțional cu partenerii (limitează protocolul TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Sprijină nume de domenii internaționale (IDN) - + Allow multiple connections from the same IP address Permite conexiuni multiple de la aceeași adresă IP - + Validate HTTPS tracker certificates Validează certificatele HTTPS ale urmăritoarelor - + Server-side request forgery (SSRF) mitigation Atenuare contrafacere cerere pe partea servitorului (SSRF) - + Disallow connection to peers on privileged ports Interzice conexiuni spre parteneri pe porturi privilegiate - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates Controlează intervalul de actualizare al stării interne care la rândul său va afecta actualizările interfeței grafice - + Refresh interval Interval de reîmprospătare - + Resolve peer host names Rezolvă numele de gazdă ale partenerilor - + IP address reported to trackers (requires restart) Adresa IP raportată umăritoarelor (necesită repornirea programului) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Reanunță toate urmăritoarele când se schimbă IP-ul sau portul - + Enable icons in menus Activează pictogramele în meniuri - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Activează port forwarding pentru urmăritoarele încorporate - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + sec + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + Cere confirmarea eliminării unui urmăritor de la toate torentele + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Afișează notificări - + Display notifications for added torrents Afișează notificări pentru torentele adăugate - + Download tracker's favicon Descarcă pictograma de favorite a urmăritorului - + Save path history length Lungime istoric cale de salvare - + Enable speed graphs Activează graficele de viteză - + Fixed slots Socluri fixe - + Upload rate based Bazat pe rata de încărcare - + Upload slots behavior Comportament socluri de încărcare - + Round-robin Round-robin - + Fastest upload Cea mai rapidă încărcare - + Anti-leech Anti-lipitori - + Upload choking algorithm Algoritm de înecare a încărcării - + Confirm torrent recheck Cere confirmare pentru reverificarea torentelor - + Confirm removal of all tags Confirmă ștergerea tuturor marcajelor - + Always announce to all trackers in a tier Anunță întotdeauna tuturor urmăritoarelor dintr-un strat - + Always announce to all tiers Anunță întotdeauna tuturor straturilor - + Any interface i.e. Any network interface Oricare interfață - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Algoritm %1-TCP în regim amestecat - + Resolve peer countries Rezolvă țările partenerilor - + Network interface Interfața de rețea - + Optional IP address to bind to Adresă IP opțională de ascultat - + Max concurrent HTTP announces Număr maxim de anunțuri HTTP simultane - + Enable embedded tracker Activează urmăritorul încorporat - + Embedded tracker port Port urmăritor încorporat + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Rulează în regim portabil. Dosar de profil detectat automat la: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Fanion redundant depistat în linia de comandă: „%1”. Regimul portabil implică reîncepere-rapidă relativă. - + Using config directory: %1 Se folosește directorul de configurație: %1 - + Torrent name: %1 Nume torent: %1 - + Torrent size: %1 Mărime torent: %1 - + Save path: %1 Calea de salvare: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torentul a fost descărcat în %1 - + + Thank you for using qBittorrent. Vă mulțumim că folosiți qBittorrent. - + Torrent: %1, sending mail notification Torent: %1, se trimite notificare prin poșta electronică - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Se rulează program extern. Torent: „%1”. Comandă: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torentul '%1' s-a terminat de descărcat - + WebUI will be started shortly after internal preparations. Please wait... Interfața web va porni la scurt timp după pregătiri interne. Așteptați… - - + + Loading torrents... Se încarcă torentele... - + E&xit Închid&e programul - + I/O Error i.e: Input/Output Error Eroare I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Motivul: %2 - + Torrent added Torent adăugat - + '%1' was added. e.g: xxx.avi was added. „%1” a fost adăugat. - + Download completed Descărcare finalizată - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started + qBittorrent %1 a pornit. ID proces: %2 + + + + This is a test email. - + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' s-a descărcat. - + Information Informație - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 Pentru a controla qBittorrent, accesați interfața web la adresa: %1 - + Exit Ieșire - + Recursive download confirmation Confirmare descărcare recursivă - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torentul „%1” conține fișiere .torrent, doriți să continuați cu descărcarea acestora? - + Never Niciodată - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Descarc recursiv fișierul .torrent din torent. Torentul sursă: „%1”. Fișier: „%2” - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" A eșuat stabilirea unei limite de folosire a memorie fizice (RAM). Error code: %1. Mesaj de eroare: „%2” - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated Terminare qBittorrent inițiată - + qBittorrent is shutting down... qBittorrent se închide... - + Saving torrent progress... Se salvează progresul torentelor... - + qBittorrent is now ready to exit qBittorrent e gata să iasă @@ -1609,12 +1715,12 @@ Motivul: %2 - + Must Not Contain: Nu trebuie să conțină: - + Episode Filter: Filtru episod: @@ -1667,263 +1773,263 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d &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 - + Filter must end with semicolon Filtrul trebuie să se termine cu punct și virgulă - + Three range types for episodes are supported: Sunt sprijinite trei tipuri de intervale 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 - + Episode number is a mandatory positive value Numărul episodului este o valoare pozitivă obligatorie - + Rules Reguli - + Rules (legacy) Reguli (moștenit) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Interval infinit: <b>1x25-;</b> potrivește episoadele 25 și mai sus ale sezonului unu, și toate episoadele sezoanelor ulterioare - + 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ă - + Invalid action Acțiune nevalidă - + The list is empty, there is nothing to export. Lista e goală, nu e nimic de exportat. - + Export RSS rules Exportă reguli RSS - + I/O Error Eroare de Intrare/Ieșire - + Failed to create the destination file. Reason: %1 Eșec la crearea fișierului destinație. Motiv: %1 - + Import RSS rules Importă reguli RSS - + Failed to import the selected rules file. Reason: %1 A eșuat importarea fișierului de reguli ales. Motiv: %1 - + Add new rule... Adăugare regulă nouă... - + Delete rule Șterge regula - + Rename rule... Redenumire regulă... - + Delete selected rules Șterge regulile selectate - + Clear downloaded episodes... Ștergere episoade descărcate... - + Rule renaming Redenumire regulă - + Please type the new rule name Introduceți noul nume al regulii - + Clear downloaded episodes Șterge episoadele descărcate - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Sigur doriți să goliți lista episoadelor descărcate pentru regula aleasă? - + Regex mode: use Perl-compatible regular expressions Regim expresii regulate: folosește expresii regulate compatibile cu Perl - - + + Position %1: %2 Poziția %1: %2 - + Wildcard mode: you can use Mod metacaractere: le puteți utiliza - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? pentru a potrivi un oricare caracter - + * to match zero or more of any characters * pentru a potrivi zero sau mai multe oricare caractere - + Whitespaces count as AND operators (all words, any order) Spațiile albe se consideră operatori ȘI (toate cuvintele, în orice ordine) - + | is used as OR operator | este folosit ca operator SAU - + If word order is important use * instead of whitespace. Dacă ordinea cuvintelor este importantă utilizați * în loc de spațiu alb (gol). - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) O expresie cu o clauză %1 goală (de ex.: %2) - + will match all articles. va potrivi toate articolele. - + will exclude all articles. va exclude toate articolele. @@ -1965,7 +2071,7 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nu se poate crea dosar pentru reluarea torentului: „%1” @@ -1975,28 +2081,38 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Datele despre reluare nu pot fi parcurse: format nevalid - - + + Cannot parse torrent info: %1 Informațiile despre torent nu pot fi parcurse: %1 - + Cannot parse torrent info: invalid format Informațiile despre torent nu pot fi parcurse: format nevalid - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Nu s-au putut salva metadatele torentului în „%1”. Eroare: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Nu s-au putut salva datele de reluare ale torentului în „%1”. Eroare: %2. @@ -2007,16 +2123,17 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d + Cannot parse resume data: %1 Datele despre reluare nu pot fi parcurse: %1 - + Resume data is invalid: neither metadata nor info-hash was found Datele despre reluare sunt nevalide: nu s-au găsit nici metadate, nici info-hash - + Couldn't save data to '%1'. Error: %2 Nu s-au putut salva datele în „%1”. Eroare: %2 @@ -2024,38 +2141,60 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::DBResumeDataStorage - + Not found. Nu a fost găsit. - + Couldn't load resume data of torrent '%1'. Error: %2 Nu s-au putut încărca datele de reluare ale torentului „%1”. Eroare: %2 - - + + Database is corrupted. Baza de date este coruptă. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. Nu s-a putut obține rezultatul interogării. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + Datele despre reluare nu pot fi parcurse: %1 + + + + + Cannot parse torrent info: %1 + Informațiile despre torent nu pot fi parcurse: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Nu s-au putut salva metadatele torentului. Eroare: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nu s-au putut stoca datele de reluare ale torentului „%1”. Eroare: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nu s-au putut șterge datele de reluare ale torentului „%1”. Eroare: %2 - + Couldn't store torrents queue positions. Error: %1 Nu s-a putut stoca coada cu pozițiile torentelor. Eroare: %1 @@ -2086,457 +2225,503 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Susținere Distributed Hash Table (DHT): %1 - - - - - - - - - + + + + + + + + + ON PORNIT - - - - - - - - - + + + + + + + + + OFF OPRIT - - + + Local Peer Discovery support: %1 Susținere Local Peer Discovery: %1 - + Restart is required to toggle Peer Exchange (PeX) support Repornirea este necesară pentru comutarea susținerii Peer Exchange (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Reluarea torentului a eșuat Torent: „%1”: Motiv: „%2” - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Reluarea torentului a eșuat: s-a depistat identificator de torent inconsistent. Torent: „%1” - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" S-au depistat date neconsistente: categoria lipsește din fișierul de configurare. Categoria va fi recuperată dar configurările acesteia vor fi inițializate cu valori implicite. Torent: „%1”. Categorie: „%2” - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" S-au depistat date neconsistente: categoria nu e validă. Torent: „%1”. Categorie: „%2” - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" S-au depistat divergențe între căile de salvare ale categoriei recuperate și calea actuală de salvare a torentului. Torentul e trecut acum la regim manual. Torent: „%1”. Categorie: „%2” - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" S-au depistat date neconsistente: marcajul lipsește din fișierul de configurare. Marcajul va fi recuperat. Torent: „%1”. Marcaj: „%2” - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" S-au depistat date neconsistente: marcaj nevalid. Torent: „%1”. Marcaj: „%2” - + System wake-up event detected. Re-announcing to all the trackers... - + A fost detectat evenimentul de trezire a sistemului. Se reanunță toate urmăritoarele... - + Peer ID: "%1" Id. partener: „%1” - + HTTP User-Agent: "%1" Agent utilizator HTTP: „%1” - + Peer Exchange (PeX) support: %1 Susținere Peer Exchange (PeX): %1 - - + + Anonymous mode: %1 Regim anonim: %1 - - + + Encryption support: %1 Susținerea criptării: %1 - - + + FORCED FORȚAT - + Could not find GUID of network interface. Interface: "%1" Nu se poate găsi GUID al interfeței de rețea. Interfața: "%1" - + Trying to listen on the following list of IP addresses: "%1" Se încearcă urmărirea următoarei liste de adrese IP: "%1" - + Torrent reached the share ratio limit. Torentul a atins limita raportului de partajare. - - - + Torrent: "%1". Torentul: "%1". - - - - Removed torrent. - Torentul a fost eliminat. - - - - - - Removed torrent and deleted its content. - Torentul a fost eliminat și conținutul său a fost șters. - - - - - - Torrent paused. - Torentul a fost pus în pauză. - - - - - + Super seeding enabled. Super-contribuirea a fost activată. - + Torrent reached the seeding time limit. Torentul a atins limita timpului de partajare. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Nu s-a putut încărca torentul. Motivul: %1. - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON Susținere UPnP/NAT-PMP: ACTIVĂ - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Combinarea urmăritoarelor este dezactivată + + + + Trackers cannot be merged because it is a private torrent + Urmăritoarele nu a putut fi combinate deoarece este un torent privat + + + + Trackers are merged from new source + Urmăritoarele sunt combinate cu cele din sursa nouă + + + UPnP/NAT-PMP support: OFF Susținere UPnP/NAT-PMP: INACTIVĂ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Exportul torentului a eșuat. Torent: „%1”. Destinație: „%2”. Motiv: „%3” - + Aborted saving resume data. Number of outstanding torrents: %1 S-a abandonat salvarea datelor de reluare. Număr de torente în așteptare: %1 - + The configured network address is invalid. Address: "%1" Adresa configurată a interfeței de rețea nu e validă. Adresă: „%1” - - + + Failed to find the configured network address to listen on. Address: "%1" Nu s-a putut găsi adresa de rețea configurată pentru ascultat. Adresă: „%1” - + The configured network interface is invalid. Interface: "%1" Interfața de rețea configurată nu e validă. Interfață: „%1” - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" S-a respins adresa IP nevalidă în timpul aplicării listei de adrese IP blocate. IP: „%1” - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" S-a adăugat urmăritor la torent. Torent: „%1”. Urmăritor: „%2” - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" S-a eliminat urmăritor de la torent. Torent: „%1”. Urmăritor: „%2” - + Added URL seed to torrent. Torrent: "%1". URL: "%2" S-a adăugat sămânță URL la torent. Torent: „%1”. URL: „%2” - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" S-a eliminat sămânță URL de la torent. Torent: „%1”. URL: „%2” - - Torrent paused. Torrent: "%1" - Torentul a fost pus în pauză. Torentul: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torent reluat. Torentul: "%1" - + Torrent download finished. Torrent: "%1" Descărcare torent încheiată. Torentul: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Mutare torent anulată. Torent: „%1”. Sursă: „%2”. Destinație: „%3” - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Nu s-a putut pune în coadă mutarea torentului. Torent: „%1”. Sursă: „%2”. Destinație: „%3”. Motiv: torentul e în curs de mutare spre destinație - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Nu s-a putut pune în coadă mutarea torentului. Torent: „%1”. Sursă: „%2”. Destinație: „%3”. Motiv: ambele căi indică spre același loc - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" S-a pus în coadă mutarea torentului. Torent: „%1”. Sursă: „%2”. Destinație: „%3” - + Start moving torrent. Torrent: "%1". Destination: "%2" Începe mutarea torentului. Torent: „%1”. Destinație: „%2” - + Failed to save Categories configuration. File: "%1". Error: "%2" Nu s-a putut salva configurația categoriilor. Fișier: „%1”. Eroare: „%2” - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nu s-a putut parcurge configurația categoriilor. Fișier: „%1”. Eroare: „%2” - + Successfully parsed the IP filter file. Number of rules applied: %1 Fișierul cu filtre IP a fost parcurs cu succes. Numărul de reguli aplicate: %1 - + Failed to parse the IP filter file Eșec la parcurgerea fișierului cu filtre IP - + Restored torrent. Torrent: "%1" Torent restaurat. Torent: "%1" - + Added new torrent. Torrent: "%1" S-a adăugat un nou torent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torent eronat. Torent: „%1”. Eroare: „%2” - - - Removed torrent. Torrent: "%1" - Torent eliminat. Torent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torentul a fost eliminat și conținutul său a fost șters. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Alertă de eroare în fișier. Torent: „%1”. Fișier: „%2”. Motiv: „%3” - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filtru IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 restricții de regim mixt - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 este dezactivat. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 este dezactivat. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Se ascultă cu succes pe IP. IP: „%1”. Port: „%2/%3” - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Ascultarea pe IP a eșuat. IP: „%1”. Port: „%2/%3”. Motiv: „%4” - + Detected external IP. IP: "%1" IP extern depistat. IP: „%1” - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Eroare: Coada internă de alerte e plină și alertele sunt aruncate, e posibil să observați performanță redusă. Tip alertă aruncată: „%1”. Mesaj: „%2” - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torent mutat cu succes. Torent: „%1”. Destinație: „%2” - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Mutarea torent eșuată. Torent: „%1”. Sursă: „%2”. Destinație: „%3”. Motiv: „%4” @@ -2552,13 +2737,13 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::TorrentCreator - + Operation aborted Operație abandonată - - + + Create new torrent file failed. Reason: %1. Crearea noului fișier cu torent a eșuat. Motiv: %1 @@ -2566,67 +2751,67 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Adăugarea partenerului „%1” la torentul „%2 a eșuat. Motiv: %3 - + Peer "%1" is added to torrent "%2" Partenerul „%1” e adăugat la torentul „%2” - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nu s-a putut scrie în fișier. Motiv: „%1. Torentul e acum în regim „numai încărcare”. - + Download first and last piece first: %1, torrent: '%2' Descarcă întâi prima și ultima bucată: %1, torent: '%2' - + On Pornit - + Off Oprit - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generarea datelor de reluare a eșuat. Torent: „%1”. Motiv: „%2” - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Restabilirea torentului a eșuat. Fișierele au fost probabil mutate sau stocarea nu e accesibilă. Torent: „%1”. Motiv: „%2” - + Missing metadata Metadate lipsă - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Redenumirea fișierului a eșuat. Torent: „%1”, fișier: „%2”, motiv: „%3” - + Performance alert: %1. More info: %2 Alertă performanță: %1. Mai multe informații: %2 @@ -2647,189 +2832,189 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). %1 trebuie să specifice un port valid (de la 1 la 65535). - + Usage: Utilizare: - + [options] [(<filename> | <url>)...] - + Options: Opțiuni: - + Display program version and exit Afișează versiunea programului și iese - + Display this help message and exit Afișează acest mesaj de ajutor și iese - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port port - + Change the WebUI port - + Change the torrenting port Schimbați portul de torrenting - + Disable splash screen Dezactivează ecranul de întâmpinare - + Run in daemon-mode (background) Rulează în mod daemon (fundal) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Stochează fișierele de configurare în <dir> - - + + name nume - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs fișiere sau adrese URL - + Download the torrents passed by the user - + Options when adding new torrents: Opțiuni când se adaugă torente: - + path cale - + Torrent save path Cale salvare torente - - Add torrents as started or paused - Adaugă torente în modul pornite sau suspendate + + Add torrents as running or stopped + - + Skip hash check Omite verificarea indexului - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order Descarcă fișierele în ordine secvențială - + Download first and last pieces first Descarcă întâi primele și ultimele bucăți - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables Parametrii pentru linia de comandă au precedență în fața variabilelor de mediu - + Help Ajutor @@ -2881,13 +3066,13 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d - Resume torrents - Reia torentele + Start torrents + - Pause torrents - Întrerupe torentele + Stop torrents + @@ -2898,15 +3083,20 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d ColorWidget - + Edit... - + Reset Reinițializează + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d - Also permanently delete the files - Deasemenea șterge permanent fișierele + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Sigur doriți să ștergeți '%1' din lista de transferuri? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Sigur doriți să eliminați aceste %1 torente din lista de transferuri? - + Remove Elimină @@ -3008,12 +3198,12 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Descarcă de la adrese URL - + Add torrent links Adaugă legături torent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Una per linie ( sunt sprijinite legăturile HTTP, legăturile Magnet și informațiile index) @@ -3023,12 +3213,12 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Descarcă - + No URL entered Niciun URL introdus - + Please type at least one URL. Introduceți măcar un URL. @@ -3187,64 +3377,87 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Eroare de analiză: Fișierul filtru nu este un fișier PeerGuardian P2B valid. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Se descarcă torentul… Sursă: „%1” - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torentul este deja prezent - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? - Torentul '%1' este deja în lista de transferuri. Doriți să combinați urmăritoarele de la noua sursă? + Torentul „%1” este deja în lista de transferuri. Doriți să combinați urmăritoarele de la sursa nouă? GeoIPDatabase - - + + Unsupported database file size. Mărime fișier bază de date nesprijinită. - + 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 nesprijinită: %1.%2 - + Unsupported IP version: %1 Versiune IP (protocol internet) nesprijinită. %1 - + Unsupported record size: %1 Mărime înregistrare nesprijinită: %1 - + Database corrupted: no data section found. Baza de date este deteriorată: Nu s-a găsit nicio secțiune de date. @@ -3252,17 +3465,17 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Cerere HTTP eronată, se închide soclul. IP: %1 @@ -3303,23 +3516,57 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d IconWidget - + Browse... Răsfoire... - + Reset Reinițializează - + Select icon + Selectare pictogramă + + + + Supported image files + + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 - - Supported image files + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3354,13 +3601,13 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 a fost blocat. Motiv: %2. - + %1 was banned 0.0.0.0 was banned %1 a fost interzis @@ -3369,60 +3616,60 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 este un parametru linie de comandă necunoscut. - - + + %1 must be the single command line parameter. %1 trebuie să fie singurul parametru pentru linia de comandă. - + Run application with -h option to read about command line parameters. Rulați aplicația cu opțiunea -h pentru a citi despre parametri din linia de comandă. - + Bad command line Linie de comandă nepotrivită: - + Bad command line: Linie de comandă nepotrivită: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Recunoaște formatele: S01E01, 1x1, 2017.12.31 si 31.12.2017 (Formatele pentru d &Editare - + &Tools &Unelte - + &File &Fișier - + &Help &Ajutor - + On Downloads &Done Când descărcările sunt &gata - + &View &Vizualizare - + &Options... &Opțiuni... - - &Resume - &Reia - - - + &Remove &Elimină - + Torrent &Creator &Creator torent - - + + Alternative Speed Limits Limite de viteză alternative - + &Top Toolbar &Bara de unelte superioară - + Display Top Toolbar Afișează bara superioară de unelte - + Status &Bar &Bara de stare - + Filters Sidebar Bara laterală cu filtre - + 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 - + Do&nate! Do&nați! - + + Sh&utdown System + + + + &Do nothing Nu fă &nimic - + Close Window Închide fereastra - - R&esume All - Reia &toate - - - + Manage Cookies... Gestionare fișiere cookie... - + Manage stored network cookies Gestionează fișierele cookie de rețea stocate - + Normal Messages Mesaje normale - + Information Messages Mesaje informații - + Warning Messages Mesaje avertizări - + Critical Messages Mesaje critice - + &Log &Jurnal - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Stabilire limite de viteză globale... - + Bottom of Queue Baza cozii - + Move to the bottom of the queue Mută la baza cozii - + Top of Queue Vârful cozii - + Move to the top of the queue Mută în vârful cozii - + Move Down Queue Mută jos în coadă - + Move down in the queue Mută mai jos în coadă - + Move Up Queue Mută sus în coadă - + Move up in the queue Mută mai sus în coadă - + &Exit qBittorrent Închid&e qBittorrent - + &Suspend System &Suspendă sistemul - + &Hibernate System &Hibernează sistemul - - S&hutdown System - &Oprește sistemul - - - + &Statistics &Statistici - + Check for Updates Verifică pentru actualizări - + Check for Program Updates Verifică pentru actualizări program - + &About &Despre - - &Pause - &Suspendă - - - - P&ause All - Suspendă to&ate - - - + &Add Torrent File... &Adăugare fișier torrent... - + Open Deschide - + E&xit Închid&e programul - + Open URL Deschide URL - + &Documentation &Documentație - + Lock Blochează - - - + + + Show Arată - + Check for program updates Verifică pentru actualizări program - + Add Torrent &Link... Adăugare &legătură torent... - + If you like qBittorrent, please donate! Dacă vă place qBittorrent, vă rugăm să donați! - - + + Execution Log Jurnal de execuție - + Clear the password Eliminare parolă - + &Set Password &Stabilire parolă - + Preferences Preferințe - + &Clear Password &Eliminare parolă - + Transfers Transferuri - - + + qBittorrent is minimized to tray qBittorrent este minimizat în tăvița de sistem - - - + + + This behavior can be changed in the settings. You won't be reminded again. Acest comportament poate fi schimbat în configurări. Nu vi se va mai reaminti. - + 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: - + Are you sure you want to clear the password? Sigur doriți să eliminați parola? - + Use regular expressions Folosește expresii regulate - + + + Search Engine + Motor de căutare + + + + Search has failed + Căutarea a eșuat + + + + Search has finished + Căutarea s-a încheiat + + + Search Căutare - + Transfers (%1) Transferuri (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent tocmai a fost actualizat și trebuie să fie repornit pentru ca schimbările să intre în vigoare. - + qBittorrent is closed to tray qBittorrent este închis în tăvița de sistem - + Some files are currently transferring. Unele fișiere sunt în curs de transferare. - + Are you sure you want to quit qBittorrent? Sigur doriți să închideți qBittorrent? - + &No &Nu - + &Yes &Da - + &Always Yes Î&ntotdeauna Da - + Options saved. Opțiuni salvate. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Lipsește executabilul Python - + qBittorrent Update Available Este disponibilă o actualizare pentru qBittorrent - + 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. - - + + Old Python Runtime Executabil Python învechit. - + A new version is available. Este disponibilă o nouă versiune. - + Do you want to download %1? Doriți să descărcați %1? - + Open changelog... Deschidere jurnalul cu modificări… - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Versiunea dumneavoastră de Python (%1) este învechită. Versiunea minimiă necesară este: %2. Doriți să instalați o versiune mai nouă acum? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Versiunea dumneavoastră de Python (%1) este învechită. Actualizați-l la ultima versiune pentru ca motoarele de căutare să funcționeze. Cerința minimă: %2. - + + Paused + Întrerupt + + + 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 installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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ă - + Filter torrents... - + Filtrare torente... - + Filter by: - + Filtrare după: - + The password must be at least 3 characters long Parola trebuie să aibă o lungime de minim 3 caractere - - - + + + RSS (%1) RSS (%1) - + 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 Se închide qBittorrent - + Open Torrent Files Deschide fișiere torrent - + Torrent Files Fișiere torrent @@ -4232,7 +4550,12 @@ Instalați-l manual. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Se ignoră eroarea SSL, URL: „%1”, erori: „%2” @@ -5526,47 +5849,47 @@ Instalați-l manual. Net::Smtp - + Connection failed, unrecognized reply: %1 Conexiunea a eșuat, răspuns nerecunoscut: %1 - + Authentication failed, msg: %1 Autentificare eșuată, mesaj: %1 - + <mail from> was rejected by server, msg: %1 <mail from> a fost respins de către server, mesaj: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> a fost respins de către server, mesaj: %1 - + <data> was rejected by server, msg: %1 <data> a fost respins de către server, mesaj: %1 - + Message was rejected by the server, error: %1 Mesajul a fost respins de către server, eroare: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Servitorul SMTP nu pare să sprijine niciunul dintre modurile de autentificare pe care noi le sprijinim [CRAM-MD5|PLAIN|LOGIN], se omite autentificarea, pentru că cel mai probabil o să eșueze... Moduri autentificare servitor: %1 - + Email Notification Error: %1 Eroare de notificare prin poșta electronică: %1 @@ -5604,299 +5927,283 @@ Instalați-l manual. BitTorrent - + RSS RSS - - Web UI - Interfață Web - - - + Advanced Avansate - + Customize UI Theme... - + Transfer List Lista de transferuri - + Confirm when deleting torrents Cere confirmare la ștergerea torentelor - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Utilizează culori de rând alternative - + Hide zero and infinity values Ascunde valorile zero și infinit - + Always Întotdeauna - - Paused torrents only - Doar torentele suspendate - - - + Action on double-click Acțiune la clic dublu - + Downloading torrents: Torente în curs de descărcare: - - - Start / Stop Torrent - Pornește / Oprește torent - - - - + + Open destination folder Deschide dosarul destinație - - + + No action Nicio acțiune - + Completed torrents: Torente încheiate: - + Auto hide zero status filters - + Desktop Spațiul de lucru - + Start qBittorrent on Windows start up Pornește qBittorrent la pornirea Windows-ului - + Show splash screen on start up Arată ecranul de întâmpinare la pornire - + Confirmation on exit when torrents are active Confirmare la ieșire când torrentele sunt active - + Confirmation on auto-exit when downloads finish Confirmare la ieșirea automată când descărcările s-au încheiat - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiO - + + Show free disk space in status bar + + + + Torrent content layout: Amplasarea conținutului torentului: - + Original Original - + Create subfolder Creează subdosar - + Don't create subfolder Nu crea subdosar - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue Adaugă în vârful cozii - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Combină urmăritoarele unui torent existent - + Keep unselected files in ".unwanted" folder - + Add... Adăugare... - + Options.. Opțiuni.. - + Remove Elimină - + Email notification &upon download completion Trimite notificări prin poșta electronică la finalizarea descărcării - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Conexiuni totale cu parteneri: - + Any Oricare - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering Fi&ltrare adrese IP - + Schedule &the use of alternative rate limits Planifică utilizarea limitelor alternative de viteză - + From: From start time De la: - + To: To end time Către: - + Find peers on the DHT network Găsiți colegi în rețeaua DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Necesită criptare: conectați-vă numai la parteneri cu criptare de protocol Dezactivați criptarea: conectați-vă numai la parteneri fără criptarea protocolului - + Allow encryption Permite criptarea - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mai multe informații</a>) - + Maximum active checking torrents: - + &Torrent Queueing Coadă torente - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - Adaugă a&utomat aceste urmăritoare la noile descărcări: - - - + RSS Reader Cititor RSS - + Enable fetching RSS feeds Activează preluarea fluxurilor RSS - + Feeds refresh interval: Interval de reîmprospătare al fluxurilor: - + Same host request delay: - + Maximum number of articles per feed: Numărul maxim de articole pe flux: - - - + + + min minutes min - + Seeding Limits Limite de contribuire - - Pause torrent - Suspendă torentul - - - + Remove torrent Elimină torentul - + Remove torrent and its files Elimină torentul și fișierele acestuia - + Enable super seeding for torrent Activați super contribuirea pentru torent - + When ratio reaches Când raportul ajunge la - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + Adresă URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Descărcare automată a torentelor RSS - + Enable auto downloading of RSS torrents Activați descărcarea automată a torrentelor RSS - + Edit auto downloading rules... Modifică reguli de descărcare automată… - + RSS Smart Episode Filter Filtru RSS Smart Episode - + Download REPACK/PROPER episodes Descarcă episoade REPACK/PROPER - + Filters: Filtre: - + Web User Interface (Remote control) Interfață utilizator Web (Control la distanță) - + IP address: Adrese IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Specificați o adresă IPv4 sau IPv6. Puteți folosii „0.0.0.0” pentru orice „::” pentru orice adresă IPv6, sau „*” pentru amândouă IPv4 și IPv6. - + Ban client after consecutive failures: Interzice clientul după eșecuri consecutive: - + Never Niciodată - + ban for: interzice pentru: - + Session timeout: Expirarea sesiunii: - + Disabled Dezactivat - - Enable cookie Secure flag (requires HTTPS) - Activează fanionul de securitate pentru cookie (necesită HTTPS) - - - + Server domains: Domenii servitor: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6096,441 +6443,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Utilizează HTTPS în locul HTTP - + Bypass authentication for clients on localhost Sari autentificarea pentru clienți din rețeaua locală - + Bypass authentication for clients in whitelisted IP subnets Sari autentificarea pentru clienți din rețele IP permise - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area Minimizează qBittorrent în zona de notificare - + + Search + Caută + + + + WebUI + + + + Interface Interfață - + Language: Limbă: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Stilul pictogramei din tăvița de sistem: - - + + Normal Normală - + File association Asociere fișier - + Use qBittorrent for .torrent files Utilizează qBittorrent pentru fișiere .torrent - + Use qBittorrent for magnet links Utilizează qBittorrent pentru legături magnet - + Check for program updates Verifică pentru actualizări ale programului - + Power Management Gestionare energie - + + &Log Files + + + + Save path: Cale de salvare: - + Backup the log file after: Fă o copie de rezervă a fișierului jurnal după: - + Delete backup logs older than: Șterge copiile de rezervă ale fișierului jurnal mai vechi decât: - + + Show external IP in status bar + + + + When adding a torrent Când se adaugă un torent - + Bring torrent dialog to the front Adu fereastra de dialog a torentului în față - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Șterge fișierele .torent a căror adăugare a fost abandonată - + Also when addition is cancelled Și când adăugarea a fost abandonată - + Warning! Data loss possible! Atenție! Este posibilă pierderea datelor! - + Saving Management Gestionare salvare - + Default Torrent Management Mode: Mod implicit de gestionare a torentelor: - + Manual Manual - + Automatic Automat - + When Torrent Category changed: Când categoria torentului s-a schimbat: - + Relocate torrent Mută torentul - + Switch torrent to Manual Mode Treci torentul în regim manual - - + + Relocate affected torrents Mută torentele afectate - - + + Switch affected torrents to Manual Mode Treci torentele afectate în regim manual - + Use Subcategories Utilizează subcategoriile - + Default Save Path: Cale de salvare implicită: - + Copy .torrent files to: Copiază fișierele .torrent în: - + Show &qBittorrent in notification area Arată qBittorrent în zona de notificare - - &Log file - Fișier jurna&l - - - + Display &torrent content and some options - + De&lete .torrent files afterwards Șterge fișierele .torrent după - + Copy .torrent files for finished downloads to: Copiază fișierele .torrent pentru descărcările încheiate în: - + Pre-allocate disk space for all files Pre-alocă spațiu pe disc pentru toate fișierele - + Use custom UI Theme Folosește temă interfață grafică personalizată: - + UI Theme file: Fișier temă interfață grafică: - + Changing Interface settings requires application restart Pentru modificarea setărilor interfeței trebuie să reporniți aplicația - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder Previzualizează fișierul, altfel deschide dosarul destinație - - - Show torrent options - Arată opțiunile torentului - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon Când se minimizează, fereastra principală este închisă și trebuie să fie redeschisă de la pictograma din tăvița de sistem - + The systray icon will still be visible when closing the main window Pictograma din tăvița de sistem va continua să fie vizibilă când este închisă fereastra principală - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Închide qBittorrent în zona de notificare - + Monochrome (for dark theme) Monocromatic (pentru tema întunecată) - + Monochrome (for light theme) Monocromatic (pentru tema luminoasă) - + Inhibit system sleep when torrents are downloading Împiedică suspendarea sistemului cât timp sunt torente care se descarcă - + Inhibit system sleep when torrents are seeding Împiedică suspendarea sistemului cât timp sunt torente care se contribuie - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days zile - + months Delete backup logs older than 10 months luni - + years Delete backup logs older than 10 years ani - + Log performance warnings Înregistrează avertizările de performanță - - The torrent will be added to download list in a paused state - Torentul va fi adăugat în lista de descărcare cu starea suspendat - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nu porni automat descărcarea - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files Adaugă extensia .!qB fișierelor incomplete - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Când calea de salvare a categoriei s-a schimbat: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: Condiție de oprire a torentului: - - + + None Niciuna - - + + Metadata received Metadate primite - - + + Files checked Fișiere verificate - + Ask for merging trackers when torrent is being added manually - + Întreabă de combinarea urmăritoarelor când un torent este adăugat manual - + Use another path for incomplete torrents: Folosește o altă cale pentru torentele incomplete: - + Automatically add torrents from: Adaugă automat torente din: - + Excluded file names Denumiri de fișiere excluse - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6547,771 +6935,812 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Destinatarul - + To: To receiver Către: - + SMTP server: Servitor SMTP: - + Sender Expeditor - + From: From sender De la: - + This server requires a secure connection (SSL) Servitorul necesită o conexiune securizată (SSL) - - + + Authentication Autentificare - - - - + + + + Username: Nume utilizator: - - - - + + + + Password: Parolă: - + Run external program Rulează program extern - - Run on torrent added - Rulează când este adăugat un torent - - - - Run on torrent finished - Rulează când un torent este finalizat - - - + Show console window Arată fereastra de consolă - + TCP and μTP TCP și μTP - + Listening Port Port ascultat - + Port used for incoming connections: Portul utilizat pentru conexiunile de intrare: - + Set to 0 to let your system pick an unused port Setează ca 0 pentru a lăsa sistemul să folosească un port neutilizat. - + Random Aleator - + Use UPnP / NAT-PMP port forwarding from my router Utilizează înaintare port UPnP / NAT-PMP de la routerul meu - + Connections Limits Stabilește limitele conexiunii - + Maximum number of connections per torrent: Numărul maxim de conexiuni per torent: - + Global maximum number of connections: Număr maxim global de conexiuni: - + Maximum number of upload slots per torrent: Numărul maxim de sloturi de încărcare per torent: - + Global maximum number of upload slots: Număr maxim global de sloturi de încărcare: - + Proxy Server Servitor proxy - + Type: Tip: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Gazdă: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Altfel, servitorul proxy este utilizat doar pentru conexiuni la urmăritor - + Use proxy for peer connections Utilizează proxy pentru conexiuni la parteneri - + A&uthentication A&utentificare - - Info: The password is saved unencrypted - Informație: Parola este salvată fără criptare - - - + Filter path (.dat, .p2p, .p2b): Cale filtru (.dat, .p2p, .p2b): - + Reload the filter Reîncarcă filtrul - + Manually banned IP addresses... Adrese IP blocate manual... - + Apply to trackers Aplică urmăritoarelor - + Global Rate Limits Limite de viteză globale - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Încărcare: - - + + Download: Descărcare: - + Alternative Rate Limits Limite de viteză alternative - + Start time Timpul de început - + End time Timpul de finalizare - + When: Când: - + Every day Zilnic - + Weekdays Zile lucrătoare - + Weekends Zile libere - + Rate Limits Settings Setări limite de viteză - + Apply rate limit to peers on LAN Aplică limitarea ratei partenerilor din rețeaua locală - + Apply rate limit to transport overhead Aplică limitarea de viteză incluzând datele de transport - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + 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 multe surse - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Schimbă parteneri cu clienții Bittorrent compatibili (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Activează schimbul de surse (PeX) cu alți clienți pentru a găsi mai multe surse - + Look for peers on your local network Caută parteneri în rețeaua locală - + Enable Local Peer Discovery to find more peers Activează descoperirea partenerilor locali pentru a găsi mai mulți parteneri - + Encryption mode: Modul criptării: - + Require encryption Necesită criptarea - + Disable encryption Dezactivează criptarea - + Enable when using a proxy or a VPN connection Activează când este utilizată o conexiune VPN sau proxy - + Enable anonymous mode Activează modalitatea anonimă - + Maximum active downloads: Numărul maxim de descărcări active: - + Maximum active uploads: Numărul maxim de încărcări active: - + Maximum active torrents: Numărul maxim de torente active: - + Do not count slow torrents in these limits Nu socoti torentele lente în aceste limite - + Upload rate threshold: Prag viteză de încărcare: - + Download rate threshold: Prag viteză de descărcare: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Temporizator de inactivitate a torentului: - + then apoi - + Use UPnP / NAT-PMP to forward the port from my router Utilizează UPnP / NAT-PMP pentru a înainta portul din routerul meu - + Certificate: Certificat: - + Key: Cheie: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informații despre certificate</a> - + Change current password Schimbă parola curentă - - Use alternative Web UI - Folosește interfață web alternativă - - - + Files location: Amplasarea fișierelor: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Securitate - + Enable clickjacking protection Activează protecția împotriva furtului de clicuri - + Enable Cross-Site Request Forgery (CSRF) protection Activează protecția Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Activează validarea antetului gazdei - + Add custom HTTP headers Adaugă antete HTTP particularizate - + Header: value pairs, one per line - + Enable reverse proxy support Activează sprijin proximitate (proxy) - + Trusted proxies list: Listă cu proxy-uri de încredere: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Serviciu: - + Register Înregistrează - + Domain name: Nume de domeniu: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Prin activarea acestor opțiuni, puteți <strong>pierde în mod definitiv<strong> fișierele dumneavoastră .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Dacă activați cea de-a doua opțiune (&ldquo;Și când adăugarea a fost abandonată&rdquo;) fișierul .torent <strong>va fi șters<strong>chiar dacă apăsați &ldquo; <strong>Abandonează<strong>&rdquo; în fereastra de dialog &ldquo;Adăugare torent&rdquo; - + Select qBittorrent UI Theme file - + Choose Alternative UI files location Alege o locație alternativă pentru fișierele UI - + Supported parameters (case sensitive): Parametri sprijiniți (sensibil la majuscule): - + Minimized - + Minimizat - + Hidden - + Ascuns - + Disabled due to failed to detect system tray presence - + No stop condition is set. Nicio condiție de oprire stabilită. - + Torrent will stop after metadata is received. Torentul se va opri dupa ce se primesc metadatele. - Torrents that have metadata initially aren't affected. - Torentele care au metadate inițial nu sunt afectate. - - - + Torrent will stop after files are initially checked. Torentul se va opri după ce fișierele sunt verificate inițial. - + This will also download metadata if it wasn't there initially. Aceasta va descarca de asemenea și metadatele dacă nu au fost acolo inițial. - + %N: Torrent name %N: Nume torent - + %L: Category %L: Categorie - + %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: Urmăritor actual - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Sfat: Încapsulați parametrul între ghilimele (englezești) pentru a evita ca textul să fie tăiat la spațiu (de ex., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Niciunul) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate Certificat - + Select certificate Selectare certificat - + Private key Cheie privată - + Select private key Selectare cheie privată - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Selectați dosarul ce va fi supravegheat - + Adding entry failed Adăugarea intrării a eșuat - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Eroare locație - - + + Choose export directory Alegeți un dosar pentru exportare - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etichete (separate prin virgulă) - + %I: Info hash v1 (or '-' if unavailable) %I: Informații index v1 (or „-” dacă nu sunt disponibile) - + %J: Info hash v2 (or '-' if unavailable) %J: Informații index v2 (sau „-” dacă nu sunt disponibile) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID torent (ori informații index de tip sha-1 pentru un torent de versiuna 1 ori informații de tip sha-256 reduse pentru un torent de versiunea 2/torent hibrid) - - - + + + Choose a save directory Alegeți un dosar pentru salvare - + Torrents that have metadata initially will be added as stopped. - + Torentele care au metadate inițial o să fie adăugate ca oprite. - + Choose an IP filter file Alegeți un fișier filtru IP - + All supported filters Toate filtrele sprijinite - + The alternative WebUI files location cannot be blank. - + Parsing error Eroare de analiză - + 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. - + Preferences Preferințe - + Time Error Eroare timp - + The start time and the end time can't be the same. Timpul de pornire și timpul de încheiere nu pot fi aceiași. - - + + Length Error Eroare lungime @@ -7319,241 +7748,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Necunoscut - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection Conexiune de intrare - + Peer from DHT Partener din DHT - + Peer from PEX Partener din PEX - + Peer from LSD Partener din LSD - + Encrypted traffic Trafic criptat - + Encrypted handshake Salutare criptată + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Țară/Regiune - + IP/Address - + Port Port - + Flags Indicatori - + Connection Conexiune - + Client i.e.: Client application Client - + Peer ID Client i.e.: Client resolved from Peer ID - + 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ărcat - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevanță - + Files i.e. files that are being downloaded right now Fișiere - + Column visibility Vizibilitate coloană - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora - + Add peers... Adăugare parteneri... - - + + Adding peers Se adaugă parteneri - + Some peers cannot be added. Check the Log for details. Unii parteneri nu au putut fi adăugați. Verificați jurnalul de execuție pentru detalii. - + Peers are added to this torrent. Partenerii au fost adăugați la acest torrent. - - + + Ban peer permanently Blochează permanent partenerul - + Cannot add peers to a private torrent Nu pot fi adăugați parteneri la un torent privat - + Cannot add peers when the torrent is checking Nu pot fi adăugați parteneri la un torent care se verifică - + Cannot add peers when the torrent is queued Nu pot fi adăugați parteneri la un torent care este pus la coadă - + No peer was selected Nu a fost selectat niciun partener - + Are you sure you want to permanently ban the selected peers? Sigur doriți să blocați definitiv partenerii aleși? - + Peer "%1" is manually banned - + Partenerul „%1” este interzis manual - + N/A Indisp. - + Copy IP:port Copiază IP:port @@ -7571,7 +8005,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Lista partenerilor de adăugat (câte o adresă IP per linie): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7612,27 +8046,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Fișiere în această bucată: - + File in this piece: - - - - - File in these pieces: - + Fișier în această bucată: + File in these pieces: + Fișier în aceste bucăți: + + + Wait until metadata become available to see detailed information Așteptați până când metadatele sunt obținute pentru a vedea informații detaliate - + Hold Shift key for detailed information Țineți apăsat tasta Shift pentru informații detaliate @@ -7645,58 +8079,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Module de căutare - + Installed search plugins: Module de căutare instalate: - + Name Denumire - + Version Versiune - + Url Adresă URL - - + + Enabled Activat - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Atenție: Asigurați-vă că respectați legile locale cu privire la drepturile de autor când descărcați torente de pe aceste motoare de căutare. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Instalează unul nou - + Check for updates Caută actualizări - + Close Închide - + Uninstall Dezinstalează @@ -7816,98 +8250,65 @@ Totuși, acele module au fost dezactivate. Sursa extensiei - + Search plugin source: Sursă modul de căutare: - + Local file Fișier local - + Web link Legătură Web - - PowerManagement - - - qBittorrent is active - qBittorrent este activ - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Următoarele fișiere din torentul „%1” sprijină previzualizarea, vă rugăm să selectați unul dintre ele: - + Preview Previzualizare - + Name Denumire - + Size Dimensiune - + Progress Progres - + Preview impossible Previzualizare imposibilă - + Sorry, we can't preview this file: "%1". - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora @@ -7920,27 +8321,27 @@ Totuși, acele module au fost dezactivate. Private::FileLineEdit - + Path does not exist Calea nu există - + Path does not point to a directory - + Calea nu indică către un dosar - + Path does not point to a file - + Calea nu indică către un fișier - + Don't have read permission to path - + Don't have write permission to path @@ -7981,12 +8382,12 @@ Totuși, acele module au fost dezactivate. PropertiesWidget - + Downloaded: Descărcat: - + Availability: Disponibilitate: @@ -8001,53 +8402,53 @@ Totuși, acele module au fost dezactivate. Transfer - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Timp activ: - + ETA: Timp rămas: - + Uploaded: Încărcat: - + Seeds: Surse: - + Download Speed: Viteză de descărcare: - + Upload Speed: Viteză de încărcare: - + Peers: Parteneri: - + Download Limit: Limită de descărcare: - + Upload Limit: Limită de încărcare: - + Wasted: Pierdut: @@ -8057,193 +8458,220 @@ Totuși, acele module au fost dezactivate. Conexiuni: - + Information Informații - + Info Hash v1: Informații index v1: - + Info Hash v2: Informații index v2: - + Comment: Comentariu: - + Select All Selectează toate - + Select None Nu selecta nimic - + Share Ratio: Raport de partajare: - + Reannounce In: Reanunțare în: - + Last Seen Complete: Văzut complet ultima dată: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Dimensiune totală: - + Pieces: Bucăți: - + Created By: Creat de: - + Added On: Adăugat la: - + Completed On: Terminat la: - + Created On: Creat la: - + + Private: + + + + Save Path: Cale de salvare: - + 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) - - + + + N/A Indisponibil - + + Yes + Da + + + + No + Nu + + + %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 maxim) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 în total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 în medie) - - New Web seed - Sursă Web nouă + + Add web seed + Add HTTP source + - - Remove Web seed - Elimină sursa Web + + Add web seed: + - - Copy Web seed URL - Copiază URL-ul sursei Web + + + This web seed is already in the list. + - - Edit Web seed URL - Editare URL sursă Web - - - + Filter files... Filtrare nume dosare și fișiere... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Graficele de viteză sunt dezactivate - + You can enable it in Advanced Options Puteți să le activați în: Preferințe -> Avansat - - 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: @@ -8251,33 +8679,33 @@ Totuși, acele module au fost dezactivate. RSS::AutoDownloader - - + + Invalid data format. Format de date nevalid . - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Format date nevalid - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8285,22 +8713,22 @@ Totuși, acele module au fost dezactivate. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8336,12 +8764,12 @@ Totuși, acele module au fost dezactivate. RSS::Private::Parser - + Invalid RSS feed. Flux RSS nevalid. - + %1 (line: %2, column: %3, offset: %4). %1 (linie: %2, coloană: %3, deplasare: %4). @@ -8349,103 +8777,144 @@ Totuși, acele module au fost dezactivate. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. Elementul RSS cu URL-ul dat există deja: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. Nu se poate muta dosarul rădăcină. - - + + Item doesn't exist: %1. Elementul nu există: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. Nu se poate șterge dosarul rădăcină. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. Calea pentru elementul RSS e incorectă: %1 - + RSS item with given path already exists: %1. Elementul RSS cu calea dată există deja: %1. - + Parent folder doesn't exist: %1. Dosarul părinte nu există: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Adresă URL: + + + + Refresh interval: + Interval de împrospătare: + + + + sec + sec + + + + Default + Implicit + + RSSWidget @@ -8465,8 +8934,8 @@ Totuși, acele module au fost dezactivate. - - + + Mark items read Marchează elementele ca citite @@ -8491,132 +8960,115 @@ Totuși, acele module au fost dezactivate. Torente: (clic-dublu pentru a descărca) - - + + Delete Șterge - + Rename... Redenumire... - + Rename Redenumește - - + + Update Actualizează - + New subscription... Abonament nou… - - + + Update all feeds Actualizează toate fluxurile - + Download torrent Descarcă torentul - + Open news URL Deschide URL-ul pentru știri - + Copy feed URL Copiază URL-ul fluxului - + New folder... Dosar nou... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Alegeți o denumire pentru dosar - + Folder name: Denumire dosar: - + New folder Dosar nou - - - Please type a RSS feed URL - Introduceți un URL pentru fluxul RSS - - - - - Feed URL: - URL-ul fluxului: - - - + Deletion confirmation Confirmare ștergere - + Are you sure you want to delete the selected RSS feeds? Sigur doriți să ștergeți fluxurile RSS alese? - + Please choose a new name for this RSS feed Alegeți o nouă denumire pentru acest flux RSS - + New feed name: Denumire flux nou: - + Rename failed Redenumirea a eșuat - + Date: Dată: - + Feed: - + Author: Autor: @@ -8624,38 +9076,38 @@ Totuși, acele module au fost dezactivate. SearchController - + Python must be installed to use the Search Engine. Trebuie instalat Python pentru a utiliza Motorul de Căutare. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range Decalajul este în afara intervalului - + All plugins are already up to date. Toate modulele sunt deja actualizate. - + Updating %1 plugins Se actualizează %1 module - + Updating plugin %1 Se actualizează modulul %1 - + Failed to check for plugin updates: %1 A eșuat căutarea actulizărilor pentru modulele de căutare: %1 @@ -8730,132 +9182,142 @@ Totuși, acele module au fost dezactivate. Dimensiune: - + 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 Lipitori - - Search engine - Motor de căutare - - - + Filter search results... Filtrare rezultate căutare... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultate (se arată <i>%1</i> din <i>%2</i>): - + Torrent names only Numai numele torentelor - + Everywhere Oriunde - + Use regular expressions Folosește expresii regulate - + Open download window Deschide fereastra de descărcare - + Download Descarcă - + Open description page Deschide pagina descrierii - + Copy Copiază - + Name Denumire - + Download link Legătură de descărcare - + Description page URL URL-ul paginii de descriere - + Searching... Se caută… - + Search has finished Căutarea s-a încheiat - + Search aborted Căutarea a fost abandonată - + An error occurred during search... A apărut o eroare în timpul căutării... - + Search returned no results Căutarea nu a întors niciun rezultat - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Vizibilitate coloane - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora @@ -8863,104 +9325,104 @@ Totuși, acele module au fost dezactivate. SearchPluginManager - + Unknown search engine plugin file format. Format fișier necunoscut pentru modul motor de căutare. - + Plugin already at version %1, which is greater than %2 Plugin-ul este la versiunea %1, care e mai mare decât %2 - + A more recent version of this plugin is already installed. O versiune mai recentă a acestui plugin este deja instalată - + Plugin %1 is not supported. Modulul %1 nu este sprijinit. - - + + Plugin is not supported. Modulul nu este sprijinit. - + Plugin %1 has been successfully updated. Extensia %1 a fost actualizată cu succes. - + All categories Toate categoriile - + Movies Filme artistice - + TV shows Filme seriale - + Music Muzică - + Games Jocuri - + Anime Anime - + Software Software - + Pictures Imagini - + Books Cărți - + Update server is temporarily unavailable. %1 Servitorul de actualizări este temporar nedisponibil. %1 - - + + Failed to download the plugin file. %1 Descărcarea fișierului modulului a eșuat. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8970,114 +9432,145 @@ Totuși, acele module au fost dezactivate. - - - - Search Caută - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Nu există niciun modul de căutare instalat. Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al ferestrei pentru a instala unul nou. - + Search plugins... Module de căutare... - + A phrase to search for. O expresie de căutat. - + Spaces in a search term may be protected by double quotes. Spațiile dintr-o expresie de căutare pot fi protejate prin ghilimele (englezești, duble). - + Example: Search phrase example Exemplu: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: caută după <b>foo bar</b> - + All plugins Toate modulele - + Only enabled Doar activate - + + + Invalid data format. + Format de date nevalid . + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: caută după <b>foo</b> și <b>bar</b> - + + Refresh + + + + Close tab Închide fila - + Close all tabs Închide toate filele - + Select... Alege… - - - + + Search Engine Motor de căutare - + + Please install Python to use the Search Engine. Instalați Python pentru a utiliza motorul de căutare. - + Empty search pattern Model de căutare gol - + Please type a search pattern first Introduceți întâi un model de căutare - + + Stop Oprește + + + SearchWidget::DataStorage - - Search has finished - Căutarea s-a finalizat + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Căutarea a eșuat + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9190,34 +9683,34 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al - + Upload: Încărcare: - - - + + + - - - + + + KiB/s KiO/s - - + + Download: Descărcare: - + Alternative speed limits Limite de viteză alternative @@ -9409,32 +9902,32 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al Timp mediu la coadă: - + Connected peers: Parteneri conectați: - + All-time share ratio: Raport de partajare din toate timpurile: - + All-time download: Descărcări din toate timpurile: - + Session waste: Pierderi în sesiune: - + All-time upload: Încărcat din toate timpurile: - + Total buffer size: Dimensiune totală buffer: @@ -9449,12 +9942,12 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al Sarcini Intrare/Ieșire puse la coadă: - + Write cache overload: Supraîncărcare prestocare scriere: - + Read cache overload: Supraîncărcare prestocare citire: @@ -9473,51 +9966,77 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al StatusBar - + Connection status: Stare conexiune: - - + + No direct connections. This may indicate network configuration problems. Fără conexiuni directe. Aceasta ar putea indica o problemă la configurarea rețelei. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 noduri - + qBittorrent needs to be restarted! qBittorrent trebuie să fie repornit! - - - + + + Connection Status: Stare conexiune: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Deconectat. Aceasta înseamnă de obicei că qBittorrent a eșuat în ascultarea portului selectat pentru conexiuni de intrare. - + Online Conectat - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Clic pentru a activa limitele de viteză alternative - + Click to switch to regular speed limits Clic pentru a activa limitele de viteză obișnuite @@ -9547,13 +10066,13 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al - Resumed (0) - Reluate (0) + Running (0) + - Paused (0) - Suspendate (0) + Stopped (0) + @@ -9615,36 +10134,36 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al Completed (%1) Încheiate (%1) + + + Running (%1) + + - Paused (%1) - Suspendate (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) Se mută (%1) - - - Resume torrents - Reia torentele - - - - Pause torrents - Pauzează torentele - Remove torrents Elimină torentele - - - Resumed (%1) - Reluate (%1) - Active (%1) @@ -9716,31 +10235,31 @@ Dați clic pe butonul „Module de căutare...” din colțul din dreapta-jos al Remove unused tags Elimină marcaje nefolosite - - - Resume torrents - Reia torentele - - - - Pause torrents - Întrerupe torente - Remove torrents Elimină torentele - - New Tag - Marcaj nou + + Start torrents + + + + + Stop torrents + Tag: Marcaj: + + + Add tag + + Invalid tag name @@ -9887,32 +10406,32 @@ Alegeți o denumire diferită și încercați iar. TorrentContentModel - + Name Nume - + Progress Progres - + Download Priority Prioritate descărcare - + Remaining Rămas - + Availability Disponibilitate - + Total Size Dimensiune totală @@ -9957,98 +10476,98 @@ Alegeți o denumire diferită și încercați iar. TorrentContentWidget - + Rename error Eroare la redenumire - + Renaming Se redenumește - + New name: Denumire nouă: - + Column visibility Vizibilitate coloană - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora - + Open Deschide - + Open containing folder Deschide dosarul părinte - + Rename... Redenumire... - + Priority Prioritate - - + + Do not download Nu descărca - + Normal Normală - + High Înaltă - + Maximum Maxim - + By shown file order După ordinea afișată a fișierelor - + Normal priority Prioritate normală - + High priority Prioritate înaltă - + Maximum priority Prioritate maximă - + Priority by shown file order Prioritate după ordinea afișată a fișierelor @@ -10056,17 +10575,17 @@ Alegeți o denumire diferită și încercați iar. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10095,13 +10614,13 @@ Alegeți o denumire diferită și încercați iar. - + Select file Alegeți fișierul - + Select folder Alegeți dosarul @@ -10176,87 +10695,83 @@ Alegeți o denumire diferită și încercați iar. Câmpuri - + You can separate tracker tiers / groups with an empty line. Puteți separa nivelurile/grupurile de urmăritoare cu o linie goală. - + Web seed URLs: URL sursă Web: - + Tracker URLs: URL-urile urmăritorului: - + Comments: Comentarii: - + Source: Sursă: - + Progress: Progres: - + Create Torrent Creează torent - - + + Torrent creation failed Crearea torentului a eșuat - + Reason: Path to file/folder is not readable. Motiv: Calea către fișier/dosar nu este accesibilă. - + Select where to save the new torrent Alegeți unde să fie salvat torentul nou - + Torrent Files (*.torrent) Fișiere torent (*.torrent) - Reason: %1 - Motiv: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Motivul: „%1” - + Add torrent failed - + Torrent creator Creator de torente - + Torrent created: Torent creat: @@ -10264,32 +10779,32 @@ Alegeți o denumire diferită și încercați iar. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 Configurația dosarelor supravegheate nu a putut fi salvată %1. Eroare: %2 - + Watched folder Path cannot be empty. Calea dosarului supravegheat nu poate fi goală. - + Watched folder Path cannot be relative. Calea dosarului supravegheat nu poate fi relativă. @@ -10297,44 +10812,31 @@ Alegeți o denumire diferită și încercați iar. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" Se supraveghează dosarul: „%1” - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Metadate nevalide - - TorrentOptionsDialog @@ -10363,211 +10865,199 @@ Alegeți o denumire diferită și încercați iar. Folosește o altă cale pentru torentul incomplet - + Category: Categorie: - - Torrent speed limits - Limite de viteză ale torenților + + Torrent Share Limits + - + Download: Descărcare: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiO/s - + These will not exceed the global limits Acestea nu vor depășii limitele globale - + Upload: Încărcare: - - Torrent share limits - Limitele de partajare a torenților - - - - Use global share limit - Utilizează limitarea globală a partajării - - - - Set no share limit - Nu stabili nicio limită de partajare - - - - Set share limit to - Stabilește limita de partajare la - - - - ratio - raport - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Dezactivează DHT pentru acest torent - + Download in sequential order Descarcă în ordine secvențială - + Disable PeX for this torrent Dezactivează PeX pentru acest torent - + Download first and last pieces first Descarcă întâi primele și ultimele bucăți - + Disable LSD for this torrent Dezactivează LSD pentru acest torent - + Currently used categories Categorii folosite acum - - + + Choose save path Alegeți calea de salvare - + Not applicable to private torrents Nu se aplică la torente private - - - No share limit method selected - Nu a fost selectată nicio metodă de limitare a partajării - - - - Please select a limit method first - Selectați întâi o metodă de limitare - TorrentShareLimitsWidget - - - + + + + Default - Implicit + Implicit + + + + + + Unlimited + Nelimitat - - - Unlimited - - - - - - + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - - Ratio: + + Action when the limit is reached: + + + Stop torrent + + + + + Remove torrent + Elimină torentul + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Activați super contribuirea pentru torent + + + + Ratio: + Raport: + TorrentTagsDialog Torrent Tags - - - - - New Tag - Marcaj nou + Etichete torent + Add tag + + + + Tag: Marcaj: - + Invalid tag name Denumire nevalidă de marcaj - + Tag name '%1' is invalid. - + Tag exists Marcajul există - + Tag name already exists. Denumirea marcajului există deja. @@ -10575,115 +11065,130 @@ Alegeți o denumire diferită și încercați iar. TorrentsController - + Error: '%1' is not a valid torrent file. Eroare: „%1” nu este un fișier torent valid. - + Priority must be an integer Prioritatea trebuie să fie un număr întreg - + Priority is not valid Prioritatea nu este validă - + Torrent's metadata has not yet downloaded Metadatele torentului nu au fost descărcate încă - + File IDs must be integers ID-urile fișierului trebuie să fie numere întregi - + File ID is not valid ID-urile fișierului nu sunt valide - - - - + + + + Torrent queueing must be enabled Punerea în coadă a torentelor trebuie să fie activată - - + + Save path cannot be empty Calea de salvare nu trebuie să fie goală - - + + Cannot create target directory Dosarul țintă nu poate fi creat - - + + Category cannot be empty Categoria nu trebuie să fie goală - + Unable to create category Nu s-a putut crea categoria - + Unable to edit category Nu s-a putut modifica categoria - + Unable to export torrent file. Error: %1 - + Cannot make save path Nu am putut crea calea de salvare - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Parametrul 'sort' de sortare e invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory Nu pot scrie în director - + WebUI Set location: moving "%1", from "%2" to "%3" Interfață web - Stabilire locație: se mută „%1”, din „%2” în „%3” - + Incorrect torrent name Nume torent incorect - - + + Incorrect category name Nume categorie incorectă @@ -10714,196 +11219,191 @@ Alegeți o denumire diferită și încercați iar. TrackerListModel - + Working Funcțional - + Disabled Dezactivat - + Disabled for this torrent Dezactivat pentru acest torent - + This torrent is private Acest torent este privat - + N/A Indisp. - + Updating... Se actualizează… - + Not working Nefuncțional - + Tracker error - + Eroare urmăritor - + Unreachable - + Not contacted yet Nu a fost contactat încă - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Nivel - - - - Protocol + URL/Announce Endpoint - Status - Stare - - - - Peers - Parteneri - - - - Seeds - Surse - - - - Leeches - Lipitori - - - - Times Downloaded - Număr de descărcări - - - - Message - Mesaj - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Nivel + + + + Status + Stare + + + + Peers + Parteneri + + + + Seeds + Surse + + + + Leeches + Lipitori + + + + Times Downloaded + Număr de descărcări + + + + Message + Mesaj + TrackerListWidget - + This torrent is private Acest torent este privat - + Tracker editing Modificare urmăritor - + Tracker URL: URL urmăritor: - - + + Tracker editing failed Editarea urmăritorului a eșuat - + The tracker URL entered is invalid. URL-ul urmăritorului nu este valid. - + The tracker URL already exists. URL-ul urmăritorului există deja. - + Edit tracker URL... Editare URL urmăritor... - + Remove tracker Elimină urmăritorul - + Copy tracker URL Copiază URL-ul urmăritorului - + Force reannounce to selected trackers Forțează reanunțarea urmăritoarelor selectate - + Force reannounce to all trackers Forțează reanunțarea tuturor urmăritoarelor - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora - + Add trackers... Adaugă urmăritoare… - + Column visibility Vizibilitate coloană @@ -10921,100 +11421,100 @@ Alegeți o denumire diferită și încercați iar. Listă cu urmăritoare de adăugat (unul pe linie): - + µTorrent compatible list URL: Listă URL compatibilă µTorrent: - + Download trackers list - + Descarcă lista de urmăritoare - + Add Adaugă - + Trackers list URL error - + Eroare adresă URL listă de urmăritoare - + The trackers list URL cannot be empty - + Adresa URL a listei de urmăritoare nu poate fi goală - + Download trackers list error - + Eroare la descărcarea listei de urmăritoare - + Error occurred when downloading the trackers list. Reason: "%1" - + A fost întâmpinată o eroare câ se descărca lista de urmăritoare. Motivul: „%1” TrackersFilterWidget - + Warning (%1) Cu avertizări (%1) - + Trackerless (%1) Fără urmăritor (%1) - + Tracker error (%1) - + Eroare urmăritoare (%1) - + Other error (%1) - + Remove tracker Elimină urmăritorul - - Resume torrents - Reia torentele + + Start torrents + - - Pause torrents - Pauzează torentele + + Stop torrents + - + Remove torrents Elimină torentele - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Sigur doriți să eliminați urmăritorul „%1” de la toate torentele? - + Don't ask me again. - + Nu mă întreba din nou. - + All (%1) this is for the tracker filter Toate (%1) @@ -11023,7 +11523,7 @@ Alegeți o denumire diferită și încercați iar. TransferController - + 'mode': invalid argument @@ -11115,11 +11615,6 @@ Alegeți o denumire diferită și încercați iar. 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. Se verifică datele de reluare - - - Paused - Suspendat - Completed @@ -11143,220 +11638,252 @@ Alegeți o denumire diferită și încercați iar. Eroare - + Name i.e: torrent name Denumire - + Size i.e: torrent size Dimensiune - + Progress % Done Progres - + + Stopped + Oprită + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stare - + Seeds i.e. full sources (often untranslated) Surse - + Peers i.e. partial sources (often untranslated) Parteneri - + Down Speed i.e: Download speed Viteză desc. - + Up Speed i.e: Upload speed Viteză înc. - + Ratio Share ratio Raport - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Rămas - + Category Categorie - + Tags Marcaje - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Adăugat la - + Completed On Torrent was completed on 01/01/2010 08:00 Încheiat la - + Tracker Urmăritor - + Down Limit i.e: Download limit Limită desc. - + Up Limit i.e: Upload limit Limită înc. - + Downloaded Amount of data downloaded (e.g. in MB) Descărcat - + Uploaded Amount of data uploaded (e.g. in MB) Încărcat - + Session Download Amount of data downloaded since program open (e.g. in MB) Descărcat în sesiune - + Session Upload Amount of data uploaded since program open (e.g. in MB) Încărcat în sesiune - + Remaining Amount of data left to download (e.g. in MB) Rămas - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Durată activă - + + Yes + Da + + + + No + Nu + + + Save Path Torrent save path Cale de salvare - + Incomplete Save Path Torrent incomplete save path Cale de salvare incompletă - + Completed Amount of data completed (e.g. in MB) Încheiat - + Ratio Limit Upload share ratio limit Limită raport - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Văzut complet ultima dată - + Last Activity Time passed since a chunk was downloaded/uploaded Ultima activitate - + Total Size i.e. Size including unwanted data Dimensiune totală - + Availability The number of distributed copies of the torrent Disponibilitate - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce + Reanunțare în + + + + Private + Flags private torrents - - + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Indisp. - + %1 ago e.g.: 1h 20m ago %1 în urmă - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (contribuit pentru %2) @@ -11365,339 +11892,319 @@ Alegeți o denumire diferită și încercați iar. TransferListWidget - + Column visibility Vizibilitate coloană - + Recheck confirmation Confirmare reverificare - + Are you sure you want to recheck the selected torrent(s)? Sigur doriți să reverificați torentele selectate? - + Rename Redenumire - + New name: Denumire nouă: - + Choose save path Alegeți calea de salvare - - Confirm pause - Connfirmare pauzare - - - - Would you like to pause all torrents? - Doriți să puneți în pauză toate torentele? - - - - Confirm resume - Confirmare reluare - - - - Would you like to resume all torrents? - Doriți să reluați toate torentele? - - - + Unable to preview Nu pot previzualiza - + The selected torrent "%1" does not contain previewable files Torentul selectat "%1" nu conține fișiere previzualizabile - + Resize columns Redimensionează coloanele - + Resize all non-hidden columns to the size of their contents Redimensionează toate coloanele neascunse la dimensiunea conținutului acestora - + Enable automatic torrent management Activează gestionarea automată a torentelor - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Sigur doriți să activați Gestiunea Automată a Torentelor pentru torentele alese? Acestea pot fi relocate. - - Add Tags - Adaugă marcaje - - - + Choose folder to save exported .torrent files Alegeți un dosar pentru a salva fișierele .torrent exportate - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists Există deja un fișier cu același nume - + Export .torrent file error - + Remove All Tags Elimină toate marcajele - + Remove all tags from selected torrents? Eliminați toate marcajele de la torentele alese? - + Comma-separated tags: Marcaje separate prin virgulă: - + Invalid tag Marcaj nevalid - + Tag name: '%1' is invalid Denumire marcaj: „%1” nu este valid - - &Resume - Resume/start the torrent - &Reia - - - - &Pause - Pause the torrent - &Pauzează - - - - Force Resu&me - Force Resume/start the torrent - Forțează re&luarea - - - + Pre&view file... Pre&vizualizare fișier... - + Torrent &options... &Opțiuni torent... - + Open destination &folder Deschide &dosarul destinație - + Move &up i.e. move up in the queue Mută în s&us - + Move &down i.e. Move down in the queue Mută în &jos - + Move to &top i.e. Move to top of the queue Mu&tă în vârf - + Move to &bottom i.e. Move to bottom of the queue Mută la &bază - + Set loc&ation... Stabilire loc&ație... - + Force rec&heck Forțează re&verificarea - + Force r&eannounce Forțează r&eanunțarea - + &Magnet link Legătură &Magnet - + Torrent &ID &Identificator torentn - + &Comment - + &Comentariu - + &Name &Nume - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Rede&numește… - + Edit trac&kers... M&odifică urmăritoarele… - + E&xport .torrent... E&xportă .torrent… - + Categor&y Catego&rie - + &New... New category... &Nouă… - + &Reset Reset category &Reinițializează - + Ta&gs Mar&caje - + &Add... Add / assign multiple tags... &Adaugă… - + &Remove All Remove all tags &Elimină toate - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue &Coadă - + &Copy &Copiază - + Exported torrent is not necessarily the same as the imported - + Download in sequential order Descarcă în ordine secvențială - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Elimină - + Download first and last pieces first Descarcă întâi primele și ultimele bucăți - + Automatic Torrent Management Gestiune Automată a Torentelor - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Regimul automat înseamnă că diferite proprietăți ale torentului (cum ar fi calea de salvare) vor fi decise în baza categoriei asociate - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Nu se poate forța reanunțarea dacă torentul e întrerupt/în coadă/eronat/verificând - - - + Super seeding mode Mod super-contribuire @@ -11712,58 +12219,58 @@ Alegeți o denumire diferită și încercați iar. Colors - + Culori Color ID - + ID culoare Light Mode - + Modul luminos Dark Mode - + Modul întunecat Icons - + Pictograme Icon ID - + ID pictogramă - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11771,7 +12278,12 @@ Alegeți o denumire diferită și încercați iar. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Eșec la încărcarea tematicii UI din fișier: „%1” @@ -11802,20 +12314,21 @@ Alegeți o denumire diferită și încercați iar. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11823,32 +12336,32 @@ Alegeți o denumire diferită și încercați iar. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11940,72 +12453,72 @@ Alegeți o denumire diferită și încercați iar. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Tip de fișier neacceptabil, numai fișierele obișnuite sunt permise - + Symlinks inside alternative UI folder are forbidden. Legăturile simbolice înăuntrul dosarului de interfață alternativ sunt interzise. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12013,125 +12526,133 @@ Alegeți o denumire diferită și încercați iar. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Eroare necunoscută + + misc - + B bytes O - + KiB kibibytes (1024 bytes) KiO - + MiB mebibytes (1024 kibibytes) MiO - + GiB gibibytes (1024 mibibytes) GiO - + TiB tebibytes (1024 gibibytes) TiO - + PiB pebibytes (1024 tebibytes) PiO - + EiB exbibytes (1024 pebibytes) EiO - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1o %2m - + %1d %2h e.g: 2 days 10 hours %1z %2o - + %1y %2d e.g: 2 years 10 days %1a %2z - - + + Unknown Unknown (size) Necunoscut - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent va opri acum calculatorul deoarece toate descărcările au fost finalizate. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_ru.ts b/src/lang/qbittorrent_ru.ts index b39662c6c..9ad0e0d43 100644 --- a/src/lang/qbittorrent_ru.ts +++ b/src/lang/qbittorrent_ru.ts @@ -14,87 +14,87 @@ О программе - + Authors Авторы - + Current maintainer Текущий куратор - + Greece Греция - - + + Nationality: Страна: - - + + E-mail: Эл. почта: - - + + Name: Имя: - + Original author Изначальный автор - + France Франция - + Special Thanks Благодарности - + Translators Перевод - + License Лицензия - + Software Used Встроенное ПО - + qBittorrent was built with the following libraries: Эта сборка qBittorrent использует следующие библиотеки: - + Copy to clipboard Копировать в буфер An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar. - Передовой клиент сети БитТоррент, созданный с использованием языка C++ и библиотек Qt и libtorrent-rasterbar. + Передовой клиент сети БитТоррент, созданный при помощи языка C++ и библиотек Qt и libtorrent-rasterbar. - Copyright %1 2006-2024 The qBittorrent project - Авторское право %1 2006-2024 Проект qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Авторское право %1 2006-2025 Проект qBittorrent @@ -166,15 +166,10 @@ Путь сохранения - + Never show again Больше не показывать - - - Torrent settings - Настройки торрента - Set as default category @@ -191,12 +186,12 @@ Запустить торрент - + Torrent information Сведения о торренте - + Skip hash check Пропустить проверку хеша @@ -205,6 +200,11 @@ Use another path for incomplete torrent Отдельный путь для неполного торрента + + + Torrent options + Параметры торрента + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - Нажмите кнопку [...], чтобы добавить/убрать метки. + Нажмите кнопку […], чтобы добавить/убрать метки. @@ -231,75 +231,75 @@ Условие остановки: - - + + None Нет - - + + Metadata received Метаданные получены - + Torrents that have metadata initially will be added as stopped. - + Торренты, изначально содержащие метаданные, будут добавлены в остановленном состоянии. - - + + Files checked Файлы проверены - + Add to top of queue Добавить в начало очереди - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog При включении предотвращает удаление торрент-файла, игнорируя параметры «Загрузок» в «Настройках» - + Content layout: Состав содержимого: - + Original Исходный - + Create subfolder Создавать подпапку - + Don't create subfolder Не создавать подпапку - + Info hash v1: Инфо-хеш v1: - + Size: Размер: - + Comment: Комментарий: - + Date: Дата: @@ -329,151 +329,147 @@ Запомнить последний путь сохранения - + Do not delete .torrent file Не удалять торрент-файл - + Download in sequential order Загрузить последовательно - + Download first and last pieces first Загрузить сперва крайние части - + Info hash v2: Инфо-хеш v2: - + Select All Выбрать все - + Select None - Отменить выбор + Снять выбор - + Save as .torrent file... Сохранить в .torrent-файл… - + I/O Error Ошибка ввода-вывода - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Magnet link Магнит-ссылка - + Retrieving metadata... Поиск метаданных… - - + + Choose save path Выберите путь сохранения - + No stop condition is set. Без условия остановки. - + Torrent will stop after metadata is received. Торрент остановится по получении метаданных. - Torrents that have metadata initially aren't affected. - Торренты, изначально содержащие метаданные, не затрагиваются. - - - + Torrent will stop after files are initially checked. Торрент остановится после первичной проверки файлов. - + This will also download metadata if it wasn't there initially. Это также позволит загрузить метаданные, если их изначально там не было. - - + + N/A Н/Д - + %1 (Free space on disk: %2) %1 (свободно на диске: %2) - + Not available This size is unavailable. Недоступно - + Torrent file (*%1) Торрент-файл (*%1) - + Save as torrent file Сохранить в торрент-файл - + Couldn't export torrent metadata file '%1'. Reason: %2. Не удалось экспортировать файл метаданных торрента «%1». Причина: %2. - + Cannot create v2 torrent until its data is fully downloaded. Нельзя создать торрент v2, пока его данные не будут полностью загружены. - + Filter files... Фильтр файлов… - + Parsing metadata... Разбираются метаданные… - + Metadata retrieval complete Поиск метаданных завершён @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Загрузка торрента… Источник: «%1» - + Failed to add torrent. Source: "%1". Reason: "%2" Не удалось добавить торрент. Источник: «%1». Причина: «%2» - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Обнаружена попытка добавления повторяющегося торрента. Источник: %1. Существующий торрент: %2. Результат: %3 - - - + Merging of trackers is disabled Объединение трекеров отключено - + Trackers cannot be merged because it is a private torrent Трекеры нельзя объединить, так как торрент частный - + Trackers are merged from new source Трекеры объединены из нового источника + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Обнаружена попытка добавления повторяющегося торрента. Источник: %1. Существующий торрент: «%2». Инфо-хеш торрента: %3. Результат: %4 + AddTorrentParamsWidget @@ -556,7 +552,7 @@ Click [...] button to add/remove tags. - Нажмите кнопку [...], чтобы добавить/убрать метки. + Нажмите кнопку […], чтобы добавить/убрать метки. @@ -596,7 +592,7 @@ Torrent share limits - Ограничения раздачи торрента + Ограничения раздачи торрента @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB МБ - + Recheck torrents on completion Перепроверять торренты по завершении - - + + ms milliseconds мс - + Setting Параметр - + Value Value set for this setting Значение - + (disabled) (отключено) - + (auto) (автоматически) - + + min minutes мин - + All addresses Все адреса - + qBittorrent Section Раздел qBittorrent - - + + Open documentation Открыть документацию - + All IPv4 addresses Все адреса IPv4 - + All IPv6 addresses Все адреса IPv6 - + libtorrent Section Раздел libtorrent - + Fastresume files Файлы быстрого возобновления - + SQLite database (experimental) База данных SQLite (экспериментально) - + Resume data storage type (requires restart) - Место данных возобновления (нужен перезапуск) + Хранилище данных возобновления (нужен перезапуск) - + Normal Обычный - + Below normal Ниже обычного - + Medium Средний - + Low Низкий - + Very low Очень низкий - + Physical memory (RAM) usage limit Предел виртуальной памяти - + Asynchronous I/O threads Потоки асинхронного ввода-вывода - + Hashing threads Потоки хеширования - + File pool size Размер пула файлов - + Outstanding memory when checking torrents Накладная память при проверке торрентов - + Disk cache Кэш диска в памяти - - - - + + + + + s seconds с - + Disk cache expiry interval Период очистки кэша диска - + Disk queue size Размер очереди диска - - + + Enable OS cache Включить кэш ОС - + Coalesce reads & writes Совмещать операции чтения и записи - + Use piece extent affinity Группировать смежные части - + Send upload piece suggestions Отправлять предложения частей отдачи - - - - + + + + + 0 (disabled) 0 (отключено) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Период записи данных возобновления [0: откл.] - + Outgoing ports (Min) [0: disabled] Минимум исходящих портов [0: откл.] - + Outgoing ports (Max) [0: disabled] Максимум исходящих портов [0: откл.] - + 0 (permanent lease) 0 (постоянный) - + UPnP lease duration [0: permanent lease] Срок аренды UPnP [0: постоянный] - + Stop tracker timeout [0: disabled] Тайм-аут остановки трекера [0: откл.] - + Notification timeout [0: infinite, -1: system default] Срок уведомлений [0: бесконечно, -1: стандартно] - + Maximum outstanding requests to a single peer Максимум нерешённых запросов к одному пиру - - - - - + + + + + KiB КБ - + (infinite) (бесконечно) - + (system default) (стандарт системы) - + + Delete files permanently + Удалять файлы безвозвратно + + + + Move files to trash (if possible) + Убирать файлы в корзину (если возможно) + + + + Torrent content removing mode + Режим удаления содержимого торрентов + + + This option is less effective on Linux Этот параметр менее эффективен в Linux - + Process memory priority Приоритет памяти процесса - + Bdecode depth limit Предел глубины разбора данных Bdecode - + Bdecode token limit Предел токенов разбора данных Bdecode - + Default Стандартно - + Memory mapped files Файлы, отображаемые в память - + POSIX-compliant Совместимый с POSIX - + + Simple pread/pwrite + Простой ввод-вывод + + + Disk IO type (requires restart) Тип ввода-вывода диска (требует перезапуск) - - + + Disable OS cache Отключить кэш ОС - + Disk IO read mode Режим чтения ввода-вывода с диска - + Write-through Сквозная запись - + Disk IO write mode Режим записи ввода-вывода с диска - + Send buffer watermark Отметка буфера отправки - + Send buffer low watermark Нижняя отметка буфера отправки - + Send buffer watermark factor Фактор отметки буфера отправки - + Outgoing connections per second Исходящие соединения в секунду - - + + 0 (system default) 0 (стандарт системы) - + Socket send buffer size [0: system default] Размер буфера отправки сокета [0: системный] - + Socket receive buffer size [0: system default] Размер буфера получения сокета [0: системный] - + Socket backlog size Размер очереди сокета - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Период записи статистики [0: откл.] + + + .torrent file size limit Предельный размер файла .torrent - + Type of service (ToS) for connections to peers Тип обслуживания (ToS) соединений к пирам - + Prefer TCP Предпочитать TCP - + Peer proportional (throttles TCP) Соразмерно пирам (регулирует TCP) - + + Internal hostname resolver cache expiry interval + Период истечения срока кэша внутреннего преобразователя имён хостов + + + Support internationalized domain name (IDN) Поддерживать нелатинские имена доменов (IDN) - + Allow multiple connections from the same IP address Разрешать несколько соединений с одного IP - + Validate HTTPS tracker certificates Проверять сертификаты трекеров HTTPS - + Server-side request forgery (SSRF) mitigation Упреждать серверную подделку запроса (SSRF) - + Disallow connection to peers on privileged ports Не соединять пиров по общеизвестным портам - + It appends the text to the window title to help distinguish qBittorent instances - + Добавляет текст к заголовку окна с целью различения экземпляров qBittorent. - + Customize application instance name - + Дополнить название экземпляра приложения - + It controls the internal state update interval which in turn will affect UI updates Управляет периодом обновления внутреннего состояния, влияющим на частоту обновления интерфейса - + Refresh interval Период обновления - + Resolve peer host names Определять имя хоста пира - + IP address reported to trackers (requires restart) IP для сообщения трекерам (требует перезапуск) - - Reannounce to all trackers when IP or port changed - Повторить анонс на все трекеры при смене IP/порта + + Port reported to trackers (requires restart) [0: listening port] + Порт для сообщения трекерам (требует перезапуск) [0: порт прослушивания] - + + Reannounce to all trackers when IP or port changed + Повторять анонс на все трекеры при смене IP/порта + + + Enable icons in menus Включить значки в меню - + + Attach "Add new torrent" dialog to main window + Привязать окно добавления торрента к главному + + + Enable port forwarding for embedded tracker Включить проброс портов для встроенного трекера - + Enable quarantine for downloaded files Включить карантин для загруженных файлов - + Enable Mark-of-the-Web (MOTW) for downloaded files - Ставить веб-метку (MOTW) на загруженные файлы + Ставить веб-метку (MOTW) на файлы загрузок - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Затрагивает проверку сертификатов и деятельность, не связанную с протоколом торрент (например, RSS-ленты, обновления программы, торрент-файлы, БД GeoIP и т. д.). + + + + Ignore SSL errors + Игнорировать ошибки SSL + + + (Auto detect if empty) (Автообнаружение, если пусто) - + Python executable path (may require restart) Путь к файлу Python (может требовать перезапуск) - - Confirm removal of tracker from all torrents - Подтвердить удаление трекера из всех торрентов + + Start BitTorrent session in paused state + Запускать qBittorrent в остановленном состоянии - + + sec + seconds + с + + + + -1 (unlimited) + -1 (без ограничений) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Тайм-аут остановки сеанса БитТоррента [-1: бесконечно] + + + + Confirm removal of tracker from all torrents + Подтверждать удаление трекера из всех торрентов + + + Peer turnover disconnect percentage Процент отключения текучести пиров - + Peer turnover threshold percentage Процент предела текучести пиров - + Peer turnover disconnect interval Период отключения текучести пиров - + Resets to default if empty - Сброс на стандарт, если пусто + Сбрасывается на стандартное, если пусто - + DHT bootstrap nodes - Узлы самозагрузки DHT + Резервные узлы самозагрузки DHT - + I2P inbound quantity Число входящих I2P - + I2P outbound quantity Число исходящих I2P - + I2P inbound length Длина входящих I2P - + I2P outbound length Длина исходящих I2P - + Display notifications Показывать уведомления - + Display notifications for added torrents Показывать уведомление при добавлении торрента - + Download tracker's favicon Загружать значки сайтов трекеров - + Save path history length - Длина истории пути сохранения + Размер истории путей сохранения - + Enable speed graphs Включить графики скорости - + Fixed slots Постоянные слоты - + Upload rate based На основе скорости отдачи - + Upload slots behavior Поведение слотов отдачи - + Round-robin Каждому по кругу - + Fastest upload Быстрейшая отдача - + Anti-leech Анти-лич - + Upload choking algorithm Алгоритм заглушения отдачи - + Confirm torrent recheck Подтверждать перепроверку торрентов - + Confirm removal of all tags Подтверждать удаление всех меток - + Always announce to all trackers in a tier Всегда анонсировать на все трекеры в уровне - + Always announce to all tiers Всегда анонсировать на все уровни - + Any interface i.e. Any network interface Любой интерфейс - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Алгоритм смешанного режима %1-TCP - + Resolve peer countries Определять страны пиров - + Network interface Сетевой интерфейс - + Optional IP address to bind to Необязательный IP-адрес для привязки - + Max concurrent HTTP announces Максимум одновременных анонсов HTTP - + Enable embedded tracker Включить встроенный трекер - + Embedded tracker port Порт встроенного трекера + + AppController + + + + Invalid directory path + Недопустимый путь каталога + + + + Directory does not exist + Каталог не существует + + + + Invalid mode, allowed values: %1 + Недопустимый режим, допустимые значения: %1 + + + + cookies must be array + куки должны быть массивом + + Application - + Running in portable mode. Auto detected profile folder at: %1 Работает в переносном режиме. Автоматически обнаружена папка профиля в: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Обнаружен избыточный флаг командной строки: «%1». Портативный режим подразумевает относительное быстрое возобновление. - + Using config directory: %1 Используется каталог настроек: %1 - + 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. - + Torrent: %1, sending mail notification Торрент: %1, отправка оповещения на эл. почту - + Add torrent failed Добавление торрента не удалось - + Couldn't add torrent '%1', reason: %2. Не удалось добавить торрент «%1». Причина: %2. - + The WebUI administrator username is: %1 Имя администратора веб-интерфейса: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Пароль администратора веб-интерфейса не был установлен. Для этого сеанса представлен временный пароль: %1 - + You should set your own password in program preferences. Необходимо задать собственный пароль в настройках программы. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Веб-интерфейс отключён! Для включения веб-интерфейса измените файл настроек вручную. - + Running external program. Torrent: "%1". Command: `%2` Запускается внешняя программа. Торрент: «%1». Команда: «%2» - + Failed to run external program. Torrent: "%1". Command: `%2` Не удалось запустить внешнюю программу. Торрент: «%1». Команда: «%2» - + Torrent "%1" has finished downloading Торрент «%1» завершил загрузку - + WebUI will be started shortly after internal preparations. Please wait... Веб-интерфейс скоро запустится после внутренней подготовки. Пожалуйста, подождите… - - + + Loading torrents... Прогрузка торрентов… - + E&xit &Выход - + I/O Error i.e: Input/Output Error Ошибка ввода-вывода - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Причина: %2 - + Torrent added Торрент добавлен - + '%1' was added. e.g: xxx.avi was added. «%1» добавлен. - + Download completed Загрузка завершена - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 запущен. Идентификатор процесса: %2 - + + This is a test email. + Это проверочное электронное письмо. + + + + Test email + Проверить эл. почту + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Завершена загрузка торрента «%1». - + Information Информация - + To fix the error, you may need to edit the config file manually. Для устранения ошибки может потребоваться ручная правка файла настроек. - + To control qBittorrent, access the WebUI at: %1 Войдите в веб-интерфейс для управления qBittorrent: %1 - + Exit Выход - + Recursive download confirmation Подтверждение рекурсивной загрузки - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Торрент «%1» содержит файлы .torrent, хотите приступить к их загрузке? - + Never Никогда - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Рекурсивная загрузка .torrent-файла из торрента. Исходный торрент: «%1». Файл: «%2» - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Не удалось ограничить виртуальную память. Код ошибки: %1. Сообщение ошибки: «%2» - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Не удалось жёстко ограничить использование физической памяти (ОЗУ). Запрошенный размер: %1. Системное жёсткое ограничение: %2. Код ошибки: %3. Сообщение ошибки: «%4» - + qBittorrent termination initiated Завершение qBittorrent начато - + qBittorrent is shutting down... qBittorrent завершает работу… - + Saving torrent progress... Сохраняется состояние торрента… - + qBittorrent is now ready to exit qBittorrent теперь готов к выходу @@ -1609,12 +1715,12 @@ Приоритет: - + Must Not Contain: Не должно содержать: - + Episode Filter: Фильтр эпизодов: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Экспорт… - + 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 - Номер сезона должен иметь ненулевое значение + Номер сезона должен быть ненулевым значением - + 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-й первого сезона - + Episode number is a mandatory positive value Номер эпизода должен быть ненулевым - + Rules Правила - + Rules (legacy) Правила (устаревшие) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Бесконечный диапазон: <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 Подтверждение удаления правила - + Invalid action Недопустимое действие - + The list is empty, there is nothing to export. Список пуст, нечего экспортировать. - + Export RSS rules Экспортировать правила RSS - + I/O Error Ошибка ввода-вывода - + Failed to create the destination file. Reason: %1 Не удалось создать целевой файл. Причина: %1 - + Import RSS rules Импортировать правила RSS - + Failed to import the selected rules file. Reason: %1 Не удалось импортировать выбранный файл правил. Причина: %1 - + Add new rule... Добавить новое правило… - + Delete rule Удалить правило - + Rename rule... Переименовать правило… - + Delete selected rules Удалить выбранные правила - + Clear downloaded episodes... Очистить загруженные эпизоды… - + Rule renaming Переименование правила - + Please type the new rule name Пожалуйста, введите имя нового правила - + Clear downloaded episodes Очистить загруженные эпизоды - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Уверены, что хотите очистить список загруженных эпизодов для выбранного правила? - + Regex mode: use Perl-compatible regular expressions Режим Regex: используйте регулярные выражения в стиле Perl - - + + Position %1: %2 Позиция %1: %2 - + Wildcard mode: you can use Режим поиска по шаблону: можно использовать - - + + Import error Ошибка импорта - + Failed to read the file. %1 Не удалось прочесть файл. %1 - + ? to match any single character «?» соответствует любому одиночному символу - + * to match zero or more of any characters «*» соответствует нулю или нескольким любым символам - + Whitespaces count as AND operators (all words, any order) Пробелы читаются как операторы И (все слова, любой порядок) - + | is used as OR operator «|» используется как оператор ИЛИ - + If word order is important use * instead of whitespace. Если порядок слов важен, то используйте «*» вместо пробелов. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Выражение с пустым пунктом %1 (пример, %2) - + will match all articles. подойдёт всем статьям. - + will exclude all articles. исключит все статьи. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Не удаётся создать папку возобновления торрента: «%1» @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Не удаётся разобрать данные возобновления: неверный формат - - + + Cannot parse torrent info: %1 Не удаётся разобрать информацию о торренте: %1 - + Cannot parse torrent info: invalid format Не удаётся разобрать информацию о торренте: неверный формат - + Mismatching info-hash detected in resume data Обнаружено несоответствие инфо-хеша в данных возобновления - + + Corrupted resume data: %1 + Повреждённые данные возобновления: %1 + + + + save_path is invalid + save_path не является действительным + + + Couldn't save torrent metadata to '%1'. Error: %2. Не удалось сохранить метаданные торрента в «%1». Ошибка: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Не удалось сохранить данные возобновления торрента в «%1». Ошибка: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Не удаётся разобрать данные возобновления: %1 - + Resume data is invalid: neither metadata nor info-hash was found Данные возобновления недействительны: метаданные или инфо-хэш не найдены - + Couldn't save data to '%1'. Error: %2 Не удалось сохранить данные в «%1». Ошибка: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Не найдено. - + Couldn't load resume data of torrent '%1'. Error: %2 Не удалось подгрузить данные возобновления торрента «%1». Ошибка: %2 - - + + Database is corrupted. База данных повреждена. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Не удалось включить режим упреждающей журнализации (WAL). Ошибка: %1. - + Couldn't obtain query result. Не удалось получить результат запроса. - + WAL mode is probably unsupported due to filesystem limitations. Режим упреждающей журнализации, вероятно, не поддерживается из-за ограничений файловой системы. - + + + Cannot parse resume data: %1 + Не удаётся разобрать данные возобновления: %1 + + + + + Cannot parse torrent info: %1 + Не удаётся разобрать информацию о торренте: %1 + + + + Corrupted resume data: %1 + Повреждённые данные возобновления: %1 + + + + save_path is invalid + save_path не является действительным + + + Couldn't begin transaction. Error: %1 Не удалось начать транзакцию. Ошибка: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Не удалось сохранить метаданные торрента. Ошибка: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Не удалось сохранить данные возобновления торрента «%1». Ошибка: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Не удалось удалить данные возобновления торрента «%1». Ошибка: %2 - + Couldn't store torrents queue positions. Error: %1 Не удалось сохранить очерёдность торрентов. Ошибка: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Поддержка распределённой хеш-таблицы (DHT): %1 - - - - - - - - - + + + + + + + + + ON ВКЛ - - - - - - - - - + + + + + + + + + OFF ОТКЛ - - + + Local Peer Discovery support: %1 Поддержка обнаружения локальных пиров: %1 - + Restart is required to toggle Peer Exchange (PeX) support Необходим перезапуск для включения поддержки обмена пирами (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Ошибка возобновления торрента. Торрент: «%1». Причина: «%2» - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Не удалось возобновить торрент: обнаружен несогласованный ИД торрента. Торрент: «%1» - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Обнаружены несогласованные данные: категория отсутствует в файле настроек. Категория будет восстановлена, но её настройки будут сброшены до стандартных. Торрент: «%1». Категория: «%2» - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Обнаружены несогласованные данные: недопустимая категория. Торрент: «%1». Категория: «%2» - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Обнаружено несоответствие между путями сохранения восстановленной категории и текущим путём сохранения торрента. Торрент теперь переключён в ручной режим. Торрент: «%1». Категория: «%2» - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Обнаружены несогласованные данные: метка отсутствует в файле настроек. Метка будет восстановлена. Торрент: «%1». Метка: «%2» - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Обнаружены несогласованные данные: недопустимая метка. Торрент: «%1». Метка: «%2» - + System wake-up event detected. Re-announcing to all the trackers... Обнаружено событие пробуждения системы. Повторяется анонс всех трекеров… - + Peer ID: "%1" ИД пира: «%1» - + HTTP User-Agent: "%1" HTTP User-Agent: «%1» - + Peer Exchange (PeX) support: %1 Поддержка обмена пирами (PeX): %1 - - + + Anonymous mode: %1 Анонимный режим: %1 - - + + Encryption support: %1 Поддержка шифрования: %1 - - + + FORCED ПРИНУДИТЕЛЬНО - + Could not find GUID of network interface. Interface: "%1" Не удалось получить GUID сетевого интерфейса. Интерфейс: «%1» - + Trying to listen on the following list of IP addresses: "%1" Попытка прослушивания следующего списка IP-адресов: «%1» - + Torrent reached the share ratio limit. Торрент достиг ограничения рейтинга раздачи. - - - + Torrent: "%1". Торрент: «%1». - - - - Removed torrent. - Торрент удалён. - - - - - - Removed torrent and deleted its content. - Торрент удалён вместе с его содержимым. - - - - - - Torrent paused. - Торрент остановлен. - - - - - + Super seeding enabled. Суперсид включён. - + Torrent reached the seeding time limit. Торрент достиг ограничения времени раздачи. - + Torrent reached the inactive seeding time limit. Торрент достиг ограничения времени бездействия раздачи. - + Failed to load torrent. Reason: "%1" Не удалось загрузить торрент. Причина: «%1» - + I2P error. Message: "%1". Ошибка I2P. Сообщение: «%1». - + UPnP/NAT-PMP support: ON Поддержка UPnP/NAT-PMP: ВКЛ - + + Saving resume data completed. + Запись данных возобновления завершена. + + + + BitTorrent session successfully finished. + Сеанс БитТоррента успешно завершён. + + + + Session shutdown timed out. + Завершение сеанса вышло по времени. + + + + Removing torrent. + Удаляется торрент. + + + + Removing torrent and deleting its content. + Удаление торрента вместе с его содержимым. + + + + Torrent stopped. + Торрент остановлен. + + + + Torrent content removed. Torrent: "%1" + Содержимое торрента удалено. Торрент: «%1» + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Не удалось удалить содержимое торрента. Торрент: «%1». Ошибка: «%2» + + + + Torrent removed. Torrent: "%1" + Торрент удалён. Торрент: «%1» + + + + Merging of trackers is disabled + Объединение трекеров отключено + + + + Trackers cannot be merged because it is a private torrent + Трекеры нельзя объединить, так как торрент частный + + + + Trackers are merged from new source + Трекеры объединены из нового источника + + + UPnP/NAT-PMP support: OFF Поддержка UPnP/NAT-PMP: ОТКЛ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Не удалось экспортировать торрент. Торрент: «%1». Назначение: «%2». Причина: «%3» - + Aborted saving resume data. Number of outstanding torrents: %1 Прервано сохранение данных возобновления. Число невыполненных торрентов: %1 - + The configured network address is invalid. Address: "%1" Настроенный сетевой адрес неверен. Адрес: «%1» - - + + Failed to find the configured network address to listen on. Address: "%1" Не удалось обнаружить настроенный сетевой адрес для прослушивания. Адрес: «%1» - + The configured network interface is invalid. Interface: "%1" Настроенный сетевой интерфейс неверен. Интерфейс: «%1» - + + Tracker list updated + Список трекеров обновлён + + + + Failed to update tracker list. Reason: "%1" + Не удалось обновить список трекеров. Причина: «%1» + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Отклонён недопустимый адрес IP при применении списка запрещённых IP-адресов. IP: «%1» - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Трекер добавлен в торрент. Торрент: «%1». Трекер: «%2» - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Трекер удалён из торрента. Торрент: «%1». Трекер: «%2» - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Добавлен адрес сида в торрент. Торрент: «%1». Адрес: «%2» - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Удалён адрес сида из торрента. Торрент: «%1». Адрес: «%2» - - Torrent paused. Torrent: "%1" - Торрент остановлен. Торрент: «%1» + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Ошибка удаления файла частей. Торрент: «%1». Причина: «%2». - + Torrent resumed. Torrent: "%1" Торрент возобновлён. Торрент: «%1» - + Torrent download finished. Torrent: "%1" Загрузка торрента завершена. Торрент: «%1» - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Перемещение торрента отменено. Торрент: «%1». Источник: «%2». Назначение: «%3» - + + Duplicate torrent + Повтор торрента + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Обнаружена попытка добавления повторяющегося торрента. Существующий торрент: «%1». Инфо-хеш торрента: %2. Результат: %3 + + + + Torrent stopped. Torrent: "%1" + Торрент остановлен. Торрент: «%1» + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Не удалось поставить в очередь перемещение торрента. Торрент: «%1». Источник: «%2». Назначение: «%3». Причина: торрент в настоящее время перемещается в путь назначения - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Не удалось поставить в очередь перемещение торрента. Торрент: «%1». Источник: «%2». Назначение: «%3». Причина: оба пути указывают на одно и то же местоположение - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Перемещение торрента поставлено в очередь. Торрент: «%1». Источник: «%2». Назначение: «%3» - + Start moving torrent. Torrent: "%1". Destination: "%2" Началось перемещение торрента. Торрент: «%1». Назначение: «%2» - + Failed to save Categories configuration. File: "%1". Error: "%2" Не удалось сохранить настройки категорий. Файл: «%1». Ошибка: «%2» - + Failed to parse Categories configuration. File: "%1". Error: "%2" Не удалось разобрать настройки категорий. Файл: «%1». Ошибка: «%2» - + Successfully parsed the IP filter file. Number of rules applied: %1 Успешно разобран файл IP-фильтра. Всего применённых правил: %1 - + Failed to parse the IP filter file Не удалось разобрать файл IP-фильтра - + Restored torrent. Torrent: "%1" Торрент восстановлен. Торрент: «%1» - + Added new torrent. Torrent: "%1" Добавлен новый торрент. Торрент: «%1» - + Torrent errored. Torrent: "%1". Error: "%2" Сбой торрента. Торрент: «%1». Ошибка: «%2» - - - Removed torrent. Torrent: "%1" - Торрент удалён. Торрент: «%1» - - - - Removed torrent and deleted its content. Torrent: "%1" - Торрент удалён вместе с его содержимым. Торрент: «%1» - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + В торренте отсутствуют параметры SSL. Торрент: «%1». Сообщение: «%2» - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Предупреждение об ошибке файла. Торрент: «%1». Файл: «%2». Причина: «%3» - + UPnP/NAT-PMP port mapping failed. Message: "%1" Проброс портов UPnP/NAT-PMP не удался. Сообщение: «%1» - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Проброс портов UPnP/NAT-PMP удался. Сообщение: «%1» - + IP filter this peer was blocked. Reason: IP filter. IP-фильтр - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). порт отфильтрован (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - привилегированный порт (%1) + общеизвестный порт (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Соединение с адресом сида не удалось. Торрент: «%1». Адрес: «%2». Ошибка: «%3» + + + BitTorrent session encountered a serious error. Reason: "%1" Сеанс БитТоррента столкнулся с серьёзной ошибкой. Причина: «%1» - + SOCKS5 proxy error. Address: %1. Message: "%2". Ошибка прокси SOCKS5. Адрес: %1. Сообщение: «%2». - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. ограничения смешанного режима %1 - + Failed to load Categories. %1 Не удалось загрузить категории. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Не удалось загрузить настройки категорий: Файл: «%1». Причина: «неверный формат данных» - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Торрент удалён, но его содержимое и/или кусочный файл не удалось стереть. Торрент: «%1». Ошибка: «%2» - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 отключён - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 отключён - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Поиск адреса сида в DNS не удался. Торрент: «%1». Адрес: «%2». Ошибка: «%3» - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Получено сообщение об ошибке от адреса сида. Торрент: «%1». Адрес: «%2». Сообщение: «%3» - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Успешное прослушивание IP. IP: «%1». Порт: «%2/%3» - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Не удалось прослушать IP. IP: «%1». Порт: «%2/%3». Причина: «%4» - + Detected external IP. IP: "%1" Обнаружен внешний IP. IP: «%1» - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Ошибка: Внутренняя очередь оповещений заполнена, и оповещения были отброшены, вы можете заметить ухудшение быстродействия. Тип отброшенных оповещений: «%1». Сообщение: «%2» - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Перемещение торрента удалось. Торрент: «%1». Назначение: «%2» - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Не удалось переместить торрент. Торрент: «%1». Источник: «%2». Назначение: «%3». Причина: «%4» @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Не удалось запустить раздачу. BitTorrent::TorrentCreator - + Operation aborted Операция прервана - - + + Create new torrent file failed. Reason: %1. Создание нового торрента не удалось. Причина: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Не удалось добавить пир «%1» к торренту «%2». Причина: %3 - + Peer "%1" is added to torrent "%2" Пир «%1» добавлен к торренту «%2» - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Обнаружены неожиданные данные. Торрент: %1. Данные: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Не удалось записать в файл. Причина: «%1». Торрент теперь в режиме «только отдача». - + Download first and last piece first: %1, torrent: '%2' Загрузка крайних частей первыми: %1, торрент: «%2» - + On Вкл. - + Off Откл. - + Failed to reload torrent. Torrent: %1. Reason: %2 Ошибка перезагрузки торрента. Торрент: %1. Причина: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Создание данных возобновления не удалось. Торрент: «%1», ошибка: «%2» - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Не удалось восстановить торрент. Возможно, файлы перемещены, или хранилище недоступно. Торрент: «%1». Причина: «%2» - + Missing metadata Отсутствуют метаданные - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Переименование файла не удалось. Торрент: «%1», файл: «%2», причина: «%3» - + Performance alert: %1. More info: %2 Оповещение быстродействия: %1. Подробности: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Параметр «%1» должен соответствовать синтаксису «%1=%2» - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Параметр «%1» должен соответствовать синтаксису «%1=%2» - + Expected integer number in environment variable '%1', but got '%2' Ожидаемое целое число в переменных окружения — «%1», но получено «%2» - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Параметр «%1» должен соответствовать синтаксису «%1=%2» - - - + Expected %1 in environment variable '%2', but got '%3' Ожидалось «%1» в переменных окружения «%2», но получено «%3» - - + + %1 must specify a valid port (1 to 65535). %1 должен содержать допустимый порт (с 1 до 65535). - + Usage: Использование: - + [options] [(<filename> | <url>)...] - [параметры] [(<filename> | <url>)...] + [параметры] [(<filename> | <url>)…] - + Options: Параметры: - + Display program version and exit Отображать версию программы и выход - + Display this help message and exit Показать эту справку и выйти - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Параметр «%1» должен соответствовать синтаксису «%1=%2» + + + Confirm the legal notice Подтвердите официальное уведомление - - + + port порт - + Change the WebUI port Сменить порт веб-интерфейса - + Change the torrenting port Сменить порт торрентирования - + Disable splash screen Отключить заставку при запуске - + Run in daemon-mode (background) Работать в режиме службы (в фоне) - + dir Use appropriate short form or abbreviation of "directory" папка - + Store configuration files in <dir> Хранить файлы настроек в <папке> - - + + name имя - + Store configuration files in directories qBittorrent_<name> Хранить файлы настроек в папках qBittorrent_<имя> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Взломать файлы быстрого возобновления libtorrent и сделать пути файлов относительными к каталогу профиля - + files or URLs файлы или ссылки - + Download the torrents passed by the user Загрузить торренты, указанные пользователем - + Options when adding new torrents: Параметры добавления новых торрентов: - + path путь - + Torrent save path Путь сохранения торрентов - - Add torrents as started or paused + + Add torrents as running or stopped Добавлять торренты запущенными или остановленными - + Skip hash check Пропустить проверку хеша - + Assign torrents to category. If the category doesn't exist, it will be created. Назначать категории торрентам. Если категория не существует, то она будет создана. - + Download files in sequential order Загружать файлы последовательно - + Download first and last pieces first Загружать сперва крайние части - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Управление открытием окна «Добавить новый торрент» при добавлении торрента. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Значения параметров могут передаваться через переменные среды. Для параметра с названием «parameter-name» переменная среды — «QBT_PARAMETER_NAME» (в верхнем регистре, «-» заменяется на «_»). Для передачи значения флага укажите переменную равной «1» или «TRUE». Например, чтобы отключить заставку: - + Command line parameters take precedence over environment variables Параметры командной превалируют над переменными среды - + Help Справка @@ -2881,12 +3066,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Возобновить торренты + Start torrents + Запустить торренты - Pause torrents + Stop torrents Остановить торренты @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Править… - + Reset Сбросить + + + System + Система + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Не удалось загрузить таблицу стилей пользовательской темы. %1 - + Failed to load custom theme colors. %1 Не удалось загрузить цвета пользовательской темы. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Не удалось загрузить цвета стандартной темы. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Также безвозвратно удалить файлы + Also remove the content files + Также удалить файлы содержимого - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Уверены, что хотите удалить «%1» из списка торрентов? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Уверены, что хотите удалить эти %1 торрента(ов) из списка? - + Remove Удалить @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Загрузить торренты по ссылкам - + Add torrent links Добавьте ссылки на торренты - + One link per line (HTTP links, Magnet links and info-hashes are supported) Одна на строку (принимаются ссылки HTTP, магнит-ссылки и инфо-хеши) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Загрузить - + No URL entered Адрес не введён - + Please type at least one URL. Пожалуйста, введите хотя бы один адрес. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Ошибка разбора: Файл фильтра не является рабочим файлом PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Формат шаблона + + + + Plain text + Обычный текст + + + + Wildcards + Групповые символы + + + + Regular expression + Регулярные выражения + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Загрузка торрента… Источник: «%1» - - Trackers cannot be merged because it is a private torrent - Трекеры нельзя объединить, так как торрент частный - - - + Torrent is already present Торрент уже существует - + + Trackers cannot be merged because it is a private torrent. + Трекеры нельзя объединить, так как торрент частный. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Торрент «%1» уже есть в списке. Хотите объединить трекеры из нового источника? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. База данных повреждена: не найден раздел данных. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Размер HTTP-запроса превышает ограничение, сокет закрывается. Ограничение: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Неверный метод HTTP-запроса, закрытие сокета. IP: %1. Метод: «%2» - + Bad Http request, closing socket. IP: %1 Неверный HTTP-запрос, закрытие сокета. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Обзор… - + Reset Сбросить - + Select icon Выбрать значок - + Supported image files Поддерживаемые файлы изображений + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Управление питанием нашло подходящий интерфейс D-Bus. Интерфейс: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Ошибка управления питанием. Не был найден подходящий интерфейс D-Bus. + + + + + + Power management error. Action: %1. Error: %2 + Ошибка управления питанием. Действие: %1. Ошибка: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Непредвиденная ошибка управления питанием. Состояние: %1. Ошибка: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3333,7 +3580,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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. - qBittorrent — это программа для обмена файлами. При запуске торрента его данные становятся доступны другим пользователям посредством раздачи. Вы несёте персональную ответственность за все данные, которыми делитесь. + qBittorrent — это программа для обмена файлами. При работе торрента его данные становятся доступны другим пользователям посредством раздачи. Вы несёте персональную ответственность за все данные, которыми делитесь. @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 был запрещён. Причина: %2. - + %1 was banned 0.0.0.0 was banned %1 был запрещён @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 должен быть единственным параметром командной строки. - + Run application with -h option to read about command line parameters. Запустите программу с параметром -h, чтобы получить справку по параметрам командной строки. - + Bad command line Неверная командная строка - + Bad command line: Неверная командная строка: - + An unrecoverable error occurred. Произошла неустранимая ошибка. + - qBittorrent has encountered an unrecoverable error. qBittorrent столкнулся с неустранимой ошибкой. - + You cannot use %1: qBittorrent is already running. Нельзя использовать %1: qBittorrent уже запущен. - + Another qBittorrent instance is already running. - Другой экземпляр qBittorrent уже запущена. + Другой экземпляр qBittorrent уже запущен. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Найден неожиданный экземпляр qBittorrent. Выход из этого экземпляра. Идентификатор текущего процесса: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Ошибка при демонизации. Причина: «%1». Код ошибки: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Правка - + &Tools С&ервис - + &File &Файл - + &Help &Справка - + On Downloads &Done По &окончании загрузок - + &View &Вид - + &Options... &Настройки… - - &Resume - &Возобновить - - - + &Remove &Удалить - + Torrent &Creator &Создать торрент - - + + Alternative Speed Limits Особые ограничения скорости - + &Top Toolbar Пан&ель инструментов - + Display Top Toolbar Показывать панель инструментов - + Status &Bar Панель состоян&ия - + Filters Sidebar Боковая панель фильтров - + S&peed in Title Bar С&корость в заголовке - + Show Transfer Speed in Title Bar Отображать текущую скорость в заголовке окна - + &RSS Reader &Менеджер RSS - + Search &Engine &Поисковик - + L&ock qBittorrent &Блокировка qBittorrent - + Do&nate! - По&жертвовать! + Пожер&твовать! - + + Sh&utdown System + Вы&ключить компьютер + + + &Do nothing &Ничего не делать - + Close Window Закрыть окно - - R&esume All - Во&зобновить все - - - + Manage Cookies... Управление куки… - + Manage stored network cookies Управление сохранёнными сетевыми куки - + Normal Messages Обычные сообщения - + Information Messages Информационные сообщения - + Warning Messages Предупреждения - + Critical Messages - Критичные сообщения + Важные сообщения - + &Log &Журнал - + + Sta&rt + Зап&устить + + + + Sto&p + &Остановить + + + + R&esume Session + &Продолжить сеанс + + + + Pau&se Session + Приостано&вить сеанс + + + Set Global Speed Limits... Настроить скорость… - + Bottom of Queue В конец очереди - + Move to the bottom of the queue Поместить в конец очереди - + Top of Queue В начало очереди - + Move to the top of the queue Поместить в начало очереди - + Move Down Queue Вниз по очереди - + Move down in the queue Перенести вниз по очереди - + Move Up Queue Вверх по очереди - + Move up in the queue Перенести вверх по очереди - + &Exit qBittorrent &Выйти из qBittorrent - + &Suspend System Перейти в &ждущий режим - + &Hibernate System Перейти в &спящий режим - - S&hutdown System - Вы&ключить компьютер - - - + &Statistics С&татистика - + Check for Updates Проверить обновления - + Check for Program Updates Проверять наличие обновлений программы - + &About &О программе - - &Pause - &Остановить - - - - P&ause All - О&становить все - - - + &Add Torrent File... &Добавить торрент-файл… - + Open Открыть - + E&xit &Выход - + Open URL Открыть ссылку - + &Documentation &Документация - + Lock Блокировка - - - + + + Show Показать - + Check for program updates Проверять наличие обновлений программы - + Add Torrent &Link... Добавить &ссылку на торрент… - + If you like qBittorrent, please donate! Если вам нравится qBittorrent, пожалуйста, поддержите пожертвованием! - - + + Execution Log Журнал работы - + Clear the password Очищение пароля - + &Set Password З&адать пароль - + Preferences Настройки - + &Clear Password Очи&стить пароль - + Transfers Торренты - - + + qBittorrent is minimized to tray qBittorrent свёрнут в трей - - - + + + This behavior can be changed in the settings. You won't be reminded again. Данное поведение меняется в настройках. Больше это уведомление вы не увидите. - + Icons Only Только значки - + Text Only Только текст - + Text Alongside Icons Текст сбоку от значков - + Text Under Icons Текст под значками - + Follow System Style Использовать стиль системы - - + + UI lock password Пароль блокировки интерфейса - - + + Please type the UI lock password: Пожалуйста, введите пароль блокировки интерфейса: - + Are you sure you want to clear the password? Уверены, что хотите очистить пароль? - + Use regular expressions Использовать регулярные выражения - + + + Search Engine + Поисковик + + + + Search has failed + Поиск не удался + + + + Search has finished + Поиск завершён + + + Search Поиск - + Transfers (%1) Торренты (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent был обновлён и нуждается в перезапуске для применения изменений. - + qBittorrent is closed to tray qBittorrent закрыт в трей - + Some files are currently transferring. Некоторые файлы сейчас раздаются. - + Are you sure you want to quit qBittorrent? Уверены, что хотите выйти из qBittorrent? - + &No &Нет - + &Yes &Да - + &Always Yes &Всегда да - + Options saved. Настройки сохранены. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [ПРИОСТАНОВЛЕН] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [З: %1, О: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Не удалось загрузить установщик Python. Ошибка: %1. +Пожалуйста, установите его вручную. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Переименование установщика Python не удалось. Источник: «%1». Назначение: «%2». + + + + Python installation success. + Python успешно установлен. + + + + Exit code: %1. + Код выхода: %1. + + + + Reason: installer crashed. + Причина: сбой установщика. + + + + Python installation failed. + Установка Python не удалась. + + + + Launching Python installer. File: "%1". + Запускается установщик Python. Файл: «%1». + + + + Missing Python Runtime Отсутствует среда выполнения Python - + qBittorrent Update Available Обновление qBittorrent - + 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, но он, видимо, не установлен. - - + + Old Python Runtime Старая среда выполнения Python - + A new version is available. Доступна новая версия. - + Do you want to download %1? Хотите скачать %1? - + Open changelog... Открыть список изменений… - + No updates available. You are already using the latest version. Обновлений нет. Вы используете последнюю версию программы. - + &Check for Updates &Проверить обновления - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Ваша версия Python (%1) устарела. Минимальное требование: %2. Хотите установить более новую версию сейчас? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Ваша версия Python (%1) устарела. Пожалуйста, обновитесь до последней версии для работы поисковых плагинов. Минимальное требование: %2. - + + Paused + Остановлен + + + Checking for Updates... Проверка обновлений… - + Already checking for program updates in the background Проверка обновлений уже выполняется - + + Python installation in progress... + Выполняется установка Python… + + + + Failed to open Python installer. File: "%1". + Не удалось открыть установщик Python. Файл: «%1». + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Проверка хеша MD5 установщика Python не удалась. Файл: «%1». Полученный хеш: «%2». Ожидаемый хеш: «%3». + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Проверка хеша SHA3-512 установщика Python не удалась. Файл: «%1». Полученный хеш: «%2». Ожидаемый хеш: «%3». + + + Download error Ошибка при загрузке - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Не удалось загрузить установщик Python, причина: %1. -Пожалуйста, установите его вручную. - - - - + + Invalid password Недопустимый пароль - + Filter torrents... Фильтр торрентов… - + Filter by: Фильтровать: - + The password must be at least 3 characters long Пароль должен быть не менее 3 символов. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Открыть торрент-файлы - + Torrent Files Торрент-файлы @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Ошибка SSL, адрес: «%1», ошибки: «%2» + + + Ignoring SSL error, URL: "%1", errors: "%2" Игнорируется ошибка SSL, адрес: «%1», ошибки: «%2» @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Сбой соединения, неопознанный ответ: %1 - + Authentication failed, msg: %1 Ошибка аутентификации, сообщение: %1 - + <mail from> was rejected by server, msg: %1 <mail from> был отклонён сервером, сообщение: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> был отклонён сервером, сообщение: %1 - + <data> was rejected by server, msg: %1 <data> был отклонён сервером, сообщение: %1 - + Message was rejected by the server, error: %1 Сообщение было отклонено сервером, ошибка: %1 - + Both EHLO and HELO failed, msg: %1 - Обе команды EHLO и HELO не удались, сообщение %1 + Обе команды EHLO и HELO не удались, сообщение: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Похоже, SMTP-сервер не поддерживает ни один из поддерживаемых нами режимов аутентификации [CRAM-MD5|PLAIN|LOGIN], аутентификации пропускается с предположением, что она, скорее всего, завершится неудачей… Режимы авторизации сервера: %1 - + Email Notification Error: %1 Ошибка оповещения по эл. почте: %1 @@ -5604,299 +5928,283 @@ Please install it manually. БитТоррент - + RSS RSS-ленты - - Web UI - Веб-интерфейс - - - + Advanced Расширенные - + Customize UI Theme... Настроить тему оболочки… - + Transfer List Список торрентов - + Confirm when deleting torrents Подтверждать удаление торрентов - - Shows a confirmation dialog upon pausing/resuming all the torrents - Показывает окно подтверждения при остановке/возобновлении всех торрентов - - - - Confirm "Pause/Resume all" actions - Подтверждать действия «остановить/возобновить все» - - - + Use alternating row colors In table elements, every other row will have a grey background. Чередовать цвета строк - + Hide zero and infinity values Скрывать нулевые и бесконечные значения - + Always Всегда - - Paused torrents only - Только для остановленных - - - + Action on double-click Действие по двойному щелчку - + Downloading torrents: Загружаемые торренты: - - - Start / Stop Torrent - Запустить или остановить торрент - - - - + + Open destination folder Открыть папку назначения - - + + No action Нет действия - + Completed torrents: Завершённые торренты: - + Auto hide zero status filters - Автоматически скрывать фильтры состояния с нулём + Автоматически скрывать пустые фильтры состояния - + Desktop Рабочий стол - + Start qBittorrent on Windows start up Запускать qBittorrent вместе с Windows - + Show splash screen on start up Показывать заставку при запуске программы - + Confirmation on exit when torrents are active Подтверждать выход при наличии активных торрентов - + Confirmation on auto-exit when downloads finish Подтверждать автовыход по окончании загрузок - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - <html><head/><body><p>Чтобы сделать qBittorrent стандартной программой для файлов .torrent и магнит-ссылок,<br/> вы можете использовать окно <span style=" font-weight:600;">Приложения по умолчанию</span> из <span style=" font-weight:600;">Панели управления</span>.</p></body> + <html><head/><body><p>Вы можете назначить qBittorrent стандартным приложением для торрент-файлов и магнит-ссылок<br/> в разделе <span style=" font-weight:600;">Приложения по умолчанию</span> из <span style=" font-weight:600;">Панели управления</span>.</p></body></html> - + KiB КБ - + + Show free disk space in status bar + Показывать свободное место на диске в строке состояния + + + Torrent content layout: Состав содержимого торрента: - + Original Исходный - + Create subfolder Создавать подпапку - + Don't create subfolder Не создавать подпапку - + The torrent will be added to the top of the download queue Торрент будет добавлен в начало очереди загрузок - + Add to top of queue The torrent will be added to the top of the download queue Добавлять в начало очереди - + When duplicate torrent is being added При добавлении повторяющегося торрента - + Merge trackers to existing torrent Объединить трекеры в существующий торрент - + Keep unselected files in ".unwanted" folder - Хранить невыбранные файлы в папке «.unwanted» + Помещать невыбранные файлы в папку «.unwanted» - + Add... Добавить… - + Options.. Настройки… - + Remove Убрать - + Email notification &upon download completion Оповещать об окончании за&грузки по электронной почте - + + Send test email + Отправить проверочное письмо + + + + Run on torrent added: + Запускать при добавлении торрента: + + + + Run on torrent finished: + Запускать по завершении торрента: + + + Peer connection protocol: Протокол подключения пиров: - + Any Любой - + I2P (experimental) Сеть I2P (экспериментально) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Если включён «смешанный режим», торрентам I2P также разрешено получать пиров из других источников помимо трекера и подключаться к обычным IP-адресам без обеспечения анонимизации. Это может быть полезно, если пользователь не заинтересован в анонимизации I2P, но хочет подключаться к пирам I2P.</p></body></html> - - - + Mixed mode Смешанный режим - - Some options are incompatible with the chosen proxy type! - Некоторые параметры несовместимы с выбранным типом прокси-сервера! - - - + If checked, hostname lookups are done via the proxy Если отмечено, поиск имени хоста выполняется через прокси-сервер - + Perform hostname lookup via proxy Выполнять поиск имени хоста через прокси - + Use proxy for BitTorrent purposes Использовать прокси для работы БитТоррента - + RSS feeds will use proxy RSS-ленты будут использовать прокси - + Use proxy for RSS purposes Использовать прокси для работы RSS-лент - + Search engine, software updates or anything else will use proxy Поисковики, обновления программного обеспечения или прочее будут использовать прокси - + Use proxy for general purposes Использовать прокси для общей работы - + IP Fi&ltering &Фильтрация по IP - + Schedule &the use of alternative rate limits Запланировать работу особых огранич&ений скорости - + From: From start time С: - + To: To end time До: - + Find peers on the DHT network Искать пиров в сети DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption Отключить шифрование: подключаться только к пирам без шифрования протокола - + Allow encryption Разрешать шифрование - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Подробнее</a>) - + Maximum active checking torrents: Предел активных проверок торрентов: - + &Torrent Queueing Оч&ерёдность торрентов - + When total seeding time reaches По достижении общего времени раздачи - + When inactive seeding time reaches По достижении времени бездействия раздачи - - A&utomatically add these trackers to new downloads: - Авто&матически добавлять эти трекеры к новым загрузкам: - - - + RSS Reader Менеджер RSS - + Enable fetching RSS feeds Включить получение RSS-лент - + Feeds refresh interval: Период обновления лент: - + Same host request delay: - + Задержка повторного запроса хоста: - + Maximum number of articles per feed: Максимум статей для ленты: - - - + + + min minutes мин - + Seeding Limits Ограничения раздачи - - Pause torrent - Остановить торрент - - - + Remove torrent Удалить торрент - + Remove torrent and its files Удалить торрент и его файлы - + Enable super seeding for torrent Включить режим суперсида для торрента - + When ratio reaches По достижении рейтинга раздачи - + + Some functions are unavailable with the chosen proxy type! + Некоторые функции недоступны при выбранном типе прокси! + + + + Note: The password is saved unencrypted + Примечание: Пароль сохраняется в нешифрованном виде + + + + Stop torrent + Остановить торрент + + + + A&utomatically append these trackers to new downloads: + Авто&матически добавлять эти трекеры к новым загрузкам: + + + + Automatically append trackers from URL to new downloads: + Автоматически добавлять трекеры из URL-адреса к новым загрузкам: + + + + URL: + Адрес: + + + + Fetched trackers + Полученные трекеры + + + + Search UI + Интерфейс поиска + + + + Store opened tabs + Сохранить открытые вкладки + + + + Also store search results + Также сохранять результаты поиска + + + + History length + Размер истории + + + RSS Torrent Auto Downloader Автозагрузчик торрентов из RSS - + Enable auto downloading of RSS torrents Включить автозагрузку торрентов из RSS - + Edit auto downloading rules... Изменить правила автозагрузки… - + RSS Smart Episode Filter Умный фильтр эпизодов RSS - + Download REPACK/PROPER episodes Загружать эпизоды REPACK/PROPER - + Filters: Фильтры: - + Web User Interface (Remote control) Веб-интерфейс (удалённое управление) - + IP address: IP-адрес: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv «::» для любого IPv6-адреса, или «*» для обоих IPv4 и IPv6. - + Ban client after consecutive failures: - Блокировать клиента после серии сбоёв: + Запрет клиента при серии сбоёв равной: - + Never Никогда - + ban for: - заблокировать на: + запрещать на: - + Session timeout: Тайм-аут сеанса: - + Disabled Отключено - - Enable cookie Secure flag (requires HTTPS) - Включить защиту куки (требует HTTPS) - - - + Server domains: Домены сервера: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Использовать HTTPS вместо HTTP - + Bypass authentication for clients on localhost Пропускать аутентификацию клиентов с localhost - + Bypass authentication for clients in whitelisted IP subnets Пропускать аутентификацию клиентов из разрешённых подсетей - + IP subnet whitelist... Разрешённые подсети… - + + Use alternative WebUI + Использовать альтернативный веб-интерфейс + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Укажите IP-адреса (или подсети, напр., 0.0.0.0/24) обратных прокси-серверов, чтобы использовать перенаправленный адрес клиента (заголовок X-Forwarded-For). Используйте «;» для разделения нескольких записей. - + Upda&te my dynamic domain name О&бновлять динамическое доменное имя - + Minimize qBittorrent to notification area Сворачивать qBittorrent в область уведомлений - + + Search + Поиск + + + + WebUI + Веб-интерфейс + + + Interface Интерфейс - + Language: Язык: - + + Style: + Стиль: + + + + Color scheme: + Цветовая схема: + + + + Stopped torrents only + Только остановленные торренты + + + + + Start / stop torrent + Запустить или остановить торрент + + + + + Open torrent options dialog + Открыть диалог параметров торрента + + + Tray icon style: Стиль значка в трее: - - + + Normal - Обычный + Обычно - + File association Ассоциации файлов - + Use qBittorrent for .torrent files Использовать qBittorrent для торрент-файлов - + Use qBittorrent for magnet links Использовать qBittorrent для магнит-ссылок - + Check for program updates Проверять наличие обновлений программы - + Power Management Управление питанием - + + &Log Files + &Файлы журнала + + + Save path: Путь: - + Backup the log file after: Создавать резервную копию после: - + Delete backup logs older than: Удалять резервные копии старше: - + + Show external IP in status bar + Показать внешний IP в строке состояния + + + When adding a torrent При добавлении торрента - + Bring torrent dialog to the front Выводить окно добавления торрента поверх остальных окон - + + The torrent will be added to download list in a stopped state + Торрент будет добавлен в список загрузок в остановленном состоянии + + + Also delete .torrent files whose addition was cancelled Удалять торрент-файл, добавление которого было отменено - + Also when addition is cancelled Удалять торрент-файл при отмене добавления - + Warning! Data loss possible! Внимание! Возможна потеря данных! - + Saving Management Управление сохранением - + Default Torrent Management Mode: Режим управления торрентом по умолчанию: - + Manual Ручной - + Automatic Автоматический - + When Torrent Category changed: По смене категории торрента: - + Relocate torrent Переместить торрент - + Switch torrent to Manual Mode Перевести торрент в ручной режим - - + + Relocate affected torrents Переместить затронутые торренты - - + + Switch affected torrents to Manual Mode Перевести затронутые торренты в ручной режим - + Use Subcategories Использовать подкатегории - + Default Save Path: Путь сохранения по умолчанию: - + Copy .torrent files to: Копировать торрент-файлы в: - + Show &qBittorrent in notification area Показывать &qBittorrent в области уведомлений - - &Log file - &Файл журнала - - - + Display &torrent content and some options Показывать сод&ержимое и параметры торрента - + De&lete .torrent files afterwards У&далять торрент-файл по добавлении - + Copy .torrent files for finished downloads to: По завершении копировать торрент-файлы в: - + Pre-allocate disk space for all files Предвыделять место на диске для всех файлов - + Use custom UI Theme Использовать собственную тему оболочки - + UI Theme file: Файл темы: - + Changing Interface settings requires application restart Для применения настроек интерфейса потребуется перезапуск приложения - + Shows a confirmation dialog upon torrent deletion Показывает окно подтверждения при удалении торрента - - + + Preview file, otherwise open destination folder Просмотр файла или открыть папку назначения - - - Show torrent options - Показать параметры торрента - - - + Shows a confirmation dialog when exiting with active torrents Показывает окно подтверждения выхода при наличии активных торрентов - + When minimizing, the main window is closed and must be reopened from the systray icon При минимизации главное окно скрывается, его можно открыть с помощью значка в области уведомлений - + The systray icon will still be visible when closing the main window В области уведомлений будет отображаться значок после закрытия главного окна - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Закрывать qBittorrent в область уведомлений - + Monochrome (for dark theme) Одноцветный (для тёмной темы) - + Monochrome (for light theme) Одноцветный (для светлой темы) - + Inhibit system sleep when torrents are downloading Запретить спящий режим, когда торренты загружаются - + Inhibit system sleep when torrents are seeding Запретить спящий режим, когда торренты раздаются - + Creates an additional log file after the log file reaches the specified file size Создаёт добавочный файл журнала по достижении основным журналом указанного размера - + days Delete backup logs older than 10 days дн. - + months Delete backup logs older than 10 months мес. - + years Delete backup logs older than 10 years г./лет - + Log performance warnings Журналировать предупреждения быстродействия - - The torrent will be added to download list in a paused state - Торрент будет добавлен в список загрузок в остановленном состоянии - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Не начинать загрузку автоматически - + Whether the .torrent file should be deleted after adding it Удалять торрент-файл после успешного добавления в очередь - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Выделять место на диске перед загрузкой для снижения фрагментации. Полезно только для жёстких дисков. - + Append .!qB extension to incomplete files Добавлять расширение «.!qB» к неполным файлам - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Предлагать загрузку по любым файлам .torrent, найденным внутри уже загруженного торрента - + Enable recursive download dialog Включить окно рекурсивной загрузки - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Автоматический: настройки торрента подбираются (напр., путь сохранения) на основе его категории Ручной: настройки торрента (напр., путь сохранения) необходимо указать вручную - + When Default Save/Incomplete Path changed: По смене стандартного пути сохранения/неполных: - + When Category Save Path changed: По смене пути сохранения категории: - + Use Category paths in Manual Mode Использовать пути категорий в ручном режиме - + Resolve relative Save Path against appropriate Category path instead of Default one Разрешить относительный путь сохранения для соответствующего пути категории вместо пути по умолчанию - + Use icons from system theme Использовать значки из темы системы - + Window state on start up: Состояние окна при запуске: - + qBittorrent window state on start up Состояние окна qBittorrent при запуске - + Torrent stop condition: Условие остановки торрента: - - + + None Нет - - + + Metadata received Метаданные получены - - + + Files checked Файлы проверены - + Ask for merging trackers when torrent is being added manually Запрашивать объединение трекеров при ручном добавлении торрента - + Use another path for incomplete torrents: Отдельный путь для неполных торрентов: - + Automatically add torrents from: Автоматически добавлять торренты из: - + Excluded file names Исключать имена файлов - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6555,7 +6944,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Используйте новые строки для разделения нескольких записей. Можно использовать подстановочные знаки, как описано ниже. *: соответствует нулю и более любых символов. ?: соответствует любому отдельному символу. -[...]: наборы символов можно перечислить в квадратных скобках. +[…]: наборы символов можно перечислить в квадратных скобках. Примеры *.exe: фильтровать расширение файла «.exe». @@ -6564,770 +6953,811 @@ readme.txt: фильтровать точное имя файла. readme[0-9].txt: фильтровать «readme1.txt», «readme2.txt», но не «readme10.txt». - + Receiver Получатель - + To: To receiver Кому: - + SMTP server: Сервер SMTP: - + Sender Отправитель - + From: From sender От кого: - + This server requires a secure connection (SSL) Этот сервер требует защищённого соединения (SSL) - - + + Authentication Аутентификация - - - - + + + + Username: Имя пользователя: - - - - + + + + Password: Пароль: - + Run external program Запуск внешней программы - - Run on torrent added - Запускать при добавлении торрента - - - - Run on torrent finished - Запускать при завершении торрента - - - + Show console window Показать окно консоли - + TCP and μTP TCP и μTP - + Listening Port - Прослушиваемый порт + Порт прослушивания - + Port used for incoming connections: Порт для входящих соединений: - + Set to 0 to let your system pick an unused port Укажите «0» для подбора системой неиспользуемого порта - + Random Случайный - + Use UPnP / NAT-PMP port forwarding from my router Пробрасывать порты с помощью UPnP/NAT-PMP в вашем роутере - + Connections Limits Ограничения соединений - + Maximum number of connections per torrent: Максимум соединений на торрент: - + Global maximum number of connections: Общее ограничение числа соединений: - + Maximum number of upload slots per torrent: Максимум слотов отдачи на торрент: - + Global maximum number of upload slots: Общее ограничение слотов отдачи: - + Proxy Server Прокси-сервер - + Type: Тип: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Хост: - - - + + + Port: Порт: - + Otherwise, the proxy server is only used for tracker connections Иначе прокси-сервер используется только для соединения с трекерами - + Use proxy for peer connections Использовать прокси для соединения с пирами - + A&uthentication &Аутентификация - - Info: The password is saved unencrypted - Примечание: пароль хранится в нешифрованном виде - - - + Filter path (.dat, .p2p, .p2b): Путь фильтров (.dat, .p2p, .p2b): - + Reload the filter Перезагрузить фильтр - + Manually banned IP addresses... Вручную запрещённые IP-адреса… - + Apply to trackers Применять к трекерам - + Global Rate Limits Общие ограничения скорости - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s КБ/с - - + + Upload: Отдача: - - + + Download: Загрузка: - + Alternative Rate Limits Особые ограничения скорости - + Start time Время начала - + End time Время завершения - + When: Когда: - + Every day Ежедневно - + Weekdays Будни - + Weekends Выходные - + Rate Limits Settings Настройки ограничений скорости - + Apply rate limit to peers on LAN Применять ограничения скорости к локальным пирам - + Apply rate limit to transport overhead Применять ограничения скорости к служебному трафику - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Если включён «смешанный режим», торрентам I2P также разрешено получать пиров из других источников помимо трекера и подключаться к обычным IP-адресам без обеспечения анонимизации. Это может быть полезно, если пользователь не заинтересован в анонимизации I2P, но хочет подключаться к пирам I2P.</p></body></html> + + + Apply rate limit to µTP protocol Применять ограничения скорости к протоколу µTP - + Privacy Конфиденциальность - + Enable DHT (decentralized network) to find more peers Включить DHT (децентрализованную сеть) для поиска пиров - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - Обмен пирами с совместимыми клиентами БитТоррент (µTorrent, Vuze, …) + Обмен пирами с совместимыми клиентами БитТоррент (µTorrent, Vuze…) - + Enable Peer Exchange (PeX) to find more peers Включить обмен пирами (PeX) - + Look for peers on your local network Искать пиров в вашей локальной сети - + Enable Local Peer Discovery to find more peers Включить обнаружение локальных пиров - + Encryption mode: Режим шифрования: - + Require encryption Требовать шифрование - + Disable encryption Отключить шифрование - + Enable when using a proxy or a VPN connection Рекомендуется использовать при подключении через прокси или VPN - + Enable anonymous mode Включить анонимный режим - + Maximum active downloads: Максимум активных загрузок: - + Maximum active uploads: Максимум активных отдач: - + Maximum active torrents: Максимум активных торрентов: - + Do not count slow torrents in these limits Не учитывать медленные торренты в этих ограничениях - + Upload rate threshold: Порог скорости отдачи: - + Download rate threshold: Порог скорости загрузки: - - - - + + + + sec seconds с - + Torrent inactivity timer: Время бездействия торрента: - + then затем - + Use UPnP / NAT-PMP to forward the port from my router Использовать UPnP/NAT-PMP для проброса порта через ваш роутер - + Certificate: Сертификат: - + Key: Ключ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Сведения о сертификатах</a> - + Change current password Сменить текущий пароль - - Use alternative Web UI - Использовать альтернативный веб-интерфейс - - - + Files location: Расположение файлов: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Список альтернативных веб-интерфейсов</a> + + + Security Безопасность - + Enable clickjacking protection Включить защиту от кликджекинга - + Enable Cross-Site Request Forgery (CSRF) protection Включить защиту от межсайтовой подделки запроса (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Включить защиту куки (требует HTTPS или соединения с локальным хостом) + + + Enable Host header validation Включить проверку заголовка хоста - + Add custom HTTP headers Добавить пользовательские заголовки HTTP - + Header: value pairs, one per line Заголовок: одна пара значений на строку - + Enable reverse proxy support Включить поддержку обратного прокси-сервера - + Trusted proxies list: Список доверенных прокси-серверов: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Примеры настройки обратного прокси</a> + + + Service: Служба: - + Register Регистрация - + Domain name: Доменное имя: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! После включения этих настроек вы можете <strong>безвозвратно потерять</strong> свои торрент-файлы! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog По включении второго параметра («Удалять торрент-файл при отмене добавления») торрент-файл <strong>будет удалён,</strong> даже если вы нажмёте «<strong>Отмена</strong>» в окне «Добавить торрент» - + Select qBittorrent UI Theme file Выбор файла оболочки qBittorrent - + Choose Alternative UI files location Использовать расположение файлов альтернативного интерфейса - + Supported parameters (case sensitive): Поддерживаемые параметры (с учётом регистра): - + Minimized Свёрнуто - + Hidden Спрятано - + Disabled due to failed to detect system tray presence Отключено из-за сбоя при обнаружении наличия трея - + No stop condition is set. Без условия остановки. - + Torrent will stop after metadata is received. Торрент остановится по получении метаданных. - Torrents that have metadata initially aren't affected. - Торренты, изначально содержащие метаданные, не затрагиваются. - - - + Torrent will stop after files are initially checked. Торрент остановится после первичной проверки файлов. - + This will also download metadata if it wasn't there initially. Это также позволит загрузить метаданные, если их изначально там не было. - + %N: Torrent name %N: Имя торрента - + %L: Category %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: Текущий трекер - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Подсказка: включите параметр в кавычки для защиты от обрезки на пробелах (пример, "%N") - + + Test email + Проверить эл. почту + + + + Attempted to send email. Check your inbox to confirm success + Попытка отправить электронное письмо. Проверьте свой почтовый ящик для подтверждения успешности + + + (None) (Нет) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Торрент будет считаться медленным, если его скорость загрузки или отдачи будет меньше указанных значений на «Время бездействия торрента» - + Certificate Сертификат - + Select certificate Выбрать сертификат - + Private key Закрытый ключ - + Select private key Выбрать закрытый ключ - + WebUI configuration failed. Reason: %1 - Конфигурация веб-интерфейса не удаалась. Причина: %1 + Конфигурация веб-интерфейса не удалась. Причина: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 лучше совместим с тёмным режимом Windows + + + + System + System default Qt style + Система + + + + Let Qt decide the style for this system + Разрешить Qt подбирать стиль для этой системы + + + + Dark + Dark color scheme + Тёмная + + + + Light + Light color scheme + Светлая + + + + System + System color scheme + Система + + + Select folder to monitor Выберите папку для наблюдения - + Adding entry failed Добавление записи не удалось - + The WebUI username must be at least 3 characters long. Имя пользователя веб-интерфейса должно быть не менее 3 символов. - + The WebUI password must be at least 6 characters long. Пароль веб-интерфейса должен быть не менее 6 символов. - + Location Error Ошибка расположения - - + + Choose export directory Выберите папку для экспорта - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Если эти параметры включены, qBittorrent будет <strong>удалять</strong> торрент-файлы после их успешного (первый параметр) или неуспешного (второй параметр) добавления в очередь загрузок. Это применяется <strong>не только для</strong> файлов, добавленных через меню «Добавить торрент», но и для открытых через <strong>файловую ассоциацию</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Файл темы оболочки qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Метки (разделяются запятыми) - + %I: Info hash v1 (or '-' if unavailable) %I: Инфо-хеш v1 (или «-» если недоступно) - + %J: Info hash v2 (or '-' if unavailable) %J: Инфо-хеш v2 (или «-» если недоступно) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ИД торрента (инфо-хеш sha-1 для торрента v1 или усечённый инфо-хеш sha-256 для торрента v2/гибрида) - - - + + + Choose a save directory Выберите папку сохранения - + Torrents that have metadata initially will be added as stopped. - + Торренты, изначально содержащие метаданные, будут добавлены в остановленном состоянии. - + Choose an IP filter file Укажите файл IP-фильтра - + All supported filters Все поддерживаемые фильтры - + The alternative WebUI files location cannot be blank. Расположение файлов альтернативного веб-интерфейса не может быть пустым. - + 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 правил. - + Preferences Настройки - + Time Error Ошибка времени - + The start time and the end time can't be the same. Время начала и завершения не может быть одинаковым. - - + + Length Error Ошибка размера @@ -7335,241 +7765,246 @@ readme[0-9].txt: фильтровать «readme1.txt», «readme2.txt», но PeerInfo - + Unknown Неизвестно - + Interested (local) and choked (peer) Заинтересован (клиент) и занят (пир) - + Interested (local) and unchoked (peer) Заинтересован (клиент) и не занят (пир) - + Interested (peer) and choked (local) Заинтересован (пир) и занят (клиент) - + Interested (peer) and unchoked (local) Заинтересован (пир) и не занят (клиент) - + Not interested (local) and unchoked (peer) Не заинтересован (клиент) и не занят (пир) - + Not interested (peer) and unchoked (local) Не заинтересован (пир) и не занят (клиент) - + Optimistic unchoke Скоро начнётся скачивание - + Peer snubbed Уснувший пир - + Incoming connection Входящее соединение - + Peer from DHT Пир из DHT - + Peer from PEX Пир из PEX - + Peer from LSD Пир из LSD - + Encrypted traffic Шифрованный трафик - + Encrypted handshake Шифрованное рукопожатие + + + Peer is using NAT hole punching + Пир использует пробивку отверстий NAT + PeerListWidget - + Country/Region Страна/регион - + IP/Address IP/адрес - + Port Порт - + Flags Флаги - + Connection Соединение - + Client i.e.: Client application Клиент - + Peer ID Client i.e.: Client resolved from Peer ID ИД клиента - + 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. Годность - + Files i.e. files that are being downloaded right now Файлы - + Column visibility Отображение столбцов - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого - + Add peers... Добавить пиров… - - + + Adding peers Добавление пиров - + Some peers cannot be added. Check the Log for details. Некоторых пиров нельзя добавить. Смотрите журнал для подробностей. - + Peers are added to this torrent. Пиры добавлены к этому торренту. - - + + Ban peer permanently Запретить пира навсегда - + Cannot add peers to a private torrent Нельзя добавить пиров в частный торрент - + Cannot add peers when the torrent is checking Невозможно добавить пиров, пока торрент проверяется - + Cannot add peers when the torrent is queued Невозможно добавить пиров, пока торрент в очереди - + No peer was selected Нет выбранных пиров - + Are you sure you want to permanently ban the selected peers? Уверены, что хотите навсегда заблокировать выбранных пиров? - + Peer "%1" is manually banned Пир «%1» заблокирован вручную - + N/A Н/Д - + Copy IP:port Копировать IP:порт @@ -7587,7 +8022,7 @@ readme[0-9].txt: фильтровать «readme1.txt», «readme2.txt», но Список пиров для добавления (один IP на строку): - + Format: IPv4:port / [IPv6]:port Формат: IPv4:порт / [IPv6]:порт @@ -7628,27 +8063,27 @@ readme[0-9].txt: фильтровать «readme1.txt», «readme2.txt», но PiecesBar - + Files in this piece: Файлы в этой части: - + File in this piece: Файл в этой части: - + File in these pieces: Файл в этих частях: - + Wait until metadata become available to see detailed information Дождитесь пока метаданные станут доступны, чтобы увидеть подробности - + Hold Shift key for detailed information Зажмите Shift для подробностей @@ -7661,58 +8096,58 @@ readme[0-9].txt: фильтровать «readme1.txt», «readme2.txt», но Поисковые плагины - + Installed search plugins: Установленные поисковые плагины: - + Name Имя - + Version Версия - + Url Адрес - - + + Enabled Включён - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Предупреждение: Обязательно соблюдайте законы об авторских правах вашей страны при загрузке торрентов из этих поисковых систем. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Вы можете получить новые поисковые плагины здесь: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Установить новый - + Check for updates Проверить обновления - + Close Закрыть - + Uninstall Удалить @@ -7833,98 +8268,65 @@ Those plugins were disabled. Источник плагина - + Search plugin source: Источник поискового плагина: - + Local file Локальный файл - + Web link Веб-ссылка - - PowerManagement - - - qBittorrent is active - qBittorrent активен - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Управление питанием нашло подходящий интерфейс D-Bus. Интерфейс: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Ошибка управления питанием. Не найден подходящий интерфейс D-Bus. - - - - - - Power management error. Action: %1. Error: %2 - Ошибка управления питанием. Действие: %1. Ошибка: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Непредвиденная ошибка управления питанием. Состояние: %1. Ошибка: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Следующие файлы из торрента «%1» поддерживают просмотр, пожалуйста, выберите один из них: - + Preview Просмотр - + Name Имя - + Size Размер - + Progress Прогресс - + Preview impossible Просмотр невозможен - + Sorry, we can't preview this file: "%1". Извините, просмотр этого файла невозможен: «%1». - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого @@ -7937,27 +8339,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Путь не существует - + Path does not point to a directory Путь не указывает на каталог - + Path does not point to a file Путь не указывает на файл - + Don't have read permission to path Отсутствуют права для чтения пути - + Don't have write permission to path Отсутствуют права для записи в путь @@ -7998,12 +8400,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Загружено: - + Availability: Доступно: @@ -8018,53 +8420,53 @@ Those plugins were disabled. Торрент - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Время работы: - + ETA: Расчётное время: - + Uploaded: Отдано: - + Seeds: Сиды: - + Download Speed: Загрузка: - + Upload Speed: Отдача: - + Peers: Пиры: - + Download Limit: Порог загрузки: - + Upload Limit: Порог отдачи: - + Wasted: Потеряно: @@ -8074,193 +8476,220 @@ Those plugins were disabled. Соединения: - + Information Информация - + Info Hash v1: Инфо-хеш v1: - + Info Hash v2: Инфо-хеш v2: - + Comment: Комментарий: - + Select All Выбрать все - + Select None - Отменить выбор + Снять выбор - + Share Ratio: Рейтинг: - + Reannounce In: Следующий анонс: - + Last Seen Complete: Замечен целиком: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Рейтинг / время работы (в месяцах), показывает востребованность торрента + + + + Popularity: + Спрос: + + + Total Size: Общий размер: - + Pieces: Части: - + Created By: Создан в: - + Added On: - Добавлен: + Дата добавления: - + Completed On: - Завершён: + Дата завершения: - + Created On: Дата создания: - + + Private: + Частный: + + + Save Path: Путь сохранения: - + Never Никогда - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 × %2 (есть %3) - - + + %1 (%2 this session) %1 (%2 за сеанс) - - + + + N/A Н/Д - + + Yes + Да + + + + No + Нет + + + %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) - - New Web seed - Новый веб-сид + + Add web seed + Add HTTP source + Добавить веб-сида - - Remove Web seed - Удалить веб-сида + + Add web seed: + Добавить веб-сида: - - Copy Web seed URL - Копировать адрес веб-сида + + + This web seed is already in the list. + Этот веб-сид уже есть в списке. - - Edit Web seed URL - Править адрес веб-сида - - - + Filter files... Фильтр файлов… - + + Add web seed... + Добавить веб-сида… + + + + Remove web seed + Удалить веб-сида + + + + Copy web seed URL + Копировать адрес веб-сида + + + + Edit web seed URL... + Изменить адрес веб-сида + + + Speed graphs are disabled Графики скорости отключены - + You can enable it in Advanced Options Вы можете включить их в расширенных параметрах - - New URL seed - New HTTP source - Новый адрес сида - - - - New URL seed: - Новый адрес сида: - - - - - This URL seed is already in the list. - Этот адрес сида уже есть в списке. - - - + Web seed editing Правка веб-сида - + Web seed URL: Адрес веб-сида: @@ -8268,33 +8697,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Неверный формат данных. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Не удалось сохранить данные Автозагрузчика RSS из %1. Ошибка: %2 - + Invalid data format Неверный формат данных - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-статья «%1» принята правилом «%2». Попытка добавить торрент… - + Failed to read RSS AutoDownloader rules. %1 Не удалось прочесть правила Автозагрузчика RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Не удалось загрузить правила Автозагрузчика RSS. Причина: %1 @@ -8302,22 +8731,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Не удалось загрузить RSS-ленту с «%1». Причина: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-лента с «%1» обновлена. Добавлено %2 новых статей. - + Failed to parse RSS feed at '%1'. Reason: %2 Не удалось разобрать RSS-ленту с «%1». Причина: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-лента с «%1» успешно загружена. Запущен её разбор. @@ -8353,12 +8782,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Неверная RSS-лента. - + %1 (line: %2, column: %3, offset: %4). %1 (строка: %2, столбец: %3, смещение: %4). @@ -8366,103 +8795,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Не удалось сохранить настройки сеанса RSS. Файл: «%1». Ошибка: «%2» - + Couldn't save RSS session data. File: "%1". Error: "%2" Не удалось сохранить данные сеанса RSS. Файл: «%1». Ошибка: «%2» - - + + RSS feed with given URL already exists: %1. RSS-лента с указанным адресом уже существует: %1. - + Feed doesn't exist: %1. Лента не существует: %1. - + Cannot move root folder. Невозможно переместить корневую папку. - - + + Item doesn't exist: %1. Элемент не существует: %1. - - Couldn't move folder into itself. - Не удалось переместить папку в саму себя. + + Can't move a folder into itself or its subfolders. + Нельзя переместить папку в саму себя или в её вложенные папки. - + Cannot delete root folder. Невозможно удалить корневую папку. - + Failed to read RSS session data. %1 Не удалось прочесть данные сеанса RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Не удалось разобрать данные сеанса RSS. Файл: «%1». Ошибка: «%2» - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Не удалось загрузить данные сеанса RSS. Файл: «%1». Ошибка: «неверный формат данных». - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Не удалось загрузить RSS-ленту. Лента: «%1». Причина: Требуется адрес. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Не удалось загрузить RSS-ленту. Лента: «%1». Причина: Неверный UID. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Обнаружен повтор RSS-ленты. UID: «%1». Ошибка: Похоже, что конфигурация повреждена. - + Couldn't load RSS item. Item: "%1". Invalid data format. Не удалось загрузить элемент RSS. Элемент: «%1». Неверный формат данных. - + Corrupted RSS list, not loading it. Повреждён список RSS, он не будет загружен. - + Incorrect RSS Item path: %1. Неверный путь элемента RSS: %1. - + RSS item with given path already exists: %1. RSS-лента с указанным путём уже существует: %1. - + Parent folder doesn't exist: %1. Родительская папка не существует: %1. + + RSSController + + + Invalid 'refreshInterval' value + Недействительное значение «refreshInterval» + + + + Feed doesn't exist: %1. + Лента не существует: %1. + + + + RSSFeedDialog + + + RSS Feed Options + Параметры RSS-ленты + + + + URL: + Адрес: + + + + Refresh interval: + Период обновления: + + + + sec + с + + + + Default + Стандартно + + RSSWidget @@ -8482,8 +8952,8 @@ Those plugins were disabled. - - + + Mark items read Отметить как прочитанные @@ -8508,132 +8978,115 @@ Those plugins were disabled. Торренты: (двойной щелчок для загрузки) - - + + Delete Удалить - + Rename... Переименовать… - + Rename Переименовать - - + + Update Обновить - + New subscription... Новая подписка… - - + + Update all feeds Обновить все ленты - + Download torrent Загрузить торрент - + Open news URL Открыть новостную ссылку - + Copy feed URL Копировать адрес ленты - + New folder... Новая папка… - - Edit feed URL... - Править адрес ленты… + + Feed options... + Параметры ленты… - - Edit feed URL - Править адрес ленты - - - + Please choose a folder name Пожалуйста, выберите имя папки - + Folder name: Имя папки: - + New folder Новая папка - - - Please type a RSS feed URL - Пожалуйста, введите адрес RSS-ленты - - - - - Feed URL: - Адрес ленты: - - - + 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: Новое имя ленты: - + Rename failed Переименование не удалось - + Date: Дата: - + Feed: Лента: - + Author: Автор: @@ -8641,38 +9094,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Требуется установленный Python для использования поисковика. - + Unable to create more than %1 concurrent searches. Невозможно создать более %1 одновременных поисковых запросов. - - + + Offset is out of range Смещение вне диапазона - + All plugins are already up to date. Все плагины имеют последние версии. - + Updating %1 plugins Обновляются %1 плагина(ов) - + Updating plugin %1 Обновляется плагин %1 - + Failed to check for plugin updates: %1 Не удалось проверить обновления для плагинов: %1 @@ -8747,132 +9200,142 @@ Those plugins were disabled. Размер: - + 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 - Поисковик - - - + Filter search results... Фильтр результатов поиска… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Результаты (показано <i>%1</i> из <i>%2</i>): - + Torrent names only В именах торрентов - + Everywhere Везде - + Use regular expressions Использовать регулярные выражения - + Open download window Открыть окно загрузки - + Download Загрузить - + Open description page Открыть страницу описания - + Copy Копировать - + Name Имя - + Download link Ссылку загрузки - + Description page URL Адрес страницы описания - + Searching... - Выполняется поиск… + Идёт поиск… - + Search has finished Поиск завершён - + Search aborted Поиск прерван - + An error occurred during search... Во время поиска произошла ошибка… - + Search returned no results Поиск не дал результатов - + + Engine + Движок + + + + Engine URL + Адрес движка + + + + Published On + Дата публикации + + + Column visibility Отображение столбцов - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого @@ -8880,104 +9343,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Неизвестный формат файла поискового плагина. - + Plugin already at version %1, which is greater than %2 Плагин уже версии %1, которая выше, чем %2 - + A more recent version of this plugin is already installed. Уже установлена самая последняя версия этого плагина. - + Plugin %1 is not supported. Плагин %1 не поддерживается. - - + + Plugin is not supported. Плагин не поддерживается. - + Plugin %1 has been successfully updated. Плагин %1 был успешно обновлён. - + All categories Все категории - + Movies Фильмы - + TV shows Телепередачи - + Music Музыка - + Games Игры - + Anime Аниме - + Software Программы - + Pictures Изображения - + Books Книги - + Update server is temporarily unavailable. %1 Сервер обновлений временно недоступен. %1 - - + + Failed to download the plugin file. %1 Не удалось загрузить файл плагина. %1 - + Plugin "%1" is outdated, updating to version %2 Плагин «%1» устарел, обновление до версии %2 - + Incorrect update info received for %1 out of %2 plugins. Получена неверная информация об обновлении для %1 из %2 плагинов. - + Search plugin '%1' contains invalid version string ('%2') Поисковый плагин «%1» содержит недопустимую строку версии («%2») @@ -8987,114 +9450,145 @@ Those plugins were disabled. - - - - Search Поиск - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Отсутствуют установленные поисковые плагины. Нажмите на кнопку «Поисковые плагины…» в правой нижней части окна для их установки. - + Search plugins... Поисковые плагины… - + A phrase to search for. Фраза для поиска. - + Spaces in a search term may be protected by double quotes. Пробелы в поисковом запросе можно защитить двойными кавычками. - + Example: Search phrase example Пример: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b> для поиска <b>foo bar</b> - + All plugins Все плагины - + Only enabled Только включённые - + + + Invalid data format. + Неверный формат данных. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b> для поиска <b>foo</b> и <b>bar</b> - + + Refresh + Обновить + + + Close tab Закрыть вкладку - + Close all tabs Закрыть все вкладки - + Select... Выбрать… - - - + + Search Engine Поисковик - + + Please install Python to use the Search Engine. Пожалуйста, установите Python для использования поисковика. - + Empty search pattern Пустой шаблон поиска - + Please type a search pattern first Пожалуйста, задайте сначала шаблон поиска - + + Stop Стоп + + + SearchWidget::DataStorage - - Search has finished - Поиск завершён + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Не удалось загрузить сохранённое состояние интерфейса поиска. Файл: «%1». Ошибка: «%2» - - Search has failed - Поиск не удался + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Не удалось загрузить сохранённые результаты поиска. Вкладка: «%1». Файл: «%2». Ошибка: «%3» + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Не удалось сохранить состояние интерфейса поиска. Файл: «%1». Ошибка: «%2» + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Не удалось сохранить результаты поиска. Вкладка: «%1». Файл: «%2». Ошибка: «%3» + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Не удалось загрузить историю интерфейса поиска. Файл: «%1». Ошибка: «%2» + + + + Failed to save search history. File: "%1". Error: "%2" + Не удалось сохранить историю поиска. Файл: «%1». Ошибка: «%2» @@ -9175,7 +9669,7 @@ Click the "Search plugins..." button at the bottom right of the window The computer is going to enter hibernation mode. - Компьютер перейдёт в спящий режим. + Компьютер готовится к переходу в спящий режим. @@ -9207,34 +9701,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Отдача: - - - + + + - - - + + + KiB/s КБ/с - - + + Download: Загрузка: - + Alternative speed limits Особые ограничения скорости @@ -9426,32 +9920,32 @@ Click the "Search plugins..." button at the bottom right of the window Среднее время в очереди: - + Connected peers: Подключённые пиры: - + All-time share ratio: Общий рейтинг раздачи: - + All-time download: Всего загружено: - + Session waste: Потеряно за сеанс: - + All-time upload: Всего отдано: - + Total buffer size: Общий размер буфера: @@ -9466,12 +9960,12 @@ Click the "Search plugins..." button at the bottom right of the window Задачи ввода-вывода в очереди: - + Write cache overload: Перегрузка кэша записи: - + Read cache overload: Перегрузка кэша чтения: @@ -9490,53 +9984,79 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Состояние связи: - - + + No direct connections. This may indicate network configuration problems. Нет прямых соединений. Причиной этому могут быть проблемы в настройках сети. - - + + Free space: N/A + Свободное место: Н/Д + + + + + External IP: N/A + Внешний IP: Н/Д + + + + DHT: %1 nodes Узлы DHT: %1 - + qBittorrent needs to be restarted! qBittorrent надо перезапустить! - - - + + + Connection Status: Состояние связи: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Отключён. Обычно это означает, что qBittorrent не смог прослушать выбранный порт для входящих соединений. - + Online В сети - + + Free space: + Свободное место: + + + + External IPs: %1, %2 + Внешние IP: %1, %2 + + + + External IP: %1%2 + Внешний IP: %1%2 + + + Click to switch to alternative speed limits Щелчок для переключения на особые ограничения скорости - + Click to switch to regular speed limits - Щёлчок для переключения на общие ограничения скорости + Щелчок для переключения на общие ограничения скорости @@ -9564,12 +10084,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Возобновлены (0) + Running (0) + Запущены (0) - Paused (0) + Stopped (0) Остановлены (0) @@ -9632,36 +10152,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Завершены (%1) + + + Running (%1) + Запущены (%1) + - Paused (%1) + Stopped (%1) Остановлены (%1) + + + Start torrents + Запустить торренты + + + + Stop torrents + Остановить торренты + Moving (%1) Перемещаются (%1) - - - Resume torrents - Возобновить торренты - - - - Pause torrents - Остановить торренты - Remove torrents Удалить торренты - - - Resumed (%1) - Возобновлены (%1) - Active (%1) @@ -9733,31 +10253,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Удалить пустые метки - - - Resume torrents - Возобновить торренты - - - - Pause torrents - Остановить торренты - Remove torrents Удалить торренты - - New Tag - Новая метка + + Start torrents + Запустить торренты + + + + Stop torrents + Остановить торренты Tag: Метка: + + + Add tag + Добавить метку + Invalid tag name @@ -9904,32 +10424,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Имя - + Progress Прогресс - + Download Priority Приоритет загрузки - + Remaining - Осталось байт + Осталось - + Availability Доступно - + Total Size Общий размер @@ -9974,98 +10494,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Ошибка переименования - + Renaming Переименование - + New name: Новое имя: - + Column visibility Отображение столбцов - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого - + Open Открыть - + Open containing folder Открыть папку размещения - + Rename... Переименовать… - + Priority Приоритет - - + + Do not download Не загружать - + Normal Обычный - + High Высокий - + Maximum Максимальный - + By shown file order В показанном порядке - + Normal priority Обычный приоритет - + High priority Высокий приоритет - + Maximum priority Максимальный приоритет - + Priority by shown file order В показанном порядке @@ -10073,19 +10593,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Слишком много активных задач - + Torrent creation is still unfinished. - + Создание торрента ещё не завершено. - + Torrent creation failed. - + Не удалось создать торрент. @@ -10112,13 +10632,13 @@ Please choose a different name and try again. - + Select file Выбрать файл - + Select folder Выбрать папку @@ -10165,12 +10685,12 @@ Please choose a different name and try again. Ignore share ratio limits for this torrent - Игнорировать ограничения рейтинга для этого торрента + Не учитывать ограничения рейтинга для этого торрента Optimize alignment - Оптимизировать сортировку файлов + Оптимизировать выравнивание @@ -10193,87 +10713,83 @@ Please choose a different name and try again. Поля - + You can separate tracker tiers / groups with an empty line. Используйте пустые строки для разделения уровней / групп трекеров. - + Web seed URLs: Адреса веб-сидов: - + Tracker URLs: Адреса трекеров: - + Comments: Комментарии: - + Source: Источник: - + Progress: Прогресс: - + Create Torrent Создать торрент - - + + Torrent creation failed Не удалось создать торрент - + Reason: Path to file/folder is not readable. Причина: Путь к файлу или папке недоступен для чтения. - + Select where to save the new torrent Выберите папку для сохранения нового торрента - + Torrent Files (*.torrent) Торрент-файлы (*.torrent) - Reason: %1 - Причина: %1 - - - + Add torrent to transfer list failed. Не удалось добавить торрент в список. - + Reason: "%1" Причина: «%1» - + Add torrent failed Добавление торрента не удалось - + Torrent creator Создать торрент - + Torrent created: Торрент создан: @@ -10281,32 +10797,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Не удалось загрузить настройки наблюдаемых папок. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Не удалось разобрать настройки наблюдаемых папок из %1. Ошибка: «%2» - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Не удалось загрузить настройки наблюдаемых папок из %1. Ошибка: «неверный формат данных». - + Couldn't store Watched Folders configuration to %1. Error: %2 Не удалось сохранить настройки наблюдаемых папок в %1. Ошибка: %2 - + Watched folder Path cannot be empty. Путь к наблюдаемой папке не может быть пустым. - + Watched folder Path cannot be relative. Путь к наблюдаемой папке не может быть относительным. @@ -10314,44 +10830,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Неверная магнит-ссылка. Ссылка: %1. Причина: %2 - + Magnet file too big. File: %1 Магнит-файл слишком большой. Файл: %1 - + Failed to open magnet file: %1 Не удалось открыть магнит-файл. Причина: %1 - + Rejecting failed torrent file: %1 Отклонение повреждённого торрент-файла: %1 - + Watching folder: "%1" Наблюдение папки: «%1» - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Не удалось выделить память при чтении файла. Файл: «%1». Ошибка: «%2» - - - - Invalid metadata - Недопустимые метаданные - - TorrentOptionsDialog @@ -10380,175 +10883,163 @@ Please choose a different name and try again. Отдельный путь для неполного торрента - + Category: Категория: - - Torrent speed limits - Ограничения скорости торрента + + Torrent Share Limits + Ограничения обмена торрентами - + Download: Загрузка: - - + + - - + + Torrent Speed Limits + Ограничения скорости торрентов + + + + KiB/s КБ/с - + These will not exceed the global limits Эти ограничения не превысят общие - + Upload: Отдача: - - Torrent share limits - Ограничения раздачи торрента - - - - Use global share limit - Следовать общему ограничению раздачи - - - - Set no share limit - Снять ограничение раздачи - - - - Set share limit to - Задать ограничение раздачи - - - - ratio - рейтинг - - - - total minutes - всего минут - - - - inactive minutes - минут бездействия - - - + Disable DHT for this torrent Отключить DHT для этого торрента - + Download in sequential order Загружать последовательно - + Disable PeX for this torrent Отключить PeX для этого торрента - + Download first and last pieces first Загружать сперва крайние части - + Disable LSD for this torrent Отключить LSD для этого торрента - + Currently used categories Текущие используемые категории - - + + Choose save path Выберите путь сохранения - + Not applicable to private torrents Не применяется к частным торрентам - - - No share limit method selected - Не выбран метод ограничения раздачи - - - - Please select a limit method first - Пожалуйста, выберите сначала метод ограничения - TorrentShareLimitsWidget - - - + + + + Default - Стандартно + Стандартно + + + + + + Unlimited + Без ограничений - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Установить на + + + + Seeding time: + Время раздачи: + + + + + + + + min minutes - мин + мин - + Inactive seeding time: - + Время бездействия раздачи: - + + Action when the limit is reached: + Действие по достижении ограничения: + + + + Stop torrent + Остановить торрент + + + + Remove torrent + Удалить торрент + + + + Remove torrent and its content + Удалить торрент и его содержимое + + + + Enable super seeding for torrent + Включить режим суперсида для торрента + + + Ratio: - + Рейтинг: @@ -10559,32 +11050,32 @@ Please choose a different name and try again. Метки торрентов - - New Tag - Новая метка + + Add tag + Добавить метку - + Tag: Метка: - + Invalid tag name Недопустимое имя метки - + Tag name '%1' is invalid. Недопустимое имя метки «%1». - + Tag exists Метка существует - + Tag name already exists. Имя метки уже существует. @@ -10592,115 +11083,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Ошибка: «%1» не является допустимым торрент-файлом. - + Priority must be an integer Приоритет должен быть целым числом - + Priority is not valid Приоритет недействителен - + Torrent's metadata has not yet downloaded Метаданные торрента ещё не загружены - + File IDs must be integers Идентификаторы файлов должны быть целыми числами - + File ID is not valid Неверный идентификатор файла - - - - + + + + Torrent queueing must be enabled Очерёдность торрентов должна быть включена - - + + Save path cannot be empty Путь сохранения не может быть пуст - - + + Cannot create target directory Не удаётся создать целевой каталог - - + + Category cannot be empty Категория не может быть пуста - + Unable to create category Не удалось создать категорию - + Unable to edit category Не удалось изменить категорию - + Unable to export torrent file. Error: %1 Не удалось экспортировать торрент-файл. Ошибка: «%1» - + Cannot make save path Невозможно создать путь сохранения - + + "%1" is not a valid URL + «%1» — недопустимый URL-адрес + + + + URL scheme must be one of [%1] + Допустимы только следующие схемы URL-адресов: [%1] + + + 'sort' parameter is invalid параметр «sort» неверен - + + "%1" is not an existing URL + «%1» — несуществующий URL-адрес + + + "%1" is not a valid file index. «%1» — недопустимый индекс файла. - + Index %1 is out of bounds. Индекс %1 вне допустимых границ. - - + + Cannot write to directory Запись в папку невозможна - + WebUI Set location: moving "%1", from "%2" to "%3" Веб-интерфейс, перемещение: «%1» перемещается из «%2» в «%3» - + Incorrect torrent name Неправильное имя торрента - - + + Incorrect category name Неправильное имя категории @@ -10731,196 +11237,191 @@ Please choose a different name and try again. TrackerListModel - + Working Работает - + Disabled Отключено - + Disabled for this torrent Отключено в этом торренте - + This torrent is private Это частный торрент - + N/A Н/Д - + Updating... Обновляется… - + Not working Не работает - + Tracker error Ошибка трекера - + Unreachable - Недоступный + Нет доступа - + Not contacted yet Связи пока нет - - Invalid status! - Неверное состояние! - - - - URL/Announce endpoint - Конечная точка ссылки/анонса + + Invalid state! + Недопустимое состояние! + URL/Announce Endpoint + Получатель ссылки/анонса + + + + BT Protocol + Протокол БТ + + + + Next Announce + След. анонс + + + + Min Announce + Минимум анонса + + + Tier Уровень - - Protocol - Протокол - - - + Status Состояние - + Peers Пиры - + Seeds Сиды - + Leeches Личи - - - Times Downloaded - Число загрузок - - Message - Сообщение + Times Downloaded + Всего загрузок - Next announce - Следующий анонс - - - - Min announce - Наименьший анонс - - - - v%1 - v%1 + Message + Сообщение TrackerListWidget - + This torrent is private Это частный торрент - + Tracker editing Изменение трекера - + Tracker URL: Адрес трекера: - - + + Tracker editing failed Не удалось изменить трекер - + The tracker URL entered is invalid. Введён недопустимый адрес трекера. - + The tracker URL already exists. Трекер с таким адресом уже существует. - + Edit tracker URL... Править адрес трекера… - + Remove tracker Удалить трекер - + Copy tracker URL Копировать адрес трекера - + Force reannounce to selected trackers Повторить анонс на выбранные трекеры - + Force reannounce to all trackers Повторить анонс на все трекеры - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого - + Add trackers... Добавить трекеры… - + Column visibility Отображение столбцов @@ -10938,37 +11439,37 @@ Please choose a different name and try again. Список трекеров для добавления (один трекер на строку): - + µTorrent compatible list URL: Адрес совместимого с µTorrent списка: - + Download trackers list Загрузить список трекеров - + Add Добавить - + Trackers list URL error Ошибка адреса списка трекеров - + The trackers list URL cannot be empty Адрес списка трекеров не может быть пустым - + Download trackers list error Ошибка загрузки списка трекеров - + Error occurred when downloading the trackers list. Reason: "%1" Произошла ошибка при загрузке списка трекеров. Причина: «%1» @@ -10976,62 +11477,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Предупреждения (%1) - + Trackerless (%1) Без трекера (%1) - + Tracker error (%1) Ошибка трекера (%1) - + Other error (%1) Иная ошибка (%1) - + Remove tracker Удалить трекер - - Resume torrents - Возобновить + + Start torrents + Запустить торренты - - Pause torrents + + Stop torrents Остановить торренты - + Remove torrents Удалить торренты - + Removal confirmation Подтверждение удаления - + Are you sure you want to remove tracker "%1" from all torrents? Уверены, что хотите удалить трекер «%1» из всех торрентов? - + Don't ask me again. Больше не спрашивать. - + All (%1) this is for the tracker filter Все (%1) @@ -11040,7 +11541,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument «режим»: недопустимый аргумент @@ -11132,11 +11633,6 @@ Please choose a different name and try again. 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. Сверка данных возобновления - - - Paused - Остановлен - Completed @@ -11160,220 +11656,252 @@ Please choose a different name and try again. Ошибка - + Name i.e: torrent name Имя - + Size i.e: torrent size Размер - + Progress % Done Прогресс - + + Stopped + Остановлено + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Состояние - + Seeds i.e. full sources (often untranslated) Сиды - + Peers i.e. partial sources (often untranslated) Пиры - + Down Speed i.e: Download speed Загрузка - + Up Speed i.e: Upload speed Отдача - + Ratio Share ratio Рейтинг - + + Popularity + Спрос + + + ETA i.e: Estimated Time of Arrival / Time left Расч. время - + Category Категория - + Tags Метки - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Добавлен - + Completed On Torrent was completed on 01/01/2010 08:00 Завершён - + Tracker Трекер - + Down Limit i.e: Download limit Порог загрузки - + Up Limit i.e: Upload limit Порог отдачи - + Downloaded Amount of data downloaded (e.g. in MB) Загружено - + Uploaded Amount of data uploaded (e.g. in MB) Отдано - + 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) Отдано за сеанс - + Remaining Amount of data left to download (e.g. in MB) - Осталось байт + Осталось - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Время работы - + + Yes + Да + + + + No + Нет + + + Save Path Torrent save path Путь сохранения - + Incomplete Save Path Torrent incomplete save path Путь неполного - + Completed Amount of data completed (e.g. in MB) Завершено байт - + Ratio Limit Upload share ratio limit Порог рейтинга - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Замечен целиком - + Last Activity Time passed since a chunk was downloaded/uploaded Активность - + Total Size i.e. Size including unwanted data Общ. размер - + Availability The number of distributed copies of the torrent Доступно - + Info Hash v1 i.e: torrent info hash v1 Инфо-хеш v1 - + Info Hash v2 i.e: torrent info hash v2 Инфо-хеш v2 - + Reannounce In Indicates the time until next trackers reannounce Следующий анонс - - + + Private + Flags private torrents + Частный + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Рейтинг / время работы (в месяцах), показывает востребованность торрента + + + + + N/A Н/Д - + %1 ago e.g.: 1h 20m ago %1 назад - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (раздаётся %2) @@ -11382,339 +11910,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Отображение столбцов - + Recheck confirmation Подтверждение проверки - + Are you sure you want to recheck the selected torrent(s)? Уверены, что хотите перепроверить выбранные торренты? - + Rename Переименовать - + New name: Новое имя: - + Choose save path Выберите путь сохранения - - Confirm pause - Подтвердить приостановку - - - - Would you like to pause all torrents? - Хотите приостановить все торренты? - - - - Confirm resume - Подтвердить возобновление - - - - Would you like to resume all torrents? - Хотите возобновить все торренты? - - - + Unable to preview Просмотр не удался - + The selected torrent "%1" does not contain previewable files Выбранный торрент «%1» не содержит файлов, подходящих для просмотра - + Resize columns Подогнать столбцы - + Resize all non-hidden columns to the size of their contents Подогнать все нескрытые столбцы к размеру их содержимого - + Enable automatic torrent management Включить автоматическое управление торрентами - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Уверены, что хотите включить автоматическое управление для выбранных торрентов? Они могут переместиться. - - Add Tags - Добавить метки - - - + Choose folder to save exported .torrent files - Выберите папку для экспортируемых файлов .torrent + Выберите папку для экспорта файлов .torrent - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Экспорт файла .torrent не удался. Торрент: «%1». Путь сохранения: «%2». Причина: «%3» - + A file with the same name already exists Файл с таким именем уже существует - + Export .torrent file error Ошибка экспорта файла .torrent - + Remove All Tags Удалить все метки - + Remove all tags from selected torrents? Удалить все метки для выбранных торрентов? - + Comma-separated tags: Метки разделяются запятыми: - + Invalid tag Недопустимая метка - + Tag name: '%1' is invalid Имя метки «%1» недопустимо - - &Resume - Resume/start the torrent - &Возобновить - - - - &Pause - Pause the torrent - &Остановить - - - - Force Resu&me - Force Resume/start the torrent - Возобновит&ь принудительно - - - + Pre&view file... Прос&мотр файла… - + Torrent &options... Параметры т&оррента… - + Open destination &folder Открыть п&апку назначения - + Move &up i.e. move up in the queue По&высить - + Move &down i.e. Move down in the queue По&низить - + Move to &top i.e. Move to top of the queue В &начало - + Move to &bottom i.e. Move to bottom of the queue В ко&нец - + Set loc&ation... Пере&местить… - + Force rec&heck Прове&рить принудительно - + Force r&eannounce Анонсировать прин&удительно - + &Magnet link Магнит-сс&ылку - + Torrent &ID ИД то&ррента - + &Comment Ко&мментарий - + &Name &Имя - + Info &hash v1 Ин&фо-хеш v1 - + Info h&ash v2 Инфо-&хеш v2 - + Re&name... Переименова&ть… - + Edit trac&kers... Пра&вить трекеры… - + E&xport .torrent... &Экспорт в файл .torrent… - + Categor&y Кате&гория - + &New... New category... &Новая… - + &Reset Reset category &Сброс - + Ta&gs Ме&тки - + &Add... Add / assign multiple tags... &Добавить… - + &Remove All Remove all tags &Удалить все - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Нельзя принудительно повторить анонс, если торрент остановлен, в очереди, с ошибкой или проверяется + + + &Queue &Очередь - + &Copy Ко&пировать - + Exported torrent is not necessarily the same as the imported Экспортируемый торрент не обязательно будет таким же, как импортированный - + Download in sequential order Загружать последовательно - + + Add tags + Добавить метки + + + Errors occurred when exporting .torrent files. Check execution log for details. Возникли ошибки при экспорте файлов .torrent. Смотрите подробности в журнале работы. - + + &Start + Resume/start the torrent + Зап&устить + + + + Sto&p + Stop the torrent + &Стоп + + + + Force Star&t + Force Resume/start the torrent + Запустить принудит&ельно + + + &Remove Remove the torrent &Удалить - + Download first and last pieces first Загружать сперва крайние части - + Automatic Torrent Management Автоматическое управление - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Автоматический режим подбирает настройки торрента (напр., путь сохранения) на основе его категории - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Нельзя принудительно повторить анонс, если торрент остановлен, в очереди, с ошибкой или проверяется - - - + Super seeding mode Режим суперсида @@ -11759,28 +12267,28 @@ Please choose a different name and try again. Идентификатор значка - + UI Theme Configuration. Настройка темы оболочки. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Не удалось полностью применить изменения темы оболочки. Подробности можно найти в журнале. - + Couldn't save UI Theme configuration. Reason: %1 Не удалось сохранить настройки темы оболочки. Причина: %1 - - + + Couldn't remove icon file. File: %1. Не удалось убрать файл значка. Файл: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Не удалось скопировать файл значка. Источник: %1. Назначение: %2. @@ -11788,7 +12296,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Не удалось установить стиль приложения. Неизвестный стиль: «%1» + + + Failed to load UI theme from file: "%1" Не удалось загрузить тему оболочки из файла: «%1» @@ -11819,20 +12332,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Не удалось перенести настройки: HTTPS веб-интерфейса, файл: «%1», ошибка: «%2» - + Migrated preferences: WebUI https, exported data to file: "%1" Настройки перенесены: HTTPS веб-интерфейса, данные извлечены в файл: «%1» - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Найдено недопустимое значение в файле конфигурации, сбрасывается к стандартному. Ключ: «%1». Недопустимое значение: «%2». @@ -11840,32 +12354,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Найден исполняемый файл Python. Имя: «%1». Версия: «%2» - + Failed to find Python executable. Path: "%1". Не удалось найти исполняемый файл Python. Путь: «%1». - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Не удалось найти исполняемый файл «python3» в переменной среды PATH. PATH: «%1» - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Не удалось найти исполняемый файл «python» в переменной среды PATH. PATH: «%1» - + Failed to find `python` executable in Windows Registry. Не удалось найти исполняемый файл «python» в реестре Windows. - + Failed to find Python executable Не удалось найти исполняемый файл Python @@ -11957,72 +12471,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Указано недопустимое имя файла куки сеанса: «%1». Использовано стандартное. - + Unacceptable file type, only regular file is allowed. Недопустимый тип файла, разрешены только стандартные файлы. - + Symlinks inside alternative UI folder are forbidden. Символические ссылки внутри папки альтернативного интерфейса запрещены. - + Using built-in WebUI. Используется встроенный веб-интерфейс. - + Using custom WebUI. Location: "%1". Используется пользовательский веб-интерфейс. Расположение: «%1». - + WebUI translation for selected locale (%1) has been successfully loaded. Перевод веб-интерфейса для выбранного языка (%1) успешно подгружен. - + Couldn't load WebUI translation for selected locale (%1). Не удалось подгрузить перевод веб-интерфейса для выбранного языка (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Пропущен разделитель «:» в пользовательском заголовке HTTP веб-интерфейса: «%1» - + Web server error. %1 Ошибка веб-сервера. %1 - + Web server error. Unknown error. Ошибка веб-сервера. Неизвестная ошибка. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Веб-интерфейс: Оригинальный и целевой заголовки не совпадают! IP источника: «%1». Заголовок источника: «%2». Целевой источник: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Веб-интерфейс: Ссылочный и целевой заголовки не совпадают! IP источника: «%1». Заголовок источника: «%2». Целевой источник: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Веб-интерфейс: Неверный заголовок хоста, несовпадение порта! Запрос IP источника: «%1». Порт сервера: «%2». Полученный заголовок хоста: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Веб-интерфейс: Неверный заголовок хоста. Запрос IP источника: «%1». Полученный заголовок хоста: «%2» @@ -12030,125 +12544,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set Учётные данные не заданы - + WebUI: HTTPS setup successful Веб-интерфейс: Установка HTTPS успешна - + WebUI: HTTPS setup failed, fallback to HTTP Веб-интерфейс: Установка HTTPS не удалась, откат к HTTP - + WebUI: Now listening on IP: %1, port: %2 Веб-интерфейс: Сейчас прослушивается IP: %1, порт: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Невозможно занять IP: %1, порт: %2. Причина: %3 + + fs + + + Unknown error + Неизвестная ошибка + + misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) ТБ - + PiB pebibytes (1024 tebibytes) ПБ - + EiB exbibytes (1024 pebibytes) ЭБ - + /s per second - + %1s e.g: 10 seconds %1 с - + %1m e.g: 10 minutes %1 м - + %1h %2m e.g: 3 hours 5 minutes %1 ч %2 м - + %1d %2h e.g: 2 days 10 hours %1 д %2 ч - + %1y %2d e.g: 2 years 10 days %1 г %2 д - - + + Unknown Unknown (size) Неизвестно - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent сейчас выключит компьютер, так как все загрузки были завершены. - + < 1m < 1 minute < 1 м diff --git a/src/lang/qbittorrent_sk.ts b/src/lang/qbittorrent_sk.ts index 3b35f3f51..bf8746386 100644 --- a/src/lang/qbittorrent_sk.ts +++ b/src/lang/qbittorrent_sk.ts @@ -14,75 +14,75 @@ O - + Authors Autori - + Current maintainer Aktuálny správca - + Greece Grécko - - + + Nationality: Národonosť: - - + + E-mail: E-mail: - - + + Name: Meno: - + Original author Pôvodný autor - + France Francúzsko - + Special Thanks Špeciálne poďakovanie - + Translators Prekladatelia - + License Licencia - + Software Used Použitý software - + qBittorrent was built with the following libraries: qBittorrent bol vytvorený s následujúcimi knižnicami: - + Copy to clipboard Skopírovať do schránky @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Uložiť do - + Never show again Už nikdy nezobrazovať - - - Torrent settings - Nastavenia torrentu - Set as default category @@ -191,12 +186,12 @@ Spustiť torrent - + Torrent information Informácie o torrente - + Skip hash check Preskočiť kontrolu hašu @@ -205,6 +200,11 @@ Use another path for incomplete torrent Pre neúplný torrent použite inú cestu + + + Torrent options + + Tags: @@ -231,75 +231,76 @@ Podmienka pre zastavenie: - - + + None Žiadna - - + + Metadata received Metadáta obdržané - + Torrents that have metadata initially will be added as stopped. - + 71%match +Torrenty, ktoré majú iniciálne metadáta, budú pridané ako zastavené. - - + + Files checked Súbory skontrolované - + Add to top of queue Pridať navrch poradovníka - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Ak je zaškrtnuté, súbor .torrent sa neodstráni bez ohľadu na nastavenia na stránke „Stiahnuť“ v dialógovom okne Možnosti - + Content layout: Rozloženie obsahu: - + Original Originál - + Create subfolder Vytvoriť podpriečinok - + Don't create subfolder Nevytvárať podpriečinok - + Info hash v1: Info hash v1: - + Size: Veľkosť: - + Comment: Komentár: - + Date: Dátum: @@ -329,151 +330,147 @@ Zapamätať si poslednú použitú cestu - + Do not delete .torrent file Nevymazať súbor .torrent - + Download in sequential order Stiahnuť v sekvenčnom poradí - + Download first and last pieces first Najprv si stiahnite prvé a posledné časti - + Info hash v2: Info hash v2: - + Select All Vybrať všetky - + Select None Nevybrať nič - + Save as .torrent file... Uložiť ako .torrent súbor... - + I/O Error Chyba I/O - + Not Available This comment is unavailable Nie je k dispozícii - + Not Available This date is unavailable Nie je k dispozícii - + Not available Nie je k dispozícii - + Magnet link Magnet link - + Retrieving metadata... Získavajú sa metadáta... - - + + Choose save path Vyberte cestu pre uloženie - + No stop condition is set. Žiadna podmienka pre zastavenie nie je nastavená. - + Torrent will stop after metadata is received. Torrent sa zastaví po obdržaní metadát. - Torrents that have metadata initially aren't affected. - Torrenty, ktoré majú iniciálne metadáta, nie sú ovplyvnené. - - - + Torrent will stop after files are initially checked. Torrent sa zastaví po iniciálnej kontrole súborov. - + This will also download metadata if it wasn't there initially. Toto nastavenie taktiež stiahne metadáta, ak nie sú iniciálne prítomné. - - + + N/A nie je k dispozícií - + %1 (Free space on disk: %2) %1 (Volné miesto na disku: %2) - + Not available This size is unavailable. Nie je k dispozícii - + Torrent file (*%1) Torrent súbor (*%1) - + Save as torrent file Uložiť ako .torrent súbor - + Couldn't export torrent metadata file '%1'. Reason: %2. Nebolo možné exportovať súbor '%1' metadáta torrentu. Dôvod: %2. - + Cannot create v2 torrent until its data is fully downloaded. Nie je možné vytvoriť v2 torrent, kým nie sú jeho dáta úplne stiahnuté. - + Filter files... Filtruj súbory... - + Parsing metadata... Spracovávajú sa metadáta... - + Metadata retrieval complete Získavanie metadát dokončené @@ -481,35 +478,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrent sa sťahuje... Zdroj: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Nepodarilo sa pridať torrent. Zdroj: "%1". Dôvod: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Bol zistený pokus o pridanie duplicitného torrentu. Zdroj: %1. Exitujúci torrent: %2. Výsledok: %3 - - - + Merging of trackers is disabled Zlúčenie trackerov nie je povolené - + Trackers cannot be merged because it is a private torrent Trackery nemožno zlúčiť, pretože je to súkromný torrent - + Trackers are merged from new source Trackery sú zlúčené z nového zdroja + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +593,7 @@ Torrent share limits - Limity zdieľania torrentu + Obmedzenia zdieľania torrentu @@ -672,763 +669,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Znovu skontrolovať torrenty po dokončení - - + + ms milliseconds ms - + Setting Nastavenie - + Value Value set for this setting Hodnota - + (disabled) (vypnuté) - + (auto) (auto) - + + min minutes min - + All addresses Všetky adresy - + qBittorrent Section Sekcia qBittorent - - + + Open documentation Otvoriť dokumentáciu - + All IPv4 addresses Všetky adresy IPv4 - + All IPv6 addresses Všetky adresy IPv6 - + libtorrent Section Sekcia libtorrent - + Fastresume files Súbory rýchleho obnovenia - + SQLite database (experimental) SQLite databáza (experimentálne) - + Resume data storage type (requires restart) Obnoviť typ úložiska dát (vyžadovaný reštart) - + Normal Normálne - + Below normal Pod normálom - + Medium Stredná - + Low Malá - + Very low Veľmi malé - + Physical memory (RAM) usage limit Limit využitia fyzickej pamäti (RAM) - + Asynchronous I/O threads Asynchrónne I/O vlákna - + Hashing threads Hašovacie vlákna - + File pool size Veľkosť súborového zásobníku - + Outstanding memory when checking torrents Mimoriadna pamäť pri kontrole torrentov - + Disk cache Disková vyrovnávacia pamäť - - - - + + + + + s seconds s - + Disk cache expiry interval Interval vypršania platnosti diskovej vyrovnávacej pamäte - + Disk queue size Veľkosť diskovej fronty - - + + Enable OS cache Zapnúť vyrovnávaciu pamäť systému - + Coalesce reads & writes Zlúčenie zapisovacích & čítacích operácií - + Use piece extent affinity Použite afinitu k dielikovému rozsahu - + Send upload piece suggestions Doporučenie pre odosielanie častí uploadu - - - - + + + + + 0 (disabled) 0 (vypnuté) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Interval ukladania dát obnovenia [0: vypnuté] - + Outgoing ports (Min) [0: disabled] Odchádzajúce porty (Min) [0: vypnuté] - + Outgoing ports (Max) [0: disabled] Odchádzajúce porty (Max) [0: vypnuté] - + 0 (permanent lease) 0 (trvalé prepožičanie) - + UPnP lease duration [0: permanent lease] Doba UPnP prepožičania [0: trvalé prepožičanie] - + Stop tracker timeout [0: disabled] Časový limit pre zastavenie trackera [0: vypnutý] - + Notification timeout [0: infinite, -1: system default] Časový limit oznámenia [0: nekonečno, -1: predvolený systémom] - + Maximum outstanding requests to a single peer Maximum nespracovaných požiadaviek na jedeného peera - - - - - + + + + + KiB KiB - + (infinite) (nekonečno) - + (system default) (predvolený systémom) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux Táto voľba je na Linuxe menej efektívna - + Process memory priority Priorita pamäti procesu - + Bdecode depth limit Bdecode obmedzenie hĺbky - + Bdecode token limit Bdecode obmedzenie tokenu - + Default Predvolený - + Memory mapped files Súbory namapované v pamäti - + POSIX-compliant POSIX-vyhovujúci - + + Simple pread/pwrite + + + + Disk IO type (requires restart) Disk IO typ (vyžaduje reštart) - - + + Disable OS cache Vypnúť vyrovnávaciu pamäť operačného systému - + Disk IO read mode Režim IO čítania disku - + Write-through Prepisovanie - + Disk IO write mode Režim IO zapisovania disku - + Send buffer watermark Odoslať watermark bufferu - + Send buffer low watermark Odoslať buffer-low watermark - + Send buffer watermark factor Odoslať buffer watermark faktor - + Outgoing connections per second Odchádzajúce pripojenia za sekundu - - + + 0 (system default) 0 (predvolený systémom) - + Socket send buffer size [0: system default] Veľkosť send bufferu pre socket [0: predvolený systémom] - + Socket receive buffer size [0: system default] Veľkosť receive bufferu pre socket [0: predvolený systémom] - + Socket backlog size Velikost nevykonaného soketu - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit Limit veľkosti .torrent súboru - + Type of service (ToS) for connections to peers Typ služby (ToS) pre pripojenie k rovesníkom - + Prefer TCP Uprednostniť TCP - + Peer proportional (throttles TCP) Peer proportional (obmedziť TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Podporovať domény obsahujúce špeciálne znaky (IDN) - + Allow multiple connections from the same IP address Povoliť viacej spojení z rovnakej IP adresy - + Validate HTTPS tracker certificates Overovať HTTPS cerifikáty trackerov - + Server-side request forgery (SSRF) mitigation Zamedzenie falšovania požiadaviek na strane servera (SSRF) - + Disallow connection to peers on privileged ports Nepovoliť pripojenie k peerom na privilegovaných portoch - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates Riadi interval aktualizácie vnútorného stavu, ktorý zase ovplyvní aktualizácie používateľského rozhrania - + Refresh interval Interval obnovenia - + Resolve peer host names Zisťovať sieťové názvy peerov - + IP address reported to trackers (requires restart) IP adresa nahlásená trackerom (vyžaduje reštart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Znovu oznámiť všetkým trackerom pri zmene IP alebo portu - + Enable icons in menus Povoliť ikony v menu - + + Attach "Add new torrent" dialog to main window + Pripnúť dialógové okno "Pridať nový torrent" k hlavnému oknu + + + Enable port forwarding for embedded tracker Zapnúť presmerovanie portu na vstavaný tracker - + Enable quarantine for downloaded files Zapnúť karanténu pre stiahnuté súbory - + Enable Mark-of-the-Web (MOTW) for downloaded files Zapnúť Mark-of-the-Web (MOTW) pre stiahnuté súbory - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) (Automaticky zistiť, ak je prázdne) - + Python executable path (may require restart) Cesta k binárke Pythonu (môže vyžadovať reštart): - + + Start BitTorrent session in paused state + + + + + sec + seconds + sec + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + Confirm removal of tracker from all torrents Potvrdiť odstránenie trackeru zo všetkých torrentov - + Peer turnover disconnect percentage Percento odpojenia pri peer turnover - + Peer turnover threshold percentage Percento limitu pre peer turnover - + Peer turnover disconnect interval Interval odpojenia pri peer turnover - + Resets to default if empty Vráti pôvodné, ak je prázdne - + DHT bootstrap nodes DHT bootstrap uzly - + I2P inbound quantity I2P prichádzajúce množstvo - + I2P outbound quantity I2P odchádzajúce množstvo - + I2P inbound length I2P prichádzajúca dĺžka - + I2P outbound length I2P odchádzajúca dĺžka - + Display notifications Zobrazovať hlásenia - + Display notifications for added torrents Zobrazovať hlásenia pre pridané torrenty - + Download tracker's favicon Stiahnuť logo trackera - + Save path history length Uložiť dĺžku histórie cesty - + Enable speed graphs Zapnúť graf rýchlosti - + Fixed slots Pevné sloty - + Upload rate based Podľa rýchlosti uploadu - + Upload slots behavior Chovanie upload slotov - + Round-robin Pomerné rozdelenie - + Fastest upload Najrýchlejší upload - + Anti-leech Priorita pre začínajúcich a končiacich leecherov - + Upload choking algorithm Škrtiaci algoritmus pre upload - + Confirm torrent recheck Potvrdenie opätovnej kontroly torrentu - + Confirm removal of all tags Potvrdiť odobranie všetkých značiek - + Always announce to all trackers in a tier Vždy oznamovať všetkým trackerom v triede - + Always announce to all tiers Vždy oznamovať všetkým triedam - + Any interface i.e. Any network interface Akékoľvek rozhranie - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP mixed mode algoritmus - + Resolve peer countries Zisťovať krajinu pôvodu peerov - + Network interface Sieťové rozhranie - + Optional IP address to bind to Voliteľná pridružená IP adresa - + Max concurrent HTTP announces Maximum súbežných HTTP oznámení - + Enable embedded tracker Zapnúť zabudovaný tracker - + Embedded tracker port Port zabudovaného trackera + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Spustené v portable režime. Automaticky detekovaný priečinok s profilom: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Detekovaný nadbytočný parameter príkazového riadku: "%1". Portable režim už zahŕna relatívny fastresume. - + Using config directory: %1 Používa sa adresár s konfiguráciou: %1 - + Torrent name: %1 Názov torrentu: %1 - + Torrent size: %1 Veľkosť torrentu: %1 - + Save path: %1 Uložiť do: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent bol stiahnutý za %1. - + + Thank you for using qBittorrent. Ďakujeme, že používate qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, posielanie oznámenia emailom - + Add torrent failed Nepodarilo sa pridať torrent - + Couldn't add torrent '%1', reason: %2. Nepodarilo sa pridať torrent '%1', dôvod: %2. - + The WebUI administrator username is: %1 Používateľské meno administrátora WebUI rozhrania: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Heslo administrátora WebUI rozhrania nebolo nastavené. Dočasné heslo pre túto reláciu je: %1 - + You should set your own password in program preferences. Mali by ste si nastaviť vlastné heslo vo voľbách programu. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI je vypnuté. Pre zapnutie WebUI upravte konfiguračný súbor ručne. - + Running external program. Torrent: "%1". Command: `%2` Spúšťanie externého programu. Torrent: "%1". Príkaz: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Nepodarilo sa spustiť externý program. Torrent: "%1". Príkaz: `%2` - + Torrent "%1" has finished downloading Sťahovanie torrentu "%1" bolo dokončené - + WebUI will be started shortly after internal preparations. Please wait... WebUI bude zapnuté chvíľu po vnútorných prípravách. Počkajte prosím... - - + + Loading torrents... Načítavanie torrentov... - + E&xit Ukončiť - + I/O Error i.e: Input/Output Error I/O chyba - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1534,110 @@ Dôvod: %2 - + Torrent added Torrent pridaný - + '%1' was added. e.g: xxx.avi was added. '%1' bol pridaný. - + Download completed Sťahovanie dokončené - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started + qBittorrent %1 sa sputil. ID procesu: %2 + + + + This is a test email. - + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' bol stiahnutý. - + Information Informácia - + To fix the error, you may need to edit the config file manually. Pre opravenie chyby budete pravdepodobne musieť upraviť konfiguračný súbor ručne. - + To control qBittorrent, access the WebUI at: %1 Pre ovládanie qBittorrentu prejdite na WebUI: %1 - + Exit Ukončiť - + Recursive download confirmation Potvrdenie rekurzívneho sťahovania - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' obsahuje .torrent súbory, chcete ich tiež stiahnúť? - + Never Nikdy - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekurzívne stiahnutie .torrent súboru vrámci torrentu. Zdrojový torrent: "%1". Súbor: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Nepodarilo sa nastaviť limit využitia fyzickej pamäte (RAM). Kód chyby: %1. Správa chyby: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Nepodarilo sa nastaviť pevný limit využitia fyzickej pamäte (RAM). Požadovaná veľkosť: %1. Pevný limit systému: %2. Kód chyby: %3. Správa chyby: "%4" - + qBittorrent termination initiated Ukončenie qBittorrentu bolo zahájené - + qBittorrent is shutting down... qBittorrent sa vypína... - + Saving torrent progress... Ukladá sa priebeh torrentu... - + qBittorrent is now ready to exit qBittorrent je pripravený na ukončenie @@ -1609,12 +1716,12 @@ Dôvod: %2 Priorita: - + Must Not Contain: Nesmie obsahovať: - + Episode Filter: Filter epizód: @@ -1622,7 +1729,7 @@ Dôvod: %2 Smart Episode Filter will check the episode number to prevent downloading of duplicates. Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also support - as a separator) - Chytrý Filter Epizód skontroluje číslo epizódy pre zabránenie sťahovanie duplikátov. + Chytrý Filter Epizód skontroluje číslo epizódy pre zabránenie sťahovanie duplikátov. Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty dátumu - ako oddeľovač) @@ -1667,263 +1774,263 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty &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 - + 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 - + Episode number is a mandatory positive value Číslo epizódy je povinná pozitívna hodnota - + Rules Pravidlá - + Rules (legacy) Pravidlá (pôvodné) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Neohraničený rozsah: <b>1x25-;</b> zodpovedá epizóde 25 a všetkým nasledujúcim z prvej sezóny a všetkým nasledujúcim - + 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 - + Invalid action Neplatná operácia - + The list is empty, there is nothing to export. Zoznam je prázdny, niet čo exportovať. - + Export RSS rules Export RSS pravidiel - + I/O Error I/O chyba - + Failed to create the destination file. Reason: %1 Nepodarilo sa vytvoriť cieľový súbor. Dôvod: %1 - + Import RSS rules Import RSS pravidiel - + Failed to import the selected rules file. Reason: %1 Nepodarilo sa importovať vybraný súbor pravidiel. Dôvod: %1 - + Add new rule... Pridať nové pravidlo... - + Delete rule Zmazať pravidlo - + Rename rule... Premenovať pravidlo... - + Delete selected rules Zmazať vybrané pravidlá - + Clear downloaded episodes... Odstrániť stiahnuté epizódy... - + Rule renaming Premenovanie pravidiel - + Please type the new rule name Prosím, napíšte názov nového pravidla - + Clear downloaded episodes Odstrániť stiahnuté epizódy - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Naozaj chcete vymazať zoznam stiahnutých epizód pre vybrané pravidlo? - + Regex mode: use Perl-compatible regular expressions Regex mód: použite regulárny výraz komatibilní s Perlom - - + + Position %1: %2 Pozícia %1: %2 - + Wildcard mode: you can use Mód zástupných znakov: môžete použiť - - + + Import error Chyba importu - + Failed to read the file. %1 Nepodarilo sa čítať zo súboru. %1 - + ? to match any single character ? pre zhodu s ľubovoľným jediným znakom - + * to match zero or more of any characters * pre zhodu so žiadnym alebo viac s akýmikoľvek znakmi - + Whitespaces count as AND operators (all words, any order) Medzera slúži ako operátor AND (všetky slová v akomkoľvek poradí) - + | is used as OR operator | slúži ako operátor OR - + If word order is important use * instead of whitespace. Ak je dôležité poradie slov, použite * namiesto medzery. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Výraz s prázdnym %1 obsahom (napr. %2) - + will match all articles. zahrnie všetky položky. - + will exclude all articles. vylúči všetky položky @@ -1965,7 +2072,7 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Nie je možné vytvoriť zložku pre obnovenie torrentu: "% 1" @@ -1975,28 +2082,38 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Nedajú sa spracovať dáta pre obnovenie: neplatný formát - - + + Cannot parse torrent info: %1 Nedajú sa spracovať informácie torrentu: %1 - + Cannot parse torrent info: invalid format Nedajú sa spracovať informácie torrentu: neplatný formát - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Metadáta torrentu sa nepodarilo uložiť do '%1'. Chyba: %2 - + Couldn't save torrent resume data to '%1'. Error: %2. Nepodarilo sa uložiť dáta obnovenia torrentu do '%1'. Chyba: %2. @@ -2007,16 +2124,17 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty + Cannot parse resume data: %1 Nepodarilo sa spracovať dáta pre obnovenie: %1 - + Resume data is invalid: neither metadata nor info-hash was found Dáta pre pokračovanie sú neplatné: neboli nájdené ani metadáta ani info-hash - + Couldn't save data to '%1'. Error: %2 Nebolo možné uložiť dáta do '%1'. Chyba: %2 @@ -2024,38 +2142,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::DBResumeDataStorage - + Not found. Nenájdené. - + Couldn't load resume data of torrent '%1'. Error: %2 Nepodarilo sa načítať dáta pre pokračovanie torrentu '%1'. Chyba: %2 - - + + Database is corrupted. Databáza je poškodená. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Nepodarilo sa zapnúť žurnálovací režim Write-Ahead Logging (WAL). Chyba: %1. - + Couldn't obtain query result. Nebolo možné získať výsledok dopytu. - + WAL mode is probably unsupported due to filesystem limitations. WAL režim nie je pravdepodobne podporovaný pre obmedzenia súborového systému - + + + Cannot parse resume data: %1 + Nepodarilo sa spracovať dáta pre obnovenie: %1 + + + + + Cannot parse torrent info: %1 + Nedajú sa spracovať informácie torrentu: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Nebolo možné začať transakciu. Chyba: %1 @@ -2063,22 +2203,22 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Nepodarilo sa uložiť metadáta torrentu. Chyba: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Nepodarilo sa uložiť dáta obnovenia torrentu: '%1'. Chyba: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Nepodarilo sa zmazať dáta obnovenia torrentu '%1'. Chyba: %2 - + Couldn't store torrents queue positions. Error: %1 Nepodarilo sa uložiť umiestnenie torrentov v poradovníku. Chyby: %1 @@ -2086,457 +2226,503 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Podpora pre Distributed Hash Table (DHT): %1 - - - - - - - - - + + + + + + + + + ON Zapnuté - - - - - - - - - + + + + + + + + + OFF Vypnuté - - + + Local Peer Discovery support: %1 podpora Local Peer Discovery: %1 - + Restart is required to toggle Peer Exchange (PeX) support Pre zmenu podpory Peer Exchange (PeX) je potrebný reštart - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Nepodarilo sa obnoviť torrent: Torrent "%1". Dôvod: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Nepodarilo sa obnoviť torrent: zistené nekonzistentné ID torrentu. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Zistené nekonzistentné dáta: v konfiguračnom súbore chýba kategória. Kategória sa obnoví, ale jej nastavenia budú zresetované na pôvodné. Torrent: "%1". Kategória: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Zistené nekonzistentné dáta: neplatná kategória. Torrent: "%1". Kategória: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Zistený nesúlad medzi cestou uloženia pre obnovenú kategóriu a súčasnou cestou uloženia torrentu. Torrent je teraz prepnutý do Manuálneho režimu. Torrent: "%1". Kategória: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Zistené nekonzistentné dáta: v konfiguračnom súbore chýba značka. Značka sa obnoví. Torrent: "%1". Značka: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Zistené nekonzistentné dáta: neplatná značka. Torrent: "%1". Značka: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Zistená udalosť systémového prebudenia. Oznámenie všetkým trackerom... - + Peer ID: "%1" Peer ID: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Podpora Peer Exchange (PeX): %1 - - + + Anonymous mode: %1 Anonymný režim: %1 - - + + Encryption support: %1 Podpora šifrovania: %1 - - + + FORCED Vynútené - + Could not find GUID of network interface. Interface: "%1" Nepodarilo sa nájsť GUID sieťového rozhrania. Rozhranie: "%1" - + Trying to listen on the following list of IP addresses: "%1" Pokúšam sa počúvať na následujúcom zozname IP adries: "%1" - + Torrent reached the share ratio limit. Torrent dosiahol limit pomeru zdieľania. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent odstránený. - - - - - - Removed torrent and deleted its content. - Torrent odstránený spolu s jeho obsahom. - - - - - - Torrent paused. - Torrent pozastavený. - - - - - + Super seeding enabled. Režim super seedovania je zapnutý. - + Torrent reached the seeding time limit. Torrent dosiahol limit času zdieľania. - + Torrent reached the inactive seeding time limit. Torrent dosiahol časový limit neaktívneho seedovania - + Failed to load torrent. Reason: "%1" Nepodarilo sa načítať torrent. Dôvod: "%1" - + I2P error. Message: "%1". I2P chyba. Správa: "%1". - + UPnP/NAT-PMP support: ON podpora UPnP/NAT-PMP: ZAPNUTÁ - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Zlúčenie trackerov nie je povolené + + + + Trackers cannot be merged because it is a private torrent + Trackery nemožno zlúčiť, pretože je to súkromný torrent + + + + Trackers are merged from new source + Trackery sú zlúčené z nového zdroja + + + UPnP/NAT-PMP support: OFF podpora UPnP/NAT-PMP: VYPNUTÁ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Nepodarilo sa exportovať torrent. Torrent: "%1". Cieľ: "%2". Dôvod: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Ukladanie dát obnovenia bolo zrušené. Počet zostávajúcich torrentov: %1 - + The configured network address is invalid. Address: "%1" Nastavená sieťová adresa je neplatná. Adresa: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Nepodarilo sa nájsť nastavenú sieťovú adresu pre počúvanie. Adresa: "%1" - + The configured network interface is invalid. Interface: "%1" Nastavené sieťové rozhranie je neplatné. Rozhranie: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Odmietnutá neplatná IP adresa pri použití zoznamu blokovaných IP adries. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Tracker pridaný do torrentu. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tracker odstránený z torrentu. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL seed pridaný do torrentu. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" URL seed odstránený z torrentu. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent pozastavený. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrent bol obnovený: Torrent: "%1" - + Torrent download finished. Torrent: "%1" Sťahovanie torrentu dokončené. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Presunutie torrentu zrušené. Torrent: "%1". Zdroj: "%2". Cieľ: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Nepodarilo sa zaradiť presunutie torrentu. Torrent: "%1". Zdroj: "%2". Cieľ: "%3". Dôvod: torrent sa práve presúva do cieľa - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Nepodarilo sa zaradiť presunutie torrentu. Torrent: "%1". Zdroj: "%2". Cieľ: "%3". Dôvod: obe cesty ukazujú na rovnaké umiestnenie - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Presunutie torrentu zaradené do frontu. Torrent: "%1". Zdroj: "%2". Cieľ: "%3". - + Start moving torrent. Torrent: "%1". Destination: "%2" Začiatok presunu torrentu. Torrent: "%1". Cieľ: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Nepodarilo sa uložiť konfiguráciu kategórií. Súbor: "%1". Chyba: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nepodarilo sa spracovať konfiguráciu kategórií. Súbor: "%1". Chyba: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Úspešne spracovaný súbor IP filtra. Počet použitých pravidiel: %1 - + Failed to parse the IP filter file Nepodarilo sa spracovať súbor IP filtra - + Restored torrent. Torrent: "%1" Torrent obnovený. Torrent: "%1" - + Added new torrent. Torrent: "%1" Nový torrent pridaný. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent skončil s chybou. Torrent: "%1". Chyba: "%2" - - - Removed torrent. Torrent: "%1" - Torrent odstránený. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent odstránený spolu s jeho obsahom. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Varovanie o chybe súboru. Torrent: "%1". Súbor: "%2". Dôvod: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP mapovanie portu zlyhalo. Správa: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP mapovanie portu bolo úspešné. Správa: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrovaný port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privilegovaný port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent relácia narazila na vážnu chybu. Dôvod: "%1 - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proxy chyba. Adresa: %1. Správa: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 obmedzení zmiešaného režimu - + Failed to load Categories. %1 Nepodarilo sa načítať Kategórie. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Nepodarilo sa načítať konfiguráciu kategórií: Súbor: "%1". Chyba: "Neplatný formát dát" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent odstránený, ale nepodarilo sa odstrániť jeho obsah a/alebo jeho part súbor. Torrent: "%1". Chyba: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 je vypnuté - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 je vypnuté - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL seed DNS hľadanie zlyhalo. Torrent: "%1". URL: "%2". Chyba: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Obdržaná chybová správa od URL seedu. Torrent: "%1". URL: "%2". Správa: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Úspešne sa počúva na IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Zlyhalo počúvanie na IP. IP: "%1". Port: "%2/%3". Dôvod: "%4" - + Detected external IP. IP: "%1" Zistená externá IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Chyba: Vnútorný front varovaní je plný a varovania sú vynechávané, môžete spozorovať znížený výkon. Typ vynechaného varovania: "%1". Správa: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent bol úspešne presuný. Torrent: "%1". Cieľ: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Nepodarilo sa presunúť torrent. Torrent: "%1". Zdroj: "%2". Cieľ: "%3". Dôvod: "%4" @@ -2552,13 +2738,13 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::TorrentCreator - + Operation aborted Operácia prerušená - - + + Create new torrent file failed. Reason: %1. Vytvorenie nového torrentu zlyhalo. Dôvod: %1. @@ -2566,67 +2752,67 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Nepodarilo sa pridať peer "%1" k torrentu "%2". Dôvod: %3 - + Peer "%1" is added to torrent "%2" Peer "%1" je pridaný do torrentu "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Boli zistené neočakávané dáta. Torrent: %1. Dáta: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Nepodarilo sa zapisovať do súboru: Dôvod "%1". Torrent je teraz v režime "iba upload". - + Download first and last piece first: %1, torrent: '%2' Stiahnuť najprv prvú a poslednú časť: %1, torrentu: '%2' - + On Zapnuté - + Off Vypnuté - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Generovanie dát pre obnovenie zlyhalo. Torrent: %1. Dôvod: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Nepodarilo sa obnoviť torrent. Súbory boli pravdepodobne presunuté alebo úložisko nie je dostupné. Torrent: "%1". Dôvod: "%2" - + Missing metadata Chýbajúce metadáta - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Premenovanie súboru zlyhalo. Torrent: "%1", súbor: "%2", dôvod: "%3" - + Performance alert: %1. More info: %2 Varovanie výkonu: %1. Viac informácií: %2 @@ -2647,189 +2833,189 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' musia dodržiavať syntax '%1 =%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' musia dodržiavať syntax '%1 =%2' - + Expected integer number in environment variable '%1', but got '%2' V premennej je predpokladané celé číslo '%1', ale doručených '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' musia dodržiavať syntax '%1 =%2' - - - + Expected %1 in environment variable '%2', but got '%3' Očakával %1 v premennej prostredia '%2', ale dostal '%3' - - + + %1 must specify a valid port (1 to 65535). %1 musí určovať správny port (1 to 65535). - + Usage: Použitie: - + [options] [(<filename> | <url>)...] [voľby] [(<filename> | <url>)...] - + Options: Voľby: - + Display program version and exit Zobraz verziu programu a skonči - + Display this help message and exit Zobraz túto nápovedu a skonči - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' musia dodržiavať syntax '%1 =%2' + + + Confirm the legal notice - - + + port port - + Change the WebUI port Zmeniť WebUI port. - + Change the torrenting port Zmeniť torrentový port - + Disable splash screen vypni štartovaciu obrazovku - + Run in daemon-mode (background) spusti v režime démona (na pozadí) - + dir Use appropriate short form or abbreviation of "directory" adr - + Store configuration files in <dir> Uložiť súbory konfigurácie do <dir> - - + + name meno - + Store configuration files in directories qBittorrent_<name> Uložiť súbory konfigurácie v adresároch qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Vniknúť do súborov libtorrent fastresume a vztiahnuť cesty k súborom podľa adresára profilu - + files or URLs súbory alebo URL adresy - + Download the torrents passed by the user Stiahni torrenty zadané užívateľom - + Options when adding new torrents: Voľby pri pridávaní torrentu - + path cesta - + Torrent save path Cesta uloženia torrentu - - Add torrents as started or paused - Pridať torrenty ako spustené alebo pozastavené + + Add torrents as running or stopped + - + Skip hash check Preskočiť kontrolu hash - + Assign torrents to category. If the category doesn't exist, it will be created. Priraďte torrenty do kategórie. Ak kategória neexistuje, vytvorí sa. - + Download files in sequential order Sťahovať súbory v poradí - + Download first and last pieces first Sťahovať najprv prvú a poslednú časť - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Určiť, či sa otvorí dialóg "Pridať nový torrent" keď je torrent pridávaný. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Možné hodnoty sa môžu dodávať prostredníctvom premenných prostredia. Pri možnosti s názvom "parameter-name" je názov premennej prostredia "QBT_PARAMETER_NAME" (vo veľkom prípade "-" nahradený znakom "_"). Ak chcete prejsť hodnoty vlajok, nastavte premennú na hodnotu "1" alebo "TRUE". Ak napríklad chcete zakázať úvodnú obrazovku: - + Command line parameters take precedence over environment variables Parametre príkazového riadka majú prednosť pred parametrami premenných prostredia - + Help Nápoveda @@ -2881,13 +3067,13 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty - Resume torrents - Obnoviť torrenty + Start torrents + - Pause torrents - Pozastaviť torrenty + Stop torrents + @@ -2898,15 +3084,20 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty ColorWidget - + Edit... Upraviť... - + Reset Vrátiť pôvodné + + + System + + CookiesDialog @@ -2947,12 +3138,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty CustomThemeSource - + Failed to load custom theme style sheet. %1 Nepodarilo sa načítať vlastný štýl motívu: %1 - + Failed to load custom theme colors. %1 Nepodarilo sa načítať farby vlastného motívu: %1 @@ -2960,7 +3151,7 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty DefaultThemeSource - + Failed to load default theme colors. %1 Nepodarilo sa načítať farby východzieho motívu. %1 @@ -2979,23 +3170,23 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty - Also permanently delete the files - Odstrániť aj súbory natrvalo + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Naozaj chcete odstrániť '%1' zo zoznamu prenosov? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Naozaj chcete odstrániť týchto '%1' torrentov zo zoznamu prenosov? - + Remove Odstrániť @@ -3008,12 +3199,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Stiahnuť z viacerých URL - + Add torrent links Pridať odkazy na torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Jeden odkaz na riadok (sú podporované odkazy HTTP, Magnet aj info-hash) @@ -3023,12 +3214,12 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Stiahnuť - + No URL entered Nebola zadaná URL - + Please type at least one URL. Prosím, napíšte aspoň jednu URL. @@ -3187,25 +3378,48 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Chyba syntaxe: Súbor filtra nie je platný PeerGuardian P2B súbor. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrent sa sťahuje... Zdroj: "%1" - - Trackers cannot be merged because it is a private torrent - Trackery nemožno zlúčiť, pretože je to súkromný torrent - - - + Torrent is already present Torrent už je pridaný - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' už existuje v zozname pre stiahnutie. Prajete si zlúčiť trackery z nového zdroja? @@ -3213,38 +3427,38 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty 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 - + Database corrupted: no data section found. Poškodená databáza: nebola nájdená žiadna dátová sekcia. @@ -3252,17 +3466,17 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Veľkosť HTTP požiadavky presahuje limit, zatváram socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Neplatná metóda HTTP požiadavky, socket sa zatvára. IP: %1. Metóda: "%2" - + Bad Http request, closing socket. IP: %1 Chybná Http požiadavka, zatváram socket. IP: %1 @@ -3303,26 +3517,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty IconWidget - + Browse... Prechádzať... - + Reset Vrátiť pôvodné - + Select icon Vybrať ikonu - + Supported image files Podporované súbory obrázkov + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Správa napájania našla vhodné D-Bus rozhranie. Rozhranie: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Chyba správy napájania. Akcia: %1. Chyba: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Neočakávaná chyba správy napájania. Stav: %1. Chyba: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3602,13 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 bol zablokovaný. Dôvod: %2. - + %1 was banned 0.0.0.0 was banned %1 bol zablokovaný @@ -3369,60 +3617,60 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 je neznámy parameter príkazového riadka - - + + %1 must be the single command line parameter. %1 musí byť jediný parameter príkazového riadka - + Run application with -h option to read about command line parameters. Spustite aplikáciu s parametrom -h pre zobrazenie nápovedy o prípustných parametroch. - + Bad command line Chyba v príkazovom riadku - + Bad command line: Chyba v príkazovom riadku: - + An unrecoverable error occurred. Vyskytla sa nenapraviteľná chyba + - qBittorrent has encountered an unrecoverable error. qBittorrent narazil na nenapraviteľnú chybu. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3683,680 @@ Podporuje formáty: S01E01, 1x1, 2017.12.31 a 31.12.2017 (podporuje aj formáty &Úpravy - + &Tools Nás&troje - + &File &Súbor - + &Help &Pomocník - + On Downloads &Done Po &skončení sťahovania - + &View &Zobraziť - + &Options... Mo&žnosti... - - &Resume - Pok&račovať - - - + &Remove Odst&rániť - + Torrent &Creator &Vytvoriť torrent - - + + Alternative Speed Limits Alternatívne obmedzenia rýchlostí - + &Top Toolbar Panel nás&trojov - + Display Top Toolbar Zobraziť horný panel nástrojov - + Status &Bar Stavový &riadok - + Filters Sidebar Bočný panel s filtrami - + 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 - + Do&nate! &Prispejte! - + + Sh&utdown System + + + + &Do nothing Nerobiť nič - + Close Window Zatvoriť okno - - R&esume All - Pokračovať vš&etky - - - + Manage Cookies... Spravovať Cookies... - + Manage stored network cookies Spravovať cookies uložené z internetu - + Normal Messages Normálne správy - + Information Messages Informačné správy - + Warning Messages Upozorňujúce správy - + Critical Messages Kritické správy - + &Log Žurná&l - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Nastaviť globálne rýchlostné limity... - + Bottom of Queue Koniec fronty - + Move to the bottom of the queue Presunúť na koniec fronty - + Top of Queue Začiatok fronty - + Move to the top of the queue Presunúť na začiatok fronty - + Move Down Queue Presunúť frontu nižšie - + Move down in the queue Presunúť nižšie vo fronte - + Move Up Queue Presunúť frontu vyšie - + Move up in the queue Presunúť vyššie vo fronte - + &Exit qBittorrent &Ukončiť qBittorrent - + &Suspend System U&spať systém - + &Hibernate System Uspať systém na &disk - - S&hutdown System - &Vypnúť systém - - - + &Statistics Štatistik&a - + Check for Updates &Skontrolovať aktualizácie - + Check for Program Updates Skontrolovať aktualizácie programu - + &About O &aplikácii - - &Pause - &Pozastaviť - - - - P&ause All - Poz&astaviť všetky - - - + &Add Torrent File... Prid&ať torrentový súbor... - + Open Otvoriť - + E&xit U&končiť - + Open URL Otvoriť URL - + &Documentation &Dokumentácia - + Lock Zamknúť - - - + + + Show Zobraziť - + Check for program updates Skontrolovať aktualizácie programu - + 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í - + Clear the password Vyčistiť heslo - + &Set Password &Nastaviť heslo - + Preferences Voľby - + &Clear Password &Vymazať heslo - + Transfers Prenosy - - + + qBittorrent is minimized to tray qBittorrent bol minimalizovaný do lišty - - - + + + This behavior can be changed in the settings. You won't be reminded again. Toto správanie môže byť zmenené v nastavení. Nebudete znovu upozornení. - + 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: - + Are you sure you want to clear the password? Ste si istý, že chcete vyčistiť heslo? - + Use regular expressions Používať regulárne výrazy - + + + Search Engine + Vyhľadávač + + + + Search has failed + Hľadanie zlyhalo + + + + Search has finished + Hľadanie skončené + + + Search Vyhľadávanie - + Transfers (%1) Prenosy (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent bol práve aktualizovaný a je potrebné ho reštartovať, aby sa zmeny prejavili. - + qBittorrent is closed to tray qBittorrent bol zavretý do lišty - + Some files are currently transferring. Niektoré súbory sa práve prenášajú. - + Are you sure you want to quit qBittorrent? Ste si istý, že chcete ukončiť qBittorrent? - + &No &Nie - + &Yes &Áno - + &Always Yes &Vždy áno - + Options saved. Možnosti boli uložené. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Chýbajúci Python Runtime - + qBittorrent Update Available Aktualizácia qBittorentu je dostupná - + 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ý. - - + + Old Python Runtime Zastaraný Python Runtime - + A new version is available. Nová verzia je dostupná - + Do you want to download %1? Prajete si stiahnuť %1? - + Open changelog... Otvoriť zoznam zmien... - + 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 - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Vaša verzia Pythonu (%1) je zastaraná. Minimálna verzia: %2. Chcete teraz nainštalovať novšiu verziu? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Vaša verzia Pythonu (%1) je zastaraná. Pre sprevádzkovanie vyhľadávačov aktualizujte na najnovšiu verziu. Minimálna verzia: %2. - + + Paused + Pozastavené + + + Checking for Updates... Overujem aktualizácie... - + Already checking for program updates in the background Kontrola aktualizácií programu už prebieha na pozadí - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 - + Filter torrents... Filtrovať torrenty... - + Filter by: Filtrovať podľa: - + The password must be at least 3 characters long Heslo musí mať aspoň 3 znaky - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Otvoriť torrent súbory - + Torrent Files Torrent súbory @@ -4232,7 +4551,12 @@ Prosím, nainštalujte ho ručne. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoruje sa SSL chyba, URL: %1, chyby: "%2" @@ -5526,47 +5850,47 @@ Prosím, nainštalujte ho ručne. Net::Smtp - + Connection failed, unrecognized reply: %1 Spojenie zlyhalo, neznáma odpoveď: %1 - + Authentication failed, msg: %1 Autentifikácia zlyhala, správa: %1 - + <mail from> was rejected by server, msg: %1 <mail from> bolo odmietnuté serverom, správa: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> bolo odmietnuté serverom, správa: %1 - + <data> was rejected by server, msg: %1 <data>bolo odmietnuté serverom, správa: %1 - + Message was rejected by the server, error: %1 Správa bola odmietnutá serverom, chyba: %1 - + Both EHLO and HELO failed, msg: %1 EHLO aj HELO zlyhali, správa: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Zdá sa, že SMTP server nepodporuje režimy autentifikácie, ktoré podporujeme [CRAM-MD5|PLAIN|LOGIN]. Autentifikácia sa preskočí, keďže by pravdepodobne aj tak zlyhala... Režimy autentifikácie servera: %1 - + Email Notification Error: %1 Chyba oznámenia e-mailom: %1 @@ -5604,299 +5928,283 @@ Prosím, nainštalujte ho ručne. Bittorrent - + RSS RSS - - Web UI - Webové rozhranie - - - + Advanced Rozšírené - + Customize UI Theme... Prispôsobiť motív používateľského rozhrania... - + Transfer List Zoznam prenosov - + Confirm when deleting torrents Potvrdiť zmazanie torrentu - - Shows a confirmation dialog upon pausing/resuming all the torrents - Zobrazí dialógové okno s potvrdením pri pozastavení/pokračovaní všetkých torrentov. - - - - Confirm "Pause/Resume all" actions - Potvrdzovať akcie "Pozastaviť/Obnoviť všetky" - - - + Use alternating row colors In table elements, every other row will have a grey background. Používať striedavé farby pozadia riadkov - + Hide zero and infinity values Skryť nulové a nekonečné hodnoty - + Always Vždy - - Paused torrents only - Len pozastavené torrenty - - - + Action on double-click Akcia po dvojitom kliknutí - + Downloading torrents: Sťahované torrenty: - - - Start / Stop Torrent - Spusti / zastavi torrent - - - - + + Open destination folder Otvor cieľový priečinok - - + + No action Neurob nič - + Completed torrents: Dokončené torrenty: - + Auto hide zero status filters Automaticky skryť filtre s nulovým statusom - + Desktop Plocha - + Start qBittorrent on Windows start up Spustiť qBittorrent pri štarte Windows - + Show splash screen on start up Zobraziť pri spustení štartovaciu obrazovku - + Confirmation on exit when torrents are active Vyžiadať potvrdenie pri ukončení programu ak sú torrenty aktívne - + Confirmation on auto-exit when downloads finish Vyžiadať potvrdenie pri automatickom ukončení programu ak sťahovanie skončilo - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Pre nastavenie qBittorrentu ako východzieho programu pre .torrent súbory a/alebo Magnet odkazy<br/>, môžete použiť dialógové okno <span style=" font-weight:600;">Východzie programy</span> z <span style=" font-weight:600;">Ovládacích panelov</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Rozloženie obsahu torrentu: - + Original Pôvodné - + Create subfolder Vytvoriť podpriečinok - + Don't create subfolder Nevytvárať podpriečinok - + The torrent will be added to the top of the download queue Torrent bude pridaný navrch frontu pre sťahovanie - + Add to top of queue The torrent will be added to the top of the download queue Pridať navrch poradovníka - + When duplicate torrent is being added Keď sa pridáva duplicitný torrent - + Merge trackers to existing torrent Zlúčiť trackery do existujúceho torrentu - + Keep unselected files in ".unwanted" folder Ponechať neoznačené súbory v adresári ".unwanted" - + Add... Pridať... - + Options.. Možnosti.. - + Remove Odstrániť - + Email notification &upon download completion Upozornenie o dokončení sťahovania emailom - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Protokol peer pripojenia: - + Any Akýkoľvek - + I2P (experimental) I2P (experimentálne) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Ak je zapnutý &quot;zmiešaný režim&quot; I2P torrenty majú povolené získavať peerov tiež z iných zdrojov ako z trackera a pripájať sa na bežné IP adresy bez poskytovania akejkoľvek anonymizácie. To môže byť užitočné, ak používateľ nemá záujem o anonymizáciu I2P, no napriek tomu chce byť schopný pripájať sa na I2P peerov.</p></body></html> - - - + Mixed mode Zmiešaný režim - - Some options are incompatible with the chosen proxy type! - Niektoré voľby nie sú kompatibilné s vybraným typom proxy! - - - + If checked, hostname lookups are done via the proxy Ak je zaškrnuté, vyhľadávanie názvu hostiteľa prebieha cez proxy - + Perform hostname lookup via proxy Zisťovať názov hostiteľa cez proxy - + Use proxy for BitTorrent purposes Použiť proxy pre účely BitTorrent - + RSS feeds will use proxy RSS kanály budú používať proxy - + Use proxy for RSS purposes Použiť proxy pre účely RSS - + Search engine, software updates or anything else will use proxy Vyhľadávač, softvérové aktualizácie alebo čokoľvek iné bude používať proxy - + Use proxy for general purposes Použiť proxy pre všeobecné účely - + IP Fi&ltering IP fi&ltrovanie - + Schedule &the use of alternative rate limits Naplánovať použitie alternatívnych rýchlostných obmedzení - + From: From start time Od: - + To: To end time Do: - + Find peers on the DHT network Hľadať peery v sieti DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Vyžadovať šifrovanie: Pripojí sa iba k peerom pomocou šifrovania protokolu Zakázať šifrovanie: Pripojí sa iba k peerom bez šifrovania protokolu - + Allow encryption Povoliť šifrovanie - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Ďalšie informácie</a>) - + Maximum active checking torrents: Maximum súbežne kontrolovaných torrentov: - + &Torrent Queueing Zaraďovanie &torrentov do frontu - + When total seeding time reaches Keď celkový čas seedovania dosiahne - + When inactive seeding time reaches Keď čas neaktívneho seedovania dosiahne - - A&utomatically add these trackers to new downloads: - Automaticky pridať tieto trackery k novým sťahovaniam: - - - + RSS Reader RSS čítačka - + Enable fetching RSS feeds Zapnúť načítanie RSS kanálov - + Feeds refresh interval: Interval obnovovania kanálov: - + Same host request delay: - + Maximum number of articles per feed: Maximálny počet článkov na kanál: - - - + + + min minutes min - + Seeding Limits Limity seedovania - - Pause torrent - Pozastaviť torrent - - - + Remove torrent Odstrániť torrent - + Remove torrent and its files Zmazať torrent a jeho súbory - + Enable super seeding for torrent Povoliť super seeding pre torrent - + When ratio reaches Keď je dosiahnuté ratio - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Automatické RSS sťahovanie torrentov - + Enable auto downloading of RSS torrents Zapnúť automatické RSS sťahovanie torrentov - + Edit auto downloading rules... Upraviť pravidlá automatického sťahovania... - + RSS Smart Episode Filter RSS inteligentný filter epizód - + Download REPACK/PROPER episodes Stiahnuť REPACK/PROPER epizódy - + Filters: Filtre: - + Web User Interface (Remote control) Webové rozhranie (vzdialené ovládanie) - + IP address: IP adresa: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Zvolte IPv4 alebo IPv6 adresu. Môžete zadať "0.0.0.0" pre akúkoľv "::" pre akúkoľvek IPv6 adresu, alebo "*" pre akékoľvek IPv4 alebo IPv6 adresy. - + Ban client after consecutive failures: Zakázať klienta po následných zlyhaniach: - + Never Nikdy - + ban for: ban pre: - + Session timeout: Časový limit relácie: - + Disabled Vypnuté - - Enable cookie Secure flag (requires HTTPS) - Povoliť príznak zabezpečenie súborov cookie (vyžaduje HTTPS) - - - + Server domains: Serverové domény: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ mali vložiť doménové názvy použité pre WebUI server. Použite ';' pre oddelenie viacerých položiek. Môžete použiť masku '*'. - + &Use HTTPS instead of HTTP &Používať HTTPS namiesto HTTP - + Bypass authentication for clients on localhost Obísť autentifikáciu pri prihlasovaní z lokálneho počítača - + Bypass authentication for clients in whitelisted IP subnets Preskočiť overenie klientov na zozname povolených IP podsietí - + IP subnet whitelist... Zoznam povolených IP podsietí... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Uveďte IP adresy (alebo podsiete, napr. 0.0.0.0/24) reverzného proxy pre preposlanie adresy klienta (hlavička X-Forwarded-For). Použite ';' pre rozdelenie viacerých položiek. - + Upda&te my dynamic domain name Aktualizovať môj dynamický doménový názov - + Minimize qBittorrent to notification area Minimalizovať qBittorrent do oznamovacej oblasti - + + Search + Vyhľadávanie + + + + WebUI + + + + Interface Rozhranie - + Language: Jazyk: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Štýl ikony v oznamovacej oblasti: - - + + Normal Normálny - + File association Asociácia typu súboru - + Use qBittorrent for .torrent files Otvárať .torrent súbory programom qBittorrent - + Use qBittorrent for magnet links Otvárať odkazy magnet programom qBittorrent - + Check for program updates Skontrolovať aktualizácie programu - + Power Management Správa napájania - + + &Log Files + + + + Save path: Uložiť do: - + Backup the log file after: Zálohovať log súbor po dosiahnutí: - + Delete backup logs older than: Vymazať zálohy log súborov staršie ako: - + + Show external IP in status bar + + + + When adding a torrent Pri pridávaní torrentu - + Bring torrent dialog to the front Preniesť dialóg torrentu do popredia - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled Vymazať tiež .torrent súbory, ktorých pridanie zlyhalo - + Also when addition is cancelled Vymazať tiež ak bolo pridanie zrušené - + Warning! Data loss possible! Upozornenie! Vyskytla sa možná strata dát! - + Saving Management Správa ukladania - + Default Torrent Management Mode: Prednastavený režim správy torrentov: - + Manual Manuálny - + Automatic Automatický - + When Torrent Category changed: Ak sa zmení kategória torrentu: - + Relocate torrent Premiestni torrent - + Switch torrent to Manual Mode Prepni torrent do manuálneho režimu - - + + Relocate affected torrents Premiestni torrenty, ktorých sa zmena týka - - + + Switch affected torrents to Manual Mode Prepni torrenty, ktorých sa zmena týka, do manuálneho režimu - + Use Subcategories Použi podkategórie - + Default Save Path: Predvolená cesta pre ukladanie: - + Copy .torrent files to: Kopírovať .torrent súbory do: - + Show &qBittorrent in notification area Zobraziť qBittorrent v oznamovacej oblasti - - &Log file - Log súbor - - - + Display &torrent content and some options Zobraziť obsah torrentu a ďalšie voľby - + De&lete .torrent files afterwards Neskôr zm&azať .torrent súbory - + Copy .torrent files for finished downloads to: Kopírovať .torrent súbory po dokončení sťahovania do: - + Pre-allocate disk space for all files Dopredu alokovať miesto pre všetky súbory - + Use custom UI Theme Použite vlastný motív používateľského rozhrania - + UI Theme file: Súbor motívu používateľského rozhrania: - + Changing Interface settings requires application restart Zmena nastavenia rozhranie vyžaduje reštart aplikácie - + Shows a confirmation dialog upon torrent deletion Zobrazí dialóg pre potvrdenie po odstránení torrentu - - + + Preview file, otherwise open destination folder Náhľad súboru, inak otvoriť cieľový priečinok - - - Show torrent options - Zobraziť možnosti torrentu - - - + Shows a confirmation dialog when exiting with active torrents Zobrazí dialógové okno s potvrdením pri ukončení s aktívnymi torrentami - + When minimizing, the main window is closed and must be reopened from the systray icon Pri minimalizácii je hlavné okno zatvorené a musí byť znovu otvorené z ikony systray - + The systray icon will still be visible when closing the main window Po zatvorení hlavného okna bude ikona systray stále viditeľná - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Po zatvorení minimalizuj qBittorrent do oznamovacej oblasti - + Monochrome (for dark theme) Monochromatický (Tmavý motív) - + Monochrome (for light theme) Monochromatický (Svetlý motív) - + Inhibit system sleep when torrents are downloading Potlačiť prechod systému do režimu spánku ak sú torrenty sťahované - + Inhibit system sleep when torrents are seeding Potlačiť prechod systému do režimu spánku ak sú torrenty odosielané - + Creates an additional log file after the log file reaches the specified file size Vytvorí ďalší súbor protokolu potom, čo súbor protokolu dosiahne zadanej veľkosti súboru - + days Delete backup logs older than 10 days dní - + months Delete backup logs older than 10 months mesiacov - + years Delete backup logs older than 10 years rokov - + Log performance warnings Logovať upozornenia ohľadom výkonu - - The torrent will be added to download list in a paused state - Torrent bude pridaný do zoznamu sťahovania v pozastavenom stave - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Nespúšťať sťahovanie automaticky - + Whether the .torrent file should be deleted after adding it Či sa má súbor .torrent po pridaní odstrániť - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Pred začatím sťahovania vyhradí všetko potrebné miesto na disku, aby sa minimalizovala fragmentácia. Užitočné iba pre HDD. - + Append .!qB extension to incomplete files Pridať príponu .!qB k nedokončeným súborom - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Po stiahnutí torrentu ponúknite pridanie torrentov zo všetkých .torrent súborov, ktoré sa v ňom nachádzajú - + Enable recursive download dialog Zapnúť dialóg rekurzívneho sťahovania - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automaticky: O rôznych vlastnostiach torrentu (napr. cesta uloženie) rozhodne príslušná kategória Ručne: Rôzne vlastnosti torrentu (napr. cesta uloženia) musia byť priradené ručne - + When Default Save/Incomplete Path changed: Keď sa zmení východzia cesta uloženia/nekompletných: - + When Category Save Path changed: Ak sa zmení cesta pre ukladanie kategórie: - + Use Category paths in Manual Mode Použiť cesty kategórií v manuálnom režime - + Resolve relative Save Path against appropriate Category path instead of Default one Použiť relatívnu cestu pre uloženie podľa kategórie namiesto východzej cesty - + Use icons from system theme Používať ikony systémového motívu - + Window state on start up: Stav okna po spustení: - + qBittorrent window state on start up Stav okna qBittorrentu po spustení - + Torrent stop condition: Podmienka pre zastavenie torrentu: - - + + None Žiadna - - + + Metadata received Metadáta obdržané - - + + Files checked Súbory skontrolované - + Ask for merging trackers when torrent is being added manually Pýtať sa na zlúčenie trackerov pri manuálnom pridávaní torrentu - + Use another path for incomplete torrents: Pre nedokončené torrenty použiť inú cestu: - + Automatically add torrents from: Automaticky pridať torrenty z: - + Excluded file names Vynechané názvy súborov - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,812 @@ readme.txt: filtruje presný názov súboru. readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale nie 'readme10.txt'. - + Receiver Príjemca - + To: To receiver Do: - + SMTP server: SMTP server: - + Sender Odosielateľ - + From: From sender Od: - + This server requires a secure connection (SSL) Tento server vyžaduje zabezpečené pripojenie (SSL) - - + + Authentication Autentifikácia - - - - + + + + Username: Meno používateľa: - - - - + + + + Password: Heslo: - + Run external program Spustiť externý program - - Run on torrent added - Spustiť pri pridaní torrentu - - - - Run on torrent finished - Spustiť pri dokončení torrentu - - - + Show console window Zobraziť okno konzoli - + TCP and μTP TCP a μTP - + Listening Port Načúvací port - + Port used for incoming connections: Port pre prichádzajúce spojenia: - + Set to 0 to let your system pick an unused port Nastavte na 0, aby váš systém vybral nepoužívaný port - + Random Náhodný - + Use UPnP / NAT-PMP port forwarding from my router Použiť presmerovanie portov UPnP/NAT-PMP z môjho smerovača - + Connections Limits Obmedzenia spojení - + Maximum number of connections per torrent: Maximálny počet spojení na torrent: - + Global maximum number of connections: Maximálny celkový počet spojení: - + Maximum number of upload slots per torrent: Maximálny počet slotov pre nahrávanie na torrent: - + Global maximum number of upload slots: Maximálny celkový počet slotov na nahrávanie: - + Proxy Server Proxy server - + Type: Typ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Host: - - - + + + Port: Port: - + 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 - + A&uthentication Overenie - - Info: The password is saved unencrypted - Info: Heslo sa ukladá nezašifrované - - - + Filter path (.dat, .p2p, .p2b): Cesta k filtrom (.dat, .p2p, .p2b): - + Reload the filter Znovu načítať filter - + Manually banned IP addresses... Manuálne zablokované IP adresy... - + Apply to trackers Použiť na trackery - + Global Rate Limits Globálne rýchlostné obmedzenia - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Nahrávanie: - - + + Download: Sťahovanie: - + Alternative Rate Limits Alternatívne rýchlostné obmedzenia - + Start time Doba spustenia - + End time Doba ukončenia - + When: Kedy: - + Every day Každý deň - + Weekdays Dni v týždni - + Weekends Víkendy - + Rate Limits Settings Nastavenia rýchlostných obmedzení - + Apply rate limit to peers on LAN Použiť rýchlostné obmedzenie na rovesníkov v LAN - + Apply rate limit to transport overhead Použiť rýchlostné obmedzenie na réžiu prenosu - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vymieňať si zoznam rovesníkov s kompatibilnými klientmi siete Bittorrent (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Zapnúť Local Peer Discovery - umožní nájsť viac rovesníkov - + Encryption mode: Režim šifrovania: - + Require encryption Vyžadovať šifrovanie - + Disable encryption Vypnúť šifrovanie - + Enable when using a proxy or a VPN connection Zapnúť počas používania proxy alebo spojenia VPN - + Enable anonymous mode Zapnúť anonymný režim - + Maximum active downloads: Maximálny počet aktívnych sťahovaní: - + Maximum active uploads: Maximálny počet aktívnych nahrávaní: - + Maximum active torrents: Maximálny počet aktívnych torrentov: - + Do not count slow torrents in these limits Nepočítať pomalé torrenty do týchto obmedzení - + Upload rate threshold: Limit rýchlosti odosielania: - + Download rate threshold: Limit rýchlosti sťahovania: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Časovač nečinnosti torrentu: - + then potom - + Use UPnP / NAT-PMP to forward the port from my router Použiť presmerovanie portov UPnP/NAT-PMP z môjho smerovača - + Certificate: Certifikát: - + Key: Kľúč: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Informácie o certifikátoch</a> - + Change current password Zmena aktuálneho hesla - - Use alternative Web UI - Použiť alternatívne Web UI - - - + Files location: Umiestnenie súborov: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Zabezpečenie - + Enable clickjacking protection Zapnúť ochranu clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Zapnúť ochranu Cross-Site Request Forgery (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation Zapnúť overovanie hlavičky hostiteľa - + Add custom HTTP headers Pridať vlastné HTTP hlavičky - + Header: value pairs, one per line Hlavička: páry hodnôt, jedna na riadok - + Enable reverse proxy support Povoliť podporu reverzného servera proxy - + Trusted proxies list: Zoznam dôveryhodných serverov proxy: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Služba: - + Register Zaregistrovať sa - + Domain name: Názov domény: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Nastavením týchto volieb môžete <strong>nenávratne stratiť</strong> vaše .torrent súbory! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Ak zapnete druhú voľbu (&ldquo;Tiež, keď je pridanie zrušené&rdquo;) .torrent súbor <strong>bude zmazaný</strong> aj keď stlačíte &ldquo;<strong>Zrušiť</strong>&rdquo; v dialógu &ldquo;Pridať torrent &rdquo; - + Select qBittorrent UI Theme file Vyberte súbor motívu používateľského rozhrania qBittorrent - + Choose Alternative UI files location Vybrať umiestnenie súborov Alternatívneho UI - + Supported parameters (case sensitive): Podporované parametre (rozlišujú sa veľké a malé písmená): - + Minimized Minimalizované - + Hidden Skryté - + Disabled due to failed to detect system tray presence Vypnuté, pretože sa nepodarilo zistiť prítomnosť systémovej lišty - + No stop condition is set. Žiadna podmienka pre zastavenie nie je nastavená. - + Torrent will stop after metadata is received. Torrent sa zastaví po obdržaní metadát. - Torrents that have metadata initially aren't affected. - Torrenty, ktoré majú iniciálne metadáta, nie sú ovplyvnené. - - - + Torrent will stop after files are initially checked. Torrent sa zastaví po iniciálnej kontrole súborov. - + This will also download metadata if it wasn't there initially. Toto nastavenie taktiež stiahne metadáta, ak nie sú iniciálne prítomné. - + %N: Torrent name %N: Názov torrentu - + %L: Category %L: Kategória - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tip: Ohraničiť parameter úvodzovkami, aby nedošlo k odstrihnutiu textu za medzerou (napr. "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (žiadny) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent bude uznaný pomalým ak rýchlosti sťahovania a odosielania zostanú pod týmito hodnotami "Časovače nečinnosti torrentu" v sekundách - + Certificate Certifikát - + Select certificate Vybrať certifikát - + Private key Privátny kľúč - + Select private key Vybrať privátny kľúč - + WebUI configuration failed. Reason: %1 WebUI konfigurácia zlyhala. Dôvod: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Vyberte sledovaný adresár - + Adding entry failed Pridanie položky zlyhalo - + The WebUI username must be at least 3 characters long. Používateľské meno pre WebUI musí mať aspoň 3 znaky - + The WebUI password must be at least 6 characters long. Heslo pre WebUI musí mať aspoň 6 znakov. - + Location Error Chyba umiestnenia - - + + Choose export directory Vyberte adresár pre export - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Nastavením týchto volieb qBittorrent <strong>vymaže</strong> .torrent súbory po ich úspešnom (prvá voľba) alebo neúspešnom (druhá voľba) pridaní do zoznamu na sťahovanie. Toto nastavenie sa použije <strong>nielen</strong> na súbory otvorené cez položku menu &ldquo;Pridať torrent&rdquo; ale aj na súbory otvorené cez <strong>asociáciu typu súborov</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Súbor motívu používateľského rozhrania qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Značky (oddelené čiarkou) - + %I: Info hash v1 (or '-' if unavailable) %I: Info hash v1 (alebo '-' ak nie je k dispozícii) - + %J: Info hash v2 (or '-' if unavailable) %J: Info hash v2 (alebo '-' ak nie je k dispozícii) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (buď sha-1 info hash pre v1 torrent alebo neúplný sha-256 info hash pre v2/hybrid torrent) - - - + + + Choose a save directory Vyberte adresár pre ukladanie - + Torrents that have metadata initially will be added as stopped. - + 71%match +Torrenty, ktoré majú iniciálne metadáta, budú pridané ako zastavené. - + Choose an IP filter file Zvoliť súbor filtra IP - + All supported filters Všetky podporované filtre - + The alternative WebUI files location cannot be blank. Alternatívne umiestnenie WebUI súborov nemôže byť prázdne. - + 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 Zadaný filter IP bol úspešne spracovaný: %1 pravidiel bolo použitých. - + Preferences Voľby - + Time Error Chyba času - + The start time and the end time can't be the same. Čas začiatku a čas ukončenia nemôžu byť rovnaké. - - + + Length Error Chyba dĺžky @@ -7335,241 +7766,246 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PeerInfo - + Unknown Neznáma - + Interested (local) and choked (peer) Záujem (miestny) a priškrtený (peer) - + Interested (local) and unchoked (peer) Záujem (miestny) a nepriškrtený (peer) - + Interested (peer) and choked (local) Záujem (peer) a priškrtený (miestny) - + Interested (peer) and unchoked (local) Záujem (peer) a nepriškrtený (miestny) - + Not interested (local) and unchoked (peer) Nezáujem (miestny) a priškrtený (peer) - + Not interested (peer) and unchoked (local) Nezáujem (peer) a nepriškrtený (miestny) - + Optimistic unchoke Optimistické odškrtenie - + Peer snubbed Odmietnutý peer - + Incoming connection Prichádzajúce spojenie - + Peer from DHT Peer z DHT - + Peer from PEX Peer z PEX - + Peer from LSD Peer z LSD - + Encrypted traffic Šifrovaný prenos - + Encrypted handshake Šifrovaný handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Krajina/Oblasť - + IP/Address IP/Adresa - + Port Port - + Flags Príznaky - + Connection Spojenie - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 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ť: - + Files i.e. files that are being downloaded right now Súbory - + Column visibility Viditeľnosť stĺpcov - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť rozmery viditeľných stĺpcov podľa veľkosti ich obsahu - + Add peers... Pridať rovesníkov... - - + + Adding peers Pridanie rovesníkov - + Some peers cannot be added. Check the Log for details. Niektorých rovesníkov nebolo možné pridať. Pozrite prosím Log pre detaily. - + Peers are added to this torrent. Peeri sú pridaný do tohto torrentu. - - + + Ban peer permanently Zablokovať rovesníka na stálo - + Cannot add peers to a private torrent Nemožno pridať peerov do súkromného torrentu - + Cannot add peers when the torrent is checking Nemožno pridať peerov počas kontroly torrentu - + Cannot add peers when the torrent is queued Nemožno pridať peerov, keď je torrent zaradený vo fronte - + No peer was selected Nebol vybraný žiadny peer - + Are you sure you want to permanently ban the selected peers? Naozaj chcete natrvalo zablokovať vybraných peerov? - + Peer "%1" is manually banned Rovesník "%1" je ručne zablokovaný - + N/A nie je k dispozícií - + Copy IP:port Kopírovať IP:port @@ -7587,7 +8023,7 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Pridať nasledovných peerov (jeden peer na riadok): - + Format: IPv4:port / [IPv6]:port Formát: IPv4:port / [IPv6]:port @@ -7628,27 +8064,27 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale PiecesBar - + Files in this piece: Súbory v tejto časti: - + File in this piece: Súbor v tejto časti: - + File in these pieces: Súbor v týchto častiach: - + Wait until metadata become available to see detailed information Počkajte než bude možné zobraziť metadáta pre detailnejšie informácie - + Hold Shift key for detailed information Držte klávesu Shift pre detailné informácie @@ -7661,58 +8097,58 @@ readme[0-9].txt: filtruje 'readme1.txt', 'readme2.txt', ale Pluginy vyhľadávania - + Installed search plugins: Inštalované pluginy vyhľadávania: - + Name Názov - + Version Verzia - + Url Url - - + + Enabled Zapnuté - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Varovanie: Uistite sa, že dodržiavate zákony Vašej krajiny o ochrane duševného vlastníctva keď sťahujete torrenty z ktoréhokoľvek z týchto vyhľadávačov. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Nové pluginy pre vyhľadávanie môžete získať tu: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Nainštalovať nový - + Check for updates Skontrolovať aktualizácie - + Close Zatvoriť - + Uninstall Odinštalovať @@ -7833,98 +8269,65 @@ Tieto moduly však boli vypnuté. Zdroj pluginu - + Search plugin source: Zdroj pluginu vyhľadávača: - + Local file Lokálny súbor - + Web link Webový odkaz - - PowerManagement - - - qBittorrent is active - qBittorent je aktívný - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Správa napájania našla vhodné D-Bus rozhranie. Rozhranie: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Chyba správy napájania. Nebolo nájdené vhodné D-Bus rozhranie. - - - - - - Power management error. Action: %1. Error: %2 - Chyba správy napájania. Akcia: %1. Chyba: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Neočakávaná chyba správy napájania. Stav: %1. Chyba: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Nasledujúce súbory torrentu "%1" podporujú náhľad, prosím vyberte jeden z nich: - + Preview Náhľad - + Name Názov - + Size Veľkosť - + Progress Priebeh - + Preview impossible Náhľad nie je možný - + Sorry, we can't preview this file: "%1". Je nám ľúto, nemôžeme zobraziť náhľad tohto súboru: "%1". - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť rozmery viditeľných stĺpcov podľa veľkosti ich obsahu @@ -7937,27 +8340,27 @@ Tieto moduly však boli vypnuté. Private::FileLineEdit - + Path does not exist Cesta neexistuje - + Path does not point to a directory Cesta nesmeruje k adresáru - + Path does not point to a file Cesta nesmeruje k súboru - + Don't have read permission to path Chýbajúce oprávnenia na čítanie z cesty - + Don't have write permission to path Chýbajúce oprávnenia na zápis do cesty @@ -7998,12 +8401,12 @@ Tieto moduly však boli vypnuté. PropertiesWidget - + Downloaded: Stiahnuté: - + Availability: Dostupnosť: @@ -8018,53 +8421,53 @@ Tieto moduly však boli vypnuté. Prenos - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Č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é: @@ -8074,193 +8477,220 @@ Tieto moduly však boli vypnuté. Spojení: - + Information Informácie - + Info Hash v1: Info Hash v1: - + Info Hash v2: Info Hash v2: - + Comment: Komentár: - + Select All Vybrať všetky - + Select None Nevybrať nič - + Share Ratio: Pomer zdieľania: - + Reannounce In: Znova ohlásiť o: - + Last Seen Complete: Posledné videné ukončenie: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Celková veľkosť: - + Pieces: Častí: - + Created By: Vytvoril: - + Added On: Pridané: - + Completed On: Dokončené: - + Created On: Vytvorené: - + + Private: + + + + Save Path: Uložené do: - + 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) - - + + + N/A nie je k dispozícií - + + Yes + Áno + + + + No + Nie + + + %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.) - - New Web seed - Nový webový seed + + Add web seed + Add HTTP source + - - Remove Web seed - Odstrániť webový seed + + Add web seed: + - - Copy Web seed URL - Kopírovať URL webového seedu + + + This web seed is already in the list. + - - Edit Web seed URL - Upraviť URL webového seedu - - - + Filter files... Filtruj súbory... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Grafy rýchlostí sú vypnuté - + You can enable it in Advanced Options Môžete ich zapnúť v Rozšírených voľbách. - - 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: @@ -8268,33 +8698,33 @@ Tieto moduly však boli vypnuté. RSS::AutoDownloader - - + + Invalid data format. Neplatný formát dát. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Nie je možné uložiť dáta AutoDownloaderu RSS v %1. Chyba: %2 - + Invalid data format Neplatný formát dát - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS článok '%1' vyhovuje pravidlu '%2'. Pokus o pridanie torrentu... - + Failed to read RSS AutoDownloader rules. %1 Nepodarilo sa načítať pravidlá RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Nie je možné načítať pravidlá RSS AutoDownloader. Príčina: %1 @@ -8302,22 +8732,22 @@ Tieto moduly však boli vypnuté. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Zlyhalo stiahnutie RSS kanálu u '%1'. Príčina '%2' - + RSS feed at '%1' updated. Added %2 new articles. RSS kanál u '%1' úspešne aktualizovaný. Pridané %2 nové články. - + Failed to parse RSS feed at '%1'. Reason: %2 Spracovanie RSS kanálu "%1" Príčina: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS feedu '%1' bol úspešne stiahnutý. Začínam ho spracovávať. @@ -8353,12 +8783,12 @@ Tieto moduly však boli vypnuté. RSS::Private::Parser - + Invalid RSS feed. Neplatný RSS kanál - + %1 (line: %2, column: %3, offset: %4). %1 (riadok: %2, stĺpec: %3, offset: %4). @@ -8366,103 +8796,144 @@ Tieto moduly však boli vypnuté. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nebolo možné uložiť konfiguráciu RSS relácie. Súbor: "%1". Chyba: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Nebolo možné uložiť dáta RSS relácie. Súbor: "%1". Chyba: "%2" - - + + RSS feed with given URL already exists: %1. RSS kanál so zadanou URL už už existuje: %1. - + Feed doesn't exist: %1. RSS kanál neexistuje: %1. - + Cannot move root folder. Nemožno presunúť koreňový adresár. - - + + Item doesn't exist: %1. Položka neexistuje: %1. - - Couldn't move folder into itself. - Nebolo možné presunúť adresár do seba. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Nemožno zmazať koreňový adresár. - + Failed to read RSS session data. %1 Nepodarilo sa získať dáta RSS relácie. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Nepodarilo sa spracovať dáta RSS relácie. Súbor: "%1". Chyba: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Nepodarilo sa získať dáta RSS relácie. Súbor: "%1". Chyba: "Neplatný formát dát." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Nepodarilo sa získať RSS kanál. Kanál: "%1". Dôvod: Vyžaduje sa URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Nepodarilo sa získať RSS kanál. Kanál: "%1". Dôvod: UID je neplatné. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Duplicitný RSS kanál už existuje. UID: "%1". Chyba: Zdá sa, že konfigurácia je poškodená. - + Couldn't load RSS item. Item: "%1". Invalid data format. Nepodarilo sa získať RSS položku. Položka: "%1". Neplatný formát dát. - + Corrupted RSS list, not loading it. Poškodený RSS zoznam, nezíska sa. - + Incorrect RSS Item path: %1. Nesprávna cesta položky RSS: %1. - + RSS item with given path already exists: %1. Položka RSS s danou cestou už existuje: %1. - + Parent folder doesn't exist: %1. Nadradený adresár neexistuje: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + RSS kanál neexistuje: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Interval obnovenia: + + + + sec + sec + + + + Default + Predvolený + + RSSWidget @@ -8482,8 +8953,8 @@ Tieto moduly však boli vypnuté. - - + + Mark items read Označiť položku ako prečítané @@ -8508,132 +8979,115 @@ Tieto moduly však boli vypnuté. Torrenty: (dvojklik pre stiahnutie) - - + + Delete Vymazať - + Rename... Premenovať... - + Rename Premenovať - - + + Update Aktualizovať - + New subscription... Nový odber... - - + + Update all feeds Aktualizovať všetky kanály - + Download torrent Stiahnuť torrent - + Open news URL Otvoriť adresu URL správ - + Copy feed URL Skopírovať URL kanála - + New folder... Nový priečinok... - - Edit feed URL... - Upraviť URL kanálu... + + Feed options... + - - Edit feed URL - Upraviť URL kanálu - - - + Please choose a folder name Prosím, vyberte názov priečinka - + Folder name: Názov priečinka: - + New folder Nový priečinok - - - Please type a RSS feed URL - Prosím, zadajte URL RSS kanálu - - - - - Feed URL: - URL kanálu: - - - + 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: - + Rename failed Premenovanie zlyhalo - + Date: Dátum: - + Feed: Kanál: - + Author: Autor: @@ -8641,38 +9095,38 @@ Tieto moduly však boli vypnuté. SearchController - + Python must be installed to use the Search Engine. Na použitie vyhľadávača musí byť nainštalovaný Python. - + Unable to create more than %1 concurrent searches. Nie je možné vytvoriť viac ako %1 hľadanie súčasne. - - + + Offset is out of range Odchylka je mimo rozsah - + All plugins are already up to date. Všetky pluginy sú aktuálne. - + Updating %1 plugins Aktualizuje sa %1 pluginov - + Updating plugin %1 Aktualizuje sa plugin %1 - + Failed to check for plugin updates: %1 Kontrola aktualizácii pluginov zlyhala: %1 @@ -8747,132 +9201,142 @@ Tieto moduly však boli vypnuté. Veľkosť: - + 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č - - - + Filter search results... Filtrovať výsledky hľadania... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Výsledky (zobrazuje <i>%1</i> z <i>%2</i>): - + Torrent names only Iba názvy torrentov - + Everywhere Všade - + Use regular expressions Používať regulárne výrazy - + Open download window Otvoriť okno sťahovania - + Download Stiahnuť - + Open description page Otvoriť stránku s popisom - + Copy Kopírovať - + Name Názov - + Download link Download link - + Description page URL URL stránky s popisom - + Searching... Hľadá sa... - + Search has finished Hľadanie skončené - + Search aborted Vyhľadávanie prerušené - + An error occurred during search... Počas vyhľadávania sa vyskytla chyba... - + Search returned no results Vyhľadávanie nevrátilo žiadne výsledky - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Viditeľnosť stĺpcov - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť rozmery viditeľných stĺpcov podľa veľkosti ich obsahu @@ -8880,104 +9344,104 @@ Tieto moduly však boli vypnuté. SearchPluginManager - + Unknown search engine plugin file format. Neznámy formát súboru pluginu vyhľadávača. - + Plugin already at version %1, which is greater than %2 Verzia nainštalovaného pluginu %1 je vyššia ako %2 - + A more recent version of this plugin is already installed. Novšia verzia tohto pluginu je už nainštalovaná. - + Plugin %1 is not supported. Plugin %1 nie je podporovaný. - - + + Plugin is not supported. Plugin nie je podporovaný. - + Plugin %1 has been successfully updated. Plugin %1 bol úspešne aktualizovaný. - + 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 - + Update server is temporarily unavailable. %1 Aktualizačný server je dočasne nedostupný. %1 - - + + Failed to download the plugin file. %1 Stiahnutie pluginu zlyhalo. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" je zastaralý, aktualizuje na verziu %2 - + Incorrect update info received for %1 out of %2 plugins. Obdržané nesprávne informácie o aktualizácii pre %1 z %2 pluginov. - + Search plugin '%1' contains invalid version string ('%2') Vyhľadávací plugin '%1' obsahuje neplatný reťazec verzia ('%2') @@ -8987,114 +9451,145 @@ Tieto moduly však boli vypnuté. - - - - Search Vyhľadávanie - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Žiadne vyhľadávacie pluginy nie sú nainštalované. Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, aby ste nejaké nainštalovali. - + Search plugins... Pluginy pre vyhľadávanie - + A phrase to search for. Hľadaný výraz. - + Spaces in a search term may be protected by double quotes. Medzery vo vyhľadávanom výraze môžu byť chránené dvojitými úvodzovkami. - + Example: Search phrase example Príklad: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: vyhľadať <b>foo bar</b> - + All plugins Všetky zásuvné moduly - + Only enabled Iba zapnuté - + + + Invalid data format. + Neplatný formát dát. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: vyhľadať <b>foo</b> a <b>bar</b> - + + Refresh + + + + Close tab Zatvoriť kartu - + Close all tabs Zatvoriť všetky karty - + Select... Vybrať... - - - + + Search Engine Vyhľadávač - + + Please install Python to use the Search Engine. Pre použitie vyhľadávača nainštalujte Python. - + Empty search pattern Prázdny hľadaný reťazec - + Please type a search pattern first Najprv napíšte hľadaný reťazec - + + Stop Zastaviť + + + SearchWidget::DataStorage - - Search has finished - Hľadanie ukončené + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Hľadanie zlyhalo + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9207,34 +9702,34 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, - + Upload: Nahrávanie: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Sťahovanie: - + Alternative speed limits Alternatívne rýchlostné obmedzenia @@ -9426,32 +9921,32 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, Priemerný čas vo fronte: - + Connected peers: Pripojení peeri: - + All-time share ratio: Celkové ratio: - + All-time download: Celkovo stiahnuté: - + Session waste: Zahodené od spustenia: - + All-time upload: Celkovo odoslané: - + Total buffer size: Celková veľkosť bufferov: @@ -9466,12 +9961,12 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, I/O úlohy zaradené do frontu: - + Write cache overload: Preťaženie vyrovnávacej pamäte zápisu: - + Read cache overload: Preťaženie vyrovnávacej pamäte čítania: @@ -9490,51 +9985,77 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, StatusBar - + Connection status: Stav spojenia: - - + + No direct connections. This may indicate network configuration problems. Žiadne priame spojenia. To môže znamenať problém s nastavením siete. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 uzlov - + qBittorrent needs to be restarted! Je potrebné reštartovať qBittorrent! - - - + + + Connection Status: Stav spojenia: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Odpojený. To zvyčajne znamená, že qBittorrent nedokázal počúvať prichádzajúce spojenia na zvolenom porte. - + Online Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Kliknutím prepnete na alternatívne rýchlostné obmedzenia - + Click to switch to regular speed limits Kliknutím prepnete na bežné rýchlostné obmedzenia @@ -9564,13 +10085,13 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, - Resumed (0) - Obnovené (0) + Running (0) + - Paused (0) - Pozastavené (0) + Stopped (0) + @@ -9632,36 +10153,36 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, Completed (%1) Dokončené (%1) + + + Running (%1) + + - Paused (%1) - Pozastavené (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) Premiestňovaných (%1) - - - Resume torrents - Obnoviť torrenty - - - - Pause torrents - Pozastaviť torrenty - Remove torrents Odstrániť torrenty - - - Resumed (%1) - Obnovené (%1) - Active (%1) @@ -9733,31 +10254,31 @@ Kliknite na tlačidlo "Vyhľadávacie pluginy ..." dole vpravo v okne, Remove unused tags Odstrániť nepoužívané značky - - - Resume torrents - Obnoviť torrenty - - - - Pause torrents - Pozastaviť torrenty - Remove torrents Odstrániť torrenty - - New Tag - Nová značka + + Start torrents + + + + + Stop torrents + Tag: Značka: + + + Add tag + + Invalid tag name @@ -9903,32 +10424,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Názov - + Progress Priebeh - + Download Priority Priorita sťahovania - + Remaining Ostáva - + Availability Dostupnosť - + Total Size Celková veľkosť @@ -9973,98 +10494,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Chyba premenovania - + Renaming Premenovávanie - + New name: Nový názov: - + Column visibility Viditeľnosť stĺpcov - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť rozmery viditeľných stĺpcov podľa veľkosti ich obsahu - + Open Otvoriť - + Open containing folder Otvoriť obsahujúci adresár - + Rename... Premenovať... - + Priority Priorita - - + + Do not download Nesťahovať - + Normal Normálna - + High Vysoká - + Maximum Maximálna - + By shown file order Podľa zobrazeného poradia súborov - + Normal priority Normálna priorita - + High priority Vysoká priorita - + Maximum priority Maximálna priorita - + Priority by shown file order Priorita podľa zobrazeného poradia súborov @@ -10072,17 +10593,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10111,13 +10632,13 @@ Please choose a different name and try again. - + Select file Vyberte súbor - + Select folder Vyberte adresár @@ -10192,87 +10713,83 @@ Please choose a different name and try again. Polia - + You can separate tracker tiers / groups with an empty line. Skupiny / úrovne trackerov môžete oddeliť prázdnym riadkom. - + Web seed URLs: URL webových seedov: - + Tracker URLs: URL trackerov: - + Comments: Komentáre: - + Source: Zdroj - + Progress: Priebeh: - + Create Torrent Vytvoriť torrent - - + + Torrent creation failed Vytvorenie torrentu zlyhalo - + Reason: Path to file/folder is not readable. Dôvod: Cestu k súboru/adresáru nemožno prečítať. - + Select where to save the new torrent Vyberte adresár pre uloženie torrentu - + Torrent Files (*.torrent) Torrent súbory (*.torrent) - Reason: %1 - Dôvod: %1 - - - + Add torrent to transfer list failed. Pridanie torrentu do zoznamu prenosov zlyhalo. - + Reason: "%1" Dovôd: "%1" - + Add torrent failed Nepodarilo sa pridať torrent - + Torrent creator Tvorca torrentu - + Torrent created: Torrent vytvorený: @@ -10280,32 +10797,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Nepodarilo sa načítať konfiguráciu sledovaných adresárov. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Nepodarilo sa načítať konfiguráciu sledovaných adresárov z %1. Chyba: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Nepodarilo sa načítať konfiguráciu sledovaných adresárov z %1. Chyba: "Neplatný formát dát." - + Couldn't store Watched Folders configuration to %1. Error: %2 Nepodarilo sa načítať konfiguráciu sledovaných adresárov z %1. Chyba: %2 - + Watched folder Path cannot be empty. Cesta sledovaného adresára nemôže byť prázdna. - + Watched folder Path cannot be relative. Cesta sledovaného adresára nemôže byť relatívna. @@ -10313,44 +10830,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Neplatná Magnet URI. URI: %1. Dôvod: %2 - + Magnet file too big. File: %1 Magnet súbor je priveľký. Súbor: %1 - + Failed to open magnet file: %1 Nepodarilo sa otvoriť magnet súbor: %1 - + Rejecting failed torrent file: %1 Odmietnutie torrent súboru, ktorý zlyhal: %1 - + Watching folder: "%1" Sledovanie adresára: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Nepodarilo sa vyhradiť pamäť pri čítaní súboru. Súbor: "%1". Chyba: "%2" - - - - Invalid metadata - Neplatné metadáta - - TorrentOptionsDialog @@ -10379,173 +10883,161 @@ Please choose a different name and try again. Pre nedokončený torrent použiť inú cestu - + Category: Kategória: - - Torrent speed limits - Rýchlostné obmedzenia torrentu + + Torrent Share Limits + - + Download: Sťahovanie: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Globálne obmedzenia nebudú prekročené. - + Upload: Nahrávanie: - - Torrent share limits - Limity zdieľania torrentu - - - - Use global share limit - Použiť globálny limit zdieľania - - - - Set no share limit - Žiadny limit - - - - Set share limit to - Nastaviť limit zdieľania na - - - - ratio - ratio - - - - total minutes - minút celkom - - - - inactive minutes - minút neaktivity - - - + Disable DHT for this torrent Vypnúť DHT pre tento torrent - + Download in sequential order Sťahovať v poradí - + Disable PeX for this torrent Vypnúť PeX pre tento torrent - + Download first and last pieces first Sťahovať najprv prvú a poslednú časť - + Disable LSD for this torrent Vypnúť LSD pre tento torrent - + Currently used categories Práve používané kategórie - - + + Choose save path Zvoľte cieľový adresár - + Not applicable to private torrents Nemožno použiť na súkromné torrenty - - - No share limit method selected - Nie je vybraná žiadna metóda obmedzenia zdieľania - - - - Please select a limit method first - Prosím, najprv vyberte spôsob obmedzenia - TorrentShareLimitsWidget - - - + + + + Default - Predvolený + Predvolený - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - min + min - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Odstrániť torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + Povoliť super seeding pre torrent + + + Ratio: @@ -10558,32 +11050,32 @@ Please choose a different name and try again. Štítky torrentu - - New Tag - Nová značka + + Add tag + - + Tag: Značka: - + Invalid tag name Neplatné meno značky - + Tag name '%1' is invalid. Meno značky '%1' je neplatné. - + Tag exists Značka už existuje. - + Tag name already exists. Názov značky už existuje. @@ -10591,115 +11083,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Chyba: '%1' nie je platný torrent súbor. - + Priority must be an integer Priorita musí byť celé číslo - + Priority is not valid Priorita je neplatná. - + Torrent's metadata has not yet downloaded Metadáta torrentu ešte neboli stiahnuté - + File IDs must be integers ID súboru musia byť celé čísla - + File ID is not valid ID súboru nie je platné - - - - + + + + Torrent queueing must be enabled Radenie torrentov musí byť zapnuté - - + + Save path cannot be empty Cesta pre uloženie nemôže byť prázdna - - + + Cannot create target directory Nedá sa vytvoriť cieľový priečinok - - + + Category cannot be empty Kategória nemôže byť prázdna - + Unable to create category Nemožno vytvoriť kategóriu - + Unable to edit category Nemožno upraviť kategóriu - + Unable to export torrent file. Error: %1 Nemožno exportovať torrent súbor. Chyba: %1 - + Cannot make save path Nemožno vytvoriť cestu pre uloženie - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Parameter 'sort' je chybný - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" nie je platný index súboru. - + Index %1 is out of bounds. Index %1 je mimo rozsah - - + + Cannot write to directory Nedá sa zapisovať do adresára - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI nastaviť umiestnenie: presunúť "%1", z "%2" do "%3" - + Incorrect torrent name Nesprávny názov torrentu - - + + Incorrect category name Nesprávny názov kategórie @@ -10730,196 +11237,191 @@ Please choose a different name and try again. TrackerListModel - + Working Funkčné - + Disabled Vypnuté - + Disabled for this torrent Vypnuté pre tento torrent - + This torrent is private Torrent je súkromný - + N/A Neuvedené - + Updating... Prebieha aktualizácia... - + Not working Nefunguje - + Tracker error Chyba trackera - + Unreachable Nedostupné - + Not contacted yet Zatiaľ nekontaktovaný - - Invalid status! - Neplatný stav - - - - URL/Announce endpoint - Koncový bod ohlásenia/URL + + Invalid state! + + URL/Announce Endpoint + + + + + BT Protocol + + + + + Next Announce + + + + + Min Announce + + + + Tier Tier - - Protocol - Protokol - - - + Status Stav - + Peers Rovesníci - + Seeds Seedov - + Leeches Leecheri - + Times Downloaded Počet stiahnutí - + Message Správa - - - Next announce - Ďalšie ohlásenie - - - - Min announce - Min. ohlásenie - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Torrent je súkromný - + Tracker editing Úprava trackera - + Tracker URL: URL trackera: - - + + Tracker editing failed Úprava trackera zlyhala - + The tracker URL entered is invalid. Zadaná URL trackera je neplatné. - + The tracker URL already exists. URL trackera už existuje. - + Edit tracker URL... Upraviť URL trackera... - + Remove tracker Odstrániť tracker - + Copy tracker URL Skopírovať URL trackera - + Force reannounce to selected trackers Vynútiť znovuohlásenie vybraným trackerom - + Force reannounce to all trackers Vynútiť znovuohlásenie všetkým trackerom - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť rozmery viditeľných stĺpcov podľa veľkosti ich obsahu - + Add trackers... Pridať trackery... - + Column visibility Viditeľnosť stĺpcov @@ -10937,37 +11439,37 @@ Please choose a different name and try again. Pridať nasledovné trackery (jeden tracker na riadok): - + µTorrent compatible list URL: Zoznam URL kompatibilný s µTorrent: - + Download trackers list Stiahnuť zoznam trackerov - + Add Pridať - + Trackers list URL error Chyba URL zoznamu trackerov - + The trackers list URL cannot be empty URL zoznamu trackerov nemôže byť prázdny - + Download trackers list error Chyba sťahovania zoznamu trackerov - + Error occurred when downloading the trackers list. Reason: "%1" Vyskytla sa chyba počas sťahovania zoznamu trackerov. Dôvod: "%1" @@ -10975,62 +11477,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Upozornenia (%1) - + Trackerless (%1) Bez trackeru (%1) - + Tracker error (%1) Chyba trackera (%1) - + Other error (%1) Iná chyba (%1) - + Remove tracker Odstrániť tracker - - Resume torrents - Obnoviť torrenty + + Start torrents + - - Pause torrents - Pozastaviť torrenty + + Stop torrents + - + Remove torrents Odstrániť torrenty - + Removal confirmation Potvrdenie odstránenia - + Are you sure you want to remove tracker "%1" from all torrents? Ste si istý, že chcete odstrániť tracker "%1" zo všetkých torrentov? - + Don't ask me again. Nepýtať sa znova. - + All (%1) this is for the tracker filter Všetky (%1) @@ -11039,7 +11541,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'režim': neplatný argument @@ -11131,11 +11633,6 @@ Please choose a different name and try again. 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. Kontrolujú sa dáta na obnovenie sťahovania - - - Paused - Pozastavený - Completed @@ -11159,220 +11656,252 @@ Please choose a different name and try again. Chybných - + Name i.e: torrent name Názov - + Size i.e: torrent size Veľkosť - + Progress % Done Priebeh - + + Stopped + Zastavené + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stav - + Seeds i.e. full sources (often untranslated) Seedov - + Peers i.e. partial sources (often untranslated) Peery - + Down Speed i.e: Download speed Rýchlosť sťahovania - + Up Speed i.e: Upload speed Rýchlosť nahrávania - + Ratio Share ratio Ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left Odhad. čas - + Category Kategória - + Tags Značky - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Pridané v - + Completed On Torrent was completed on 01/01/2010 08:00 Dokončené v - + Tracker Tracker - + Down Limit i.e: Download limit Limit sťah. - + Up Limit i.e: Upload limit Limit nahr. - + Downloaded Amount of data downloaded (e.g. in MB) Stiahnuté - + Uploaded Amount of data uploaded (e.g. in MB) Nahrané - + Session Download Amount of data downloaded since program open (e.g. in MB) Stiahnuté od spustenia - + Session Upload Amount of data uploaded since program open (e.g. in MB) Nahrané od spustenia - + Remaining Amount of data left to download (e.g. in MB) Ostáva - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Čas aktivity - + + Yes + Áno + + + + No + Nie + + + Save Path Torrent save path Cesta uloženia - + Incomplete Save Path Torrent incomplete save path Cesta uloženia nekompletných - + Completed Amount of data completed (e.g. in MB) Dokončené - + Ratio Limit Upload share ratio limit Obmedzenie pomeru zdieľania - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Posledné videné ukončenie - + Last Activity Time passed since a chunk was downloaded/uploaded Posledná aktivita - + Total Size i.e. Size including unwanted data Celková veľkosť - + Availability The number of distributed copies of the torrent Dostupnosť - + Info Hash v1 i.e: torrent info hash v1 Info Hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info Hash v2 - + Reannounce In Indicates the time until next trackers reannounce Znova ohlásiť o: - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A nie je k dispozícií - + %1 ago e.g.: 1h 20m ago pred %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedovaný už %2) @@ -11381,339 +11910,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Viditeľnosť stĺpca - + Recheck confirmation Znovu skontrolovať potvrdenie - + Are you sure you want to recheck the selected torrent(s)? Ste si istý, že chcete znovu skontrolovať vybrané torrenty? - + Rename Premenovať - + New name: Nový názov: - + Choose save path Zvoľte cieľový adresár - - Confirm pause - Potvrdiť pozastavenie - - - - Would you like to pause all torrents? - Chcete pozastaviť všetky torrenty? - - - - Confirm resume - Potvrdiť obnovenie - - - - Would you like to resume all torrents? - Chcete obnoviť všetky torrenty? - - - + Unable to preview Nie je možné vykonať náhľad súboru - + The selected torrent "%1" does not contain previewable files Vybraný torrent "%1" neobsahuje súbory, u ktorých sa dá zobraziť náhľad. - + Resize columns Zmeniť rozmery stĺpcov - + Resize all non-hidden columns to the size of their contents Zmeniť veľkosť všetkých viditeľných stĺpcov na dĺžku ich obsahu - + Enable automatic torrent management Povoliť automatickú správu torrentu - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Naozaj chcete aktivovať automatickú správu pre vybrané torrenty? Môžu byť presunuté. - - Add Tags - Pridať značky - - - + Choose folder to save exported .torrent files Vyberte adresár pre ukladanie exportovaných .torrent súborov - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Export .torrent súboru zlyhal. Torrent: "%1". Umiestnenie: "%2". Dôvod: "%3" - + A file with the same name already exists Súbor s rovnakým názvom už existuje - + Export .torrent file error Chyba exportu .torrent súboru - + Remove All Tags Odstrániť všetky štítky - + Remove all tags from selected torrents? Odstrániť všetky štítky z vybratých torrentov? - + Comma-separated tags: Čiarkou oddelené značky: - + Invalid tag Zlá značka - + Tag name: '%1' is invalid Názov značky: '%1' je neplatný - - &Resume - Resume/start the torrent - Pok&račovať - - - - &Pause - Pause the torrent - &Pozastaviť - - - - Force Resu&me - Force Resume/start the torrent - Vynútiť pokračovanie - - - + Pre&view file... Náhľad súboru... - + Torrent &options... Nastavenia torrentu... - + Open destination &folder Otvoriť cieľový adresár - + Move &up i.e. move up in the queue Pos&unúť hore - + Move &down i.e. Move down in the queue Posunúť &dole - + Move to &top i.e. Move to top of the queue Posunúť navrch - + Move to &bottom i.e. Move to bottom of the queue Posunúť nadol - + Set loc&ation... Nastaviť umiestnenie... - + Force rec&heck Vynútiť opätovnú kontrolu - + Force r&eannounce Vynútiť znovuohlás&enie - + &Magnet link &Magnet odkaz - + Torrent &ID &ID torrentu - + &Comment &Komentár - + &Name &Názov - + Info &hash v1 Info &hash v1 - + Info h&ash v2 Info h&ash v2 - + Re&name... Preme&novať... - + Edit trac&kers... Upraviť trac&kery... - + E&xport .torrent... E&xportovať .torrent... - + Categor&y Kategória - + &New... New category... &Nová... - + &Reset Reset category &Resetovať - + Ta&gs Značky - + &Add... Add / assign multiple tags... Prid&ať... - + &Remove All Remove all tags Odst&rániť všetko - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue Poradovník - + &Copy Kopírovať - + Exported torrent is not necessarily the same as the imported Exportovaný torrent nie je nutne rovnaký ako ten importovaný - + Download in sequential order Sťahovať v poradí - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Pri exportovaní .torrent súborov nastali chyby. Pre detaily skontrolujte log vykonávania. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent Odst&rániť - + Download first and last pieces first Sťahovať najprv prvú a poslednú časť - + Automatic Torrent Management Automatické spravovanie torrentu - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatický režim znamená, že niektoré vlastnosti torrentu (napr. cesta na ukladanie) budú určené na základe priradenej kategórie - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Vynútenie znovuohlásenia nie je možné ak je torrent pozastavený / v poradovníku / v chybovom stave / kontrolovaný - - - + Super seeding mode Režim super seedovania @@ -11758,28 +12267,28 @@ Please choose a different name and try again. ID ikony - + UI Theme Configuration. Nastavenie motívu používateľského rozhrania. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Zmeny motívu používateľského rozhrania nebolo možné plne použiť. Podrobnosti je možné nájsť v Žurnále. - + Couldn't save UI Theme configuration. Reason: %1 Nepodarilo sa uložiť nastavenie motívu používateľského rozhrania. Dôvod: %1 - - + + Couldn't remove icon file. File: %1. Nepodarilo sa odstrániť súbor ikony. Súbor: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Nepodarilo sa skopírovať súbor ikony: %1. Cieľ: %2. @@ -11787,7 +12296,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Zlyhalo načítanie vzhľadu UI zo súboru: "%1" @@ -11818,20 +12332,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Migrácia predvolieb zlyhala: WebUI https, súbor: "%1", chyba: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrácia predvolieb: WebUI https, dáta uložené do súboru: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Neplatná hodnota v konfiguračnom súbore, bola vrátená východzia. Kľúč: "%1". Neplatná hodnota: "%2". @@ -11839,32 +12354,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Binárka Pythonu sa našla. Názov: "%1". Verzia: "%2" - + Failed to find Python executable. Path: "%1". Nepodarilo sa nájsť binárku Pythonu. Cesta: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Nepodarilo sa nájsť `python3` binárku v systémovej premennej PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Nepodarilo sa nájsť `python` binárku v systémovej premennej PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Nepodarilo sa nájsť `python` binárku vo Windows Registry. - + Failed to find Python executable Nepodarilo sa nájsť Python binárku @@ -11956,72 +12471,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Bol uvedený neprijateľný názov cookie relácie: "%1". Použije sa východzí. - + Unacceptable file type, only regular file is allowed. Neprijateľný typ súboru, iba správne súbory sú povolené. - + Symlinks inside alternative UI folder are forbidden. Symbolické linky sú v alternatívnom UI zakázané. - + Using built-in WebUI. Používa sa vstavané WebUI. - + Using custom WebUI. Location: "%1". Používa sa vlastné WebUI. Umiestnenie: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. WebUI preklad pre vybrané locale (%1) bol úspešne načítaný. - + Couldn't load WebUI translation for selected locale (%1). Nepodarilo sa načítať WebUI preklad pre vybrané locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Chýbajúce ':' oddeľovač vo vlastnej HTTP hlavičke WebUI: "%1" - + Web server error. %1 Chyba web servera: %1 - + Web server error. Unknown error. Chyba web servera. Neznáma chyba. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Zdrojové hlavičky a cieľový pôvod nesúhlasí! Zdrojová IP: '%1'. Pôvod hlavičky: '%2'. Cieľový zdroj: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Hlavička referera a cieľový pôvod nesúhlasí! Zdrojová IP: '%1'. Pôvod hlavičky: '%2'. Cieľový zdroj: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Neplatné záhlavie hostiteľa, nesúlad portov. Požiadavka zdroje IP: '%1'. Serverový port: '%2'. Prijaté hlavičky hostiteľa: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Neplatné hlavičky hostiteľa. Požiadavka zdroje IP: '%1'. Prijaté hlavičky hostiteľa: '%2' @@ -12029,125 +12544,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set Prihlasovacie údaje nie sú nastavené - + WebUI: HTTPS setup successful WebUI: HTTPS nastavenie úspešné - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: HTTPS nastavenie zlyhalo, použije sa HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Načúva na IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Nemožno viazať na IP: %1, port: %2. Dôvod: %3 + + fs + + + Unknown error + Neznáma chyba + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_sl.ts b/src/lang/qbittorrent_sl.ts index 0a8084f02..c72d74bf9 100644 --- a/src/lang/qbittorrent_sl.ts +++ b/src/lang/qbittorrent_sl.ts @@ -14,75 +14,75 @@ O programu - + Authors Avtorji - + Current maintainer Trenutni vzdrževalec - + Greece Grčija - - + + Nationality: Državljanstvo: - - + + E-mail: E-pošta: - - + + Name: Ime: - + Original author Originalni avtor - + France Francija - + Special Thanks Posebna zahvala - + Translators Prevajalci - + License Licenca - + Software Used Uporabljena programska oprema - + qBittorrent was built with the following libraries: qBittorent je bil ustvarjen s sledečimi knjižnicami: - + Copy to clipboard Kopiraj v odložišče @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Avtorske pravice %1 2006-2024 Projekt qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Avtorske pravice %1 2006-2025 Projekt qBittorrent @@ -166,15 +166,10 @@ Shrani v - + Never show again Ne prikaži več - - - Torrent settings - Torrent nastavitve - Set as default category @@ -191,12 +186,12 @@ Začni torrent - + Torrent information Informacije o torrentu - + Skip hash check Preskoči preverjanje šifre @@ -205,6 +200,11 @@ Use another path for incomplete torrent Uporabi drugačno pot za nedokončan torrent + + + Torrent options + Možnosti torrenta + Tags: @@ -231,75 +231,75 @@ Pogoj za ustavitev: - - + + None Brez - - + + Metadata received Prejeti metapodatki - + Torrents that have metadata initially will be added as stopped. - + Torrenti, ki imajo metapodatke, bodo sprva dodani v premoru. - - + + Files checked Preverjene datoteke - + Add to top of queue Dodaj na vrh čakalne vrste - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Če je izbrano, datoteka .torrent ne bo izbrisana ne glede na nastavitve na plošči "Prenosi" v Možnostih - + Content layout: Struktura vsebine: - + Original Izvirnik - + Create subfolder Ustvari podmapo - + Don't create subfolder Ne ustvari podmape - + Info hash v1: Razpršilo v1: - + Size: Velikost: - + Comment: Komentar: - + Date: Datum: @@ -329,151 +329,147 @@ Zapomni si zadnjo uporabljeno pot za shranjevanje - + Do not delete .torrent file Ne izbriši .torrent datoteke - + Download in sequential order Prejemanje v zaporednem vrstnem redu - + Download first and last pieces first Prejemanje najprej prvih in zadnjih kosov - + Info hash v2: Razpršilo v2: - + Select All Izberi vse - + Select None Ne izberi ničesar - + Save as .torrent file... Shrani kot datoteko .torrent ... - + I/O Error I/O Napaka - + Not Available This comment is unavailable Ni na voljo. - + Not Available This date is unavailable Ni na voljo - + Not available Ni na voljo - + Magnet link Magnetna povezava - + Retrieving metadata... Pridobivam podatke... - - + + Choose save path Izberi mapo za shranjevanje - + No stop condition is set. Nastavljen ni noben pogoj za ustavitev. - + Torrent will stop after metadata is received. Torrent se bo zaustavil, ko se bodo prejeli metapodatki. - Torrents that have metadata initially aren't affected. - Ne vpliva na torrente, ki že v začetku imajo metapodatke. - - - + Torrent will stop after files are initially checked. Torrent se bo zaustavil po začetnem preverjanju datotek. - + This will also download metadata if it wasn't there initially. S tem se bodo prejeli tudi metapodatki, če še niso znani. - - + + N/A / - + %1 (Free space on disk: %2) %1 (Neporabljen prostor na disku: %2) - + Not available This size is unavailable. Ni na voljo - + Torrent file (*%1) Datoteka torrent (*%1) - + Save as torrent file Shrani kot datoteko .torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Datoteke '%1' z metapodatki torrenta ni bilo mogoče izvoziti: %2. - + Cannot create v2 torrent until its data is fully downloaded. Ni mogoče ustvariti torrenta v2, dokler se njegovi podatki v celoti ne prejmejo. - + Filter files... Filtriraj datoteke ... - + Parsing metadata... Razpoznavanje podatkov... - + Metadata retrieval complete Pridobivanje podatkov končano @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Prenašanje torrenta... Vir: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Dodajanje torrenta ni uspelo. Vir: "%1". Razlog: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Združevanje sledilnikov je onemogočeno - + Trackers cannot be merged because it is a private torrent - + Sledilnikov ni mogoče združiti, ker gre za zasebni torrent - + Trackers are merged from new source + Sledilniki so združeni iz novega vira + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -536,7 +532,7 @@ Note: the current defaults are displayed for reference. - + Opomba: trenutne privzete nastavitve so prikazane za referenco. @@ -596,7 +592,7 @@ Torrent share limits - Omejitve izmenjave torrenta + Omejitve izmenjave torrenta @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Preveri torrent po prenosu - - + + ms milliseconds ms - + Setting Nastavitve - + Value Value set for this setting Vrednost - + (disabled) (onemogočeno) - + (auto) (samodejno) - + + min minutes min - + All addresses Vsi naslovi - + qBittorrent Section qBittorrent profil - - + + Open documentation Odpri dokumentacijo - + All IPv4 addresses Vsi naslovi IPv4 - + All IPv6 addresses Vsi naslovi IPv6 - + libtorrent Section libtorrent profil - + Fastresume files - + Hitro nadaljevanje datotek - + SQLite database (experimental) Podatkovna baza SQLite (preizkusna različica) - + Resume data storage type (requires restart) - + Nadaljuj vrsto hrambe podatkov (potreben je ponovni zagon) - + Normal Navadna - + Below normal Pod navadno - + Medium Srednja - + Low Nizka - + Very low Zelo nizka - + Physical memory (RAM) usage limit Omejitev porabe pomnilnika (RAM) - + Asynchronous I/O threads Asinhrone V/i niti - + Hashing threads Hash niti - + File pool size Velikost področja dototek - + Outstanding memory when checking torrents Izjemen pomnilnik pri preverjanju torrentov - + Disk cache Predpomnilnik diska - - - - + + + + + s seconds s - + Disk cache expiry interval Predpomnilnik poteče v - + Disk queue size Velikost čakalne vrste na disku - - + + Enable OS cache Omogoči predpomnilnik OS - + Coalesce reads & writes Poveži branje in pisanje - + Use piece extent affinity - + Uporabi podobno velikost kosov - + Send upload piece suggestions Pošlji primere za kose za pošiljanje - - - - + + + + + 0 (disabled) 0 (onemogočeno) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Interval shranjevanja podatkov o prenosu [0: onemogočeno] - + Outgoing ports (Min) [0: disabled] - + Vrata za odhodne povezave (najmanj) [0: onemogočeno] - + Outgoing ports (Max) [0: disabled] - + Vrata za odhodne povezave (največ) [0: onemogočeno] - + 0 (permanent lease) - + 0 (trajno oddajanje) - + UPnP lease duration [0: permanent lease] - + Trajanje oddajanja UPnP [0: trajno oddajanje] - + Stop tracker timeout [0: disabled] - + Ustavi časovno omejitev sledilnika [0: onemogočeno] - + Notification timeout [0: infinite, -1: system default] - + Časovna omejitev obvestila [0: neomejeno, -1: sistemsko privzeto] - + Maximum outstanding requests to a single peer Največje število čakajočih zahtev posameznemu soležniku - - - - - + + + + + KiB KiB - + (infinite) - + (neomejeno) - + (system default) - + (sistemsko privzeto) - + + Delete files permanently + Trajno izbriši datoteke + + + + Move files to trash (if possible) + Premakni datoteke v koš (če je mogoče) + + + + Torrent content removing mode + Način odstranjevanja vsebine torrentov + + + This option is less effective on Linux V sistemu Linux je ta možnost manj učinkovita - + Process memory priority - + Prioriteta procesa v pomnilniku - + Bdecode depth limit - + Omejitev globine Bdecode - + Bdecode token limit - + Omejitev žetona Bdecode - + Default Privzeto - + Memory mapped files - + Datoteke, preslikane v pomnilnik - + POSIX-compliant - V skladu s standardi POSIX + Skladno s POSIX - - Disk IO type (requires restart) + + Simple pread/pwrite - - + + Disk IO type (requires restart) + Tip IO diska (zahtevan je ponovni zagon) + + + + Disable OS cache Onemogoči predpomnilnik OS - - - Disk IO read mode - - - - - Write-through - - - - - Disk IO write mode - - + Disk IO read mode + Način branja IO diska + + + + Write-through + Prepiši + + + + Disk IO write mode + Način pisanja IO diska + + + Send buffer watermark Pošlji oznako medpomnilnika - + Send buffer low watermark Pošlji oznako zapolnjenega medpomnilnika - + Send buffer watermark factor Pošlji faktor oznake medpomnilnika - + Outgoing connections per second Odhodnih povezav na sekundo - - - - 0 (system default) - - - - - Socket send buffer size [0: system default] - - - - - Socket receive buffer size [0: system default] - - - - - Socket backlog size - - + + 0 (system default) + 0 (sistemsko privzeto) + + + + Socket send buffer size [0: system default] + Velikost vtičnika za medpomnilnik pošiljanja [0: sistemsko privzeto] + + + + Socket receive buffer size [0: system default] + Velikost vtičnika za medpomnilnik prejemanja [0: sistemsko privzeto] + + + + Socket backlog size + Velikost vtičnika za kontrolni seznam + + + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit Velikostna omejitev datoteke .torrent - + Type of service (ToS) for connections to peers Vrsta storitve (ToS) za povezovanje s soležniki - + Prefer TCP Raje uporabi TCP - + Peer proportional (throttles TCP) + Soležniki sorazmerno (duši TCP) + + + + Internal hostname resolver cache expiry interval - + Support internationalized domain name (IDN) - + Podpora internacionaliziranim domenam (IDN) - + Allow multiple connections from the same IP address Dovoli več povezav z istega IP naslova - + Validate HTTPS tracker certificates Validiraj HTTPS certifikate trackerja - + Server-side request forgery (SSRF) mitigation - + Ublažitev ponarejanja zahtev na strani strežnika (SSRF) - + Disallow connection to peers on privileged ports Prepovej povezavo do soležnikov na priviligiranih vratih - + It appends the text to the window title to help distinguish qBittorent instances - + Naslovu okna doda besedilo, ki pomaga razlikovati primerke qBittorent - + Customize application instance name - + Prilagoditev imena instance aplikacije - + It controls the internal state update interval which in turn will affect UI updates - + Nadzira interni interval posodobitve stanja, kar bo vplivalo na posodobitve uporabniškega vmesnika - + Refresh interval Interval osveževanja - + Resolve peer host names Razreši host imena soležnikov - + IP address reported to trackers (requires restart) IP-naslov, sporočen sledilnikom (zahteva ponovni zagon) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed Znova sporoči vsem sledilnikom, ko se spremeni IP ali vrata - + Enable icons in menus Omogoči ikone v menijih - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker Omogoči posredovanje vrat za vgrajeni sledilnik - + Enable quarantine for downloaded files - + Omogoči karanteno za prenesene datoteke - + Enable Mark-of-the-Web (MOTW) for downloaded files + Omogoči oznako Mark-of-the-Web (MOTW) za prenesene datoteke + + + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) - + + Ignore SSL errors + Prezri napake SSL + + + (Auto detect if empty) - + (Samodejno zazna, če je prazno) - + Python executable path (may require restart) - + Pot izvršljive datoteke Python (morda bo potreben ponovni zagon) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + sec + + + + -1 (unlimited) + -1 (neomejeno) + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + Potrdi odstranitev sledilnika iz vseh torrentov + + + + Peer turnover disconnect percentage + Delež soležnikov s prekinjeno izmenjavo + + + + Peer turnover threshold percentage + Delež soležnikov s prekinjeno izmenjavo + + + + Peer turnover disconnect interval + Interval med prekinitvami izmenjave soležnikov + + + + Resets to default if empty + Ponastavi na privzeto, če je prazno + + + DHT bootstrap nodes - + DHT zagonsko vozlišče - + I2P inbound quantity - + I2P vhodna količina - + I2P outbound quantity - + I2P izhodna količina - + I2P inbound length - + Dolžina vhodnega I2P - + I2P outbound length - + Dolžina izhodnega I2P - + Display notifications Prikaži obvestila - + Display notifications for added torrents Prikaži obvestila za dodane torrente - + Download tracker's favicon Prenesi ikono zaznamka sledilnika - + Save path history length Dolžina zgodovine mest shranjevanja - + Enable speed graphs Omogoči grafe hitrosti - + Fixed slots - + Fiksne reže - + Upload rate based - + Temelji na stopnji nalaganja - + Upload slots behavior Vedenje povezav za pošiljanje - + Round-robin - + Krožen - + Fastest upload Najhitrejše pošiljanje - + Anti-leech - + Proti odjemalcem - + Upload choking algorithm Pošlji algoritem blokiranja - + Confirm torrent recheck Potrdi ponovno preverjanje torrenta - + Confirm removal of all tags Potrdi odstranitev vseh oznak - + Always announce to all trackers in a tier Vedno sporoči vsem sledilcem na stopnji - + Always announce to all tiers Vedno sporoči vsem stopnjam - + Any interface i.e. Any network interface Katerikoli vmesnik - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP algoritem mešanega načina - + Resolve peer countries Razreši države soležnikov - + Network interface Omrežni vmesnik - + Optional IP address to bind to Izbiren IP naslov za povezavo - + Max concurrent HTTP announces Največje število HTTP naznanitev - + Enable embedded tracker Omogoči vdelane sledilnike - + Embedded tracker port Vrata vdelanih sledilnikov + + AppController + + + + Invalid directory path + Neveljavna pot do mape + + + + Directory does not exist + Mapa ne obstaja + + + + Invalid mode, allowed values: %1 + Neveljaven način, dovoljene vrednosti: %1 + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Izvajane v prenosnem načinu. Mapa profila je bila najdena samodejno na: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Zaznana zastavica odvečne ukazne vrstice: "%1". Prenosni način pomeni relativno hitro nadaljevanje. - + Using config directory: %1 Uporabljen imenik za nastavitve: %1 - + Torrent name: %1 Ime torrenta: %1 - + Torrent size: %1 Velikost torrenta: %1 - + Save path: %1 Mesto shranjevanja: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent je bil prejet v %1. - + + Thank you for using qBittorrent. Hvala, ker uporabljate qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, pošilja E-poštno obvestilo - + Add torrent failed Dodajanje torrenta spodletelo - + Couldn't add torrent '%1', reason: %2. - + Torrenta %1 ni bilo mogoče dodati, razlog: %2. - + The WebUI administrator username is: %1 - + Uporabniško ime skrbnika WebUI je: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + Skrbniško geslo WebUI ni bilo nastavljeno. Za to sejo je na voljo začasno geslo: %1 - + You should set your own password in program preferences. - + Nastaviti si morate lastno geslo v nastavitvah programa. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + WebUI je onemogočen! Če želite omogočiti spletni uporabniški vmesnik, ročno uredite konfiguracijsko datoteko. - + Running external program. Torrent: "%1". Command: `%2` Izvajanje zunanjega programa. Torrent: "%1". Ukaz: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Zagon zunanjega programa ni uspel. Torrent: "%1". Ukaz: `%2` - + Torrent "%1" has finished downloading Prejemanje torrenta "%1" dokončano - + WebUI will be started shortly after internal preparations. Please wait... WebUI se bo zagnal po notranjih pripravah. Počakajte ... - - + + Loading torrents... Nalaganje torrentov ... - + E&xit I&zhod - + I/O Error i.e: Input/Output Error Napaka I/O - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Razlog: %2 - + Torrent added Torrent dodan - + '%1' was added. e.g: xxx.avi was added. '%1' je dodan. - + Download completed Prejem dokončan - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + qBittorrent %1 se je zagnal. ID procesa: %2 - + + This is a test email. + To je preizkusno e-poštno sporočilo. + + + + Test email + Preizkusno sporočilo + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Prejemanje '%1' je dokončano. - + Information Podatki - + To fix the error, you may need to edit the config file manually. - + Če želite odpraviti napako, boste morda morali konfiguracijsko datoteko urediti ročno. - + To control qBittorrent, access the WebUI at: %1 Za upravljanje qBittorrenta odprite spletni vmesnik na: %1 - + Exit Izhod - + Recursive download confirmation Rekurzivna potrditev prejema - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' vsebuje datoteke .torrent. Ali želite nadaljevati z njihovim prejemom? - + Never Nikoli - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Rekurzivni prenos datoteke .torrent znotraj torrenta. Izvorni torrent: "%1". Datoteka: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Omejitve porabe pomnilnika (RAM) ni bilo mogoče nastaviti. Koda napake: %1. Sporočilo napake: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + Nastavitev trde omejitve uporabe fizičnega pomnilnika (RAM) ni uspela. Zahtevana velikost: %1. Sistemska trda omejitev: %2. Koda napake: %3. Sporočilo o napaki: "%4" - + qBittorrent termination initiated Začeta zaustavitev programa qBittorrent - + qBittorrent is shutting down... qBittorrent se zaustavlja ... - + Saving torrent progress... Shranjujem napredek torrenta ... - + qBittorrent is now ready to exit qBittorrent je zdaj pripravljen na izhod @@ -1609,12 +1715,12 @@ Razlog: %2 Prednost: - + Must Not Contain: Ne sme vsebovati: - + Episode Filter: Filter epizod: @@ -1623,7 +1729,7 @@ Razlog: %2 Smart Episode Filter will check the episode number to prevent downloading of duplicates. Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also support - as a separator) Pametni filter za epizode bo preveril številko epizode v izogibu prejemanja dvojnikov. -Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 +Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Formati datume so tudi podprti z "-" kot ločilnikom) @@ -1668,263 +1774,263 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 &Izvozi... - + 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 obvezno vrednost večja od 0 - + 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 Normalen razpon: <b>1x25-40;</b> ustreza epizodam 25 do 40 sezone 1 - + Episode number is a mandatory positive value Številka sezone je obvezno vrednost večja od 0 - + Rules Pravila - + Rules (legacy) Pravila (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Neskončen razpon: <b>1x25-;</b> ustreza epizodam 25 in naprej sezone 1 in vsem epizodam kasnejših sezon - + Last Match: %1 days ago Zadnje ujemanje: pred %1 dnevi - + Last Match: Unknown Zadnje ujemanje: Neznano - + 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 - + Invalid action Neveljavno dejanje - + The list is empty, there is nothing to export. Seznam je prazen. Ničesar ni za izvoz. - + Export RSS rules Izvozi RSS pravila - + I/O Error I/O Napaka - + Failed to create the destination file. Reason: %1 Spodletelo ustvarjanje ciljne datoteke. Razlog: %1 - + Import RSS rules Uvozi RSS pravila - + Failed to import the selected rules file. Reason: %1 Spodletelo uvažanje izbrane datoteke s pravili. Razlog: %1 - + Add new rule... Dodaj novo pravilo ... - + Delete rule Odstrani pravilo - + Rename rule... Preimenuj pravilo ... - + Delete selected rules Odstrani izbrana pravila - + Clear downloaded episodes... Počisti prenesene epizode... - + Rule renaming Preimenovanje pravila - + Please type the new rule name Vpišite novo ime pravila - + Clear downloaded episodes Počisti prenesene epizode - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Ali ste prepričani da želite počistiti seznam prenesenih epizod za izbrano pravilo? - + Regex mode: use Perl-compatible regular expressions Način regularnega izraza: uporabite Perlu kompatibilne regularne izraze - - + + Position %1: %2 Položaj %1: %2 - + Wildcard mode: you can use Način nadomestnega znaka: lahko uporabite - - + + Import error Napaka pri uvozu - + Failed to read the file. %1 Branje datoteke ni uspelo. %1 - + ? to match any single character ? za ujemanje enega znaka - + * to match zero or more of any characters * za ujemanje nič ali več znakov - + Whitespaces count as AND operators (all words, any order) Presledki delujejo kot IN funkcije (vse besede, kakršen koli red) - + | is used as OR operator | deluje kot ALI funkcija - + If word order is important use * instead of whitespace. Če je vrstni red besed pomemben uporabi * namesto presledka. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Izraz s praznim %1 delom (npr. %2) - + will match all articles. se bo ujemal z vsemi članki. - + will exclude all articles. bo izločil vse članke. @@ -1966,9 +2072,9 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" - + Ne morem ustvariti mape za nadaljevanje torrenta: "%1" @@ -1976,30 +2082,40 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Podatkov o nadaljevanju ni mogoče razčleniti: neveljavna oblika - - + + Cannot parse torrent info: %1 Podatkov o torrentu ni mogoče razčleniti: %1 - + Cannot parse torrent info: invalid format Podatkov o torrentu ni mogoče razčleniti: neveljavna oblika - + Mismatching info-hash detected in resume data + V podatkih o nadaljevanju je bila zaznana neujemajoča se zgoščena informacija + + + + Corrupted resume data: %1 - + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Metapodatkov torrentov ni bilo mogoče shraniti v datoteko '%1'. Napaka: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - + Podatkov o nadaljevanju torrenta ni bilo mogoče shraniti v '%1'. Napaka: %2. @@ -2008,16 +2124,17 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 + Cannot parse resume data: %1 - + Podatkov o nadaljevanju ni mogoče razčleniti: %1 - + Resume data is invalid: neither metadata nor info-hash was found Podatki o nadaljevanju so neveljavni: zaznani niso bili niti metapodatki niti informativna zgoščena vrednost - + Couldn't save data to '%1'. Error: %2 Podatkov ni bilo mogoče shraniti v '%1'. Napaka: %2 @@ -2025,61 +2142,83 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 BitTorrent::DBResumeDataStorage - + Not found. Ni najdeno. - + Couldn't load resume data of torrent '%1'. Error: %2 - + Podatkov o nadaljevanju torrenta '%1' ni bilo mogoče naložiti. Napaka: %2 - - + + Database is corrupted. Zbirka podatkov je poškodovana. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Načina beleženja Write-Ahead Logging (WAL) ni bilo možno omogočiti. Napaka: %1. - + Couldn't obtain query result. - + Rezultata poizvedbe ni bilo mogoče pridobiti. - + WAL mode is probably unsupported due to filesystem limitations. + Način WAL verjetno ni podprt zaradi omejitev datotečnega sistema. + + + + + Cannot parse resume data: %1 + Podatkov o nadaljevanju ni mogoče razčleniti: %1 + + + + + Cannot parse torrent info: %1 + Podatkov o torrentu ni mogoče razčleniti: %1 + + + + Corrupted resume data: %1 - - Couldn't begin transaction. Error: %1 + + save_path is invalid + + + Couldn't begin transaction. Error: %1 + Transakcije ni bilo mogoče začeti. Napaka: %1 + BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Metapodatkov torrentov ni bilo mogoče shraniti. Napaka: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Podatkov o nadaljevanju za torrent '%1' ni bilo mogoče shraniti. Napaka: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Podatkov o nadaljevanju torrenta '%1' ni bilo mogoče izbrisati. Napaka: %2 - + Couldn't store torrents queue positions. Error: %1 Položajev torrentov v čakalni vrsti ni bilo mogoče shraniti. Napaka: %1 @@ -2087,457 +2226,503 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - + Podpora za porazdeljeno zgoščeno tabelo (DHT): %1 - - - - - - - - - + + + + + + + + + ON VKLJUČENO - - - - - - - - - + + + + + + + + + OFF IZKLJUČENO - - + + Local Peer Discovery support: %1 - + Podpora za lokalno odkrivanje soležnikov: %1 - + Restart is required to toggle Peer Exchange (PeX) support Za vklop ali izklop izmenjave soležnikov (PeX) je potreben ponovni zagon - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrenta ni bilo mogoče nadaljevati. Torrent: "%1". Razlog: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrenta ni bilo mogoče nadaljevati: zaznan je neskladen ID torrenta. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Zaznani so neskladni podatki: v datoteki z nastavitvami manjka kategorija. Kategorija bo obnovljena, vendar bodo njene nastavitve ponastavljene. Torrent: "%1". Kategorija: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Zaznani so neskladni podatki: neveljavna kategorija. Torrent: "%1". Kategorija: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Zaznano je neujemanje med potmi shranjevanja obnovljene kategorije in trenutno potjo shranjevanja torrenta. Torrent se je preklopil na ročni način. Torrent: "%1". Kategorija: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Zaznani so neskladni podatki: v datoteki z nastavitvami manjka oznaka. Oznaka bo obnovljena. Torrent: "%1". Oznaka: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Zaznani so neskladni podatki: neveljavna oznaka. Torrent: "%1". Oznaka: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Zaznan je dogodek bujenja sistema. Ponovno obveščanje vseh sledilnikov... - + Peer ID: "%1" ID soležnika: "%1" - + HTTP User-Agent: "%1" Uporabniški agent HTTP: "%1" - + Peer Exchange (PeX) support: %1 Podpora za izmenjavo soležnikov (PeX): %1 - - + + Anonymous mode: %1 Anonimni način: %1 - - + + Encryption support: %1 Podpora za šifriranje: %1 - - + + FORCED PRISILJENO - + Could not find GUID of network interface. Interface: "%1" GUID-ja omrežnega vmesnika ni bilo mogoče najti. Razlog: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Poskus poslušanja na tem seznamu naslovov IP: "%1" - + Torrent reached the share ratio limit. Torrent je dosegel omejitev razmerja deljenja. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent odstranjen. - - - - - - Removed torrent and deleted its content. - Torrent odstranjen in njegova vsebina izbrisana. - - - - - - Torrent paused. - Torrent začasno ustavljen. - - - - - + Super seeding enabled. Super sejanje omogočeno. - + Torrent reached the seeding time limit. Torrent je dosegel omejitev časa sejanja. - + Torrent reached the inactive seeding time limit. - + Torrent je dosegel časovno omejitev neaktivnega sejanja. - + Failed to load torrent. Reason: "%1" Torrenta ni bilo mogoče naložiti. Razlog: "%1" - + I2P error. Message: "%1". - + Napaka I2P. Sporočilo: "%1". - + UPnP/NAT-PMP support: ON Podpora za UPnP/NAT-PMP: VKLJUČENA - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + Odstranjevanje torrenta. + + + + Removing torrent and deleting its content. + Odstranjevanje torrenta in brisanje njegove vsebine. + + + + Torrent stopped. + Torrent zaustavljen. + + + + Torrent content removed. Torrent: "%1" + Vsebina torrenta odstranjena. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Vsebine torrenta ni bilo mogoče odstraniti. Torrent: "%1". Napaka: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent odstranjen. Torrent: "%1" + + + + Merging of trackers is disabled + Združevanje sledilnikov je onemogočeno + + + + Trackers cannot be merged because it is a private torrent + Sledilnikov ni mogoče združiti, ker gre za zasebni torrent + + + + Trackers are merged from new source + Sledilniki so združeni iz novega vira + + + UPnP/NAT-PMP support: OFF Podpora za UPnP/NAT-PMP: IZKLJUČENA - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrenta ni bilo mogoče izvoziti. Torrent: "%1". Cilj: "%2". Razlog: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + Shranjevanje podatkov o nadaljevanju je prekinjeno. Število torrentov v prejemanju: %1 - + The configured network address is invalid. Address: "%1" Nastavljeni omrežni naslov je neveljaven. Naslov: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + Konfiguriranega omrežnega naslova za poslušanje ni bilo mogoče najti. Naslov: "%1" - + The configured network interface is invalid. Interface: "%1" Nastavljeni omrežni vmesnik je neveljaven. Vmesnik: "%1" - - Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + + Tracker list updated + Seznam sledilnikov posodobljen - + + Failed to update tracker list. Reason: "%1" + Seznama sledilnikov ni bilo mogoče posodobiti. Razlog: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" + Zavrnjen neveljaven naslov IP med uporabo seznama prepovedanih naslovov IP. IP: "%1" + + + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Sledilnik dodan torrentu. Torrent: "%1". Sledilnik: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Sledilnik odstranjen iz torrenta. Torrent: "%1". Sledilnik: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" URL sejalca dodan torrentu. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" + Odstranjen URL semena iz torrenta. Torrent: "%1". URL: "%2" + + + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - - Torrent paused. Torrent: "%1" - Torrent začasno ustavljen. Torrent: "%1" - - - + Torrent resumed. Torrent: "%1" Torrent se nadaljuje. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Prejemanje torrenta dokončano. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Premik torrenta preklican. Torrent: "%1". Vir: "%2". Cilj: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent zaustavljen. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Premika torrenta ni bilo mogoče dodati v čakalno vrsto. Torrent: "%1". Vir: "%2". Cilj: "%3". Razlog: torrent se trenutno premika na cilj - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Premika torrenta ni bilo mogoče dodati v čakalno vrsto. Torrent: "%1". Vir: "%2". Cilj: "%3". Razlog: obe poti kažeta na isto lokacijo - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Premik torrenta je dodan v čakalno vrsto. Torrent: "%1". Vir: "%2". Cilj: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Začetek premikanja torrenta. Torrent: "%1". Cilj: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Nastavitev kategorij ni bilo mogoče shraniti. Datoteka: "%1". Napaka: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Nastavitev kategorij ni bilo mogoče razčleniti. Datoteka: "%1". Napaka: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Datoteka s filtri IP uspešno razčlenjena. Število uveljavljenih pravil: %1 - + Failed to parse the IP filter file Datoteke s filtri IP ni bilo mogoče razčleniti - + Restored torrent. Torrent: "%1" Torrent obnovljen. Torrent: "%1" - + Added new torrent. Torrent: "%1" Nov torrent dodan. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Napaka torrenta. Torrent: "%1". Napaka: "%2" - - - Removed torrent. Torrent: "%1" - Torrent odstranjen. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent odstranjen in njegova vsebina izbrisana. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrentu manjkajo parametri SSL. Torrent: "%1". Sporočilo: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Opozorilo o napaki datoteke. Torrent: "%1". Datoteka: "%2". Vzrok: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + Preslikava vrat UPnP/NAT-PMP ni uspela. Sporočilo: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + Preslikava vrat UPnP/NAT-PMP je uspela. Sporočilo: "%1" - + IP filter this peer was blocked. Reason: IP filter. Filter IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrirana vrata (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). vrata s prednostmi (%1) - - BitTorrent session encountered a serious error. Reason: "%1" + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" - + + BitTorrent session encountered a serious error. Reason: "%1" + qBittorrent seja je naletela na resno napako. Razlog: "%1" + + + SOCKS5 proxy error. Address: %1. Message: "%2". Napaka posrednika SOCKS5. Naslov: %1. Sporočilo: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 omejiitve mešanega načina - + Failed to load Categories. %1 Kategorij ni bilo mogoče naložiti. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Nastavitev kategorij ni bilo mogoče naložiti. Datoteka: "%1". Napaka: "Neveljavna oblika podatkov" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 je onemogočen - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 je onemogočen - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Prejeto sporočilo o napaki iz naslova URL. Torrent: "%1". URL: "%2". Sporočilo: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Uspešno poslušanje na IP. IP: "%1". Vrata: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Neuspešno poslušanje na IP. IP: "%1". Vrata: "%2/%3". Razlog: "%4" - + Detected external IP. IP: "%1" Zaznan zunanji IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Napaka: notranja čakalna vrsta opozoril je polna in opozorila so izpuščena, morda boste opazili poslabšano delovanje. Izpuščena vrsta opozorila: "%1". Sporočilo: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent uspešno prestavljen. Torrent: "%1". Cilj: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrenta ni bilo mogoče premakniti. Torrent: "%1". Vir: "%2". Cilj: "%3". Razlog: "%4" @@ -2547,19 +2732,19 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Failed to start seeding. - + Sejanja ni bilo mogoče začeti. BitTorrent::TorrentCreator - + Operation aborted Postopek prekinjen - - + + Create new torrent file failed. Reason: %1. Ustvarjanje nove datoteke torrenta ni uspelo. Razlog: %1. @@ -2567,67 +2752,67 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Dodajanje soležnika "%1" torrentu "%2" ni uspelo. Razlog: %3 - + Peer "%1" is added to torrent "%2" Soležnik "%1" je dodan torrentu "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Zaznani so nepričakovani podatki. Torrent: %1. Podatki: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Ni bilo mogoče pisati v datoteko. Razlog: "%1". Torrent je sedaj v načinu samo za pošiljanje. - + Download first and last piece first: %1, torrent: '%2' Najprej prejmi prvi in zadnji kos: %1, torrent: "%2" - + On vklopljeno - + Off izklopljeno - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Torrenta ni bilo mogoče znova naložiti. Torrent: %1. Razlog: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrenta ni bilo mogoče obnoviti. Datoteke so bile verjetno premaknjene ali pa shramba ni na voljo. Torrent: "%1". Razlog: "%2" - + Missing metadata Manjkajoči metapodatki - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Preimenovanje datoteke ni uspelo. Torrent: "%1", datoteka: "%2", razlog: "%3" - + Performance alert: %1. More info: %2 Opozorilo o učinkovitosti delovanja: %1. Več informacij: %2 @@ -2648,189 +2833,189 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parameter '%1' mora slediti sintaksi '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parameter '%1' mora slediti sintaksi '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Pričakovano število v okoljski spremenljivki '%1', ampak dobljeno '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parameter '%1' mora slediti sintaksi '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Pričakovano %1 v okoljski spremenljivki '%2', ampak dobljeno '%3' - - + + %1 must specify a valid port (1 to 65535). %1 mora določiti veljavna vrata ( 1 do 65535). - + Usage: Uporaba: - + [options] [(<filename> | <url>)...] - + Options: Možnosti: - + Display program version and exit Pokaži različico programa in zapri - + Display this help message and exit Prikaži sporočilo s pomočjo in zapri - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parameter '%1' mora slediti sintaksi '%1=%2' + + + Confirm the legal notice - - + + port vrata - + Change the WebUI port - + Spremeni vrata WebUI - + Change the torrenting port Spremeni vrata za prenašanje torrentov - + Disable splash screen Onemogoči pozdravno okno - + Run in daemon-mode (background) Zaženi v načinu ozadnjega opravila (v ozadju) - + dir Use appropriate short form or abbreviation of "directory" mapa - + Store configuration files in <dir> Shrani konfiguracijske datoteke v <dir> - - + + name ime - + Store configuration files in directories qBittorrent_<name> Shrani konfiguracijske datoteke v mapah qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Vdri v libtorrent datoteke za hitro nadaljevanje in ustvari poti datotek ki se nanašajo na profilno mapo - + files or URLs datoteke ali URL-ji - + Download the torrents passed by the user Prenesi datoteke, ki jih je uporabnik preskočil - + Options when adding new torrents: Možnosti ob dodajanju novih torrentov: - + path pot - + Torrent save path Pot za shranjevanje torrenta - - Add torrents as started or paused - Dodaj torrente kot začete ali ustavljene + + Add torrents as running or stopped + Dodaj torrente kot zagnane ali kot ustavljene - + Skip hash check Preskoči preverjanje zgoščene vrednosti - + Assign torrents to category. If the category doesn't exist, it will be created. Dodeli torrente kategoriji. Če kategorija ne obstaja bo ustvarjena. - + Download files in sequential order Prejemanje datotek v zaporednem vrstnem redu - + Download first and last pieces first Prejemanje najprej prvih in zadnjih kosov - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Določi ali se pojavno okno "Dodaj nov torrent" prikaže ob dodajanju novih torrentov. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Vrednosti možnosti so lahko posredovane preko okoljskih spremenljivk. Za možnost imenovano 'parameter-name', je ime okoljske spremenljivke 'QBT_PARAMETER_NAME' (veliki znaki, '-' je zamenjan z '_'). Da preideš zastavljene vrednost nastavi spremenljivko na '1' ali 'TRUE'. Na primer, da onemogočiš pozdravno okno: - + Command line parameters take precedence over environment variables Parametri ukazne vrstice imajo prednost pred okoljskimi spremenljivkami - + Help Pomoč @@ -2882,12 +3067,12 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 - Resume torrents - Nadaljuj torrente + Start torrents + Začni torrente - Pause torrents + Stop torrents Ustavi torrente @@ -2899,15 +3084,20 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 ColorWidget - + Edit... Uredi... - + Reset Ponastavi + + + System + Sistem + CookiesDialog @@ -2948,22 +3138,22 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 - + Barv teme po meri ni bilo mogoče naložiti. %1 DefaultThemeSource - + Failed to load default theme colors. %1 - + Barv privzete teme ni bilo mogoče naložiti. %1 @@ -2980,23 +3170,23 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 - Also permanently delete the files - Trajno izbriši tudi datoteke + Also remove the content files + Odstrani tudi datoteke z vsebino - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Ali ste prepričani, da želite odstraniti '%1' s seznama prenosov? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Ali ste prepričani, da želite odstraniti %1 torrentov s seznama prenosov? - + Remove Odstrani @@ -3009,12 +3199,12 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Prejem z URLjev - + Add torrent links Dodaj torrent povezave - + One link per line (HTTP links, Magnet links and info-hashes are supported) Ena povezava na vrstico (povezave HTTP, magnetne povezave in info-šifre so podprte) @@ -3024,12 +3214,12 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Prejem - + No URL entered Ni bilo vnesenega URLja - + Please type at least one URL. Vpišite vsaj en URL. @@ -3188,25 +3378,48 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Napaka razčlenjevanja: Datoteka filtra ni veljavna datoteka PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Vzorčna oblika + + + + Plain text + Golo besedilo + + + + Wildcards + Nadomestni znaki + + + + Regular expression + Regularni izraz + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Prenašanje torrenta... Vir: "%1# - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrent je že prisoten - + + Trackers cannot be merged because it is a private torrent. + Sledilnikov ni mogoče združiti, ker je torrent zaseben. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' je že na seznamu prenosov. Ali mu želite pridružiti sledilnike iz novega vira? @@ -3214,38 +3427,38 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 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 - + Database corrupted: no data section found. Podatkovna zbirka pokvarjena: najden odsek brez podatkov. @@ -3253,17 +3466,17 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Velikost Http zahtevka presega omejitev, zapiranje vtičnice. Prag: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 Slab Http zahtevek, zapiranje vtičnice. IP: %1 @@ -3304,23 +3517,57 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 IconWidget - + Browse... Brskaj ... - + Reset Ponastavi - + Select icon Izberi ikono - + Supported image files + Podprte slikovne datoteke + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active @@ -3349,19 +3596,19 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Press 'Enter' key to continue... - + Pritisnite tipko Enter za nadaljevanje ... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 je bil blokiran. Razlog: %2 - + %1 was banned 0.0.0.0 was banned %1 je bil izključen @@ -3370,60 +3617,60 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 ni znan parameter ukazne vrstice. - - + + %1 must be the single command line parameter. %1 mora biti parameter v eni ukazni vrstici. - + Run application with -h option to read about command line parameters. Zaženite program z možnosti -h, če želite prebrati več o parametrih ukazne vrstice. - + Bad command line Napačna ukazna vrstica - + Bad command line: Napačna ukazna vrstica: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3436,609 +3683,681 @@ Podprti formati: S01E01, 1x1, 2017.12.31 and 31.12.2017 &Uredi - + &Tools &Orodja - + &File &Datoteka - + &Help &Pomoč - + On Downloads &Done Ob &zaključenih prejemih - + &View &Pogled - + &Options... &Možnosti ... - - &Resume - &Nadaljuj - - - + &Remove Od&strani - + Torrent &Creator Ustvarjalnik &torrentov - - + + Alternative Speed Limits Nadomestna omejitev hitrosti - + &Top Toolbar &Zgornja orodna vrstica - + Display Top Toolbar Pokaži zgornjo orodno vrstico - + Status &Bar Vrstica &stanja - + Filters Sidebar Stranska vrstica s filtri - + 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 - + Do&nate! Pod&ari! - + + Sh&utdown System + + + + &Do nothing &Ne stori ničesar - + Close Window Zapri okno - - R&esume All - &Nadaljuj vse - - - + Manage Cookies... Upravljanje piškotkov ... - + Manage stored network cookies Upravljanje shranjenih omrežnih piškotkov - + Normal Messages Dogodki - + Information Messages Informacije - + Warning Messages Opozorila - + Critical Messages Napake - + &Log &Dnevnik - + + Sta&rt + + + + + Sto&p + &Ustavi + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Določi globalne omejitve hitrosti - + Bottom of Queue Dno čakalne vrste - + Move to the bottom of the queue Premakni na dno čakalne vrste - + Top of Queue Vrh čakalne vrste - + Move to the top of the queue Premakni na vrh čakalne vrste - + Move Down Queue Premakni dol v vrsti - + Move down in the queue Premakni na dno čakalne vrste - + Move Up Queue Premakni gor v vrsti - + Move up in the queue Premakni gor v čakalni vrsti - + &Exit qBittorrent &Zapri qBittorrent - + &Suspend System Stanje &pripravljenost - + &Hibernate System Stanje &mirovanje - - S&hutdown System - Zau&stavi sistem - - - + &Statistics Statisti&ka - + Check for Updates Preveri za posodobitve - + Check for Program Updates Preveri posodobitve programa - + &About &O programu - - &Pause - &Premor - - - - P&ause All - P&remor vseh - - - + &Add Torrent File... &Dodaj datoteko torrent ... - + Open Odpri - + E&xit &Končaj - + Open URL Odpri URL - + &Documentation Dokumenta&cija - + Lock Zakleni - - - + + + Show Pokaži - + Check for program updates Preveri posodobitve programa - + 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 - + Clear the password Pobriši geslo - + &Set Password &Nastavi geslo - + Preferences Možnosti - + &Clear Password &Pobriši geslo - + Transfers Prenosi - - + + qBittorrent is minimized to tray qBittorrent je pomanjšan v opravilno vrstico - - - + + + This behavior can be changed in the settings. You won't be reminded again. To obnašanje se lahko spremeni v nastavitvah. O tem ne boste več obveščeni. - + 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: - + Are you sure you want to clear the password? Ali ste prepričani, da želite pobrisati geslo? - + Use regular expressions Uporabi splošne izraze - + + + Search Engine + Iskalnik + + + + Search has failed + Iskanje je spodletelo + + + + Search has finished + Iskanje je končano + + + Search Iskanje - + Transfers (%1) Prenosi (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent se je pravkar posodobil in potrebuje ponovni zagon za uveljavitev sprememb. - + qBittorrent is closed to tray qBittorrent je zaprt v opravilno vrstico - + Some files are currently transferring. Nekatere datoteke se trenutno prenašajo. - + Are you sure you want to quit qBittorrent? Ali ste prepričani, da želite zapreti qBittorrent? - + &No &Ne - + &Yes &Da - + &Always Yes &Vedno da - + Options saved. Možnosti shranjene. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Namestitvenega programa za Python ni bilo mogoče prenesti. Napaka: %1. +Namestite ga ročno. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Preimenovanje namestitvenega programa za Python ni uspelo. Vir: "%1". Cilj: "%2". + + + + Python installation success. + Python je bil uspešno nameščen. + + + + Exit code: %1. + + + + + Reason: installer crashed. + Razlog: namestitveni program se je sesul. + + + + Python installation failed. + Namestitev Pythona ni uspela. + + + + Launching Python installer. File: "%1". + Zaganjanje namestitvenega programa za Python. Datoteka: "%1". + + + + Missing Python Runtime Manjka Python Runtime - + qBittorrent Update Available Na voljo je posodobitev - + 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. - - + + Old Python Runtime Zastarel Python Runtime - + A new version is available. Na voljo je nova različica. - + Do you want to download %1? Ali želite prenesti %1? - + Open changelog... Odpri dnevnik sprememb ... - + No updates available. You are already using the latest version. Ni posodobitev. Že uporabljate zadnjo različico. - + &Check for Updates &Preveri za posodobitve - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Vaš Python (%1) je zastarel. Najnižja podprta različica je %2. Želite namestiti novejšo različico zdaj? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Vaša različica Pythona (%1) je zastarela. Za delovanje iskalnikov morate Python nadgraditi na najnovejšo različico. Najnižja podprta različica: %2. - + + Paused + V premoru + + + Checking for Updates... Preverjam za posodobitve ... - + Already checking for program updates in the background Že v ozadju preverjam posodobitve programa - + + Python installation in progress... + Python se namešča ... + + + + Failed to open Python installer. File: "%1". + Namestitvenega programa za Python ni bilo mogoče odpreti. Datoteka: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + 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 - + Filter torrents... - + Filtriraj torrente ... - + Filter by: - + Filtriraj po: - + The password must be at least 3 characters long Geslo mora vsebovati vsaj 3 znake. - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Odpri datoteke torrent - + Torrent Files Torrent datoteke @@ -4233,7 +4552,12 @@ Namestite Python ročno. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Napaka SSL, URL: "%1", napake: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignoriranje SSL napake, URL: "%1", napake: "%2" @@ -5527,47 +5851,47 @@ Namestite Python ročno. Net::Smtp - + Connection failed, unrecognized reply: %1 Povezava ni uspela, neprepoznan odgovor: %1 - + Authentication failed, msg: %1 Preverjanje pristnosti ni uspelo, sporočilo: %1 - + <mail from> was rejected by server, msg: %1 <mail from> je strežnik zavrnil, sporočilo: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> je strežnik zavrnil, sporočilo: %1 - + <data> was rejected by server, msg: %1 <data> je strežnik zavrnil, sporočilo: %1 - + Message was rejected by the server, error: %1 Strežnik je zavrnil sporočilo, napaka: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 Napaka pri e-poštnem obvestilu: %1 @@ -5605,299 +5929,283 @@ Namestite Python ročno. BitTorrent - + RSS RSS - - Web UI - Spletni vmesnik - - - + Advanced Napredno - + Customize UI Theme... - + Prilagodi temo vmesnika ... - + Transfer List Seznam prenosov - + Confirm when deleting torrents Potrdi ob brisanju torrentov - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Uporabi izmenične barve vrstic - + Hide zero and infinity values Skrij ničelne in neskončne vrednosti - + Always Vedno - - Paused torrents only - Samo ustavljeni torrenti - - - + Action on double-click Dejanje ob dvojnem kliku - + Downloading torrents: Med prejemanjem torrentov: - - - Start / Stop Torrent - Začni / Ustavi torrent - - - - + + Open destination folder Odpri ciljno mapo - - + + No action Brez dejanja - + Completed torrents: Končani torrenti: - + Auto hide zero status filters - + Desktop Namizje - + Start qBittorrent on Windows start up Zaženi qBittorrent ob zagonu Windowsov - + Show splash screen on start up Pokaži pozdravno okno ob zagonu - + Confirmation on exit when torrents are active Zahtevaj potrditev ob izhodu, če so torrenti dejavni - + Confirmation on auto-exit when downloads finish Zahtevaj potrditev ob avtomatskem izhodu, ko so prejemi končani. - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Postavitev vsebine torrenta: - + Original Izvirno - + Create subfolder Ustvari podmapo - + Don't create subfolder Ne ustvari podmape - + The torrent will be added to the top of the download queue Torrent bo dodan na vrh čakalne vrste prejemov - + Add to top of queue The torrent will be added to the top of the download queue Dodaj na vrh čakalne vrste - + When duplicate torrent is being added - + Ob dodajanju podvojene vsebine - + Merge trackers to existing torrent - + Pripoji sledilnike obstoječemu torrentu - + Keep unselected files in ".unwanted" folder - + Neizbrane datoteke hrani v mapi ".unwanted" - + Add... Dodaj ... - + Options.. Možnosti ... - + Remove Odstrani - + Email notification &upon download completion Pošlji e-poštno obvestilo ob &zaključku prejema - + + Send test email + Pošlji preizkusno sporočilo + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Protokol za povezavo s soležniki: - + Any Katerikoli - + I2P (experimental) - + I2P (poskusno) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - Nekatere možnosti so nezdružljive z izbrano vrsto posredniškega strežnika! - - - + If checked, hostname lookups are done via the proxy Če je možnost izbrana, se imena gostiteljev pridobivajo prek posredniškega strežnika - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes Uporabljaj posredniški strežnik za delovanje BitTorrenta - + RSS feeds will use proxy Viri RSS bodo uporabljali posredniški strežnik - + Use proxy for RSS purposes Uporabljaj posredniški strežnik za delovanje RSS - + Search engine, software updates or anything else will use proxy Za iskanje z iskalnikom, preverjanje posodobitev in vse ostalo bo uporabljen posredniški strežnik - + Use proxy for general purposes Uporabljaj posredniški strežnik za splošne namene - + IP Fi&ltering Fi&ltriranje IP - + Schedule &the use of alternative rate limits Načrtujte uporabo nadomestnih omejitev hi&trosti - + From: From start time Od: - + To: To end time Do: - + Find peers on the DHT network Najdi soležnike na DHT omrežju - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5906,145 +6214,190 @@ Zahtevaj šifriranje: poveži se samo s soležniki s šifriranjem protokola Onemogoči šifriranje: poveži se samo s soležniki brez šifriranja protokola - + Allow encryption Dovoli šifriranje - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Več informacij</a>) - + Maximum active checking torrents: - + &Torrent Queueing Čakalna vrsta &torrentov - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - S&amodejno dodaj te sledilnike novim prenosom: - - - + RSS Reader Bralnik RSS - + Enable fetching RSS feeds Omogoči pridobivanje RSS virov - + Feeds refresh interval: Interval osveževanja virov: - + Same host request delay: - + Maximum number of articles per feed: Največje število člankov na vir: - - - + + + min minutes min - + Seeding Limits Omejitve sejanja - - Pause torrent - Začasno ustavi torrent - - - + Remove torrent Odstrani torrent - + Remove torrent and its files Odstrani torrent in njegove datoteke - + Enable super seeding for torrent Omogoči super sejanje za torrent - + When ratio reaches Ko razmerje doseže - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Ustavi torrent + + + + A&utomatically append these trackers to new downloads: + Novim prenosom s&amodejno dodaj te sledilnike: + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader Samodejni prejemnik RSS torrentov - + Enable auto downloading of RSS torrents Omogoči samodejni prejem RSS torrentov - + Edit auto downloading rules... Uredi pravila samodejnega prejema... - + RSS Smart Episode Filter RSS Pametni filter epizod - + Download REPACK/PROPER episodes Prenesi REPACK/PROPER epizode - + Filters: Filtri: - + Web User Interface (Remote control) Spletni uporabniški vmesnik (Oddaljen nadzor) - + IP address: IP naslov: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6053,42 +6406,37 @@ Določi IPv4 ali IPv6 naslov. Lahko doličiš "0.0.0.0" za katerikol "::" za katerikoli IPv6 naslov, ali "*" za oba IPv4 in IPv6. - + Ban client after consecutive failures: Izobčitev klienta po zaporednih neuspelih poskusih: - + Never Nikoli - + ban for: Izobčitev zaradi: - + Session timeout: Opustitev seje - + Disabled Onemogočeno - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: Domene strežnika: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6101,441 +6449,482 @@ vstavi imena domen, ki jih uporablja WebUI strežnik. Uporabi ';' da razčleniš vnose. Lahko uporbiš nadomestni znak '*'. - + &Use HTTPS instead of HTTP &Uporabi HTTPS namesto HTTP - + Bypass authentication for clients on localhost Obidi overitev za odjemalce na lokalnem gostitelju - + Bypass authentication for clients in whitelisted IP subnets Obidi overitev za odjemalce na seznamu dovoljenih IP podmrež - + IP subnet whitelist... Seznam dovoljenih IP podmrež... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name &Posodobi moje dinamično ime domene - + Minimize qBittorrent to notification area Skrči qBittorrent v območje za obvestila - + + Search + Iskanje + + + + WebUI + + + + Interface Vmesnik - + Language: Jezik: - + + Style: + Slog: + + + + Color scheme: + Barvna shema: + + + + Stopped torrents only + Samo pri ustavljenih torrentih + + + + + Start / stop torrent + Zaženi/ustavi torrent + + + + + Open torrent options dialog + Odpri pogovorno okno z možnostmi torrenta + + + Tray icon style: Slog ikone sistemske vrstice: - - + + Normal Normalen - + File association Povezava datoteke - + Use qBittorrent for .torrent files Uporabi qBittorrent za datoteke .torrent - + Use qBittorrent for magnet links Uporabi qBittorrent za magnetne povezave - + Check for program updates Preveri posodobitve programa - + Power Management Upravljanje porabe - + + &Log Files + + + + Save path: Mesto shranjevanja: - + Backup the log file after: Varnostno kopiraj dnevnik po: - + Delete backup logs older than: Izbriši varnostne kopije dnevnikov starejše od: - + + Show external IP in status bar + + + + When adding a torrent Ob dodajanju torrenta - + Bring torrent dialog to the front Prikaži torrent pogovorno okno v ospredju - + + The torrent will be added to download list in a stopped state + Torrent bo dodan na seznam prejemov v ustavljenem stanju + + + Also delete .torrent files whose addition was cancelled Izbriši tudi .torrent datoteke katerih dodajanje je bilo preklicano - + Also when addition is cancelled Tudi ko je dodajanje preklicano - + Warning! Data loss possible! Pozor! Možna je izguba podatkov! - + Saving Management Upravljanje shranjevanja - + Default Torrent Management Mode: Privzet Način Upravljanja Torrentov: - + Manual Ročni - + Automatic Samodejni - + When Torrent Category changed: Ko je kategorija torrenta spremenjena: - + Relocate torrent Premakni torrent - + Switch torrent to Manual Mode Preklopi torrent na Ročni Način - - + + Relocate affected torrents Premakni dotične torrente - - + + Switch affected torrents to Manual Mode Preklopi dotične torrente na Ročni Način - + Use Subcategories Uporabi Podkategorije - + Default Save Path: Privzeta pot za shranjevanje: - + Copy .torrent files to: Kopiraj datoteke .torrent v: - + Show &qBittorrent in notification area Pokaži &qBittorrent v obvestilnem področju - - &Log file - &Dnevnik - - - + Display &torrent content and some options Pokaži vsebino &torrenta in nekaj možnosti - + De&lete .torrent files afterwards Po tem izbriši .torrent &datoteke - + Copy .torrent files for finished downloads to: Za zaključene prejeme kopiraj datoteke .torrent v: - + Pre-allocate disk space for all files Predhodno dodeli prostor na disku za vse datoteke - + Use custom UI Theme Uporabi temo uporabniškega vmesnika po meri - + UI Theme file: Datoteka s temo: - + Changing Interface settings requires application restart Po spremembi nastavitev vmesnika je potreben ponovni zagon - + Shows a confirmation dialog upon torrent deletion Prikaže potrditveno pogovorno okno ob brisanju torrenta - - + + Preview file, otherwise open destination folder Predogled datoteke, sicer odpri ciljno mapo - - - Show torrent options - Prikaži možnosti torrenta - - - + Shows a confirmation dialog when exiting with active torrents Prikaže potrditveno pogovorno okno ob zapiranju programa, če je kateri od torrentov dejaven - + When minimizing, the main window is closed and must be reopened from the systray icon Ob minimiranju se glavno okno zapre in je dostopno preko ikone v sistemskem pladnju - + The systray icon will still be visible when closing the main window Ikona v sistemskem pladnju bo ostala vidna tudi po zaprtju glavnega okna - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Zapri qBittorrent v območje za obvestila - + Monochrome (for dark theme) Enobarvna (za temno temo) - + Monochrome (for light theme) Enobarvna (za temno temo) - + Inhibit system sleep when torrents are downloading Prepreči spanje sistema, ko se torrenti prejemajo - + Inhibit system sleep when torrents are seeding Prepreči spanje sistema, ko se torrenti sejejo - + Creates an additional log file after the log file reaches the specified file size Ustvari dodatno dnevniško datoteko, ko trenutna doseže določeno velikost - + days Delete backup logs older than 10 days dni - + months Delete backup logs older than 10 months mesecev - + years Delete backup logs older than 10 years let - + Log performance warnings Beleži opozorila o učinkovitosti delovanja - - The torrent will be added to download list in a paused state - Torrent bo na seznam prejemov dodan ustavljen - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Ne začni prejema samodejno - + Whether the .torrent file should be deleted after adding it Ali naj bo datoteka .torrent po dodajanju izbrisana - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Dodeli celotno velikost datotek pred začetkom prenosa za zmanjšanje fragmentacije. Uporabno samo pri trdih diskih (HDD). - + Append .!qB extension to incomplete files Dodaj pripono .!qB nedokončanim datotekam - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Ko je torrent prenesen, ponudi dodajanje torrentov od katere koli .torrent datoteke najdene znotraj tega prenosa. - + Enable recursive download dialog Omogoči okno za rekurzivni prenos - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: Ko se pot za shranjevanje kategorije spremeni: - + Use Category paths in Manual Mode Uporabi poti kategorij v ročnem načinu - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme Uporabi ikone sistemske teme - + Window state on start up: Stanje okna ob zagonu: - + qBittorrent window state on start up Stanje okna qBittorrent ob zagonu: - + Torrent stop condition: Pogoj za ustavitev torrenta: - - + + None Brez - - + + Metadata received Prejeti metapodatki - - + + Files checked Preverjene datoteke - + Ask for merging trackers when torrent is being added manually - + Ob ročnem dodajanju torrentov vprašaj glede združevanja sledilnikov - + Use another path for incomplete torrents: Za nedokončane torrente uporabi drugačno pot: - + Automatically add torrents from: Samodejno dodaj torrente iz: - + Excluded file names Izvzeta imena datotek - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6552,770 +6941,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver Prejemnik - + To: To receiver Za: - + SMTP server: Strežnik SMTP: - + Sender Pošiljatelj - + From: From sender Od: - + This server requires a secure connection (SSL) Ta strežnik zahteva varno povezavo (SSL) - - + + Authentication Overitev - - - - + + + + Username: Uporabniško ime: - - - - + + + + Password: Geslo: - + Run external program Zaženi zunanji program - - Run on torrent added - Zaženi ob dodajanju torrenta - - - - Run on torrent finished - Zaženi ob dokončanju torrenta - - - + Show console window Prikaži okno konzole - + TCP and μTP TCP in μTP - + Listening Port Vrata za poslušanje - + Port used for incoming connections: Uporabljena vrata za dohodne povezave: - + Set to 0 to let your system pick an unused port Nastavite na 0, da prepustite sistemu izbiro neuporabljenih vrat - + Random Naključna - + Use UPnP / NAT-PMP port forwarding from my router Uporabi UPnP / NAT-PMP posredovanje vrat od mojega usmerjevalnika - + Connections Limits Omejitve povezav - + Maximum number of connections per torrent: Najvišje število povezav na torrent: - + Global maximum number of connections: Najvišje splošno število povezav: - + Maximum number of upload slots per torrent: Najvišje število povezav za pošiljanje na torrent: - + Global maximum number of upload slots: Najvišje splošno število povezav za pošiljanje na torrent: - + Proxy Server Posredniški strežnik - + Type: Tip: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Gostitelj: - - - + + + Port: Vrata: - + 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 - + A&uthentication Overitev - - Info: The password is saved unencrypted - Obvestilo: Geslo je shranjeno nešifrirano - - - + Filter path (.dat, .p2p, .p2b): Pot filtra (.dat, .p2p, .p2b): - + Reload the filter Ponovno naloži filter - + Manually banned IP addresses... Ročno izločeni IP naslovi... - + Apply to trackers Uveljavi pri sledilcih - + Global Rate Limits Splošne omejitve hitrosti - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Pošiljanje: - - + + Download: Prejem: - + Alternative Rate Limits Nadomestne omejitve hitrosti - + Start time Začetni čas - + End time Končni čas - + When: Kdaj: - + Every day Vsak dan - + Weekdays Med tednom - + Weekends Vikendi - + Rate Limits Settings Nastavitve omejitev hitrosti - + Apply rate limit to peers on LAN Uveljavi omejitve hitrosti za soležnike na krajevnem omrežju - + Apply rate limit to transport overhead Uveljavi omejitev razmerja v slepi prenos - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Uveljavi omejitve hitrosti za µTP protokol - + Privacy Zasebnost - + Enable DHT (decentralized network) to find more peers Omogočite DHT (decentralizirano omrežje) da najdete več soležnikov - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Izmenjaj soležnike z združljivimi odjemalci Bittorrent (µTorrent, Vuze, ...) - + 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 Local Peer Discovery to find more peers Omogočite odkrivanje krajevnih soležnikov za iskanje več soležnikov - + Encryption mode: Način šifriranja: - + Require encryption Zahtevaj šifriranje - + Disable encryption Onemogoči šifriranje - + 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 anonimni način - + Maximum active downloads: Največ dejavnih prejemov: - + Maximum active uploads: Največ dejavnih pošiljanj: - + Maximum active torrents: Največ dejavnih torrentov: - + Do not count slow torrents in these limits V teh omejitvah ne štej počasnih torrentov - + Upload rate threshold: Omejitev hitrosti pošiljanja: - + Download rate threshold: Omejitev hitrosti prejemanja: - - - - + + + + sec seconds sec - + Torrent inactivity timer: Časovnik nedejavnosti torrenta: - + then nato - + Use UPnP / NAT-PMP to forward the port from my router Uporabi UPnP / NAT-PMP za posredovanje vrat od mojega usmerjevalnika - + Certificate: Potrdilo: - + Key: Ključ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Podrobnosti o potrdilih</a> - + Change current password Spremeni trenutno geslo - - Use alternative Web UI - Uporabi alternativni spletni vmesnik - - - + Files location: Mesto datotek: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Varnost - + Enable clickjacking protection Omogoči zaščito proti ugrabitvi klikov (clickjacking). - + Enable Cross-Site Request Forgery (CSRF) protection Omogoči zaščito pred ponarejanjem spletnih zahtev (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers Dodaj glave HTTP po meri - + Header: value pairs, one per line Glava: pari vrednosti, en na vrstico - + Enable reverse proxy support - + Trusted proxies list: Seznam zaupanja vrednih posrednikov: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Storitev: - + Register Vpis - + Domain name: Ime domene: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Z omogočanjem teh možnosti lahko <strong>nepreklicno izgubite</strong> vaše .torrent datoteke! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Če omogočite drugo možnost (&ldquo;Tudi ko je dodajanje preklicano&rdquo;) bodo .torrent datoteke <strong>izbrisane</strong>, tudi če pritisnete &ldquo;<strong>Prekliči</strong>&rdquo;, v &ldquo;Dodaj torrent&rdquo; meniju - + Select qBittorrent UI Theme file Izberi datoteko za izgled vmesnika qBittorrent (*.qbtheme) - + Choose Alternative UI files location Izberi mesto datotek alternativnega vmesnika - + Supported parameters (case sensitive): Podprti parametri (razlikovanje velikosti črk): - + Minimized minimirano - + Hidden skrito - + Disabled due to failed to detect system tray presence Onemogočeno zaradi neuspešnega zaznavanja prisotnosti sistemskega pladnja - + No stop condition is set. Nastavljen ni noben pogoj za ustavitev. - + Torrent will stop after metadata is received. Torrent se bo zaustavil, ko se bodo prejeli metapodatki. - Torrents that have metadata initially aren't affected. - Ne vpliva na torrente, ki že v začetku imajo metapodatke. - - - + Torrent will stop after files are initially checked. Torrent se bo zaustavil po začetnem preverjanju datotek. - + This will also download metadata if it wasn't there initially. S tem se bodo prejeli tudi metapodatki, če še niso znani. - + %N: Torrent name %N: Ime torrenta - + %L: Category %L: Kategorija - + %F: Content path (same as root path for multifile torrent) %F: Pot vsebine (enaka kot korenska pot za večdatotečni torrent) - + %R: Root path (first torrent subdirectory path) %R: Korenska pot (pot podmape prvega torrenta) - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Namig: Postavi parameter med narekovaje da se izogneš prelomu teksta na presledku (npr., "%N") - + + Test email + Preizkusno sporočilo + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Brez) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent bo obravnavan kot počasen, če hitrosti pošiljanja in prejemanja ostaneta pod temi vrednostmi za "Časovnik nedejavnosti torrenta" sekund - + Certificate Digitalno potrdilo - + Select certificate Izberite potrdilo - + Private key Zasebni ključ - + Select private key Izberite zasebni ključ - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Za najboljšo združljivost s temnim načinom sistema Windows se priporoča %1 + + + + System + System default Qt style + Sistem + + + + Let Qt decide the style for this system + Naj v tem sistemu Qt izbere slog + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + Sistem + + + Select folder to monitor Izberite mapo za nadzorovanje - + Adding entry failed Dodajanje vnosa je spodletelo - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Napaka lokacije - - + + Choose export directory Izberite mapo za izvoz - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) Datoteka s temo za vmesnik qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Oznake (ločene z vejico) - + %I: Info hash v1 (or '-' if unavailable) - + %I: Informativna zgoščena vrednost v1 (ali '-', če ni na voljo) - + %J: Info hash v2 (or '-' if unavailable) - + %I: Informativna zgoščena vrednost v2 (ali '-', če ni na voljo) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Izberite mapo za shranjevanje - + Torrents that have metadata initially will be added as stopped. - + Torrenti, ki imajo metapodatke, bodo sprva dodani v premoru. - + Choose an IP filter file Izberite datoteko s filtri IP - + All supported filters Vsi podprti filtri - + The alternative WebUI files location cannot be blank. - + 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. - + Preferences Možnosti - + Time Error Napaka v času - + The start time and the end time can't be the same. Čas začetka in konca ne smeta biti enaka. - - + + Length Error Napaka v dolžini @@ -7323,241 +7753,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown Neznano - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic Šifriran promet - + Encrypted handshake Šifrirano rokovanje + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Država/Regija - + IP/Address - + IP/Naslov - + Port Vrata - + Flags Zastavice - + Connection Povezava - + Client i.e.: Client application Odjemalec - + Peer ID Client i.e.: Client resolved from Peer ID - + 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 - + Files i.e. files that are being downloaded right now Datoteke - + Column visibility Vidnost stolpca - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine - + Add peers... Dodaj soležnike ... - - + + Adding peers Dodajanje soležnikov - + Some peers cannot be added. Check the Log for details. Nekaterih soležnikov ni bilo mogoče dodati. Za podrobnosti si oglejte dnevnik. - + Peers are added to this torrent. Soležniki so dodani torrentu. - - + + Ban peer permanently Trajno izobči soležnika - + Cannot add peers to a private torrent Soležnikov ni mogoče dodati zasebnemu torrentu - + Cannot add peers when the torrent is checking Soležnikov ni mogoče dodajati med preverjanjem torrenta - + Cannot add peers when the torrent is queued Soležnikov ni mogoče dodajati, ko je torrent v čakalni vrsti - + No peer was selected Izbran ni noben soležnik - + Are you sure you want to permanently ban the selected peers? Ali ste prepričani, da želite trajno izobčiti izbrane soležnike? - + Peer "%1" is manually banned Soležnik "%1" je ročno izključen - + N/A N/A - + Copy IP:port Kopiraj IP: vrata @@ -7575,7 +8010,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Seznam soležnikov za dodajanje (en IP na vrstico) - + Format: IPv4:port / [IPv6]:port Oblika: IPv4:vrata / [IPv6]:vrata @@ -7616,27 +8051,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: Datoteke v tem kosu: - + File in this piece: Datoteka v tem kosu: - + File in these pieces: Datoteka v teh kosih: - + Wait until metadata become available to see detailed information Za ogled podrobnejših informacij počakajte, da podatki postanejo dostopni - + Hold Shift key for detailed information Drži tipko Shift za podrobnejše informacije @@ -7649,58 +8084,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not Iskanje vtičnikov - + Installed search plugins: Nameščeni vtičniki za iskanje: - + Name Ime - + Version Različica - + Url URL - - + + Enabled Omogočen - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Opozorilo: Pri prejemanju torrentov s spletnih brskalnikov, se prepričaj, da ravnaš skladno z zakonom o avtorskih in sorodnih pravicah in/ali drugimi uredbami/zakoni, ki urejajo avtorske pravice v Sloveniji. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Namesti novega - + Check for updates Preveri posodobitve - + Close Zapri - + Uninstall Odstrani @@ -7820,98 +8255,65 @@ Tisti vtičniki so bili onemogočeni. Vir vtičnika - + Search plugin source: Poišči vir vtičnika - + Local file Lokalna datoteka - + Web link Spletna povezava - - PowerManagement - - - qBittorrent is active - qBittorrent je dejaven - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Naslednje dodatke torrenta %1 podpirajo predogled. Izberite eno: - + Preview Predogled - + Name Ime - + Size Velikost - + Progress Napredek - + Preview impossible Predogled ni mogoč - + Sorry, we can't preview this file: "%1". Žal predogled te datoteke ni mogoč: "%1". - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine @@ -7924,27 +8326,27 @@ Tisti vtičniki so bili onemogočeni. Private::FileLineEdit - + Path does not exist Pot ne obstaja - + Path does not point to a directory Pot ne vodi do mape - + Path does not point to a file Pot ne vodi do datoteke - + Don't have read permission to path Za to pot ni dovoljenja za branje - + Don't have write permission to path Za to pot ni dovoljenja za pisanje @@ -7985,12 +8387,12 @@ Tisti vtičniki so bili onemogočeni. PropertiesWidget - + Downloaded: Prejeto: - + Availability: Na voljo: @@ -8005,53 +8407,53 @@ Tisti vtičniki so bili onemogočeni. Prenos - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Čas delovanja: - + ETA: Preostal čas: - + Uploaded: Poslano: - + Seeds: Semena: - + Download Speed: Hitrost prejema: - + Upload Speed: Hitrost pošiljanja: - + Peers: Soležniki: - + Download Limit: Omejitev prejema: - + Upload Limit: Omejitev pošiljanja: - + Wasted: Zavrženo: @@ -8061,193 +8463,220 @@ Tisti vtičniki so bili onemogočeni. Povezave: - + Information Podrobnosti - + Info Hash v1: Razpršilo v1: - + Info Hash v2: Razpršilo v2: - + Comment: Komentar: - + Select All Izberi vse - + Select None Ne izberi nič - + Share Ratio: Deli razmerje: - + Reannounce In: Ponovno objavi čez: - + Last Seen Complete: Nazadnje videno v celoti: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Razmerje/časom dejavnosti (v mesecih) – pove, kako pogosto se torrent prejema + + + + Popularity: + Priljubljenost: + + + Total Size: Skupna velikost: - + Pieces: Kosov: - + Created By: Ustvarjeno od: - + Added On: Dodano: - + Completed On: Zaključeno: - + Created On: Ustvarjeno: - + + Private: + Zaseben: + + + Save Path: Mesto: - + 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(%2 to sejo) - - + + + N/A / - + + Yes + Da + + + + No + Ne + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sejano %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 skupno) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1(%2 povpr.) - - New Web seed - Nov spletni sejalec + + Add web seed + Add HTTP source + - - Remove Web seed - Odstrani spletnega sejalca + + Add web seed: + - - Copy Web seed URL - Kopiraj URL spletnega sejalca + + + This web seed is already in the list. + - - Edit Web seed URL - Uredi URL spletnega sejalca - - - + Filter files... Filtriraj datoteke ... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Grafi hitrosti so onemogočeni - + You can enable it in Advanced Options Omogočite jih lahko v naprednih možnostih - - 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: @@ -8255,33 +8684,33 @@ Tisti vtičniki so bili onemogočeni. RSS::AutoDownloader - - + + Invalid data format. Neveljavna oblika podatkov. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Podatkov Samodejnega prejemnika RSS ni bilo mogoče shraniti na %1. Napaka: %2 - + Invalid data format Neveljavna oblika podatkov - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Pravil Samodejnega prejemnika RSS ni bilo mogoče naložiti. Razlog: %1 @@ -8289,22 +8718,22 @@ Tisti vtičniki so bili onemogočeni. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 RSS vira z '%1' ni mogoče prejeti. Razlog: %2. - + RSS feed at '%1' updated. Added %2 new articles. RSS vir z '%1' posodobljen. Dodanih %2 novih člankov. - + Failed to parse RSS feed at '%1'. Reason: %2 Razčlenjevanje RSS vira z '%1' ni uspelo. Razlog: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Vir RSS s '%1' uspešno prejet. Začetek razčlenjevanja. @@ -8314,7 +8743,7 @@ Tisti vtičniki so bili onemogočeni. Failed to read RSS session data. %1 - + Podatkov o seji RSS ni bilo mogoče prebrati. %1 @@ -8340,12 +8769,12 @@ Tisti vtičniki so bili onemogočeni. RSS::Private::Parser - + Invalid RSS feed. Neveljaven vir RSS. - + %1 (line: %2, column: %3, offset: %4). %1 (vrstica: %2, stolpec: %3, odmik: %4). @@ -8353,103 +8782,144 @@ Tisti vtičniki so bili onemogočeni. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Nastavitev seje RSS ni bilo mogoče shraniti. Datoteka: "%1". Napaka: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Podatkov o seji RSS ni bilo mogoče shraniti. Datoteka: "%1". Napaka: "%2" - - + + RSS feed with given URL already exists: %1. Vir RSS z danim URL-jem že obstaja: %1. - + Feed doesn't exist: %1. - + Vir ne obstaja: %1. - + Cannot move root folder. Korenske mape ni mogoče premakniti. - - + + Item doesn't exist: %1. Predmet ne obsaja: %1. - - Couldn't move folder into itself. - Mape ni mogoče premakniti v njo samo. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Korenske mape ni mogoče izbrisati. - + Failed to read RSS session data. %1 - + Podatkov o seji RSS ni bilo mogoče prebrati. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Vira RSS ni bilo mogoče naložiti. Vir: "%1". Razlog: Zahtevan je naslov URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Vira RSS ni bilo mogoče naložiti. Vir: "%1". Razlog: UID ni veljaven. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Najden je podvojen vir RSS. UID: "%1". Napaka: Nastavitve so videti okvarjene. - + Couldn't load RSS item. Item: "%1". Invalid data format. Predmeta RSS ni bilo mogoče naložiti. Predmet: "%1". Neveljaven zapis podatkov. - + Corrupted RSS list, not loading it. Pokvarjen seznam RSS, nalaganje prekinjeno. - + Incorrect RSS Item path: %1. Nepravilna pot RSS predmeta: %1. - + RSS item with given path already exists: %1. RSS predmet z dano potjo že obstaja: %1. - + Parent folder doesn't exist: %1. Starševska mapa ne obstaja: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Vir ne obstaja: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Interval osveževanja: + + + + sec + sec + + + + Default + Privzeto + + RSSWidget @@ -8469,8 +8939,8 @@ Tisti vtičniki so bili onemogočeni. - - + + Mark items read Označi predmete kot prebrane @@ -8495,132 +8965,115 @@ Tisti vtičniki so bili onemogočeni. Torrenti: (dvojni klik za prejem) - - + + Delete Odstrani - + Rename... Preimenuj ... - + Rename Preimenuj - - + + Update Posodobi - + New subscription... Nova naročnina ... - - + + Update all feeds Posodobi vse vire - + Download torrent Prejmi torrent - + Open news URL Odpri URL novic - + Copy feed URL Kopiraj URL vira - + New folder... Nova mapa ... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name Izberite ime mape - + Folder name: Ime mape: - + New folder Nova mapa - - - Please type a RSS feed URL - Vpišite URL vira RSS - - - - - Feed URL: - Vir URL: - - - + Deletion confirmation Potrditev odstranjevanja - + Are you sure you want to delete the selected RSS feeds? Ali ste prepričani, da želite izbrisati izbrane vire RSS? - + Please choose a new name for this RSS feed Izberite novo ime za ta vir RSS - + New feed name: Novo ime vira: - + Rename failed Preimenovanje neuspešno - + Date: Datum: - + Feed: - + Vir: - + Author: Avtor: @@ -8628,38 +9081,38 @@ Tisti vtičniki so bili onemogočeni. SearchController - + Python must be installed to use the Search Engine. Za uporabo iskalnika mora biti nameščen Python - + Unable to create more than %1 concurrent searches. Več kot %1 hkratnih iskanj ni mogoče ustvariti. - - + + Offset is out of range Odmik je izven obsega - + All plugins are already up to date. Vsi vtičniki so že posodobljeni. - + Updating %1 plugins Posodabljanje %1 vtičnikov - + Updating plugin %1 Posodabljanje vtičnika %1 - + Failed to check for plugin updates: %1 Iskanje posodobitev vtičnikov ni uspelo: %1 @@ -8734,132 +9187,142 @@ Tisti vtičniki so bili onemogočeni. Velikost: - + 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 Pijavke - - Search engine - Iskalnik - - - + Filter search results... Rezultati filtriranega iskanja... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Rezultati (prikazanih <i>%1</i> od <i>%2</i>): - + Torrent names only Samo imena torrentov - + Everywhere Povsod - + Use regular expressions Uporabi regularne izraze - + Open download window Odpri okno prejema - + Download Prejem - + Open description page Odpri stran z opisom - + Copy Kopiraj - + Name Ime - + Download link Povezava za prejem - + Description page URL URL strani z opisom - + Searching... Iskanje ... - + Search has finished Iskanje je končano - + Search aborted Iskanje je prekinjeno - + An error occurred during search... Med iskanjem je prišlo do napake ... - + Search returned no results Iskanje ni vrnilo rezultatov - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Vidnost stolpca - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine @@ -8867,104 +9330,104 @@ Tisti vtičniki so bili onemogočeni. SearchPluginManager - + Unknown search engine plugin file format. Neznana datotečna oblika vstavka iskalnika. - + Plugin already at version %1, which is greater than %2 Različica vtičnika je trenutno %1, kar je več od %2 - + A more recent version of this plugin is already installed. Novejša različica tega vstavka je že nameščena. - + Plugin %1 is not supported. Vtičnik %1 ni podprt. - - + + Plugin is not supported. Vstavek ni podprt. - + Plugin %1 has been successfully updated. Vtičnik %1 je bil uspešno posodobljen. - + All categories Vse kategorije - + Movies Filmi - + TV shows TV-oddaje - + Music Glasba - + Games Igre - + Anime Anime - + Software Programska oprema - + Pictures Slike - + Books Knjige - + Update server is temporarily unavailable. %1 Strežnik za posodobitve trenutno ni na voljo. %1 - - + + Failed to download the plugin file. %1 Prenos vstavka je spodletel. %1 - + Plugin "%1" is outdated, updating to version %2 Vtičnik "%1" je zastarel, posodabljanje na različico %2 - + Incorrect update info received for %1 out of %2 plugins. Za %1 od %2 vtičnikov so bili prejeti napačni podatki o posodobitvi. - + Search plugin '%1' contains invalid version string ('%2') Vstavek iskanja '%1' vsebuje neveljaven niz različice ('%2') @@ -8974,114 +9437,145 @@ Tisti vtičniki so bili onemogočeni. - - - - Search Iskanje - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Ni nameščenih vstavkov iskanja. Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite. - + Search plugins... Vstavki iskanja ... - + A phrase to search for. Iskalna fraza: - + Spaces in a search term may be protected by double quotes. Presledke pri iskalni frazi lahko zaščitite z dvojnimi narekovaji. - + Example: Search phrase example Primer: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: išči <b>foo bar</b> - + All plugins Vsi vstavki - + Only enabled Samo omogočeni - + + + Invalid data format. + Neveljavna oblika podatkov. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: išči <b>foo</b> in <b>bar</b> - + + Refresh + Osveži + + + Close tab Zapri zavihek - + Close all tabs Zapri vse zavihke - + Select... Izberi ... - - - + + Search Engine Iskalnik - + + Please install Python to use the Search Engine. Za uporabo iskalnika namestite Python. - + Empty search pattern Prazen iskani parameter - + Please type a search pattern first Najprej vpišite iskani parameter - + + Stop Ustavi + + + SearchWidget::DataStorage - - Search has finished - Iskanje je zaključeno + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Iskanje je spodletelo + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9194,34 +9688,34 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite. - + Upload: Pošiljanje: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Prejemanje: - + Alternative speed limits Nadomestne omejitve hitrosti @@ -9413,32 +9907,32 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite.Povprečen čas v čakalni vrsti: - + Connected peers: Povezanih soležnikov: - + All-time share ratio: Razmerje izmenjave vseh časov: - + All-time download: Prenos vseh časov: - + Session waste: Zavrženo v seji: - + All-time upload: Poslano vseh časov: - + Total buffer size: Skupna velikost medpomnilnika: @@ -9453,12 +9947,12 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite.Posli I/O v čakalni vrsti: - + Write cache overload: Preobremenitev pisanja predpomnilnika: - + Read cache overload: Preobremenitev branja predpomnilnika: @@ -9477,51 +9971,77 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite. StatusBar - + Connection status: Stanje povezave: - - + + No direct connections. This may indicate network configuration problems. Ni neposrednih povezav. To lahko pomeni, da so težave z nastavitvijo omrežja. - - + + Free space: N/A + + + + + + External IP: N/A + Zunanji IP: N/A + + + + DHT: %1 nodes DHT: %1 vozlišč - + qBittorrent needs to be restarted! qBittorrent se mora ponovno zagnati! - - - + + + Connection Status: Stanje povezave: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Nepovezani. To ponavadi pomeni, da je qBittorrentu spodletelo poslušanje dohodnih povezav na izbranih vratih. - + Online Povezani - + + Free space: + + + + + External IPs: %1, %2 + Zunanji IP-ji: %1, %2 + + + + External IP: %1%2 + Zunanji IP: %1%2 + + + Click to switch to alternative speed limits Kliknite za uporabo nadomestnih omejitev hitrosti - + Click to switch to regular speed limits Kliknite za uporabo splošnih omejitev hitrosti @@ -9551,13 +10071,13 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite. - Resumed (0) - V nadaljevanju (0) + Running (0) + Zagnani (0) - Paused (0) - V premoru (0) + Stopped (0) + Ustavljeni (0) @@ -9619,36 +10139,36 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite.Completed (%1) Dokončani (%1) + + + Running (%1) + Zagnani (%1) + - Paused (%1) - V premoru (%1) + Stopped (%1) + Ustavljeni (%1) + + + + Start torrents + Začni torrente + + + + Stop torrents + Ustavi torrente Moving (%1) Premikanje (%1) - - - Resume torrents - Nadaljuj torrente - - - - Pause torrents - Premor torrentov - Remove torrents Odstrani torrente - - - Resumed (%1) - V nadaljevanju (%1) - Active (%1) @@ -9720,31 +10240,31 @@ Klikni na gumb "Vstavki iskanja ..." spodaj desno da jih namestite.Remove unused tags Odstrani neuporabljene oznake - - - Resume torrents - Nadaljuj torrente - - - - Pause torrents - Ustavi torrente - Remove torrents Odstrani torrente - - New Tag - Nova oznaka + + Start torrents + Začni torrente + + + + Stop torrents + Ustavi torrente Tag: Oznaka: + + + Add tag + Dodaj oznako + Invalid tag name @@ -9891,32 +10411,32 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentContentModel - + Name Ime - + Progress Napredek - + Download Priority Prioriteta prenosov - + Remaining Preostalo - + Availability Na voljo - + Total Size Skupna velikost @@ -9961,98 +10481,98 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentContentWidget - + Rename error Napaka pri preimenovanju - + Renaming Preimenovanje - + New name: Novo ime: - + Column visibility Vidnost stolpca - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine - + Open Odpri - + Open containing folder Odpri vsebujočo mapo - + Rename... Preimenuj ... - + Priority Prednost - - + + Do not download Ne prejmi - + Normal Navadna - + High Visoka - + Maximum Najvišja - + By shown file order Po prikazanem vrstnem redu - + Normal priority Navadna prednost - + High priority Visoka prednost - + Maximum priority Najvišja prednost - + Priority by shown file order Prednost po prikazanem vrstnem redu @@ -10060,19 +10580,19 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentCreatorController - + Too many active tasks - + Preveč dejavnih opravil - + Torrent creation is still unfinished. - + Ustvarjanje torrenta še ni dokončano. - + Torrent creation failed. - + Ustvarjanje torrenta ni uspelo. @@ -10099,13 +10619,13 @@ Prosimo da izberete drugo ime in poizkusite znova. - + Select file Izberi datoteko - + Select folder Izberi mapo @@ -10180,87 +10700,83 @@ Prosimo da izberete drugo ime in poizkusite znova. Polja - + You can separate tracker tiers / groups with an empty line. Stopnje / skupine sledilnika lahko ločite s prazno vrstico. - + Web seed URLs: URL-ji spletnih semen: - + Tracker URLs: URL-ji sledilnikov: - + Comments: Komentarji: - + Source: Vir: - + Progress: Napredek: - + Create Torrent Ustvari torrent - - + + Torrent creation failed Ustvarjanje torrenta ni uspelo - + Reason: Path to file/folder is not readable. Razlog: Pot do datoteke/mape ni berljiva. - + Select where to save the new torrent Izberite, kam želite shraniti novi torrent - + Torrent Files (*.torrent) Datoteke torrentov (*.torrent) - Reason: %1 - Razlog: %1 - - - + Add torrent to transfer list failed. - + Dodajanje torrenta na seznam prenosov ni uspelo. - + Reason: "%1" Razlog: "%1" - + Add torrent failed Dodajanje torrenta spodletelo - + Torrent creator Ustvarjalnik torrentov - + Torrent created: Torrent ustvarjen: @@ -10268,32 +10784,32 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10301,44 +10817,31 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 Odpiranje datoteke magnet ni uspelo: %1 - + Rejecting failed torrent file: %1 Zavračanje neuspele datoteke .torrent: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Neveljavni metapodatki - - TorrentOptionsDialog @@ -10367,175 +10870,163 @@ Prosimo da izberete drugo ime in poizkusite znova. Uporabi drugačno pot za nedokončan torrent - + Category: Kategorija: - - Torrent speed limits - Omejitve hitrosti torrenta + + Torrent Share Limits + - + Download: Prejem: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Te omejitve ne bodo prekoračile globalnih - + Upload: Pošiljanje: - - Torrent share limits - Omejitve izmenjave torrenta - - - - Use global share limit - Uporabi splošno omejitev izmenjave - - - - Set no share limit - Ne nastavi omejitve izmenjave - - - - Set share limit to - Nastavi omejitev izmenjave na - - - - ratio - razmerje - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Onemogoči DHT za ta torrent - + Download in sequential order Prejmi v zaporednem vrstnem redu - + Disable PeX for this torrent Onemogoči PeX za ta torrent - + Download first and last pieces first Najprej prejmi prvi in zadnji kos - + Disable LSD for this torrent Onemogoči LSD za ta torrent - + Currently used categories Trenutno uporabljene kategorije - - + + Choose save path Izberite pot za shranjevanje - + Not applicable to private torrents Za zasebne torrente ta možnost ni primerna - - - No share limit method selected - Ni izbranega načina omejitve izmenjave - - - - Please select a limit method first - Najprej izberite način omejitve - TorrentShareLimitsWidget - - - + + + + Default - Privzeto + Privzeto + + + + + + Unlimited + Neomejeno - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Nastavi na + + + + Seeding time: + Čas sejanja: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Trajanje nedejavnega sejanja: - + + Action when the limit is reached: + Dejanje, ko se doseže omejitev: + + + + Stop torrent + Ustavi torrent + + + + Remove torrent + Odstrani torrent + + + + Remove torrent and its content + Odstrani torrent in njegovo vsebino + + + + Enable super seeding for torrent + Omogoči super sejanje za torrent + + + Ratio: - + Razmerje: @@ -10543,35 +11034,35 @@ Prosimo da izberete drugo ime in poizkusite znova. Torrent Tags - - - - - New Tag - Nova oznaka + Oznake torrenta + Add tag + Dodaj oznako + + + Tag: Oznaka: - + Invalid tag name Neveljavno ime oznake - + Tag name '%1' is invalid. - + Ime oznake "%1" je neveljavno. - + Tag exists Oznaka obstaja - + Tag name already exists. Ime oznake že obstaja. @@ -10579,115 +11070,130 @@ Prosimo da izberete drugo ime in poizkusite znova. TorrentsController - + Error: '%1' is not a valid torrent file. Napaka: '%1' je neveljavna datoteka torrent. - + Priority must be an integer Prioriteta mora biti celo število - + Priority is not valid Prioriteta ni veljavna - + Torrent's metadata has not yet downloaded Metapodatki torrenta še niso bili prejeti - + File IDs must be integers ID-ji datotek morajo biti cela števila - + File ID is not valid ID datoteke ni veljaven - - - - + + + + Torrent queueing must be enabled Čakalna vrsta Torrentov mora biti omogočena - - + + Save path cannot be empty Pot shranjevanja ne more biti prazna - - + + Cannot create target directory Ciljne mape ni mogoče ustvariti - - + + Category cannot be empty Kategorija ne more biti prazna - + Unable to create category Kategorije ni mogoče ustvariti - + Unable to edit category Kategorije ni mogoče urediti - + Unable to export torrent file. Error: %1 Datoteke s torrentom ni bilo mogoče izvoziti. Napaka: %1 - + Cannot make save path Mape za shranjevanje ni mogoče ustvariti - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Parameter 'sort' je neveljaven - - "%1" is not a valid file index. + + "%1" is not an existing URL - + + "%1" is not a valid file index. + "%1" ni veljaven indeks datoteke. + + + Index %1 is out of bounds. - - + + Cannot write to directory Ni mogoče pisati v mapo - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI Nastavi mesto: premikam "&1" z "%2" na "%3" - + Incorrect torrent name Napačno ime torrenta - - + + Incorrect category name Napačno ime kategorije @@ -10718,196 +11224,191 @@ Prosimo da izberete drugo ime in poizkusite znova. TrackerListModel - + Working Deluje - + Disabled Onemogočen - + Disabled for this torrent Onemogočeno za ta torrrent - + This torrent is private Ta torrent je zaseben - + N/A N/A - + Updating... Posodabljanje ... - + Not working Ne deluje - - - Tracker error - - - - - Unreachable - - + Tracker error + Napaka sledilnika + + + + Unreachable + Nedosegljiv + + + Not contacted yet Še ni bilo stika - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Stopnja - - - - Protocol + URL/Announce Endpoint + BT Protocol + Protokol BT + + + + Next Announce + Naslednje sporočanje + + + + Min Announce + + + + + Tier + Stopnja + + + Status Stanje - + Peers Soležniki - + Seeds Semena - + Leeches Pijavke - + Times Downloaded Število prejemov - + Message Sporočilo - - - Next announce - - - - - Min announce - - - - - v%1 - - TrackerListWidget - + This torrent is private Ta torrent je zaseben - + Tracker editing Urejanje sledilnika - + Tracker URL: URL sledilnika: - - + + Tracker editing failed Urejanje sledilnika ni uspelo - + The tracker URL entered is invalid. Vneseni URL sledilnika je neveljaven. - + The tracker URL already exists. URL sledilnika že obstaja. - + Edit tracker URL... Uredi URL sledilnika ... - + Remove tracker Odstrani sledilnik - + Copy tracker URL Kopiraj URL sledilnika - + Force reannounce to selected trackers Prisilno znova sporoči izbranim sledilnikom - + Force reannounce to all trackers Prisilno znova sporoči vsem sledilnikom - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine - + Add trackers... Dodaj sledilnike ... - + Column visibility Vidnost stolpca @@ -10925,37 +11426,37 @@ Prosimo da izberete drugo ime in poizkusite znova. Seznam sledilnikov za dodajanje (en na vrstico): - + µTorrent compatible list URL: Seznam URL združljiv z µTorrent-om - + Download trackers list Prejmi seznam sledilnikov - + Add Dodaj - + Trackers list URL error Napaka URL-ja seznama sledilnikov - + The trackers list URL cannot be empty URL s seznamom sledilnikov ne sme biti prazen - + Download trackers list error Napaka pri prejemu seznama sledilnikov - + Error occurred when downloading the trackers list. Reason: "%1" Pri prejemanju seznama sledilnikov je prišlo do napake. Razlog: "%1" @@ -10963,62 +11464,62 @@ Prosimo da izberete drugo ime in poizkusite znova. TrackersFilterWidget - + Warning (%1) Opozorilo (%1) - + Trackerless (%1) Brez sledilnika (%1) - - - Tracker error (%1) - - - Other error (%1) - + Tracker error (%1) + Napaka sledilnika (%1) - + + Other error (%1) + Druga napaka (%1) + + + Remove tracker Odstrani sledilnik - - Resume torrents - Nadaljuj torrente + + Start torrents + Začni torrente - - Pause torrents + + Stop torrents Ustavi torrente - + Remove torrents Odstrani torrente - + Removal confirmation - + Potrditev odstranjevanja - + Are you sure you want to remove tracker "%1" from all torrents? - + Ali ste prepričani, da želite odstraniti sledilnik "%1" iz vseh prejemov? - + Don't ask me again. - + Ne sprašuj več. - + All (%1) this is for the tracker filter Vsi (%1) @@ -11027,7 +11528,7 @@ Prosimo da izberete drugo ime in poizkusite znova. TransferController - + 'mode': invalid argument @@ -11119,11 +11620,6 @@ Prosimo da izberete drugo ime in poizkusite znova. 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. Preverjanje podatkov za nadaljevanje - - - Paused - Premor - Completed @@ -11147,220 +11643,252 @@ Prosimo da izberete drugo ime in poizkusite znova. Z napako - + Name i.e: torrent name Ime - + Size i.e: torrent size Velikost - + Progress % Done Napredek - + + Stopped + Ustavljeno + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Stanje - + Seeds i.e. full sources (often untranslated) Semena - + Peers i.e. partial sources (often untranslated) Soležnikov - + Down Speed i.e: Download speed Hitrost prejemanja - + Up Speed i.e: Upload speed Hitrost pošiljanja - + Ratio Share ratio Razmerje - + + Popularity + Priljubljenost + + + ETA i.e: Estimated Time of Arrival / Time left Preostali čas - + Category Kategorija - + Tags Oznake - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Dodano - + Completed On Torrent was completed on 01/01/2010 08:00 Zaključeno - + Tracker Sledilnik - + Down Limit i.e: Download limit Omejitev prenašanja - + Up Limit i.e: Upload limit Omejitev pošiljanja - + Downloaded Amount of data downloaded (e.g. in MB) Prenešeno - + Uploaded Amount of data uploaded (e.g. in MB) Poslano - + Session Download Amount of data downloaded since program open (e.g. in MB) Prejeto to sejo - + Session Upload Amount of data uploaded since program open (e.g. in MB) Poslano to sejo - + Remaining Amount of data left to download (e.g. in MB) Preostalo - + Time Active - Time (duration) the torrent is active (not paused) - Čas aktivnosti + Time (duration) the torrent is active (not stopped) + Čas delovanja - + + Yes + Da + + + + No + Ne + + + Save Path Torrent save path Mesto shranjevanja - + Incomplete Save Path Torrent incomplete save path Pomanjkljiva pot za shranjevanje - + Completed Amount of data completed (e.g. in MB) Dokončan - + Ratio Limit Upload share ratio limit Omejitev razmerja - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Nazadnje videno v celoti - + Last Activity Time passed since a chunk was downloaded/uploaded Zadnja dejavnost - + Total Size i.e. Size including unwanted data Skupna velikost - + Availability The number of distributed copies of the torrent Razpoložljivost - + Info Hash v1 i.e: torrent info hash v1 Informativno zgoščeno vrednost, v1 - + Info Hash v2 i.e: torrent info hash v2 Informativno zgoščeno vrednost, v2 - + Reannounce In Indicates the time until next trackers reannounce - + Znova sporoči čez - - + + Private + Flags private torrents + Zaseben + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Razmerje/časom dejavnosti (v mesecih) – pove, kako pogosto se torrent prejema + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago pred %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sejano %2) @@ -11369,339 +11897,319 @@ Prosimo da izberete drugo ime in poizkusite znova. TransferListWidget - + Column visibility Vidnost stolpca - + Recheck confirmation Ponovno potrdite preverjanje - + Are you sure you want to recheck the selected torrent(s)? Ali ste prepričani, da želite ponovno preveriti želene torrente? - + Rename Preimenuj - + New name: Novo ime: - + Choose save path Izberite mesto za shranjevanje - - Confirm pause - Potrditev premora - - - - Would you like to pause all torrents? - Ali ste prepričani, da želite začasno ustaviti vse torrente? - - - - Confirm resume - Potrditev nadaljevanja - - - - Would you like to resume all torrents? - Ali ste prepričani, da želite nadaljevati vse torrente? - - - + Unable to preview Predogled ni mogoč - + The selected torrent "%1" does not contain previewable files Izbran torrent "%1" ne vsebuje datoteke, za katere je možen predogled - + Resize columns Spremeni velikost stolpcev - + Resize all non-hidden columns to the size of their contents Prilagodi velikost vseh prikazanih stolpcev na širino njihove vsebine - + Enable automatic torrent management Omogoči samodejno upravljanje torrenta - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Ali ste prepričani, da želite omogočiti samodejno upravljanje izbranih torrentov? Morda bodo premaknjeni na drugo mesto. - - Add Tags - Dodaj oznake - - - + Choose folder to save exported .torrent files Izberite mapo, kamor želite shraniti izvožene datoteke .torrent - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Izvoz datoteke .torrent ni uspel. Torrent: "%1". Pot shranjevanja: "%2". Razlog: "%3" - + A file with the same name already exists Datoteka s tem imenom že obstaja - + Export .torrent file error Napaka pri izvozu datoteke .torrent - + Remove All Tags Odstrani vse oznake - + Remove all tags from selected torrents? Odstrani vse oznake z izbranega torrenta? - + Comma-separated tags: Z vejico ločene oznake: - + Invalid tag Neveljavna oznaka - + Tag name: '%1' is invalid Ime oznake: '%1' je neveljavno - - &Resume - Resume/start the torrent - &Nadaljuj - - - - &Pause - Pause the torrent - &Premor - - - - Force Resu&me - Force Resume/start the torrent - Prisi&lno nadaljuj - - - + Pre&view file... Pr&edogled datoteke ... - + Torrent &options... Mo&žnosti torrenta ... - + Open destination &folder Odpri &ciljno mapo - + Move &up i.e. move up in the queue Premakni &gor - + Move &down i.e. Move down in the queue Premakni &dol - + Move to &top i.e. Move to top of the queue Premakni na &vrh - + Move to &bottom i.e. Move to bottom of the queue Premakni na dn&o - + Set loc&ation... Nastavi &mesto ... - + Force rec&heck Prisilno znova pre&veri - + Force r&eannounce Prisilno znova sporo&či - + &Magnet link &Magnetno povezavo - + Torrent &ID &ID torrenta - + &Comment - + &Komentar - + &Name &Ime - + Info &hash v1 - + Informativno &zgoščeno vrednost, v1 - + Info h&ash v2 - + Informativno z&goščeno vrednost, v2 - + Re&name... P&reimenuj ... - + Edit trac&kers... &Uredi sledilnike ... - + E&xport .torrent... I&zvozi torrent ... - + Categor&y Kategori&ja - + &New... New category... &Nova ... - + &Reset Reset category Pon&astavi - + Ta&gs O&znake - + &Add... Add / assign multiple tags... &Dodaj ... - + &Remove All Remove all tags Od&strani vse - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue V &čakalno vrsto - + &Copy &Kopiraj - + Exported torrent is not necessarily the same as the imported Izvoženi torrent ni nujno enak kot uvoženi - + Download in sequential order Prejemanje v zaporednem vrstnem redu - + + Add tags + Dodaj oznake + + + Errors occurred when exporting .torrent files. Check execution log for details. Pri izvažanju datotek .torrent je prišlo do napak. Za podrobnosti glejte dnevnik izvajanja. - + + &Start + Resume/start the torrent + &Zaženi + + + + Sto&p + Stop the torrent + &Ustavi + + + + Force Star&t + Force Resume/start the torrent + P&risilno zaženi + + + &Remove Remove the torrent Od&strani - + Download first and last pieces first Prejemanje najprej prvih in zadnjih kosov - + Automatic Torrent Management Samodejno upravljanje torrenta - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Samodejni način pomeni, da so različne lastnosti torrenta (npr. pot za shranjevanje) določene na podlagi dodeljene kategorije - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Prisilno vnovično sporočanje ni mogoče, če je torrent začasno ustavljen, v čakalni vrsti, ima napako ali se preverja - - - + Super seeding mode Način super sejanja @@ -11711,7 +12219,7 @@ Prosimo da izberete drugo ime in poizkusite znova. UI Theme Configuration - + Nastavitev teme uporabniškega vmesnika @@ -11746,36 +12254,41 @@ Prosimo da izberete drugo ime in poizkusite znova. ID ikone - + UI Theme Configuration. - + Nastavitev teme uporabniškega vmesnika. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - + Nastavitve teme vmesnika ni bilo mogoče shraniti. Razlog: %1 - - + + Couldn't remove icon file. File: %1. - + Datoteke z ikono ni bilo mogoče odstraniti. Datoteka: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. - + Datoteke z ikono ni bilo mogoče kopirati. Vir: %1. Cilj: %2. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Nastavitev sloga aplikacije ni uspela. Neznan slog: "%1" + + + Failed to load UI theme from file: "%1" Napaka pri uvozu teme vmesnika iz datoteke: "%1" @@ -11806,20 +12319,21 @@ Prosimo da izberete drugo ime in poizkusite znova. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". V datoteki z nastavitvami je odkrita neveljavna vrednost, vračanje na privzeto. Ključ: "%1". Neveljavna vrednost: "%2". @@ -11827,32 +12341,32 @@ Prosimo da izberete drugo ime in poizkusite znova. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11862,7 +12376,7 @@ Prosimo da izberete drugo ime in poizkusite znova. File open error. File: "%1". Error: "%2" - + Napaka pri odpiranju datoteke. Datoteka: "%1". Napaka: "%2" @@ -11890,7 +12404,7 @@ Prosimo da izberete drugo ime in poizkusite znova. Watched Folder Options - + Možnosti opazovanih map @@ -11944,72 +12458,72 @@ Prosimo da izberete drugo ime in poizkusite znova. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Določeno je nesprejemljivo ime sejnega piškotka: "%1". Uporabljeno je privzeto. - + Unacceptable file type, only regular file is allowed. Nesprejemljiva oblika datoteke, dovoljene so le splošne datoteke. - + Symlinks inside alternative UI folder are forbidden. Symlinki znotraj mape alternativnega vmesnika so prepovedani. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Manjkajoč ločilnik ';' v HTTP glavi po meri znotraj spletnega vmesnika: "%1" - + Web server error. %1 - + Napaka spletnega strežnika. %1 - + Web server error. Unknown error. - + Napaka spletnega strežnika. Neznana napaka. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Glava izvirnika & Izvor tarče se ne ujemata! IP vira: '%1'. Glava izvirnika: '%2'. Izvor tarče: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Glava nanašalca & Izvor tarče se ne ujemata! IP vira: '%1'. Glava nanašalca: '%2'. Izvor tarče: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Neveljavna Glava Gostitelja, neujemanje vrat. Zahteva za IP vira: '%1'. Vrata strežnika: '%2'. Prejeta Glava izvirnika: '%3'  - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Neveljavna Glava Gostitelja. Zahteva za IP vira: '%1'. Prejeta Glava izvirnika: '%2' @@ -12017,125 +12531,133 @@ Prosimo da izberete drugo ime in poizkusite znova. WebUI - + Credentials are not set - + Poverilnice niso nastavljene - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Neznana napaka + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + %1 s - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + 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 diff --git a/src/lang/qbittorrent_sr.ts b/src/lang/qbittorrent_sr.ts index 1f54569c5..e9ed8fc8b 100644 --- a/src/lang/qbittorrent_sr.ts +++ b/src/lang/qbittorrent_sr.ts @@ -14,77 +14,77 @@ О програму - + Authors Аутори - + Current maintainer Тренутни одржавалац: - + Greece Грчка - - + + Nationality: Националност: - - + + E-mail: Е-маил: - - + + Name: Име: - + Original author Оригинални аутор - + France Француска - + Special Thanks Посебна захвалност - + Translators Преводиоци - + License Лиценца - + Software Used Коришћени софтвер - + qBittorrent was built with the following libraries: Ова верзија qBittorrentа је изграђена користећи наведене библиотеке: - + Copy to clipboard - + Копирај @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Ауторска права заштићена %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Ауторска права заштићена %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Сачувати у - + Never show again Не приказуј поново - - - Torrent settings - Подешавања торента - Set as default category @@ -191,12 +186,12 @@ Започни торент - + Torrent information Информације о торенту - + Skip hash check Прескочи проверу хеша @@ -205,6 +200,11 @@ Use another path for incomplete torrent Користи другу путању за незавршене торенте + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ Услов престанка - - + + None Никакав - - + + Metadata received Примљени метаподаци - + Torrents that have metadata initially will be added as stopped. - + Торенти који иницијално имају метаподатке биће додати као стопирани. - - + + Files checked Проверени фајлови - + Add to top of queue Додај на врх редоследа - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Када је означено, .torrent фајл се неће брисати, без обзира на подешавања у страни "Преузимања" дијалога "Опције" - + Content layout: Распоред садржаја: - + Original Оригинал - + Create subfolder Направите подмапу - + Don't create subfolder Не креирај подмапу - + Info hash v1: Инфо хеш v1: - + Size: Величина: - + Comment: Коментар: - + Date: Датум: @@ -329,151 +329,147 @@ Запамти последњу коришћену путању - + Do not delete .torrent file Не бриши .torrent фајл - + Download in sequential order Преузми у редоследу - + Download first and last pieces first Прво преузми почетне и крајње делове - + Info hash v2: Инфо хеш v2: - + Select All Селектуј све - + Select None Деселектуј - + Save as .torrent file... Сними као .torrent фајл... - + I/O Error I/O грешка - + Not Available This comment is unavailable Није доступно - + Not Available This date is unavailable Није доступно - + Not available Није доступно - + Magnet link Магнет линк - + Retrieving metadata... Дохватам метаподатке... - - + + Choose save path Изаберите путању за чување - + No stop condition is set. Услови престанка нису подешени. - + Torrent will stop after metadata is received. Торент ће престати након што метаподаци буду били примљени. - Torrents that have metadata initially aren't affected. - Торенти који већ имају метаподатке нису обухваћени. - - - + Torrent will stop after files are initially checked. Торент ће престати након почетне провере фајлова. - + This will also download metadata if it wasn't there initially. Метаподаци ће такође бити преузети ако већ нису били ту. - - + + N/A Недоступно - + %1 (Free space on disk: %2) %1 (Слободан простор на диску: %2) - + Not available This size is unavailable. Није доступна - + Torrent file (*%1) Торент датотека (*%1) - + Save as torrent file Сними као торент фајл - + Couldn't export torrent metadata file '%1'. Reason: %2. Извоз фајла метаподатака торента "%1" није успео. Разлог: %2. - + Cannot create v2 torrent until its data is fully downloaded. Није могуће креирати v2 торент док се његови подаци у потпуности не преузму. - + Filter files... Филтрирај датотеке... - + Parsing metadata... Обрађујем метаподатке... - + Metadata retrieval complete Преузимање метаподатака завршено @@ -481,33 +477,33 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Преузимање торента... Извор: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - + Додавање торента није успело. Извор: "%1". Разлог: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Спајање тракера је онемогућено - + Trackers cannot be merged because it is a private torrent - + Тракери не могу бити спојени јер је у питању приватни торент. - + Trackers are merged from new source + Тракери су спојени из новог извора + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 @@ -596,7 +592,7 @@ Torrent share limits - Ограничења дељења торената + Ограничења дељења торената @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Провери торенте по завршетку - - + + ms milliseconds ms - + Setting Подешавање - + Value Value set for this setting Вредност - + (disabled) (онемогућено) - + (auto) (аутоматски) - + + min minutes мин - + All addresses Све адресе - + qBittorrent Section qBittorrent Одељак - - + + Open documentation Отвори документацију - + All IPv4 addresses Све IPv4 адресе - + All IPv6 addresses Све IPv6 адресе - + libtorrent Section libtorrent секција - + Fastresume files - + SQLite database (experimental) База података SQLite (експериментално) - + Resume data storage type (requires restart) - + Тип чувања података за наставак (потребно је поновно покретање) - + Normal Нормално - + Below normal Испод нормале - + Medium Средње - + Low Ниско - + Very low Веома ниско - + Physical memory (RAM) usage limit Лимит коришћења радне меморије (RAM) - + Asynchronous I/O threads Асинхроне I/O нити - + Hashing threads Нити хеширања - + File pool size - + Величина пула фајлова - + Outstanding memory when checking torrents - + Број неискоришћене меморије при провери торената - + Disk cache Кеш на диску - - - - + + + + + s seconds с - + Disk cache expiry interval Интервал истека кеша диска - + Disk queue size - - + + Enable OS cache Омогући кеш система - + Coalesce reads & writes Укомбинуј читање и писање - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) 0 (онемогућено) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Излазни портови (Min) [0: Искључено] - + Outgoing ports (Max) [0: disabled] - + Излазни портови (Max) [0: Искључено] - + 0 (permanent lease) - + 0 (трајни закуп) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) (бесконачно) - + (system default) (системски подразумевано) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux Ова опција није толико ефективна на Linux-у - + Process memory priority - + Приоритет процесорске меморије - + Bdecode depth limit - + Bdecode token limit - + Default Подразумевано - + Memory mapped files Фајлови мапирани у меморији - + POSIX-compliant POSIX-усаглашен - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache Онемогући кеш ОС-а - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Марка воденог жига бафера за слање - + Send buffer low watermark - + Ниска марка воденог жига бафера за слање - + Send buffer watermark factor - + Outgoing connections per second - + Одлазне конекције по секунди - - + + 0 (system default) 0 (системски подразумевано) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - - .torrent file size limit + + Save statistics interval [0: disabled] + How often the statistics file is saved. - + + .torrent file size limit + Лимит величине .torrent фајла + + + Type of service (ToS) for connections to peers - + Prefer TCP Преферирај TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Подршка интернационализованих имена домена (IDN) - + Allow multiple connections from the same IP address Дозволи више конекција са исте IP адресе - + Validate HTTPS tracker certificates Валидирај HTTPS сертификате трекера - + Server-side request forgery (SSRF) mitigation Ублаживање лажирања захтева са серверске стране (SSRF) - + Disallow connection to peers on privileged ports - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval Период освежавања - + Resolve peer host names Одреди име хоста peer-а (учесника) - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed - + Enable icons in menus Омогући иконице у менијима - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + сек + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications Приказуј нотификације - + Display notifications for added torrents Приказуј нотификације за додате торенте - + Download tracker's favicon Преузми фавикон трекера - + Save path history length Дужина историје путања за чување - + Enable speed graphs Приказуј графике брзине - + Fixed slots - + Upload rate based - + Upload slots behavior - + Round-robin Бергеров систем (свако са сваким) - + Fastest upload - + Anti-leech - + Upload choking algorithm - + Confirm torrent recheck Potvrdi proveru torrenta - + Confirm removal of all tags Потврди уклањање свих ознака - + Always announce to all trackers in a tier Увек огласи свим трекерима у рангу - + Always announce to all tiers Увек огласи свим ранговима - + Any interface i.e. Any network interface Било који мрежни интерфејс - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries Одреди државе учесника - + Network interface Мрежни интерфејс - + Optional IP address to bind to Опциона IP адреса за качење - + Max concurrent HTTP announces Максимум истовремених HTTP објављивања - + Enable embedded tracker Омогући уграђени пратилац - + Embedded tracker port Уграђени пратилац порта + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 Извршавање у портабилном режиму. Аутодетектована фасцикла профила на: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Сувишна заставица командне линије детектована: "%1". Портабилни режим подразумева релативно брзо-настављање. - + Using config directory: %1 Користи се конфигурациона фасцикла: %1 - + 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. - + Torrent: %1, sending mail notification Torrent: %1, slanje mail obaveštenja - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` Покретање екстерног програма. Торент: "%1". Команда: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Није успело покретање екстерног програма. Торент: "%1". Команда: `%2` - + Torrent "%1" has finished downloading Преузимање торента "%1" је завршено - + WebUI will be started shortly after internal preparations. Please wait... Веб интерфејс ће бити покренут убрзо, након интерних припрема. Молимо сачекајте... - - + + Loading torrents... Учитавање торената... - + E&xit Иза&ђи - + I/O Error i.e: Input/Output Error I/O грешка - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Разлог: %2 - + Torrent added Торент додат - + '%1' was added. e.g: xxx.avi was added. '%1' је додат. - + Download completed Преузимање завршено - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' је преузет. - + Information Информације - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 Можете да контролишете qBittorrent тако што приступите веб интерфејсу на: %1 - + Exit Излаз - + Recursive download confirmation Потврда поновног преузимања - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Торент "%1" садржи .torrent фајлове, желите ли да наставите са њиховим преузимањем? - + Never Никад - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Подешавање лимита коришћења радне меморије (RAM) није успело. Код грешке: %1. Порука грешке: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated Обустављање qBittorrent-a започето - + qBittorrent is shutting down... qBittorrent се искључује... - + Saving torrent progress... Снимање напретка торента... - + qBittorrent is now ready to exit qBittorrent је сада спреман за излазак @@ -1609,12 +1715,12 @@ - + Must Not Contain: Не сме да садржи: - + Episode Filter: Филтер епизода: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Извези... - + 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 Број сезоне је обавезан број који није нула - + 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 прве сезоне - + Episode number is a mandatory positive value Број епизоде је обавезна позитивна вредност - + Rules Правила - + Rules (legacy) Правила (стара) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Бесконачан опсег: <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'? Da li ste sigurni da želite da uklonite pravilo preuzimanja '%1'? - + Are you sure you want to remove the selected download rules? Да ли сте сигурни да желите да уклоните изабрана правила преузимања? - + Rule deletion confirmation Потврда брисања - правила - + Invalid action Неважећа акција - + The list is empty, there is nothing to export. Листа је празна, не постоји ништа за извоз. - + Export RSS rules Извези RSS правила - + I/O Error I/O грешка - + Failed to create the destination file. Reason: %1 Креирање одредишног фајла није успело. Разлог: %1 - + Import RSS rules Увези RSS правила - + Failed to import the selected rules file. Reason: %1 Увоз одабраног фајла са правилима није успео. Разлог: %1 - + Add new rule... Додај ново правило... - + Delete rule Обриши правило - + Rename rule... Преименуј правило... - + Delete selected rules Обриши изабрана правила - + Clear downloaded episodes... Очисти преузете епизоде... - + Rule renaming Преименовање правила - + Please type the new rule name Молим упишите назив за ново правило - + Clear downloaded episodes Очисти преузете епизоде - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Да ли сигурно желите да очистите списак преузетих епизода за изабрано правило? - + Regex mode: use Perl-compatible regular expressions Regex режим: користи Perl-компатибилне регуларне изразе - - + + Position %1: %2 Позиција %1: %2 - + Wildcard mode: you can use Режим џокера: можете користити - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? уместо било ког једног карактера - + * to match zero or more of any characters * уместо нула или више било којих карактера - + Whitespaces count as AND operators (all words, any order) Размаци се рачунају као И/AND оператори (све речи, било који редослед) - + | is used as OR operator | се користи као ИЛИ оператор - + If word order is important use * instead of whitespace. Ако је редослед речи битан, користите * уместо размака. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Израз са празним %1 чланом (нпр. %2) - + will match all articles. ће заменити све артикле. - + will exclude all articles. ће изузети све артикле. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 Парсирање информација о торенту није успело: %1 - + Cannot parse torrent info: invalid format Парсирање информација о торенту није успело: неважећи формат - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Чување метаподатака о торенту у "%1" није успело. Грешка: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 Чување података у "%1" није успело. Грешка: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Није нађено. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. База података је повређена. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. Добијање резултата упита није успело. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + Парсирање информација о торенту није успело: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Започињање трансакције није успело. Грешка: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Чување метаподатака торента није успело. Грешка: %1 - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 Чување редоследа торената није успело. Грешка: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Подршка Distributed Hash Table (DHT): %1 - - - - - - - - - + + + + + + + + + ON УКЉУЧЕН - - - - - - - - - + + + + + + + + + OFF ИСКЉУЧЕН - - + + Local Peer Discovery support: %1 Подршка Local Peer Discovery: %1 - + Restart is required to toggle Peer Exchange (PeX) support Поновно покретање је неопходно за укључивање/искључивање подршке Peer Exchange (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Настављање торента није успело. Торент: "%1". Разлог: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Настављање торента није успело: недоследан ID торента детектован. Торент: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Недоследни подаци детектовани: категорија недостаје из конфигурационог фајла. Категорија ће бити обновљена али њена подешавања ће бити ресетована на подразумевана. Торент: "%1". Категорија: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Недоследни подаци детектовани: неважећа категорија. Торент: "%1". Категорија: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Недоследни подаци детектовани: ознака недостаје из конфигурационог фајла. Ознака ће бити обновљена. Торент: "%1". Ознака: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Недоследни подаци детектовани: неважећа ознака. Торент: "%1". Ознака: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Догађај буђења система детектован. Поновно најављивање свим трекерима... - + Peer ID: "%1" ID учесника: "%1" - + HTTP User-Agent: "%1" HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 Подршка за Peer Exchange (PeX): %1 - - + + Anonymous mode: %1 Анонимни режим: %1 - - + + Encryption support: %1 Подршка енкрипције: %1 - - + + FORCED ПРИСИЛНО - + Could not find GUID of network interface. Interface: "%1" Налажење GUID-а интерфејса мреже није успело. Интерфејс: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. Торент је достигао лимит односа дељења. - - - + Torrent: "%1". Торент: "%1" - - - - Removed torrent. - Торент уклоњен. - - - - - - Removed torrent and deleted its content. - Торент уклоњен, његов садржај обрисан. - - - - - - Torrent paused. - Торент паузиран. - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. Торент је достигао ограничење времена дељења. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" Учитавање торента није успело. Разлог: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON Подршка UPnP/NAT-PMP: УКЉ - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + Спајање тракера је онемогућено + + + + Trackers cannot be merged because it is a private torrent + Тракери не могу бити спојени јер је у питању приватни торент. + + + + Trackers are merged from new source + Тракери су спојени из новог извора + + + UPnP/NAT-PMP support: OFF Подршка за UPnP/NAT-PMP: ИСКЉ - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Торент паузиран. Торент: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Торент настављен. Торент: "%1" - + Torrent download finished. Torrent: "%1" Преузимање торента завршено. Торент: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP филтер - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). филтрирани порт (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). привилеговани порт (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Грешка у проксију SOCKS5. Адреса: %1. Порука: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 је онемогућено - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 је онемогућено - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2552,13 +2737,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted Операција отказана - - + + Create new torrent file failed. Reason: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On Укључено - + Off Искљученo - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Обнављање торента није успело. Фајлови су вероватно били премештени, или складиште није доступно. Торент: "%1". Разлог: "%2" - + Missing metadata Недостају метаподаци - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Преименовање фајла није успело. Торент: "%1", фајл: "%2", разлог: "%3" - + Performance alert: %1. More info: %2 Упозорење око перформанси: %1. Више информација: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Параметар "%1" мора поштовати синтаксу "%1=%2" - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Параметар "%1" мора поштовати синтаксу "%1=%2" - + Expected integer number in environment variable '%1', but got '%2' Очекивао се цео број у променљивој окружења "%1", али нађено је "%2" - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Параметар "%1" мора поштовати синтаксу "%1=%2" - - - + Expected %1 in environment variable '%2', but got '%3' Очекивало се %1 у променљивој окружења "%2", али нађено је "%3" - - + + %1 must specify a valid port (1 to 65535). %1 мора бити важећи порт (1 до 65535) - + Usage: Upotreba: - + [options] [(<filename> | <url>)...] [опције] [(<filename> | <url>)...] - + Options: Подешавања: - + Display program version and exit Прикажи верзију програма и изађу - + Display this help message and exit Прикажи ову помоћну поруку и изађи - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Параметар "%1" мора поштовати синтаксу "%1=%2" + + + Confirm the legal notice - - + + port порт - + Change the WebUI port - + Change the torrenting port Промени порт за торентовање - + Disable splash screen Isključi pozdravni ekran - + Run in daemon-mode (background) Radi u servisnom režimu (u pozadini) - + dir Use appropriate short form or abbreviation of "directory" фасц. - + Store configuration files in <dir> Чувај конфигурационе фајлове у <dir> - - + + name име - + Store configuration files in directories qBittorrent_<name> Чувај конфигурационе фајлове у фасциклама qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs фајлови или URL-ови - + Download the torrents passed by the user - + Options when adding new torrents: Подешавања при додавању нових торената: - + path путања - + Torrent save path Путања чувања торента - - Add torrents as started or paused - Додај торенте у започетом или паузираном стању + + Add torrents as running or stopped + - + Skip hash check Прескочи проверу хеша - + Assign torrents to category. If the category doesn't exist, it will be created. Назначи торенте по категоријама. Ако категорија не постоји, биће креирана. - + Download files in sequential order Преузми фајлове по реду - + Download first and last pieces first Прво преузми почетне и крајње делове - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Вредности опција се могу наводити путем променљивих окружења. За опцију по имену "parameter-name", име променљиве окружења је "QBT_PARAMETER_NAME" (великим словима, "-" замењено са "_"). За навођење вредности-заставице, подесите променљиву на "1" или "TRUE". Например, да онемогућите уводни екран: - + Command line parameters take precedence over environment variables Параметри командне линије имају приоритет у односу на променљиве окружења - + Help Помоћ @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Настави торенте + Start torrents + - Pause torrents - Паузирај торенте + Stop torrents + @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Уреди... - + Reset Ресету + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Такође перманентно обриши фајлове + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Да ли сигурно желите да уклоните "%1" са листе преноса? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Да ли сигурно желите да уклоните ових %1 торената са листе преноса? - + Remove Уклони @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Преузимање са URLова - + Add torrent links Додај торент линкове - + One link per line (HTTP links, Magnet links and info-hashes are supported) Једна веза по реду (подржани су HTTP и Magnet линкови и инфо хешеви) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Преузми - + No URL entered URL није унесен - + Please type at least one URL. Молим упишите најмање један URL. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - + Преузимање торента... Извор: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Торент је већ присутан - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Торент "%1" је већ на списку преноса. Желите ли да спојите трекере из новог извора? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Неподржана величина фајла базе података. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 Неподржана верзија базе података: %1.%2 - + Unsupported IP version: %1 Неподржана верзија IP: %1 - + Unsupported record size: %1 - + Database corrupted: no data section found. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Потражи... - + Reset Ресету - + Select icon Изаберите иконицу - + Supported image files Подржани фајлови слика + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 је био блокиран. Разлог: %2 - + %1 was banned 0.0.0.0 was banned %1 је банован @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 је непознат параметар командне линије. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. Покрените апликацију са опцијом -h да прочитате о параметрима командне линије. - + Bad command line Погрешна командна линија - + Bad command line: Погрешна командна линија: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Уреди - + &Tools &Алати - + &File &Фајл - + &Help &Помоћ - + On Downloads &Done По завр&шетку преузимања - + &View &Изглед - + &Options... &Подешавања... - - &Resume - &Настави - - - + &Remove &Уклони - + Torrent &Creator &Креатор торената - - + + Alternative Speed Limits Алтернативна ограничења брзине - + &Top Toolbar Трака на &врху - + Display Top Toolbar Прикажи траку са алаткама на врху - + Status &Bar Статусна &трака - + Filters Sidebar Бочна трака са филтерима - + S&peed in Title Bar Б&рзина на насловној траци - + Show Transfer Speed in Title Bar Прикажи брзину преноса на насловној траци - + &RSS Reader RSS &читач - + Search &Engine Претра&живач - + L&ock qBittorrent За&кључај qBittorrent - + Do&nate! Донира&ј! - + + Sh&utdown System + + + + &Do nothing Не ради &ништа - + Close Window Затвори прозор - - R&esume All - Н&астави Све - - - + Manage Cookies... Управљај колачићима... - + Manage stored network cookies Управљај сачуваним мрежним колачићима - + Normal Messages Нормалне поруке - + Information Messages Информационе поруке - + Warning Messages Поруке упозорења - + Critical Messages Критичне поруке - + &Log &Запис - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... Подеси општа ограничења брзине... - + Bottom of Queue Крај редоследа - + Move to the bottom of the queue Премести на крај редоследа - + Top of Queue Почетак редоследа - + Move to the top of the queue Премести на почетак редоследа - + Move Down Queue Премести низ редослед - + Move down in the queue Премести надоле у редоследу - + Move Up Queue Премести уз редослед - + Move up in the queue Премести нагоре у редоследу - + &Exit qBittorrent На&пусти qBittorrent - + &Suspend System &Суспендуј систем - + &Hibernate System &Хибернирај систем - - S&hutdown System - Иск&ључи систем - - - + &Statistics &Статистика - + Check for Updates Провери ажурирања - + Check for Program Updates Провери ажурирања програма - + &About &О програму - - &Pause - &Пауза - - - - P&ause All - П&аузирај све - - - + &Add Torrent File... &Додај фајл торента... - + Open Отвори - + E&xit Иза&ђи - + Open URL Отвори URL - + &Documentation &Документација - + Lock Закључај - - - + + + Show Прикажи - + Check for program updates Провери ажурирања програма - + Add Torrent &Link... Додај &везу за торент - + If you like qBittorrent, please donate! Ако волите qBittorrent, молимо Вас да донирате! - - + + Execution Log Дневник догађаја - + Clear the password Очисти лозинку - + &Set Password &Подеси шифру - + Preferences Опције - + &Clear Password О&чисти шифру - + Transfers Трансфери - - + + qBittorrent is minimized to tray qBittorrent је умањен на палету - - - + + + This behavior can be changed in the settings. You won't be reminded again. Ово понашање се може променити у подешавањима. Нећемо вас више подсећати. - + Icons Only Само иконе - + Text Only Само текст - + Text Alongside Icons Текст поред икона - + Text Under Icons Текст испод икона - + Follow System Style Прати стил система - - + + UI lock password Закључавање КИ-а лозинком - - + + Please type the UI lock password: Молим упишите лозинку закључавања КИ-а: - + Are you sure you want to clear the password? Да ли сигурно желите да очистите шифру? - + Use regular expressions Користи регуларне изразе - + + + Search Engine + Претраживач + + + + Search has failed + Претрага није успела + + + + Search has finished + Претраживање је завршено + + + Search Претраживање - + Transfers (%1) Трансфери (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent је управо ажуриран и треба бити рестартован, да би' промене имале ефекта. - + qBittorrent is closed to tray qBittorrent је затворен на палету - + Some files are currently transferring. У току је пренос фајлова. - + Are you sure you want to quit qBittorrent? Да ли сте сигурни да желите да напустите qBittorrent? - + &No &Не - + &Yes &Да - + &Always Yes &Увек да - + Options saved. Опције сачуване. - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime Недостаје Python Runtime - + qBittorrent Update Available Ажурирање qBittorrent-а доступно - + 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 је потребан за коришћење претраживачког модула, али изгледа да није инсталиран. - - + + Old Python Runtime Застарео Python Runtime - + A new version is available. Нова верзија је доступна. - + Do you want to download %1? Да ли желите да преузмете %1? - + Open changelog... Отвори списак измена... - + No updates available. You are already using the latest version. Нема нових ажурирања. Одвећ користите најновију верзију. - + &Check for Updates &Потражи ажурирања - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Ваша верзија Python-а (%1) је застарела, неопходна је барем %2. Желите ли да инсталирате новију верзију? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Ваша верзија Python-а (%1) је застарела. Молимо инсталирајте најновију верзију да би претраживање радило. Минимални захтев: %2. - + + Paused + Паузиран + + + Checking for Updates... Тражим ажурирања... - + Already checking for program updates in the background Одвећ у позадини проверавам има ли ажурирања - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Грешка при преузимању - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python setup не може бити преузет,разлог: %1. -Молим Вас инсталирајте га ручно. - - - - + + Invalid password Погрешна лозинка - + Filter torrents... Филтрирај торенте... - + Filter by: Филтрирај према: - + The password must be at least 3 characters long Шифра мора садржати барем 3 карактера - - - + + + RSS (%1) RSS (%1) - + 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-а - + Open Torrent Files Отвори Торент фајлове - + Torrent Files Торент Фајлови @@ -4232,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL грешка се игнорише, URL: "%1", грешке: "%2" @@ -5526,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 Повезивање није успело, непрепознат одговор: %1 - + Authentication failed, msg: %1 Аутентификација није успела, порука: %1 - + <mail from> was rejected by server, msg: %1 <mail from> одбијено од стране сервера, порука: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> одбијено од стране сервера, порука: %1 - + <data> was rejected by server, msg: %1 <data> одбијено од стране сервера, порука: %1 - + Message was rejected by the server, error: %1 Порука одбијена од стране сервера, грешка: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 Грешка при обавештење е-поштом: %1 @@ -5604,444 +5927,473 @@ Please install it manually. БитТорент - + RSS RSS - - Web UI - Веб интерфејс - - - + Advanced Напредно - + Customize UI Theme... Прилагоди тему КИ... - + Transfer List Списак трансфера - + Confirm when deleting torrents Потврда при брисању торената - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. Користи различите боје за приказ редова - + Hide zero and infinity values Сакриј вредности нула и бесконачно - + Always Увек - - Paused torrents only - Само паузирани торенти - - - + Action on double-click Дејство при двоструком клику - + Downloading torrents: Преузимање торента: - - - Start / Stop Torrent - Старт / Стоп Торент - - - - + + Open destination folder Отвори одредишну фасциклу - - + + No action Без дејства - + Completed torrents: Завршени торенти: - + Auto hide zero status filters - + Desktop Радна површина - + Start qBittorrent on Windows start up Отвори qBittorrent при покретању Windows-а - + Show splash screen on start up Прикажи уводни екран при пократању - + Confirmation on exit when torrents are active Потврда при излазу кад има активних торената - + Confirmation on auto-exit when downloads finish Потврда при аутоматском излазу када се преузимања заврше - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Приказ садржаја торента: - + Original Оригинал - + Create subfolder Креирај потфасциклу - + Don't create subfolder Не креирај потфасциклу - + The torrent will be added to the top of the download queue Торент ће бити додат на врх редоследа преузимања - + Add to top of queue The torrent will be added to the top of the download queue Додај на врх редоследа - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... Додај... - + Options.. Подешавања... - + Remove Уклони - + Email notification &upon download completion Обавештење путем е-поште када се преузимања заврше - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: Протокол конекције учесника: - + Any Било који - + I2P (experimental) I2P (експериментално) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode Мешовити режим - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering &Филтрирање IP адреса - + Schedule &the use of alternative rate limits Направи &распоред коришћења алтернативних ограничења брзине - + From: From start time Од: - + To: To end time До: - + Find peers on the DHT network Тражи партнере на DHT мрежи - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption Дозволи енкрипцију - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Више информација</a>) - + Maximum active checking torrents: - + &Torrent Queueing &Ређање торената - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS читач - + Enable fetching RSS feeds - + Feeds refresh interval: Период освежавања фидова: - + Same host request delay: - + Maximum number of articles per feed: Максимални број чланака по допису: - - - + + + min minutes мин - + Seeding Limits Ограничења донирања - - Pause torrent - Паузирај торент - - - + Remove torrent Уклони торент - + Remove torrent and its files Уклони торент и његове фајлове - + Enable super seeding for torrent - + When ratio reaches Када однос достигне - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: Филтери: - + Web User Interface (Remote control) Веб Кориснички Интерфејс (Даљински приступ) - + IP address: IP адреса: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6049,42 +6401,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv Унесите IPv4 или IPv6 адресу. Можете да наведете "0.0.0.0" за било коју IPv4 адресу, " :: " за било коју IPv6 адресу, или " * " за и IPv4 и IPv6. - + Ban client after consecutive failures: Бануј клијента након узастопних неуспеха: - + Never Никад - + ban for: бан за: - + Session timeout: Тајмаут сесије: - + Disabled Онемогућено - - Enable cookie Secure flag (requires HTTPS) - Омогући Secure заставицу колачића (захтева HTTPS) - - - + Server domains: Домени сервера - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6093,442 +6440,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Користи HTTPS уместо HTTP - + Bypass authentication for clients on localhost Заобиђи аутентификацију за клијенте на localhost-у - + Bypass authentication for clients in whitelisted IP subnets Заобиђи аутентификацију за клијенте на IP подмрежама које су на белој листи - + IP subnet whitelist... Листа дозвољених IP подмрежа... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name А&журирај моје име динамичног домена - + Minimize qBittorrent to notification area Минимизуј qBittorrent на системску палету - + + Search + Претрага + + + + WebUI + + + + Interface Интерфејс - + Language: Језик: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: Изглед иконе у углу траке задатака: - - + + Normal Нормално - + File association Асоцирање фајлова - + Use qBittorrent for .torrent files Користи qBittorrent за .torrent фајлове - + Use qBittorrent for magnet links Користи qBittorrent за магнет линкове - + Check for program updates Провери ажурирања програма - + Power Management Управљање напајањем - + + &Log Files + + + + Save path: Путања за чување: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent При додавању торента - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! Пажња! Могућ је губитак података! - + Saving Management Управљање чувањем - + Default Torrent Management Mode: Режим управљања торентима: - + Manual Ручно - + Automatic Аутоматски - + When Torrent Category changed: - + Relocate torrent Релоцирај торент - + Switch torrent to Manual Mode Пребаци торент у мануелни режим - - + + Relocate affected torrents Релоцирај обухваћене торенте - - + + Switch affected torrents to Manual Mode Пребаци обухваћене торенте у мануелни режим - + Use Subcategories Користи поткатегорије - + Default Save Path: Подразумевана путања чувања: - + Copy .torrent files to: Копирај .torrent фајлове у: - + Show &qBittorrent in notification area Прикажи qBittorrent на &системској палети - - &Log file - Фајл &записа - - - + Display &torrent content and some options Приказуј садржај &торената и неке опције - + De&lete .torrent files afterwards Об&риши .torrent фајлове на крају - + Copy .torrent files for finished downloads to: Копирај .torrent фајлове за завршена преузимања у: - + Pre-allocate disk space for all files Унапред додели простор на диску за све фајлове - + Use custom UI Theme Користи сопствену тему КИ - + UI Theme file: Фајл теме КИ: - + Changing Interface settings requires application restart Промена подешавања интерфејса захтева рестарт апликације - + Shows a confirmation dialog upon torrent deletion Приказује дијалог за потврду при брисању торената - - + + Preview file, otherwise open destination folder Прикажи фајл, у супротном отвори одредишну фасциклу - - - Show torrent options - Прикажи опције торената - - - + Shows a confirmation dialog when exiting with active torrents Приказује дијалог за потврду при затварању апликације док има активних торената - + When minimizing, the main window is closed and must be reopened from the systray icon При минимизовању, главни прозор се затвара и мора се поново отворити преко иконе у углу траке задатака - + The systray icon will still be visible when closing the main window Иконица у углу траке задатака ће и даље бити видљива после затварања главног прозора - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Затвори qBittorrent на системску палету - + Monochrome (for dark theme) Једнобојна (Тамна тема) - + Monochrome (for light theme) Једнобојна (Светла тема) - + Inhibit system sleep when torrents are downloading Спречи спавање система док се торенти преузимају - + Inhibit system sleep when torrents are seeding Спречи спавање система док се торенти шаљу - + Creates an additional log file after the log file reaches the specified file size Прави додатни фајл записа кад фајл записа достигне наведену величину - + days Delete backup logs older than 10 days дани - + months Delete backup logs older than 10 months месеца - + years Delete backup logs older than 10 years година - + Log performance warnings - - The torrent will be added to download list in a paused state - Торент ће бити додат у списак преузимања у паузираном стању - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Не започињи преузимање аутоматски - + Whether the .torrent file should be deleted after adding it Да ли да се обрише .torrent фајл након његовог додавања - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Заузми пуне величине датотека на диску пре започињања преузимања да би се смањила фрагментација. Корисно само за механичке хард дискове. - + Append .!qB extension to incomplete files Додај .!qB екстензију некомплетним фајловима - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Када се торент преузме, понуди да се додају торенти из евентуалних .torrent фајлова које садржи - + Enable recursive download dialog Омогући рекурзивни дијалог за преузимање - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Аутоматски: разна својства торента (нпр. путања чувања) ће се одлучивати на основу асоциране категорије Мануелно: разна својства торента (нпр. путања чувања) се морају навести ручно - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme Користи иконице из системске теме - + Window state on start up: Стање прозора при покретању: - + qBittorrent window state on start up Стање прозора qBittorrent-а при покретању - + Torrent stop condition: Услов престанка торента: - - + + None Никакав - - + + Metadata received Примљени метаподаци - - + + Files checked Проверени фајлови - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: Користи другу путању за непотпуне торенте - + Automatically add torrents from: Аутоматски додај торенте из: - + Excluded file names Изузета имена фајлова - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6557,770 +6945,811 @@ readme.txt: филтрирај тачно име фајла. readme[0-9].txt: филтрирај "readme1.txt", "readme2.txt", али не "readme10.txt" - + Receiver Примаоц - + To: To receiver Коме: - + SMTP server: SMTP сервер: - + Sender Пошиљалац - + From: From sender Пошиљалац: - + This server requires a secure connection (SSL) Овај сервер захтева безбедну конекцију (SSL) - - + + Authentication Аутентикација - - - - + + + + Username: Корисничко име: - - - - + + + + Password: Лозинка: - + Run external program Покрени екстерни програм - - Run on torrent added - Покрени при додавању торента - - - - Run on torrent finished - Покрени прои завршетку торента - - - + Show console window Прикажи прозор конзоле - + TCP and μTP TCP и μTP - + Listening Port Пријемни порт - + Port used for incoming connections: Порт коришћен за долазне конекције: - + Set to 0 to let your system pick an unused port Подесите на 0 да би систем сам изабрао слободан порт - + Random Насумично - + Use UPnP / NAT-PMP port forwarding from my router Користи UPnP / NAT-PMP преусмерење порта са мог рутера - + Connections Limits Ограничења конекције - + Maximum number of connections per torrent: Максимални број конекција по торенту: - + Global maximum number of connections: Општи максимални број конекција: - + Maximum number of upload slots per torrent: Максимални број слотова за слање по торенту: - + Global maximum number of upload slots: Општи максимални број слотова за слање: - + Proxy Server Прокси сервер - + Type: Тип: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Хост: - - - + + + Port: Порт: - + Otherwise, the proxy server is only used for tracker connections У супротном, прокси сервер се једино користи за конекције tracker-а(пратилаца) - + Use proxy for peer connections Користи прокси за учесничке (peer) конекције - + A&uthentication А&утентификација - - Info: The password is saved unencrypted - Инфо: шифра се чува у неенкриптованом стању - - - + Filter path (.dat, .p2p, .p2b): Путање фајла са филтерима (.dat, .p2p, .p2b): - + Reload the filter Поново учитај филтер - + Manually banned IP addresses... Ручно забрањене IP адресе... - + Apply to trackers Примени на трекере - + Global Rate Limits Општа вредност ограничења - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Слање: - - + + Download: Преузимање: - + Alternative Rate Limits Алтернативна ограничења - + Start time Почетно време - + End time Време завршетка - + When: Када: - + Every day Сваки дан - + Weekdays Радни дани - + Weekends Викенди - + Rate Limits Settings Подешавања ограничења односа - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead Примени ведносна ограничења код прекорачење преноса - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol Примени ограничење на µTP протокол - + Privacy Приватност - + Enable DHT (decentralized network) to find more peers Омогући DHT (децентализовану мрежу) за налажење додатних учесника - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Размењуј peer-ове са компатибилним Bittorrent клијентима (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Омогући Peer Exchange (PeX) за налажење додатних учесника - + Look for peers on your local network Потражите peer-ове на вашој локалној мрежи - + Enable Local Peer Discovery to find more peers Омогући откривање локалних веза за налажење додатних учесника - + Encryption mode: Режим шифровања: - + Require encryption Захтевај енкрипцију - + Disable encryption Искључи енкрипцију - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Омогући анонимни режим - + Maximum active downloads: Максимум активних преузимања: - + Maximum active uploads: Максимум активних слања: - + Maximum active torrents: Максимално активних торената: - + Do not count slow torrents in these limits Не убрајај споре торенте у ова ограничења - + Upload rate threshold: Граница брзине слања: - + Download rate threshold: Граница брзине преузимања: - - - - + + + + sec seconds сек - + Torrent inactivity timer: Тајмер неактивности торената - + then затим - + Use UPnP / NAT-PMP to forward the port from my router Користи UPnP / NAT-PMP преусмерење порта са мог рутера - + Certificate: Сертификат: - + Key: Кључ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Информација о сертификатима</a> - + Change current password Промени тренутно шифру - - Use alternative Web UI - Користи алтернативни веб интерфејс - - - + Files location: Локација датотека: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security Сигурност - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers Додај прилагођена HTTP заглавља - + Header: value pairs, one per line Заглавље: парови вредности, један по реду - + Enable reverse proxy support - + Trusted proxies list: Списак поузданих проксија: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: Сервис: - + Register Регистар - + Domain name: Име домена: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Омогућавањем ових опција можете да <strong>бесповратно изгубите</strong> ваше .torrent фајлове! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file Одабери фајл qBittorrent UI теме - + Choose Alternative UI files location Изаберите локацију фајлова алтернативног КИ - + Supported parameters (case sensitive): Подржани параметри (case sensitive) - + Minimized Умањено - + Hidden Скривено - + Disabled due to failed to detect system tray presence Онемогућено јер присуство у системској палети није могло бити детектовано - + No stop condition is set. Услови престанка нису подешени. - + Torrent will stop after metadata is received. Торент ће престати након што метаподаци буду били примљени. - Torrents that have metadata initially aren't affected. - Торенти који већ имају метаподатке нису обухваћени. - - - + Torrent will stop after files are initially checked. Торент ће престати након почетне провере фајлова. - + This will also download metadata if it wasn't there initially. Метаподаци ће такође бити преузети ако већ нису били ту. - + %N: Torrent name %N: Име Торента - + %L: Category %L: Категорија - + %F: Content path (same as root path for multifile torrent) %F: Путања ка садржају (иста као коренска путања за торенте од више фајлова) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files %C: Количина фајлова - + %Z: Torrent size (bytes) %Z: Величина торента (у бајтовима) - + %T: Current tracker - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Савет: окружите параметар знацима навода, да се текст не би одсецао због размака (нпр. "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (Нема) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Торент ће се сматрати за "спор" ако његове брзине слања и преузимања остану испод ових вредности током периода наведеног опцијом "Тајмер неактивности торената" - + Certificate Сертификат - + Select certificate Одабери сертификат - + Private key Приватни кључ - + Select private key Одабери приватни кључ - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor Изаберите фасциклу за присмотру - + Adding entry failed Додавање уноса није успело - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error Грешка локације - - + + Choose export directory Изаберите директоријум за извоз - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) Фајл теме КИ qBittorrent-а (*qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory Изаберите директоријум за чување - + Torrents that have metadata initially will be added as stopped. - + Торенти који иницијално имају метаподатке биће додати као стопирани. - + Choose an IP filter file Изаберите фајл са IP филтерима - + All supported filters Сви подржани филтери - + The alternative WebUI files location cannot be blank. - + 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 - + Preferences Опције - + Time Error Временска грешка - + The start time and the end time can't be the same. Време почетка и краја не може бити исто. - - + + Length Error Грешка у дужини @@ -7328,241 +7757,246 @@ readme[0-9].txt: филтрирај "readme1.txt", "readme2.txt&q PeerInfo - + Unknown Непознат-а - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection Долазећа веза - + Peer from DHT Учесник преко DHT - + Peer from PEX Учесник преко PEX - + Peer from LSD Учесник преко LSD - + Encrypted traffic Шифровани саобраћај - + Encrypted handshake Криптовано руковање + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region Држава/регион - + IP/Address - + Port Порт - + Flags Заставе - + Connection Конекције - + Client i.e.: Client application Клијент - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. Релевантност - + Files i.e. files that are being downloaded right now Фајлови - + Column visibility Видљивост колона - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја - + Add peers... Додај учеснике... - - + + Adding peers Додавање учесника - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently Забрани (бануј) учесника трајно - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected Ниједан учесник није изабран - + Are you sure you want to permanently ban the selected peers? Да ли сте сигурни да желите да забраните изабране учеснике трајно? - + Peer "%1" is manually banned Учесник "%1" је ручно банован - + N/A Недоступно - + Copy IP:port Копирај IP:порт @@ -7580,7 +8014,7 @@ readme[0-9].txt: филтрирај "readme1.txt", "readme2.txt&q Листа за додавање пратилаца (један по линији): - + Format: IPv4:port / [IPv6]:port Формат: IPv4:порт / [IPv6]:порт @@ -7621,27 +8055,27 @@ readme[0-9].txt: филтрирај "readme1.txt", "readme2.txt&q PiecesBar - + Files in this piece: Фајлови у овом комадићу: - + File in this piece: Фајл у овом комадићу: - + File in these pieces: Фајл у овим комадићима: - + Wait until metadata become available to see detailed information Сачекајте док метаподаци не буду доступни да бисте видели детаљније информације: - + Hold Shift key for detailed information Држите тастер Shift за детаљне информације @@ -7654,58 +8088,58 @@ readme[0-9].txt: филтрирај "readme1.txt", "readme2.txt&q Претраживачки додаци - + Installed search plugins: Инсталирани претраживачки додаци: - + Name Име - + Version Верзија - + Url Url (адреса) - - + + Enabled Омогућен - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Пажња: уверите се да поштујете закон о заштити интелектуалне својине своје државе када преузимате торенте преко било ког од ових претраживача. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Нове додатке за претраживач можете наћи овде: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Инсталирајте нови - + Check for updates Потражи ажурирања - + Close Затвори - + Uninstall Деинсталирај @@ -7825,98 +8259,65 @@ Those plugins were disabled. Додатак сорс - + Search plugin source: Претраживачки додатак сорс: - + Local file Локални фајл - + Web link Веб линк - - PowerManagement - - - qBittorrent is active - qBittorrent је активан - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Следећи фајлови из торента "%1" подржавају прегледање, молимо изаберите неки од њих: - + Preview Прикажи - + Name Име - + Size Величина - + Progress Напредак - + Preview impossible Приказ немогућ - + Sorry, we can't preview this file: "%1". Жао нам је, не можемо да прегледамо овај фајл: "%1". - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја @@ -7929,27 +8330,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Путања не постоји - + Path does not point to a directory Путања не указује на фасциклу - + Path does not point to a file Путања не указује на фајл - + Don't have read permission to path Није доступна дозвола за читање путање - + Don't have write permission to path Није доступна дозвола за упис на путању @@ -7990,12 +8391,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Преузето: - + Availability: Доступност: @@ -8010,53 +8411,53 @@ Those plugins were disabled. Трансфер - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Протекло време: - + ETA: Време до краја: - + Uploaded: Послато: - + Seeds: Донори (seeds) - + Download Speed: Брзина преузимања: - + Upload Speed: Брзина слања: - + Peers: Учесници (peers) - + Download Limit: Ограничење брзине преузимања: - + Upload Limit: Ограничење брзине слања: - + Wasted: Потрошено: @@ -8066,193 +8467,220 @@ Those plugins were disabled. Конекције: - + Information Информације - + Info Hash v1: Инфо хеш v1: - + Info Hash v2: Инфо хеш v2: - + Comment: Коментар: - + Select All Селектуј све - + Select None Деселектуј - + Share Ratio: Однос дељења: - + Reannounce In: Поново објави за: - + Last Seen Complete: Последњи пут виђен у комплетном стању: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: Укупна величина: - + Pieces: Делова: - + Created By: Створио: - + Added On: Додато: - + Completed On: Завршено: - + Created On: Креирано: - + + Private: + + + + Save Path: Путања за чување: - + Never Никад - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (имате %3) - - + + %1 (%2 this session) %1 (%2 ове сесије) - - + + + N/A Недоступно - + + Yes + Да + + + + No + Не + + + %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 прос.) - - New Web seed - Нови Web донор - - - - Remove Web seed - Уклони Web донора - - - - Copy Web seed URL + + Add web seed + Add HTTP source - - Edit Web seed URL + + Add web seed: - + + + This web seed is already in the list. + + + + Filter files... Филтрирај датотеке... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled Графикони брзине су онемогућени - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8260,33 +8688,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Неважећи формат података. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format Неважећи формат података - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8294,22 +8722,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8345,12 +8773,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Неважећи RSS фид. - + %1 (line: %2, column: %3, offset: %4). @@ -8358,103 +8786,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Чување конфигурације RSS сесије није успело. Фајл: "%1". Грешка: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Чување података о RSS сесији није успело. Фајл: "%1". Грешка: "%2" - - + + RSS feed with given URL already exists: %1. RSS ставка са датим URL-ом већ постоји: %1 - + Feed doesn't exist: %1. Фид не постоји: %1. - + Cannot move root folder. Није могуће преместити коренску фасциклу. - - + + Item doesn't exist: %1. Ставка не постоји: %1. - - Couldn't move folder into itself. - Није могуће преместити фасциклу саму у себе. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Није могуће обрисати коренску фасциклу. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Учитавање RSS фида није успело. Фид: "%1". Разлог: неопходан је URL. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Учитавање RSS фида није успело. Фид: "%1". Разлог: UID није важећи. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Нађен је дуплирани RSS фид. UID: "%1". Грешка: конфигурација је изгледа повређена. - + Couldn't load RSS item. Item: "%1". Invalid data format. Учитавање RSS предмета није успело. Предмет: "%1". Неважећи формат фајла. - + Corrupted RSS list, not loading it. Повређена RSS листа, неће бити учитана. - + Incorrect RSS Item path: %1. Нетачна путања RSS предмета: %1. - + RSS item with given path already exists: %1. RSS предмет са датом путањом већ постоји: %1 - + Parent folder doesn't exist: %1. Родитељска фасцикла не постоји: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Фид не постоји: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + сек + + + + Default + Подразумевано + + RSSWidget @@ -8474,8 +8943,8 @@ Those plugins were disabled. - - + + Mark items read Означи прочитане ставке @@ -8500,132 +8969,115 @@ Those plugins were disabled. Торенти: (двоклик да преузмете) - - + + Delete Обриши - + Rename... Преименуј... - + Rename Преименуј - - + + Update Ажурирај - + New subscription... Нови допис... - - + + Update all feeds Ажурирај све поруке - + Download torrent Преузми Торент - + Open news URL Отвори новости URL - + Copy feed URL Копирај feed URL - + New folder... Нова фасцикла... - - Edit feed URL... - Уреди URL фида... + + Feed options... + - - Edit feed URL - Уреди URL фида - - - + Please choose a folder name Молим изаберите име фасцикле - + Folder name: Име фасцикле: - + New folder Нова фасцикла - - - Please type a RSS feed URL - Молимо унесите URL RSS фида - - - - - Feed URL: - URL фида: - - - + 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: Ново feed име: - + Rename failed Преименовање није успело - + Date: Датум: - + Feed: - + Author: Аутор: @@ -8633,38 +9085,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Python мора бити инсталиран за коришћење Претраживача. - + Unable to create more than %1 concurrent searches. Није могуће имати више од %1 истовремених претрага. - - + + Offset is out of range - + All plugins are already up to date. Сви додаци су већ ажурирани. - + Updating %1 plugins Ажурирање %1 додатака - + Updating plugin %1 Ажурирање додатка %1 - + Failed to check for plugin updates: %1 Провера ажурирања додатака није успела: %1 @@ -8739,132 +9191,142 @@ Those plugins were disabled. Величина: - + 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 - Претраживачки модул - - - + Filter search results... Филтрирај резултате претраге... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Резултати (приказ <i>%1</i> од <i>%2</i>): - + Torrent names only Само имена торената - + Everywhere Свугде - + Use regular expressions Користи регуларне изразе - + Open download window Отвори прозор за преузимање - + Download Преузми - + Open description page Отвори страну са описом - + Copy Копирај - + Name Име - + Download link Веза за преузимање - + Description page URL URL стране са описом - + Searching... Претраживање... - + Search has finished Претраживање је завршено - + Search aborted Претраживање прекинуто - + An error occurred during search... Нека грешка се догодила током претраге... - + Search returned no results Претрага није дала резултате - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility Прегледност колона - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја @@ -8872,104 +9334,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Непознат формат фајла додатка за претрагу. - + Plugin already at version %1, which is greater than %2 Додатак је већ верзије %1, што је веће од %2 - + A more recent version of this plugin is already installed. Новија верзија додатка је већ инсталирана. - + Plugin %1 is not supported. Додатак %1 није подржан. - - + + Plugin is not supported. Додатак није подржан. - + Plugin %1 has been successfully updated. Додатак %1 успешно ажуриран. - + All categories Све категорије - + Movies Филмови - + TV shows ТВ емисије - + Music Музика - + Games Игрице - + Anime Аниме - + Software Софтвер - + Pictures Слике - + Books Књиге - + Update server is temporarily unavailable. %1 Сервер за ажурирања привремено није доступан. %1 - - + + Failed to download the plugin file. %1 Преузимање фајла додатка није успело. %1 - + Plugin "%1" is outdated, updating to version %2 Додатак "%1" је застарео, ажурирам на верзију %2 - + Incorrect update info received for %1 out of %2 plugins. Нетачне информације за ажурирање добијене за %1 од %2 додатака. - + Search plugin '%1' contains invalid version string ('%2') Додатак за претрагу "%1" садржи неважећу ниску верзије ("%2") @@ -8979,114 +9441,145 @@ Those plugins were disabled. - - - - Search Претрага - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Нема инсталираних додатака за претрагу. Кликните дугме "Додаци за претрагу..." у доњем десном углу прозора да бисте неке инсталирали. - + Search plugins... Додаци за претрагу... - + A phrase to search for. Фраза која ће се тражити. - + Spaces in a search term may be protected by double quotes. Размаци у термину за претрагу се могу заштитити помоћу наводника. - + Example: Search phrase example Пример: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: тражи <b>foo bar</b> - + All plugins Сви плагинови... - + Only enabled Само омогућено - + + + Invalid data format. + Неважећи формат података. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: тражи <b>foo</b> и <b>bar</b> - + + Refresh + + + + Close tab Затвори картицу - + Close all tabs Затвори све картице - + Select... Изабери... - - - + + Search Engine Претраживач - + + Please install Python to use the Search Engine. Молимо инсталирајте Python да бисте могли да користите претраживач - + Empty search pattern Празано поље претраживања - + Please type a search pattern first Унесите прво назив за претраживање - + + Stop Заустави + + + SearchWidget::DataStorage - - Search has finished - Претраживање је завршено + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - Претрага није успела + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9199,34 +9692,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Слање: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Преузимање: - + Alternative speed limits Алтернативна ограничења брзине @@ -9418,32 +9911,32 @@ Click the "Search plugins..." button at the bottom right of the window Просечно времена у редоследу: - + Connected peers: Повезано учесника: - + All-time share ratio: Однос дељења за све време: - + All-time download: Преузето за све време: - + Session waste: - + All-time upload: Послато за све време: - + Total buffer size: Укупна величина бафера: @@ -9458,12 +9951,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9482,51 +9975,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Статус конекције: - - + + No direct connections. This may indicate network configuration problems. Нема директних конекција. То може указивати на проблем мрежне конфигурације. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 чворова - + qBittorrent needs to be restarted! qBittorrent мора бити рестартован! - - - + + + Connection Status: Статус конекције: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Није на вези. То обично значи да qBittorrent не надгледа изабрани порт за долазне конекције. - + Online На вези - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits Кликните да укључите алтернативно ограничење брзине - + Click to switch to regular speed limits Кликните да укључите уобичајено ограничење брзине @@ -9556,13 +10075,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Настављено (0) + Running (0) + - Paused (0) - Паузирано (0) + Stopped (0) + @@ -9624,36 +10143,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Завршено (%1) + + + Running (%1) + + - Paused (%1) - Паузирано (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) Премештање (%1) - - - Resume torrents - Пусти торенте - - - - Pause torrents - Паузирај торенте - Remove torrents Уклони торенте - - - Resumed (%1) - Настављено (%1) - Active (%1) @@ -9725,31 +10244,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Уклони некоришћене тагове - - - Resume torrents - Настави торенте - - - - Pause torrents - Паузирај торенте - Remove torrents Уклони торенте - - New Tag - Нова ознака + + Start torrents + + + + + Stop torrents + Tag: Ознака: + + + Add tag + + Invalid tag name @@ -9894,32 +10413,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Име - + Progress Напредак - + Download Priority Приоритет преузимања - + Remaining Преостало - + Availability Доступност - + Total Size Укупна величина @@ -9964,98 +10483,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Грешка у преименовању - + Renaming Преименовање - + New name: Ново име: - + Column visibility Прегледност колона - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја - + Open Отвори - + Open containing folder - + Rename... Преименуј... - + Priority Приоритет - - + + Do not download Не преузимај - + Normal Нормално - + High Високо - + Maximum Максимално - + By shown file order По приказаном редоследу датотека - + Normal priority Нормалан приоритет - + High priority Висок приоритет - + Maximum priority Максимални приоритет - + Priority by shown file order @@ -10063,17 +10582,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10102,13 +10621,13 @@ Please choose a different name and try again. - + Select file Изаберите фајл - + Select folder Изаверите фасциклу @@ -10183,87 +10702,83 @@ Please choose a different name and try again. Поља - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: Пратилац URLs: - + Comments: Коментари: - + Source: Извор: - + Progress: Напредак: - + Create Torrent Створи торент - - + + Torrent creation failed Креирање торента није успело - + Reason: Path to file/folder is not readable. Разлог: путања ка датотеци/фасцикли није читљива. - + Select where to save the new torrent Изаберите где да се сачува нови торент - + Torrent Files (*.torrent) Торент фајлови (*.torrent) - Reason: %1 - Разлог: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Креатор торента - + Torrent created: Торент је направљен: @@ -10271,32 +10786,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 Није успело чување конфигурације надгледаних фасцикли у %1. Грешка: %2 - + Watched folder Path cannot be empty. Путања надгледане фасцикле не може бити празна. - + Watched folder Path cannot be relative. Путања надгледане фасцикле не може бити релативна. @@ -10304,44 +10819,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 Отварање magnet фајла није успело: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" Надгледа се фасцикла: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Неважећи метаподаци - - TorrentOptionsDialog @@ -10370,173 +10872,161 @@ Please choose a different name and try again. Користи другу путању за незавршене торенте - + Category: Категорија: - - Torrent speed limits - Ограничења брзине торената + + Torrent Share Limits + - + Download: Преузимање: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits Ови неће прекорачивати глобална ограничења - + Upload: Слање: - - Torrent share limits - Ограничења дељења торената - - - - Use global share limit - Користи глобално ограничење дељења - - - - Set no share limit - Не користи ограничење дељења - - - - Set share limit to - Подеси ограничење дељења на - - - - ratio - однос - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent Онемогући DHT за овај торент - + Download in sequential order Преузимање у серијском редоследу - + Disable PeX for this torrent Онемогући PeX за овај торент - + Download first and last pieces first Прво преузми почетне и крајње делове - + Disable LSD for this torrent Онемогући LSD за овај торент - + Currently used categories Категорије тренутно у употреби - - + + Choose save path Изаберите путању чувања - + Not applicable to private torrents Није примењиво за приватне торенте - - - No share limit method selected - Ниједна метода ограничења дељења није изабрана - - - - Please select a limit method first - Молимо прво изаберите методу ограничења - TorrentShareLimitsWidget - - - + + + + Default - Подразумевано + Подразумевано - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - мин + мин - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + Уклони торент + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + Ratio: @@ -10549,32 +11039,32 @@ Please choose a different name and try again. Ознаке торената - - New Tag - Нова ознака + + Add tag + - + Tag: Ознака: - + Invalid tag name Неважеће име ознаке - + Tag name '%1' is invalid. Име ознаке "%1" је неважеће. - + Tag exists Ознака постоји - + Tag name already exists. Име ознаке већ постоји @@ -10582,115 +11072,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Грешка: "%1" није валидан торент фајл. - + Priority must be an integer Приоритет мора бити цео број - + Priority is not valid Неважећи приоритет - + Torrent's metadata has not yet downloaded Метаподаци торента још нису преузети - + File IDs must be integers ID-ови фајла морају бити цели бројеви - + File ID is not valid ID фајла је неважећи - - - - + + + + Torrent queueing must be enabled Ређање торената мора бити омогућено - - + + Save path cannot be empty Путања чувања не сме бити празна - - + + Cannot create target directory Креирање циљне фасцикле није успело - - + + Category cannot be empty Категорија не може бити празна - + Unable to create category Креирање категорије није успело - + Unable to edit category Уређивање категорије није успело - + Unable to export torrent file. Error: %1 Извоз фајла торента није успео. Грешка: %1 - + Cannot make save path Креирање путање чувања није успело - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid Параметар "sort" није важећи - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. "%1" није важећи индекс фајла - + Index %1 is out of bounds. Индекс %1 је изван граница. - - + + Cannot write to directory Упис у фасциклу није могућ - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name Нетачно име торента - - + + Incorrect category name Нетачно име категорије @@ -10721,196 +11226,191 @@ Please choose a different name and try again. TrackerListModel - + Working Ради - + Disabled Онемогућено - + Disabled for this torrent Онемогућено за овај торент - + This torrent is private Овај торент је приватан - + N/A Недоступно - + Updating... Ажурирање... - + Not working Не ради - + Tracker error - + Unreachable - + Not contacted yet Није још контактиран - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - Ранг - - - - Protocol + URL/Announce Endpoint - Status - Статус - - - - Peers - Peers (учесници) - - - - Seeds - Донори - - - - Leeches - - - - - Times Downloaded - Пута преузето - - - - Message - Порука - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + Ранг + + + + Status + Статус + + + + Peers + Peers (учесници) + + + + Seeds + Донори + + + + Leeches + + + + + Times Downloaded + Пута преузето + + + + Message + Порука + TrackerListWidget - + This torrent is private Овај торент је приватан - + Tracker editing Уређивање трекера - + Tracker URL: URL трекера: - - + + Tracker editing failed Уређивање трекера није успело - + The tracker URL entered is invalid. Задати URL трекера није важећи. - + The tracker URL already exists. URL трекера већ постоји - + Edit tracker URL... Уреди URL трекера... - + Remove tracker Уклони пратилац - + Copy tracker URL Копирај URL трекера - + Force reannounce to selected trackers Присилно поново објави следећим трекерима - + Force reannounce to all trackers Присилно поново објави свим трекерима - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја - + Add trackers... Додај трекере... - + Column visibility Прегледност колона @@ -10928,37 +11428,37 @@ Please choose a different name and try again. Листа за додавање пратилаца (један по линији): - + µTorrent compatible list URL: µTorrent компатибилна листа URL адреса: - + Download trackers list Преузми списак трекера - + Add Додај - + Trackers list URL error Грешка URL-a списка трекера - + The trackers list URL cannot be empty URL списка трекера не сме бити празан - + Download trackers list error Грешка у преузимању списка трекера - + Error occurred when downloading the trackers list. Reason: "%1" Грешка током преузимања списка трекера. Разлог: "%1" @@ -10966,62 +11466,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Upozorenje (%1) - + Trackerless (%1) Bez servera (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker Уклони пратилац - - Resume torrents - Пусти торенте + + Start torrents + - - Pause torrents - Паузирај торенте + + Stop torrents + - + Remove torrents Уклони торенте - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Укупно (%1) @@ -11030,7 +11530,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument "mode": неважећи аргумент @@ -11122,11 +11622,6 @@ Please choose a different name and try again. 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. Провера података за настављање - - - Paused - Паузиран - Completed @@ -11150,220 +11645,252 @@ Please choose a different name and try again. Грешка - + Name i.e: torrent name Име - + Size i.e: torrent size Величина - + Progress % Done Напредак - + + Stopped + Стопиран + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Статус - + Seeds i.e. full sources (often untranslated) Донори - + Peers i.e. partial sources (often untranslated) Peers (учесници) - + Down Speed i.e: Download speed Брзина Преуз - + Up Speed i.e: Upload speed Брзина Слања - + Ratio Share ratio Однос - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left ETA - + Category Категорија - + Tags Тагови - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Додато на - + Completed On Torrent was completed on 01/01/2010 08:00 Завршено дана - + Tracker Пратилац - + Down Limit i.e: Download limit Ограничење брзине преузимања - + Up Limit i.e: Upload limit Ограничење брзине слања - + Downloaded Amount of data downloaded (e.g. in MB) Преузето - + Uploaded Amount of data uploaded (e.g. in MB) Послато - + 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) Послато за сесију - + Remaining Amount of data left to download (e.g. in MB) Преостало - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Протекло време - + + Yes + Да + + + + No + Не + + + Save Path Torrent save path Путања чувања - + Incomplete Save Path Torrent incomplete save path Непотпуна путања чувања - + Completed Amount of data completed (e.g. in MB) Комплетирани - + Ratio Limit Upload share ratio limit Лимит односа - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Последњи пут виђен потпун - + Last Activity Time passed since a chunk was downloaded/uploaded Последња активност - + Total Size i.e. Size including unwanted data Укупна величина - + Availability The number of distributed copies of the torrent Доступност - + Info Hash v1 i.e: torrent info hash v1 Инфо хеш v1 - + Info Hash v2 i.e: torrent info hash v2 Инфо хеш v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Недоступно - + %1 ago e.g.: 1h 20m ago Пре %1 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (донирано за %2) @@ -11372,339 +11899,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Прегледност колона - + Recheck confirmation Потврда поновне провере - + Are you sure you want to recheck the selected torrent(s)? Да ли сигурно желите да поново проверите изабране торенте? - + Rename Преименуј - + New name: Ново име: - + Choose save path Изаберите путању чувања - - Confirm pause - Потврда паузирања - - - - Would you like to pause all torrents? - Желите ли да паузирате све торенте? - - - - Confirm resume - Потврда настављања - - - - Would you like to resume all torrents? - Желите ли да наставите све торенте? - - - + Unable to preview Преглед није успео - + The selected torrent "%1" does not contain previewable files Изабрани торент "%1" не садржи фајлове које је могуће прегледати - + Resize columns Промени величину колона - + Resize all non-hidden columns to the size of their contents Промени ширину свих видљивих колона на ширину њиховог садржаја - + Enable automatic torrent management Омогући аутоматски менаџмент торената - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Да ли сигурно желите да омогућите аутоматски менаџмент торената за изабране торенте? Могуће је да буду премештени. - - Add Tags - Додај ознаке - - - + Choose folder to save exported .torrent files Изаберите фасциклу у којој ће се чувати извезени .torrent фајлови - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Извоз .torrent фајла није успео. Торент: "%1". Путања: "%2". Разлог: "%3" - + A file with the same name already exists Фајл са таквим именом већ постоји - + Export .torrent file error Грешка током извоза .torrent датотеке - + Remove All Tags Уклони све ознаке - + Remove all tags from selected torrents? Уклонити све ознаке са изабраних торената? - + Comma-separated tags: Ознаке одвојене зарезима: - + Invalid tag Неважећа ознака - + Tag name: '%1' is invalid Име ознаке: "%1" није важеће - - &Resume - Resume/start the torrent - &Настави - - - - &Pause - Pause the torrent - &Пауза - - - - Force Resu&me - Force Resume/start the torrent - Присилно на&стави - - - + Pre&view file... Пре&глед фајла... - + Torrent &options... &Опције торента... - + Open destination &folder Отвори одредишну &фасциклу - + Move &up i.e. move up in the queue Помери на&горе - + Move &down i.e. Move down in the queue Помери на&доле - + Move to &top i.e. Move to top of the queue Помери на &врх - + Move to &bottom i.e. Move to bottom of the queue Помери на д&но - + Set loc&ation... Подеси лока&цију... - + Force rec&heck Присилна поновна провера - + Force r&eannounce Присилно поновно објављивање - + &Magnet link &Магнет веза - + Torrent &ID ID торента (&И) - + &Comment - + &Name &Име - + Info &hash v1 Инфо хеш v&1 - + Info h&ash v2 Инфо хеш v&2 - + Re&name... Пре&именуј... - + Edit trac&kers... Уреди тре&кере... - + E&xport .torrent... Из&вези .torrent фајл... - + Categor&y Категори&ја - + &New... New category... &Ново... - + &Reset Reset category &Ресет - + Ta&gs О&знаке - + &Add... Add / assign multiple tags... Д&одај... - + &Remove All Remove all tags &Уклони све - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue У &редослед - + &Copy &Копирај - + Exported torrent is not necessarily the same as the imported Извезени торент не мора нужно бити идентичан увезеном - + Download in sequential order Преузимање у серијском редоследу - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. Грешка током извоза .torrent фајлова. Погледајте дневник за детаље. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &Уклони - + Download first and last pieces first Прво преузми почетне и крајње делове - + Automatic Torrent Management Аутоматски менеџмент торената - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Аутоматски мод значи да ће се разна својства торента (нпр. путања чувања) одлучивати аутоматски на основу асоциране категорије - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Није могуће присилити поновно објављивање ако је торент паузиран/у редоследу/са грешком/проверава се - - - + Super seeding mode Супер seeding (донирајући) режим @@ -11749,28 +12256,28 @@ Please choose a different name and try again. ID иконице - + UI Theme Configuration. Конфигурација теме КИ. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Промене у теми КИ нису у потпуности примењене. Детаљи су доступни у запису. - + Couldn't save UI Theme configuration. Reason: %1 Чување конфигурације теме КИ није успело. Разлог: %1 - - + + Couldn't remove icon file. File: %1. Уклањање фајла иконице није успело. Фајл: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Копирање фајла иконице није успело. Извор: %1. Циљ: %2. @@ -11778,7 +12285,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" Учитавање теме КИ из датотеке није успело: "%1" @@ -11809,20 +12321,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11830,32 +12343,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11947,72 +12460,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. Недозвољени тип фајла, само обични фајлови су дозвољени. - + Symlinks inside alternative UI folder are forbidden. Симболичке везе унутар фасцикле алтернативног КИ нису дозвољене. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -12020,125 +12533,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + Непозната грешка + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds - %1m {1s?} + - + %1m e.g: 10 minutes %1m - + %1h %2m e.g: 3 hours 5 minutes %1h%2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1г %2д - - + + Unknown Unknown (size) Непознат-а - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent ће искључити рачунар сада, јер су сва преузимања завршена. - + < 1m < 1 minute < 1m diff --git a/src/lang/qbittorrent_sv.ts b/src/lang/qbittorrent_sv.ts index 4464609e6..a86d2f3bb 100644 --- a/src/lang/qbittorrent_sv.ts +++ b/src/lang/qbittorrent_sv.ts @@ -14,75 +14,75 @@ Om - + Authors Upphovsmän - + Current maintainer - Nuvarande utvecklare + Aktuell utvecklare - + Greece Grekland - - + + Nationality: Nationalitet: - - + + E-mail: E-post: - - + + Name: Namn: - + Original author Ursprunglig upphovsman - + France Frankrike - + Special Thanks Särskilda tack - + Translators Översättare - + License Licens - + Software Used Använd mjukvara - + qBittorrent was built with the following libraries: qBittorrent byggdes med följande bibliotek: - + Copy to clipboard Kopiera till urklipp @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Spara i - + Never show again Visa aldrig igen - - - Torrent settings - Torrentinställningar - Set as default category @@ -191,12 +186,12 @@ Starta torrent - + Torrent information Torrentinformation - + Skip hash check Hoppa över hashkontroll @@ -205,6 +200,11 @@ Use another path for incomplete torrent Använd en annan sökväg för ofullständig torrent + + + Torrent options + Torrentalternativ + Tags: @@ -213,7 +213,7 @@ Click [...] button to add/remove tags. - Klicka på [...] för att lägga till/ta bort taggar. + Klicka på knappen [...] för att lägga till/ta bort taggar. @@ -231,75 +231,75 @@ Stoppvillkor: - - + + None Inget - - + + Metadata received Metadata mottagna - + Torrents that have metadata initially will be added as stopped. - + Torrenter som har metadata initialt kommer att läggas till som stoppade. - - + + Files checked Filer kontrollerade - + Add to top of queue Lägg till överst i kön - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog När den är markerad kommer .torrent-filen inte att tas bort oavsett inställningarna på sidan "Hämta" i dialogrutan Alternativ - + Content layout: Layout för innehåll: - + Original Original - + Create subfolder Skapa undermapp - + Don't create subfolder Skapa inte undermapp - + Info hash v1: Info-hash v1: - + Size: Storlek: - + Comment: Kommentar: - + Date: Datum: @@ -329,151 +329,147 @@ Kom ihåg senast använda sparsökväg - + Do not delete .torrent file Ta inte bort .torrent-fil - + Download in sequential order Hämta i sekventiell ordning - + Download first and last pieces first Hämta första och sista delarna först - + Info hash v2: Info-hash v2: - + Select All Markera alla - + Select None Markera ingen - + Save as .torrent file... Spara som .torrent-fil... - + I/O Error In/ut-fel - + Not Available This comment is unavailable Inte tillgänglig - + Not Available This date is unavailable Inte tillgängligt - + Not available Inte tillgänglig - + Magnet link Magnetlänk - + Retrieving metadata... Hämtar metadata... - - + + Choose save path Välj sparsökväg - + No stop condition is set. Inga stoppvillkor angivna. - + Torrent will stop after metadata is received. Torrent stoppas efter att metadata har tagits emot. - Torrents that have metadata initially aren't affected. - Torrent som har metadata initialt påverkas inte. - - - + Torrent will stop after files are initially checked. Torrent stoppas efter att filer har kontrollerats initialt. - + This will also download metadata if it wasn't there initially. Detta laddar också ner metadata om inte där initialt. - - + + N/A Ingen - + %1 (Free space on disk: %2) %1 (Ledigt utrymme på disken: %2) - + Not available This size is unavailable. Inte tillgängligt - + Torrent file (*%1) Torrentfil (*%1) - + Save as torrent file Spara som torrentfil - + Couldn't export torrent metadata file '%1'. Reason: %2. Det gick inte att exportera torrentmetadatafilen "%1". Orsak: %2 - + Cannot create v2 torrent until its data is fully downloaded. Det går inte att skapa v2-torrent förrän dess data har hämtats helt. - + Filter files... Filtrera filer... - + Parsing metadata... Tolkar metadata... - + Metadata retrieval complete Hämtningen av metadata klar @@ -481,34 +477,34 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Hämtar torrent... Källa: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - Det gick inte att lägga till torrent. Källa: "%1". Orsak: "%2" + Misslyckades att lägga till torrent. Källa: "%1". Orsak: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Upptäckte ett försök att lägga till en dubblettorrent. Källa %1. Befintlig torrent: %2. Resultat: %3 - - - + Merging of trackers is disabled - Sammanfogning av spårare är inaktiverad + Sammanslagning av spårare är inaktiverad - + Trackers cannot be merged because it is a private torrent - Spårare kan inte sammanfogas därför att det är en privat torrent + Spårare kan inte slås samman eftersom det är en privat torrent - + Trackers are merged from new source - Spårare har sammanfogas från ny källa + Spårare slås samman från ny källa + + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Upptäckte ett försök att lägga till en duplicerad torrent. Källa: %1. Befintlig torrent: ”%2”. Torrent infohash: %3. Resultat: %4 @@ -596,7 +592,7 @@ Torrent share limits - Torrentdelningsgränser + Torrentdelningsgränser @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Återkontrollera torrenter vid slutförning - - + + ms milliseconds ms - + Setting Inställning - + Value Value set for this setting Värde - + (disabled) - (inaktiverat) + (inaktiverat) - + (auto) - (automatisk) + (automatisk) - + + min minutes min - + All addresses Alla adresser - + qBittorrent Section qBittorrent-avsnitt - - + + Open documentation Öppna dokumentationen - + All IPv4 addresses Alla IPv4-adresser - + All IPv6 addresses Alla IPv6-adresser - + libtorrent Section libtorrent-avsnitt - + Fastresume files Snabbåteruppta filer - + SQLite database (experimental) SQLite-databas (experimentell) - + Resume data storage type (requires restart) Lagringstyp för återupptagningsdata (kräver omstart) - + Normal Normal - + Below normal Under normal - + Medium Medel - + Low Låg - + Very low Mycket låg - + Physical memory (RAM) usage limit - Användningsgräns för fysiskt minne (RAM). + Användningsgräns för fysiskt minne (RAM) - + Asynchronous I/O threads Asynkrona in/ut-trådar - + Hashing threads Hashing-trådar - + File pool size Filpoolstorlek - + Outstanding memory when checking torrents - Enastående minne när du kontrollerar torrenter + Enastående minne vid kontroll av torrenter - + Disk cache Diskcache - - - - + + + + + s seconds s - + Disk cache expiry interval - Intervall för diskcache utgångsdatum: + Intervall för diskcache utgångsdatum - + Disk queue size Diskköstorlek - - + + Enable OS cache Aktivera OS-cache - + Coalesce reads & writes Koalitionsläsningar & -skrivningar - + Use piece extent affinity Använd delutsträckningsaffinitet - + Send upload piece suggestions Skicka förslag på sändningsdelar - - - - + + + + + 0 (disabled) 0 (inaktiverat) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Intervall för att spara återupptagningsdata [0: inaktiverat] - + Outgoing ports (Min) [0: disabled] Utgående portar (min) [0: inaktiverat] - + Outgoing ports (Max) [0: disabled] Utgående portar (max) [0: inaktiverat] - + 0 (permanent lease) 0 (permanent anslutning) - + UPnP lease duration [0: permanent lease] UPnP-anslutningstid [0: permanent anslutning] - + Stop tracker timeout [0: disabled] Stopptidsgräns för spårare [0: inaktiverat] - + Notification timeout [0: infinite, -1: system default] Tidsgräns för avisering [0: oändlig, -1: systemstandard] - + Maximum outstanding requests to a single peer Högst antal utestående förfrågningar till en enskild jämlike - - - - - + + + + + KiB - KiB + KiB - + (infinite) (oändlig) - + (system default) - (systemstandard) + (systemstandard) - + + Delete files permanently + Ta bort filerna permanent + + + + Move files to trash (if possible) + Flytta filer till papperskorgen (om möjligt) + + + + Torrent content removing mode + Torrent-innehåll borttagningsläge + + + This option is less effective on Linux Det här alternativet är mindre effektivt på Linux - + Process memory priority Processminnesprioritet - + Bdecode depth limit Bdecode djupgräns - + Bdecode token limit Bdecode tokengräns - + Default Standard - + Memory mapped files Minnesmappade filer - + POSIX-compliant POSIX-kompatibel - + + Simple pread/pwrite + Enkel pread/pwrite + + + Disk IO type (requires restart) Disk IO-typ (kräver omstart) - - + + Disable OS cache Inaktivera OS-cache - + Disk IO read mode Disk IO-läsläge - + Write-through Genomskrivning - + Disk IO write mode Disk IO-skrivläge - + Send buffer watermark Skicka buffertvattenstämpel - + Send buffer low watermark Skicka låg buffertvattenstämpel - + Send buffer watermark factor Skicka buffertvattenstämplingsfaktor - + Outgoing connections per second Utgående anslutningar per sekund - - + + 0 (system default) 0 (systemstandard) - + Socket send buffer size [0: system default] Socketbuffertstorlek för sändning [0: systemstandard] - + Socket receive buffer size [0: system default] Socketbuffertstorlek för mottagning [0: systemstandard] - + Socket backlog size Uttagets bakloggsstorlek - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Spara statistikintervall [0: inaktiverad] + + + .torrent file size limit .torrent filstorleksgräns - + Type of service (ToS) for connections to peers Typ av tjänst (ToS) för anslutningar till jämlikar - + Prefer TCP Föredra TCP - + Peer proportional (throttles TCP) Proportionell jämlike (stryper TCP) - + + Internal hostname resolver cache expiry interval + Utgångsintervall för cache för intern värdnamnsresolver + + + Support internationalized domain name (IDN) Stöd internationaliserat domännamn (IDN) - + Allow multiple connections from the same IP address Tillåt flera anslutningar från samma IP-adress - + Validate HTTPS tracker certificates Validera HTTPS-spårarcertifikat - + Server-side request forgery (SSRF) mitigation - Begränsning av förfalskning av förfrågningar på serversidan (SSRF): + Begränsning av förfalskning av förfrågningar på serversidan (SSRF) - + Disallow connection to peers on privileged ports Tillåt inte anslutning till jämlikar på privilegierade portar - + It appends the text to the window title to help distinguish qBittorent instances - + Den lägger till texten till fönstertiteln för att hjälpa till att särskilja qBittorent-instanser - + Customize application instance name - + Anpassa applikationsinstansens namn - + It controls the internal state update interval which in turn will affect UI updates Den styr det interna tillståndsuppdateringsintervallet som i sin tur kommer att påverka användargränssnittsuppdateringar - + Refresh interval Uppdateringsintervall - + Resolve peer host names Slå upp jämlikarnas värdnamn - + IP address reported to trackers (requires restart) IP-adress rapporterad till spårare (kräver omstart) - + + Port reported to trackers (requires restart) [0: listening port] + Port rapporterad till spårare (kräver omstart) [0: lyssningsport] + + + Reannounce to all trackers when IP or port changed Återannonsera alla spårare när IP eller port ändrats - + Enable icons in menus Aktivera ikoner i menyer - + + Attach "Add new torrent" dialog to main window + Bifoga dialogrutan "Lägg till ny torrent" till huvudfönstret + + + Enable port forwarding for embedded tracker Aktivera portvidarebefordran för inbäddad spårare - + Enable quarantine for downloaded files Aktivera karantän för hämtade filer - + Enable Mark-of-the-Web (MOTW) for downloaded files Aktivera Mark-of-the-Web (MOTW) för hämtade filer - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Påverkar certifikatvalidering och icke-torrentprotokollaktiviteter (t.ex. RSS-flöden, programuppdateringar, torrentfiler, geoip db, etc) + + + + Ignore SSL errors + Ignorera SSL-fel + + + (Auto detect if empty) (Detektera automatiskt om den är tom) - + Python executable path (may require restart) Körbar Python sökväg (kan kräva omstart) - + + Start BitTorrent session in paused state + Starta BitTorrent-sessionen i ett pausat tillstånd + + + + sec + seconds + sek + + + + -1 (unlimited) + -1 (obegränsat) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Timeout för avstängning av BitTorrent-session [-1: obegränsat] + + + Confirm removal of tracker from all torrents Bekräfta spårarborttagning från alla torrenter - + Peer turnover disconnect percentage - Procentandel för bortkoppling av peer-omsättning: + Procentandel för bortkoppling av jämlikeomsättning - + Peer turnover threshold percentage - Procenttröskelandel av peer-omsättning + Procenttröskelandel av jämlikeomsättning - + Peer turnover disconnect interval - Intervall för bortkoppling av peer-omsättning + Intervall för bortkoppling av jämlikeomsättning - + Resets to default if empty Återställ till standard om den är tom - + DHT bootstrap nodes DHT bootstrap noder - + I2P inbound quantity I2P inkommande kvantitet - + I2P outbound quantity I2P inkommande kvantitet - + I2P inbound length I2P inkommande längd - + I2P outbound length I2P inkommande längd - + Display notifications Visa aviseringar - + Display notifications for added torrents Visa aviseringar för tillagda torrenter - + Download tracker's favicon Hämta spårarens favicon - + Save path history length Historiklängd för sparsökväg - + Enable speed graphs Aktivera hastighetsdiagram - + Fixed slots Fasta platser - + Upload rate based - Sändning betygbaserad + Baserat på sändningshastighet - + Upload slots behavior Beteende för sändningsplatser - + Round-robin Round Robin - + Fastest upload Snabbaste sändning - + Anti-leech Anti-reciprokör - + Upload choking algorithm Strypningsalgoritm för sändning - + Confirm torrent recheck Bekräfta återkontroll av torrent - + Confirm removal of all tags Bekräfta borttagning av alla taggar - + Always announce to all trackers in a tier Annonsera alla spårare i en nivå - + Always announce to all tiers Annonsera alltid alla nivåer - + Any interface i.e. Any network interface Alla gränssnitt - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP blandad lägesalgoritm - + Resolve peer countries Slå upp jämlikarnas länder - + Network interface Nätverksgränssnitt - + Optional IP address to bind to Valfri IP-adress att binda till - + Max concurrent HTTP announces Maximalt antal samtidiga HTTP-annonseringar - + Enable embedded tracker Aktivera inbäddad spårare - + Embedded tracker port Port för inbäddad spårare + + AppController + + + + Invalid directory path + Ogiltig katalogsökväg + + + + Directory does not exist + Katalog finns inte + + + + Invalid mode, allowed values: %1 + Ogiltigt läge, tillåtna värden: %1 + + + + cookies must be array + kakor måste vara array + + Application - + Running in portable mode. Auto detected profile folder at: %1 Körs i bärbart läge. Automatisk upptäckt profilmapp i: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Redundant kommandoradsflagga upptäckt: "%1". Bärbartläge innebär relativ fastresume. - + Using config directory: %1 Använder konfigurationsmapp: %1 - + Torrent name: %1 Torrentnamn: %1 - + Torrent size: %1 Torrentstorlek: %1 - + Save path: %1 Sparsökväg: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent hämtades i %1. - + + Thank you for using qBittorrent. Tack för att ni använde qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, skickar e-postavisering - + Add torrent failed Det gick inte att lägga till torrent - + Couldn't add torrent '%1', reason: %2. Det gick inte att lägga till torrent '%1', orsak: %2. - + The WebUI administrator username is: %1 Webbanvändargränssnittets administratörsanvändarnamn är: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Webbanvändargränssnittets administratörslösenord har inte angetts. Ett tillfälligt lösenord tillhandahålls för denna session: %1 - + You should set your own password in program preferences. Du bör ställa in ditt eget lösenord i programinställningarna. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Webbanvändargränssnittet är inaktiverat! För att aktivera webbanvändargränssnittet, redigera konfigurationsfilen manuellt. - + Running external program. Torrent: "%1". Command: `%2` Kör externt program. Torrent: "%1". Kommando: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Det gick inte att köra externt program. Torrent: "%1". Kommando: `%2` - + Torrent "%1" has finished downloading Torrenten "%1" har hämtats färdigt - + WebUI will be started shortly after internal preparations. Please wait... Webbanvändargränssnittet kommer att startas kort efter interna förberedelser. Vänta... - - + + Loading torrents... Läser in torrenter... - + E&xit A&vsluta - + I/O Error i.e: Input/Output Error I/O-fel - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Orsak: %2 - + Torrent added Torrent tillagd - + '%1' was added. e.g: xxx.avi was added. "%1" tillagd. - + Download completed Hämtningen slutförd - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 startad. Process-ID: %2 - + + This is a test email. + Detta är ett e-posttest + + + + Test email + E-posttest + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. "%1" har hämtats. - + Information Information - + To fix the error, you may need to edit the config file manually. För att åtgärda felet kan du behöva redigera konfigurationsfilen manuellt. - + To control qBittorrent, access the WebUI at: %1 För att kontrollera qBittorrent, gå till webbgränssnittet på: %1 - + Exit Avsluta - + Recursive download confirmation Bekräftelse på rekursiv hämtning - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrenten "%1" innehåller .torrent-filer, vill du fortsätta med deras hämtning? - + Never Aldrig - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Rekursiv hämtning .torrent-fil i torrent. Källtorrent: "%1". Fil: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Det gick inte att ställa in användningsgräns för fysiskt minne (RAM). Felkod: %1. Felmeddelande: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Det gick inte att ange hård gräns för fysiskt minne (RAM). Begärd storlek: %1. Systemets hårda gräns: %2. Felkod: %3. Felmeddelande: "%4" - + qBittorrent termination initiated Avslutning av qBittorrent har initierats - + qBittorrent is shutting down... qBittorrent stängs... - + Saving torrent progress... Sparar torrent förlopp... - + qBittorrent is now ready to exit qBittorrent är nu redo att avsluta @@ -1609,12 +1715,12 @@ Prioritet: - + Must Not Contain: Får inte innehålla: - + Episode Filter: Avsnittsfilter: @@ -1644,7 +1750,7 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder days - dagar + dagar @@ -1659,273 +1765,273 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder &Import... - Importera... + &Importera... &Export... - Exportera... + &Exportera... - + Matches articles based on episode filter. Matchar artiklar baserat på avsnittsfilter. - + Example: - Exempel: + 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 + kommer att matcha avsnitten 2, 5, 8 till 15, 30 och framåt av säsong ett - + Episode filter rules: - Regler för avsnittsfilter: + Regler för avsnittsfilter: - + Season number is a mandatory non-zero value Säsongsnummer ä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: - Tre olika typer av avsnitt stöds: + Tre intervalltyper för avsnitt stöds: - + Single number: <b>1x25;</b> matches episode 25 of season one Ensamma siffror: <b>1x25;</b> matchar avsnitt 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 avsnitt 25 till 40 i säsong ett - + Episode number is a mandatory positive value Avsnittsnummer är ett obligatoriskt positivt värde - + Rules Regler - + Rules (legacy) Regler (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Oändligt intervall: <b>1x25-;</b> matchar avsnitt 25 och uppåt av säsong ett, och alla avsnitt av senare säsonger - + Last Match: %1 days ago Senaste matchning: %1 dagar sedan - + Last Match: Unknown Senaste matchning: Okänd - + New rule name Namn för ny regel - + Please type the name of the new download rule. Skriv namnet på den nya hämtningsregeln. - - + + Rule name conflict Namnkonflikt för regler - - + + A rule with this name already exists, please choose another name. En regel med det här namnet finns redan, välj ett annat namn. - + Are you sure you want to remove the download rule named '%1'? Är du säker på att du vill ta bort hämtningsregeln "%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äftelse på regelborttagning - + Invalid action Ogiltig åtgärd - + The list is empty, there is nothing to export. Listan är tom, det finns inget att exportera. - + Export RSS rules Exportera RSS-regler - + I/O Error In/ut-fel - + Failed to create the destination file. Reason: %1 Det gick inte att skapa målfilen. Orsak: %1 - + Import RSS rules Importera RSS-regler - + Failed to import the selected rules file. Reason: %1 Det gick inte att importera den valda regelfilen. Orsak: %1 - + 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 - + Clear downloaded episodes... Rensa hämtade avsnitt... - + Rule renaming Regelnamnbyte - + Please type the new rule name Skriv det nya regelnamnet - + Clear downloaded episodes Rensa hämtade avsnitt - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Är du säker på att du vill rensa listan över hämtade avsnitt för den valda regeln? - + Regex mode: use Perl-compatible regular expressions Regex-läge: använd Perl-kompatibla reguljära uttryck - - + + Position %1: %2 Position %1: %2 - + Wildcard mode: you can use Jokertecken-läge: Du kan använda - - + + Import error Importfel - + Failed to read the file. %1 Det gick inte att läsa filen. %1 - + ? to match any single character ? för att matcha alla enskilda tecken - + * to match zero or more of any characters * för att matcha noll eller fler av några tecken - + Whitespaces count as AND operators (all words, any order) Blanksteg räknas som AND-operatörer (alla ord, valfri ordning) - + | is used as OR operator | används som OR-operatör - + If word order is important use * instead of whitespace. Om ordföljden är viktig, användning * i stället för blanksteg. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Ett uttryck med en tom %1-klausul (t.ex. %2) - + will match all articles. - kommer att matcha alla artiklar. + kommer att matcha alla artiklar. - + will exclude all articles. - kommer exkludera alla artiklar. + kommer att exkludera alla artiklar. @@ -1965,7 +2071,7 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Det går inte att skapa återupptagningsmapp för torrent: "%1" @@ -1975,30 +2081,40 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Det går inte att analysera återupptagningsdata: ogiltigt format - - + + Cannot parse torrent info: %1 Det går inte att analysera torrentinformation: %1 - + Cannot parse torrent info: invalid format Det går inte att analysera torrentinformation: ogiltigt format - + Mismatching info-hash detected in resume data Felaktig info-hash upptäcktes i återupptagningsdata - - Couldn't save torrent metadata to '%1'. Error: %2. - Det gick inte att spara torrentmetadata till "%1". Fel: %2 + + Corrupted resume data: %1 + Skadat återupptagningsdata: %1 - + + save_path is invalid + save_path är ogiltig + + + + Couldn't save torrent metadata to '%1'. Error: %2. + Det gick inte att spara torrentmetadata till "%1". Fel: %2. + + + Couldn't save torrent resume data to '%1'. Error: %2. - Det gick inte att spara återupptagningsdata för torrent till "%1". Fel: %2 + Det gick inte att spara återupptagningsdata för torrent till "%1". Fel: %2. @@ -2007,16 +2123,17 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder + Cannot parse resume data: %1 Det går inte att analysera återupptagningsdata: %1 - + Resume data is invalid: neither metadata nor info-hash was found Återupptagningsdata är ogiltiga: varken metadata eller info-hash hittades - + Couldn't save data to '%1'. Error: %2 Det gick inte att spara data till "%1". Fel: %2 @@ -2024,38 +2141,60 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder BitTorrent::DBResumeDataStorage - + Not found. Hittades inte. - + Couldn't load resume data of torrent '%1'. Error: %2 Det gick inte att läsa in återupptagningsdata för torrenten "%1". Fel: %2 - - + + Database is corrupted. Databasen är korrupt. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Det gick inte att aktivera Write-Ahead Logging (WAL) journaliseringsläge. Fel: %1. - + Couldn't obtain query result. Det gick inte att hämta frågeresultat. - + WAL mode is probably unsupported due to filesystem limitations. WAL-läge stöds förmodligen inte på grund av filsystembegränsningar. - + + + Cannot parse resume data: %1 + Det går inte att analysera återupptagningsdata: %1 + + + + + Cannot parse torrent info: %1 + Det går inte att analysera torrentinformation: %1 + + + + Corrupted resume data: %1 + Skadat återupptagningsdata: %1 + + + + save_path is invalid + save_path är ogiltig + + + Couldn't begin transaction. Error: %1 Det gick inte att påbörja överföring. Fel: %1 @@ -2063,22 +2202,22 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - Det gick inte att spara torrentmetadata. Fel: %1 + Det gick inte att spara torrentmetadata. Fel: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Det gick inte att lagra återupptagningsdata för torrenten "%1". Fel: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Det gick inte att ta bort återupptagningsdata för torrenten "%1". Fel: %2 - + Couldn't store torrents queue positions. Error: %1 Det gick inte att lagra köpositioner för torrenter. Fel: %1 @@ -2086,457 +2225,503 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Stöd för distribuerad hashtabell (DHT): %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF AV - - + + Local Peer Discovery support: %1 Stöd för upptäckt av lokala jämlikar: %1 - + Restart is required to toggle Peer Exchange (PeX) support - Omstart krävs för att växla stöd för jämlikeutbyte (PeX). + Omstart krävs för att växla stöd för jämlikeutbyte (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Det gick inte att återuppta torrent. Torrent: "%1". Orsak: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Det gick inte att återuppta torrent: inkonsekvent torrent-ID har upptäckts. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Inkonsekvent data upptäckt: kategori saknas i konfigurationsfilen. Kategori kommer att återställas men dess inställningar kommer att återställas till standard. Torrent: "%1". Kategori: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Inkonsekvent data upptäckt: ogiltig kategori. Torrent: "%1". Kategori: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Upptäckt oöverensstämmelse mellan sparsökvägarna för den återställda kategorin och den aktuella sparsökvägen för torrenten. Torrent är nu växlat till manuellt läge. Torrent: "%1". Kategori: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Inkonsekvent data upptäckt: tagg saknas i konfigurationsfilen. Taggen kommer att återställas. Torrent: "%1". Tagg: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Inkonsekvent data upptäckt: ogiltig tagg. Torrent: "%1". Tagg: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Systemväckningshändelse upptäckt. Återannonserar för alla spårare... - + Peer ID: "%1" - Jämlie-ID: "%1" + Jämlike-ID: "%1" - + HTTP User-Agent: "%1" HTTP-användaragent: "%1" - + Peer Exchange (PeX) support: %1 Jämlikeutbyte (PeX)-stöd: %1 - - + + Anonymous mode: %1 Anonymt läge: %1 - - + + Encryption support: %1 Krypteringsstöd: %1 - - + + FORCED TVINGAT - + Could not find GUID of network interface. Interface: "%1" Det gick inte att hitta GUID för nätverksgränssnitt. Gränssnitt: "%1" - + Trying to listen on the following list of IP addresses: "%1" Försöker lyssna på följande lista med IP-adresser: "%1" - + Torrent reached the share ratio limit. Torrent nådde kvotgränsen. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Tog bort torrent. - - - - - - Removed torrent and deleted its content. - Tog bort torrent och dess innehåll. - - - - - - Torrent paused. - Torrent pausad. - - - - - + Super seeding enabled. Superdistribution aktiverad. - + Torrent reached the seeding time limit. Torrent nådde distributionstidsgränsen. - + Torrent reached the inactive seeding time limit. Torrent nådde tidsgränsen för inaktiv distribution. - + Failed to load torrent. Reason: "%1" Det gick inte att läsa in torrent. Orsak: "%1" - + I2P error. Message: "%1". I2P-fel. Meddelande: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP-stöd: PÅ - + + Saving resume data completed. + Sparandet av återupptagen data slutfört. + + + + BitTorrent session successfully finished. + BitTorrent-sessionen avslutades. + + + + Session shutdown timed out. + Sessionsavstängningen gjorde timeout. + + + + Removing torrent. + Tar bort torrent. + + + + Removing torrent and deleting its content. + Tar bort torrent och dess innehåll. + + + + Torrent stopped. + Torrent stoppad. + + + + Torrent content removed. Torrent: "%1" + Torrent-innehåll borttaget. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Det gick inte att ta bort torrent-innehåll Torrent: "%1". Fel: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent borttagen. Torrent: "%1" + + + + Merging of trackers is disabled + Sammanslagning av spårare är inaktiverad + + + + Trackers cannot be merged because it is a private torrent + Spårare kan inte slås samman eftersom det är en privat torrent + + + + Trackers are merged from new source + Spårare slås samman från ny källa + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP-stöd: AV - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Det gick inte att exportera torrent. Torrent: "%1". Destination: "%2". Orsak: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - Avbröt att spara återupptagningsdata. Antal utestående torrents: %1 + Avbröt sparande av återupptagningsdata. Antal utestående torrenter: %1 - + The configured network address is invalid. Address: "%1" Den konfigurerade nätverksadressen är ogiltig. Adress: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Det gick inte att hitta den konfigurerade nätverksadressen att lyssna på. Adress: "%1" - + The configured network interface is invalid. Interface: "%1" Det konfigurerade nätverksgränssnittet är ogiltigt. Gränssnitt: "%1" - + + Tracker list updated + Spårarlistan uppdaterad + + + + Failed to update tracker list. Reason: "%1" + Det gick inte att uppdatera spårarlistan. Orsak: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Avvisade ogiltig IP-adress när listan över förbjudna IP-adresser tillämpades. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Lade till spårare till torrent. Torrent: "%1". Spårare: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Tog bort spårare från torrent. Torrent: "%1". Spårare: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Lade till URL-distribution till torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Tog bort URL-distribution från torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent pausad. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Det gick inte att ta bort delfilen. Torrent: "%1". Orsak: "%2". - + Torrent resumed. Torrent: "%1" Torrent återupptogs. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrenthämtningen är klar. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrentflytt avbröts. Torrent: "%1". Källa: "%2". Destination: "%3" - + + Duplicate torrent + Duplicerad torrent + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Upptäckte ett försök att lägga till en duplicerad torrent. Källa: %1. Torrent infohash: %2. Resultat: %3 + + + + Torrent stopped. Torrent: "%1" + Torrent stoppad. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Det gick inte att ställa torrentflyttning i kö. Torrent: "%1". Källa: "%2". Destination: "%3". Orsak: torrent flyttar för närvarande till destinationen - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Det gick inte att ställa torrentflyttning i kö. Torrent: "%1". Källa: "%2" Destination: "%3". Orsak: båda sökvägarna pekar på samma plats - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrentflytt i kö. Torrent: "%1". Källa: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Börja flytta torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Det gick inte att spara kategorikonfigurationen. Fil: "%1". Fel: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Det gick inte att analysera kategorikonfigurationen. Fil: "%1". Fel: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP-filterfilen har analyserats. Antal tillämpade regler: %1 - + Failed to parse the IP filter file Det gick inte att analysera IP-filterfilen - + Restored torrent. Torrent: "%1" Återställd torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Lade till ny torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent har fel. Torrent: "%1". Fel: "%2" - - - Removed torrent. Torrent: "%1" - Tog bort torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Tog bort torrent och dess innehåll. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent saknar SSL-parametrar. Torrent: "%1". Meddelande: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Filfelvarning. Torrent: "%1". Fil: "%2". Orsak: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP-portmappning misslyckades. Meddelande: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP-portmappningen lyckades. Meddelande: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP-filter - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). filtrerad port (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). privilegierad port (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Anslutning för URL-distribution misslyckades. Torrent: "%1". URL: "%2". Fel: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent-sessionen stötte på ett allvarligt fel. Orsak: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - SOCKS5 proxy-fel. Adress 1. Meddelande: "%2". + SOCKS5 proxyfel. Adress 1. Meddelande: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 begränsningar för blandat läge - + Failed to load Categories. %1 Det gick inte att läsa in kategorier. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Det gick inte att läsa in kategorikonfigurationen. Fil: "%1". Fel: "Ogiltigt dataformat" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Tog bort torrent men kunde inte att ta bort innehåll och/eller delfil. Torrent: "%1". Fel: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 är inaktiverad - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 är inaktiverad - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - DNS-uppslagning av URL-distribution misslyckades. Torrent: "%1". URL: "%2". Fel: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Fick felmeddelande från URL-distribution. Torrent: "%1". URL: "%2". Meddelande: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Lyssnar på IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Det gick inte att lyssna på IP. IP: "%1". Port: "%2/%3". Orsak: "%4" - + Detected external IP. IP: "%1" Upptäckt extern IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Fel: Den interna varningskön är full och varningar tas bort, du kan se försämrad prestanda. Borttagen varningstyp: "%1". Meddelande: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Flyttade torrent. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Det gick inte att flytta torrent. Torrent: "%1". Källa: "%2". Destination: "%3". Orsak: "%4" @@ -2546,87 +2731,87 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Failed to start seeding. - + Det gick inte att starta distribution. BitTorrent::TorrentCreator - + Operation aborted Operation avbruten - - + + Create new torrent file failed. Reason: %1. - Skapande av ny torrentfil misslyckades. Orsak: %1 + Skapande av ny torrentfil misslyckades. Orsak: %1. BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Det gick inte att lägga till jämliken "%1" till torrenten "%2". Orsak: %3 - + Peer "%1" is added to torrent "%2" Jämliken "%1" läggs till torrenten "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Oväntad data identifierad. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Det gick inte att skriva till fil. Orsak: "%1". Torrent är nu i "endast sändningsläge". - + Download first and last piece first: %1, torrent: '%2' Hämta första och sista delarna först: %1, torrent: "%2" - + On - + Off Av - + Failed to reload torrent. Torrent: %1. Reason: %2 Det gick inte att ladda om torrent. Torrent: %1. Orsak: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Det gick inte att generera återupptagningsdata. Torrent: "%1". Orsak: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Det gick inte att återställa torrent. Filer har förmodligen flyttats eller så är lagringen inte tillgänglig. Torrent: "%1". Orsak: "%2" - + Missing metadata Saknar metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Det gick inte att byta namn på fil. Torrent: "%1", fil: "%2", orsak: "%3" - + Performance alert: %1. More info: %2 Prestandavarning: %1. Mer info: %2 @@ -2641,195 +2826,195 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Embedded Tracker: Unable to bind to IP: %1, port: %2. Reason: %3 - Inbäddad spårare: Det gick inte att binda till IP: %1, port: %2. Orsak: %3 + Inbäddad spårare: Det går inte att binda till IP: %1, port: %2. Orsak: %3 CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametern "%1" måste följa syntaxen "%1=%2" - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametern "%1" måste följa syntaxen "%1=%2" - + Expected integer number in environment variable '%1', but got '%2' Förväntat heltal i miljövariabeln "%1", men fick "%2" - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametern "%1" måste följa syntaxen "%1=%2" - - - + Expected %1 in environment variable '%2', but got '%3' Förväntade %1 i miljövariabeln "%2", men fick "%3" - - + + %1 must specify a valid port (1 to 65535). %1 måste ange korrekt port (1 till 65535). - + Usage: Användning: - + [options] [(<filename> | <url>)...] [alternativ] [(<filename> | <url>)...] - + Options: Alternativ: - + Display program version and exit Visa programversionen och avsluta - + Display this help message and exit Visa detta hjälpmeddelande och avsluta - - Confirm the legal notice - Bekräfta juridiska informationen + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametern "%1" måste följa syntaxen "%1=%2" - - + + Confirm the legal notice + Bekräfta juridiska informationen + + + + port port - + Change the WebUI port Ändra porten för webbanvändargränssnittet - + Change the torrenting port Ändra webbgränssnittsporten - + Disable splash screen Inaktivera startbilden - + Run in daemon-mode (background) Kör i demonläge (i bakgrunden) - + dir Use appropriate short form or abbreviation of "directory" mapp - + Store configuration files in <dir> Spara konfigurationsfiler i <dir> - - + + name namn - + Store configuration files in directories qBittorrent_<name> Spara konfigurationsfiler i mappar qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Hacka in i libtorrents fastresume-filer och gör sökvägar i förhållande till profilmappen - + files or URLs filer eller URL:er - + Download the torrents passed by the user Hämta torrenterna som skickats av användaren - + Options when adding new torrents: Alternativ när nya torrenter läggs till: - + path sökväg - + Torrent save path Torrent-sparsökväg - - Add torrents as started or paused - Lägg till torrenter som startade eller pausade + + Add torrents as running or stopped + Lägg till torrenter som igång eller stoppade - + Skip hash check Hoppa över hashkontroll - + Assign torrents to category. If the category doesn't exist, it will be created. Tilldela torrenter till kategori. Om kategorin inte finns skapas den. - + Download files in sequential order Hämta filer i sekventiell ordning - + Download first and last pieces first Hämta första och sista delarna först - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Ange om dialogrutan "Lägg till ny torrent" öppnas när du lägger till en torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - Altenativvärden kan levereras via miljövariabler. För alternativ som heter "parameter-name" är miljövariabelnamnet "QBT_PARAMETER_NAME" (i övre fallet är "-" ersatt med "_"). För att skicka flaggvärden anger du variabeln till "1" eller "TRUE". Till exempel, för att inaktivera startskärmen: + Alternativvärden kan levereras via miljövariabler. För alternativ som heter "parameter-name" är miljövariabelnamnet "QBT_PARAMETER_NAME" (i övre fallet är "-" ersatt med "_"). För att skicka flaggvärden anger du variabeln till "1" eller "TRUE". Till exempel, för att inaktivera startskärmen: - + Command line parameters take precedence over environment variables Kommandoradsparametrar har företräde framför miljövariabler - + Help Hjälp @@ -2881,13 +3066,13 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder - Resume torrents - Återuppta torrenter + Start torrents + Starta torrenter - Pause torrents - Pausa torrenter + Stop torrents + Stoppa torrenter @@ -2898,15 +3083,20 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder ColorWidget - + Edit... Redigera... - + Reset Återställ + + + System + System + CookiesDialog @@ -2947,12 +3137,12 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder CustomThemeSource - + Failed to load custom theme style sheet. %1 Det gick inte att läsa in anpassad temastilmall. %1 - + Failed to load custom theme colors. %1 Det gick inte att läsa in anpassade temafärger. %1 @@ -2960,7 +3150,7 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder DefaultThemeSource - + Failed to load default theme colors. %1 Det gick inte att läsa in standardtemafärger. %1 @@ -2979,23 +3169,23 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder - Also permanently delete the files - Ta också bort filerna permanent + Also remove the content files + Ta även bort innehållsfilerna - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Är du säker på att du vill ta bort "%1" från överföringslistan? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Är du säker på att du vill ta bort dessa %1 torrenter från överföringslistan? - + Remove Ta bort @@ -3008,12 +3198,12 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Hämta från URL:er - + Add torrent links Lägg till torrentlänkar - + One link per line (HTTP links, Magnet links and info-hashes are supported) En länk per rad (HTTP-länkar, magnetlänkar och info-hashar stöds) @@ -3023,12 +3213,12 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Hämta - + No URL entered Ingen URL inmatad - + Please type at least one URL. Skriv minst en URL. @@ -3187,64 +3377,87 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Tolkningsfel: Filterfilen är inte en giltig PeerGuardian-P2B-fil. + + FilterPatternFormatMenu + + + Pattern Format + Mönsterformat + + + + Plain text + Vanlig text + + + + Wildcards + Jokertecken + + + + Regular expression + Reguljärt uttryck + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Hämtar torrent... Källa: "%1" - - Trackers cannot be merged because it is a private torrent - Spårare kan inte sammanfogas därför att det är en privat torrent - - - + Torrent is already present Torrent är redan närvarande - + + Trackers cannot be merged because it is a private torrent. + Spårare kan inte slås samman eftersom det är en privat torrent. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? - Torrenten "%1" finns redan i överföringslistan. Vill du slå samman spårare från den nya källan? + Torrenten "%1" finns redan i överföringslistan. Vill du slå samman spårare från ny källa? GeoIPDatabase - - + + Unsupported database file size. Ostödd databasfilstorlek. - + Metadata error: '%1' entry not found. Metadatafel: posten "%1" hittades inte. - + Metadata error: '%1' entry has invalid type. Metadatafel: posten "%1" har ogiltig typ. - + Unsupported database version: %1.%2 Icke-stödd databasversion: %1.%2 - + Unsupported IP version: %1 Icke-stödd IP-version: %1 - + Unsupported record size: %1 icke-stödd poststorlek: %1 - + Database corrupted: no data section found. Databas skadad: ingen datasektion hittades. @@ -3252,17 +3465,17 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP-förfrågans storlek överskrider begränsningen, stänger uttag. Gräns: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Dålig HTTP-förfrågningsmetod, stänger uttag. IP: %1. Metod: "%2" - + Bad Http request, closing socket. IP: %1 Dålig http-förfrågan, stänger uttag. IP: %1 @@ -3303,26 +3516,60 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder IconWidget - + Browse... Bläddra... - + Reset Återställ - + Select icon Välj ikon - + Supported image files Bildfiler som stöds + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Strömhantering hittade lämpligt D-Bus-gränssnitt. Gränssnitt: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Fel i energihanteringen. Hittade inte ett lämpligt D-Bus-gränssnitt. + + + + + + Power management error. Action: %1. Error: %2 + Strömhanteringsfel. Åtgärd: %1. Fel: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Oväntat strömhanteringsfel. Tillstånd: %1. Fel: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 blockerades. Orsak: %2. - + %1 was banned 0.0.0.0 was banned %1 förbjöds @@ -3369,60 +3616,60 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 är en okänd kommandoradsparameter. - - + + %1 must be the single command line parameter. %1 måste vara den enda kommandoradsparametern. - + Run application with -h option to read about command line parameters. Kör programmet med -h optionen för att läsa om kommando parametrar. - + Bad command line Ogiltig kommandorad - + Bad command line: - Ogiltig kommandorad: + Ogiltig kommandorad: - + An unrecoverable error occurred. Ett oåterställbart fel inträffade. + - qBittorrent has encountered an unrecoverable error. qBittorrent har stött på ett oåterställbart fel. - + You cannot use %1: qBittorrent is already running. Du kan inte använda %1: qBittorrent körs redan. - + Another qBittorrent instance is already running. En annan qBittorrent-instans körs redan. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Hittade oväntad qBittorrent-instans. Avslutar den här instansen. Aktuellt process-ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Fel vid demonisering. Orsak: "%1". Felkod: %2. @@ -3435,609 +3682,681 @@ Stöder formaten: S01E01, 1x1, 2017.12.31 och 31.12.2017 (datumformatet stöder &Redigera - + &Tools V&erktyg - + &File &Arkiv - + &Help &Hjälp - + On Downloads &Done Vid &slutförda hämtningar - + &View &Visa - + &Options... A&lternativ... - - &Resume - &Återuppta - - - + &Remove &Ta bort - + Torrent &Creator &Torrentskapare - - + + Alternative Speed Limits Alternativa hastighetsgränser - + &Top Toolbar &Översta verktygsfältet - + Display Top Toolbar Visa översta verktygsfältet - + Status &Bar Status&fält - + Filters Sidebar Filtersidofält - + S&peed in Title Bar H&astighet i titelfältet - + Show Transfer Speed in Title Bar Visa överföringshastighet i titelfältet - + &RSS Reader &RSS-läsare - + Search &Engine Sök&motor - + L&ock qBittorrent L&åsa qBittorrent - + Do&nate! Do&nera! - + + Sh&utdown System + S&täng av systemet + + + &Do nothing &Gör ingenting - + Close Window Stäng fönster - - R&esume All - Åt&eruppta alla - - - + Manage Cookies... Hantera kakor... - + Manage stored network cookies Hantera lagrade nätverkskakor - + Normal Messages Normala meddelanden - + Information Messages Informationsmeddelanden - + Warning Messages Varningsmeddelanden - + Critical Messages Kritiska meddelanden - + &Log &Logg - + + Sta&rt + Sta&rta + + + + Sto&p + Sto&ppa + + + + R&esume Session + Åt&eruppta session + + + + Pau&se Session + Pau&sa session + + + Set Global Speed Limits... Ställ in globala hastighetsgränser... - + Bottom of Queue Längst bak i kön - + Move to the bottom of the queue Flytta till slutet av kön - + Top of Queue Längst fram i kön - + Move to the top of the queue Flytta till början av kön - + Move Down Queue Flytta bak i kön - + Move down in the queue Flytta bak i kön - + Move Up Queue Flytta fram i kön - + Move up in the queue Flytta fram i kön - + &Exit qBittorrent &Avsluta qBittorrent - + &Suspend System &Försätt systemet i vänteläge - + &Hibernate System &Försätt systemet i viloläge - - S&hutdown System - S&täng av systemet - - - + &Statistics &Statistik - + Check for Updates Sök efter uppdateringar - + Check for Program Updates Sök efter programuppdateringar - + &About &Om - - &Pause - &Pausa - - - - P&ause All - P&ausa alla - - - + &Add Torrent File... Lägg till &torrentfil... - + Open Öppna - + E&xit A&vsluta - + Open URL Öppna URL - + &Documentation &Dokumentation - + Lock Lås - - - + + + Show Visa - + Check for program updates Sök efter programuppdateringar - + Add Torrent &Link... Lägg till torrent&länk... - + If you like qBittorrent, please donate! Donera om du tycker om qBittorrent! - - + + Execution Log Exekveringsloggen - + Clear the password Rensa lösenordet - + &Set Password &Ställ in lösenord - + Preferences Inställningar - + &Clear Password &Rensa lösenord - + Transfers Överföringar - - + + qBittorrent is minimized to tray qBittorrent minimerad till systemfältet - - - + + + This behavior can be changed in the settings. You won't be reminded again. Detta beteende kan ändras i inställningarna. Du kommer inte att bli påmind igen. - + 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ås - - + + Please type the UI lock password: Skriv lösenordet för gränssnittslås: - + Are you sure you want to clear the password? Är du säker att du vill rensa lösenordet? - + Use regular expressions Använd reguljära uttryck - + + + Search Engine + Sökmotor + + + + Search has failed + Det gick inte att söka + + + + Search has finished + Sökningen är klar + + + Search Sök - + Transfers (%1) Överföringar (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - qBittorrent uppdaterades nyss och behöver startas om för att ändringarna ska vara effektiva.. + qBittorrent uppdaterades precis och måste startas om för att ändringarna ska träda i kraft. - + qBittorrent is closed to tray qBittorrent stängd till systemfältet - + Some files are currently transferring. Några filer överförs för närvarande. - + Are you sure you want to quit qBittorrent? Är du säker på att du vill avsluta qBittorrent? - + &No &Nej - + &Yes &Ja - + &Always Yes &Alltid Ja - + Options saved. Alternativen sparade. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [PAUSAD] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [N: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python-installationsprogrammet kunde inte hämtas. Fel: %1. +Installera det manuellt. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Det gick inte att byta namn på Python-installationsprogrammet. Källa: "%1". Destination: "%2". + + + + Python installation success. + Python-installation lyckades. + + + + Exit code: %1. + Avslutskod: %1. + + + + Reason: installer crashed. + Orsak: installationsprogrammet kraschade. + + + + Python installation failed. + Python-installationen misslyckades. + + + + Launching Python installer. File: "%1". + Startar Python-installationsprogrammet. Fil: "%1". + + + + Missing Python Runtime Saknar Python Runtime - + qBittorrent Update Available qBittorrent uppdatering tillgänglig - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python krävs för att använda sökmotorn, men det verkar inte vara installerat. Vill du installera det nu? - + Python is required to use the search engine but it does not seem to be installed. Python krävs för att använda sökmotorn, men det verkar inte vara installerat. - - + + Old Python Runtime Gammal Python Runtime - + A new version is available. En ny version är tillgänglig. - + Do you want to download %1? Vill du hämta %1? - + Open changelog... Öppna ändringslogg... - + No updates available. You are already using the latest version. Inga uppdateringar tillgängliga. Du använder redan den senaste versionen. - + &Check for Updates &Sök efter uppdateringar - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Din Python-version (%1) är föråldrad. Minimikrav: %2. Vill du installera en nyare version nu? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Din Python-version (%1) är föråldrad. Uppgradera till den senaste versionen för att sökmotorerna ska fungera. Minimikrav: %2. - + + Paused + Pausade + + + Checking for Updates... Söker efter uppdateringar... - + Already checking for program updates in the background Söker redan efter programuppdateringar i bakgrunden - + + Python installation in progress... + Python-installation pågår... + + + + Failed to open Python installer. File: "%1". + Det gick inte att öppna Python-installationsprogrammet. Fil: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Misslyckades med MD5-hashkontroll för Python-installationsprogrammet. Fil: "%1". Resultat hash: "%2". Förväntad hash: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Misslyckades med SHA3-512-hashkontroll för Python-installeraren. Fil: "%1". Resultat hash: "%2". Förväntad hash: "%3". + + + Download error Hämtningsfel - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python-installationen kunde inte hämtas. Orsak: %1. -Installera den manuellt. - - - - + + Invalid password Ogiltigt lösenord - + Filter torrents... Filtrera torrenter... - + Filter by: Filtrera efter: - + The password must be at least 3 characters long Lösenordet måste vara minst 3 tecken långt - - - + + + RSS (%1) RSS (%1) - + 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ändninghastighet: %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 - + Open Torrent Files Öppna torrentfiler - + Torrent Files Torrentfiler @@ -4116,7 +4435,7 @@ Installera den manuellt. Redirected to magnet URI - Omdirigeras till magnet-URI. + Omdirigerad till magnet-URI @@ -4232,7 +4551,12 @@ Installera den manuellt. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL-fel, URL: "%1", fel: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ignorera SSL-fel, URL: "%1", fel: "%2" @@ -5526,47 +5850,47 @@ Installera den manuellt. Net::Smtp - + Connection failed, unrecognized reply: %1 Anslutningen misslyckades, okänt svar: %1 - + Authentication failed, msg: %1 Autentisering misslyckades, meddelande: %1 - + <mail from> was rejected by server, msg: %1 <mail from> avvisades av servern, meddelande: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> avvisades av servern, meddelande: %1 - + <data> was rejected by server, msg: %1 <data> avvisades av servern, meddelande: %1 - + Message was rejected by the server, error: %1 Meddelandet avvisades av servern, fel: %1 - + Both EHLO and HELO failed, msg: %1 Både EHLO och HELO misslyckades, meddelande: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP-servern verkar inte stödja något av de autentiseringslägen vi stöder [CRAM-MD5|PLAIN|LOGIN], hoppar över autentisering, med vetskap om att det sannolikt kommer att misslyckas... Serverautentiseringslägen: %1 - + Email Notification Error: %1 E-postaviseringsfel: %1 @@ -5604,299 +5928,283 @@ Installera den manuellt. BitTorrent - + RSS RSS - - Web UI - Webbgränssnitt - - - + Advanced Avancerat - + Customize UI Theme... Anpassa användargränssnittstema... - + Transfer List Överföringslista - + Confirm when deleting torrents Bekräfta borttagning av torrenter - - Shows a confirmation dialog upon pausing/resuming all the torrents - Visar en bekräftelsedialogruta när du pausar/återupptar alla torrenter - - - - Confirm "Pause/Resume all" actions - Bekräfta "Pausa/Återuppta alla" åtgärder - - - + Use alternating row colors In table elements, every other row will have a grey background. Använd alternerande radfärger - + Hide zero and infinity values Dölj noll- och oändliga värden - + Always Alltid - - Paused torrents only - Endast pausade torrenter - - - + Action on double-click Åtgärd vid dubbelklick - + Downloading torrents: Hämtar torrenter: - - - Start / Stop Torrent - Starta/stoppa torrent - - - - + + Open destination folder Öppna destinationsmapp - - + + No action Ingen åtgärd - + Completed torrents: Slutförda torrenter: - + Auto hide zero status filters Dölj nollstatusfilter automatiskt - + Desktop Skrivbord - + Start qBittorrent on Windows start up - Starta qBittorrent vid Windows start + Starta qBittorrent vid Windows-uppstart - + Show splash screen on start up - Visa startruta vid start + Visa startruta vid uppstart - + Confirmation on exit when torrents are active Bekräftelse vid avslutning när torrenter är aktiva - + Confirmation on auto-exit when downloads finish Bekräftelse vid automatisk avslutning när hämtningar slutförs - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>För att ställa in qBittorrent som standardprogram för .torrent-filer och/eller magnetlänkar<br/>kan du använda dialogrutan <span style=" font-weight:600;">Standardprogram</span> från <span style=" font-weight:600;">kontrollpanelen</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + Visa ledigt diskutrymme i statusfältet + + + Torrent content layout: Layout för torrentinnehåll: - + Original Original - + Create subfolder Skapa undermapp - + Don't create subfolder Skapa inte undermapp - + The torrent will be added to the top of the download queue Torrenten kommer att läggas till överst i hämtningsslistan - + Add to top of queue The torrent will be added to the top of the download queue Lägg till överst i kön - + When duplicate torrent is being added När duplicerad torrent läggs till - + Merge trackers to existing torrent - Slå ihop spårare till befintlig torrent + Slå samman spårare till befintlig torrent - + Keep unselected files in ".unwanted" folder - Behåll omarkerade filer i mappen ".unwanted". + Behåll omarkerade filer i mappen ".unwanted" - + Add... Lägg till... - + Options.. - Alternativ... + Alternativ.. - + Remove Ta bort - + Email notification &upon download completion E-postmeddelande &efter slutförd hämtning - + + Send test email + Skicka detta e-postmeddelande + + + + Run on torrent added: + Kör på tillagd torrent: + + + + Run on torrent finished: + Kör på slutförd torrent + + + Peer connection protocol: Jämlikeanslutningsprotokoll: - + Any Vilket som helst - + I2P (experimental) I2P (experimentell) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Om &quot;blandat läge&quot; är aktiverat kan I2P-torrenter också hämta jämlikar från andra källor än spåraren och ansluta till vanliga IP-adresser, utan att ge någon anonymisering. Detta kan vara användbart om användaren inte är intresserad av anonymisering av I2P, men ändå vill kunna ansluta till I2P-användare.</p></body></html> - - - + Mixed mode Blandat läge - - Some options are incompatible with the chosen proxy type! - Vissa alternativ är inkompatibla med den valda proxytypen! - - - + If checked, hostname lookups are done via the proxy - Vid aktivering, görs värdnamnsuppslag via proxy. + Vid aktivering, görs värdnamnsuppslag via proxy - + Perform hostname lookup via proxy Utför värdnamnsuppslagning via proxy - + Use proxy for BitTorrent purposes Använd proxy för BitTorrent-ändamål - + RSS feeds will use proxy RSS-flöden kommer att använda proxy - + Use proxy for RSS purposes Använd proxy för RSS-ändamål - + Search engine, software updates or anything else will use proxy Sökmotor, programuppdateringar eller något annat kommer att använda proxy - + Use proxy for general purposes Använd proxy för allmänna ändamål - + IP Fi&ltering IP-fi&ltrering - + Schedule &the use of alternative rate limits Schemalägg &användning av alternativa hastighetsgränser - + From: From start time Från: - + To: To end time Till: - + Find peers on the DHT network Hitta jämlikar på DHT-nätverket - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Kräv kryptering: Anslut endast till jämlikar med protokollkryptering Inaktivera kryptering: Anslut endast till jämlikar utan protokollkryptering - + Allow encryption Tillåt kryptering - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mer information</a>) - + Maximum active checking torrents: Högst antal aktiva kontrollerande torrenter: - + &Torrent Queueing &Torrentkö - + When total seeding time reaches När totala distributionstiden når - + When inactive seeding time reaches När inaktiva distributionstiden når - - A&utomatically add these trackers to new downloads: - Lägg a&utomatiskt till de här spårarna till nya hämtningar: - - - + RSS Reader RSS-läsare - + Enable fetching RSS feeds Aktivera hämtning av RSS-flöden - + Feeds refresh interval: Uppdateringsintervall för flöden: - + Same host request delay: - + Samma fördröjning av värdbegäran: - + Maximum number of articles per feed: Högst antal artiklar per flöde: - - - + + + min minutes min - + Seeding Limits Distributionsgränser - - Pause torrent - Pausa torrent - - - + Remove torrent Ta bort torrent - + Remove torrent and its files Ta bort torrent och dess filer - + Enable super seeding for torrent Aktivera superdistribution för torrent - + When ratio reaches När kvoten når - + + Some functions are unavailable with the chosen proxy type! + Vissa funktioner är inte tillgängliga med den valda proxytypen! + + + + Note: The password is saved unencrypted + Observera: Lösenordet sparas okrypterat + + + + Stop torrent + Stoppa torrent + + + + A&utomatically append these trackers to new downloads: + Lägg &automatiskt till dessa spårare till nya hämtningar + + + + Automatically append trackers from URL to new downloads: + Lägg automatiskt till spårare från URL till nya hämtningar: + + + + URL: + URL: + + + + Fetched trackers + Hämtade spårare + + + + Search UI + Sök i användargränssnittet + + + + Store opened tabs + Lagra öppnade flikar + + + + Also store search results + Lagra även sökresultat + + + + History length + Historiklängd + + + RSS Torrent Auto Downloader Automatisk RSS-torrenthämtare - + Enable auto downloading of RSS torrents Aktivera automatisk hämtning av RSS-torrenter - + Edit auto downloading rules... Redigera regler för automatisk hämtning... - + RSS Smart Episode Filter Smart RSS-avsnittsfilter - + Download REPACK/PROPER episodes Hämta REPACK-/PROPER-avsnitt - + Filters: Filter: - + Web User Interface (Remote control) Webbgränssnittet (fjärrstyrning) - + IP address: IP-adress: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Ange en IPv4- eller IPv6-adress. Du kan ange "0.0.0.0" för någon IPv "::" för alla IPv6-adresser, eller "*" för både IPv4 och IPv6. - + Ban client after consecutive failures: Förbud mot klient efter påföljande misslyckanden: - + Never Aldrig - + ban for: förbud för: - + Session timeout: Sessionen löpte ut: - + Disabled Inaktiverad - - Enable cookie Secure flag (requires HTTPS) - Aktivera säker flagga för kakor (kräver HTTPS) - - - + Server domains: Serverdomäner: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ domännamn som används av servern för webbanvändargränssnittet. Använd ";" för att dela upp i flera poster. Du kan använda jokertecknet "*". - + &Use HTTPS instead of HTTP &Använd HTTPS istället för HTTP - + Bypass authentication for clients on localhost Kringgå autentisering för klienter på localhost - + Bypass authentication for clients in whitelisted IP subnets Kringgå autentisering för klienter i vitlistade IP-undernät - + IP subnet whitelist... IP-delnätvitlista... - + + Use alternative WebUI + Använd alternativt webbgränssnitt + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Ange omvänd proxy-IP:er (eller undernät, t.ex. 0.0.0.0/24) för att använda vidarebefordrad klientadress (X-Forwarded-For header). Använd ';' för att dela upp flera poster. - + Upda&te my dynamic domain name Uppda&tera mitt dynamiska domännamn - + Minimize qBittorrent to notification area Minimera qBittorrent till aviseringsområdet - + + Search + Sök + + + + WebUI + Webbgränssnitt + + + Interface Gränssnitt - + Language: Språk: - + + Style: + Stil: + + + + Color scheme: + Färgschema: + + + + Stopped torrents only + Endast stoppade torrenter + + + + + Start / stop torrent + Starta / stoppa torrent + + + + + Open torrent options dialog + Öppna dialogrutan för torrentalternativ + + + Tray icon style: Stil för aktivitetsikon: - - + + Normal Normal - + File association Filassociation - + Use qBittorrent for .torrent files Använd qBittorrent för .torrent-filer - + Use qBittorrent for magnet links Använd qBittorrent för magnetlänkar - + Check for program updates Sök efter programuppdateringar - + Power Management Energihantering - + + &Log Files + &Loggfiler + + + Save path: Sparsökväg: - + Backup the log file after: Säkerhetskopiera loggfilen efter: - + Delete backup logs older than: Ta bort säkerhetskopieringsloggar äldre än: - + + Show external IP in status bar + Visa extern IP i statusfältet + + + When adding a torrent När en torrent läggs till - + Bring torrent dialog to the front Flytta torrentdialogrutan längst fram - + + The torrent will be added to download list in a stopped state + Torrenten kommer att läggas till i hämtningslistan i ett stoppat tillstånd + + + Also delete .torrent files whose addition was cancelled Ta också bort .torrentfiler vars tillägg avbröts - + Also when addition is cancelled Även när tilläggning avbryts - + Warning! Data loss possible! Varning! Dataförlust möjlig! - + Saving Management Spara hantering - + Default Torrent Management Mode: Standard torrenthanteringsläge: - + Manual Manuell - + Automatic Automatisk - + When Torrent Category changed: När torrentkategorin ändras: - + Relocate torrent Flytta torrent - + Switch torrent to Manual Mode Växla torrent till manuellt läge - - + + Relocate affected torrents Flytta påverkade torrenter - - + + Switch affected torrents to Manual Mode Växla påverkade torrenter till manuellt läge - + Use Subcategories Använd underkategorier - + Default Save Path: Standard sparsökväg: - + Copy .torrent files to: Kopiera .torrent-filer till: - + Show &qBittorrent in notification area Visa &qBittorrent i aviseringsområdet - - &Log file - &Loggfil - - - + Display &torrent content and some options Visa &torrentinnehåll och några alternativ - + De&lete .torrent files afterwards T&a bort .torrent-filer efteråt - + Copy .torrent files for finished downloads to: Kopiera .torrent-filer för slutförda hämtningar till: - + Pre-allocate disk space for all files Förallokera diskutrymme för alla filer - + Use custom UI Theme Använd anpassat användargränssnittstema - + UI Theme file: Temafil för användargränssnitt: - + Changing Interface settings requires application restart Ändring av gränssnittsinställningar kräver omstart av programmet - + Shows a confirmation dialog upon torrent deletion Visar en bekräftelsedialogruta när du tar bort torrenter - - + + Preview file, otherwise open destination folder Förhandsgranska fil, annars öppna destinationsmapp - - - Show torrent options - Visa torrentalternativ - - - + Shows a confirmation dialog when exiting with active torrents Visar en bekräftelsedialogruta när du avslutar med aktiva torrenter - + When minimizing, the main window is closed and must be reopened from the systray icon Vid minimering stängs huvudfönstret och måste öppnas igen från systray-ikonen - + The systray icon will still be visible when closing the main window Systray-ikonen kommer fortfarande att vara synlig huvudfönstret stängs - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Stäng qBittorrent till aviseringsområdet - + Monochrome (for dark theme) Monokrom (för mörkt tema) - + Monochrome (for light theme) Monokrom (för ljust tema) - + Inhibit system sleep when torrents are downloading Förhindra att systemet försätts i vänteläge medan torrenter hämtas - + Inhibit system sleep when torrents are seeding Förhindra att systemet försätts i vänteläge medan torrenter distribuerar - + Creates an additional log file after the log file reaches the specified file size Skapar en extra loggfil efter att loggfilen når den angivna filstorleken - + days Delete backup logs older than 10 days dagar - + months Delete backup logs older than 10 months månader - + years Delete backup logs older than 10 years år - + Log performance warnings Logga prestandavarningar - - The torrent will be added to download list in a paused state - Torrenten kommer att läggas till i hämtningslistan i ett pausat tillstånd - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Starta inte hämtningen automatiskt - + Whether the .torrent file should be deleted after adding it Om .torrent-filen ska tas bort efter att den lagts till - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Allokera fullständiga filstorlekar på disken innan hämtningar startas för att minimera fragmentering. Endast användbart för hårddiskar. - + Append .!qB extension to incomplete files Lägg till ändelsen .!qB till ofullständiga filer - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it När en torrent hämtas, erbjud att lägga till torrenter från alla .torrent-filer som finns inuti den - + Enable recursive download dialog Aktivera rekursiv hämtningsdialogruta - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Automatisk: Olika torrentegenskaper (t.ex. sparsökväg) kommer att avgöras av den tillhörande kategorin Manuell: Olika torrentegenskaper (t.ex. sparsökväg) måste tilldelas manuellt - + When Default Save/Incomplete Path changed: När standard spara/ofullständig sökväg ändrades: - + When Category Save Path changed: När kategorisparsningssökvägen ändras: - + Use Category paths in Manual Mode Använd kategorisökvägar i manuellt läge - + Resolve relative Save Path against appropriate Category path instead of Default one Lös relativ sparsökväg mot lämplig kategorisökväg istället för standardsökväg - + Use icons from system theme Använd ikoner från systemtemat - + Window state on start up: Fönsterstatus vid uppstart: - + qBittorrent window state on start up - qBittorrents fönsterstatus vid uppstart + qBittorrent-fönsterstatus vid uppstart - + Torrent stop condition: Torrentstoppvillkor: - - + + None Inget - - + + Metadata received Metadata mottagna - - + + Files checked Filer kontrollerade - + Ask for merging trackers when torrent is being added manually Be om att slå samman spårare när torrent läggs till manuellt - + Use another path for incomplete torrents: Använd en annan sökväg för ofullständiga torrenter: - + Automatically add torrents from: Lägg automatiskt till torrenter från: - + Excluded file names Exkluderade filnamn - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: filtrera exakt filnamn. readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' men inte 'readme10.txt'. - + Receiver Mottagare - + To: To receiver Till: - + SMTP server: SMTP-server: - + Sender Sändare - + From: From sender Från: - + This server requires a secure connection (SSL) Den här servern kräver en säker anslutning (SSL) - - + + Authentication Autentisering - - - - + + + + Username: Användarnamn: - - - - + + + + Password: Lösenord: - + Run external program Kör externt program - - Run on torrent added - Kör när torrent läggs till - - - - Run on torrent finished - Kör när torrent slutförs - - - + Show console window Visa konsolfönster - + TCP and μTP TCP och μTP - + Listening Port Lyssningsport - + Port used for incoming connections: Port som används för inkommande anslutningar: - + Set to 0 to let your system pick an unused port Ställ in på 0 för att låta ditt system välja en oanvänd port - + Random Slumpmässig - + Use UPnP / NAT-PMP port forwarding from my router Använd UPnP / NAT-PMP-portomdirigering från min router - + Connections Limits Anslutningsgränser - + Maximum number of connections per torrent: Högst antal anslutningar per torrent: - + Global maximum number of connections: Högst antal anslutningar globalt: - + Maximum number of upload slots per torrent: Högst antal sändningsplatser per torrent: - + Global maximum number of upload slots: Högst antal sändningsplatser globalt: - + Proxy Server Proxyserver - + Type: Typ: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Värd: - - - + + + Port: Port: - + Otherwise, the proxy server is only used for tracker connections Annars används proxyservern endast för spåraranslutningar - + Use proxy for peer connections Använd proxy för jämlikeanslutningar - + A&uthentication A&utentisering - - Info: The password is saved unencrypted - Info: Lösenordet sparas okrypterat - - - + Filter path (.dat, .p2p, .p2b): Filtersökväg (.dat, .p2p, .p2b): - + Reload the filter Ladda om filtret - + Manually banned IP addresses... Manuellt förbjudna IP-adresser... - + Apply to trackers Tillämpa på spårare - + Global Rate Limits Globala hastighetsgränser - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Sändning: - - + + Download: Hämtning: - + Alternative Rate Limits Alternativa hastighetsgränser - + Start time Starttid - + End time Sluttid - + When: När: - + Every day Varje dag - + Weekdays Vardagar - + Weekends Helger - + Rate Limits Settings Inställningar för hastighetsgränser - + Apply rate limit to peers on LAN Tillämpa hastighetsgräns för LAN-jämlikar - + Apply rate limit to transport overhead Tillämpa hastighetsgräns för transportoverhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Om "blandat läge" är aktiverat tillåts I2P-torrenter att även få jämlikar från andra källor än spåraren och ansluta till vanliga IP-adresser, utan att ge någon anonymisering. Detta kan vara användbart om användaren inte är intresserad av anonymisering av I2P, men ändå vill kunna ansluta till I2P-jämlikar. </p></body></html> + + + Apply rate limit to µTP protocol Tillämpa hastighetsgräns för µTP-protokoll - + Privacy Integritet - + Enable DHT (decentralized network) to find more peers Aktivera DHT (decentraliserat nätverk) för att hitta fler jämlikar - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Utbyta jämlikar med kompatibla BitTorrent-klienter (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Aktivera jämlikeutbyte (PeX) för att hitta fler jämlikar - + Look for peers on your local network Leta efter jämlikar på ditt lokala nätverk - + Enable Local Peer Discovery to find more peers Aktivera upptäckt av lokala jämlikar för att hitta fler jämlikar - + Encryption mode: Krypteringsläge: - + Require encryption Kräv kryptering - + Disable encryption Inaktivera kryptering - + Enable when using a proxy or a VPN connection Aktivera när en proxy eller VPN-anslutning används - + Enable anonymous mode Aktivera anonymt läge - + Maximum active downloads: Högst antal aktiva hämtningar: - + Maximum active uploads: Högst antal aktiva sändningar: - + Maximum active torrents: Högst antal aktiva torrenter: - + Do not count slow torrents in these limits Räkna inte långsamma torrenter med de här gränserna - + Upload rate threshold: Sändningshastighetsgräns: - + Download rate threshold: Hämtningshastighetsgräns: - - - - + + + + sec seconds - sek + sek - + Torrent inactivity timer: Torrentinaktivitetstidtagare: - + then därefter - + 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 - + Certificate: Certifikat: - + Key: Nyckel: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information om certifikat</a> - + Change current password Ändra nuvarande lösenord - - Use alternative Web UI - Använd alternativt webbgränssnitt - - - + Files location: Filplats: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Lista över alternativa webbanvändargränssnitt</a> + + + Security Säkerhet - + Enable clickjacking protection Aktivera skydd för clickjacking - + Enable Cross-Site Request Forgery (CSRF) protection Aktivera skydd mot förfalskning av förfrågningar mellan webbplatser (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Aktivera säkerhetsflagga för kaka (kräver HTTPS eller lokal värdanslutning) + + + Enable Host header validation Aktivera validering av värdrubrik - + Add custom HTTP headers Lägg till anpassade HTTP-rubriker - + Header: value pairs, one per line Rubrik: värdepar, en per rad - + Enable reverse proxy support Aktivera support för omvänd proxy - + Trusted proxies list: Lista över betrodda proxyer: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Exempel på omvänd proxyinställning</a> + + + Service: Tjänst: - + Register Registrera - + Domain name: Domännamn: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Genom att aktivera de här alternativen kan du <strong>oåterkalleligt förlora</strong> dina .torrent-filer! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Om du aktiverar det andra alternativet (&ldquo;även när tillägg avbryts&rdquo;) .torrentfilen <strong>tas bort</strong> även om du trycker på &ldquo;<strong>Avbryt</strong>&rdquo; i &ldquo;Lägg till torrent&rdquo;-dialogrutan - + Select qBittorrent UI Theme file Välj qBittorrent-temafil för användargränssnitt - + Choose Alternative UI files location Välj alternativ plats för användargränssnitts filer - + Supported parameters (case sensitive): Parametrar som stöds (skiftlägeskänslig): - + Minimized Minimerad - + Hidden Dold - + Disabled due to failed to detect system tray presence Inaktiverat på grund av att det inte gick att detektera närvaro i systemfältet - + No stop condition is set. Inga stoppvillkor angivna. - + Torrent will stop after metadata is received. Torrent stoppas efter att metadata har tagits emot. - Torrents that have metadata initially aren't affected. - Torrent som har metadata initialt påverkas inte. - - - + Torrent will stop after files are initially checked. Torrent stoppas efter att filer har kontrollerats initialt. - + This will also download metadata if it wasn't there initially. Detta kommer också att hämta metadata om det inte var där initialt. - + %N: Torrent name %N: Torrentnamn - + %L: Category %L: Kategori - + %F: Content path (same as root path for multifile torrent) %F: Innehållssökväg (samma som root-sökväg för flerfilig torrent) - + %R: Root path (first torrent subdirectory path) %R: Root-sökväg (första torrentundermappsökväg) - + %D: Save path %D: Sparsökväg - + %C: Number of files %C: Antal filer - + %Z: Torrent size (bytes) %Z: Torrentstorlek (byte) - + %T: Current tracker %T: Aktuell spårare - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Tips: Inkapsla parametern med citattecken för att undvika att text skärs av vid blanktecknet (t. ex. "%N") - + + Test email + E-posttest + + + + Attempted to send email. Check your inbox to confirm success + Försökte skicka e-post. Kontrollera din inkorg för att bekräfta att det lyckades + + + (None) (Ingen) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds En torrent kommer att anses långsam om dess hämtnings- och sändningshastigheter stannar under de här värdena för "torrentinaktivitetstidtagare" sekunder - + Certificate Certifikat - + Select certificate Välj certifikat - + Private key Privat nyckel - + Select private key Välj privat nyckel - + WebUI configuration failed. Reason: %1 Konfigurationen för webbanvändargränssnittet misslyckades. Orsak: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 rekommenderas för bästa kompatibilitet med Windows mörkt läge + + + + System + System default Qt style + System + + + + Let Qt decide the style for this system + Låt Qt bestämma stilen för detta system + + + + Dark + Dark color scheme + Mörkt + + + + Light + Light color scheme + Ljust + + + + System + System color scheme + System + + + Select folder to monitor Välj mapp för övervakning - + Adding entry failed Det gick inte att lägga till post - + The WebUI username must be at least 3 characters long. Användarnamnet för webbanvändargränssnittet måste vara minst 3 tecken långt. - + The WebUI password must be at least 6 characters long. Lösenordet för webbanvändargränssnittet måste vara minst 6 tecken långt. - + Location Error Platsfel - - + + Choose export directory Välj exportmapp - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well När de här alternativen är aktiverade kommer qBittorrent att <strong>ta bort</strong> .torrent-filer efter att de var (det första alternativet) eller inte (det andra alternativet) tillagda till sin hämtningskö. Detta kommer att tillämpas <strong>inte endast</strong> på de filer som öppnas via &ldquo;Lägg till torrent&rdquo;-menyåtgärden men på de som öppnas via <strong>filtypsassociering</strong> också - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent-temafil för användargränssnitt (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Taggar (separerade med kommatecken) - + %I: Info hash v1 (or '-' if unavailable) %I: Info-hash v1 (eller "-" om otillgänglig) - + %J: Info hash v2 (or '-' if unavailable) %J: Info-hash v2 (eller "-" om otillgänglig) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent-ID (antingen sha-1 info-hash för v1-torrent eller avkortad sha-256 info-hash för v2/hybridtorrent) - - - + + + Choose a save directory Välj en sparmapp - + Torrents that have metadata initially will be added as stopped. - + Torrenter som har metadata initialt kommer att läggas till som stoppade. - + Choose an IP filter file Välj en IP-filterfil - + All supported filters Alla stödda filter - + The alternative WebUI files location cannot be blank. Den alternativa platsen för webbanvändargränssnittsfiler får inte vara tom. - + Parsing error Tolkningsfel - + Failed to parse the provided IP filter Det gick inte att analysera det medföljande IP-filtret - + Successfully refreshed Uppdaterad - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Tolkade det angivna IP-filtret: %1-reglerna tillämpades. - + Preferences Inställningar - + Time Error Tidsfel - + The start time and the end time can't be the same. Starttiden och sluttiden kan inte vara densamma. - - + + Length Error Längdfel @@ -7335,241 +7765,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' men int PeerInfo - + Unknown Okänd - + Interested (local) and choked (peer) Intresserad (lokal) och strypt (jämlike) - + Interested (local) and unchoked (peer) Intresserad (lokal) och ostrypt (jämlike) - + Interested (peer) and choked (local) Intresserad (jämlike) och strypt (lokal) - + Interested (peer) and unchoked (local) Intresserad (jämlike) och ostrypt (lokal) - + Not interested (local) and unchoked (peer) Inte intresserad (lokal) och ostrypt (jämlike) - + Not interested (peer) and unchoked (local) Inte intresserad (jämlike) och ostrypt (lokal) - + Optimistic unchoke Optimistisk avstrypning - + Peer snubbed Jämlike nappade - + Incoming connection Inkommande anslutning - + Peer from DHT Jämlike från DHT - + Peer from PEX Jämlike från PEX - + Peer from LSD Jämlike från LSD - + Encrypted traffic Krypterad trafik - + Encrypted handshake Krypterad handskakning + + + Peer is using NAT hole punching + Jämlike använder NAT-hålslagning + PeerListWidget - + Country/Region Land/region - + IP/Address IP/adress - + Port Port - + Flags Flaggor - + Connection Anslutning - + Client i.e.: Client application Klient - + Peer ID Client i.e.: Client resolved from Peer ID Jämlike ID-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 - + Files i.e. files that are being downloaded right now Filer - + Column visibility Kolumnsynlighet - + Resize columns Ändra storlek på kolumner - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke-dolda kolumner till storleken på deras innehåll - + Add peers... Lägg till jämlikar... - - + + Adding peers Lägger till jämlikar - + Some peers cannot be added. Check the Log for details. Vissa kamrater kan inte läggas till. Kontrollera loggen för detaljer. - + Peers are added to this torrent. Jämlikar läggs till i denna torrent. - - + + Ban peer permanently Förbjud jämliken permanent - + Cannot add peers to a private torrent Det går inte att lägga till jämlikar i en privat torrent - + Cannot add peers when the torrent is checking Det går inte att lägga till jämlikar när torrenten kontrollerar - + Cannot add peers when the torrent is queued Det går inte att lägga till jämlikar när torrenten är i kö - + No peer was selected Ingen jämlike vald - + Are you sure you want to permanently ban the selected peers? Är du säker på att du vill permanent förbjuda de valda jämlikarna? - + Peer "%1" is manually banned Jämliken "%1 " är manuellt förbjuden - + N/A Ingen - + Copy IP:port Kopiera IP:port @@ -7587,7 +8022,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' men int Lista över jämlikar att lägga till (en IP per rad): - + Format: IPv4:port / [IPv6]:port Format: IPv4:port / [IPv6]:port @@ -7628,27 +8063,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' men int PiecesBar - + Files in this piece: Filer i denna del: - + File in this piece: Fil i denna del: - + File in these pieces: Fil i dessa delar: - + Wait until metadata become available to see detailed information Vänta tills metadata blir tillgängliga för att se detaljerad information - + Hold Shift key for detailed information Håll skifttangenten för detaljerad information @@ -7661,58 +8096,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' men int Sökinsticksmoduler - + Installed search plugins: Installerade sökinsticksmoduler: - + Name Namn - + Version Version - + Url URL - - + + Enabled Aktiverad - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Varning: Var noga med att följa ditt lands upphovsrättslagar när du hämtar torrenter från någon av de här sökmotorerna. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Du kan skaffa nya sökmotorsinsticksmoduler här: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Installera en ny - + Check for updates Sök efter uppdateringar - + Close Stäng - + Uninstall Avinstallera @@ -7832,98 +8267,65 @@ De här insticksmodulerna inaktiverades. Inskticksmodulens källa - + Search plugin source: Sökinsticksmodulens källa: - + Local file Lokal fil - + Web link Webblänk - - PowerManagement - - - qBittorrent is active - qBittorrent är aktiv - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Strömhantering hittade lämpligt D-Bus-gränssnitt. Gränssnitt: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Strömhanteringsfel. Hittade inte lämpligt D-Bus-gränssnitt. - - - - - - Power management error. Action: %1. Error: %2 - Strömhanteringsfel. Åtgärd: %1. Fel: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Oväntat strömhanteringsfel. Tillstånd: %1. Fel: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Följande filer från torrenten "%1" stöder granskning, välj en av dem: - + Preview Förhandsvisning - + Name Namn - + Size Storlek - + Progress Förlopp - + Preview impossible Förhandsgranskning omöjlig - + Sorry, we can't preview this file: "%1". Tyvärr kan vi inte förhandsgranska den här filen: "%1". - + Resize columns Ändra storlek på kolumner - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke-dolda kolumner till storleken på deras innehåll @@ -7936,27 +8338,27 @@ De här insticksmodulerna inaktiverades. Private::FileLineEdit - + Path does not exist Sökvägen finns inte - + Path does not point to a directory Sökvägen pekar inte på en mapp - + Path does not point to a file Sökvägen pekar inte på en fil - + Don't have read permission to path Har inte läsbehörighet till sökväg - + Don't have write permission to path Har inte skrivbehörighet till sökväg @@ -7997,12 +8399,12 @@ De här insticksmodulerna inaktiverades. PropertiesWidget - + Downloaded: Hämtat: - + Availability: Tillgängligt: @@ -8017,53 +8419,53 @@ De här insticksmodulerna inaktiverades. Överföring - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tid aktiv: - + ETA: Slutförs: - + Uploaded: Skickat: - + Seeds: Distributioner: - + Download Speed: Hämtningshastighet: - + Upload Speed: Sändningshastighet: - + Peers: Jämlikar: - + Download Limit: Hämtningsgräns: - + Upload Limit: Sändningsgräns: - + Wasted: Spill: @@ -8073,193 +8475,220 @@ De här insticksmodulerna inaktiverades. Anslutningar: - + Information Information - + Info Hash v1: Info-hash v1: - + Info Hash v2: Info-hash v2: - + Comment: Kommentar: - + Select All Markera alla - + Select None Markera ingen - + Share Ratio: Delningskvot: - + Reannounce In: - Annonseras igen: + Omannonseras: - + Last Seen Complete: Senast sedd fullständig: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Förhållande / Aktiv tid (i månader), indikerar hur populär torrenten är + + + + Popularity: + Popularitet: + + + Total Size: Total storlek: - + Pieces: Delar: - + Created By: Skapades av: - + Added On: Tillagd: - + Completed On: Slutfördes: - + Created On: Skapades: - + + Private: + Privat: + + + Save Path: Sparsökväg: - + Never Aldrig - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (har %3) - - + + %1 (%2 this session) %1 (%2 denna session) - - + + + N/A Ingen - + + Yes + Ja + + + + No + Nej + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (distribuerad i %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 totalt) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 genomsnitt) - - New Web seed - Ny webbdistribution + + Add web seed + Add HTTP source + Lägg till webbdistribution - - Remove Web seed - Ta bort webbdistribution + + Add web seed: + Lägg till webbdistribution: - - Copy Web seed URL - Kopiera URL för webbdistribution + + + This web seed is already in the list. + Denna webbdistribution finns redan i listan. - - Edit Web seed URL - Ändra URL för webbdistribution - - - + Filter files... Filtrera filer... - + + Add web seed... + Lägg till webbdistribution... + + + + Remove web seed + Ta bort webbdistribution + + + + Copy web seed URL + Kopiera URL för webbdistribution + + + + Edit web seed URL... + Redigera URL för webbdistribution... + + + Speed graphs are disabled Hastighetsdiagram är inaktiverade - + You can enable it in Advanced Options Du kan aktivera det i Avancerade alternativ - - 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 Redigering av webbdistribution - + Web seed URL: URL för webbdistribution: @@ -8267,33 +8696,33 @@ De här insticksmodulerna inaktiverades. RSS::AutoDownloader - - + + Invalid data format. Ogiltigt dataformat. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Det gick inte att spara RSS AutoDownloader-data i %1. Fel: %2 - + Invalid data format Ogiltigt dataformat - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-artikeln '%1' accepteras av regeln '%2'. Försöker lägga till torrent... - + Failed to read RSS AutoDownloader rules. %1 Det gick inte att läsa in regler för RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Det gick inte att läsa in regler för RSS Auto Downloader. Orsak: %1 @@ -8301,22 +8730,22 @@ De här insticksmodulerna inaktiverades. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Det gick inte att hämta RSS-flöde i "%1". Orsak: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-flöde vid "%1" uppdaterad. Inkom %2 nya artiklar. - + Failed to parse RSS feed at '%1'. Reason: %2 Det gick inte att analysera RSS-flöde vid "%1". Orsak: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-flöde vid "%1" hämtades. Börjar analysera det. @@ -8352,12 +8781,12 @@ De här insticksmodulerna inaktiverades. RSS::Private::Parser - + Invalid RSS feed. Ogiltigt RSS-flöde. - + %1 (line: %2, column: %3, offset: %4). %1 (rad: %2, kolumn: %3, offset: %4). @@ -8365,103 +8794,144 @@ De här insticksmodulerna inaktiverades. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Det gick inte att spara RSS-sessionskonfigurationen. Fil: "%1". Fel: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Det gick inte att spara RSS-sessionsdata. Fil: "%1". Fel: "%2" - - + + RSS feed with given URL already exists: %1. RSS-flöde med given URL finns redan: %1. - + Feed doesn't exist: %1. Flödet finns inte: %1. - + Cannot move root folder. Det går inte att flytta root-mapp. - - + + Item doesn't exist: %1. Artikeln existerar inte: %1. - - Couldn't move folder into itself. - Kunde inte flytta mappen in i sig själv. + + Can't move a folder into itself or its subfolders. + Kan inte flytta en mapp till sig själv eller sina undermappar. - + Cannot delete root folder. Kan inte ta bort root-mapp. - + Failed to read RSS session data. %1 Det gick inte att läsa RSS-sessionsdata. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Det gick inte att analysera RSS-sessionsdata. Fil: "%1". Fel: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Det gick inte att läsa in RSS-sessionsdata. Fil: "%1". Fel: "Ogiltigt dataformat." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Det gick inte att läsa in RSS-flödet. Flöde: "%1". Orsak: URL krävs. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Det gick inte att läsa in RSS-flödet. Flöde: "%1". Orsak: UID är ogiltigt. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Dubblett RSS-flöde hittades. UID: "%1". Fel: Konfigurationen verkar vara skadad. - + Couldn't load RSS item. Item: "%1". Invalid data format. Det gick inte att läsa in RSS-objektet. Objekt: "%1". Ogiltigt dataformat. - + Corrupted RSS list, not loading it. Korrupt RSS-lista, läser inte in den. - + Incorrect RSS Item path: %1. Felaktig sökväg för RSS-objekt: %1. - + RSS item with given path already exists: %1. RSS-objekt med given sökväg finns redan: %1. - + Parent folder doesn't exist: %1. Den överordnade mappen finns inte: %1. + + RSSController + + + Invalid 'refreshInterval' value + Ogiltigt värde för 'refreshInterval' + + + + Feed doesn't exist: %1. + Flödet finns inte: %1. + + + + RSSFeedDialog + + + RSS Feed Options + Alternativ för RSS-flöde + + + + URL: + URL: + + + + Refresh interval: + Uppdateringsintervall: + + + + sec + sek + + + + Default + Standard + + RSSWidget @@ -8481,8 +8951,8 @@ De här insticksmodulerna inaktiverades. - - + + Mark items read Markera som läst @@ -8507,132 +8977,115 @@ De här insticksmodulerna inaktiverades. Torrenter: (dubbelklicka för att hämta) - - + + Delete Ta bort - + Rename... Byt namn... - + Rename Byt namn - - + + Update Uppdatera - + New subscription... Ny prenumeration... - - + + Update all feeds Uppdatera alla flöden - + Download torrent Hämta torrent - + Open news URL Öppna nyhets-URL - + Copy feed URL Kopiera flödets URL - + New folder... Ny mapp... - - Edit feed URL... - Redigera flödes-URL... + + Feed options... + Flödesalternativ... - - Edit feed URL - Redigera flödes-URL - - - + Please choose a folder name Välj ett mappnamn - + Folder name: Mappnamn: - + New folder Ny mapp - - - Please type a RSS feed URL - Skriv URL för ett RSS-flöde - - - - - Feed URL: - Flödets URL: - - - + Deletion confirmation Bekräftelse på borttagning - + Are you sure you want to delete the selected RSS feeds? Är du säker på att du vill ta bort de valda RSS-flödena? - + Please choose a new name for this RSS feed Välj ett nytt namn för detta RSS-flöde - + New feed name: Nytt namn på flöde: - + Rename failed Det gick inte att byta namn - + Date: - Datum: + Datum: - + Feed: Flöde: - + Author: Upphovsman: @@ -8640,38 +9093,38 @@ De här insticksmodulerna inaktiverades. SearchController - + Python must be installed to use the Search Engine. Python måste installeras för att använda sökmotorn. - + Unable to create more than %1 concurrent searches. - Det gick inte att skapa fler än %1 samtidiga sökningar. + Det går inte att skapa fler än %1 samtidiga sökningar. - - + + Offset is out of range Förskjutningen är utanför intervallet - + All plugins are already up to date. Alla insticksmoduler är redan uppdaterade. - + Updating %1 plugins Uppdaterar %1 insticksmoduler - + Updating plugin %1 Uppdaterar insticksmodulen %1 - + Failed to check for plugin updates: %1 Det gick inte att söka efter uppdateringar för insticksmodul: %1 @@ -8746,132 +9199,142 @@ De här insticksmodulerna inaktiverades. Storlek: - + 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 - - - + Filter search results... Filtrera sökresultat... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - Reslutat (visar <i>%1</i> av <i>%2</i>): + Resultat (visar <i>%1</i> av <i>%2</i>): - + Torrent names only Endast torrentnamn - + Everywhere Överallt - + Use regular expressions Använd reguljära uttryck - + Open download window Öppna hämtningsfönstret - + Download Hämta - + Open description page Öppna beskrivningssidan - + Copy Kopiera - + Name Namn - + Download link Hämtningslänk - + Description page URL Beskrivningssidans URL - + Searching... Söker... - + Search has finished Sökningen är klar - + Search aborted Sökningen avbruten - + An error occurred during search... Ett fel uppstod under sökningen... - + Search returned no results Sökningen gav inga resultat - + + Engine + Motor + + + + Engine URL + Motorns webbadress + + + + Published On + Publicerad den + + + Column visibility Kolumnens synlighet - + Resize columns Ändra storlek på kolumner - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke-dolda kolumner till storleken på deras innehåll @@ -8879,104 +9342,104 @@ De här insticksmodulerna inaktiverades. SearchPluginManager - + Unknown search engine plugin file format. Okänt filformat för sökmotorinsticksmodul. - + Plugin already at version %1, which is greater than %2 Insticksmodule har redan version %1, vilket är större än %2 - + A more recent version of this plugin is already installed. En senare version av den här insticksmodulen är redan installerad. - + Plugin %1 is not supported. Insticksmodulen %1 stöds inte. - - + + Plugin is not supported. Insticksmodul stöds inte. - + Plugin %1 has been successfully updated. Insticksmodulen %1 har uppdaterats. - + All categories Alla kategorier - + Movies Filmer - + TV shows Tv program - + Music Musik - + Games Spel - + Anime Animerat - + Software Mjukvara - + Pictures Bilder - + Books Böcker - + Update server is temporarily unavailable. %1 Uppdateringsserveren är tillfälligt otillgänglig. %1 - - + + Failed to download the plugin file. %1 Det gick inte att hämta insticksmodulsfilen. %1 - + Plugin "%1" is outdated, updating to version %2 Insticksmodulen "%1" är föråldrad, uppdateras till version %2 - + Incorrect update info received for %1 out of %2 plugins. Felaktig uppdateringsinformation mottagen för %1 av %2 insticksmoduler. - + Search plugin '%1' contains invalid version string ('%2') Sökinsticksmodulen "%1" innehåller ogiltig versionssträng ("%2") @@ -8986,114 +9449,145 @@ De här insticksmodulerna inaktiverades. - - - - Search Sök - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Det finns inte några sökinsticksmoduler installerade. Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av fönstret för att installera några. - + Search plugins... Sökinsticksmoduler... - + A phrase to search for. En fras att söka efter. - + Spaces in a search term may be protected by double quotes. Mellanslag i en sökterm kan skyddas av citattecken. - + Example: Search phrase example Exempel: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: sök efter <b>foo bar</b> - + All plugins Alla insticksmoduler - + Only enabled Endast aktiverade - + + + Invalid data format. + Ogiltigt dataformat. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: sök efter <b>foo</b> och <b>bar</b> - + + Refresh + Uppdatera + + + Close tab Stäng flik - + Close all tabs Stäng alla flikar - + Select... Välj... - - - + + Search Engine Sökmotor - + + Please install Python to use the Search Engine. Installera Python för att använda sökmotorn. - + Empty search pattern Tomt sökmönster - + Please type a search pattern first Skriv ett sökmönster först - + + Stop Stoppa + + + SearchWidget::DataStorage - - Search has finished - Sökningen är klar + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Det gick inte att läsa in sökanvändargränssnittets sparade tillståndsdata. Fil: "%1". Fel: "%2" - - Search has failed - Det gick inte att söka + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Det gick inte att läsa in sparade sökresultat. Flik: "%1". Fil: "%2". Fel: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Det gick inte att spara sökanvändargränssnittets status. Fil: "%1". Fel: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Misslyckades med att spara sökresultat. Flik: "%1". Fil: "%2". Fel: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Det gick inte att läsa in historiken för sökanvändargränssnittet. Fil: "%1". Fel: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Misslyckades med att spara sökhistoriken. Fil: "%1". Fel: "%2" @@ -9206,34 +9700,34 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av - + Upload: Sändning: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Hämtning: - + Alternative speed limits Alternativa hastighetsgränser @@ -9417,7 +9911,7 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av Read cache hits: - Läscache träffar: + Läscache träffar: @@ -9425,32 +9919,32 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av Genomsnittlig kötid: - + Connected peers: Anslutna jämlikar: - + All-time share ratio: Alla tiders delningskvot: - + All-time download: Alla tiders hämtning: - + Session waste: Sessionsspill: - + All-time upload: Alla tiders sändning: - + Total buffer size: Total bufferstorlek: @@ -9462,22 +9956,22 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av Queued I/O jobs: - Köade in/ut-jobb: + Köade in/ut-jobb: - + Write cache overload: Överbelastad skrivcache: - + Read cache overload: Överbelastad läscache: Total queued size: - Total köstorlek: + Total köstorlek: @@ -9489,51 +9983,77 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av StatusBar - + Connection status: Anslutningsstatus: - - + + No direct connections. This may indicate network configuration problems. Inga direktanslutningar. Detta kan betyda problem med nätverkskonfigurationen. - - + + Free space: N/A + Ledigt utrymme: inte tillgängligt + + + + + External IP: N/A + Extern IP: N/A + + + + DHT: %1 nodes DHT: %1 noder - + qBittorrent needs to be restarted! qBittorrent behöver startas om! - - - + + + Connection Status: Anslutningsstatus: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Frånkopplad. Detta betyder oftast att qBittorrent inte kunde lyssna på den valda porten för inkommande anslutningar. - + Online Ansluten - + + Free space: + Ledigt utrymme: + + + + External IPs: %1, %2 + Externa IP: %1, %2 + + + + External IP: %1%2 + Extern IP: %1%2 + + + Click to switch to alternative speed limits Klicka för att växla till alternativa hastighetsgränser - + Click to switch to regular speed limits Klicka för att växla till vanliga hastighetsgränser @@ -9563,13 +10083,13 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av - Resumed (0) - Återupptagna (0) + Running (0) + Körs (0) - Paused (0) - Pausade (0) + Stopped (0) + Stoppad (0) @@ -9631,36 +10151,36 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av Completed (%1) Slutförda (%1) + + + Running (%1) + Körs (%1) + - Paused (%1) - Pausade (%1) + Stopped (%1) + Stoppad (%1) + + + + Start torrents + Starta torrenter + + + + Stop torrents + Stoppa torrenter Moving (%1) Flyttar (%1) - - - Resume torrents - Återuppta torrenter - - - - Pause torrents - Pausa torrenter - Remove torrents Ta bort torrenter - - - Resumed (%1) - Återupptagna (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Klicka på knappen "Sökinsticksmoduler..." längst ner till höger av Remove unused tags Ta bort oanvända taggar - - - Resume torrents - Återuppta torrenter - - - - Pause torrents - Pausa torrenter - Remove torrents Ta bort torrenter - - New Tag - Ny tagg + + Start torrents + Starta torrenter + + + + Stop torrents + Stoppa torrenter Tag: Tagg: + + + Add tag + Lägg till tagg + Invalid tag name @@ -9903,32 +10423,32 @@ Välj ett annat namn och försök igen. TorrentContentModel - + Name Namn - + Progress Förlopp - + Download Priority Hämtningsprioritet - + Remaining Återstår - + Availability Tillgänglighet - + Total Size Total storlek @@ -9973,98 +10493,98 @@ Välj ett annat namn och försök igen. TorrentContentWidget - + Rename error Fel vid namnändring - + Renaming Byter namn - + New name: Nytt namn: - + Column visibility Kolumnsynlighet - + Resize columns Ändra kolumnstorlek - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke dolda kolumner till storleken på dess innehåll - + Open Öppna - + Open containing folder Öppna innehållande mapp - + Rename... Byt namn... - + Priority Prioritet - - + + Do not download Hämta inte - + Normal Normal - + High Hög - + Maximum Högsta - + By shown file order Efter visad filordning - + Normal priority Normal prioritet - + High priority Hög prioritet - + Maximum priority Högsta prioritet - + Priority by shown file order Prioritet efter visad filordning @@ -10072,19 +10592,19 @@ Välj ett annat namn och försök igen. TorrentCreatorController - + Too many active tasks - + För många aktiva uppgifter - + Torrent creation is still unfinished. - + Torrentskapandet är fortfarande ofärdigställt. - + Torrent creation failed. - + Det gick inte att skapa en torrent. @@ -10111,13 +10631,13 @@ Välj ett annat namn och försök igen. - + Select file Välj fil - + Select folder Välj mapp @@ -10192,87 +10712,83 @@ Välj ett annat namn och försök igen. Fält - + You can separate tracker tiers / groups with an empty line. Du kan separera spårarnivåer / grupper med en tom rad. - + Web seed URLs: URL:er för webbdistribution: - + Tracker URLs: URL:er för spårare: - + Comments: Kommentarer: - + Source: Källa: - + Progress: Förlopp: - + Create Torrent Skapa torrent - - + + Torrent creation failed Det gick inte att skapa torrent - + Reason: Path to file/folder is not readable. Orsak: Sökväg till fil/mapp är inte läsbar. - + Select where to save the new torrent Välj var du vill spara den nya torrenten - + Torrent Files (*.torrent) Torrentfiler (*.torrent) - Reason: %1 - Orsak: %1 - - - + Add torrent to transfer list failed. Det gick inte att lägga till torrent till överföringslistan. - + Reason: "%1" Orsak: "%1" - + Add torrent failed Det gick inte att lägga till torrent - + Torrent creator Torrent-skaparen - + Torrent created: Torrent skapad: @@ -10280,32 +10796,32 @@ Välj ett annat namn och försök igen. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Det gick inte att läsa in konfigurationen för bevakade mappar. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Det gick inte att analysera konfigurationen för bevakade mappar från %1. Fel: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Det gick inte att läsa in konfigurationen för bevakade mappar från %1. Fel: "Ogiltigt dataformat." - + Couldn't store Watched Folders configuration to %1. Error: %2 Det gick inte att lagra konfigurationen av bevakade mappar till %1. Fel: %2 - + Watched folder Path cannot be empty. Sökvägen till bevakad mapp kan inte vara tom. - + Watched folder Path cannot be relative. Sökvägen till bevakad mapp kan inte vara relativ. @@ -10313,44 +10829,31 @@ Välj ett annat namn och försök igen. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Ogiltig magnet-URI. URI: %1. Orsak: %2 - + Magnet file too big. File: %1 Magnetfilen är för stor. Fil: %1 - + Failed to open magnet file: %1 Det gick inte att öppna magnetfilen: %1 - + Rejecting failed torrent file: %1 Avvisar misslyckad torrentfil: %1 - + Watching folder: "%1" Bevakar mapp: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Det gick inte att allokera minne vid läsning av filen. Fil: "%1". Fel: "%2" - - - - Invalid metadata - Ogiltig metadata - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Välj ett annat namn och försök igen. Använd en annan sökväg för ofullständig torrent - + Category: Kategori: - - Torrent speed limits - Torrenthastighetsgränser + + Torrent Share Limits + Torrentdelningsgränser - + Download: Hämtning: - - + + - - + + Torrent Speed Limits + Torrenthastighetsgränser + + + + KiB/s KiB/s - + These will not exceed the global limits De här kommer inte att överskrida de globala gränserna - + Upload: Sändning: - - Torrent share limits - Torrentdelningsgränser - - - - Use global share limit - Använd global delningsgräns - - - - Set no share limit - Ställ inte in delningsgräns - - - - Set share limit to - Ställ in delningsgräns till - - - - ratio - kvot - - - - total minutes - minuter totalt - - - - inactive minutes - minuter inaktiv - - - + Disable DHT for this torrent Inaktivera DHT för denna torrent - + Download in sequential order Hämta i sekventiell ordning - + Disable PeX for this torrent Inaktivera PeX för denna torrent - + Download first and last pieces first Hämta första och sista delarna först - + Disable LSD for this torrent Inaktivera LSD för denna torrent - + Currently used categories För närvarande använda kategorier - - + + Choose save path Välj sparsökväg - + Not applicable to private torrents Gäller inte privata torrenter - - - No share limit method selected - Inge delningsgränsmetod vald - - - - Please select a limit method first - Välj en gränsmetod först - TorrentShareLimitsWidget - - - + + + + Default - Standard + Standard + + + + + + Unlimited + Obegränsat - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Ställ in på + + + + Seeding time: + Distributionstid: + + + + + + + + min minutes - min + min - + Inactive seeding time: - + Inaktiv distributionstid: - + + Action when the limit is reached: + Åtgärd när gränsen nås: + + + + Stop torrent + Stoppa torrent + + + + Remove torrent + Ta bort torrent + + + + Remove torrent and its content + Ta bort torrenten och dess innehåll + + + + Enable super seeding for torrent + Aktivera superdistribution för torrent + + + Ratio: - + Kvot: @@ -10558,32 +11049,32 @@ Välj ett annat namn och försök igen. Torrenttaggar - - New Tag - Ny tagg + + Add tag + Lägg till tagg - + Tag: Tagg: - + Invalid tag name Ogiltigt taggnamn - + Tag name '%1' is invalid. Taggnamnet "%1" är ogiltigt. - + Tag exists Tagg finns - + Tag name already exists. Taggnamn finns redan. @@ -10591,115 +11082,130 @@ Välj ett annat namn och försök igen. TorrentsController - + Error: '%1' is not a valid torrent file. Fel: "%1" är inte en giltig torrentfil. - + Priority must be an integer Prioritet måste vara ett heltal - + Priority is not valid Prioritet är inte giltigt - + Torrent's metadata has not yet downloaded Torrentens metadata har inte hämtats ännu - + File IDs must be integers Fil-ID:n måste vara heltal - + File ID is not valid Fil-ID är inte giltigt - - - - + + + + Torrent queueing must be enabled Torrentkö måste aktiveras - - + + Save path cannot be empty Sparsökvägen kan inte vara tom - - + + Cannot create target directory Det går inte att skapa målmapp - - + + Category cannot be empty Kategorin kan inte vara tom - + Unable to create category Det går inte att skapa kategori - + Unable to edit category Det går inte att redigera kategori - + Unable to export torrent file. Error: %1 Det går inte att exportera torrentfil. Fel: %1 - + Cannot make save path Det går inte att skapa sparsökväg - + + "%1" is not a valid URL + "%1" är inte en giltig URL + + + + URL scheme must be one of [%1] + URL-schema måste vara ett av [%1] + + + 'sort' parameter is invalid parametern "sort" är ogiltig - + + "%1" is not an existing URL + "%1" är inte en giltig URL + + + "%1" is not a valid file index. "%1" är inte ett giltigt filindex. - + Index %1 is out of bounds. Index %1 är utanför gränserna. - - + + Cannot write to directory Kan inte skriva till mapp - + WebUI Set location: moving "%1", from "%2" to "%3" Webbgränssnitt platsinställning: flyttar "%1", från "%2" till "%3" - + Incorrect torrent name Felaktigt torrentnamn - - + + Incorrect category name Felaktigt kategorinamn @@ -10730,196 +11236,191 @@ Välj ett annat namn och försök igen. TrackerListModel - + Working Arbetar - + Disabled Inaktiverad - + Disabled for this torrent Inaktiverat för denna torrent - + This torrent is private Denna torrent är privat - + N/A Ingen - + Updating... Uppdaterar... - + Not working Fungerar inte - + Tracker error Spårarfel - + Unreachable Onåbar - + Not contacted yet Inte ännu kontaktad - - Invalid status! - Ogiltig status! - - - - URL/Announce endpoint - URL/annonseringsslutpunkt + + Invalid state! + Ogiltigt tillstånd! + URL/Announce Endpoint + Webbadress-/Annonseringsslutpunkt + + + + BT Protocol + BT-protokoll + + + + Next Announce + Nästa annonsering + + + + Min Announce + Minimal annonsering + + + Tier Nivå - - Protocol - Protokoll - - - + Status Status - + Peers Jämlikar - + Seeds Distributioner - + Leeches Reciprokörer - + Times Downloaded Gånger hämtad - + Message Meddelande - - - Next announce - Nästa annonsering - - - - Min announce - Minimal annonsering - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Denna torrent är privat - + Tracker editing Redigera spårare - + Tracker URL: Spårar-URL: - - + + Tracker editing failed Det gick inte att redigera spåraren - + The tracker URL entered is invalid. Den angivna spårarens URL är ogiltig. - + The tracker URL already exists. - Spårar-URL finns redan. + Spårar-URL finns redan. - + Edit tracker URL... Ändra spårar-URL... - + Remove tracker Ta bort spårare - + Copy tracker URL Kopiera URL för spårare - + Force reannounce to selected trackers Tvinga återannonsera till valda spårare - + Force reannounce to all trackers Tvinga återannonsera till alla spårare - + Resize columns Ändra storlek på kolumner - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke-dolda kolumner till storleken på deras innehåll - + Add trackers... Lägg till spårare... - + Column visibility Kolumnens synlighet @@ -10937,37 +11438,37 @@ Välj ett annat namn och försök igen. Lista över spårare att lägga till (en per rad): - + µTorrent compatible list URL: µTorrent kompatibel URL-lista: - + Download trackers list Hämta spårarlista - + Add Lägg till - + Trackers list URL error URL-fel för spårarlistan - + The trackers list URL cannot be empty Spårarlistans URL kan inte vara tom - + Download trackers list error Fel vid hämtning av spårarlista - + Error occurred when downloading the trackers list. Reason: "%1" Ett fel uppstod vid hämtning av spårarlistan. Orsak: "%1" @@ -10975,62 +11476,62 @@ Välj ett annat namn och försök igen. TrackersFilterWidget - + Warning (%1) Varning (%1) - + Trackerless (%1) Utan spårare (%1) - + Tracker error (%1) Spårarfel (%1) - + Other error (%1) Annat fel (%1) - + Remove tracker Ta bort spårare - - Resume torrents - Återuppta torrenter + + Start torrents + Starta torrenter - - Pause torrents - Pausa torrenter + + Stop torrents + Stoppa torrenter - + Remove torrents Ta bort torrenter - + Removal confirmation Borttagningsbekräftelse - + Are you sure you want to remove tracker "%1" from all torrents? Är du säker på att du vill ta bort spåraren "%1" från alla torrenter? - + Don't ask me again. Fråga mig inte igen. - + All (%1) this is for the tracker filter Alla (%1) @@ -11039,7 +11540,7 @@ Välj ett annat namn och försök igen. TransferController - + 'mode': invalid argument "mode": ogiltigt argument @@ -11131,11 +11632,6 @@ Välj ett annat namn och försök igen. 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. Kontrollerar återupptagningsdata - - - Paused - Pausad - Completed @@ -11159,220 +11655,252 @@ Välj ett annat namn och försök igen. Felaktiga - + Name i.e: torrent name Namn - + Size i.e: torrent size Storlek - + Progress % Done Förlopp - + + Stopped + Stoppad + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Status - + Seeds i.e. full sources (often untranslated) Distributioner - + Peers i.e. partial sources (often untranslated) Jämlikar - + Down Speed i.e: Download speed Hämtningshastighet - + Up Speed i.e: Upload speed Sändninghastighet - + Ratio Share ratio Kvot - + + Popularity + Popularitet + + + ETA i.e: Estimated Time of Arrival / Time left Slutförs - + Category Kategori - + Tags Taggar - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Tillagd - + Completed On Torrent was completed on 01/01/2010 08:00 Slutfördes - + Tracker Spårare - + Down Limit i.e: Download limit Hämtningsgräns - + Up Limit i.e: Upload limit Sändningsgräns - + Downloaded Amount of data downloaded (e.g. in MB) Hämtat - + Uploaded Amount of data uploaded (e.g. in MB) Skickat - + Session Download Amount of data downloaded since program open (e.g. in MB) Hämtat denna session - + Session Upload Amount of data uploaded since program open (e.g. in MB) Skickat denna session - + Remaining Amount of data left to download (e.g. in MB) Återstår - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Tid aktiv - + + Yes + Ja + + + + No + Nej + + + Save Path Torrent save path Sparsökväg - + Incomplete Save Path Torrent incomplete save path Ofullständig sparsökväg - + Completed Amount of data completed (e.g. in MB) Klar - + Ratio Limit Upload share ratio limit Kvotgräns - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Senast sedd fullständig - + Last Activity Time passed since a chunk was downloaded/uploaded Senaste aktivitet - + Total Size i.e. Size including unwanted data Total storlek - + Availability The number of distributed copies of the torrent Tillgänglighet - + Info Hash v1 i.e: torrent info hash v1 Info-hash v1 - + Info Hash v2 i.e: torrent info hash v2 Info-hash v2 - + Reannounce In Indicates the time until next trackers reannounce Återannonsera om - - + + Private + Flags private torrents + Privat + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Förhållande / Aktiv tid (i månader), indikerar hur populär torrenten är + + + + + N/A Ingen - + %1 ago e.g.: 1h 20m ago %1 sedan - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (distribuerad i %2) @@ -11381,339 +11909,319 @@ Välj ett annat namn och försök igen. TransferListWidget - + Column visibility Kolumnsynlighet - + Recheck confirmation Bekräftelse på återkontroll - + Are you sure you want to recheck the selected torrent(s)? Är du säker på att du vill kontrollera den valda torrenten/de valda torrenterna igen? - + Rename Byt namn - + New name: Nytt namn: - + Choose save path Välj sparsökväg - - Confirm pause - Bekräfta paus - - - - Would you like to pause all torrents? - Vill du pausa alla torrenter? - - - - Confirm resume - Bekräfta återuppta - - - - Would you like to resume all torrents? - Vill du återuppta alla torrenter? - - - + Unable to preview Det går inte att förhandsgranska - + The selected torrent "%1" does not contain previewable files Den valda torrenten "%1" innehåller inte förhandsgranskningsbara filer - + Resize columns Ändra storlek på kolumner - + Resize all non-hidden columns to the size of their contents Ändra storlek på alla icke-dolda kolumner till storleken på deras innehåll - + Enable automatic torrent management Aktivera automatisk torrenthantering - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Är du säker på att du vill aktivera automatisk torrenthantering för de valda torrenterna? De kan komma att flyttas. - - Add Tags - Lägg till taggar - - - + Choose folder to save exported .torrent files Välj mapp för att spara exporterade .torrent-filer - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Det gick inte att exportera .torrent-fil. Torrent: "%1". Sparsökväg: "%2". Orsak: "%3" - + A file with the same name already exists En fil med samma namn finns redan - + Export .torrent file error Exportera .torrent-filfel - + Remove All Tags Ta bort alla taggar - + Remove all tags from selected torrents? Ta bort alla taggar från valda torrenter? - + Comma-separated tags: Kommaseparerade taggar: - + Invalid tag Ogiltig tagg - + Tag name: '%1' is invalid Taggnamn: "%1" är ogiltig - - &Resume - Resume/start the torrent - &Återuppta - - - - &Pause - Pause the torrent - &Pausa - - - - Force Resu&me - Force Resume/start the torrent - Tvinga åter&uppta - - - + Pre&view file... Förhands&granska fil... - + Torrent &options... Torrent&alternativ... - + Open destination &folder Öppna destinations&mapp - + Move &up i.e. move up in the queue Flytta &upp - + Move &down i.e. Move down in the queue Flytta &ner - + Move to &top i.e. Move to top of the queue Flytta &överst - + Move to &bottom i.e. Move to bottom of the queue Flytta &nederst - + Set loc&ation... Ange pl&ats... - + Force rec&heck Tvinga åter&kontroll - + Force r&eannounce Tvinga åt&erannonsera - + &Magnet link &Magnetlänk - + Torrent &ID Torrent-&ID - + &Comment &Kommentar - + &Name &Namn - + Info &hash v1 - Info&hash v1 + Info-&hash v1 - + Info h&ash v2 Info-h&ash v2 - + Re&name... Byt &namn... - + Edit trac&kers... Redigera spå&rare... - + E&xport .torrent... E&xportera .torrent... - + Categor&y Kategor&i - + &New... New category... &Ny... - + &Reset Reset category &Återställ - + Ta&gs Ta&ggar - + &Add... Add / assign multiple tags... &Lägg till... - + &Remove All Remove all tags &Ta bort alla - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Det går inte att tvinga återannonsering om torrenten är Stoppad/Köad/Felaktig/Kontrolleras + + + &Queue &Kö - + &Copy &Kopiera - + Exported torrent is not necessarily the same as the imported Exporterad torrent är inte nödvändigtvis densamma som den importerade - + Download in sequential order Hämta i sekventiell ordning - + + Add tags + Lägg till taggar + + + Errors occurred when exporting .torrent files. Check execution log for details. Fel uppstod vid export av .torrent-filer. Kontrollera exekveringsloggen för detaljer. - + + &Start + Resume/start the torrent + &Starta + + + + Sto&p + Stop the torrent + Sto&ppa + + + + Force Star&t + Force Resume/start the torrent + Tvinga star&t + + + &Remove Remove the torrent &Ta bort - + Download first and last pieces first Hämta första och sista delarna först - + Automatic Torrent Management Automatisk torrenthantering - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Automatiskt läge innebär att olika torrentegenskaper (t.ex. sparsökväg) kommer att avgöras av den tillhörande kategorin - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Kan inte framtvinga återannonsering om torrent är pausad/köad/fellerar/kontrollerar - - - + Super seeding mode Superdistributionsläge @@ -11758,28 +12266,28 @@ Välj ett annat namn och försök igen. Ikon-ID - + UI Theme Configuration. Användargränssnittets temakonfiguration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Ändringarna av användargränssnittets tema kunde inte tillämpas fullt ut. Detaljerna finns i loggen. - + Couldn't save UI Theme configuration. Reason: %1 Det gick inte att spara konfigurationen av användargränssnittstema. Orsak: %1 - - + + Couldn't remove icon file. File: %1. Det gick inte att ta bort ikonfilen. Fil: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Det gick inte att kopiera ikonfilen. Källa: %1. Destination: %2. @@ -11787,7 +12295,12 @@ Välj ett annat namn och försök igen. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Det gick inte att ange appstil. Okänd stil: "%1" + + + Failed to load UI theme from file: "%1" Det gick inte att läsa in gränssnittstema från fil: "%1" @@ -11818,20 +12331,21 @@ Välj ett annat namn och försök igen. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Det gick inte att migrera inställningar: Webbgränssnitt-https, fil: "%1", fel: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Migrera inställningar: Webbgränssnitt-https, exporterade data till fil: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Ogiltigt värde hittades i konfigurationsfilen, återställer det till standard. Nyckel: "%1". Ogiltigt värde: "%2". @@ -11839,32 +12353,32 @@ Välj ett annat namn och försök igen. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Hittade körbar Python. Namn: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". Det gick inte att hitta körbar Python. Sökväg: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Det gick inte att hitta `python3` körbar i PATH-miljövariabel. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Det gick inte att hitta `python` körbar i PATH-miljövariabel. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Det gick inte att hitta körbar `python` i Windows-registret. - + Failed to find Python executable Det gick inte att hitta körbar Python @@ -11956,72 +12470,72 @@ Välj ett annat namn och försök igen. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Oacceptabelt sessionscookienamn är specificerat: "%1". Standard används. - + Unacceptable file type, only regular file is allowed. Oacceptabel filtyp, endast vanlig fil är tillåten. - + Symlinks inside alternative UI folder are forbidden. Symlinks i alternativa mappen för användargränssnittet är förbjudna. - + Using built-in WebUI. Använder inbyggt webbanvändargränssnittet. - + Using custom WebUI. Location: "%1". Använder anpassat webbanvändargränssnitt. Plats: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Webbanvändargränssnittsöversättning för valt språk (%1) har lästs in. - + Couldn't load WebUI translation for selected locale (%1). Det gick inte att läsa in webbgränssnittsöversättning för valt språk (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Saknar ":" avskiljare i WebUI anpassad HTTP-rubrik: "%1" - + Web server error. %1 Webbserverfel. %1 - + Web server error. Unknown error. Webbserverfel. Okänt fel. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Webbgränssnitt: Ursprungsrubrik & målursprung obalans! Käll-IP: "%1". Ursprungsrubrik: "%2". Målursprung: "%3" - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Webbgränssnitt: Referensrubrik & målursprung obalans! Käll-IP: "%1". Referensrubrik: "%2". Målursprung: "%3" - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Webbgränssnitt: Ogiltig värdrubrik, port felmatchning. Begär käll-IP: "%1". Serverport: "%2". Mottagen värdrubrik: "%3" - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Webbgränssnitt: Ogiltig värdrubrik. Begär käll-IP: "%1". Mottagen värdrubrik: "%2" @@ -12029,125 +12543,133 @@ Välj ett annat namn och försök igen. WebUI - + Credentials are not set Inloggningsuppgifter är inte inställda - + WebUI: HTTPS setup successful Webbanvändargränssnitt: HTTPS-installationen lyckades - + WebUI: HTTPS setup failed, fallback to HTTP Webbanvändargränssnitt: HTTPS-installationen misslyckades, återgång till HTTP - + WebUI: Now listening on IP: %1, port: %2 Webbanvändargränssnitt: Lyssnar nu på IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 - Det gick inte att binda till IP: %1, port: %2. Orsak: %3 + Det går inte att binda till IP: %1, port: %2. Orsak: %3 + + + + fs + + + Unknown error + Okänt fel misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 min - + %1h %2m e.g: 3 hours 5 minutes %1h %2m - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1å %2d - - + + 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 slutförda. - + < 1m < 1 minute < 1 min diff --git a/src/lang/qbittorrent_th.ts b/src/lang/qbittorrent_th.ts index 00ab4c5cb..c5bac7824 100644 --- a/src/lang/qbittorrent_th.ts +++ b/src/lang/qbittorrent_th.ts @@ -14,87 +14,87 @@ เกี่ยวกับ - + Authors ผู้พัฒนาโปรแกรม - + Current maintainer ผู้ดูแลขณะนี้ - + Greece กรีซ - - + + Nationality: สัญชาติ - - + + E-mail: อีเมล - - + + Name: ชื่อ - + Original author ผู้พัฒนาดั้งเดิม - + France ฝรั่งเศส - + Special Thanks ขอขอบคุณเป็นพิเศษ - + Translators ทีมนักแปล - + License ลิขสิทธิ์ - + Software Used ซอฟต์แวร์ที่ใช้ - + qBittorrent was built with the following libraries: qBittorrent สร้างมาจากไลบรารี่เหล่านี้ - + Copy to clipboard - + คัดลอกไปยังคลิปบอร์ด An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar. - โปรแกรมบิตทอร์เรนต์ขั้นสูงถูกสร้างด้วยโปรแกรมภาษา C++, ขึ้นกับชุดเครื่องมือ Qt และ libtorrent-rasterbar + ไคลเอนต์ BitTorrent ระดับสูง ที่เขียนด้วยภาษา C++ โดยใช้ Qt toolkit และ libtorrent-rasterbar เป็นพื้นฐาน - Copyright %1 2006-2024 The qBittorrent project - สงวนลิขสิทธิ์ %1 2006-2024 โครงการ qBittorrent + Copyright %1 2006-2025 The qBittorrent project + ลิขสิทธิ์ %1 2006-2025 โครงการ qBittorrent @@ -109,12 +109,12 @@ Bug Tracker: - ติดตามบั๊ค: + ระบบติดตามบั๊ก The free IP to Country Lite database by DB-IP is used for resolving the countries of peers. The database is licensed under the Creative Commons Attribution 4.0 International License - ฐานข้อมูล IP to Country Lite ฟรีโดย DB-IP ใช้สำหรับแก้ไขประเทศของเพียร์. ฐานข้อมูลได้รับอนุญาตภายใต้ Creative Commons Attribution 4.0 International License + ฐานข้อมูล IP to Country Lite ฟรี จาก DB-IP ถูกใช้สำหรับแก้ไขประเทศของเพียร์ ฐานข้อมูลนี้ได้รับอนุญาตภายใต้ Creative Commons Attribution 4.0 International License @@ -123,7 +123,7 @@ The old path is invalid: '%1'. - เส้นทางเก่าไม่ถูกต้อง: '%1' + เส้นทางเดิมไม่ถูกต้อง: '%1'. @@ -140,7 +140,7 @@ The file already exists: '%1'. - ไฟล์มีอยู่แล้ว: '%1' + ไฟล์นี้มีอยู่แล้ว: '%1'. @@ -166,15 +166,10 @@ บันทึกที่ - + Never show again ไม่ต้องแสดงอีก - - - Torrent settings - การตั้งค่าทอร์เรนต์ - Set as default category @@ -191,34 +186,39 @@ เริ่มทอร์เรนต์ - + Torrent information ข้อมูลทอเรนต์ - + Skip hash check ข้ามการตรวจสอบแฮช Use another path for incomplete torrent - ใช้เส้นทางอื่นสำหรับ torrent ที่ไม่สมบูรณ์ + ใช้เส้นทางอื่นสำหรับโหลด Torrent ที่ไม่สมบูรณ์ + + + + Torrent options + Tags: - + แท็ก: Click [...] button to add/remove tags. - + คลิกปุ่ม [...] เพื่อเพิ่ม/ลบแท็ก Add/remove tags - + เพิ่ม/ลบแท็ก @@ -228,78 +228,78 @@ Stop condition: - เงื่อนไขการหยุด + เงื่อนไขการสิ้นสุด - - + + None ไม่มี - - + + Metadata received - ข้อมูลรับ Metadata + ได้รับข้อมูล Metadata - + Torrents that have metadata initially will be added as stopped. - + โทเรนต์ที่มีข้อมูล Metadata ตั้งแต่แรกจะถูกเพิ่มในสถานะหยุด - - + + Files checked - ไฟล์ตรวจสอบแล้ว + ตรวจสอบไฟล์แล้ว - + Add to top of queue - เลื่อนเป็นคิวแรกสุด + เพิ่มเป็นคิวแรกสุด - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + เมื่อตรวจสอบแล้ว ไฟล์ .torrent จะไม่ถูกลบ ไม่ว่าจะตั้งค่าอย่างไรในหน้า "ดาวน์โหลด" ของกล่อง "ตัวเลือก" - + Content layout: - เลย์เอาต์เนื้อหา: + การจัดวางเนื้อหา: - + Original ต้นฉบับ - + Create subfolder สร้างโฟลเดอร์ย่อย - + Don't create subfolder ไม่ต้องสร้างโฟลเดอร์ย่อย - + Info hash v1: - ข้อมูลแฮช v1: + ข้อมูล hash v1: - + Size: ขนาด: - + Comment: ความคิดเห็น: - + Date: วันที่: @@ -311,165 +311,165 @@ Automatic mode means that various torrent properties(eg save path) will be decided by the associated category - โหมดออโต้ช่วยให้คุณสมบัติต่างๆของทอเรนต์(เช่น ที่บันทึก) ให้เลือกตามหมวดหมู่ + โหมดออโต้ช่วยให้คุณสมบัติต่างๆของทอเรนต์(เช่น ที่บันทึก) จะถูกเปลี่ยนไปเลือกตามหมวดหมู่ Manual - จัดการเอง + แบบแมนนวล Automatic - อัตโนมัติ + แบบอัตโนมัติ Remember last used save path - จำเส้นทางที่ใช้ล่าสุด + จำตำแหน่งเส้นทางที่ใช้ล่าสุด - + Do not delete .torrent file ไม่ต้องลบไฟล์ .torrent - + Download in sequential order ดาวน์โหลดตามลำดับ - + Download first and last pieces first ดาวน์โหลดเป็นอันดับแรก และชิ้นสุดท้ายก่อน - + Info hash v2: - ข้อมูลแฮช v2: + ข้อมูล hash v2: - + Select All เลือกทั้งหมด - + Select None ไม่เลือกทั้งหมด - + Save as .torrent file... บันทึกเป็นไฟล์ .torrent - + I/O Error ข้อมูลรับส่งผิดพลาด - + Not Available This comment is unavailable ไม่สามารถใช้ได้ - + Not Available This date is unavailable ไม่สามารถใช้ได้ - + Not available ไม่สามารถใช้ได้ - + Magnet link magnet link - + Retrieving metadata... กำลังดึงข้อมูล - - + + Choose save path เลือกที่บันทึก - + No stop condition is set. ไม่มีการตั้งเงื่อนไขการหยุด - + Torrent will stop after metadata is received. ทอเร้นต์หยุดเมื่อได้รับข้อมูล metadata - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A N/A - + %1 (Free space on disk: %2) %1 (พื้นที่เหลือบนไดรฟ์: %2) - + Not available This size is unavailable. ไม่สามารถใช้งานได้ - + Torrent file (*%1) ไฟล์ทอร์เรนต์ (*%1) - + Save as torrent file บันทึกเป็นไฟล์ทอร์เรนต์ - + Couldn't export torrent metadata file '%1'. Reason: %2. ไม่สามารถส่งออกไฟล์ข้อมูลเมตาของทอร์เรนต์ '%1' เหตุผล: %2 - + Cannot create v2 torrent until its data is fully downloaded. ไม่สามารถสร้าง v2 ทอร์เรนต์ ได้จนกว่าข้อมูลจะดาวน์โหลดจนเต็ม. - + Filter files... คัดกรองไฟล์... - + Parsing metadata... กำลังแปลข้อมูล - + Metadata retrieval complete ดึงข้อมูลเสร็จสมบูรณ์ @@ -477,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -532,7 +532,7 @@ Note: the current defaults are displayed for reference. - + หมายเหตุ: ค่าเริ่มต้นที่เห็นอยู่นี้เป็นเพียงตัวอย่างเปรียบเทียบเท่านั้น @@ -547,17 +547,17 @@ Tags: - + แท็ก: Click [...] button to add/remove tags. - + คลิกปุ่ม [...] เพื่อเพิ่มหรือลบแท็ก Add/remove tags - + เพิ่ม/ลบแท็ก @@ -567,7 +567,7 @@ Start torrent: - + เริ่มทอร์เรนต์ @@ -582,7 +582,7 @@ Add to top of queue: - + เพิ่มไปยังข้างบนสุดของคิว @@ -592,7 +592,7 @@ Torrent share limits - จำกัดการแชร์ทอร์เรนต์ + จำกัดการแชร์ทอร์เรนต์ @@ -668,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB เมบิไบต์ - + Recheck torrents on completion ตรวจทอเร้นอีกครั้งเมื่อเสร็จสมบูรณ์ - - + + ms milliseconds มิลลิเซกันด์ - + Setting ตั้งค่า - + Value Value set for this setting มูลค่า - + (disabled) (ปิดการใช้งานแล้ว) - + (auto) (ออโต้) - + + min minutes นาที - + All addresses ที่อยู่ทั้งหมด - + qBittorrent Section ส่วนของ qBittorrent - - + + Open documentation เปิดเอกสาร - + All IPv4 addresses ที่อยู่ IPv4 ทั้งหมด - + All IPv6 addresses ที่อยู่ IPv6 ทั้งหมด - + libtorrent Section ส่วน libtorrent - + Fastresume files ไฟล์ประวัติด่วน - + SQLite database (experimental) ฐานข้อมูล SQLite (ทดลอง) - + Resume data storage type (requires restart) ประเภทการจัดเก็บข้อมูลต่อ (ต้องรีสตาร์ท) - + Normal ปกติ - + Below normal ต่ำกว่าปกติ - + Medium ปานกลาง - + Low ช้า - + Very low ช้ามาก - + Physical memory (RAM) usage limit จำกัดการใช้งานหน่วยความจำ (RAM) - + Asynchronous I/O threads เธรดไม่ตรงกัน I/O - + Hashing threads แฮชเธรด - + File pool size ขนาดไฟล์ Pool - + Outstanding memory when checking torrents ความสำคัญของหน่วยความจำเมื่อตรวจสอบ Torrents - + Disk cache ดิสก์แคช - - - - + + + + + s seconds s - + Disk cache expiry interval แคชดิสก์หมดอายุ - + Disk queue size ขนาดลำดับของดิสก์ - - + + Enable OS cache เปิดใช้งาน OS แคช - + Coalesce reads & writes เชื่อมต่อการ อ่านและการเขียน - + Use piece extent affinity ใช้งานความสัมพันธ์ของชิ้นส่วน - + Send upload piece suggestions ส่งคำแนะนำชิ้นส่วนที่อัปโหลด - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB กิบิไบต์ - + (infinite) - + (system default) - + + Delete files permanently + ลบไฟล์ถาวร + + + + Move files to trash (if possible) + ย้่ายไฟล์ไปยังถังขยะ (หากทำได้) + + + + Torrent content removing mode + + + + This option is less effective on Linux ตัวเลือกนี้มีผลน้อยบนระบบลีนุกซ์ - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default ค่าเริ่มต้น - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache ยกเลิกแคชระบบปฏิบัติการ - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark ส่งลายน้ำบัฟเฟอร์ - + Send buffer low watermark ส่งบัฟเฟอร์ลายน้ำต่ำ - + Send buffer watermark factor ส่งส่วนประกอบลายน้ำบัฟเฟอร์ - + Outgoing connections per second การเชื่อมต่อขาออกต่อวินาที - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size ขนาดแบ็คล็อกของซ็อกเก็ต - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers ประเภทของบริการ (ToS) สำหรับการเชื่อมต่อกับเพียร์ - + Prefer TCP เสนอ TCP - + Peer proportional (throttles TCP) สัดส่วนเพียร์ (ควบคุมปริมาณ TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) รองรับชื่อโดเมนสากล (IDN) - + Allow multiple connections from the same IP address อนุญาตให้ใช้การเชื่อมต่อจากหลาย ๆ ที่อยู่ IP - + Validate HTTPS tracker certificates ติดตามตรวจสอบใบอนุญาต HTTPS - + Server-side request forgery (SSRF) mitigation การลดการร้องขอทางฝั่งเซิร์ฟเวอร์ (SSRF) - + Disallow connection to peers on privileged ports ปฏิเสธิการเชื่อมต่อไปเพียร์บนพอร์ตที่มีสิทธิพิเศษ - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates - + Refresh interval ระยะรอบการรีเฟรช - + Resolve peer host names แก้ไขชื่อโฮสต์เพียร์ - + IP address reported to trackers (requires restart) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed ประกาศให้ผู้ติดตามทุกคนทราบอีกครั้งเมื่อ IP หรือ พอร์ต มีการเปลี่ยนแปลง - + Enable icons in menus เปิดใช้งานไอคอนในเมนู - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - เปอร์เซ็นต์การหมุนเวียนของเพียร์ยกเลิกการเชื่อมต่อ - - - - Peer turnover threshold percentage - เปอร์เซ็นต์การหมุนเวียนของเพียร์ - - - - Peer turnover disconnect interval - ช่วงเวลาตัดการเชื่อมต่อการหมุนเวียนของเพียร์ - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + วินาที + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + เปอร์เซ็นต์การหมุนเวียนของเพียร์ยกเลิกการเชื่อมต่อ + + + + Peer turnover threshold percentage + เปอร์เซ็นต์การหมุนเวียนของเพียร์ + + + + Peer turnover disconnect interval + ช่วงเวลาตัดการเชื่อมต่อการหมุนเวียนของเพียร์ + + + + Resets to default if empty + รีเซ็ตเป็นค่าเริ่มต้นหากว่างเปล่า + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications หน้าจอแสดงการแจ้งเตือน - + Display notifications for added torrents หน้าจอการแจ้งเตือนสำหรับการเพิ่ม torrent - + Download tracker's favicon ติดตามการดาวน์โหลด favicon - + Save path history length บันทึกประวัติเส้นทาง - + Enable speed graphs เปิดใช้งานกราฟความเร็ว - + Fixed slots สล็อตคงที่ - + Upload rate based อัตราการอัพโหลด - + Upload slots behavior อัปโหลดพฤติกรรมสล็อต - + Round-robin รอบ-โรบิน - + Fastest upload อัพโหลดเร็วที่สุด - + Anti-leech ต่อต้าน-leech - + Upload choking algorithm อัปโหลดอัลกอริทึม - + Confirm torrent recheck ยืนยันการตรวจสอบ Torrent อีกครั้ง - + Confirm removal of all tags ยืนยันการลบแท็กทั้งหมด - + Always announce to all trackers in a tier ประกาศต่อผู้ติดตามทุกคน - + Always announce to all tiers ประกาศทุกระดับ - + Any interface i.e. Any network interface ทุก ๆ หน้าตา - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP ผสมโหมดอัลกอริทึม - + Resolve peer countries แก้ไขประเทศของเพียร์ - + Network interface โครงข่ายเชื่อมต่อ - + Optional IP address to bind to ที่อยู่ IP ไม่จำเป็น - + Max concurrent HTTP announces ประกาซใช้ HTTP พร้อมกันสูงสุด - + Enable embedded tracker เปิดใช้งานตัวติดตามแบบฝัง - + Embedded tracker port พอร์ตติดตามแบบฝัง + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 ทำงานในโหมดพกพา. ตรวจพบโฟลเดอร์โปรไฟล์โดยอัตโนมัติที่: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. ตรวจพบตัวบ่งชี้คำสั่งซ้ำซ้อน: "%1". โหมดพกพาย่อที่รวดเร็ว. - + Using config directory: %1 ใช้การกำหนดค่าไดเร็กทอรี: %1 - + 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. - + Torrent: %1, sending mail notification Torrent: %1, กำลังส่งจดหมายแจ้งเตือน - + Add torrent failed - + เพิ่มทอร์เรนต์ล้มเหลว - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + ดาวน์โหลดทอร์เรนต์ "%1" สำเร็จแล้ว - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + กำลังโหลดทอร์เรนต์... - + E&xit อ&อก - + I/O Error i.e: Input/Output Error ข้อมูลรับส่งผิดพลาด - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1433,100 +1533,110 @@ เหตุผล: %2 - + Torrent added เพิ่มไฟล์ทอเร้นต์แล้ว - + '%1' was added. e.g: xxx.avi was added. '%1' เพิ่มแล้ว - + Download completed ดาวน์โหลดเสร็จสิ้น - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' ดาวน์โหลดเสร็จแล้ว - + Information ข้อมูล - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit ออก - + Recursive download confirmation ยืนยันการดาวน์โหลดซ้ำ - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never ไม่เลย - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + กำลังปิด qBittorrent... - + Saving torrent progress... กำลังบันทึก Torrent - + qBittorrent is now ready to exit @@ -1605,12 +1715,12 @@ - + Must Not Contain: ต้องไม่มี: - + Episode Filter: ตัวกรองตอน: @@ -1663,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &นำออก... - + 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 หมายเลขซีซันเป็นค่าบังคับที่ไม่ใช่ศูนย์ - + 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 of ซีซันแรก - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one ช่วงปกติ: <b>1x25-40;</b> ตรงกับตอน 25 ผ่าน 40 of ซีซันแรก - + Episode number is a mandatory positive value หมายเลขตอนต้องเป็นค่าบวก - + Rules กฏ - + Rules (legacy) กฏ (สมบัติ) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons ช่วงไม่มีที่สิ้นสุด: <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 ยืนยันการลบกฏ - + Invalid action การดำเนินการไม่ถูกต้อง - + The list is empty, there is nothing to export. รายการว่างเปล่าไม่มีอะไรจะส่งออก - + Export RSS rules ส่งออกกฏ RSS - + I/O Error I/O ล้มเหลว - + Failed to create the destination file. Reason: %1 สร้างไฟล์ปลายทางไม่สำเร็จ. เหตุผลคือ: %1 - + Import RSS rules นำเข้ากฏ RSS - + Failed to import the selected rules file. Reason: %1 ไม่สามารถนำเข้าไฟล์กฏที่เลือก. เหตุผล: %1 - + Add new rule... เพิ่มกฏใหม่... - + Delete rule ลบกฏ - + Rename rule... เปลี่ยนชื่อกฏ... - + Delete selected rules ลบกฏที่เลือก - + Clear downloaded episodes... ล้างตอนที่ดาวน์โหลด... - + Rule renaming การเปลี่ยนชื่อกฎ - + Please type the new rule name กรุณาพิมพ์ชื่อกฏใหม่ - + Clear downloaded episodes ล้างตอนที่ดาวน์โหลด - + Are you sure you want to clear the list of downloaded episodes for the selected rule? คุณมั่นใจหรือว่าจะทำการล้างรายชื่อการดาวน์โหลดตอนที่เลือก? - + Regex mode: use Perl-compatible regular expressions โหมด Regex: ใช้ Perl-เข้ากันได้ แสดงความคิดปกติ - - + + Position %1: %2 ตำแหน่ง %1: %2 - + Wildcard mode: you can use โหมดสัญลักษณ์แทน: คุณสามารถใช้ได้ - - + + Import error - + นำเข้าล้มเหลว - + Failed to read the file. %1 - + ? to match any single character ? เพื่อจับคู่อักขระเดี่ยวใด ๆ - + * to match zero or more of any characters * เพื่อจับคู่อักขระใด ๆ เป็นศูนย์หรือมากกว่า - + Whitespaces count as AND operators (all words, any order) ช่องว่างนับเป็นและเป็นตัวดำเนินการ (ทุกคำใด ๆ ) - + | is used as OR operator | ใช้เป็นตัวดำเนินการ OR - + If word order is important use * instead of whitespace. หากลำดับคำมีความสำคัญให้ใช้ * แทนช่องว่าง - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) การแสดงออกด้วยความว่างเปล่า %1 clause (เช่น %2) - + will match all articles. จะตรงกับบทความทั้งหมด - + will exclude all articles. จะไม่รวมบทความทั้งหมด @@ -1961,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" ไม่สามารถสร้างโฟลเดอร์งานต่อของทอร์เรนต์: "%1" @@ -1971,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. ไม่สามารถบันทึกข้อมูลเมตาของทอร์เรนต์ไปที่ '%1'. ข้อผิดพลาด: %2 - + Couldn't save torrent resume data to '%1'. Error: %2. ไม่สามารถบันทึกข้อมูลการทำงานต่อของทอร์เรนต์ไปที่ '%1'. ข้อผิดพลาด: %2 @@ -2003,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 ไม่สามารถบันทึกข้อมูลไปที่ '%1'. ข้อผิดพลาด: %2 @@ -2020,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. ไม่พบ. - + Couldn't load resume data of torrent '%1'. Error: %2 ไม่สามารถโหลดข้อมูลประวัติของทอร์เรนต์ '%1'. ข้อผิดพลาด: %2 - - + + Database is corrupted. ฐานข้อมูลล้มเหลว - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2059,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. ไม่สามารถบันทึกข้อมูลเมตาของทอร์เรนต์. ข้อผิดพลาด: %1 - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2082,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON เปิด - - - - - - - - - + + + + + + + + + OFF ปิด - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - + โหมดไม่แสดงตัวตน: %1 - - + + Encryption support: %1 - - + + FORCED บังคับอยู่ - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - + ทอร์เรนต์ "%1" - - - - Removed torrent. - ทอเร้นต์ลบแล้ว - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - หยุดชั่วคราว - - - - - + Super seeding enabled. - + โหมดซูเปอร์ซีดดิงเปิดใช้งานอยู่ - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + กู้คืนทอร์เรนต์แล้ว ทอร์เรนต์: "%1" - + Added new torrent. Torrent: "%1" - + เพิ่มทอร์เรนต์ใหม่แล้ว ทอร์เรนต์: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" - - - - - Removed torrent and deleted its content. Torrent: "%1" - - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. ตัวกรอง IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 ข้อจำกัดโหมดผสม - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 ปิดใช้งาน - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 ปิดใช้งาน - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" @@ -2548,13 +2737,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted ยกเลิกการดำเนินการ - - + + Create new torrent file failed. Reason: %1. สร้างไฟล์ทอร์เรนต์ใหม่ล้มเหลว. เหตุผล: %1 @@ -2562,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 ไม่สามารถเพิ่มเพียร์ "%1" ไปยังทอร์เรนต์ "%2". เหตุผล: %3 - + Peer "%1" is added to torrent "%2" เพิ่มเพียร์ "%1" ในทอร์เรนต์ "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' ดาวน์โหลดชิ้นแรกและชิ้นสุดท้ายก่อน: %1, ทอร์เรนต์: '%2' - + On เปิด - + Off ปิด - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" ไฟล์ประวัติล้มเหลว. Torrent: "%1", ไฟล์: "%2", เหตุผล: "%3" - + Performance alert: %1. More info: %2 @@ -2643,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: การใช้งาน: - + [options] [(<filename> | <url>)...] - + Options: ตัวเลือก: - + Display program version and exit - + Display this help message and exit - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + + + + Confirm the legal notice - - + + port พอร์ต - + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name ชื่อ - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path เส้นทาง - + Torrent save path - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check ข้ามการตรวจสอบแฮช - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first ดาวน์โหลดชิ้นแรกและชิ้นสุดท้ายก่อน - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help ช่วยเหลือ @@ -2877,12 +3066,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - ดำเนินการทอร์เรนต์ต่อ + Start torrents + เริ่มทอร์เรนต์ - Pause torrents + Stop torrents หยุดทอร์เรนต์ @@ -2894,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset รีเซ็ต + + + System + + CookiesDialog @@ -2943,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2956,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2966,7 +3160,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Remove torrent(s) - + ลบทอร์เรนต์ @@ -2975,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove ลบ @@ -3004,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ดาวน์โหลดจาก URLs - + Add torrent links เพิ่มลิงก์ทอร์เรนต์ - + One link per line (HTTP links, Magnet links and info-hashes are supported) หนึ่งลิ้งก์ต่อบรรทัด (HTTP ลิ้งก์, รองรับลิงก์แม่เหล็กและแฮชข้อมูล) @@ -3019,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ดาวน์โหลด - + No URL entered ไม่ได้ป้อน URL - + Please type at least one URL. กรุณาพิมพ์อย่างน้อยหนึ่งรายการ @@ -3183,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ข้อผิดพลาดในการวิเคราะห์: ตัวกรองไฟล์ P2B ไม่ใช่ PeerGuardian ที่ถูกต้อง. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present มีทอร์เรนต์นี้อยู่แล้ว - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3209,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. ฐานข้อมูลเสียหาย: ไม่พบส่วนของข้อมูล @@ -3248,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http ปิดซ็อกเก็ต ขนาดคำขอเกินขีดจำกัด. จำกัด: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 แบนคำขอ Http, ปิดซ็อกเก็ต. IP: %1 @@ -3299,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... เลือก... - + Reset รีเซ็ต - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3344,19 +3595,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Press 'Enter' key to continue... - + กดปุ่ม 'Enter' เพื่อดำเนินการต่อ... LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 ถูกบล็อก. เหตุผล: %2. - + %1 was banned 0.0.0.0 was banned %1 ถูกแบน @@ -3365,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3431,607 +3682,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &แก้ไข - + &Tools &เครื่องมือ - + &File &ไฟล์ - + &Help &ช่วยเหลือ - + On Downloads &Done ในการดาวน์โหลด &เสร็จ - + &View &ดู - + &Options... &ตัวเลือก... - - &Resume - &ดำเนินการต่อ - - - + &Remove &ลบ - + Torrent &Creator ทอร์เรนต์&ผู้สร้าง - - + + Alternative Speed Limits ถ้าเป็นไปได้ให้จำกัดความเร็ว - + &Top Toolbar &เครื่องมือด้านบน - + Display Top Toolbar แสดงแถบเครื่องมือด้านบน - + Status &Bar สถานะ &บาร์ - + Filters Sidebar - + S&peed in Title Bar ความเร็วในไตเติ้ลบาร์ - + Show Transfer Speed in Title Bar แสดงความเร็วการถ่ายโอนในไตเติ้ลบาร์ - + &RSS Reader &RSS ผู้อ่าน - + Search &Engine ค้นหา &กลไล - + L&ock qBittorrent ล็อก qBittorrent - + Do&nate! สนับสนุน! - + + Sh&utdown System + + + + &Do nothing - + Close Window ปิดหน้าต่าง - - R&esume All - ดำเนินการต่อทั้งหมด - - - + Manage Cookies... จัดการคุกกี้... - + Manage stored network cookies จัดการคุกกี้เครือข่ายที่เก็บไว้ - + Normal Messages ข้อความปกติ - + Information Messages ข้อความข้อมูล - + Warning Messages ข้อความเตือน - + Critical Messages ข้อความสำคัญ - + &Log &บันทึก - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue ด้านล่างของคิว - + Move to the bottom of the queue ย้ายไปด้านล่างของคิว - + Top of Queue บนสุดของคิว - + Move to the top of the queue ย้ายไปที่ด้านบนสุดของคิว - + Move Down Queue ย้ายคิวลง - + Move down in the queue เลื่อนลงในคิว - + Move Up Queue ย้ายคิวขึ้น - + Move up in the queue เลื่อนขึ้นในคิว - + &Exit qBittorrent &ออก qBittorrent - + &Suspend System &ระงับระบบ - + &Hibernate System &ระบบไฮเบอร์เนต - - S&hutdown System - ปิดระบบ - - - + &Statistics &สถิติ - + Check for Updates ตรวจสอบอัพเดต - + Check for Program Updates ตรวจสอบการอัพเดตโปรแกรม - + &About &เกี่ยวกับ - - &Pause - &หยุด - - - - P&ause All - หยุดทั้งหมด - - - + &Add Torrent File... &เพิ่มไฟล์ทอร์เรนต์... - + Open เปิด - + E&xit ออก - + Open URL เปิด URL - + &Documentation &เอกสารประกอบ - + Lock ล็อก - - - + + + Show แสดง - + Check for program updates ตรวจสอบการอัพเดตโปรแกรม - + Add Torrent &Link... เพิ่มทอร์เรนต์&ลิ้งก์... - + If you like qBittorrent, please donate! ถ้าคุณชอบ qBittorrent, สนับสนุนเรา! - - + + Execution Log บันทึกการดำเนินการ - + Clear the password ล้างรหัส - + &Set Password &ตั้งพาสเวิร์ด - + Preferences กำหนดค่า - + &Clear Password &ยกเลิกพาสเวิร์ด - + Transfers ถ่ายโอน - - + + qBittorrent is minimized to tray qBittorrent ย่อขนาดลงในถาด - - - + + + This behavior can be changed in the settings. You won't be reminded again. อาการนี้สามารถเปลี่ยนแปลงได้ในการตั้งค่า คุณจะไม่ได้รับการแจ้งเตือนอีก - + Icons Only ไอคอนเท่านั้น - + Text Only ข้อความเท่านั้น - + Text Alongside Icons ข้อความข้างไอคอน - + Text Under Icons ข้อความใต้ไอคอน - + Follow System Style ทำตามรูปแบบระบบ - - + + UI lock password UI ล็อกรหัส - - + + Please type the UI lock password: กรุณาพิมพ์รหัสล็อก UI: - + Are you sure you want to clear the password? คุณมั่นใจว่าต้องการล้างรหัส ? - + Use regular expressions - + + + Search Engine + เครื่องมือค้นหา + + + + Search has failed + + + + + Search has finished + การค้นหาเสร็จสิ้น + + + Search ค้นหา - + Transfers (%1) ถ่ายโอน (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent เพิ่งได้รับการอัปเดตและจำเป็นต้องเริ่มต้นใหม่เพื่อให้การเปลี่ยนแปลงมีผล. - + qBittorrent is closed to tray qBittorrent ปิดถาด - + Some files are currently transferring. บางไฟล์กำลังถ่ายโอน - + Are you sure you want to quit qBittorrent? คุณมั่นใจว่าต้องการปิด qBittorrent? - + &No &ไม่ - + &Yes &ใช่ - + &Always Yes &ใช่เสมอ - + Options saved. บันทึกตัวเลือกแล้ว - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime ไม่มีรันไทม์ Python - + qBittorrent Update Available qBittorrent มีการอัพเดตที่พร้อมใช้งาน - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python iจำเป็นต้องใช้เครื่องมือค้นหา แต่เหมือนจะไม่ได้ติดตั้ง. คุณต้องการที่จะติดตั้งตอนนี้? - + Python is required to use the search engine but it does not seem to be installed. จำเป็นต้องใช้ Python เพื่อใช้เครื่องมือค้นหา แต่ดูเหมือนว่าจะไม่ได้ติดตั้งไว้ - - + + Old Python Runtime รันไทม์ Python เก่า - + A new version is available. มีเวอร์ชันใหม่พร้อมใช้งาน - + Do you want to download %1? คุณต้องการที่จะดาวน์โหลด %1? - + Open changelog... เปิด การบันทึกการเปลี่ยนแปลง... - + No updates available. You are already using the latest version. ไม่มีอัพเดตพร้อมใช้งาน คุณกำลังใช้เวอร์ชันล่าสุดอยู่แล้ว - + &Check for Updates &ตรวจสอบการอัพเดต - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + หยุดชั่วคราว + + + Checking for Updates... กำลังตรวจสอบการอัพเดต - + Already checking for program updates in the background ตรวจสอบการอัพเดตโปรแกรมในเบื้องหลังแล้ว - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error ดาวน์โหลดล้มเหลว - - Python setup could not be downloaded, reason: %1. -Please install it manually. - ไม่สามารถดาวน์โหลดการตั้งค่า Python ได้, เหตุผล: %1. -กรุณาติดตั้งด้วยตัวเอง. - - - - + + Invalid password รหัสผ่านไม่ถูกต้อง - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long รหัสผ่านต้องมีความยาวอย่างน้อย 3 อักขระ - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files เปิดไฟล์ทอร์เรนต์ - + Torrent Files ไฟล์ทอร์เรนต์ @@ -4226,7 +4548,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" ละเว้น SSL ล้มเหลว, URL: "%1", ล้มเหลว: "%2" @@ -5520,47 +5847,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5598,486 +5925,510 @@ Please install it manually. บิตทอร์เรนต์ - + RSS RSS - - Web UI - เว็บ UI - - - + Advanced ขั้นสูง - + Customize UI Theme... - + Transfer List รายชื่อการถ่ายโอน - + Confirm when deleting torrents ยืนยันเมื่อทำการลบทอร์เรนต์ - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. ใช้สีแถวสลับกัน - + Hide zero and infinity values ซ่อนค่าศูนย์และอินฟินิตี้ - + Always เสมอ - - Paused torrents only - หยุดทอร์เรนต์ชั่วคราวเท่านั้น - - - + Action on double-click การดำเนินการเมื่อดับเบิลคลิก - + Downloading torrents: กำลังดาวน์โหลดทอร์เรนต์: - - - Start / Stop Torrent - เริ่ม / หยุด ทอร์เรนต์ - - - - + + Open destination folder เปิดโฟลเดอร์ปลายทาง - - + + No action ไม่มีการกระทำ - + Completed torrents: ทอร์เรนต์ที่เสร็จสมบูรณ์: - + Auto hide zero status filters - + Desktop เดสก์ทอป - + Start qBittorrent on Windows start up เริ่ม qBittorrent ตอนเปิดเครื่อง - + Show splash screen on start up แสดงหน้าจอเริ่มต้น เมื่อเริ่มต้น - + Confirmation on exit when torrents are active ยืนยันการออกเมื่อมีการเปิดใช้งานทอร์เรนต์อยู่ - + Confirmation on auto-exit when downloads finish ยืนยันการออกอัตโนมัติเมื่อการดาวน์โหลดเสร็จสิ้น - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB กิบิไบต์ - + + Show free disk space in status bar + + + + Torrent content layout: เลย์เอาต์เนื้อหาทอร์เรนต์: - + Original ต้นฉบับ - + Create subfolder สร้างโฟลเดอร์ย่อย - + Don't create subfolder ไม่ต้องสร้างโฟลเดอร์ย่อย - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue เลื่อนไปลำดับแรก - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + เก็บไฟล์ที่ไม่ได้เลือกไว้ในโฟลเดอร์ ".unwanted" - + Add... เพิ่ม... - + Options.. ตัวเลือก.. - + Remove ลบ - + Email notification &upon download completion การแจ้งเตือนทางอีเมล เมื่อดาวน์โหลดเสร็จสิ้น - + + Send test email + ส่งอีเมลทดสอบ + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: โปรโตคอลการเชื่อมต่อแบบเพียร์: - + Any ใดๆ - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering การกรอง IP - + Schedule &the use of alternative rate limits กำหนดการใช้ การจำกัดอัตราทางเลือก - + From: From start time จาก: - + To: To end time ถึง: - + Find peers on the DHT network ค้นหาเพียร์ในเครือข่าย DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption ยืนยันการเข้ารหัส - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">ข้อมูลเพิ่มเติม</a>) - + Maximum active checking torrents: - + &Torrent Queueing &ทอร์เรนต์กำลังเข้าคิว - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader RSS ผู้อ่าน - + Enable fetching RSS feeds - + Feeds refresh interval: - + Same host request delay: - + Maximum number of articles per feed: - - - + + + min minutes นาที - + Seeding Limits จำกัดการส่งต่อ - - Pause torrent - หยุดทอร์เรนต์ - - - + Remove torrent ลบทอร์เรนต์ - + Remove torrent and its files ลบทอร์เรนต์และไฟล์ของมัน - + Enable super seeding for torrent เปิดใช้งานการส่งต่อขั้นสูงสำหรับทอร์เรนต์ - + When ratio reaches เมื่ออัตราส่วนถึง - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + หยุดทอร์เรนต์ + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + URL: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS ทอร์เรนต์ดาวน์โหลดอัตโนมัติ - + Enable auto downloading of RSS torrents เปิดใช้งานการดาวน์โหลด RSS ทอร์เรนต์อัตโนมัติ - + Edit auto downloading rules... แก้ไขกฎการดาวน์โหลดอัตโนมัติ ... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: ตัวกรอง: - + Web User Interface (Remote control) Web User Interface (รีโมทคอนโทรล) - + IP address: IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never ไม่เลย - + ban for: แบนสำหรับ: - + Session timeout: หมดเวลา: - + Disabled ปิดการใข้งาน - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: โดเมนเซิร์ฟเวอร์: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6086,441 +6437,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost ข้ามการตรวจสอบสำหรับไคลเอนต์บน localhost - + Bypass authentication for clients in whitelisted IP subnets ข้ามการตรวจสอบสำหรับไคลเอนต์ในเครือข่ายย่อยของ IP ที่อนุญาตพิเศษ - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area ย่อ qBittorrent ให้เล็กสุดไปยังพื้นที่แจ้งเตือน - + + Search + ค้นหา + + + + WebUI + + + + Interface หน้าตา - + Language: ภาษา: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal ธรรมดา - + File association - + Use qBittorrent for .torrent files ใช้ qBittorrent สำหรับไฟล์ .torrent - + Use qBittorrent for magnet links ใช้ qBittorrent สำหรับลิงก์แม่เหล็ก - + Check for program updates ตรวจสอบการอัพเดตโปรแกรม - + Power Management จัดการพลังงาน - + + &Log Files + + + + Save path: บันทึกเส้นทาง: - + Backup the log file after: - + Delete backup logs older than: + ลบล็อกสำรองที่มีอายุมากกว่า: + + + + Show external IP in status bar - + When adding a torrent เมื่อเพิ่มทอร์เรนต์ - + Bring torrent dialog to the front นำกล่องโต้ตอบทอร์เรนต์มาไว้ข้างหน้า - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled ลบไฟล์ .torrent ที่มีการยกเลิกการเพิ่มด้วย - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: โหมดการจัดการทอร์เรนต์เริ่มต้น: - + Manual จัดการเอง - + Automatic อัตโนมัติ - + When Torrent Category changed: เมื่อหมวดหมู่ทอร์เรนต์เปลี่ยนไป: - + Relocate torrent ย้ายตำแหน่งทอร์เรนต์ - + Switch torrent to Manual Mode เปลี่ยนโหมดทอร์เรนต์เป็นแบบจัดการเอง - - + + Relocate affected torrents ย้ายตำแหน่งทอร์เรนต์ที่ได้รับผล - - + + Switch affected torrents to Manual Mode เปลี่ยนทอร์เรนต์ที่ได้รับผลกระทบเป็นแบบจัดการเอง - + Use Subcategories ใช้งานหมวดหมู่ย่อย - + Default Save Path: ตำแหน่งที่บันทึกเริ่มต้น - + Copy .torrent files to: คัดลอกไฟล์ .torrent ไปที่: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: คัดลอกไฟล์ .torrent เพื่อดาวน์โหลดเสร็จแล้วไปที่: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding ยับยั้งระบบสลีปเมื่อทอร์เรนต์กำลังเผยแพร่ - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days วัน - + months Delete backup logs older than 10 months เดือน - + years Delete backup logs older than 10 years ปี - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - + เงื่อนไขในการหยุดทอร์เรนต์: - - + + None ไม่มี - - + + Metadata received ข้อมูลรับ Metadata - - + + Files checked ไฟล์ตรวจสอบแล้ว - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6537,766 +6929,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver ถึง: - + SMTP server: เซิฟเวอร์ SMTP: - + Sender - + From: From sender จาก: - + This server requires a secure connection (SSL) - - + + Authentication การยืนยันตัวตน - - - - + + + + Username: ชื่อผู้ใช้: - - - - + + + + Password: รหัสผ่าน: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP TCP และ μTP - + Listening Port - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random สุ่ม - + Use UPnP / NAT-PMP port forwarding from my router ใช้ UPnP / NAT-PMP พอร์ตการส่งต่อ จากเร้าเตอร์ - + Connections Limits จำกัดการเชื่อมต่อ - + Maximum number of connections per torrent: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server - + Type: - + ประเภท: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: โฮสต์: - - - + + + Port: พอร์ต: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s กิบิไบต์/วินาที - - + + Upload: อัพโหลด: - - + + Download: ดาวน์โหลด: - + Alternative Rate Limits ถ้าเป็นไปได้ให้จำกัดความเร็ว - + Start time เวลาเริ่ม - + End time เวลาจบ - + When: เมื่อไร: - + Every day ทุกวัน - + Weekdays วันธรรมดา - + Weekends วันหยุดสุดสัปดาห์ - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy ความเป็นส่วนตัว - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: วิธีการเข้ารหัส: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode เปิดใช้งานโหมดไม่ระบุตัวตน - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - - + + + + sec seconds วินาที - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: ใบรับรอง: - + Key: คีย์: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - + เปลี่ยนรหัสปัจจุบัน - - Use alternative Web UI - - - - + Files location: ตำแหน่งไฟล์: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security ความปลอดภัย - + Enable clickjacking protection เปิดใช้งานการป้องกันการคลิกแจ็ค - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: บริการ: - + Register ลงทะเบียน - + Domain name: ชื่อโดเมน: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file เลือก qBittorrent UI ธีมไฟล์ - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. ไม่มีการตั้งเงื่อนไขการหยุด - + Torrent will stop after metadata is received. ทอเร้นต์หยุดเมื่อได้รับข้อมูล metadata - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name %N: ชื่อทอร์เรนต์ - + %L: Category %L: หมวดหมู่ - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: บันทึกเส้นทาง - + %C: Number of files %C: จำนวนไฟล์ - + %Z: Torrent size (bytes) %Z: ขนาดไฟล์ทอร์เรนต์ (ไบต์) - + %T: Current tracker %T: ตัวติดตามปัจจุบัน - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (ไม่มี) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate ใบรับรอง - + Select certificate เลือกใบรับรอง - + Private key คีย์ส่วนตัว - + Select private key เลือกคีย์ส่วนตัว - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + รหัสผ่าน WebUI ต้องมีความยาวอย่างน้อย 6 อักขระ - + Location Error ตำแหน่งล้มเหลว - - + + Choose export directory เลือกหมวดหมู่การส่งออก - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: แท็ก (คั่นด้วยเครื่องหมายจุลภาค) - + %I: Info hash v1 (or '-' if unavailable) %I: ข้อมูลแฮช v1 (หรือ '-' หากไม่มี) - + %J: Info hash v2 (or '-' if unavailable) %I: ข้อมูลแฮช v2 (หรือ '-' หากไม่มี) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + Torrents that have metadata initially will be added as stopped. - + โทเรนต์ที่มีข้อมูล Metadata ตั้งแต่แรกจะถูกเพิ่มในสถานะหยุด - + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 วิเคราะห์ IP ที่ให้มาสำเร็จ : %1 ข้อบังคับถูกนำไปใช้ - + Preferences กำหนดค่า - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7304,241 +7741,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown ไม่ทราบ - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed เพียร์ถูกปฏิเสธ - + Incoming connection - + Peer from DHT เพียร์จาก DHT - + Peer from PEX เพียร์จาก PEX - + Peer from LSD เพียร์จาก LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port พอร์ต - + Flags ธง - + Connection การเชื่อมต่อ - + Client i.e.: Client application ลูกค้า - + Peer ID Client i.e.: Client resolved from Peer ID - + 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. ความเกี่ยวข้อง - + Files i.e. files that are being downloaded right now ไฟล์ - + Column visibility การเปิดเผยคอลัมน์ - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents - + Add peers... - + เพิ่มเพียร์... - - + + Adding peers กำลังเพิ่มเพียร์ - + Some peers cannot be added. Check the Log for details. ไม่สามารถเพิ่มเพียร์บางคนได้. ตรวจสอบบันทึกสำหรับรายละเอียด - + Peers are added to this torrent. เพียร์ถูกเพิ่มเข้ามาในทอร์เรนต์นี้ - - + + Ban peer permanently แบนเพียร์ถาวร - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + ท่านไม่ได้เลือกเพียร์ - + Are you sure you want to permanently ban the selected peers? คุณแน่ใจหรือไม่ว่าต้องการแบนเพียร์ที่เลือกอย่างถาวร? - + Peer "%1" is manually banned เพียร์ "%1" ถูกแบนด้วยตนเอง - + N/A ไม่สามารถใช้ได้ - + Copy IP:port คัดลอก IP:พอร์ต @@ -7556,7 +7998,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not รายชื่อเพียร์ที่จะเพิ่ม (หนึ่ง IP ต่อบรรทัด): - + Format: IPv4:port / [IPv6]:port @@ -7597,27 +8039,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: ไฟล์ในชิ้นนี้: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7630,58 +8072,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not ค้นหาปลักอิน - + Installed search plugins: - + ปลั๊กอินสำหรับการค้นหาที่ติดตั้งแล้ว: - + Name ชื่อ - + Version เวอร์ชั่น - + Url Url - - + + Enabled เปิดใช้งาน - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - + ติดตั้งอันใหม่ - + Check for updates ตรวจสอบอัพเดต - + Close ปิด - + Uninstall ถอนการติดตั้ง @@ -7759,7 +8201,7 @@ Those plugins were disabled. Select search plugins - + เลือกปลั๊กอินสำหรับการค้นหา @@ -7769,7 +8211,7 @@ Those plugins were disabled. All your plugins are already up to date. - + ปลั๊กอินทั้งหมดของท่านอยู่ในเวอร์ชั่นปัจจุบัน @@ -7779,17 +8221,17 @@ Those plugins were disabled. Search plugin install - + ติดตั้งปลั๊กอินสำหรับการค้นหา Couldn't install "%1" search engine plugin. %2 - + ไม่สามารถติดตั้ง "%1" ปลั๊กอินสำหรับการค้นหา %2 Couldn't update "%1" search engine plugin. %2 - + ไม่สามารถอัปเดต "%1" ปลั๊กอินสำหรับการค้นหา %2 @@ -7800,98 +8242,65 @@ Those plugins were disabled. - + Search plugin source: - + Local file - + ไฟล์ในอุปกรณ์ - + Web link - - - - - PowerManagement - - - qBittorrent is active - qBittorrent เปิดใช้งานอยู่ - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - + ลิงก์ของเว็บ PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview แสดงตัวอย่าง - + Name ชื่อ - + Size ขนาด - + Progress กระบวนการ - + Preview impossible - + ไม่สามารถพรีวิว - + Sorry, we can't preview this file: "%1". - + ขออภัย เราไม่สามารถพรีวิวไฟล์นี้ได้: "%1" - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents @@ -7904,27 +8313,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7965,12 +8374,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: ดาวน์โหลด: - + Availability: @@ -7985,53 +8394,53 @@ Those plugins were disabled. ถ่ายโอน - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) ใช้เวลาไป: - + ETA: เวลาโดยประมาณ - + Uploaded: อัพโหลด: - + Seeds: ผู้ส่ง: - + Download Speed: ความเร็วในการดาวน์โหลด - + Upload Speed: ความเร็วในการอัพโหลด - + Peers: เพียร์: - + Download Limit: จำกัดดาวน์โหลด: - + Upload Limit: จำกัดอัปโหลด: - + Wasted: @@ -8041,193 +8450,220 @@ Those plugins were disabled. - + Information ข้อมูล - + Info Hash v1: ข้อมูลแฮช v1: - + Info Hash v2: ข้อมูลแฮช v2: - + Comment: ความคิดเห็น: - + Select All เลือกทั้งหมด - + Select None ไม่เลือกเลย - + Share Ratio: อัตราส่วนการแบ่งปัน: - + Reannounce In: - + Last Seen Complete: ล่าสุดเสร็จสมบูรณ์: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: ขนาดทั้งหมด: - + Pieces: ชิ้นส่วน: - + Created By: สร้างโดย: - + Added On: เพิ่มเมื่อ: - + Completed On: เสร็จเมื่อ: - + Created On: + สร้างเมื่อ: + + + + Private: - + Save Path: - + บันทึกไว้ใน: - + Never ไม่เลย - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - - + + %1 (%2 this session) %1 (เซสชั่นนี้ %2) - - + + + N/A ไม่สามารถใช้ได้ - + + Yes + ใช่ + + + + No + ไม่ + + + %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 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.) - - New Web seed - เผยแพร่เว็บใหม่ + + Add web seed + Add HTTP source + - - Remove Web seed - ลบการเผยแพร่เว็บ + + Add web seed: + - - Copy Web seed URL - คัดลอก URL ส่งต่อเว็บ + + + This web seed is already in the list. + - - Edit Web seed URL - แก้ไข URL ส่งต่อเว็บ - - - + Filter files... กรองไฟล์... - - Speed graphs are disabled + + Add web seed... - + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + + Speed graphs are disabled + ปิดใช้งานกราฟความเร็วแล้ว + + + You can enable it in Advanced Options - - 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 ส่งต่อเว็บ: @@ -8235,33 +8671,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8269,22 +8705,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8320,12 +8756,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8333,103 +8769,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. ไม่มีโฟลเดอร์หลัก: %1 + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + + + + + sec + วินาที + + + + Default + ค่าเริ่มต้น + + RSSWidget @@ -8449,8 +8926,8 @@ Those plugins were disabled. - - + + Mark items read ทำเครื่องหมายรายการที่อ่านแล้ว @@ -8472,135 +8949,118 @@ Those plugins were disabled. Torrents: (double-click to download) - + ทอร์เรนต์:(คลิกสองครั้งเพื่อดาวน์โหลด) - - + + Delete ลบ - + Rename... เปลี่ยนชื่อ... - + Rename เปลี่ยนชื่อ - - + + Update อัพเดท - + New subscription... - - + + Update all feeds อัพเดทฟีดทั้งหมด - + Download torrent ดาวน์โหลดทอร์เรนต์ - + Open news URL เปิด URL ข่าว - + Copy feed URL คัดลอก URL ฟีด - + New folder... โฟลเดอร์ใหม่... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name โปรดเลือกชื่อโฟลเดอร์ - + Folder name: ชื่อโฟลเดอร์: - + New folder โฟลเดอร์ใหม่ - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: ชื่อฟีดใหม่: - + Rename failed - + เปลี่ยนชื่อไม่สำเร็จ - + Date: วันที่: - + Feed: - + Author: ผู้เขียน: @@ -8608,38 +9068,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. ต้องติดตั้ง Python เพื่อใช้เครื่องมือค้นหา - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + ปลั๊กอินทั้งหมดอยู่ในเวอร์ชั่นปัจจุบันแล้ว - + Updating %1 plugins - + กำลังอัปเดต %1 ปลั๊กอิน - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8649,7 +9109,7 @@ Those plugins were disabled. Results(xxx) - + ผลลัพธ์(xxx) @@ -8714,132 +9174,142 @@ Those plugins were disabled. ขนาด: - + 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 - - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + ชื่อทอร์เรนต์เท่านั้น - + Everywhere - + Use regular expressions - + Open download window - + Download ดาวน์โหลด - + Open description page - + Copy คัดลอก - + Name ชื่อ - + Download link ลิ้งค์ดาวน์โหลด - + Description page URL - + Searching... กำลังค้นหา... - + Search has finished การค้นหาเสร็จสิ้น - + Search aborted - + ยกเลิกการค้นหา - + An error occurred during search... - + เกิดข้อผิดพลาดระหว่างการค้นหา... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility การเปิดเผยคอลัมน์ - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents @@ -8847,104 +9317,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories ทุกประเภท - + Movies ภาพยนตร์ - + TV shows รายการทีวี - + Music เพลง - + Games เกม - + Anime อะนิเมะ - + Software ซอฟต์แวร์ - + Pictures รูปภาพ - + Books หนังสือ - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8954,112 +9424,143 @@ Those plugins were disabled. - - - - Search ค้นหา - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... ค้นหาปลั๊กอิน... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example ตัวอย่าง: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins ปลั๊กอินทั้งหมด - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab ปิดแท็บ - + Close all tabs ปิดทุกแท็บ - + Select... เลือก... - - - + + Search Engine เครื่องมือค้นหา - + + Please install Python to use the Search Engine. โปรดติดตั้ง Python เพื่อใช้เครื่องมือค้นหา - + Empty search pattern - + Please type a search pattern first - + + Stop หยุด + + + SearchWidget::DataStorage - - Search has finished - การค้นหาเสร็จสิ้น + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" @@ -9173,34 +9674,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: อัพโหลด: - - - + + + - - - + + + KiB/s กิบิไบต์/วินาที - - + + Download: ดาวน์โหลด: - + Alternative speed limits ถ้าเป็นไปได้ให้จำกัดความเร็ว @@ -9379,7 +9880,7 @@ Click the "Search plugins..." button at the bottom right of the window Cache statistics - + สถิติแคช @@ -9392,32 +9893,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: เพียร์ที่เชื่อมต่อ: - + All-time share ratio: - + All-time download: เวลาดาวน์โหลดทั้งหมด: - + Session waste: เซสชันเสีย: - + All-time upload: เวลาอัปโหลดทั้งหมด: - + Total buffer size: ขนาดบัฟเฟอร์ทั้งหมด: @@ -9432,12 +9933,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9456,51 +9957,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: สถานะการเชื่อมต่อ: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT: %1 โหนด - + qBittorrent needs to be restarted! ต้องเริ่มต้น qBittorrent ใหม่! - - - + + + Connection Status: สถานะการเชื่อมต่อ: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. ออฟไลน์. ซึ่งมักจะหมายความว่า qBittorrent ไม่สามารถเชื่อมต่อพอร์ตที่เลือกสำหรับการเชื่อมต่อขาเข้า - + Online ออนไลน์ - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9530,13 +10057,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - ดำเนินการต่อ (0) + Running (0) + - Paused (0) - หยุดชั่วคราว (0) + Stopped (0) + @@ -9598,36 +10125,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) เสร็จสมบูรณ์ (%1) + + + Running (%1) + + - Paused (%1) - หยุดชั่วคราว (%1) + Stopped (%1) + + + + + Start torrents + เริ่มทอร์เรนต์ + + + + Stop torrents + หยุดทอร์เรนต์ Moving (%1) - - - Resume torrents - ดำเนินการทอร์เรนต์ต่อ - - - - Pause torrents - หยุดทอร์เรนต์ - Remove torrents ลบทอเร้นต์ - - - Resumed (%1) - ดำเนินการต่อ (%1) - Active (%1) @@ -9699,31 +10226,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags ลบแท็กที่ไม่ได้ใช้ - - - Resume torrents - ดำเนินการทอร์เรนต์ต่อ - - - - Pause torrents - หยุดทอร์เรนต์ - Remove torrents ลบทอเร้นต์ - - New Tag - เท็กใหม่ + + Start torrents + เริ่มทอร์เรนต์ + + + + Stop torrents + หยุดทอร์เรนต์ Tag: เท็ก: + + + Add tag + + Invalid tag name @@ -9870,32 +10397,32 @@ Please choose a different name and try again. TorrentContentModel - + Name ชื่อ - + Progress กระบวนการ - + Download Priority ลำดับความสำคัญการดาวน์โหลด - + Remaining เหลืออยู่ - + Availability พร้อมใช้งาน - + Total Size ขนาดรวม @@ -9940,98 +10467,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error การเปลี่ยนชื่อผิดพลาด - + Renaming กำลังเปลี่ยนชื่อ - + New name: ชื่อใหม่: - + Column visibility คมลัมภ์ที่แสดงได้ - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents - + Open เปิด - + Open containing folder เปิดแฟ้มเก็บ - + Rename... เปลี่ยนชื่อ... - + Priority ความสำคัญ - - + + Do not download ไม่ต้องดาวน์โหลด - + Normal ปกติ - + High สูง - + Maximum สูงสุด - + By shown file order แสดงลำดับไฟล์โดย - + Normal priority ลำดับความสำคัญปกติ - + High priority ลำดับความสำคัญสูง - + Maximum priority ลำดับความสำคัญสูงสุด - + Priority by shown file order ลำดับความสำคัญตามลำดับไฟล์ที่แสดง @@ -10039,17 +10566,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10078,13 +10605,13 @@ Please choose a different name and try again. - + Select file เลือกไฟล์ - + Select folder เลือกแฟ้ม @@ -10159,87 +10686,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: - + Comments: หมายเหตุ: - + Source: ต้นทาง: - + Progress: ความคืบหน้า: - + Create Torrent สร้างทอเร้นต์ - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) ไฟล์ทอเร้นต์ (*.torrent) - Reason: %1 - เหตุผล: %1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + เพิ่มทอร์เรนต์ล้มเหลว - + Torrent creator ผู้สร้างทอเร้นต์ - + Torrent created: ทอเร้นต์สร้างเมื่อ: @@ -10247,32 +10770,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10280,44 +10803,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - ข้อมูลไม่ถูกต้อง - - TorrentOptionsDialog @@ -10346,173 +10856,161 @@ Please choose a different name and try again. ใช้เส้นทางอื่นสำหรับ torrent ที่ไม่สมบูรณ์ - + Category: ประเภท: - - Torrent speed limits - จำกัดความเร็วของทอร์เรนต์ + + Torrent Share Limits + - + Download: ดาวน์โหลด: - - + + - - + + Torrent Speed Limits + + + + + KiB/s กิบิไบต์/วินาที - + These will not exceed the global limits - + Upload: อัพโหลด: - - Torrent share limits - จำกัดการแชร์ทอร์เรนต์ - - - - Use global share limit - ใช้ขีดจำกัดการแชร์ทั่วโลก - - - - Set no share limit - ตั้งค่า ไม่จำกัดการแชร์ - - - - Set share limit to - ตั้งขีดจำกัดการแชร์เป็น - - - - ratio - อัตราส่วน - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent ปิดการใช้งาน DHT สำหรับทอร์เรนต์นี้ - + Download in sequential order ดาวน์โหลดตามลำดับ - + Disable PeX for this torrent - + Download first and last pieces first ดาวน์โหลดชิ้นแรกและชิ้นสุดท้ายก่อน - + Disable LSD for this torrent - + ปิดการใช้งาน LSD สำหรับทอร์เรนต์นี้ - + Currently used categories หมวดที่ใช้อยู่ - - + + Choose save path เลือกเส้นทางการบันทึก - + Not applicable to private torrents - - - No share limit method selected - ไม่ได้เลือกวิธีการจำกัดการแชร์ - - - - Please select a limit method first - โปรดเลือกวิธีการจำกัดก่อน - TorrentShareLimitsWidget - - - + + + + Default - ค่าเริ่มต้น + ค่าเริ่มต้น - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - นาที + นาที - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + หยุดทอร์เรนต์ + + + + Remove torrent + ลบทอร์เรนต์ + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + เปิดใช้งานการส่งต่อขั้นสูงสำหรับทอร์เรนต์ + + + Ratio: @@ -10525,32 +11023,32 @@ Please choose a different name and try again. - - New Tag - เท็กใหม่ + + Add tag + - + Tag: เท็ก: - + Invalid tag name ชื่อแท็กไม่ถูกต้อง - + Tag name '%1' is invalid. - + Tag exists มีเท็กนี้อยู่ - + Tag name already exists. มีแท็กชื่อนี้อยู่แล้ว @@ -10558,115 +11056,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer ลำดับความสำคัญต้องเป็นตัวเลข - + Priority is not valid ลำดับความสำคัญไม่ถูกต้อง - + Torrent's metadata has not yet downloaded ยังไม่ได้ดาวน์โหลดข้อมูลเมตาของทอร์เรนต์ - + File IDs must be integers รหัสไอดีต้องเป็นตัวเลข - + File ID is not valid ไฟล์ไอดีไม่ถูกต้อง - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category ไม่สามารถสร้างหมวดหมู่ได้ - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory ไม่สามารถเขียนไปยังหมวดหมู่ - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -10692,196 +11205,191 @@ Please choose a different name and try again. TrackerListModel - + Working กำลังทำงาน - + Disabled ปิดการใข้งาน - + Disabled for this torrent - + This torrent is private - + ทอร์เรนต์นี้เป็นทอร์เรนต์ส่วนตัว - + N/A ไม่สามารถใช้ได้ - + Updating... กำลังอัพเดต... - + Not working ไม่ทำงาน - + Tracker error - + Unreachable - + Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - สถานะ - - - - Peers - เพียร์ - - - - Seeds - ผู้ส่ง - - - - Leeches - ผู้รับ - - - - Times Downloaded - เวลาที่ใช้ดาวน์โหลด - - - - Message - ข้อความ - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + สถานะ + + + + Peers + เพียร์ + + + + Seeds + ผู้ส่ง + + + + Leeches + ผู้รับ + + + + Times Downloaded + เวลาที่ใช้ดาวน์โหลด + + + + Message + ข้อความ + TrackerListWidget - + This torrent is private - + ทอร์เรนต์นี้เป็นทอร์เรนต์ส่วนตัว - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility การเปิดเผยคอลัมน์ @@ -10899,37 +11407,37 @@ Please choose a different name and try again. รายการตัวติดตามที่จะเพิ่ม (หนึ่งรายการต่อบรรทัด): - + µTorrent compatible list URL: URL รายการที่เข้ากันได้กับ µTorrent: - + Download trackers list - + Add เพิ่ม - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10937,62 +11445,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) ระวัง (%1) - + Trackerless (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker - - Resume torrents - ดำเนินการทอร์เรนต์ต่อ + + Start torrents + เริ่มทอร์เรนต์ - - Pause torrents + + Stop torrents หยุดทอร์เรนต์ - + Remove torrents ลบทอเร้นต์ - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter ทั้งหมด (%1) @@ -11001,7 +11509,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -11093,11 +11601,6 @@ Please choose a different name and try again. 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. ตรวจสอบข้อมูลต่อ - - - Paused - หยุดชั่วคราว - Completed @@ -11121,220 +11624,252 @@ Please choose a different name and try again. ผิดพลาด - + Name i.e: torrent name ชื่อ - + Size i.e: torrent size ขนาด - + Progress % Done กระบวนการ - + + Stopped + + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) สถานะ - + Seeds i.e. full sources (often untranslated) ผู้ส่ง - + Peers i.e. partial sources (often untranslated) เพียร์ - + Down Speed i.e: Download speed ความเร็วในการดาวน์โหลด - + Up Speed i.e: Upload speed ความเร็วในการอัพโหลด - + Ratio Share ratio อัตราส่วน - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left เวลาโดยประมาณ - + Category หมวดหมู่ - + Tags แท็ก - + Added On Torrent was added to transfer list on 01/01/2010 08:00 เพิ่มเมื่อ - + Completed On Torrent was completed on 01/01/2010 08:00 เสร็จเมื่อ: - + Tracker ติดตาม - + Down Limit i.e: Download limit จำกัดการดาวน์โหลด - + Up Limit i.e: Upload limit จำกัดการอัป - + Downloaded Amount of data downloaded (e.g. in MB) ดาวน์โหลดแล้ว - + Uploaded Amount of data uploaded (e.g. in MB) อัปโหลดแล้ว - + 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) การอัปโหลดเซสชัน - + Remaining Amount of data left to download (e.g. in MB) ที่เหลืออยู่ - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) ใช้เวลาไป - + + Yes + ใช่ + + + + No + ไม่ + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) เสร็จสมบูรณ์ - + Ratio Limit Upload share ratio limit จำกัดอัตราส่วน - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole ล่าสุดเสร็จสมบูรณ์ - + Last Activity Time passed since a chunk was downloaded/uploaded กิจกรรมล่าสุด - + Total Size i.e. Size including unwanted data ขนาดทั้งหมด - + Availability The number of distributed copies of the torrent ความพร้อมใช้งาน - + Info Hash v1 i.e: torrent info hash v1 - ข้อมูลแฮช v2: {1?} + - + Info Hash v2 i.e: torrent info hash v2 - ข้อมูลแฮช v2: {2?} + - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 ที่แล้ว - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (ส่งเสร็จแล้วสำหรับ %2) @@ -11343,339 +11878,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility การเปิดเผยคอลัมน์ - + Recheck confirmation ตรวจสอบการยืนยันอีกครั้ง - + Are you sure you want to recheck the selected torrent(s)? คุณแน่ใจใช่ไหมว่าต้องการจะตรวจสอบไฟล์ Torrent ที่เลือก (s)? - + Rename เปลี่ยนชื่อ - + New name: ชื่อใหม่: - + Choose save path เลือกบันทึกเส้นทาง - - Confirm pause - ยืนยันหยุดชั่วคราว - - - - Would you like to pause all torrents? - ต้องการหยุดชั่วคราวทุกทอเร้นต์? - - - - Confirm resume - ยืนยันดำเนินการต่อ - - - - Would you like to resume all torrents? - ต้องการดำเนินการต่อทุกทอเร้นต์? - - - + Unable to preview ไม่สามารถดูตัวอย่างได้ - + The selected torrent "%1" does not contain previewable files ทอร์เรนต์ที่เลือก "%1" ไม่มีไฟล์ที่ดูตัวอย่างได้ - + Resize columns ปรับขนาดคอลัมภ์ - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - เพิ่มแท็ก - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags ลบแท็กทั้งหมด - + Remove all tags from selected torrents? ลบแท็กทั้งหมดออกจากทอร์เรนต์ที่เลือกหรือไม่? - + Comma-separated tags: แท็กที่คั่นด้วยจุลภาค: - + Invalid tag ชื่อแท็กไม่ถูกต้อง - + Tag name: '%1' is invalid ชื่อแท็ก: '%1' is ไม่ถูกต้อง - - &Resume - Resume/start the torrent - ดำเนินการต่อ - - - - &Pause - Pause the torrent - หยุดชั่วคราว - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... ตัวเลือกทอเร้นต์ - + Open destination &folder เปิดแฟ้มปลายทาง - + Move &up i.e. move up in the queue เลื่อนขึ้น - + Move &down i.e. Move down in the queue เลื่อนลง - + Move to &top i.e. Move to top of the queue ย้ายไปด้านบนสุด - + Move to &bottom i.e. Move to bottom of the queue ย้ายไปด้านล่างสุด - + Set loc&ation... ตั้งค่าตำแหน่ง - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID เลขรหัสทอเร้นต์ - + &Comment - + &Name ชื่อ - + Info &hash v1 - + Info h&ash v2 - + Re&name... เปลี่ยนชื่อ - + Edit trac&kers... - + E&xport .torrent... ส่งออกทอเร้นต์ - + Categor&y หมวด - + &New... New category... สร้างใหม่ - + &Reset Reset category เริ่มใหม่ - + Ta&gs แ&ท็ก - + &Add... Add / assign multiple tags... เ&พิ่ม - + &Remove All Remove all tags ลบทั้ง&หมด - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue คิ&ว - + &Copy &คัดลอก - + Exported torrent is not necessarily the same as the imported - + Download in sequential order ดาวน์โหลดตามลำดับ - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent &ลบ - + Download first and last pieces first ดาวน์โหลดชิ้นแรกและชิ้นสุดท้ายก่อน - + Automatic Torrent Management การจัดการทอร์เรนต์อัตโนมัติ - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode โหลดส่งต่อข้อมูลขั้นสูง @@ -11720,28 +12235,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11749,7 +12264,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" ไม่สามารถโหลดธีมจากไฟล์: "%1" @@ -11780,20 +12300,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11801,32 +12322,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11918,72 +12439,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. ประเภทไฟล์ที่ยอมรับไม่ได้, อนุญาตเฉพาะไฟล์ปกติเท่านั้น - + Symlinks inside alternative UI folder are forbidden. ไม่อนุญาต Symlinks ภายในโฟลเดอร์ UI อื่น - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: ส่วนหัวของโฮสต์ไม่ถูกต้อง, พอร์ตไม่ตรงกัน. ขอแหล่งที่มา IP: '%1'. เซิฟเวอร์พอร์ต: '%2'. ได้รับส่วนหัวของโฮสต์: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: ส่วนหัวของโฮสต์ไม่ถูกต้อง. ขอแหล่งที่มา IP: '%1'. ได้รับส่วนหัวของโฮสต์: '%2' @@ -11991,125 +12512,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + ไม่สามารถระบุข้อผิดพลาด + + misc - + B bytes ไบต์ - + KiB kibibytes (1024 bytes) กิบิไบต์ - + MiB mebibytes (1024 kibibytes) เมบิไบต์ - + GiB gibibytes (1024 mibibytes) จิบิไบต์ - + TiB tebibytes (1024 gibibytes) เทบิไบต์ - + PiB pebibytes (1024 tebibytes) เพบิไบต์ - + EiB exbibytes (1024 pebibytes) เอกซ์บิไบต์ - + /s per second /วินาที - + %1s e.g: 10 seconds - % 1 นาที {1s?} + - + %1m e.g: 10 minutes % 1 นาที - + %1h %2m e.g: 3 hours 5 minutes %1 ชั่วโมง %2 นาที - + %1d %2h e.g: 2 days 10 hours %1 วัน %2 ชั่วโมง - + %1y %2d e.g: 2 years 10 days %1 ปี %2 วัน - - + + Unknown Unknown (size) ไม่ทราบ - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent กำลังปิดคอมพิวเตอร์ของคุณตอนนี้เพราะดาวน์โหลดเสร็จสิ้นหมดแล้ว - + < 1m < 1 minute < 1 นาที diff --git a/src/lang/qbittorrent_tr.ts b/src/lang/qbittorrent_tr.ts index c360d1825..d6d774917 100644 --- a/src/lang/qbittorrent_tr.ts +++ b/src/lang/qbittorrent_tr.ts @@ -14,75 +14,75 @@ Hakkında - + Authors Hazırlayanlar - + Current maintainer Şu anki geliştiren - + Greece Yunanistan - - + + Nationality: Uyruk: - - + + E-mail: E-posta: - - + + Name: Ad: - + Original author Orijinal hazırlayanı - + France Fransa - + Special Thanks Özel Teşekkürler - + Translators Çevirmenler - + License Lisans - + Software Used Kullanılan Yazılımlar - + qBittorrent was built with the following libraries: qBittorrent aşağıdaki kütüphaneler ile yapıldı: - + Copy to clipboard Panoya kopyala @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Telif hakkı %1 2006-2024 qBittorrent projesi + Copyright %1 2006-2025 The qBittorrent project + Telif hakkı %1 2006-2025 qBittorrent projesi @@ -166,15 +166,10 @@ Kaydetme yeri - + Never show again Bir daha asla gösterme - - - Torrent settings - Torrent ayarları - Set as default category @@ -191,12 +186,12 @@ Torrent'i başlat - + Torrent information Torrent bilgisi - + Skip hash check Adresleme denetimini atla @@ -205,6 +200,11 @@ Use another path for incomplete torrent Tamamlanmamış torrent için başka bir yol kullan + + + Torrent options + Torrent seçenekleri + Tags: @@ -231,75 +231,75 @@ Durdurma koşulu: - - + + None Yok - - + + Metadata received Üstveriler alındı - + Torrents that have metadata initially will be added as stopped. - + Başlangıçta üstverileri olan torrent'ler durduruldu olarak eklenecektir. - - + + Files checked Dosyalar denetlendi - + Add to top of queue Kuyruğun en üstüne ekle - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog İşaretlendiğinde, .torrent dosyası, Seçenekler ileti penceresinin "İndirmeler" sayfasındaki ayarlardan bağımsız olarak silinmeyecektir. - + Content layout: İçerik düzeni: - + Original Orijinal - + Create subfolder Alt klasör oluştur - + Don't create subfolder Alt klasör oluşturma - + Info hash v1: Bilgi adreslemesi v1: - + Size: Boyut: - + Comment: Açıklama: - + Date: Tarih: @@ -329,151 +329,147 @@ Son kullanılan kaydetme yolunu hatırla - + Do not delete .torrent file .torrent dosyasını silme - + Download in sequential order Sıralı düzende indir - + Download first and last pieces first Önce ilk ve son parçaları indir - + Info hash v2: Bilgi adreslemesi v2: - + Select All Tümünü Seç - + Select None Hiçbirini Seçme - + Save as .torrent file... .torrent dosyası olarak kaydet... - + I/O Error G/Ç Hatası - + Not Available This comment is unavailable Mevcut Değil - + Not Available This date is unavailable Mevcut Değil - + Not available Mevcut değil - + Magnet link Magnet bağlantısı - + Retrieving metadata... Üstveri alınıyor... - - + + Choose save path Kayıt yolunu seçin - + No stop condition is set. Ayarlanan durdurma koşulu yok. - + Torrent will stop after metadata is received. Torrent, üstveriler alındıktan sonra duracak. - Torrents that have metadata initially aren't affected. - Başlangıçta üstverileri olan torrent'ler etkilenmez. - - - + Torrent will stop after files are initially checked. Torrent, dosyalar başlangıçta denetlendikten sonra duracak. - + This will also download metadata if it wasn't there initially. Bu, başlangıçta orada değilse, üstverileri de indirecek. - - + + N/A Yok - + %1 (Free space on disk: %2) %1 (Diskteki boş alan: %2) - + Not available This size is unavailable. Mevcut değil - + Torrent file (*%1) Torrent dosyası (*%1) - + Save as torrent file Torrent dosyası olarak kaydet - + Couldn't export torrent metadata file '%1'. Reason: %2. '%1' torrent üstveri dosyası dışa aktarılamadı. Sebep: %2. - + Cannot create v2 torrent until its data is fully downloaded. Verileri tamamen indirilinceye kadar v2 torrent oluşturulamaz. - + Filter files... Dosyaları süzün... - + Parsing metadata... Üstveri ayrıştırılıyor... - + Metadata retrieval complete Üstveri alımı tamamlandı @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Torrent indiriliyor... Kaynak: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Torrent'i ekleme başarısız. Kaynak: "%1". Sebep: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Kopya bir torrent ekleme girişimi algılandı. Kaynak: %1. Varolan torrent: %2. Sonuç: %3 - - - + Merging of trackers is disabled İzleyicilerin birleştirilmesi etkisizleştirildi - + Trackers cannot be merged because it is a private torrent İzleyiciler özel bir torrent olduğundan birleştirilemez - + Trackers are merged from new source İzleyiciler yeni kaynaktan birleştirildi + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + Kopya bir torrent ekleme girişimi algılandı. Kaynak: %1. Varolan torrent: "%2". Torrent bilgisi adreslemesi: %3. Sonuç: %4 + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent paylaşma sınırları + Torrent paylaşma sınırları @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Tamamlanmada torrent'leri yeniden denetle - - + + ms milliseconds ms - + Setting Ayar - + Value Value set for this setting Değer - + (disabled) (etkisizleştirildi) - + (auto) (otomatik) - + + min minutes dak - + All addresses Tüm adresler - + qBittorrent Section qBittorrent Bölümü - - + + Open documentation Belgeleri aç - + All IPv4 addresses Tüm IPv4 adresleri - + All IPv6 addresses Tüm IPv6 adresleri - + libtorrent Section libtorrent Bölümü - + Fastresume files Hızlı devam dosyaları - + SQLite database (experimental) SQLite veritabanı (deneysel) - + Resume data storage type (requires restart) Devam verisi depolama türü (yeniden başlatma gerektirir) - + Normal Normal - + Below normal Normalin altında - + Medium Orta - + Low Düşük - + Very low Çok düşük - + Physical memory (RAM) usage limit Fiziksel bellek (RAM) kullanım sınırı - + Asynchronous I/O threads Eşzamansız G/Ç iş parçaları - + Hashing threads Adreslenen iş parçacığı - + File pool size Dosya havuzu boyutu - + Outstanding memory when checking torrents Torrent'ler denetlenirken bekleyen bellek - + Disk cache Disk önbelleği - - - - + + + + + s seconds s - + Disk cache expiry interval Disk önbelleği bitiş aralığı - + Disk queue size Disk kuyruk boyutu - - + + Enable OS cache İS önbelleğini etkinleştir - + Coalesce reads & writes Okuma ve yazmaları birleştir - + Use piece extent affinity Parça kapsam benzeşimi kullan - + Send upload piece suggestions Gönderme parçası önerileri gönder - - - - + + + + + 0 (disabled) 0 (etkisizleştirildi) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Devam etme verisi kaydetme aralığı [0: etkisizleştirildi] - + Outgoing ports (Min) [0: disabled] Giden bağlantı noktaları (En az) [0: etkisizleştirildi] - + Outgoing ports (Max) [0: disabled] Giden bağlantı noktaları (En fazla) [0: etkisizleştirildi] - + 0 (permanent lease) 0 (kalıcı kiralama) - + UPnP lease duration [0: permanent lease] UPnP kiralama süresi [0: kalıcı kiralama] - + Stop tracker timeout [0: disabled] İzleyiciyi durdurma zaman aşımı [0: etkisizleştirildi] - + Notification timeout [0: infinite, -1: system default] Bildirim zaman aşımı [0: sınırsız, -1: sistem varsayılanı] - + Maximum outstanding requests to a single peer Tek bir kişi için bekleyen en fazla istek sayısı - - - - - + + + + + KiB KiB - + (infinite) (sonsuz) - + (system default) (sistem varsayılanı) - + + Delete files permanently + Dosyaları kalıcı olarak sil + + + + Move files to trash (if possible) + Dosyaları çöp kutusuna taşı (mümkünse) + + + + Torrent content removing mode + Torrent içeriğini kaldırma kipi + + + This option is less effective on Linux Bu seçenek Linux'ta daha az etkilidir - + Process memory priority İşlem belleği önceliği - + Bdecode depth limit Bdecode derinlik sınırı - + Bdecode token limit Bdecode belirteç sınırı - + Default Varsayılan - + Memory mapped files Bellek eşlemeli dosyalar - + POSIX-compliant POSIX uyumlu - + + Simple pread/pwrite + Basit p-okuma/p-yazma + + + Disk IO type (requires restart) Disk G/Ç türü (yeniden başlatma gerektirir) - - + + Disable OS cache İS önbelleğini etkisizleştir - + Disk IO read mode Disk G/Ç okuma kipi - + Write-through Baştan sona yaz - + Disk IO write mode Disk G/Ç yazma kipi - + Send buffer watermark Gönderme arabelleği eşiği - + Send buffer low watermark Gönderme arabelleği alt eşiği - + Send buffer watermark factor Gönderme arabelleği eşiği etkeni - + Outgoing connections per second Saniyede giden bağlantı: - - + + 0 (system default) 0 (sistem varsayılanı) - + Socket send buffer size [0: system default] Soket gönderme arabelleği boyutu [0: sistem varsayılanı] - + Socket receive buffer size [0: system default] Soket alma arabellek boyutu [0: sistem varsayılanı] - + Socket backlog size Soket biriktirme listesi boyutu - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + İstatistikleri kaydetme aralığı [0: etkisizleştirildi] + + + .torrent file size limit .torrent dosya boyutu sınırı - + Type of service (ToS) for connections to peers Kişilere bağlantılar için hizmet türü (ToS) - + Prefer TCP TCP tercih et - + Peer proportional (throttles TCP) Kişi orantılı (TCP'yi kısıtlar) - + + Internal hostname resolver cache expiry interval + Dahili anamakine adı çözücü önbelleği sona erme aralığı + + + Support internationalized domain name (IDN) Uluslararasılaştırılmış etki alanı adını (IDN) destekle - + Allow multiple connections from the same IP address Aynı IP adresinden çoklu bağlantılara izin ver - + Validate HTTPS tracker certificates HTTPS izleyici sertifikalarını doğrula - + Server-side request forgery (SSRF) mitigation Sunucu tarafı istek sahteciliği (SSRF) azaltma - + Disallow connection to peers on privileged ports Yetkili bağlantı noktalarında kişilerle bağlantıya izin verme - + It appends the text to the window title to help distinguish qBittorent instances - + QBittorent örneklerini ayırt etmeye yardımcı olmak için metni pencere başlığına ekler - + Customize application instance name - + Uygulama örneği adını özelleştir - + It controls the internal state update interval which in turn will affect UI updates Arayüz güncellemelerini etkileyecek olan dahili durum güncelleme aralığını denetler. - + Refresh interval Yenileme aralığı - + Resolve peer host names Kişi anamakine adlarını çöz - + IP address reported to trackers (requires restart) İzleyicilere bildirilen IP adresi (yeniden başlatma gerektirir) - + + Port reported to trackers (requires restart) [0: listening port] + İzleyicilere bildirilen bağlantı noktası (yeniden başlatma gerektirir) [0: dinlenen bağ. noktası] + + + Reannounce to all trackers when IP or port changed IP veya bağlantı noktası değiştiğinde tüm izleyicilere yeniden duyur - + Enable icons in menus Menülerde simgeleri etkinleştir - + + Attach "Add new torrent" dialog to main window + Ana pencereye "Yeni torrent ekle" ileti penceresi ekle + + + Enable port forwarding for embedded tracker Gömülü izleyici için bağlantı noktası yönlendirmeyi etkinleştir - + Enable quarantine for downloaded files İndirilen dosyalar için karantinayı etkinleştir - + Enable Mark-of-the-Web (MOTW) for downloaded files İndirilen dosyalar için Web İşaretini (MOTW) etkinleştir - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Sertifika doğrulamayı ve torrent dışı protokol etkinliklerini etkiler (örn. RSS bildirimleri, program güncellemeleri, torrent dosyaları, geoip veritabanı vb.) + + + + Ignore SSL errors + SSL hatalarını yoksay + + + (Auto detect if empty) (Boşsa otomatik algıla) - + Python executable path (may require restart) Python çalıştırılabilir dosya yolu (yeniden başlatma gerektirebilir) - + + Start BitTorrent session in paused state + BitTorrent oturumunu duraklatıldı durumunda başlat + + + + sec + seconds + san + + + + -1 (unlimited) + -1 (sınırsız) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent oturumunu kapatma zaman aşımı [-1: sınırsız] + + + Confirm removal of tracker from all torrents İzleyicinin tüm torrent'lerden kaldırılmasını onaylayın - + Peer turnover disconnect percentage Kişi devretme bağlantısını kesme yüzdesi - + Peer turnover threshold percentage Kişi devretme eşiği yüzdesi - + Peer turnover disconnect interval Kişi devretme bağlantısını kesme aralığı - + Resets to default if empty Boşsa varsayılana sıfırlanır - + DHT bootstrap nodes DHT önyükleme düğümleri - + I2P inbound quantity I2P gelen miktarı - + I2P outbound quantity I2P giden miktar - + I2P inbound length I2P gelen uzunluğu - + I2P outbound length I2P giden uzunluğu - + Display notifications Bildirimleri görüntüle - + Display notifications for added torrents Eklenen torrent'ler için bildirimleri görüntüle - + Download tracker's favicon İzleyicinin favicon'unu indir - + Save path history length Kaydetme yolu geçmişi uzunluğu - + Enable speed graphs Hız çizelgesini etkinleştir - + Fixed slots Sabit yuvalar - + Upload rate based Gönderme oranına dayalı - + Upload slots behavior Gönderme yuvaları davranışı - + Round-robin Dönüşümlü - + Fastest upload En hızlı gönderme - + Anti-leech Sömürü önleyici - + Upload choking algorithm Gönderme kısma algoritması - + Confirm torrent recheck Torrent'i yeniden denetlemeyi onayla - + Confirm removal of all tags Tüm etiketlerin kaldırılmasını onayla - + Always announce to all trackers in a tier Bir katmandaki tüm izleyicilere her zaman duyur - + Always announce to all tiers Tüm katmanlara her zaman duyur - + Any interface i.e. Any network interface Herhangi bir arayüz - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP karışık kip algoritması - + Resolve peer countries Kişi ülkelerini çöz - + Network interface Ağ arayüzü - + Optional IP address to bind to Bağlamak için isteğe bağlı IP adresi - + Max concurrent HTTP announces - En fazla eşzamanlı HTTP duyurusu + En fazla eşzamanlı HTTP duyurma - + Enable embedded tracker Gömülü izleyiciyi etkinleştir - + Embedded tracker port Gömülü izleyici bağlantı noktası + + AppController + + + + Invalid directory path + Geçersiz dizin yolu + + + + Directory does not exist + Dizin mevcut değil + + + + Invalid mode, allowed values: %1 + Geçersiz kip, izin verilen değerler: %1 + + + + cookies must be array + tanımlama bilgileri dizilim olmak zorundadır + + Application - + Running in portable mode. Auto detected profile folder at: %1 Taşınabilir kipte çalışıyor. Otomatik algılanan profil klasörü: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Gereksiz komut satırı işareti algılandı: "%1". Taşınabilir kipi göreceli hızlı devam anlamına gelir. - + Using config directory: %1 Kullanılan yapılandırma dizini: %1 - + Torrent name: %1 Torrent adı: %1 - + Torrent size: %1 Torrent boyutu: %1 - + Save path: %1 Kaydetme yolu: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent %1 içinde indirildi. - + + Thank you for using qBittorrent. qBittorrent'i kullandığınız için teşekkür ederiz. - + Torrent: %1, sending mail notification Torrent: %1, posta bildirimi gönderiliyor - + Add torrent failed Torrent ekleme başarısız oldu - + Couldn't add torrent '%1', reason: %2. Torrent '%1' eklenemedi, sebep: %2. - + The WebUI administrator username is: %1 Web Arayüzü yönetici kullanıcı adı: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Web Arayüzü yönetici parolası ayarlanmadı. Bu oturum için geçici bir parola verildi: %1 - + You should set your own password in program preferences. Program tercihlerinde kendi parolanızı belirlemelisiniz. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. Web Arayüzü etkisizleştirildi! Web Arayüzü'nü etkinleştirmek için yapılandırma dosyasını el ile düzenleyin. - + Running external program. Torrent: "%1". Command: `%2` Harici program çalıştırılıyor. Torrent: "%1". Komut: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Harici program çalıştırma başarısız. Torrent: "%1". Komut: `%2` - + Torrent "%1" has finished downloading Torrent "%1" dosyasının indirilmesi tamamlandı. - + WebUI will be started shortly after internal preparations. Please wait... Web Arayüzü, iç hazırlıklardan kısa bir süre sonra başlatılacaktır. Lütfen bekleyin... - - + + Loading torrents... Torrent'ler yükleniyor... - + E&xit Çı&kış - + I/O Error i.e: Input/Output Error G/Ç Hatası - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Sebep: %2 - + Torrent added Torrent eklendi - + '%1' was added. e.g: xxx.avi was added. '%1' eklendi. - + Download completed İndirme tamamlandı - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 başladı. İşlem kimliği: %2 - + + This is a test email. + Bu bir deneme e-postasıdır. + + + + Test email + E-postayı dene + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' dosyasının indirilmesi tamamlandı. - + Information Bilgi - + To fix the error, you may need to edit the config file manually. Hatayı düzeltmek için yapılandırma dosyasını el ile düzenlemeniz gerekebilir. - + To control qBittorrent, access the WebUI at: %1 qBittorrent'i denetlemek için şu Web Arayüzü adresine erişin: %1 - + Exit Çıkış - + Recursive download confirmation Tekrarlayan indirme onayı - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? '%1' torrent'i, .torrent dosyaları içeriyor, bunların indirilmeleri ile işleme devam etmek istiyor musunuz? - + Never Asla - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Torrent içinde tekrarlayan indirme .torrent dosyası. Kaynak torrent: "%1". Dosya: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Fiziksel bellek (RAM) kullanım sınırını ayarlama başarısız. Hata kodu: %1. Hata iletisi: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Fiziksel bellek (RAM) kullanım sabit sınırını ayarlama başarısız. İstenen boyut: %1. Sistem sabit sınırı: %2. Hata kodu: %3. Hata iletisi: "%4" - + qBittorrent termination initiated qBittorrent sonlandırması başlatıldı - + qBittorrent is shutting down... qBittorrent kapatılıyor... - + Saving torrent progress... Torrent ilerlemesi kaydediliyor... - + qBittorrent is now ready to exit qBittorrent artık çıkmaya hazır @@ -1609,12 +1715,12 @@ Öncelik: - + Must Not Contain: İçermemeli: - + Episode Filter: Bölüm Süzgeci: @@ -1667,263 +1773,263 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d &Dışa Aktar... - + Matches articles based on episode filter. Bölüm süzgecine dayalı eşleşen makaleler. - + 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ı mecburen sıfırdan farklı 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 - + Episode number is a mandatory positive value Bölüm numarası mecburen pozitif bir değerdir - + Rules Kurallar - + Rules (legacy) Kurallar (eski) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Sonsuz aralık: <b>1x25-;</b> birinci sezonun 25 ve sonraki bölümleri ve sonraki sezonların tüm bölümleri ile 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ı - + Invalid action Geçersiz eylem - + The list is empty, there is nothing to export. Liste boş, dışa aktarmak için hiçbir şey yok. - + Export RSS rules RSS kurallarını dışa aktar - + I/O Error G/Ç Hatası - + Failed to create the destination file. Reason: %1 Hedef dosya oluşturma başarısız. Sebep: %1 - + Import RSS rules RSS kurallarını içe aktar - + Failed to import the selected rules file. Reason: %1 Seçilen kurallar dosyasını içe aktarma başarısız. Sebep: %1 - + Add new rule... Yeni kural ekle... - + Delete rule Kuralı sil - + Rename rule... Kuralı yeniden adlandır... - + Delete selected rules Seçilen kuralları sil - + Clear downloaded episodes... İndirilmiş bölümleri temizle... - + Rule renaming Kural yeniden adlandırma - + Please type the new rule name Lütfen yeni kural adını yazın - + Clear downloaded episodes İndirilmiş bölümleri temizle - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Seçilen kural için indirilmiş bölümlerin listesini temizlemek istediğinize emin misiniz? - + Regex mode: use Perl-compatible regular expressions Regex kipi: Perl uyumlu düzenli ifadeleri kullanın - - + + Position %1: %2 Konum %1: %2 - + Wildcard mode: you can use Joker karakter kipi: - - + + Import error İçe aktarma hatası - + Failed to read the file. %1 Dosyayı okuma başarısız. %1 - + ? to match any single character herhangi bir tek karakterle eşleşmesi için ? kullanabilirsiniz - + * to match zero or more of any characters karakterden daha fazlasıyla eşleşmesi ya da hiç eşleşmemesi için * kullanabilirsiniz - + Whitespaces count as AND operators (all words, any order) VE işleticileri olarak boşluk sayısı kullanabilirsiniz (tüm kelimeler, herhangi bir sırada) - + | is used as OR operator | karakteri VEYA işleticisi olarak kullanılır - + If word order is important use * instead of whitespace. Eğer kelime sırası önemliyse boşluk yerine * kullanın. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Boş bir %1 ibaresi olan ifade (örn. %2) - + will match all articles. tüm makalelerle eşleşecek. - + will exclude all articles. tüm makaleleri hariç tutacak. @@ -1965,7 +2071,7 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Torrent devam klasörü oluşturulamıyor: "%1" @@ -1975,28 +2081,38 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d Devam verileri ayrıştırılamıyor: geçersiz biçim - - + + Cannot parse torrent info: %1 Torrent bilgisi ayrıştırılamıyor: %1 - + Cannot parse torrent info: invalid format Torrent bilgisi ayrıştırılamıyor: geçersiz biçim - + Mismatching info-hash detected in resume data Devam etme verilerinde uyumsuz bilgi adreslemesi algılandı - + + Corrupted resume data: %1 + Bozulmuş devam etme verileri: %1 + + + + save_path is invalid + save_path geçersiz + + + Couldn't save torrent metadata to '%1'. Error: %2. '%1' konumuna torrent üstverileri kaydedilemedi. Hata: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. '%1' konumuna torrent devam verileri kaydedilemedi. Hata: %2. @@ -2007,16 +2123,17 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d + Cannot parse resume data: %1 Devam verileri ayrıştırılamıyor: %1 - + Resume data is invalid: neither metadata nor info-hash was found Devam verileri geçersiz: ne üstveriler ne de bilgi adreslemesi bulundu - + Couldn't save data to '%1'. Error: %2 '%1' konumuna veriler kaydedilemedi. Hata: %2 @@ -2024,38 +2141,60 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d BitTorrent::DBResumeDataStorage - + Not found. Bulunamadı. - + Couldn't load resume data of torrent '%1'. Error: %2 '%1' torrent'inin devam verileri yüklenemedi. Hata: %2 - - + + Database is corrupted. Veritabanı bozuk. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Önceden Yazma Günlüğü (WAL) günlük kaydı kipi etkinleştirilemedi. Hata: %1. - + Couldn't obtain query result. Sorgu sonucu elde edilemedi. - + WAL mode is probably unsupported due to filesystem limitations. WAL kipi muhtemelen dosya sistemi sınırlamalarından dolayı desteklenmiyor. - + + + Cannot parse resume data: %1 + Devam verileri ayrıştırılamıyor: %1 + + + + + Cannot parse torrent info: %1 + Torrent bilgisi ayrıştırılamıyor: %1 + + + + Corrupted resume data: %1 + Bozulmuş devam etme verileri: %1 + + + + save_path is invalid + save_path geçersiz + + + Couldn't begin transaction. Error: %1 İşlem başlatılamadı. Hata: %1 @@ -2063,22 +2202,22 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Torrent üstverileri kaydedilemedi. Hata: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 '%1' torrent'i için devam verileri depolanamadı. Hata: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 '%1' torrent'inin devam verileri silinemedi. Hata: %2 - + Couldn't store torrents queue positions. Error: %1 Torrent'lerin kuyruk konumları depolanamadı. Hata: %1 @@ -2086,457 +2225,503 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Dağıtılan Adresleme Tablosu (DHT) desteği: %1 - - - - - - - - - + + + + + + + + + ON AÇIK - - - - - - - - - + + + + + + + + + OFF KAPALI - - + + Local Peer Discovery support: %1 Yerel Kişi Keşfi desteği: %1 - + Restart is required to toggle Peer Exchange (PeX) support Kişi Takası (PeX) desteğini değiştirmek için yeniden başlatma gerekir - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Torrent'i devam ettirme başarısız. Torrent: "%1". Sebep: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Torrent'i devam ettirme başarısız: tutarsız torrent kimliği algılandı. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Tutarsız veriler algılandı: yapılandırma dosyasında kategori eksik. Kategori kurtarılacak ancak ayarları varsayılana sıfırlanacaktır. Torrent: "%1". Kategori: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Tutarsız veriler algılandı: geçersiz kategori. Torrent: "%1". Kategori: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Kurtarılan kategorinin kaydetme yolları ile torrent'in şu anki kaydetme yolu arasında uyuşmazlık algılandı. Torrent şimdi Elle kipine geçirildi. Torrent: "%1". Kategori: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Tutarsız veriler algılandı: yapılandırma dosyasında etiket eksik. Etiket kurtarılacaktır. Torrent: "%1". Etiket: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Tutarsız veriler algılandı: geçersiz etiket. Torrent: "%1". Etiket: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Sistem uyandırma olayı algılandı. Tüm izleyicilere yeniden duyuruluyor... - + Peer ID: "%1" Kişi Kimliği: "%1" - + HTTP User-Agent: "%1" - HTTP Kullanıcı Tanıtıcısı: "%1" + HTTP Kullanıcı Aracısı: "%1" - + Peer Exchange (PeX) support: %1 Kişi Takası (PeX) desteği: %1 - - + + Anonymous mode: %1 İsimsiz kipi: %1 - - + + Encryption support: %1 Şifreleme desteği: %1 - - + + FORCED ZORLANDI - + Could not find GUID of network interface. Interface: "%1" Ağ arayüzünün GUID'si bulunamadı. Arayüz: "%1" - + Trying to listen on the following list of IP addresses: "%1" Şu IP adresleri listesi dinlenmeye çalışılıyor: "%1" - + Torrent reached the share ratio limit. Torrent paylaşım oranı sınırına ulaştı. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Torrent kaldırıldı. - - - - - - Removed torrent and deleted its content. - Torrent kaldırıldı ve içeriği silindi. - - - - - - Torrent paused. - Torrent duraklatıldı. - - - - - + Super seeding enabled. Süper gönderim etkinleştirildi. - + Torrent reached the seeding time limit. Torrent gönderim süresi sınırına ulaştı. - + Torrent reached the inactive seeding time limit. Torrent etkin olmayan gönderim süresi sınırına ulaştı. - + Failed to load torrent. Reason: "%1" Torrent'i yükleme başarısız. Sebep: "%1" - + I2P error. Message: "%1". I2P hatası. İleti: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP desteği: AÇIK - + + Saving resume data completed. + Devam etme verisinin kaydedilmesi tamamlandı. + + + + BitTorrent session successfully finished. + BitTorrent oturumu başarılı olarak tamamlandı. + + + + Session shutdown timed out. + Oturum kapatma zaman aşımına uğradı. + + + + Removing torrent. + Torrent kaldırılıyor. + + + + Removing torrent and deleting its content. + Torrent kaldırılıyor ve içeriği siliniyor. + + + + Torrent stopped. + Torrent durduruldu. + + + + Torrent content removed. Torrent: "%1" + Torrent içeriği kaldırıldı. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Torrent içeriğini kaldırma başarısız. Torrent: "%1". Hata: "%2" + + + + Torrent removed. Torrent: "%1" + Torrent kaldırıldı. Torrent: "%1" + + + + Merging of trackers is disabled + İzleyicilerin birleştirilmesi etkisizleştirildi + + + + Trackers cannot be merged because it is a private torrent + İzleyiciler özel bir torrent olduğundan birleştirilemez + + + + Trackers are merged from new source + İzleyiciler yeni kaynaktan birleştirildi + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP desteği: KAPALI - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Torrent'i dışa aktarma başarısız. Torrent: "%1". Hedef: "%2". Sebep: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Devam etme verilerini kaydetme iptal edildi. Bekleyen torrent sayısı: %1 - + The configured network address is invalid. Address: "%1" Yapılandırılan ağ adresi geçersiz. Adres: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Dinlenecek yapılandırılmış ağ adresini bulma başarısız. Adres: "%1" - + The configured network interface is invalid. Interface: "%1" Yapılandırılan ağ arayüzü geçersiz. Arayüz: "%1" - + + Tracker list updated + İzleyici listesi güncellendi + + + + Failed to update tracker list. Reason: "%1" + İzleyici listesini güncelleme başarısız. Sebep: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Yasaklı IP adresleri listesi uygulanırken geçersiz IP adresi reddedildi. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Torrent'e izleyici eklendi. Torrent: "%1". İzleyici: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Torrent'ten izleyici kaldırıldı. Torrent: "%1". İzleyici: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Torrent'e URL gönderimi eklendi. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Torrent'ten URL gönderimi kaldırıldı. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent duraklatıldı. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Parça dosyasını kaldırma başarısız. Torrent: "%1". Sebep: "%2". - + Torrent resumed. Torrent: "%1" Torrent devam ettirildi. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Torrent indirme tamamlandı. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Torrent'i taşıma iptal edildi. Torrent: "%1". Kaynak: "%2". Hedef: "%3" - + + Duplicate torrent + Kopya torrent + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + Kopya bir torrent ekleme girişimi algılandı. Varolan torrent: "%1". Torrent bilgisi adreslemesi: %2. Sonuç: %3 + + + + Torrent stopped. Torrent: "%1" + Torrent durduruldu. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Torrent'i taşımayı kuyruğa alma başarısız. Torrent: "%1". Kaynak: "%2". Hedef: "%3". Sebep: torrent şu anda hedefe taşınıyor - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Torrent'i taşımayı kuyruğa alma başarısız. Torrent: "%1". Kaynak: "%2". Hedef: "%3". Sebep: her iki yol da aynı konumu işaret ediyor - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Torrent'i taşıma kuyruğa alındı. Torrent: "%1". Kaynak: "%2". Hedef: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Torrent'i taşıma başladı. Torrent: "%1". Hedef: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Kategorilerin yapılandırmasını kaydetme başarısız. Dosya: "%1". Hata: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Kategorilerin yapılandırmasını ayrıştırma başarısız. Dosya: "%1". Hata: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 IP süzgeç dosyası başarılı olarak ayrıştırıldı. Uygulanan kural sayısı: %1 - + Failed to parse the IP filter file IP süzgeci dosyasını ayrıştırma başarısız - + Restored torrent. Torrent: "%1" Torrent geri yüklendi. Torrent: "%1" - + Added new torrent. Torrent: "%1" Yeni torrent eklendi. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent hata verdi. Torrent: "%1". Hata: "%2" - - - Removed torrent. Torrent: "%1" - Torrent kaldırıldı. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Torrent kaldırıldı ve içeriği silindi. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent'te SSL parametreleri eksik. Torrent: "%1". İleti: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Dosya hata uyarısı. Torrent: "%1". Dosya: "%2". Sebep: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP bağlantı noktası eşleme başarısız oldu. İleti: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP bağlantı noktası eşleme başarılı oldu. İleti: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP süzgeci - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). süzülmüş bağlantı noktası (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). yetkili bağlantı noktası (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL gönderim bağlantısı başarısız oldu. Torrent: "%1". URL: "%2". Hata: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent oturumu ciddi bir hatayla karşılaştı. Sebep: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 proksi hatası. Adres: %1. İleti: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 karışık kip kısıtlamaları - + Failed to load Categories. %1 Kategorileri yükleme başarısız. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Kategorilerin yapılandırmasını yükleme başarısız. Dosya: "%1". Hata: "Geçersiz veri biçimi" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Torrent kaldırıldı ancak içeriğini ve/veya parça dosyasını silme başarısız. Torrent: "%1". Hata: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 etkisizleştirildi - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 etkisizleştirildi - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL gönderim DNS araması başarısız oldu. Torrent: "%1", URL: "%2", Hata: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - URL gönderiminden hata iletisi alındı. Torrent: "%1", URL: "%2", İleti: "%3" + URL gönderiminden hata iletisi alındı. Torrent: "%1". URL: "%2". İleti: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" IP üzerinde başarılı olarak dinleniyor. IP: "%1". Bağlantı Noktası: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" IP üzerinde dinleme başarısız. IP: "%1", Bağlantı Noktası: "%2/%3". Sebep: "%4" - + Detected external IP. IP: "%1" Dış IP algılandı. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Hata: İç uyarı kuyruğu doldu ve uyarılar bırakıldı, performansın düştüğünü görebilirsiniz. Bırakılan uyarı türü: "%1". İleti: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Torrent başarılı olarak taşındı. Torrent: "%1". Hedef: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Torrent'i taşıma başarısız. Torrent: "%1". Kaynak: "%2". Hedef: "%3". Sebep: "%4" @@ -2546,19 +2731,19 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d Failed to start seeding. - + Gönderime başlama başarısız. BitTorrent::TorrentCreator - + Operation aborted İşlem iptal edildi - - + + Create new torrent file failed. Reason: %1. Yeni torrent dosyası oluşturma başarısız oldu. Sebep: %1. @@ -2566,67 +2751,67 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 "%1" kişisini "%2" torrent'ine ekleme başarısız. Sebep: %3 - + Peer "%1" is added to torrent "%2" Kişi "%1", "%2" torrent'ine eklendi - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Beklenmeyen veri algılandı. Torrent: %1. Veri: toplam_istenen=%2 toplam_istenen_tamamlanmış=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Dosyaya yazılamadı. Sebep: "%1". Torrent artık "sadece gönderme" kipinde. - + Download first and last piece first: %1, torrent: '%2' Önce ilk ve son parçayı indir: %1, torrent: '%2' - + On Açık - + Off Kapalı - + Failed to reload torrent. Torrent: %1. Reason: %2 Torrent'i yeniden yükleme başarısız. Torrent: %1. Sebep: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Devam etme verileri oluşturma başarısız oldu. Torrent: "%1". Sebep: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Torrent'i geri yükleme başarısız. Dosyalar muhtemelen taşındı veya depolama erişilebilir değil. Torrent: "%1". Sebep: "%2" - + Missing metadata Eksik üstveri - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Dosya yeniden adlandırma başarısız oldu. Torrent: "%1", dosya: "%2", sebep: "%3" - + Performance alert: %1. More info: %2 Performans uyarısı: %1. Daha fazla bilgi: %2 @@ -2647,189 +2832,189 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Parametre '%1', '%1=%2' sözdizimi şeklinde olmak zorunda - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Parametre '%1', '%1=%2' sözdizimi şeklinde olmak zorunda - + Expected integer number in environment variable '%1', but got '%2' Ortam değişkeni '%1' içinde beklenen tam sayı, ancak '%2' var - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Parametre '%1', '%1=%2' sözdizimi şeklinde olmak zorunda - - - + Expected %1 in environment variable '%2', but got '%3' Ortam değişkeni '%2' içinde beklenen %1, ancak '%3' var - - + + %1 must specify a valid port (1 to 65535). %1 geçerli bir bağlantı noktasını belirtmek zorunda (1'den 65535'e). - + Usage: Kullanım: - + [options] [(<filename> | <url>)...] [seçenekler] [(<filename> | <url>)...] - + Options: Seçenekler: - + Display program version and exit Program sürümünü görüntüle ve çık - + Display this help message and exit Bu yardım iletisini görüntüle ve çık - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Parametre '%1', '%1=%2' sözdizimi şeklinde olmak zorunda + + + Confirm the legal notice Yasal bildiriyi onayla - - + + port b.noktası - + Change the WebUI port Web Arayüzü bağlantı noktasını değiştir - + Change the torrenting port Torrent kullanım bağlantı noktasını değiştir - + Disable splash screen Karşılama ekranını etkisizleştir - + Run in daemon-mode (background) Arka plan programı kipinde çalıştır (arka planda) - + dir Use appropriate short form or abbreviation of "directory" dizin - + Store configuration files in <dir> Yapılandırma dosyalarını <dir> içinde depola - - + + name ad - + Store configuration files in directories qBittorrent_<name> Yapılandırma dosyalarını qBittorrent_<dir> dizinlerinde depola - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Libtorrent hızlı devam dosyaları içine girin ve dosya yollarını profil dizinine göre yapın - + files or URLs dosyalar veya URL'ler - + Download the torrents passed by the user Kullanıcı tarafından atlanan torrent'leri indir - + Options when adding new torrents: Yeni torrent'ler eklenirken seçenekler: - + path yol - + Torrent save path Torrent kaydetme yolu - - Add torrents as started or paused - Torrent'leri başlatıldı veya duraklatıldı olarak ekle + + Add torrents as running or stopped + Torrent'leri çalışıyor veya durduruldu olarak ekle - + Skip hash check Adresleme denetimini atla - + Assign torrents to category. If the category doesn't exist, it will be created. Torrent'leri kategoriye ata. Eğer kategori mevcut değilse, oluşturulacaktır. - + Download files in sequential order Dosyaları sıralı düzende indir - + Download first and last pieces first Önce ilk ve son parçaları indir - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Bir torrent eklenirken "Yeni Torrent Ekle" ileti penceresinin açılıp açılmayacağını belirle. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Ortam değişkenleri aracılığıyla seçenek değerleri sağlanabilir. 'parameter-name' olarak adlandırılan seçenek için ortam değişkeni adı 'QBT_PARAMETER_NAME'dir (büyük harf olarak, '-' karakteri '_' ile değiştirildi). İşaretleme değerlerini geçmek için değişkeni '1' veya 'TRUE' olarak ayarlayın. Örneğin, karşılama ekranını etkisizleştirmek için: - + Command line parameters take precedence over environment variables Komut satırı parametreleri ortam değişkenleri üzerinde öncelik alır - + Help Yardım @@ -2881,13 +3066,13 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d - Resume torrents - Torrent'lere devam et + Start torrents + Torrent'leri başlat - Pause torrents - Torrent'leri duraklat + Stop torrents + Torrent'leri durdur @@ -2898,15 +3083,20 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d ColorWidget - + Edit... Düzenle... - + Reset Sıfırla + + + System + Sistem + CookiesDialog @@ -2947,12 +3137,12 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d CustomThemeSource - + Failed to load custom theme style sheet. %1 Özel tema stil sayfasını yükleme başarısız. %1 - + Failed to load custom theme colors. %1 Özel tema renklerini yükleme başarısız. %1 @@ -2960,7 +3150,7 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d DefaultThemeSource - + Failed to load default theme colors. %1 Varsayılan tema renklerini yükleme başarısız. %1 @@ -2979,23 +3169,23 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d - Also permanently delete the files - Ayrıca dosyaları kalıcı olarak sil + Also remove the content files + Ayrıca içerik dosyalarını kaldır - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? '%1' dosyasını aktarım listesinden kaldırmak istediğinize emin misiniz? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Bu %1 torrent'i aktarım listesinden kaldırmak istediğinize emin misiniz? - + Remove Kaldır @@ -3008,12 +3198,12 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d URL'lerden indir - + Add torrent links Torrent bağlantılarını ekleyin - + One link per line (HTTP links, Magnet links and info-hashes are supported) Her satıra bir bağlantı (HTTP bağlantıları, Magnet bağlantıları ve bilgi adreslemeleri desteklenir) @@ -3023,12 +3213,12 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d İndir - + No URL entered Girilmiş URL yok - + Please type at least one URL. Lütfen en az bir URL yazın. @@ -3187,25 +3377,48 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d Ayrıştırma Hatası: Süzgeç dosyası geçerli bir PeerGuardian P2B dosyası değil. + + FilterPatternFormatMenu + + + Pattern Format + Şekil Biçimi + + + + Plain text + Düz metin + + + + Wildcards + Joker karakterler + + + + Regular expression + Düzenli ifadeler + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Torrent indiriliyor... Kaynak: "%1" - - Trackers cannot be merged because it is a private torrent - İzleyiciler özel bir torrent olduğundan birleştirilemez - - - + Torrent is already present Torrent zaten mevcut - + + Trackers cannot be merged because it is a private torrent. + İzleyiciler özel bir torrent olduğundan birleştirilemez. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' zaten aktarım listesinde. İzleyicileri yeni kaynaktan birleştirmek istiyor musunuz? @@ -3213,38 +3426,38 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d 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 - + Database corrupted: no data section found. Veritabanı bozuldu: bulunan veri bölümü yok. @@ -3252,17 +3465,17 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Http istek boyutu sınırlamayı aşıyor, soket kapatılıyor. Sınır: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Hatalı Http istek yöntemi, soket kapatılıyor. IP: %1. Yöntem: "%2" - + Bad Http request, closing socket. IP: %1 Kötü Http isteği, soket kapatılıyor. IP: %1 @@ -3303,26 +3516,60 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d IconWidget - + Browse... Gözat... - + Reset Sıfırla - + Select icon Simge seç - + Supported image files Desteklenen resim dosyaları + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Güç yönetimi uygun D-Bus arayüzünü buldu. Arayüz: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + Güç yönetimi hatası. Uygun D-Bus arayüzü bulunamadı. + + + + + + Power management error. Action: %1. Error: %2 + Güç yönetimi hatası. Eylem: %1. Hata: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Güç yönetimi beklenmeyen hata. Durum: %1. Hata: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 engellendi. Sebep: %2. - + %1 was banned 0.0.0.0 was banned %1 yasaklandı @@ -3369,60 +3616,60 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 bilinmeyen bir komut satırı parametresidir. - - + + %1 must be the single command line parameter. %1 tek komut satırı parametresi olmak zorundadır. - + Run application with -h option to read about command line parameters. Komut satırı parametreleri hakkında bilgi için uygulamayı -h seçeneği ile çalıştırın. - + Bad command line Hatalı komut satırı - + Bad command line: Hatalı komut satırı: - + An unrecoverable error occurred. Kurtarılamaz bir hata meydana geldi. + - qBittorrent has encountered an unrecoverable error. qBittorrent kurtarılamaz bir hatayla karşılaştı. - + You cannot use %1: qBittorrent is already running. %1'i kullanamazsınız: qBittorrent zaten çalışıyor. - + Another qBittorrent instance is already running. Başka bir qBittorrent örneği zaten çalışıyor. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Beklenmeyen qBittorrent örneği bulundu. Bu örnekten çıkılıyor. Şu anki işlem kimliği: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Arka plan programı işletmede hata oldu. Sebep: "%1". Hata kodu: %2. @@ -3435,609 +3682,681 @@ Desteklenen biçimler: S01E01, 1x1, 2017.12.31 ve 31.12.2017 (Tarih biçimleri d 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... - - &Resume - &Devam - - - + &Remove &Kaldır - + Torrent &Creator Torrent &Oluşturucu - - + + 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 - + Status &Bar Durum Çu&buğu - + Filters Sidebar Süzgeçler Kenar Çubuğu - + 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 Kili&tle - + Do&nate! &Bağış Yap! - + + Sh&utdown System + Bil&gisayarı Kapat + + + &Do nothing &Hiçbir şey yapma - + Close Window Pencereyi Kapat - - R&esume All - &Tümüne Devam - - - + Manage Cookies... Tanımlama Bilgilerini Yönet... - + Manage stored network cookies Depolanan ağ tanımlama bilgilerini yönet - + Normal Messages Normal İletiler - + Information Messages Bilgi İletileri - + Warning Messages Uyarı İletileri - + Critical Messages Önemli İletiler - + &Log &Günlük - + + Sta&rt + Başla&t + + + + Sto&p + Dur&dur + + + + R&esume Session + &Oturumu Devam Ettir + + + + Pau&se Session + Ot&urumu Duraklat + + + Set Global Speed Limits... Genel Hız Sınırlarını Ayarla... - + Bottom of Queue Kuyruğun En Altına - + Move to the bottom of the queue Kuyruğun en altına taşı - + Top of Queue Kuyruğun En Üstüne - + Move to the top of the queue Kuyruğun en üstüne taşı - + Move Down Queue Kuyruk Aşağı Taşı - + Move down in the queue Kuyrukta aşağı taşı - + Move Up Queue Kuyruk Yukarı Taşı - + Move up in the queue Kuyrukta yukarı taşı - + &Exit qBittorrent qBittorrent'ten Çı&k - + &Suspend System Bilgisayarı &Askıya Al - + &Hibernate System Bilgisayarı &Hazırda Beklet - - S&hutdown System - Bil&gisayarı Kapat - - - + &Statistics İ&statistikler - + Check for Updates Güncellemeleri Denetle - + Check for Program Updates Program Güncellemelerini Denetle - + &About &Hakkında - - &Pause - &Duraklat - - - - P&ause All - Tümünü D&uraklat - - - + &Add Torrent File... Torrent Dosyası &Ekle... - + Open - + E&xit Çı&kış - + Open URL URL'yi Aç - + &Documentation B&elgeler - + Lock Kilitle - - - + + + Show Göster - + Check for program updates Program güncellemelerini denetle - + 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üğü - + Clear the password Parolayı temizle - + &Set Password Parola &Ayarla - + Preferences Tercihler - + &Clear Password Parolayı &Temizle - + Transfers Aktarımlar - - + + qBittorrent is minimized to tray qBittorrent tepsiye simge durumuna küçültüldü - - - + + + This behavior can be changed in the settings. You won't be reminded again. Bu davranış ayarlar içinde değiştirilebilir. Size tekrar hatırlatılmayacaktır. - + 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: - + Are you sure you want to clear the password? Parolayı temizlemek istediğinize emin misiniz? - + Use regular expressions Düzenli ifadeleri kullan - + + + Search Engine + Arama Motoru + + + + Search has failed + Arama başarısız oldu + + + + Search has finished + Arama tamamlandı + + + Search Ara - + Transfers (%1) Aktarımlar (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent henüz güncellendi ve değişikliklerin etkili olması için yeniden başlatılması gerek. - + qBittorrent is closed to tray qBittorrent tepsiye kapatıldı - + Some files are currently transferring. Bazı dosyalar şu anda aktarılıyor. - + Are you sure you want to quit qBittorrent? qBittorrent'ten çıkmak istediğinize emin misiniz? - + &No &Hayır - + &Yes &Evet - + &Always Yes Her &Zaman Evet - + Options saved. Seçenekler kaydedildi. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [DURAKLATILDI] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [İ: %1, G: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Python yükleyicisi indirilemedi. Hata: %1. +Lütfen el ile yükleyin. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Python yükleyicisini yeniden adlandırma başarısız oldu. Kaynak: "%1". Hedef: "%2". + + + + Python installation success. + Python kurulumu başarılı oldu. + + + + Exit code: %1. + Çıkış kodu: %1. + + + + Reason: installer crashed. + Sebep: Yükleyici çöktü. + + + + Python installation failed. + Python kurulumu başarısız oldu. + + + + Launching Python installer. File: "%1". + Python yükleyicisi başlatılıyor. Dosya: "%1". + + + + Missing Python Runtime Eksik Python Çalışma Zamanı - + qBittorrent Update Available qBittorrent Güncellemesi Mevcut - + 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. - - + + Old Python Runtime Eski Python Çalışma Zamanı - + A new version is available. Yeni bir sürüm mevcut. - + Do you want to download %1? %1 sürümünü indirmek istiyor musunuz? - + Open changelog... Değişiklikleri aç... - + 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 &Denetle - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Python sürümünüz (%1) eski. En düşük gereksinim: %2. Şimdi daha yeni bir sürümü yüklemek istiyor musunuz? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Python sürümünüz (%1) eski. Arama motorlarının çalışması için lütfen en son sürüme yükseltin. En düşük gereksinim: %2. - + + Paused + Duraklatıldı + + + Checking for Updates... Güncellemeler denetleniyor... - + Already checking for program updates in the background Program güncellemeleri arka planda zaten denetleniyor - + + Python installation in progress... + Python kurulumu devam ediyor... + + + + Failed to open Python installer. File: "%1". + Python yükleyicisini açma başarısız. Dosya: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python yükleyicisi için MD5 adresleme denetimi başarısız. Dosya: "%1". Sonuç adresleme: "%2". Beklenen adresleme: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python yükleyicisi için SHA3-512 adresleme denetimi başarısız. Dosya: "%1". Sonuç adresleme: "%2". Beklenen adresleme: "%3". + + + 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 - + Filter torrents... - Torrent'leri süz... + Torrent'leri süzün... - + Filter by: - Şuna göre süz: + Süzme şekli: - + The password must be at least 3 characters long Parola en az 3 karakter uzunluğunda olmak zorundadır - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Torrent Dosyalarını Aç - + Torrent Files Torrent Dosyaları @@ -4232,7 +4551,12 @@ Lütfen el ile yükleyin. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL hatası, URL: "%1", hatalar: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" SSL hatası yoksayılıyor, URL: "%1", hatalar: "%2" @@ -5526,47 +5850,47 @@ Lütfen el ile yükleyin. Net::Smtp - + Connection failed, unrecognized reply: %1 Bağlantı başarısız oldu, tanınmayan yanıt: %1 - + Authentication failed, msg: %1 Kimlik doğrulaması başarısız oldu, ileti: %1 - + <mail from> was rejected by server, msg: %1 <mail from>, sunucu tarafından reddedildi, ileti: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>, sunucu tarafından reddedildi, ileti: %1 - + <data> was rejected by server, msg: %1 <data>, sunucu tarafından reddedildi, ileti: %1 - + Message was rejected by the server, error: %1 İleti sunucu tarafından reddedildi, hata: %1 - + Both EHLO and HELO failed, msg: %1 Hem EHLO hem de HELO başarısız oldu, ileti: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP sunucusu, desteklediğimiz [CRAM-MD5|PLAIN|LOGIN] kimlik doğrulama kiplerinden hiçbirini desteklemiyor gibi görünüyor, kimlik doğrulama atlanıyor, başarısız olma olasılığının yüksek olduğu biliniyor... Sunucu Yetkilendirme Kipleri: %1 - + Email Notification Error: %1 E-posta Bildirim Hatası: %1 @@ -5604,299 +5928,283 @@ Lütfen el ile yükleyin. BitTorrent - + RSS RSS - - Web UI - Web Arayüzü - - - + Advanced Gelişmiş - + Customize UI Theme... Arayüz Temasını Özelleştir... - + Transfer List Aktarım Listesi - + Confirm when deleting torrents Torrent'leri silerken onayla - - Shows a confirmation dialog upon pausing/resuming all the torrents - Tüm torrent'leri duraklatma/devam ettirme üzerine bir onay ileti penceresi gösterir - - - - Confirm "Pause/Resume all" actions - "Tümünü duraklat/Tümüne devam" eylemlerini onayla - - - + Use alternating row colors In table elements, every other row will have a grey background. Değişen satır renkleri kullan - + Hide zero and infinity values Sıfır ve sonsuz değerleri gizle - + Always Her zaman - - Paused torrents only - Sadece duraklatılmış torrent'leri - - - + Action on double-click Çift tıklama eylemi - + Downloading torrents: İndirilen torrent'ler: - - - Start / Stop Torrent - Torrent'i başlat / durdur - - - - + + Open destination folder Hedef klasörü aç - - + + No action Eylem yok - + Completed torrents: Tamamlanan torrent'ler: - + Auto hide zero status filters Sıfır durum süzgeçlerini otomatik gizle - + Desktop Masaüstü - + Start qBittorrent on Windows start up Windows başlangıcında qBittorrent'i başlat - + Show splash screen on start up Başlangıçta karşılama ekranı göster - + Confirmation on exit when torrents are active Torrent'ler etkinken çıkışta onay iste - + Confirmation on auto-exit when downloads finish İndirmeler tamamlandığında otomatik çıkışta onay iste - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>qBittorrent'i .torrent dosyaları ve/veya Magnet bağlantıları için varsayılan program<br/>olarak ayarlamak amacıyla <span style=" font-weight:600;">Denetim Masası</span>'ndaki <span style=" font-weight:600;">Varsayılan Programlar</span> ileti öğesini kullanabilirsiniz.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + Durum çubuğunda boş disk alanını göster + + + Torrent content layout: Torrent içerik düzeni: - + Original Orijinal - + Create subfolder Alt klasör oluştur - + Don't create subfolder Alt klasör oluşturma - + The torrent will be added to the top of the download queue Torrent, indirme kuyruğunun en üstüne eklenecektir - + Add to top of queue The torrent will be added to the top of the download queue Kuyruğun en üstüne ekle - + When duplicate torrent is being added Kopya torrent eklendiğinde - + Merge trackers to existing torrent İzleyicileri varolan torrent ile birleştir - + Keep unselected files in ".unwanted" folder Seçilmeyen dosyaları ".unwanted" klasöründe tut - + Add... Ekle... - + Options.. Seçenekler... - + Remove Kaldır - + Email notification &upon download completion İndirmenin tamamlanması ü&zerine e-posta bildirimi yap - + + Send test email + Deneme e-postası gönder + + + + Run on torrent added: + Torrent eklendiğinde çalıştır: + + + + Run on torrent finished: + Torrent tamamlandığında çalıştır: + + + Peer connection protocol: Kişi bağlantı protokolü: - + Any Herhangi - + I2P (experimental) I2P (deneysel) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Eğer &quot;karışık kip&quot; etkinleştirilirse, I2P torrent'lerinin izleyici dışında diğer kaynaklardan kişiler almasına ve herhangi bir isimsizleştirme sağlamadan normal IP'lere bağlanmasına izin verilir. Bu, eğer kullanıcı I2P'nin isimsizleştirilmesiyle ilgilenmiyorsa, ancak yine de I2P kişilerine bağlanabilmek istiyorsa yararlı olabilir.</p></body></html> - - - + Mixed mode Karışık kip - - Some options are incompatible with the chosen proxy type! - Bazı seçenekler, seçilen proksi türüyle uyumlu değil! - - - + If checked, hostname lookups are done via the proxy Eğer işaretlendiyse, anamakine adı aramaları proksi aracılığıyla yapılır - + Perform hostname lookup via proxy Proksi aracılığıyla anamakine adı araması gerçekleştir - + Use proxy for BitTorrent purposes BitTorrent amaçları için proksi kullan - + RSS feeds will use proxy RSS bildirimleri proksi kullanacak - + Use proxy for RSS purposes RSS amaçları için proksi kullan - + Search engine, software updates or anything else will use proxy Arama motoru, yazılım güncellemeleri veya başka herhangi bir şey proksi kullanacak - + Use proxy for general purposes Genel amaçlar için proksi kullan - + IP Fi&ltering IP Süz&me - + Schedule &the use of alternative rate limits Alternatif oran sı&nırları kullanımını zamanla - + From: From start time Bu saatten: - + To: To end time Bu saate: - + Find peers on the DHT network DHT ağındaki kişileri bul - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption Şifrelemeyi etkisizleştir: Sadece protokol şifrelemesi olmadan kişilere bağlan - + Allow encryption Şifrelemeye izin ver - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Daha fazla bilgi</a>) - + Maximum active checking torrents: En fazla etkin denetlenen torrent: - + &Torrent Queueing &Torrent Kuyruğu - + When total seeding time reaches Toplam gönderim şu süreye ulaştığında - + When inactive seeding time reaches Etkin olmayan gönderim şu süreye ulaştığında - - A&utomatically add these trackers to new downloads: - Bu izleyicileri &otomatik olarak yeni indirmelere ekle: - - - + RSS Reader RSS Okuyucu - + Enable fetching RSS feeds RSS bildirimlerini almayı etkinleştir - + Feeds refresh interval: Bildirimleri yenileme aralığı: - + Same host request delay: - + Aynı anamakine isteği gecikmesi: - + Maximum number of articles per feed: Bildirim başına en fazla makale sayısı: - - - + + + min minutes dak - + Seeding Limits Gönderim Sınırları - - Pause torrent - Torrent'i duraklat - - - + Remove torrent Torrent'i kaldır - + Remove torrent and its files Torrent'i ve dosyalarını kaldır - + Enable super seeding for torrent Torrent için süper gönderimi etkinleştir - + When ratio reaches Oran şu orana ulaştığında - + + Some functions are unavailable with the chosen proxy type! + Bazı işlevler seçilen proksi türüyle kullanılabilir değil! + + + + Note: The password is saved unencrypted + Not: Parola şifrelenmeden kaydedilir + + + + Stop torrent + Torrent'i durdur + + + + A&utomatically append these trackers to new downloads: + Bu izleyicileri yeni indirmelere &otomatik olarak ekle: + + + + Automatically append trackers from URL to new downloads: + İzleyicileri URL'den yeni indirmelere otomatik olarak ekle: + + + + URL: + URL: + + + + Fetched trackers + Getirilen izleyiciler + + + + Search UI + Arama arayüzü + + + + Store opened tabs + Açılan sekmeleri sakla + + + + Also store search results + Ayrıca arama sonuçlarını sakla + + + + History length + Geçmiş uzunluğu + + + RSS Torrent Auto Downloader RSS Torrent Otomatik İndirici - + Enable auto downloading of RSS torrents RSS torrent'lerini otomatik indirmeyi etkinleştir - + Edit auto downloading rules... Otomatik indirme kurallarını düzenle... - + RSS Smart Episode Filter RSS Akıllı Bölüm Süzgeci - + Download REPACK/PROPER episodes REPACK/PROPER bölümlerini indir - + Filters: Süzgeçler: - + Web User Interface (Remote control) Web Kullanıcı Arayüzü (Uzak denetim) - + IP address: IP adresi: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Bir IPv4 veya IPv6 adresi belirleyin. Herhangi bir IPv4 adresi için "0.0.0 herhangi bir IPv6 adresi için "::", ya da her iki IPv4 ve IPv6 içinse "*" belirtebilirsiniz. - + Ban client after consecutive failures: Art arda şu kadar hatadan sonra istemciyi yasakla: - + Never Asla - + ban for: yasaklama süresi: - + Session timeout: Oturum zaman aşımı: - + Disabled Etkisizleştirildi - - Enable cookie Secure flag (requires HTTPS) - Tanımlama bilgisi Güvenli işaretini etkinleştir (HTTPS gerektirir) - - - + Server domains: Sunucu etki alanları: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ sunucusu tarafından kullanılan etki alanı adlarına eklemelisiniz. Çoklu girişleri bölmek için ';' kullanın. '*' joker karakteri kullanılabilir. - + &Use HTTPS instead of HTTP HTTP yerine HTTPS &kullan - + Bypass authentication for clients on localhost Yerel makinedeki istemciler için kimlik doğrulamasını atlat - + Bypass authentication for clients in whitelisted IP subnets Beyaz listeye alınmış IP alt ağlarındaki istemciler için kimlik doğrulamasını atlat - + IP subnet whitelist... IP alt ağ beyaz listesi... - + + Use alternative WebUI + Alternatif Web Arayüzü kullan + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Yönlendirilen istemci adresini (X-Forwarded-For başlığı) kullanmak için ters proksi IP'lerini (veya alt ağları, örn. 0.0.0.0/24) belirtin. Birden çok girişi bölmek için ';' kullanın. - + Upda&te my dynamic domain name Değişken etki alanı adımı &güncelle - + Minimize qBittorrent to notification area qBittorrent'i bildirim alanına küçült - + + Search + Ara + + + + WebUI + Web Arayüzü + + + Interface Arayüz - + Language: Dil: - + + Style: + Stil: + + + + Color scheme: + Renk şeması: + + + + Stopped torrents only + Sadece durdurulmuş torrent'ler + + + + + Start / stop torrent + Torrent'i başlat / durdur + + + + + Open torrent options dialog + Torrent seçenekleri ileti penceresini aç + + + Tray icon style: Tepsi simgesi stili: - - + + Normal Normal - + File association Dosya ilişkilendirme - + Use qBittorrent for .torrent files .torrent dosyaları için qBittorrent'i kullan - + Use qBittorrent for magnet links Magnet bağlantıları için qBittorrent'i kullan - + Check for program updates Program güncellemelerini denetle - + Power Management Güç Yönetimi - + + &Log Files + &Günlük Dosyaları + + + Save path: Kaydetme yolu: - + Backup the log file after: Günlüğü şu boyuttan sonra yedekle: - + Delete backup logs older than: Şu süreden eski yedek günlükleri sil: - + + Show external IP in status bar + Durum çubuğunda dış IP'yi göster + + + When adding a torrent Bir torrent eklerken - + Bring torrent dialog to the front Torrent ileti penceresini öne getir - + + The torrent will be added to download list in a stopped state + Torrent, indirme listesine durduruldu durumunda eklenecektir + + + Also delete .torrent files whose addition was cancelled Aynı zamanda eklenmesi iptal edilmiş .torrent dosyalarını da sil - + Also when addition is cancelled Ayrıca ekleme iptal edildiğinde - + Warning! Data loss possible! Uyarı! Veri kaybı mümkün! - + Saving Management Kaydetme Yönetimi - + Default Torrent Management Mode: Varsayılan Torrent Yönetim Kipi: - + Manual Elle - + Automatic Otomatik - + When Torrent Category changed: Torrent Kategorisi değiştiğinde: - + Relocate torrent Torrent'in yerini değiştir - + Switch torrent to Manual Mode Torrent'i Elle Kipine değiştir - - + + Relocate affected torrents Etkilenen torrent'lerin yerini değiştir - - + + Switch affected torrents to Manual Mode Etkilenen torrent'leri Elle Kipine değiştir - + Use Subcategories Alt kategorileri kullan - + Default Save Path: Varsayılan Kaydetme Yolu: - + Copy .torrent files to: .torrent dosyalarını şuraya kopyala: - + Show &qBittorrent in notification area &qBittorrent'i bildirim alanında göster - - &Log file - &Günlük dosyası - - - + Display &torrent content and some options &Torrent içeriğini ve bazı seçenekleri görüntüle - + De&lete .torrent files afterwards Sonrasında .torrent dosyalarını si&l - + Copy .torrent files for finished downloads to: Tamamlanan indirmeler için .torrent dosyalarını şuraya kopyala: - + Pre-allocate disk space for all files Tüm dosyalar için disk alanını önceden ayır - + Use custom UI Theme Özel Arayüz Teması kullan - + UI Theme file: Arayüz Teması dosyası: - + Changing Interface settings requires application restart Arayüz ayarlarını değiştirmek uygulamanın yeniden başlatılmasını gerektirir - + Shows a confirmation dialog upon torrent deletion Torrent silme işlemi üzerine bir onay ileti penceresi gösterir - - + + Preview file, otherwise open destination folder Dosyayı önizle, aksi halde hedef klasörü aç - - - Show torrent options - Torrent seçeneklerini göster - - - + Shows a confirmation dialog when exiting with active torrents Etkin torrent'lerle çıkarken bir onay ileti penceresi gösterir - + When minimizing, the main window is closed and must be reopened from the systray icon Simge durumuna küçültürken, ana pencere kapatılır ve sistem tepsisi simgesinden yeniden açılmak zorundadır - + The systray icon will still be visible when closing the main window Ana pencereyi kapatırken sistem tepsisi simgesi yine de görünür olacaktır - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window qBittorrent'i bildirim alanına kapat - + Monochrome (for dark theme) Siyah beyaz (koyu tema için) - + Monochrome (for light theme) Siyah beyaz (açık tema için) - + Inhibit system sleep when torrents are downloading Torrent'ler indiriliyorken bilgisayarın uykuya geçmesini engelle - + Inhibit system sleep when torrents are seeding Torrent'ler gönderiliyorken bilgisayarın uykuya geçmesini engelle - + Creates an additional log file after the log file reaches the specified file size Günlük dosyası belirtilen dosya boyutuna ulaştıktan sonra ilave bir günlük dosyası oluşturur - + days Delete backup logs older than 10 days gün - + months Delete backup logs older than 10 months ay - + years Delete backup logs older than 10 years yıl - + Log performance warnings Performans uyarılarını günlükle - - The torrent will be added to download list in a paused state - Torrent, indirme listesine duraklatıldı durumunda eklenecektir - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state İndirmeyi otomatik olarak başlatma - + Whether the .torrent file should be deleted after adding it Eklendikten sonra .torrent dosyasının silinmesinin gerekip gerekmeyeceği - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Parçalanmayı en aza indirmek için indirmeleri başlatmadan önce diskte tam dosya boyutlarını ayır. Sadece HDD'ler için faydalıdır. - + Append .!qB extension to incomplete files Tamamlanmamış dosyalara .!qB uzantısı ekle - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Bir torrent indirildiğinde, içinde bulunan herhangi bir .torrent dosyasından torrent'leri eklemeyi teklif eder - + Enable recursive download dialog Tekrarlayan indirme ileti penceresini etkinleştir - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Otomatik: Çeşitli torrent özelliklerine (örn. kaydetme yolu) ilişkilendirilen kategori tarafından karar verilecektir Elle: Çeşitli torrent özellikleri (örn. kaydetme yolu) el ile atanmak zorundadır - + When Default Save/Incomplete Path changed: Varsayılan Kaydetme/Tamamlanmamış Yolu değiştiğinde: - + When Category Save Path changed: Kategori Kaydetme Yolu değiştiğinde: - + Use Category paths in Manual Mode Kategori yollarını Elle Kipinde kullan - + Resolve relative Save Path against appropriate Category path instead of Default one Göreceli Kaydetme Yolunu, Varsayılan yol yerine uygun Kategori yoluna göre çöz - + Use icons from system theme Sistem temasındaki simgeleri kullan - + Window state on start up: Başlangıçta pencere durumu: - + qBittorrent window state on start up Başlangıçta qBittorrent pencere durumu - + Torrent stop condition: Torrent durdurma koşulu: - - + + None Yok - - + + Metadata received Üstveriler alındı - - + + Files checked Dosyalar denetlendi - + Ask for merging trackers when torrent is being added manually Torrent el ile eklenirken izleyicileri birleştirmeyi iste - + Use another path for incomplete torrents: Tamamlanmamış torrent'ler için başka bir yol kullan: - + Automatically add torrents from: Torrent'leri otomatik olarak şuradan ekle: - + Excluded file names Hariç tutulan dosya adları - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ benioku.txt: tam dosya adını süzün. benioku[0-9].txt: 'benioku1.txt', 'benioku2.txt' dosyasını süzün, ancak 'benioku10.txt' dosyasını değil. - + Receiver Alan - + To: To receiver Kime: - + SMTP server: SMTP sunucusu: - + Sender Gönderen - + From: From sender Kimden: - + This server requires a secure connection (SSL) Bu sunucu güvenli bir bağlantı gerektirir (SSL) - - + + Authentication Kimlik doğrulaması - - - - + + + + Username: Kullanıcı adı: - - - - + + + + Password: Parola: - + Run external program Harici programı çalıştır - - Run on torrent added - Torrent eklendiğinde çalıştır - - - - Run on torrent finished - Torrent tamamlandığında çalıştır - - - + Show console window Konsol pencereni göster - + TCP and μTP TCP ve μTP - + Listening Port Dinlenen Bağlantı Noktası - + Port used for incoming connections: Gelen bağlantılar için kullanılan bağlantı noktası: - + Set to 0 to let your system pick an unused port Sisteminizin kullanılmayan bir bağlantı noktası seçmesine izin vermek için 0 olarak ayarlayın - + Random Rastgele - + Use UPnP / NAT-PMP port forwarding from my router Yönlendiricimden UPnP / NAT-PMP bağlantı noktası yönlendirmesi kullan - + Connections Limits Bağlantı Sınırları - + Maximum number of connections per torrent: Torrent başına en fazla bağlantı sayısı: - + Global maximum number of connections: Genel en fazla bağlantı sayısı: - + Maximum number of upload slots per torrent: Torrent başına en fazla gönderme yuvası sayısı: - + Global maximum number of upload slots: Genel en fazla gönderme yuvası sayısı: - + Proxy Server Proksi Sunucusu - + Type: - Türü: + Tür: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Anamakine: - - - + + + Port: B.Noktası: - + 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 - + A&uthentication Kimlik doğr&ulaması - - Info: The password is saved unencrypted - Bilgi: Parola şifrelenmeden kaydedilir - - - + Filter path (.dat, .p2p, .p2b): Süzgeç yolu (.dat, .p2p, .p2b): - + Reload the filter Süzgeci yeniden yükle - + Manually banned IP addresses... El ile yasaklanan IP adresleri... - + Apply to trackers İzleyicilere uygula - + Global Rate Limits Genel Oran Sınırları - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Gönderme: - - + + Download: İndirme: - + Alternative Rate Limits Alternatif Oran Sınırları - + Start time Başlangıç zamanı - + End time Bitiş zamanı - + When: Zaman: - + Every day Her gün - + Weekdays Hafta içi - + Weekends Hafta sonu - + Rate Limits Settings Oran Sınırı Ayarları - + Apply rate limit to peers on LAN Oran sınırını LAN üzerindeki kişilere uygula - + Apply rate limit to transport overhead Oran sınırını aktarım ekyüküne uygula - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Eğer "karışık kip" etkinleştirilirse, I2P torrent'lerinin izleyici dışında diğer kaynaklardan kişiler almasına ve herhangi bir isimsizleştirme sağlamadan normal IP'lere bağlanmasına izin verilir. Bu, eğer kullanıcı I2P'nin isimsizleştirilmesiyle ilgilenmiyorsa, ancak yine de I2P kişilerine bağlanabilmek istiyorsa yararlı olabilir.</p></body></html> + + + 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 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Kişileri uyumlu Bittorrent istemcileri ile değiştir (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Daha çok kişi bulmak için Kişi Takası'nı (PeX) etkinleştir - + Look for peers on your local network Yerel ağınızdaki kişileri arar - + 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: - + Require encryption Şifreleme gerekir - + Disable encryption Şifrelemeyi etkisizleştir - + 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 - + Maximum active downloads: En fazla aktif indirme: - + Maximum active uploads: En fazla aktif gönderme: - + Maximum active torrents: En fazla aktif torrent: - + Do not count slow torrents in these limits Yavaş torrent'leri bu sınırlar içinde sayma - + Upload rate threshold: Gönderme oranı eşiği: - + Download rate threshold: İndirme oranı eşiği: - - - - + + + + sec seconds san - + Torrent inactivity timer: Torrent boşta durma zamanlayıcısı: - + then ardından - + Use UPnP / NAT-PMP to forward the port from my router Yönlendiricimden bağlantı noktasını yönlendirmek için UPnP / NAT-PMP kullan - + Certificate: Sertifika: - + Key: Anahtar: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Sertifikalar hakkında bilgi</a> - + Change current password Şu anki parolayı değiştirin - - Use alternative Web UI - Alternatif Web Arayüzü kullan - - - + Files location: Dosyaların konumu: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Alternatif web arayüzü listesi</a> + + + Security Güvenlik - + Enable clickjacking protection Tıklama suistimali (clickjacking) korumasını etkinleştir - + Enable Cross-Site Request Forgery (CSRF) protection Siteler Arası İstek Sahtekarlığı (CSRF) korumasını etkinleştir - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Tanımlama bilgisi Güvenli işaretini etkinleştir (HTTPS veya localhost bağlantısı gerektirir) + + + Enable Host header validation Anamakine üstbilgi doğrulamasını etkinleştir - + Add custom HTTP headers Özel HTTP üstbilgilerini ekle - + Header: value pairs, one per line - Üstbilgi: değer çiftleri, satır başına bir + Üstbilgi: değer çiftleri, her satıra bir tane - + Enable reverse proxy support Ters proksi desteğini etkinleştir - + Trusted proxies list: Güvenilen proksiler listesi: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Ters proksi kurulum örnekleri</a> + + + Service: Hizmet: - + Register Kaydol - + Domain name: Etki alanı adı: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Bu seçenekleri etkinleştirerek, .torrent dosyalarınızı <strong>geri alınamaz bir şekilde kaybedebilirsiniz</strong>! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Eğer ikinci seçeneği (&ldquo;Ayrıca ekleme iptal edildiğinde&rdquo;) etkinleştirirseniz, &ldquo;Torrent ekle&rdquo; ileti penceresinde &ldquo;<strong>İptal</strong>&rdquo; düğmesine bassanız bile .torrent dosyası <strong>silinecektir</strong> - + Select qBittorrent UI Theme file qBittorrent Arayüz Teması dosyasını seç - + Choose Alternative UI files location Alternatif Arayüz dosyaları konumunu seçin - + Supported parameters (case sensitive): Desteklenen parametreler (büyük küçük harfe duyarlı): - + Minimized Simge durumunda - + Hidden Gizli - + Disabled due to failed to detect system tray presence Sistem tepsisi varlığının algılanması başarısız olduğundan dolayı etkisizleştirildi - + No stop condition is set. Ayarlanan durdurma koşulu yok. - + Torrent will stop after metadata is received. Torrent, üstveriler alındıktan sonra duracak. - Torrents that have metadata initially aren't affected. - Başlangıçta üstverileri olan torrent'ler etkilenmez. - - - + Torrent will stop after files are initially checked. Torrent, dosyalar başlangıçta denetlendikten sonra duracak. - + This will also download metadata if it wasn't there initially. Bu, başlangıçta orada değilse, üstverileri de indirecek. - + %N: Torrent name %N: Torrent adı - + %L: Category %L: Kategori - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") İpucu: Metnin boşluktan kesilmesini önlemek için parametreyi tırnak işaretleri arasına alın (örn., "%N") - + + Test email + E-postayı dene + + + + Attempted to send email. Check your inbox to confirm success + E-posta gönderilmeye çalışıldı. Başarılı olup olmadığını onaylamak için gelen kutunuzu gözden geçirin + + + (None) (Yok) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Bir torrent, indirme ve gönderme oranları bu "Torrent boşta durma zamanlayıcısı" saniye değerinin altında kalırsa yavaş sayılacaktır - + Certificate Sertifika - + Select certificate Sertifika seç - + Private key Özel anahtar - + Select private key Özel anahtar seç - + WebUI configuration failed. Reason: %1 Web Arayüzü yapılandırması başarısız oldu. Sebep: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + Windows karanlık koyu kipi ile en iyi uyumluluk için %1 önerilir + + + + System + System default Qt style + Sistem + + + + Let Qt decide the style for this system + Bu sistemin stiline Qt'nin karar vermesine izin verin + + + + Dark + Dark color scheme + Koyu + + + + Light + Light color scheme + Açık + + + + System + System color scheme + Sistem + + + Select folder to monitor İzlemek için bir klasör seçin - + Adding entry failed Giriş ekleme başarısız oldu - + The WebUI username must be at least 3 characters long. Web Arayüzü kullanıcı adı en az 3 karakter uzunluğunda olmak zorundadır. - + The WebUI password must be at least 6 characters long. Web Arayüzü parolası en az 6 karakter uzunluğunda olmak zorundadır. - + Location Error Konum Hatası - - + + Choose export directory Dışa aktarma dizini seçin - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Bu seçenekler etkinleştirildiğinde, dosyalar başarılı olarak indirme kuyruğuna eklendikten (ilk seçenek) ya da eklenmedikten (ikinci seçenek) sonra qBittorrent .torrent dosyalarını <strong>silecek</strong>. Bu, sadece &ldquo;Torrent ekle&rdquo; menüsü eylemi aracılığıyla açılan dosyalara <strong>değil</strong> ayrıca <strong>dosya türü ilişkilendirmesi</strong> aracılığıyla açılanlara da uygulanacaktır - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent Arayüz Teması dosyası (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Etiketler (virgülle ayırarak) - + %I: Info hash v1 (or '-' if unavailable) %I: Bilgi adreslemesi v1 (veya yoksa '-') - + %J: Info hash v2 (or '-' if unavailable) %J: Bilgi adreslemesi v2 (veya yoksa '-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent Kimliği (ya v1 torrent için sha-1 bilgi adreslemesi ya da v2/hybrid torrent için kesilmiş sha-256 bilgi adreslemesi) - - - + + + Choose a save directory Bir kaydetme dizini seçin - + Torrents that have metadata initially will be added as stopped. - + Başlangıçta üstverileri olan torrent'ler durduruldu olarak eklenecektir. - + Choose an IP filter file Bir IP süzgeci dosyası seçin - + All supported filters Tüm desteklenen süzgeçler - + The alternative WebUI files location cannot be blank. Alternatif Web Arayüzü dosyaları konumu boş olamaz. - + 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ı. - + Preferences Tercihler - + Time Error Zaman Hatası - + The start time and the end time can't be the same. Başlangıç zamanı ve bitiş zamanı aynı olamaz. - - + + Length Error Uzunluk Hatası @@ -7335,241 +7765,246 @@ benioku[0-9].txt: 'benioku1.txt', 'benioku2.txt' dosyasını PeerInfo - + Unknown Bilinmiyor - + Interested (local) and choked (peer) İlgilenen (yerel) ve sıkışan (kişi) - + Interested (local) and unchoked (peer) İlgilenen (yerel) ve sıkışmayan (kişi) - + Interested (peer) and choked (local) İlgilenen (kişi) ve sıkışan (yerel) - + Interested (peer) and unchoked (local) İlgilenen (kişi) ve sıkışmayan (yerel) - + Not interested (local) and unchoked (peer) İlgilenmeyen (yerel) ve sıkışmayan (kişi) - + Not interested (peer) and unchoked (local) İlgilenmeyen (kişi) ve sıkışmayan (yerel) - + Optimistic unchoke İyimser sıkışmama - + Peer snubbed Kişi geri çevrildi - + Incoming connection Gelen bağlantı - + Peer from DHT DHT'den kişi - + Peer from PEX PEX'ten kişi - + Peer from LSD LSD'den kişi - + Encrypted traffic Şifrelenmiş trafik - + Encrypted handshake Şifrelenmiş görüşme + + + Peer is using NAT hole punching + Kişi, NAT delik delme kullanıyor + PeerListWidget - + Country/Region Ülke/Bölge - + IP/Address IP/Adres - + Port B.Noktası - + Flags İşaretler - + Connection Bağlantı - + Client i.e.: Client application İstemci - + Peer ID Client i.e.: Client resolved from Peer ID Kişi Kimliği İstemcisi - + Progress i.e: % downloaded İlerleme - + Down Speed i.e: Download speed İnd. Hızı - + Up Speed i.e: Upload speed Gön. 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 - + Files i.e. files that are being downloaded right now Dosyalar - + Column visibility Sütun görünürlüğü - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır - + Add peers... Kişileri ekle... - - + + Adding peers Kişiler ekleniyor - + Some peers cannot be added. Check the Log for details. Bazı kişiler eklenemiyor. Ayrıntılar için Günlüğü gözden geçirin. - + Peers are added to this torrent. Kişiler bu torrent'e eklendi. - - + + Ban peer permanently Kişiyi kalıcı olarak yasakla - + Cannot add peers to a private torrent Özel torrent'e kişiler eklenemiyor - + Cannot add peers when the torrent is checking Torrent denetlenirken kişiler eklenemiyor - + Cannot add peers when the torrent is queued Torrent kuyruğa alındığında kişiler eklenemiyor - + No peer was selected Hiç kişi seçilmedi - + Are you sure you want to permanently ban the selected peers? Seçilen kişileri kalıcı olarak yasaklamak istediğinize emin misiniz? - + Peer "%1" is manually banned Kişi "%1" el ile yasaklandı - + N/A Yok - + Copy IP:port IP:b.noktasını kopyala @@ -7584,10 +8019,10 @@ benioku[0-9].txt: 'benioku1.txt', 'benioku2.txt' dosyasını List of peers to add (one IP per line): - Eklemek için kişilerin listesi (her satıra bir IP): + Eklenecek kişilerin listesi (her satıra bir IP): - + Format: IPv4:port / [IPv6]:port Biçim: IPv4:b.noktası / [IPv6]:b.noktası @@ -7628,27 +8063,27 @@ benioku[0-9].txt: 'benioku1.txt', 'benioku2.txt' dosyasını PiecesBar - + Files in this piece: Bu parçadaki dosyalar: - + File in this piece: Bu parçadaki dosya: - + File in these pieces: Bu parçalardaki dosya: - + Wait until metadata become available to see detailed information Ayrıntılı bilgileri görmek için üstveri mevcut olana kadar bekle - + Hold Shift key for detailed information Ayrıntılı bilgiler için Shift tuşunu basılı tutun @@ -7661,58 +8096,58 @@ benioku[0-9].txt: 'benioku1.txt', 'benioku2.txt' dosyasını Arama eklentileri - + Installed search plugins: Yüklenmiş arama eklentileri: - + Name Ad - + Version Sürüm - + Url Url - - + + Enabled Etkinleştirildi - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Uyarı: Bu arama motorlarının herhangi birinden torrent'leri indirirken ülkenizin telif hakkı yasalarına uyulduğundan emin olun. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Yeni bir tane yükle - + Check for updates Güncellemeleri denetle - + Close Kapat - + Uninstall Kaldır @@ -7832,98 +8267,65 @@ Bu eklentiler etkisizleştirildi. Eklenti kaynağı - + Search plugin source: Arama eklentisi kaynağı: - + Local file Yerel dosya - + Web link Web bağlantısı - - PowerManagement - - - qBittorrent is active - qBittorrent etkin - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Güç yönetimi uygun D-Bus arayüzünü buldu. Arayüz: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Güç yönetimi hatası. Uygun D-Bus arayüzü bulunamadı. - - - - - - Power management error. Action: %1. Error: %2 - Güç yönetimi hatası. Eylem: %1. Hata: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Güç yönetimi beklenmeyen hata. Durum: %1. Hata: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: "%1" torrent'inden aşağıdaki dosyalar önizlemeyi destekliyor, lütfen bunlardan birini seçin: - + Preview Önizle - + Name Ad - + Size Boyut - + Progress İlerleme - + Preview impossible Önizleme imkansız - + Sorry, we can't preview this file: "%1". Üzgünüz, bu dosyayı önizletemiyoruz: "%1". - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır @@ -7936,27 +8338,27 @@ Bu eklentiler etkisizleştirildi. Private::FileLineEdit - + Path does not exist Yol mevcut değil - + Path does not point to a directory Yol bir dizini işaret etmiyor - + Path does not point to a file Yol bir dosyayı işaret etmiyor - + Don't have read permission to path Yol için okuma izni yok - + Don't have write permission to path Yol için yazma izni yok @@ -7997,12 +8399,12 @@ Bu eklentiler etkisizleştirildi. PropertiesWidget - + Downloaded: İndirilen: - + Availability: Kullanılabilirlik: @@ -8017,53 +8419,53 @@ Bu eklentiler etkisizleştirildi. Aktarım - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 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: @@ -8073,193 +8475,220 @@ Bu eklentiler etkisizleştirildi. Bağlantı: - + Information Bilgi - + Info Hash v1: Bilgi Adreslemesi v1: - + Info Hash v2: Bilgi Adreslemesi v2: - + Comment: Açıklama: - + Select All Tümünü Seç - + Select None Hiçbirini Seçme - + Share Ratio: Paylaşma Oranı: - + Reannounce In: - Yeniden Duyuru Süresi: + Yeniden Duyurma Süresi: - + Last Seen Complete: Tam Halinin Görülmesi: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Oran / Etkin Süre (ay cinsinden), torrent'in ne kadar yaygın olduğunu gösterir + + + + Popularity: + Yaygınlık: + + + Total Size: Toplam Boyut: - + Pieces: Parça: - + Created By: Oluşturan: - + Added On: Eklenme: - + Completed On: Tamamlanma: - + Created On: Oluşturma: - + + Private: + Özel: + + + Save Path: Kaydetme Yolu: - + 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) - - + + + N/A Yok - + + Yes + Evet + + + + No + Hayır + + + %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) - - New Web seed - Yeni Web gönderimi + + Add web seed + Add HTTP source + Web gönderimi ekle - - Remove Web seed - Web gönderimini kaldır + + Add web seed: + Web gönderimi ekle: - - Copy Web seed URL - Web gönderim URL'sini kopyala + + + This web seed is already in the list. + Bu web gönderimi zaten listede. - - Edit Web seed URL - Web gönderim URL'sini düzenle - - - + Filter files... Dosyaları süzün... - + + Add web seed... + Web gönderimi ekle... + + + + 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... + + + Speed graphs are disabled Hız grafikleri etkisizleştirildi - + You can enable it in Advanced Options Bunu Gelişmiş Seçenekler'de etkinleştirebilirsiniz - - 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: @@ -8267,33 +8696,33 @@ Bu eklentiler etkisizleştirildi. RSS::AutoDownloader - - + + Invalid data format. Geçersiz veri biçimi. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 %1 içine RSS Otoİndirici verileri kaydedilemedi. Hata: %2 - + Invalid data format Geçersiz veri biçimi - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS makalesi '%1', '%2' kuralı tarafından kabul edildi. Torrent eklenmeye çalışılıyor... - + Failed to read RSS AutoDownloader rules. %1 RSS Otoİndirici kurallarını okuma başarısız. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 RSS Otoİndirici kuralları yüklenemedi. Sebep: %1 @@ -8301,22 +8730,22 @@ Bu eklentiler etkisizleştirildi. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 RSS bildirimini '%1' adresinden indirme başarısız. Sebep: %2 - + RSS feed at '%1' updated. Added %2 new articles. '%1' adresinden RSS bildirimi güncellendi. %2 yeni makale eklendi. - + Failed to parse RSS feed at '%1'. Reason: %2 RSS bildirimini '%1' adresinden ayrıştırma başarısız. Sebep: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. '%1' adresinden RSS bildirimi başarılı olarak indirildi. Ayrıştırmaya başlanıyor. @@ -8352,12 +8781,12 @@ Bu eklentiler etkisizleştirildi. RSS::Private::Parser - + Invalid RSS feed. Geçersiz RSS bildirimi. - + %1 (line: %2, column: %3, offset: %4). %1 (satır: %2, sütün: %3, çıkıntı: %4). @@ -8365,103 +8794,144 @@ Bu eklentiler etkisizleştirildi. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" RSS oturum yapılandırması kaydedilemedi. Dosya: "%1". Hata: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" RSS oturum verileri kaydedilemedi. Dosya: "%1". Hata: "%2" - - + + RSS feed with given URL already exists: %1. Verilen URL ile RSS bildirimi zaten var: %1. - + Feed doesn't exist: %1. Bildirim mevcut değil: %1. - + Cannot move root folder. Kök klasör taşınamıyor. - - + + Item doesn't exist: %1. Öğe mevcut değil: %1. - - Couldn't move folder into itself. - Klasör kendi içine taşınamadı. + + Can't move a folder into itself or its subfolders. + Bir klasör kendisine veya alt klasörlerine taşınamaz. - + Cannot delete root folder. Kök klasör silinemiyor. - + Failed to read RSS session data. %1 RSS oturum verilerini okuma başarısız. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" RSS oturum verilerini ayrıştırma başarısız. Dosya: "%1". Hata: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." RSS oturum verilerini yükleme başarısız. Dosya: "%1". Hata: "Geçersiz veri biçimi." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. RSS bildirimi yüklenemedi. Bildirim: "%1". Sebep: URL gerekli. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. RSS bildirimi yüklenemedi. Bildirim: "%1". Sebep: UID geçersiz. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Kopya RSS bildirimi bulundu. UID: "%1". Hata: Yapılandırma bozuk gibi görünüyor. - + Couldn't load RSS item. Item: "%1". Invalid data format. RSS öğesi yüklenemedi. Öğe: "%1". Geçersiz veri biçimi. - + Corrupted RSS list, not loading it. RSS listesi bozuldu, yüklenmiyor. - + Incorrect RSS Item path: %1. Yanlış RSS Öğesi yolu: %1. - + RSS item with given path already exists: %1. Verilen yol ile RSS öğesi zaten var: %1. - + Parent folder doesn't exist: %1. Ana klasör mevcut değil: %1. + + RSSController + + + Invalid 'refreshInterval' value + Geçersiz 'refreshInterval' değeri + + + + Feed doesn't exist: %1. + Bildirim mevcut değil: %1. + + + + RSSFeedDialog + + + RSS Feed Options + RSS Bildirim Ayarları + + + + URL: + URL: + + + + Refresh interval: + Yenileme aralığı: + + + + sec + san + + + + Default + Varsayılan + + RSSWidget @@ -8481,8 +8951,8 @@ Bu eklentiler etkisizleştirildi. - - + + Mark items read Öğeleri okundu olarak işaretle @@ -8507,132 +8977,115 @@ Bu eklentiler etkisizleştirildi. Torrent'ler: (indirmek için çift tıklayın) - - + + Delete Sil - + Rename... Yeniden adlandır... - + Rename Yeniden adlandır - - + + Update Güncelle - + New subscription... Yeni abonelik... - - + + Update all feeds Tüm bildirimleri güncelle - + Download torrent Torrent'i indir - + Open news URL Haber URL'sini aç - + Copy feed URL Bildirim URL'sini kopyala - + New folder... Yeni klasör... - - Edit feed URL... - Bildirim URLʼsini düzenle... + + Feed options... + Bildirim seçenekleri... - - Edit feed URL - Bildirim URLʼsini düzenle - - - + Please choose a folder name Lütfen bir klasör adı seçin - + Folder name: Klasör adı: - + New folder Yeni klasör - - - Please type a RSS feed URL - Lütfen bir RSS bildirim URL'si yazın - - - - - Feed URL: - Bildirim URL'si: - - - + Deletion confirmation Silme onayı - + Are you sure you want to delete the selected RSS feeds? Seçilen RSS bildirimlerini silmek istediğinize emin misiniz? - + Please choose a new name for this RSS feed Lütfen bu RSS bildirimi için yeni bir ad seçin - + New feed name: Yeni bildirim adı: - + Rename failed Yeniden adlandırma başarısız oldu - + Date: Tarih: - + Feed: Bildirim: - + Author: Hazırlayan: @@ -8640,38 +9093,38 @@ Bu eklentiler etkisizleştirildi. SearchController - + Python must be installed to use the Search Engine. Arama Motorunu kullanmak için Python yüklenmek zorundadır. - + Unable to create more than %1 concurrent searches. %1 taneden fazla eşzamanlı arama oluşturulamıyor. - - + + Offset is out of range Uzaklık aralık dışında - + All plugins are already up to date. Tüm eklentiler zaten güncel. - + Updating %1 plugins %1 eklenti güncelleniyor - + Updating plugin %1 %1 eklentisi güncelleniyor - + Failed to check for plugin updates: %1 Eklenti güncellemeleri denetimi başarız: %1 @@ -8746,132 +9199,142 @@ Bu eklentiler etkisizleştirildi. Boyut: - + 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 - - - + Filter search results... Arama sonuçlarını süzün... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Sonuçlar (<i>%1</i> / <i>%2</i> gösteriliyor): - + Torrent names only Sadece torrent adları - + Everywhere Her yeri - + Use regular expressions Düzenli ifadeleri kullan - + Open download window İndirme penceresini aç - + Download İndir - + Open description page Açıklama sayfasını aç - + Copy Kopyala - + Name Ad - + Download link İndirme bağlantısı - + Description page URL Açıklama sayfası URL'si - + Searching... Aranıyor... - + Search has finished Arama tamamlandı - + Search aborted Arama iptal edildi - + An error occurred during search... Arama sırasında bir hata meydana geldi... - + Search returned no results Arama hiç sonuç bulamadı - + + Engine + Motor + + + + Engine URL + Motor URL'si + + + + Published On + Yayınlanma Tarihi + + + Column visibility Sütun görünürlüğü - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır @@ -8879,104 +9342,104 @@ Bu eklentiler etkisizleştirildi. SearchPluginManager - + Unknown search engine plugin file format. Bilinmeyen arama motoru eklentisi dosya biçimi. - + Plugin already at version %1, which is greater than %2 Eklenti zaten %2 sürümünden büyük olan %1 sürümünde - + A more recent version of this plugin is already installed. Bu eklentinin en son sürümü zaten yüklü. - + Plugin %1 is not supported. %1 eklentisi desteklenmiyor. - - + + Plugin is not supported. Eklenti desteklenmiyor. - + Plugin %1 has been successfully updated. %1 eklentisi başarılı olarak güncellendi. - + All categories Tüm kategoriler - + Movies Filmler - + TV shows TV programları - + Music Müzik - + Games Oyunlar - + Anime Çizgi film - + Software Yazılım - + Pictures Resimler - + Books Kitaplar - + 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 - + Plugin "%1" is outdated, updating to version %2 "%1" eklentisi eski, %2 sürümüne güncelleniyor - + Incorrect update info received for %1 out of %2 plugins. %1 / %2 eklenti için yanlış güncelleme bilgisi alındı. - + Search plugin '%1' contains invalid version string ('%2') Aranan eklenti '%1' geçersiz sürüm dizgisi ('%2') içeriyor @@ -8986,114 +9449,145 @@ Bu eklentiler etkisizleştirildi. - - - - Search Ara - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Yüklü herhangi bir arama eklentisi yok. Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri..." düğmesine tıklayın. - + Search plugins... Arama eklentileri... - + A phrase to search for. Aranacak bir ifade. - + Spaces in a search term may be protected by double quotes. Aranan bir terimdeki boşluklar çift tırnaklar ile korunabilir. - + Example: Search phrase example Örnek: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: aranacak olan <b>foo bar</b> - + All plugins Tüm eklentiler - + Only enabled Sadece etkinleştirilenler - + + + Invalid data format. + Geçersiz veri biçimi. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: aranacak olan <b>foo</b> ve <b>bar</b> - + + Refresh + Yenile + + + Close tab Sekmeyi kapat - + Close all tabs Tüm sekmeleri kapat - + Select... Seç... - - - + + 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 - + + Stop Durdur + + + SearchWidget::DataStorage - - Search has finished - Arama tamamlandı + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Arama arayüzü kaydedilmiş durum verilerini yükleme başarısız. Dosya: "%1". Hata: "%2" - - Search has failed - Arama başarısız oldu + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Kaydedilmiş arama sonuçlarını yükleme başarısız. Sekme: "%1". Dosya: "%2". Hata: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Arama arayüzü durumunu kaydetme başarısız. Dosya: "%1". Hata: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Arama sonuçlarını kaydetme başarısız. Sekme: "%1". Dosya: "%2". Hata: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Arama arayüzü geçmişini yükleme başarısız. Dosya: "%1". Hata: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Arama geçmişini kaydetme başarısız. Dosya: "%1". Hata: "%2" @@ -9169,7 +9663,7 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Suspend confirmation - Akıya alma onayı + Askıya alma onayı @@ -9206,34 +9700,34 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri - + Upload: Gönderme: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: İndirme: - + Alternative speed limits Alternatif hız sınırları @@ -9425,32 +9919,32 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Kuyruktaki ortalama süre: - + Connected peers: Bağlı kişi: - + All-time share ratio: Tüm zaman paylaşma oranı: - + All-time download: Tüm zaman indirilen: - + Session waste: Oturum israfı: - + All-time upload: Tüm zaman gönderilen: - + Total buffer size: Toplam arabellek boyutu: @@ -9465,12 +9959,12 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Kuyruğa alınmış G/Ç işi: - + Write cache overload: Yazma önbelleği aşırı yükü: - + Read cache overload: Okuma önbelleği aşırı yükü: @@ -9489,51 +9983,77 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri StatusBar - + Connection status: Bağlantı durumu: - - + + No direct connections. This may indicate network configuration problems. Doğrudan bağlantılar yok. Bu, ağ yapılandırma sorunlarını gösterebilir. - - + + Free space: N/A + Boş alan: Yok + + + + + External IP: N/A + Dış IP: Yok + + + + DHT: %1 nodes DHT: %1 düğüm - + qBittorrent needs to be restarted! qBittorrent'in yeniden başlatılması gerek! - - - + + + Connection Status: Bağlantı Durumu: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Çevrimdışı. Bu genellikle qBittorrent'in gelen bağlantılar için seçilen bağlantı noktasını dinlemede başarısız olduğu anlamına gelir. - + Online Çevrimiçi - + + Free space: + Boş alan: + + + + External IPs: %1, %2 + Dış IP'ler: %1, %2 + + + + External IP: %1%2 + Dış IP: %1%2 + + + Click to switch to alternative speed limits Alternatif hız sınırlarını değiştirmek için tıklayın - + Click to switch to regular speed limits Düzenli hız sınırlarını değiştirmek için tıklayın @@ -9563,13 +10083,13 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri - Resumed (0) - Devam Edildi (0) + Running (0) + Çalışıyor (0) - Paused (0) - Duraklatıldı (0) + Stopped (0) + Durduruldu (0) @@ -9584,17 +10104,17 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Stalled (0) - Durduruldu (0) + Durdu (0) Stalled Uploading (0) - Durdurulan Gönderme (0) + Duran Gönderme (0) Stalled Downloading (0) - Durdurulan İndirme (0) + Duran İndirme (0) @@ -9631,36 +10151,36 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Completed (%1) Tamamlandı (%1) + + + Running (%1) + Çalışıyor (%1) + - Paused (%1) - Duraklatıldı (%1) + Stopped (%1) + Durduruldu (%1) + + + + Start torrents + Torrent'leri başlat + + + + Stop torrents + Torrent'leri durdur Moving (%1) Taşınıyor (%1) - - - Resume torrents - Torrent'lere devam et - - - - Pause torrents - Torrent'leri duraklat - Remove torrents Torrent'leri kaldır - - - Resumed (%1) - Devam Edildi (%1) - Active (%1) @@ -9674,17 +10194,17 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Stalled (%1) - Durduruldu (%1) + Durdu (%1) Stalled Uploading (%1) - Durdurulan Gönderme (%1) + Duran Gönderme (%1) Stalled Downloading (%1) - Durdurulan İndirme (%1) + Duran İndirme (%1) @@ -9732,31 +10252,31 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Remove unused tags Kullanılmayan etiketleri kaldır - - - Resume torrents - Torrent'lere devam et - - - - Pause torrents - Torrent'leri duraklat - Remove torrents Torrent'leri kaldır - - New Tag - Yeni Etiket + + Start torrents + Torrent'leri başlat + + + + Stop torrents + Torrent'leri durdur Tag: Etiket: + + + Add tag + Etiket ekle + Invalid tag name @@ -9793,7 +10313,7 @@ Bazılarını yüklemek için pencerenin sağ altındaki "Arama eklentileri Save path for incomplete torrents: - Tamamlanmamış torrent'ler için yolu kaydet: + Tamamlanmamış torrent'ler için kaydetme yolu: @@ -9903,32 +10423,32 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentContentModel - + Name Ad - + Progress İlerleme - + Download Priority İndirme Önceliği - + Remaining Kalan - + Availability Kullanılabilirlik - + Total Size Toplam Boyut @@ -9973,98 +10493,98 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentContentWidget - + Rename error Yeniden adlandırma hatası - + Renaming Yeniden adlandırma - + New name: Yeni adı: - + Column visibility Sütun görünürlüğü - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır - + Open - + Open containing folder İçeren klasörü aç - + Rename... Yeniden adlandır... - + Priority Öncelik - - + + Do not download İndirme yapma - + Normal Normal - + High Yüksek - + Maximum En yüksek - + By shown file order Gösterilen dosya sırasına göre - + Normal priority Normal öncelik - + High priority Yüksek öncelik - + Maximum priority En yüksek öncelik - + Priority by shown file order Gösterilen dosya sırasına göre öncelik @@ -10072,19 +10592,19 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentCreatorController - + Too many active tasks - + Çok fazla etkin görev - + Torrent creation is still unfinished. - + Torrent oluşturma hala tamamlanmadı. - + Torrent creation failed. - + Torrent oluşturma başarısız oldu. @@ -10111,13 +10631,13 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. - + Select file Dosya seç - + Select folder Klasör seç @@ -10192,87 +10712,83 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Alanlar - + You can separate tracker tiers / groups with an empty line. İzleyici katmanlarını / gruplarını boş bir satırla ayırabilirsiniz. - + Web seed URLs: Web gönderim URL'leri: - + Tracker URLs: İzleyici URL'leri: - + Comments: Açıklamalar: - + Source: Kaynak: - + Progress: İlerleme: - + Create Torrent Torrent Oluştur - - + + Torrent creation failed Torrent oluşturma başarısız oldu - + Reason: Path to file/folder is not readable. Sebep: Dosya/klasör için yol okunabilir değil. - + Select where to save the new torrent Yeni torrent'in kaydedileceği yeri seçin - + Torrent Files (*.torrent) Torrent Dosyaları (*.torrent) - Reason: %1 - Sebep: %1 - - - + Add torrent to transfer list failed. Torrent'i aktarım listesine ekleme başarısız oldu. - + Reason: "%1" Sebep: "%1" - + Add torrent failed Torrent ekleme başarısız oldu - + Torrent creator Torrent oluşturucu - + Torrent created: Torrent oluşturuldu: @@ -10280,32 +10796,32 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 İzlenen Klasörler yapılandırmasını yükleme başarısız. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" %1 konumundan İzlenen Klasörler yapılandırmasını ayrıştırma başarısız. Hata: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." %1 konumundan İzlenen Klasörler yapılandırmasını yükleme başarısız. Hata: "Geçersiz veri biçimi." - + Couldn't store Watched Folders configuration to %1. Error: %2 %1 konumuna İzlenen Klasörler yapılandırması depolanamadı. Hata: %2 - + Watched folder Path cannot be empty. İzlenen klasör Yolu boş olamaz. - + Watched folder Path cannot be relative. İzlenen klasör Yolu göreceli olamaz. @@ -10313,44 +10829,31 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Geçersiz Magnet URI'si. URI: %1. Sebep: %2 - + Magnet file too big. File: %1 Magnet dosyası çok büyük. Dosya: %1 - + Failed to open magnet file: %1 Magnet dosyasını açma başarısız: %1 - + Rejecting failed torrent file: %1 Başarısız olan torrent dosyası reddediliyor: %1 - + Watching folder: "%1" İzlenen klasör: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Dosya okunurken bellek ayırma başarısız. Dosya: "%1". Hata: "%2" - - - - Invalid metadata - Geçersiz üstveri - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Tamamlanmamış torrent için başka bir yol kullan - + Category: Kategori: - - Torrent speed limits - Torrent hız sınırları + + Torrent Share Limits + Torrent Paylaşma Sınırları - + Download: İndirme: - - + + - - + + Torrent Speed Limits + Torrent Hız Sınırları + + + + KiB/s KiB/s - + These will not exceed the global limits Bunlar genel sınırları aşmayacaktır - + Upload: Gönderme: - - Torrent share limits - Torrent paylaşma sınırları - - - - Use global share limit - Genel paylaşma sınırını kullan - - - - Set no share limit - Paylaşma sınırı ayarlama - - - - Set share limit to - Paylaşma sınırını şuna ayarla - - - - ratio - oran - - - - total minutes - toplam dakika - - - - inactive minutes - etkin olmayan dakika - - - + Disable DHT for this torrent Bu torrent için DHT'yi etkisizleştir - + Download in sequential order Sıralı düzende indir - + Disable PeX for this torrent Bu torrent için PeX'i etkisizleştir - + Download first and last pieces first Önce ilk ve son parçaları indir - + Disable LSD for this torrent Bu torrent için LSD'yi etkisizleştir - + Currently used categories Şu anda kullanılan kategoriler - - + + Choose save path Kaydetme yolunu seçin - + Not applicable to private torrents Özel torrent'lere uygulanamaz - - - No share limit method selected - Seçilen paylaşma sınırı yöntemi yok - - - - Please select a limit method first - Lütfen önce bir sınır yöntemi seçin - TorrentShareLimitsWidget - - - + + + + Default - Varsayılan + Varsayılan + + + + + + Unlimited + Sınırsız - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Şuna ayarla + + + + Seeding time: + Gönderim süresi: + + + + + + + + min minutes - dak + dak - + Inactive seeding time: - + Etkin olmayan gönderim süresi: - + + Action when the limit is reached: + Sınıra ulaşıldığında yapılacak eylem: + + + + Stop torrent + Torrent'i durdur + + + + Remove torrent + Torrent'i kaldır + + + + Remove torrent and its content + Torrent'i ve içeriğini kaldır + + + + Enable super seeding for torrent + Torrent için süper gönderimi etkinleştir + + + Ratio: - + Oran: @@ -10558,32 +11049,32 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Torrent Etiketleri - - New Tag - Yeni Etiket + + Add tag + Etiket ekle - + Tag: Etiket: - + Invalid tag name Geçersiz etiket adı - + Tag name '%1' is invalid. Etiket adı '%1' geçersiz. - + Tag exists Etiket var - + Tag name already exists. Etiket adı zaten var. @@ -10591,115 +11082,130 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TorrentsController - + Error: '%1' is not a valid torrent file. Hata: '%1' geçerli bir torrent dosyası değil. - + Priority must be an integer Öncelik bir tam sayı olmak zorundadır - + Priority is not valid Öncelik geçerli değil - + Torrent's metadata has not yet downloaded Torrent'lerin üstverisi henüz indirilmedi - + File IDs must be integers Dosya kimlikleri tam sayılar olmak zorundadır - + File ID is not valid Dosya kimliği geçerli değil - - - - + + + + Torrent queueing must be enabled Torrent kuyruğa alma etkinleştirilmek zorundadır - - + + Save path cannot be empty Kaydetme yolu boş olamaz - - + + Cannot create target directory Hedef dizin oluşturulamıyor - - + + Category cannot be empty Kategori boş olamaz - + Unable to create category Kategori oluşturulamıyor - + Unable to edit category Kategori düzenlenemiyor - + Unable to export torrent file. Error: %1 Torrent dosyası dışa aktarılamıyor. Hata: %1 - + Cannot make save path Kaydetme yolunu oluşturamıyor - + + "%1" is not a valid URL + "%1" geçerli bir URIL değil + + + + URL scheme must be one of [%1] + URL şeması [%1] adetten biri olmak zorundadır + + + 'sort' parameter is invalid 'sırala' parametresi geçersiz - + + "%1" is not an existing URL + "%1" varolan bir URL değil + + + "%1" is not a valid file index. '%1' geçerli bir dosya indeksi değil. - + Index %1 is out of bounds. %1 indeksi sınırların dışında. - - + + Cannot write to directory Dizine yazamıyor - + WebUI Set location: moving "%1", from "%2" to "%3" Web Arayüzü yeri ayarlama: "%1" dosyası "%2" konumundan "%3" konumuna taşınıyor - + Incorrect torrent name Yanlış torrent adı - - + + Incorrect category name Yanlış kategori adı @@ -10719,7 +11225,7 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. - All trackers within the same group will belong to the same tier. - The group on top will be tier 0, the next group tier 1 and so on. - Below will show the common subset of trackers of the selected torrents. - Satır başına bir izleyici URL'si. + Her satıra bir izleyici URL'si. - Boş satırlar ekleyerek izleyicileri gruplara bölebilirsiniz. - Aynı gruptaki tüm izleyiciler aynı katmana ait olacaktır. @@ -10730,196 +11236,191 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TrackerListModel - + Working Çalışıyor - + Disabled Etkisizleştirildi - + Disabled for this torrent Bu torrent için etkisizleştirildi - + This torrent is private Bu torrent özeldir - + N/A Yok - + Updating... Güncelleniyor... - + Not working Çalışmıyor - + Tracker error İzleyici hatası - + Unreachable - Ulaşılamaz + Ulaşılamıyor - + Not contacted yet Daha bağlanmadı - - Invalid status! + + Invalid state! Geçersiz durum! - - URL/Announce endpoint - URL/Duyuru uç noktası + + URL/Announce Endpoint + URL/Duyurma Uç Noktası - + + BT Protocol + BT Protokolü + + + + Next Announce + Sonraki Duyurma + + + + Min Announce + En Az Duyurma + + + Tier Katman - - Protocol - Protokol - - - + Status Durum - + Peers Kişi - + Seeds Gönderim - + Leeches Çekme - + Times Downloaded İndirilme Sayısı - + Message İleti - - - Next announce - Sonraki duyuru - - - - Min announce - En düşük duyuru - - - - v%1 - s%1 - TrackerListWidget - + This torrent is private Bu torrent özeldir - + Tracker editing İzleyici düzenleme - + Tracker URL: İzleyici URL'si: - - + + Tracker editing failed İzleyici düzenleme başarısız oldu - + The tracker URL entered is invalid. Girilen izleyici URL'si geçersiz. - + The tracker URL already exists. İzleyici URL'si zaten var. - + Edit tracker URL... İzleyici URL'sini düzenle... - + Remove tracker İzleyiciyi kaldır - + Copy tracker URL İzleyici URL'sini kopyala - + Force reannounce to selected trackers Seçilen izleyicilere yeniden duyurmayı zorla - + Force reannounce to all trackers Tüm izleyicilere yeniden duyurmayı zorla - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır - + Add trackers... İzleyicileri ekle... - + Column visibility Sütun görünürlüğü @@ -10934,40 +11435,40 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. List of trackers to add (one per line): - Eklemek için izleyicilerin listesi (her satıra bir tane): + Eklenecek izleyicilerin listesi (her satıra bir tane): - + µTorrent compatible list URL: µTorrent uyumlu liste URL'si: - + Download trackers list İzleyiciler listesini indir - + Add Ekle - + Trackers list URL error İzleyiciler listesi URL hatası - + The trackers list URL cannot be empty İzleyiciler listesi URL'si boş olamaz - + Download trackers list error İzleyiciler listesini indirme hatası - + Error occurred when downloading the trackers list. Reason: "%1" İzleyiciler listesi indirilirken hata meydana geldi. Sebep: "%1" @@ -10975,62 +11476,62 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TrackersFilterWidget - + Warning (%1) Uyarı (%1) - + Trackerless (%1) İzleyicisiz (%1) - + Tracker error (%1) İzleyici hatası (%1) - + Other error (%1) Diğer hata (%1) - + Remove tracker İzleyiciyi kaldır - - Resume torrents - Torrent'lere devam et + + Start torrents + Torrent'leri başlat - - Pause torrents - Torrent'leri duraklat + + Stop torrents + Torrent'leri durdur - + Remove torrents Torrent'leri kaldır - + Removal confirmation Kaldırma onayı - + Are you sure you want to remove tracker "%1" from all torrents? "%1" izleyicisini tüm torrent'lerden kaldırmak istediğinize emin misiniz? - + Don't ask me again. Bana bir daha sorma. - + All (%1) this is for the tracker filter Tümü (%1) @@ -11039,7 +11540,7 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TransferController - + 'mode': invalid argument 'kip': geçersiz bağımsız değişken @@ -11078,7 +11579,7 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Stalled Torrent is waiting for download to begin - Durduruldu + Durdu @@ -11131,11 +11632,6 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. 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. Devam etme verisi denetleniyor - - - Paused - Duraklatıldı - Completed @@ -11159,220 +11655,252 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Hata Oldu - + Name i.e: torrent name Ad - + Size i.e: torrent size Boyut - + Progress % Done İlerleme - + + Stopped + Durduruldu + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Durum - + Seeds i.e. full sources (often untranslated) Gönderim - + Peers i.e. partial sources (often untranslated) Kişi - + Down Speed i.e: Download speed İnd. Hızı - + Up Speed i.e: Upload speed Gön. Hızı - + Ratio Share ratio Oran - + + Popularity + Yaygınlık + + + ETA i.e: Estimated Time of Arrival / Time left TBS - + Category Kategori - + Tags Etiketler - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Eklenme - + Completed On Torrent was completed on 01/01/2010 08:00 Tamamlanma - + Tracker İzleyici - + Down Limit i.e: Download limit İnd. Sınırı - + Up Limit i.e: Upload limit Gön. Sınırı - + Downloaded Amount of data downloaded (e.g. in MB) İndirilen - + Uploaded Amount of data uploaded (e.g. in MB) Gönderilen - + Session Download Amount of data downloaded since program open (e.g. in MB) Oturumda İndirilen - + Session Upload Amount of data uploaded since program open (e.g. in MB) Oturumda Gönderilen - + Remaining Amount of data left to download (e.g. in MB) Kalan - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Etkinlik Süresi - + + Yes + Evet + + + + No + Hayır + + + Save Path Torrent save path Kaydetme Yolu - + Incomplete Save Path Torrent incomplete save path Tamamlanmamış Kaydetme Yolu - + Completed Amount of data completed (e.g. in MB) Tamamlanan - + Ratio Limit Upload share ratio limit Oran Sınırı - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Tam Halinin Görülmesi - + Last Activity Time passed since a chunk was downloaded/uploaded Son Etkinlik - + Total Size i.e. Size including unwanted data Toplam Boyut - + Availability The number of distributed copies of the torrent Kullanılabilirlik - + Info Hash v1 i.e: torrent info hash v1 Bilgi Adreslemesi v1 - + Info Hash v2 i.e: torrent info hash v2 Bilgi Adreslemesi v2 - + Reannounce In Indicates the time until next trackers reannounce - Yeniden Duyuru Süresi + Yeniden Duyurma Süresi - - + + Private + Flags private torrents + Özel + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Oran / Etkin Süre (ay cinsinden), torrent'in ne kadar yaygın olduğunu gösterir + + + + + N/A Yok - + %1 ago e.g.: 1h 20m ago %1 önce - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (gönderilme %2) @@ -11381,339 +11909,319 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. TransferListWidget - + Column visibility Sütun görünürlüğü - + Recheck confirmation Yeniden denetleme onayı - + Are you sure you want to recheck the selected torrent(s)? Seçilen torrent'(ler)i yeniden denetlemek istediğinize emin misiniz? - + Rename Yeniden adlandır - + New name: Yeni adı: - + Choose save path Kaydetme yolunu seçin - - Confirm pause - Duraklatmayı onayla - - - - Would you like to pause all torrents? - Tüm torrent'leri duraklatmak ister misiniz? - - - - Confirm resume - Devam etmeyi onayla - - - - Would you like to resume all torrents? - Tüm torrent'leri devam ettirmek ister misiniz? - - - + Unable to preview Önizlenemiyor - + The selected torrent "%1" does not contain previewable files Seçilen torrent "%1" önizlenebilir dosyaları içermiyor - + Resize columns Sütunları yeniden boyutlandır - + Resize all non-hidden columns to the size of their contents Gizli olmayan tüm sütunları içeriklerinin boyutuna göre yeniden boyutlandır - + Enable automatic torrent management - Otomatik torrent yönetimini etkinleştir + Otomatik torrent yönetimini etkinleştirin - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - Seçilen torrent(ler) için Otomatik Torrent Yönetimi'ni etkinleştirmek istediğinize emin misiniz? Yer değiştirebilirler. + Seçilen torrent'(ler) için Otomatik Torrent Yönetimi'ni etkinleştirmek istediğinize emin misiniz? Yer değiştirebilirler. - - Add Tags - Etiketleri Ekle - - - + Choose folder to save exported .torrent files Dışa aktarılan .torrent dosyalarının kaydedileceği klasörü seçin - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" .torrent dosyası dışa aktarma başarısız oldu. Torrent: "%1". Kaydetme yolu: "%2". Sebep: "%3" - + A file with the same name already exists Aynı ada sahip bir dosya zaten var - + Export .torrent file error .torrent dosyası dışa aktarma hatası - + Remove All Tags Tüm Etiketleri Kaldır - + Remove all tags from selected torrents? Tüm etiketler seçilen torrent'lerden kaldırılsın mı? - + Comma-separated tags: Virgülle ayrılmış etiketler: - + Invalid tag Geçersiz etiket - + Tag name: '%1' is invalid Etiket adı: '%1' geçersiz - - &Resume - Resume/start the torrent - &Devam - - - - &Pause - Pause the torrent - D&uraklat - - - - Force Resu&me - Force Resume/start the torrent - Devam Etmeye &Zorla - - - + Pre&view file... Dosyayı ö&nizle... - + Torrent &options... Torrent s&eçenekleri... - + Open destination &folder Hedef &klasörü aç - + Move &up i.e. move up in the queue Y&ukarı taşı - + Move &down i.e. Move down in the queue Aşağı t&aşı - + Move to &top i.e. Move to top of the queue &En üste taşı - + Move to &bottom i.e. Move to bottom of the queue En a&lta taşı - + Set loc&ation... Yeri a&yarla... - + Force rec&heck Yeniden denetle&meye zorla - + Force r&eannounce Yeniden d&uyurmaya zorla - + &Magnet link Ma&gnet bağlantısı - + Torrent &ID T&orrent kimliği - + &Comment &Açıklama - + &Name &Ad - + Info &hash v1 &Bilgi adreslemesi v1 - + Info h&ash v2 B&ilgi adreslemesi v2 - + Re&name... Yeniden a&dlandır... - + Edit trac&kers... İzle&yicileri düzenle... - + E&xport .torrent... Torrent'i iç&e aktar... - + Categor&y Kate&gori - + &New... New category... &Yeni... - + &Reset Reset category &Sıfırla - + Ta&gs &Etiketler - + &Add... Add / assign multiple tags... &Ekle... - + &Remove All Remove all tags Tü&münü Kaldır - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Torrent Durduruldu/Kuyruğa Alındı/Hata Oldu/Denetleniyor ise yeniden duyurmaya zorlanamaz + + + &Queue &Kuyruk - + &Copy K&opyala - + Exported torrent is not necessarily the same as the imported Dışa aktarılan torrent, içe aktarılanla aynı olmak zorunda değildir - + Download in sequential order Sıralı düzende indir - + + Add tags + Etiketleri ekle + + + Errors occurred when exporting .torrent files. Check execution log for details. .torrent dosyalarını dışa aktarırken hatalar meydana geldi. Ayrıntılar için çalıştırma günlüğünü gözden geçirin. - + + &Start + Resume/start the torrent + &Başlat + + + + Sto&p + Stop the torrent + Dur&dur + + + + Force Star&t + Force Resume/start the torrent + Başlatmaya &Zorla + + + &Remove Remove the torrent &Kaldır - + Download first and last pieces first Önce ilk ve son parçaları indir - + Automatic Torrent Management Otomatik Torrent Yönetimi - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Otomatik kip, çeşitli torrent özelliklerine (örn. kaydetme yolu) ilişkilendirilmiş kategori tarafından karar verileceği anlamına gelir - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Torrent Duraklatıldı/Kuyruğa Alındı/Hata Oldu/Denetleniyor ise yeniden duyuru yapmaya zorlanamaz - - - + Super seeding mode Süper gönderim kipi @@ -11758,28 +12266,28 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Simge Kimliği - + UI Theme Configuration. Arayüz Teması Yapılandırması. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Arayüz Teması değişiklikleri tamamen uygulanamadı. Ayrıntılar Günlükte bulunabilir. - + Couldn't save UI Theme configuration. Reason: %1 Arayüz Teması yapılandırması kaydedilemedi. Sebep: %1 - - + + Couldn't remove icon file. File: %1. Simge dosyası silinemedi. Dosya: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Simge dosyası kopyalanamadı. Kaynak: %1. Hedef: %2. @@ -11787,7 +12295,12 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Uygulama stilini ayarlama başarısız oldu. Bilinmeyen stil: "%1" + + + Failed to load UI theme from file: "%1" Şu dosyadan Arayüz temasını yükleme başarısız: "%1" @@ -11818,20 +12331,21 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Geçiş tercihleri başarısız oldu: Web Arayüzü https, dosya: "%1", hata: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Geçiş tercihleri başarısız oldu: Web Arayüzü https, verinin aktarıldığı dosya: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Yapılandırma dosyasında geçersiz değer bulundu ve varsayılana geri döndürülüyor. Anahtar: "%1". Geçersiz değer: "%2". @@ -11839,32 +12353,32 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Python çalıştırılabilir dosyası bulundu. Ad: "%1". Sürüm: "%2" - + Failed to find Python executable. Path: "%1". Python çalıştırılabilir dosyasını bulma başarısız. Yol: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - PATH ortam değişkeninde `python3` çalıştırılabilir dosyasını bulma başarısız. YOL: "%1" + PATH ortam değişkeninde `python3` çalıştırılabilir dosyasını bulma başarısız. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - PATH ortam değişkeninde `python` çalıştırılabilir dosyasını bulma başarısız. YOL: "%1" + PATH ortam değişkeninde `python` çalıştırılabilir dosyasını bulma başarısız. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Windows Kayıt Defteri'nde `python` çalıştırılabilir dosyasını bulma başarısız. - + Failed to find Python executable Python çalıştırılabilir dosyasını bulma başarısız @@ -11956,72 +12470,72 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Kabul edilemez oturum tanımlama bilgisi adı belirtildi: '%1'. Varsayılan olan kullanılır. - + Unacceptable file type, only regular file is allowed. Kabul edilemez dosya türü, sadece normal dosyaya izin verilir. - + Symlinks inside alternative UI folder are forbidden. Alternatif Arayüz klasörü içinde simgesel bağlantılar yasaktır. - + Using built-in WebUI. Yerleşik Web Arayüzü kullanılıyor. - + Using custom WebUI. Location: "%1". Özel Web Arayüzü kullanılıyor. Konumu: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Seçilen yerel dil (%1) için Web Arayüzü çevirisi başarılı olarak yüklendi. - + Couldn't load WebUI translation for selected locale (%1). Seçilen yerel dil (%1) için Web Arayüzü çevirisi yüklenemedi. - + Missing ':' separator in WebUI custom HTTP header: "%1" Web Arayüzü özel HTTP üstbilgisinde eksik ':' ayırıcısı: "%1" - + Web server error. %1 Web sunucusu hatası. %1 - + Web server error. Unknown error. Web sunucusu hatası. Bilinmeyen hata. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Web Arayüzü: Başlangıç üstbilgisi ve Hedef başlangıcı uyuşmuyor! Kaynak IP: '%1'. Başlangıç üstbilgisi: '%2'. Hedef başlangıcı: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Web Arayüzü: Gönderen üstbilgisi ve Hedef başlangıcı uyuşmuyor! Kaynak IP: '%1'. Gönderen üstbilgisi: '%2'. Hedef başlangıcı: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Web Arayüzü: Geçersiz Anamakine üstbilgisi, bağlantı noktası uyuşmuyor. İstek kaynak IP: '%1'. Sunucu bağlantı noktası: '%2'. Alınan Anamakine üstbilgisi: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Web Arayüzü: Geçersiz Anamakine üstbilgisi. İstek kaynak IP: '%1'. Alınan Anamakine üstbilgisi: '%2' @@ -12029,125 +12543,133 @@ Lütfen farklı bir isim seçin ve tekrar deneyin. WebUI - + Credentials are not set Kimlik bilgileri ayarlanmadı - + WebUI: HTTPS setup successful Web Arayüzü: HTTPS ayarlaması başarılı - + WebUI: HTTPS setup failed, fallback to HTTP Web Arayüzü: HTTPS ayarlaması başarısız, HTTP'ye geri çekiliyor - + WebUI: Now listening on IP: %1, port: %2 Web Arayüzü: Şu an dinlenen IP: %1, bağlantı noktası: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Web Arayüzü: Bağlanamayan IP: %1, bağlantı noktası: %2. Sebep: %3 + + fs + + + Unknown error + Bilinmeyen hata + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1sn - + %1m e.g: 10 minutes %1dk - + %1h %2m e.g: 3 hours 5 minutes %1sa %2dk - + %1d %2h e.g: 2 days 10 hours %1gn %2sa - + %1y %2d e.g: 2 years 10 days %1y %2gn - - + + 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 < 1dk diff --git a/src/lang/qbittorrent_uk.ts b/src/lang/qbittorrent_uk.ts index f130ec263..465d3037b 100644 --- a/src/lang/qbittorrent_uk.ts +++ b/src/lang/qbittorrent_uk.ts @@ -14,75 +14,75 @@ Про - + Authors Автори - + Current maintainer Поточний супровідник - + Greece Греція - - + + Nationality: Національність: - - + + E-mail: E-mail: - - + + Name: Назва: - + Original author Оригінальний автор - + France Франція - + Special Thanks Особлива подяка - + Translators Перекладачі - + License Ліцензія - + Software Used Використовувані програми - + qBittorrent was built with the following libraries: qBittorrent було створено з такими бібліотеками: - + Copy to clipboard Копіювати в буфер обміну @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Авторські права %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + Авторські права %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ Зберегти у - + Never show again Більше ніколи не показувати - - - Torrent settings - Налаштування торрента - Set as default category @@ -191,12 +186,12 @@ Запустити торрент - + Torrent information Інформація про торрент - + Skip hash check Пропустити перевірку хешу @@ -205,6 +200,11 @@ Use another path for incomplete torrent Використовувати інший шлях для неповних торрентів + + + Torrent options + Варіанти торенту + Tags: @@ -231,75 +231,75 @@ Умови зупинки: - - + + None Немає - - + + Metadata received Отримано метадані - + Torrents that have metadata initially will be added as stopped. - + Торренти, які мають метадані, будуть додані як зупинені. - - + + Files checked Файли перевірено - + Add to top of queue Додати в початок черги - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog При перевірці торрент-файл не буде видалено, незалежно від параметрів "Завантаження" у вікні "Налаштування" - + Content layout: Розміщення вмісту: - + Original Як задано - + Create subfolder Створити підтеку - + Don't create subfolder Не створювати підтеку - + Info hash v1: Інформаційний хеш, версія 1: - + Size: Розмір: - + Comment: Коментар: - + Date: Дата: @@ -329,151 +329,147 @@ Пам'ятати останній шлях збереження файлів - + Do not delete .torrent file Не видаляти файл .torrent - + Download in sequential order Завантажувати послідовно - + Download first and last pieces first Спочатку завантажувати першу і останню частину - + Info hash v2: Інформаційний хеш, версія 2: - + Select All Вибрати Все - + Select None Зняти Виділення - + Save as .torrent file... Зберегти як файл .torrent... - + I/O Error Помилка вводу/виводу - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Magnet link Magnet-посилання - + Retrieving metadata... Отримуються метадані... - - + + Choose save path Виберіть шлях збереження - + No stop condition is set. Умову зупинки не задано. - + Torrent will stop after metadata is received. Торрент зупиниться після отримання метаданих. - Torrents that have metadata initially aren't affected. - Торренти, що від початку мають метадані, не зазнають впливу. - - - + Torrent will stop after files are initially checked. Торрент зупиниться після того, як файли пройдуть початкову перевірку. - + This will also download metadata if it wasn't there initially. Це також завантажить метадані, якщо їх не було спочатку. - - + + N/A - + %1 (Free space on disk: %2) %1 (Вільно на диску: %2) - + Not available This size is unavailable. Недоступно - + Torrent file (*%1) Torrent-файл (*%1) - + Save as torrent file Зберегти як Torrent-файл - + Couldn't export torrent metadata file '%1'. Reason: %2. Не вдалося експортувати метадані торрент файла'%1'. Причина: %2. - + Cannot create v2 torrent until its data is fully downloaded. Неможливо створити торрент версії 2 поки його дані не будуть повністю завантажені. - + Filter files... Фільтр файлів… - + Parsing metadata... Розбираються метадані... - + Metadata retrieval complete Завершено отримання метаданих @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Завантаження торрента... Джерело: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Не вдалося додати торрент. Джерело: "%1". Причина: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Виявлено спробу додати дублікат торрента. Джерело: %1. Існуючий торрент: %2. Результат: %3 - - - + Merging of trackers is disabled Об'єднання трекерів вимкнено - + Trackers cannot be merged because it is a private torrent Трекери не можна об’єднати, оскільки це приватний торрент - + Trackers are merged from new source Трекери об’єднані з нового джерела + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Обмеження роздачі торрента + Обмеження роздачі торрента @@ -672,865 +668,975 @@ AdvancedSettings - - - - + + + + MiB МіБ - + Recheck torrents on completion Перепровіряти торренти після завантаження - - + + ms milliseconds мс - + Setting Параметр - + Value Value set for this setting Значення - + (disabled) (вимкнено) - + (auto) (автоматично) - + + min minutes хв - + All addresses Всі адреси - + qBittorrent Section Розділ про qBittorrent - - + + Open documentation Відкрити документацію - + All IPv4 addresses Всі адреси IPv4 - + All IPv6 addresses Всі адреси IPv6 - + libtorrent Section Розділ про libtorrent - + Fastresume files Швидке відновлення файлів - + SQLite database (experimental) База даних SQLite (у розробці) - + Resume data storage type (requires restart) Відновити тип зберігання даних (потрібно перезавантажити програму) - + Normal Звичайний - + Below normal Нижче звичайного - + Medium Середній - + Low Низький - + Very low Дуже низький - + Physical memory (RAM) usage limit Фізичне обмеження пам'яті (ОЗП) - + Asynchronous I/O threads Потоки асинхронного вводу/виводу - + Hashing threads Потоки хешування - + File pool size Розміру пулу файлів: - + Outstanding memory when checking torrents Накладна пам'ять при перевірці торрентів - + Disk cache Дисковий кеш - - - - + + + + + s seconds с - + Disk cache expiry interval Термін дійсності дискового кешу - + Disk queue size Розмір черги диска - - + + Enable OS cache Увімкнути кеш ОС - + Coalesce reads & writes Об'єднувати операції читання і запису - + Use piece extent affinity Використовувати групування споріднених частин - + Send upload piece suggestions Надсилати підказки частин відвантаження - - - - + + + + + 0 (disabled) 0 (вимкнено) - + Save resume data interval [0: disabled] How often the fastresume file is saved. Зберегти інтервал відновлення даних [0: вимкнено] - + Outgoing ports (Min) [0: disabled] Вихідні порти (мінімум) [0 — вимк.] - + Outgoing ports (Max) [0: disabled] Вихідні порти (максимум) [0 — вимк.] - + 0 (permanent lease) 0 (постійна оренда) - + UPnP lease duration [0: permanent lease] Тривалість оренди UPnP [0: постійна оренда] - + Stop tracker timeout [0: disabled] Час очікування зупинки трекера [0: вимкнено] - + Notification timeout [0: infinite, -1: system default] Час очікування сповіщень [0: нескінченний, -1: системне замовчування] - + Maximum outstanding requests to a single peer Максимальна кількість невиконаних запитів до одного піра - - - - - + + + + + KiB КіБ - + (infinite) (нескінченний) - + (system default) (система за умовчанням) - + + Delete files permanently + Видалити файли назавжди + + + + Move files to trash (if possible) + Перемістити файли в кошик (якщо можливо) + + + + Torrent content removing mode + Режим видалення контенту через торрент + + + This option is less effective on Linux Ця опція менш ефективна на Linux - + Process memory priority Пріоритет пам'яті процесу - + Bdecode depth limit Ліміт глибини Bdecode - + Bdecode token limit Ліміт токенів Bdecode - + Default Типово - + Memory mapped files Файли, які відображаються у пам'ять - + POSIX-compliant Сумісний з POSIX - + + Simple pread/pwrite + Просте читання/запис + + + Disk IO type (requires restart) Тип введення-виводу диска (потребує перезапуску) - - + + Disable OS cache Вимкнути кеш ОС - + Disk IO read mode Режим читання дискового Вводу-Виводу - + Write-through Наскрізний запис - + Disk IO write mode Режим запису дискового Вводу-Виводу - + Send buffer watermark Рівень буферу відправлення - + Send buffer low watermark Мінімальний рівень буфера відправлення - + Send buffer watermark factor Множник рівня буфера відправлення - + Outgoing connections per second Вихідні з'єднання за секунду - - + + 0 (system default) 0 (за умовчанням) - + Socket send buffer size [0: system default] Розмір буфера надсилання сокета [0: системне замовчування] - + Socket receive buffer size [0: system default] Розмір буфера отримання сокета [0: системне замовчування] - + Socket backlog size Розмір черги сокета: - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Збережіть інтервал статистики [0: відключений] + + + .torrent file size limit Обмеження на розмір файлу .torrent - + Type of service (ToS) for connections to peers Тип обслуговування (ToS) при приєднанні до пірів - + Prefer TCP Надавати перевагу TCP - + Peer proportional (throttles TCP) Пропорціонально пірам (регулювання TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Підтримка інтернаціоналізації доменних імен (IDN) - + Allow multiple connections from the same IP address Дозволити більше одного з'єднання з тієї ж IP-адреси - + Validate HTTPS tracker certificates Перевірити HTTPS-сертифікати трекера - + Server-side request forgery (SSRF) mitigation Запобігання серверної підробки запиту (SSRF) - + Disallow connection to peers on privileged ports Заборонити підключення до пірів на привілейованих портах - + It appends the text to the window title to help distinguish qBittorent instances - + Він додає текст до заголовка вікна, щоб допомогти розрізнити екземпляри qBittorent - + Customize application instance name - + Налаштування імені екземпляра програми - + It controls the internal state update interval which in turn will affect UI updates Він контролює внутрішній інтервал оновлення стану, який, у свою чергу, впливатиме на оновлення інтерфейсу користувача - + Refresh interval Інтервал оновлення - + Resolve peer host names Дізнаватись адресу пірів - + IP address reported to trackers (requires restart) IP-адреса, повідомлена трекерам (потребує перезавантаження програми) - + + Port reported to trackers (requires restart) [0: listening port] + Порт, повідомлений трекерам (вимагає перезапуску) [0: Порт прослуховування] + + + Reannounce to all trackers when IP or port changed Переанонсувати на всі трекери при зміні IP або порту - + Enable icons in menus Увімкнути значки в меню - + + Attach "Add new torrent" dialog to main window + Додати "Додати новий торрент" на головне вікно + + + Enable port forwarding for embedded tracker Увімкнути переадресацію портів для вбудованого трекера - + Enable quarantine for downloaded files Увімкнути карантин для завантажених файлів - + Enable Mark-of-the-Web (MOTW) for downloaded files Увімкнути Mark-of-the-Web (MOTW) для завантажених файлів - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Включає перевірку сертифікатів і діяльність, не пов'язану з протоколом торрент (наприклад, RSS-стрічки, оновлення програми, торрент-файли, БД GeoIP і т. д.). + + + + Ignore SSL errors + Ігнорувати помилки SSL + + + (Auto detect if empty) (Автоматичне визначення, якщо порожній) - + Python executable path (may require restart) Шлях до виконуваного файлу Python (може знадобитися перезапуск) - + + Start BitTorrent session in paused state + Розпочати сеанс BitTorrent у стані паузи + + + + sec + seconds + сек + + + + -1 (unlimited) + -1 (необмежено) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Час очікування завершення сеансу BitTorrent [-1: необмежений] + + + Confirm removal of tracker from all torrents Підтвердити видалення трекера з усіх торрентів - + Peer turnover disconnect percentage Відсоток відключення плинності пірів - + Peer turnover threshold percentage Відсоток межі плинності пірів - + Peer turnover disconnect interval Інтервал відключення плинності пірів - + Resets to default if empty Скидає значення за умовчанням, якщо пусте - + DHT bootstrap nodes Вузли початкового завантаження DHT - + I2P inbound quantity Число вхідного I2P - + I2P outbound quantity Число вихідного I2P - + I2P inbound length Довжина вхідного I2P - + I2P outbound length Довжина вихідного I2P - + Display notifications Показувати сповіщення - + Display notifications for added torrents Показувати сповіщення для доданих торрентів - + Download tracker's favicon Завантажувати піктограми для трекерів - + Save path history length Довжина історії шляхів збереження - + Enable speed graphs Увімкнути графік швидкості - + Fixed slots Фіксовані слоти - + Upload rate based Стандартна швидкість відвантаження - + Upload slots behavior Поведінка слотів відвантаження - + Round-robin По колу - + Fastest upload Найшвидше відвантаження - + Anti-leech Анти-ліч - + Upload choking algorithm Алгоритм приглушення відвантаження - + Confirm torrent recheck Підтверджувати повторну перевірку торрентів - + Confirm removal of all tags Підтверджувати видалення усіх міток - + Always announce to all trackers in a tier Завжди анонсувати на всі трекери в групі - + Always announce to all tiers Завжди анонсувати на всі групи трекерів - + Any interface i.e. Any network interface Будь-який інтерфейс - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm Алгоритм мішаного режиму %1-TCP - + Resolve peer countries Дізнаватись країну пірів - + Network interface Мережевий інтерфейс - + Optional IP address to bind to Обрана IP-адреса для прив'язки - + Max concurrent HTTP announces Максимум одночасних анонсів HTTP - + Enable embedded tracker Увімкнути вбудований трекер - + Embedded tracker port Порт вбудованого трекера + + AppController + + + + Invalid directory path + Недійсний шлях до каталогу + + + + Directory does not exist + Каталог не існує + + + + Invalid mode, allowed values: %1 + Недійсний режим, дозволені значення: %1 + + + + cookies must be array + Файли cookie повинні бути масивом + + Application - + Running in portable mode. Auto detected profile folder at: %1 Запуск в згорнутому режимі. Автоматично виявлено теку профілю в: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Виявлено надлишковий прапор командного рядка "%1". Портативний режим має на увазі відносне швидке відновлення. - + Using config directory: %1 Використовується каталог налаштувань: %1 - + 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. - + Torrent: %1, sending mail notification Торрент: %1, надсилання сповіщення на пошту - + Add torrent failed Не вдалося додати торрент - + Couldn't add torrent '%1', reason: %2. Не вдалося додати торрент "%1", причина: %2. - + The WebUI administrator username is: %1 Адміністратор WebUI: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Пароль адміністратора WebUI не встановлено. Для цього сеансу встановлено тимчасовий пароль: %1 - + You should set your own password in program preferences. Слід встановити власний пароль у налаштуваннях програми. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI вимкнено! Щоб увімкнути WebUI, відредагуйте конфігураційний файл вручну. - + Running external program. Torrent: "%1". Command: `%2` Запуск зовнішньої програми. Торрент: "%1". Команда: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Не вдалося запустити зовнішню програму. Торрент: "%1". Команда: `%2` - + Torrent "%1" has finished downloading Торрент "%1" завершив завантаження - + WebUI will be started shortly after internal preparations. Please wait... Веб-інтерфейс буде запущено незабаром після внутрішньої підготовки. Будь ласка, зачекайте... - - + + Loading torrents... Завантаження торрентів... - + E&xit &Вийти - + I/O Error i.e: Input/Output Error Помилка Вводу/Виводу - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - Сталася помилка введення-виведення для торрента «%1». + Сталася помилка введення-виведення для торрента «%1». Причина: %2 - + Torrent added Торрент додано - + '%1' was added. e.g: xxx.avi was added. "%1" було додано. - + Download completed Завантаження завершено - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 запущено. Ідентифікатор процесу: %2 - + + This is a test email. + Це тестовий електронний лист. + + + + Test email + Тестовий електронний лист + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. «%1» завершив завантаження. - + Information Інформація - + To fix the error, you may need to edit the config file manually. Щоб виправити помилку, вам може знадобитися відредагувати файл конфігурації вручну. - + To control qBittorrent, access the WebUI at: %1 Щоб керувати qBittorrent, перейдіть до веб-інтерфейсу за адресою: %1 - + Exit Вихід - + Recursive download confirmation Підтвердження рекурсивного завантаження - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Торрентний файл «%1» містить файли .torrent, продовжити їх завантаження? - + Never Ніколи - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Рекурсивне завантаження файлу .torrent у торренті. Вихідний торрент: "%1". Файл: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Не вдалося встановити обмеження використання фізичної пам'яті (ОЗП). Код помилки: %1. Текст помилки: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Не вдалося встановити жорсткий ліміт використання фізичної пам'яті (RAM). Запитаний розмір: %1. Жорсткий ліміт системи: %2. Код помилки: %3. Повідомлення про помилку: "%4" - + qBittorrent termination initiated Розпочато припинення роботи qBittorrent - + qBittorrent is shutting down... qBittorrent вимикається... - + Saving torrent progress... Зберігається прогрес торрента... - + qBittorrent is now ready to exit Тепер qBittorrent готовий до виходу @@ -1609,12 +1715,12 @@ Пріоритет: - + Must Not Contain: Не може містити: - + Episode Filter: Фільтр серій: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Експорт... - + 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 Номер сезону — обов'язкове ненульове значення - + 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 першого сезону - + Episode number is a mandatory positive value Номер серії — обов'язкове додатне значення - + Rules Правила - + Rules (legacy) Правила (застарілі) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Нескінченний діапазон: <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 Підтвердження видалення правила - + Invalid action Хибна дія - + The list is empty, there is nothing to export. Список порожній, нічого експортувати - + Export RSS rules Експортувати правила RSS - + I/O Error Помилка вводу/виводу - + Failed to create the destination file. Reason: %1 Не вдалося створити файл призначення. Причина: %1 - + Import RSS rules Імпортувати правила RSS - + Failed to import the selected rules file. Reason: %1 Не вдалося імпортувати вибраний файл правил. Причина: %1 - + Add new rule... Додати нове правило... - + Delete rule Видалити правило - + Rename rule... Перейменувати правило... - + Delete selected rules Видалити позначені правила - + Clear downloaded episodes... Очистити завантажені серії... - + Rule renaming Перейменування правила - + Please type the new rule name Будь ласка, введіть нову назву правила - + Clear downloaded episodes Очистити завантажені серії - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Чи ви певні що хочете очистити список завантажених серій для вибраного правила? - + Regex mode: use Perl-compatible regular expressions Regex режим: використовуйте Perl-сумісні регулярні вирази - - + + Position %1: %2 Позиція %1: %2 - + Wildcard mode: you can use Режим шаблонів: можна використовувати - - + + Import error Помилка імпорту - + Failed to read the file. %1 Не вдалося прочитати файл. %1 - + ? to match any single character ? для позначення будь-якого одного символа - + * to match zero or more of any characters * для позначення 0 або більше будь-яких символів - + Whitespaces count as AND operators (all words, any order) Пробіли вважаються операторами "і" (всі слова, у будь-якому порядку) - + | is used as OR operator | використовується як оператор "або" - + If word order is important use * instead of whitespace. Якщо порядок слів важливий, то використовуйте * замість пробілів. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Вираз з порожнім пунктом %1 (наприклад: %2) - + will match all articles. відповідатиме всім статтям. - + will exclude all articles. виключить всі статті. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Не вдається створити папку відновлення торрента: "%1» @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Неможливо проаналізувати відновлені дані: недійсний формат - - + + Cannot parse torrent info: %1 Неможливо проаналізувати інформацію про торрент: %1 - + Cannot parse torrent info: invalid format Неможливо проаналізувати інформацію про торрент: недійсний формат - + Mismatching info-hash detected in resume data Виявлено невідповідність інфо-хешу в даних відновлення - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Не вдалося зберегти метадані торрента в "%1". Помилка: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. Не вдалося зберегти дані відновлення торрента в "%1". Помилка: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Неможливо проаналізувати відновлені дані: %1 - + Resume data is invalid: neither metadata nor info-hash was found Відновлення даних неможливе: не знайдено ані метаданих, ані інфо-хеш - + Couldn't save data to '%1'. Error: %2 Не вдалося зберегти дані в '%1'. Помилка: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Не знайдено. - + Couldn't load resume data of torrent '%1'. Error: %2 Не вдалося завантажити дані відновлення торрента '%1'.. Помилка: %2 - - + + Database is corrupted. База даних пошкоджена. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Не вдалося ввімкнути режим журналювання Write-Ahead Logging (WAL). Помилка: %1. - + Couldn't obtain query result. Не вдалося отримати результат запиту. - + WAL mode is probably unsupported due to filesystem limitations. Можливо, режим WAL не підтримується через обмеження файлової системи. - + + + Cannot parse resume data: %1 + Неможливо проаналізувати відновлені дані: %1 + + + + + Cannot parse torrent info: %1 + Неможливо проаналізувати інформацію про торрент: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Не вдалося почати трансакцію. Помилка: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Не вдалося зберегти метадані торрента. Помилка: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Не вдалося зберегти дані відновлення торрента '%1'. Помилка: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Не вдалося видалити дані відновлення торрента '%1'. Помилка: %2 - + Couldn't store torrents queue positions. Error: %1 Не вдалося зберегти черговість торрентів. Помилка: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Підтримка розподіленої хеш-таблиці (DHT): %1 - - - - - - - - - + + + + + + + + + ON УВІМКНЕНО - - - - - - - - - + + + + + + + + + OFF ВИМКНЕНО - - + + Local Peer Discovery support: %1 Підтримка локального виявлення пірів: %1 - + Restart is required to toggle Peer Exchange (PeX) support Щоб увімкнути підтримку обміну пірами (PeX), потрібен перезапуск - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Не вдалося відновити торрент. Торрент: "%1". Причина: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Не вдалося відновити торрент: виявлено невідповідний ідентифікатор торрента. Торрент: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Виявлено неузгоджені дані: категорія відсутня у файлі конфігурації. Категорію буде відновлено, але її налаштування буде скинуто до стандартних. Торрент: "%1". Категорія: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Виявлено суперечливі дані: недійсна категорія. Торрент: "%1". Категорія: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Виявлено невідповідність між шляхами збереження відновленої категорії та поточним шляхом збереження торрента. Торрент тепер переведено в ручний режим. Торрент: "%1". Категорія: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Виявлено суперечливі дані: тег відсутній у файлі конфігурації. Тег буде відновлено. Торрент: "%1". Тег: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Виявлено суперечливі дані: недійсний тег. Торрент: "%1". Тег: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Виявлено подію пробудження системи. Повторний анонс всіх трекерів... - + Peer ID: "%1" ID піра: "%1" - + HTTP User-Agent: "%1" Агент користувача HTTP: "%1" - + Peer Exchange (PeX) support: %1 Підтримка Peer Exchange (PeX): %1 - - + + Anonymous mode: %1 Анонімний режим: %1 - - + + Encryption support: %1 Підтримка шифрування: %1 - - + + FORCED ПРИМУШЕНИЙ - + Could not find GUID of network interface. Interface: "%1" Не вдалося знайти GUID мережевого інтерфейсу. Інтерфейс: "%1" - + Trying to listen on the following list of IP addresses: "%1" Пробую слухати на наступних IP адресах: "%1" - + Torrent reached the share ratio limit. Торрент досяг ліміту співвідношення часток. - - - + Torrent: "%1". Торрент: "%1". - - - - Removed torrent. - Видалений торрент. - - - - - - Removed torrent and deleted its content. - Видалив торрент і видалив його вміст. - - - - - - Torrent paused. - Торрент призупинено. - - - - - + Super seeding enabled. Суперсид увімкнено - + Torrent reached the seeding time limit. Торрент досяг ліміту часу заповнення. - + Torrent reached the inactive seeding time limit. Торрент досяг обмеження часу бездіяльності роздачі. - + Failed to load torrent. Reason: "%1" Не вдалося завантажити торрент. Причина: "%1" - + I2P error. Message: "%1". Помилка I2P. Повідомлення: "%1". - + UPnP/NAT-PMP support: ON Підтримка UPnP/NAT-PMP: УВІМК - + + Saving resume data completed. + Збереження даних резюме завершено. + + + + BitTorrent session successfully finished. + Сеанс BitTorrent успішно завершено. + + + + Session shutdown timed out. + Час очікування завершення сеансу минув. + + + + Removing torrent. + Видалення торрента. + + + + Removing torrent and deleting its content. + Видалення торрента і видалення його вмісту. + + + + Torrent stopped. + Торрент зупинився. + + + + Torrent content removed. Torrent: "%1" + Вміст торрента видалено. Торрент: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Не вдалося видалити торрент-контент. Торрент: "%1". Помилка: "%2" + + + + Torrent removed. Torrent: "%1" + Торрент видалено. Торрент: "%1" + + + + Merging of trackers is disabled + Об'єднання трекерів вимкнено + + + + Trackers cannot be merged because it is a private torrent + Трекери не можна об’єднати, оскільки це приватний торрент + + + + Trackers are merged from new source + Трекери об’єднані з нового джерела + + + UPnP/NAT-PMP support: OFF Підтримка UPnP/NAT-PMP: ВИМК - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Не вдалося експортувати торрент. Торрент: "%1". Призначення: "%2". Причина: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Перервано збереження відновлених даних. Кількість непотрібних торрентів: %1 - + The configured network address is invalid. Address: "%1" Налаштована мережева адреса недійсна. Адреса: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Не вдалося знайти налаштовану мережеву адресу для прослуховування. Адреса: "%1" - + The configured network interface is invalid. Interface: "%1" Налаштований мережевий інтерфейс недійсний. Інтерфейс: "%1" - + + Tracker list updated + Список трекерів оновлений + + + + Failed to update tracker list. Reason: "%1" + Не вдалося оновити список трекерів. Причина: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Відхилено недійсну IP-адресу під час застосування списку заборонених IP-адрес. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Додав трекер в торрент. Торрент: "%1". Трекер: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Видалений трекер з торрента. Торрент: "%1". Трекер: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Додано початкову URL-адресу до торрента. Торрент: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Вилучено початкову URL-адресу з торрента. Торрент: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Торрент призупинено. Торрент: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Не вдалося видалити файл частини. Торрент: "%1". Причина: "%2". - + Torrent resumed. Torrent: "%1" Торрент відновлено. Торрент: "%1" - + Torrent download finished. Torrent: "%1" Завантаження торрента завершено. Торрент: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Переміщення торрента скасовано. Торрент: "%1". Джерело: "%2". Пункт призначення: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Торрент зупинився. Торрент: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Не вдалося поставити торрент у чергу. Торрент: "%1". Джерело: "%2". Призначення: "%3". Причина: торрент зараз рухається до місця призначення - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Не вдалося поставити торрент у чергу. Торрент: "%1". Джерело: "%2" Місце призначення: "%3". Причина: обидва шляхи вказують на одне місце - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Переміщення торрента в черзі. Торрент: "%1". Джерело: "%2". Пункт призначення: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Почати переміщення торрента. Торрент: "%1". Пункт призначення: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Не вдалося зберегти конфігурацію категорій. Файл: "%1". Помилка: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Не вдалося проаналізувати конфігурацію категорій. Файл: "%1". Помилка: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Файл IP-фільтра успішно проаналізовано. Кількість застосованих правил: %1 - + Failed to parse the IP filter file Не вдалося проаналізувати файл IP-фільтра - + Restored torrent. Torrent: "%1" Відновлений торрент. Торрент: "%1" - + Added new torrent. Torrent: "%1" Додано новий торрент. Торрент: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Помилка торрента. Торрент: "%1". Помилка: "%2" - - - Removed torrent. Torrent: "%1" - Видалений торрент. Торрент: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Видалив торрент і видалив його вміст. Торрент: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + У торенті відсутні параметри SSL. Торрент: "%1". Повідомлення: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Сповіщення про помилку файлу. Торрент: "%1". Файл: "%2". Причина: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Помилка зіставлення портів UPnP/NAT-PMP. Повідомлення: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Зіставлення порту UPnP/NAT-PMP виконано успішно. Повідомлення: "%1" - + IP filter this peer was blocked. Reason: IP filter. IP фільтр - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). відфільтрований порт (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). привілейований порт (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Не вдалося з'єднання насіння URL -адреси. Торрент: "%1". URL: "%2". Помилка: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" Під час сеансу BitTorrent сталася серйозна помилка. Причина: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Помилка проксі SOCKS5. Адреса: %1. Повідомлення: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 обмеження змішаного режиму - + Failed to load Categories. %1 Не вдалося завантажити категорії. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Не вдалося завантажити конфігурацію категорій. Файл: "%1". Помилка: "Неправильний формат даних" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Видалено торрент, але не вдалося видалити його вміст і/або частину файлу. Торент: "%1". Помилка: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 вимкнено - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 вимкнено - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Помилка DNS-пошуку початкового URL-адреси. Торрент: "%1". URL: "%2". Помилка: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Отримано повідомлення про помилку від початкового URL-адреси. Торрент: "%1". URL: "%2". Повідомлення: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Успішне прослуховування IP. IP: "%1". Порт: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Не вдалося прослухати IP. IP: "%1". Порт: "%2/%3". Причина: "%4" - + Detected external IP. IP: "%1" Виявлено зовнішній IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Помилка: внутрішня черга сповіщень заповнена, сповіщення видаляються, ви можете спостерігати зниження продуктивності. Тип видаленого сповіщення: "%1". Повідомлення: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Торрент успішно перенесено. Торрент: "%1". Пункт призначення: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Не вдалося перемістити торрент. Торрент: "%1". Джерело: "%2". Призначення: "%3". Причина: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Не вдалося розпочати роздачу. BitTorrent::TorrentCreator - + Operation aborted Операцію перервано - - + + Create new torrent file failed. Reason: %1. Не вдалось створити новий торрент файл. Підстава: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Не вдалося додати піра "%1" до торрента "%2". Причина: %3 - + Peer "%1" is added to torrent "%2" Піра "%1" додано до торрента "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Виявлено несподівані дані. Торрент: %1. Дані: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Не вдалося записати у файл. Причина: "%1". Торрент зараз у режимі "тільки завантаження". - + Download first and last piece first: %1, torrent: '%2' Завантажувати з першої та останньої частини: %1, торрент: '%2' - + On Увімк. - + Off Вимк. - + Failed to reload torrent. Torrent: %1. Reason: %2 Не вдалося перезавантажити торрент. Торрент: %1. Причина: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Не вдалося створити , відновити дані. Торрент: "%1". Причина: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Не вдалося відновити торрент. Файли були мабуть переміщенні, або сховище недоступне. Торрент: "%1". Причина: "%2" - + Missing metadata Відсутні метадані - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Перейменування файлу не вдалося. Торрент: "%1", файл: "%2", причина: "%3" - + Performance alert: %1. More info: %2 Попередження продуктивності: %1. Більше інформації: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Параметр '%1' повинен відповідати синтаксису '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Параметр '%1' повинен відповідати синтаксису '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Очікувалося ціле число у змінній середовища '%1', але отримано '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Параметр '%1' повинен відповідати синтаксису '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Очікувалося %1 у змінній середовища '%2', але отримано '%3' - - + + %1 must specify a valid port (1 to 65535). %1 має вказувати коректний порт (від 1 до 65535). - + Usage: Використання: - + [options] [(<filename> | <url>)...] [параметри] [(<filename> | <url>)...] - + Options: Параметри: - + Display program version and exit Показати версію програми та вийти - + Display this help message and exit Показати цю довідку та вийти - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Параметр '%1' повинен відповідати синтаксису '%1=%2' + + + Confirm the legal notice Підтвердьте офіційне повідомлення - - + + port порт - + Change the WebUI port Зміна порту WebUI - + Change the torrenting port Змініть торрент-порт - + Disable splash screen Вимкнути початкову заставку - + Run in daemon-mode (background) Виконувати у фоновому режимі (daemon) - + dir Use appropriate short form or abbreviation of "directory" тека - + Store configuration files in <dir> Зберігати файли конфігурації в <dir> - - + + name назва - + Store configuration files in directories qBittorrent_<name> Зберігати файли налаштувань у каталогах qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Змінити файли швидкого відновлення libtorrent та створити шляхи файлів відносно каталогу профілю - + files or URLs файли або посилання - + Download the torrents passed by the user Завантажити торренти, вказані користувачем - + Options when adding new torrents: Опції для додавання нових торрентів: - + path шлях - + Torrent save path Шлях збереження торрента - - Add torrents as started or paused - Додавати торренти як запущені чи призупинені + + Add torrents as running or stopped + Додайте торренти як запущені або зупинені - + Skip hash check Пропустити перевірку хешу - + Assign torrents to category. If the category doesn't exist, it will be created. Призначити торренти до категорії. Якщо категорія не існує, вона буде створена. - + Download files in sequential order Завантажувати файли по порядку - + Download first and last pieces first Спочатку завантажувати першу і останню частину - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Укажіть, чи відкриватиметься діалогове вікно «Додати новий торрент» під час додавання торрента. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Значення параметрів можуть передаватися через змінні середовища. Для опції з назвою 'parameter-name' змінна середовища — 'QBT_PARAMETER_NAME' (в верхньому регістрі, '-' замінюється на '_'). Щоб передати значення прапорця, встановіть для змінної значення '1' або 'TRUE'. Наприклад, щоб відключити заставку: - + Command line parameters take precedence over environment variables Параметри командного рядка мають пріоритет над змінними середовища - + Help Допомога @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Відновити торренти + Start torrents + Запустити торренти - Pause torrents - Призупинити торренти + Stop torrents + Зупинити торренти @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Редагувати... - + Reset Забрати + + + System + Система + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Не вдалося завантажити власну таблицю стилів теми. %1 - + Failed to load custom theme colors. %1 Не вдалося завантажити власні кольори теми. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Не вдалося завантажити кольори теми за замовчуванням. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Також остаточно видалити файли + Also remove the content files + Також видаліть файли вмісту - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Ви впевнені, що бажаєте видалити «%1» зі списку передачі? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Ви впевнені, що хочете видалити ці %1 торренти зі списку передачі? - + Remove Вилучити @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Завантажити з адрес - + Add torrent links Додати посилання на торрент - + One link per line (HTTP links, Magnet links and info-hashes are supported) Одне посилання на рядок (підтримуються HTTP- і magnet-посилання та інформаційні хеші) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Завантажити - + No URL entered Не введено адресу - + Please type at least one URL. Будь ласка, введіть хоча б одну адресу. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Помилка розбору: Файл фільтра не є коректним файлом PeerGuardian P2B. + + FilterPatternFormatMenu + + + Pattern Format + Формат Шаблону + + + + Plain text + Звичайний текст + + + + Wildcards + Символи підстановки + + + + Regular expression + Регулярний вираз + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Завантаження торрента... Джерело: "%1" - - Trackers cannot be merged because it is a private torrent - Трекери не можна об’єднати, оскільки це приватний торрент - - - + Torrent is already present Торрент вже існує - + + Trackers cannot be merged because it is a private torrent. + Трекери не можуть бути об'єднані, оскільки це приватний торрент. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Торрент '%1' вже є у списку завантажень. Трекери не об'єднано, бо цей торрент приватний. @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. Пошкоджена база даних: не знайдено розділ даних. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Розмір HTTP-запиту перевищує обмеження, закриття сокета. Обмеження: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Неправильний метод HTTP-запиту, закриття сокета. IP: %1. Метод: "%2" - + Bad Http request, closing socket. IP: %1 Невірний HTTP-запит, закриття сокета. IP: %1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Відкрити... - + Reset Забрати - + Select icon Виберіть значок - + Supported image files Підтримувані файли образів + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Керування живленням знайшло відповідний інтерфейс D-Bus. Інтерфейс: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Помилка керування живленням. Дія: %1. Помилка: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Неочікувана помилка керування живленням. Стан: %1. Помилка: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 заблоковано. Підстава: %2. - + %1 was banned 0.0.0.0 was banned %1 заблоковано @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 повинен бути єдиним параметром командного рядка. - + Run application with -h option to read about command line parameters. Запустіть програму із параметром -h, щоб прочитати про параметри командного рядка. - + Bad command line Поганий командний рядок - + Bad command line: Хибний командний рядок: - + An unrecoverable error occurred. Сталася невиправна помилка. + - qBittorrent has encountered an unrecoverable error. qBittorrent виявив невиправну помилку. - + You cannot use %1: qBittorrent is already running. Ви не можете використовувати %1: qBittorrent вже запущено. - + Another qBittorrent instance is already running. Інший екземпляр qBittorrent вже запущено. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Знайдено неочікуваний екземпляр qBittorrent. Вихід з цього екземпляру. Ідентифікатор процесу: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Помилка при демонізації. Причина: "%1". Код помилки: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Торренти - + &Tools &Інструменти - + &File &Файл - + &Help &Допомога - + On Downloads &Done Після &завершення завантажень - + &View &Показати - + &Options... &Налаштування... - - &Resume - &Відновити - - - + &Remove &Вилучити - + Torrent &Creator С&творення торрента - - + + Alternative Speed Limits Альтернативні обмеження швидкості - + &Top Toolbar &Верхню панель - + Display Top Toolbar Показувати верхню панель - + Status &Bar Рядок &стану - + Filters Sidebar Бічна Панель Фільтрів - + S&peed in Title Bar &Швидкість у заголовку - + Show Transfer Speed in Title Bar Показувати швидкість передачі у заголовку - + &RSS Reader &Читач RSS - + Search &Engine &Пошуковик - + L&ock qBittorrent За&блокувати qBittorrent - + Do&nate! По&жертвувати гроші - + + Sh&utdown System + Си&стема відключення + + + &Do nothing &Нічого не робити - + Close Window Закрити вікно - - R&esume All - П&родовжити всі - - - + Manage Cookies... Керування Cookies... - + Manage stored network cookies Керування збереженими мережевими Cookies - + Normal Messages Звичайні повідомлення - + Information Messages Інформаційні повідомлення - + Warning Messages Попередження - + Critical Messages Критичні повідомлення - + &Log &Журнал - + + Sta&rt + Пу&ск + + + + Sto&p + Сто&п + + + + R&esume Session + В&ідновити сеанс + + + + Pau&se Session + При&зупинити Сеанс + + + Set Global Speed Limits... Встановити глобальний ліміт швидкості... - + Bottom of Queue В кінець - + Move to the bottom of the queue Перемістити в кінець - + Top of Queue На початок - + Move to the top of the queue Перемістити на початок - + Move Down Queue Посунути назад - + Move down in the queue Посунути назад - + Move Up Queue Посунути вперед - + Move up in the queue Посунути вперед - + &Exit qBittorrent В&ийти з qBittorrent - + &Suspend System При&зупинити систему - + &Hibernate System При&спати систему - - S&hutdown System - &Вимкнути систему - - - + &Statistics &Статистика - + Check for Updates Перевірити оновлення - + Check for Program Updates Перевірити оновлення програми - + &About &Про програму - - &Pause - При&зупинити - - - - P&ause All - &Зупинити всі - - - + &Add Torrent File... &Додати torrent-файл... - + Open Відкрити - + E&xit &Вийти - + Open URL Відкрити адресу - + &Documentation &Документація - + Lock Замкнути - - - + + + Show Показати - + Check for program updates Перевірити, чи є свіжіші версії програми - + Add Torrent &Link... Додати &посилання на торрент - + If you like qBittorrent, please donate! Якщо вам подобається qBittorrent, будь ласка, пожертвуйте кошти! - - + + Execution Log Журнал виконання - + Clear the password Забрати пароль - + &Set Password &Встановити пароль - + Preferences Налаштування - + &Clear Password &Забрати пароль - + Transfers Завантаження - - + + qBittorrent is minimized to tray qBittorrent згорнено до системного лотка - - - + + + This behavior can be changed in the settings. You won't be reminded again. Цю поведінку можна змінити в Налаштуваннях. Більше дане повідомлення показуватися не буде. - + Icons Only Лише значки - + Text Only Лише текст - + Text Alongside Icons Текст біля значків - + Text Under Icons Текст під значками - + Follow System Style Наслідувати стиль системи - - + + UI lock password Пароль блокування інтерфейсу - - + + Please type the UI lock password: Будь ласка, введіть пароль блокування інтерфейсу: - + Are you sure you want to clear the password? Ви впевнені, що хочете забрати пароль? - + Use regular expressions Використовувати регулярні вирази - + + + Search Engine + Пошуковик + + + + Search has failed + Пошук невдалий + + + + Search has finished + Пошук закінчено + + + Search Пошук - + Transfers (%1) Завантаження (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent щойно був оновлений і потребує перезапуску, щоб застосувати зміни. - + qBittorrent is closed to tray qBittorrent закрито до системного лотка - + Some files are currently transferring. Деякі файли наразі передаються. - + Are you sure you want to quit qBittorrent? Ви впевнені, що хочете вийти з qBittorrent? - + &No &Ні - + &Yes &Так - + &Always Yes &Завжди так - + Options saved. Параметри збережені. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [ПАУЗА] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Інсталятор Python не вдалося завантажити. Помилка: %1. +Будь ласка, встановіть його вручну. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Не вдалося перейменувати інсталятор Python. Джерело: "%1". Призначення: "%2". + + + + Python installation success. + Успіх у встановленні Python. + + + + Exit code: %1. + Код виходу: %1. + + + + Reason: installer crashed. + Причина: Інсталятор аварійно завершився. + + + + Python installation failed. + Не вдалося встановити Python. + + + + Launching Python installer. File: "%1". + Запуск інсталятора Python. Файл: "%1". + + + + Missing Python Runtime Відсутнє середовище виконання Python - + qBittorrent Update Available Доступне оновлення qBittorrent - + 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, але, здається, він не встановлений. - - + + Old Python Runtime Стара версія Python - + A new version is available. Доступна нова версія. - + Do you want to download %1? Чи ви хочете завантажити %1? - + Open changelog... Відкрити список змін... - + No updates available. You are already using the latest version. Немає доступних оновлень. Ви вже користуєтеся найновішою версією. - + &Check for Updates &Перевірити оновлення - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - Ваша версія Python (%1) застаріла. Мінімальна вимога: %2 + Ваша версія Python (%1) застаріла. Мінімальна вимога: %2 Ви бажаєте встановити більш нову версію зараз? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - Ваша версія Python (%1) застаріла. Будь ласка, оновіться до останньої версії, щоб пошукові системи працювали. + Ваша версія Python (%1) застаріла. Будь ласка, оновіться до останньої версії, щоб пошукові системи працювали. Мінімально необхідна версія: %2. - + + Paused + Призупинені + + + Checking for Updates... Перевірка оновлень... - + Already checking for program updates in the background Вже відбувається фонова перевірка оновлень - + + Python installation in progress... + Встановлення Python, що триває ... + + + + Failed to open Python installer. File: "%1". + Не вдалося відкрити інсталятор Python. Файл: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Невдалий хеш MD5 на наявність інсталятора Python. Файл: "%1". Результат Хеш: "%2". Очікується хеш: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Невдалий хеш-перевірка SHA3-512 наявність інсталятора Python. Файл: "%1". Результат Хеш: "%2". Очікується хеш: "%3". + + + Download error Помилка завантаження - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Не вдалося завантажити програму інсталяції Python. Причина: %1. -Будь ласка, встановіть Python самостійно. - - - - + + Invalid password Неправильний пароль - + Filter torrents... Фільтрувати торренти... - + Filter by: Фільтрувати за: - + The password must be at least 3 characters long Пароль має містити щонайменше 3 символи - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files Відкрити torrent-файли - + Torrent Files Torrent-файли @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Помилка SSL, URL: "%1", помилки: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Ігнорування помилки SSL, адреса: "%1", помилки: "%2" @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 З'єднання не вдале, нерозпізнана відповідь: %1 - + Authentication failed, msg: %1 Автентифікація не вдала, повід.: %1 - + <mail from> was rejected by server, msg: %1 <mail from> було відхиллено сервером, повід.: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> було відхиллено сервером, повід.: %1 - + <data> was rejected by server, msg: %1 <data> було відхиллено сервером, повід.: %1 - + Message was rejected by the server, error: %1 Повідомлення було відхилене сервером, помилка: %1 - + Both EHLO and HELO failed, msg: %1 Обидві команди EHLO і HELO не вдалися, повід.: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP сервер схоже не підтримує жоден з способів автентифікації, які ми підтримуємо [CRAM-MD5|PLAIN|LOGIN], пропускаємо автентифікацію, тому що це, ймовірно, зазнає невдачі... Способи Автентифікації Сервера: %1 - + Email Notification Error: %1 Помилка Сповіщення Електронною Поштою: %1 @@ -5604,299 +5928,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Веб-інтерфейс - - - + Advanced Додатково - + Customize UI Theme... Налаштувати тему інтерфейсу користувача... - + Transfer List Список завантажень - + Confirm when deleting torrents Підтверджувати видалення торрентів - - Shows a confirmation dialog upon pausing/resuming all the torrents - Показує діалогове вікно підтвердження після призупинення/відновлення всіх торрентів - - - - Confirm "Pause/Resume all" actions - Підтвердьте дії "призупинити/відновити все" - - - + Use alternating row colors In table elements, every other row will have a grey background. Кожен другий рядок виділений кольором - + Hide zero and infinity values Сховати значення нуль та нескінченність - + Always Завжди - - Paused torrents only - Лише призупинені торренти - - - + Action on double-click Дія при подвійному клацанні - + Downloading torrents: Якщо завантажується: - - - Start / Stop Torrent - Запустити або зупинити торрент - - - - + + Open destination folder Відкрити теку призначення - - + + No action Нічого не робити - + Completed torrents: Завершені торренти: - + Auto hide zero status filters Автоматичне приховування фільтрів нульового стану - + Desktop Робочий стіл - + Start qBittorrent on Windows start up Запускати qBittorrent при завантаженні системи - + Show splash screen on start up Показувати логотип при завантаженні програми - + Confirmation on exit when torrents are active Підтверджувати вихід, коли є активні торренти - + Confirmation on auto-exit when downloads finish Підтверджувати автоматичний вихід після завершення завантажень - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Щоб встановити qBittorrent як програму за замовчуванням для файлів .torrent і/або Magnet посилань<br/>ви можете використовувати <span style=" font-weight:600;">Програми за замовчуванням</span> діалог від <span style=" font-weight:600;">Панель управління</span>.</p></body></html> - + KiB КіБ - + + Show free disk space in status bar + + + + Torrent content layout: Структура вмісту торрента: - + Original Без змін - + Create subfolder Створити підтеку - + Don't create subfolder Не створювати підтеку - + The torrent will be added to the top of the download queue Торрент буде додано на початок черги завантаження - + Add to top of queue The torrent will be added to the top of the download queue Додати в початок черги - + When duplicate torrent is being added При додаванні дубліката торрента - + Merge trackers to existing torrent Об'єднати трекери в існуючий торрент - + Keep unselected files in ".unwanted" folder Зберігайте невибрані файли у теці ".unwanted" - + Add... Додати... - + Options.. Опції... - + Remove Видалити - + Email notification &upon download completion Сповіщення через e-mail про &завершення завантажень - + + Send test email + Надіслати тестовий електронний лист + + + + Run on torrent added: + Запущено торрент додано: + + + + Run on torrent finished: + Запущений торрент заавершений: + + + Peer connection protocol: Протокол підключення пірів: - + Any Будь-який - + I2P (experimental) I2P (експериментальний) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Якщо &quot; ввімкнено «змішаний режим»&quot;, торрентам I2P також дозволено отримувати однорангові джерела з інших джерел, крім трекера, і підключатися до звичайних IP-адрес, не забезпечуючи анонімізації. Це може бути корисним, якщо користувач не зацікавлений в анонімізації I2P, але все одно хоче мати можливість підключатися до однорангових I2P..</p></body></html> - - - + Mixed mode Змішаний режим - - Some options are incompatible with the chosen proxy type! - Деякі параметри несумісні з вибраним типом проксі! - - - + If checked, hostname lookups are done via the proxy Якщо позначено, пошук імені хоста виконується через проксі - + Perform hostname lookup via proxy Виконайте пошук імені хоста через проксі - + Use proxy for BitTorrent purposes Використовуйте проксі для цілей BitTorrent - + RSS feeds will use proxy RSS-канали використовуватимуть проксі - + Use proxy for RSS purposes Використовуйте проксі для цілей RSS - + Search engine, software updates or anything else will use proxy Пошукова система, оновлення програмного забезпечення чи щось інше використовуватиме проксі - + Use proxy for general purposes Використовуйте проксі для загальних цілей - + IP Fi&ltering &Фільтрування IP - + Schedule &the use of alternative rate limits Використання альтернативних обмежень &швидкості за розкладом - + From: From start time З: - + To: To end time До: - + Find peers on the DHT network Шукати пірів в DHT (децентралізованій мережі) - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption Вимкнути шифрування: лише підключатися до пірів без шифрування протоколу - + Allow encryption Дозволити шифрування - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Детальніше</a>) - + Maximum active checking torrents: Максимум активних перевірок торрентів: - + &Torrent Queueing &Черга торрентів - + When total seeding time reaches По досягненні загального часу роздачі - + When inactive seeding time reaches По досягненні часу бездіяльності роздачі - - A&utomatically add these trackers to new downloads: - Автоматично &додавати ці трекери до нових завантажень: - - - + RSS Reader Читач RSS - + Enable fetching RSS feeds Увімкнути завантаження RSS-подач - + Feeds refresh interval: Інтервал оновлення подач: - + Same host request delay: - + Затримка запиту до хоста: - + Maximum number of articles per feed: Максимальна кількість новин на подачу: - - - + + + min minutes хв - + Seeding Limits Обмеження роздачі - - Pause torrent - Призупинити торрент - - - + Remove torrent Видалити торрент - + Remove torrent and its files Видалити торрент та його файли - + Enable super seeding for torrent Увімкнути режим супер-сід для торрента - + When ratio reaches При досягненні коефіцієнта роздачі - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Зупинити торрент + + + + A&utomatically append these trackers to new downloads: + А&втоматично додавати ці трекери до нових завантажень: + + + + Automatically append trackers from URL to new downloads: + Автоматично додайте трекери з URL -адреси до нових завантажень: + + + + URL: + Адреса: + + + + Fetched trackers + Отримані трекери + + + + Search UI + Пошук UI + + + + Store opened tabs + Збережені вкладки магазину + + + + Also store search results + Також зберігайте результати пошуку + + + + History length + Довжина історії + + + RSS Torrent Auto Downloader Автозавантажувач торрентів із RSS - + Enable auto downloading of RSS torrents Увімкнути автоматичне завантаження торрентів із RSS - + Edit auto downloading rules... Редагувати правила автозавантаження... - + RSS Smart Episode Filter Розумний фільтр серій по RSS - + Download REPACK/PROPER episodes Завантажувати серії REPACK/PROPER - + Filters: Фільтри: - + Web User Interface (Remote control) Веб-інтерфейс користувача (дистанційне керування) - + IP address: IP адреса: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv "::" для будь-якої адреси IPv6, або "*" для IPv4 і IPv6. - + Ban client after consecutive failures: Заблокувати клієнта після послідовних збоїв: - + Never Ніколи - + ban for: заблокувати на: - + Session timeout: Тайм-аут сеансу: - + Disabled Вимкнено - - Enable cookie Secure flag (requires HTTPS) - Увімкнути захист cookie (вимагає HTTPS) - - - + Server domains: Домени сервера: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP &Використовувати HTTPS замість HTTP - + Bypass authentication for clients on localhost Пропустити автентифікацію для клієнтів на цьому ж комп'ютері - + Bypass authentication for clients in whitelisted IP subnets Пропустити автентифікацію для клієнтів із дозволених підмереж IP - + IP subnet whitelist... Список дозволених підмереж IP... - + + Use alternative WebUI + Використовувати альтернативний WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Укажіть IP-адреси зворотного проксі-сервера (або підмережі, наприклад 0.0.0.0/24), щоб використовувати перенаправлену адресу клієнта (заголовок X-Forwarded-For). Використовуйте ';' щоб розділити кілька записів. - + Upda&te my dynamic domain name Оновлювати мій &динамічний домен - + Minimize qBittorrent to notification area Згортати qBittorrent у область сповіщень - + + Search + Пошук + + + + WebUI + WebUI + + + Interface Інтерфейс - + Language: Мова: - + + Style: + Стиль: + + + + Color scheme: + Колірна схема: + + + + Stopped torrents only + Зупинені лише торренти + + + + + Start / stop torrent + Почати / зупинити торрент + + + + + Open torrent options dialog + Відкрийте діалогове вікно параметрів торрент + + + Tray icon style: Стиль значка в системному лотку: - - + + Normal Звичайний - + File association Прив'язка файлів - + Use qBittorrent for .torrent files Використовувати qBittorrent для файлів .torrent - + Use qBittorrent for magnet links Використовувати qBittorrent для magnet-посилань - + Check for program updates Перевірити оновлення програми - + Power Management Керування енергоспоживанням - + + &Log Files + Файл &Журналів + + + Save path: Шлях збереження: - + Backup the log file after: Робити окрему копію журналу після: - + Delete backup logs older than: Видаляти файли журналу, старіші ніж: - + + Show external IP in status bar + Показати зовнішній IP у рядку стану + + + When adding a torrent При додаванні торрента - + Bring torrent dialog to the front Підняти вікно торрента - + + The torrent will be added to download list in a stopped state + Торрент буде додано до списку завантажень у зупиненому стані + + + Also delete .torrent files whose addition was cancelled Також видаляти .torrent-файли, додавання яких було скасовано - + Also when addition is cancelled Також, якщо додавання скасовано - + Warning! Data loss possible! Увага! Можлива втрата даних! - + Saving Management Керування зберіганням - + Default Torrent Management Mode: Усталений режим керування торрентами: - + Manual Вручну - + Automatic Автоматичний - + When Torrent Category changed: Коли змінилася категорія торрента: - + Relocate torrent Перемістити торрент - + Switch torrent to Manual Mode Перемкнути торрент до ручного режиму - - + + Relocate affected torrents Перемістити відповідні торренти - - + + Switch affected torrents to Manual Mode Перемкнути відповідні торренти до ручного режиму - + Use Subcategories Використовувати підкатегорії - + Default Save Path: Типовий шлях збереження: - + Copy .torrent files to: Копіювати torrent-файли до: - + Show &qBittorrent in notification area Показувати &qBittorrent в області сповіщень - - &Log file - Файл &журналу - - - + Display &torrent content and some options Показувати вміст &торрента та деякі налаштування - + De&lete .torrent files afterwards &Видаляти файли .torrent опісля - + Copy .torrent files for finished downloads to: Копіювати torrent-файли для завершених завантажень до: - + Pre-allocate disk space for all files Попередньо виділяти місце для всіх файлів - + Use custom UI Theme Використовувати власну тему - + UI Theme file: Шлях до файла теми: - + Changing Interface settings requires application restart Для застосування налаштувань інтерфейсу, потрібно перезапустити програму - + Shows a confirmation dialog upon torrent deletion Відображення діалогу підтвердження при видаленні торрента - - + + Preview file, otherwise open destination folder Переглянути файл або відкрити теку призначення - - - Show torrent options - Показати параметри торрента - - - + Shows a confirmation dialog when exiting with active torrents Показувати діалог підтвердження при закритті, якщо є активні торренти - + When minimizing, the main window is closed and must be reopened from the systray icon При згортанні, головне вікно закривається і відновлюється через значок в області сповіщень - + The systray icon will still be visible when closing the main window Значок в області сповіщень залишається видимим після закриття головного вікна - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window При закритті згортати qBittorrent в область сповіщень - + Monochrome (for dark theme) Монохромний (для темної теми) - + Monochrome (for light theme) Монохромний (для світлої теми) - + Inhibit system sleep when torrents are downloading Заборонити сплячий режим, коли торренти завантажуються - + Inhibit system sleep when torrents are seeding Заборонити сплячий режим, коли торренти роздаються - + Creates an additional log file after the log file reaches the specified file size Створює додатковий файл журналу при досягненні певного розміру попереднього файлу - + days Delete backup logs older than 10 days днів - + months Delete backup logs older than 10 months місяців - + years Delete backup logs older than 10 years років - + Log performance warnings Писати в журнал попередження швидкодії - - The torrent will be added to download list in a paused state - Торрент додаватиметься до списку завантаження у призупиненому стані - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Не починати завантаження автоматично - + Whether the .torrent file should be deleted after adding it Чи слід видалити файл .torrent після його додавання - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Перед початком завантаження виділяти на диску місце під повний розмір файлу, щоб мінімізувати фрагментацію. Корисно лише для HDD. - + Append .!qB extension to incomplete files Додавати розширення .!qB до незавершених файлів - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Коли торрент завантажено, запропонувати додати торренти з будь-яких файлів .torrent, знайдених у ньому - + Enable recursive download dialog Увімкнути діалог рекурсивного завантаження - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Автоматично: різні властивості торренту (наприклад, шлях збереження) визначатимуться відповідною категорією Вручну: різні властивості торренту (наприклад, шлях збереження) потрібно призначати вручну - + When Default Save/Incomplete Path changed: Коли стандартний шлях для зберігання/невиконаних торрентів змінюється: - + When Category Save Path changed: Коли змінився шлях збереження категорії: - + Use Category paths in Manual Mode Використовувати шляхи Категорій в Ручному Режимі - + Resolve relative Save Path against appropriate Category path instead of Default one Визначити відносний Шлях Збереження у відповідному шляху Категорії замість типового - + Use icons from system theme Використовуйте іконки з системної теми - + Window state on start up: Стан вікна під час запуску: - + qBittorrent window state on start up Стан вікна qBittorrent під час запуску - + Torrent stop condition: Умови зупинки торрента: - - + + None Жодного - - + + Metadata received Метадані отримано - - + + Files checked Файли перевірені - + Ask for merging trackers when torrent is being added manually Просити про об'єднання трекерів, при ручному додаванні торрента - + Use another path for incomplete torrents: Використовувати інший шлях для неповних торрентів: - + Automatically add torrents from: Автоматично додавати торренти із: - + Excluded file names Виключені імена файлів - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: фільтрувати точне ім'я файлу. readme[0-9].txt: фільтр 'readme1.txt', 'readme2.txt', але не 'readme10.txt'. - + Receiver Одержувач - + To: To receiver Кому: - + SMTP server: Сервер SMTP: - + Sender Відправник - + From: From sender Від: - + This server requires a secure connection (SSL) Цей сервер вимагає безпечного з'єднання (SSL) - - + + Authentication Автентифікація - - - - + + + + Username: Ім'я користувача: - - - - + + + + Password: Пароль: - + Run external program Запускати зовнішню програму - - Run on torrent added - Запускати при додаванні торрента - - - - Run on torrent finished - Запускати при завершені торрента - - - + Show console window Показати вікно консолі - + TCP and μTP TCP та μTP - + Listening Port Порт для вхідних з'єднань - + Port used for incoming connections: Порт, який використовуватиметься для вхідних з'єднань: - + Set to 0 to let your system pick an unused port Встановіть рівним 0, щоб дозволити системі вибрати якийсь невикористаний порт - + Random Випадковий - + Use UPnP / NAT-PMP port forwarding from my router Використовувати на моєму роутері перенаправлення портів UPnP / NAT-PMP - + Connections Limits Обмеження з'єднань - + Maximum number of connections per torrent: Максимальна кількість з'єднань на торрент: - + Global maximum number of connections: Загальна максимальна кількість з'єднань: - + Maximum number of upload slots per torrent: Макс. з'єднань для відвантаження на торрент: - + Global maximum number of upload slots: Загальна максимальна кількість з'єднань для відвантаження: - + Proxy Server Проксі-сервер - + Type: Тип: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Адреса: - - - + + + Port: Порт: - + Otherwise, the proxy server is only used for tracker connections В іншому випадку, проксі-сервер використовується лише для з'єднань з трекером - + Use proxy for peer connections Використовувати проксі для з'єднання з пірами - + A&uthentication &Автентифікація - - Info: The password is saved unencrypted - Увага: пароль зберігається в незашифрованому вигляді - - - + Filter path (.dat, .p2p, .p2b): Шлях до фільтра (.dat, .p2p, .p2b): - + Reload the filter Перезавантажити фільтр - + Manually banned IP addresses... Вручну заблоковані IP-адреси... - + Apply to trackers Застосувати до трекерів - + Global Rate Limits Глобальні обмеження швидкості - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s КіБ/с - - + + Upload: Відвантаження: - - + + Download: Завантаження: - + Alternative Rate Limits Альтернативні обмеження швидкості - + Start time Час початку - + End time Час завершення - + When: Коли: - + Every day Щодня - + Weekdays Робочі дні - + Weekends Вихідні - + Rate Limits Settings Налаштування обмежень швидкості - + Apply rate limit to peers on LAN Застосувати обмеження для пірів з LAN - + Apply rate limit to transport overhead Включати в обмеження протокол передачі - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Якщо "змішаний режим" увімкнено I2P -торренти дозволяється також отримувати однолітки з інших джерел, ніж трекер, і підключитися до звичайних IPS, не забезпечуючи жодної анонімізації. Це може бути корисно, якщо користувач не зацікавлений у анонімізації I2P, але все -таки хоче мати можливість підключитися до однолітків I2P.</p></body></html> + + + Apply rate limit to µTP protocol Включати в обмеження протокол uTP - + Privacy Конфіденційність - + Enable DHT (decentralized network) to find more peers Увімкнути DHT (децентралізовану мережу), щоб знаходити більше пірів - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Обмін пірами із сумісними Bittorrent-клієнтами (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers Увімкнути обмін пірами (PeX), щоб знаходити більше пірів - + Look for peers on your local network Шукати пірів у локальній мережі - + Enable Local Peer Discovery to find more peers Увімкнути локальний пошук пірів, щоб знаходити більше пірів - + Encryption mode: Режим шифрування: - + Require encryption Вимагати шифрування - + Disable encryption Вимкнути шифрування - + Enable when using a proxy or a VPN connection Увімкнути при використанні з'єднання через проксі або VPN - + Enable anonymous mode Увімкнути анонімний режим - + Maximum active downloads: Максимум активних завантажень: - + Maximum active uploads: Максимум активних відвантажень: - + Maximum active torrents: Максимум активних торрентів: - + Do not count slow torrents in these limits Не враховувати повільні торренти до цих обмежень - + Upload rate threshold: Поріг швидкості відвантаження: - + Download rate threshold: Поріг швидкості завантаження: - - - - + + + + sec seconds сек - + Torrent inactivity timer: Час простоювання торрента: - + then а тоді - + Use UPnP / NAT-PMP to forward the port from my router Використовувати UPnP / NAT-PMP, щоб направити порт в роутері - + Certificate: Сертифікат: - + Key: Ключ: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Інформація про сертифікати</a> - + Change current password Змінити поточний пароль - - Use alternative Web UI - Використовувати альтернативний Веб-інтерфейс - - - + Files location: Розташування файлів: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Список альтернативних Webui</a> + + + Security Безпека - + Enable clickjacking protection Увімкнути захист від клікджекінгу - + Enable Cross-Site Request Forgery (CSRF) protection Увімкнути захист від міжсайтової підробки запиту (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Увімкнути прапор захищених файлів cookie (вимагає HTTPS або LocalHost Connection) + + + Enable Host header validation Увімкнути перевірку заголовку хоста - + Add custom HTTP headers Додати власні заголовки HTTP - + Header: value pairs, one per line По одному запису "заголовок: значення" на рядок - + Enable reverse proxy support Увімкнути підтримку зворотного проксі-сервера - + Trusted proxies list: Список довірених проксі: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Приклади налаштування зворотного проксі</a> + + + Service: Сервіс: - + Register Зареєструватись - + Domain name: Домен: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Увімкнувши ці налаштування, ви ризикуєте <strong>безповоротно втратити</strong> ваші файли .torrent! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Якщо увімкнути другий параметр ( &ldquo;Також, якщо додавання скасовано&rdquo;) файл .torrent <strong>буде видалено</strong> навіть якщо ви натиснете &ldquo;<strong>Скасувати</strong>&rdquo; у вікні &ldquo;Додати торрент&rdquo; - + Select qBittorrent UI Theme file Вибрати файл теми qBittorrent - + Choose Alternative UI files location Використовувати розташування файлів альтернативного інтерфейсу - + Supported parameters (case sensitive): Підтримувані параметри (чутливо до регістру): - + Minimized Згорнуто - + Hidden Приховано - + Disabled due to failed to detect system tray presence Вимкнено, оскільки не вдалося виявити наявність системного лотка - + No stop condition is set. Умову зупинки не задано. - + Torrent will stop after metadata is received. Торрент зупиниться після отримання метаданих. - Torrents that have metadata initially aren't affected. - Це не впливає на торренти, які спочатку мають метадані. - - - + Torrent will stop after files are initially checked. Торрент зупиниться після початкової перевірки файлів. - + This will also download metadata if it wasn't there initially. Це також завантажить метадані, якщо їх не було спочатку. - + %N: Torrent name %N: Назва торрента - + %L: Category %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: Поточний трекер - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Порада: Візьміть параметр у лапки, щоб заборонити обрізання тексту на пробілах (наприклад, "%N") - + + Test email + Тестовий електронний лист + + + + Attempted to send email. Check your inbox to confirm success + Спроба надіслати електронний лист. Перевірте свою поштову скриньку, щоб підтвердити успіх + + + (None) (Немає) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Торрент буде вважатися повільним, якщо його швидкість відвантаження або віддачі стане менше зазначених значень на час "Таймера бездіяльності торрента" - + Certificate Сертифікат: - + Select certificate Вибрати сертифікат - + Private key Закритий ключ - + Select private key Вибрати закритий ключ - + WebUI configuration failed. Reason: %1 Не вдалося виконати конфігурацію WebUI. Причина: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 рекомендується для кращої сумісності з темним режимом Windows + + + + System + System default Qt style + Система + + + + Let Qt decide the style for this system + Хай Qt визначить стиль для цієї системи + + + + Dark + Dark color scheme + Темна тема + + + + Light + Light color scheme + Світла тема + + + + System + System color scheme + Система + + + Select folder to monitor Виберіть теку для спостереження - + Adding entry failed Не вдалося додати запис - + The WebUI username must be at least 3 characters long. Ім'я користувача WebUI повинно мати довжину не менше 3 символів. - + The WebUI password must be at least 6 characters long. Пароль WebUI повинен мати довжину не менше 6 символів. - + Location Error Помилка розташування - - + + Choose export directory Виберіть каталог для експорту - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Коли ці параметри увімкнено, qBittorrent <strong>видалить</strong> файли .torrent після того як їх успішно (перший варіант) або неуспішно (другий варіант) додано до черги завантаження. Це буде застосовано <strong>не лише</strong> до файлів відкритих через меню &ldquo;Додати тооррент&rdquo;, але також до тих, що відкриваються через <strong>асоціацію типів файлів</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Файл теми інтерфейсу користувача qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Мітки (розділені комами) - + %I: Info hash v1 (or '-' if unavailable) %I: інфо хеш v1 (або '-', якщо він недоступний) - + %J: Info hash v2 (or '-' if unavailable) %J: інфо хеш v2 (або '-', якщо він недоступний) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: Torrent ID (або sha-1 інфо хеш для торрента v1 або урізаний інфо хеш sha-256 для v2/гібридного торрента) - - - + + + Choose a save directory Виберіть каталог для збереження - + Torrents that have metadata initially will be added as stopped. - + Торренти, які мають метадані, будуть додані як зупинені. - + Choose an IP filter file Виберіть файл IP-фільтра - + All supported filters Всі підтримувані фільтри - + The alternative WebUI files location cannot be blank. Альтернативне розташування файлів WebUI не може бути порожнім. - + 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 правил. - + Preferences Налаштування - + Time Error Помилка часу - + The start time and the end time can't be the same. Час початку і кінця не може бути тим самим. - - + + Length Error Помилка довжини @@ -7335,241 +7765,246 @@ readme[0-9].txt: фільтр 'readme1.txt', 'readme2.txt', PeerInfo - + Unknown Невідомий - + Interested (local) and choked (peer) ми зацікавлені, пір відмовляється - + Interested (local) and unchoked (peer) ми зацікавлені, пір погоджується (успішно завантажуємо) - + Interested (peer) and choked (local) пір зацікавлений, ми відмовляємось - + Interested (peer) and unchoked (local) пір зацікавлений, ми погоджуємося (успішно відвантажуємо) - + Not interested (local) and unchoked (peer) ми незацікавлені, пір погоджується - + Not interested (peer) and unchoked (local) пір незацікавлений, ми погоджуємося - + Optimistic unchoke оптимістичний вибір - + Peer snubbed пір зупинився - + Incoming connection Вхідне з'єднання - + Peer from DHT Пір із DHT - + Peer from PEX Пір із PEX - + Peer from LSD Пір із LSD - + Encrypted traffic Шифрований трафік - + Encrypted handshake зашифроване рукостискання + + + Peer is using NAT hole punching + Peer використовує пробивання отворів NAT + PeerListWidget - + Country/Region Країна/регіон - + IP/Address IP/Адреса - + Port Порт - + Flags Властивості - + Connection З'єднання - + Client i.e.: Client application Клієнт - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID Клієнт - + 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. Доречність - + Files i.e. files that are being downloaded right now Файли - + Column visibility Показані колонки - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту - + Add peers... Додати піри... - - + + Adding peers Додавання пірів - + Some peers cannot be added. Check the Log for details. Деякі піри не можуть бути додані. Дивіться журнал для отримання докладної інформації. - + Peers are added to this torrent. Піри додані до цього торрента. - - + + Ban peer permanently Заблокувати піра - + Cannot add peers to a private torrent Неможливо додати піри до приватного торрента - + Cannot add peers when the torrent is checking Неможливо додати піри, коли торрент перевіряється - + Cannot add peers when the torrent is queued Неможливо додати піри, коли торрент стоїть у черзі - + No peer was selected Не було вибрано жодного піра - + Are you sure you want to permanently ban the selected peers? Ви впевнені, що хочете назавжди заблокувати виділених пірів? - + Peer "%1" is manually banned Пір "%1" заблокований вручну - + N/A - + Copy IP:port Копіювати IP:порт @@ -7587,7 +8022,7 @@ readme[0-9].txt: фільтр 'readme1.txt', 'readme2.txt', Список пірів, яких ви хочете додати (один IP на рядок): - + Format: IPv4:port / [IPv6]:port Формат: IPv4:порт / [IPv6]:порт @@ -7628,27 +8063,27 @@ readme[0-9].txt: фільтр 'readme1.txt', 'readme2.txt', PiecesBar - + Files in this piece: Файли в даній частині: - + File in this piece: Файл у цій частині: - + File in these pieces: Файл у таких частинах: - + Wait until metadata become available to see detailed information Для перегляду детальної інформації, зачекайте, поки метадані стануть доступними - + Hold Shift key for detailed information Утримуйте клавішу Shift для перегляду розширеної інформації @@ -7661,58 +8096,58 @@ readme[0-9].txt: фільтр 'readme1.txt', 'readme2.txt', Пошукові додатки - + Installed search plugins: Встановлені пошукові додатки: - + Name Назва - + Version Версія - + Url Адреса - - + + Enabled Увімкнено - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Попередження: Під час завантаження торрентів з будь-якої з цих пошукових систем, обов'язково дотримуйтесь законів про захист авторських прав у вашій країні. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Ви можете отримати нові плагіни для пошукових систем тут: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Встановити новий - + Check for updates Перевірити оновлення - + Close Закрити - + Uninstall Видалити @@ -7832,98 +8267,65 @@ Those plugins were disabled. Джерело додатка - + Search plugin source: Джерело пошукового додатка: - + Local file Локальний файл - + Web link Веб-посилання - - PowerManagement - - - qBittorrent is active - qBittorrent працює - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Керування живленням знайшло відповідний інтерфейс D-Bus. Інтерфейс: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Помилка керування живленням. Не знайдено відповідний інтерфейс D-Bus. - - - - - - Power management error. Action: %1. Error: %2 - Помилка керування живленням. Дія: %1. Помилка: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Неочікувана помилка керування живленням. Стан: %1. Помилка: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Наступні файли з торрента "%1" підтримують попередній перегляд, будь ласка, виберіть один з них: - + Preview Попередній перегляд - + Name Назва - + Size Розмір - + Progress Перебіг - + Preview impossible Попередній перегляд неможливий - + Sorry, we can't preview this file: "%1". Вибачте, попередній перегляд цього файла неможливий: "%1". - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту @@ -7936,27 +8338,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist Шляху не існує - + Path does not point to a directory Шлях не вказує на каталог - + Path does not point to a file Шлях не вказує на файл - + Don't have read permission to path Немає дозволу на читання шляху - + Don't have write permission to path Немає дозволу на запис до шляху @@ -7997,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: Завантажено: - + Availability: Доступно: @@ -8017,53 +8419,53 @@ Those plugins were disabled. Передача - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Активний протягом: - + ETA: Залишилось: - + Uploaded: Відвантажено: - + Seeds: Сіди: - + Download Speed: Швидкість завантаження: - + Upload Speed: Швидкість відвантаження: - + Peers: Піри: - + Download Limit: Обмеження завантаження: - + Upload Limit: Обмеження відвантаження: - + Wasted: Змарновано: @@ -8073,193 +8475,220 @@ Those plugins were disabled. З'єднання: - + Information Інформація - + Info Hash v1: Інфо-хеш v1: - + Info Hash v2: Інфо-хеш v2: - + Comment: Коментар: - + Select All Вибрати все - + Select None Зняти виділення - + Share Ratio: Коефіцієнт роздачі: - + Reannounce In: Повторне анонсування через: - + Last Seen Complete: Востаннє завершений: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Співвідношення / Час активності (у місяцях), вказує на популярність торрента + + + + Popularity: + Популярність: + + + Total Size: Загальний розмір: - + Pieces: Частин: - + Created By: Автор: - + Added On: Додано: - + Completed On: Завершено: - + Created On: Створено: - + + Private: + Приватний: + + + Save Path: Шлях збереження: - + Never Ніколи - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 × %2 (є %3) - - + + %1 (%2 this session) %1 (%2 цього сеансу) - - + + + N/A - + + Yes + Так + + + + No + Ні + + + %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 середн.) - - New Web seed - Додати Веб-сід + + Add web seed + Add HTTP source + Додайте веб seed - - Remove Web seed - Вилучити Веб-сід + + Add web seed: + Додайте веб seed - - Copy Web seed URL - Скопіювати адресу веб-сіда + + + This web seed is already in the list. + Це веб seed вже в списку. - - Edit Web seed URL - Редагувати адресу веб-сіда - - - + Filter files... Фільтрувати файли... - + + Add web seed... + Додайте веб seed... + + + + Remove web seed + Видаліть веб seed + + + + Copy web seed URL + Скопіюйте URL -адресу веб seed + + + + Edit web seed URL... + Редагувати URL -адресу веб seed ... + + + Speed graphs are disabled Графіки швидкості вимкнені - + You can enable it in Advanced Options Ви можете увімкнути їх в додаткових параметрах - - New URL seed - New HTTP source - Нова адреса сіда - - - - New URL seed: - Нова адреса сіда: - - - - - This URL seed is already in the list. - Ця адреса сіда вже є у списку. - - - + Web seed editing Редагування Веб-сіда - + Web seed URL: Адреса Веб-сіда: @@ -8267,33 +8696,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. Хибний формат даних. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Не вдалося зберегти дані Автозавантажувача RSS з %1. Помилка: %2 - + Invalid data format Хибний формат даних - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... RSS-стаття '%1' прийнята правилом '%2'. Спроба додати торрент. - + Failed to read RSS AutoDownloader rules. %1 Не вдалося прочитати правила Автозавантажувача RSS. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Не вдалося завантажити правила Автозавантажувача RSS. Причина: %1 @@ -8301,22 +8730,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Не вдалося завантажити RSS-канал з '%1'. Причина: %2 - + RSS feed at '%1' updated. Added %2 new articles. RSS-канал з '%1' оновлено. Додано %2 нових статей. - + Failed to parse RSS feed at '%1'. Reason: %2 Не вдалося розібрати RSS-канал з '%1'. Причина: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. RSS-канал з '%1' успішно завантажений. Почався його розбір. @@ -8352,12 +8781,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. Некоректна RSS подача. - + %1 (line: %2, column: %3, offset: %4). %1 (рядок: %2, стовпець: %3, зсув: %4). @@ -8365,103 +8794,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Не вдалося зберегти конфігурацію сесії RSS подачі. Файл: "%1". Помилка: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Не вдалося зберегти данні сесії RSS подачі. Файл: "%1". Помилка: "%2" - - + + RSS feed with given URL already exists: %1. RSS канал за адресою вже присутній: %1. - + Feed doesn't exist: %1. Канал не існує: %1. - + Cannot move root folder. Не вдалося перемістити кореневу теку - - + + Item doesn't exist: %1. Елемент не існує: %1. - - Couldn't move folder into itself. - Не вдалося перемістити папку в саму себе. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Не вдалося видалити кореневу теку. - + Failed to read RSS session data. %1 Не вдалося прочитати дані сеансу RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Не вдалося розібрати дані сеансу RSS. Файл: "%1". Помилка: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Не вдалося завантажити дані сеансу RSS. Файл: "%1". Помилка: "Неправильний формат даних". - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Не вдалося завантажити RSS-канал "%1". Канал: "%1". Причина: Потрібна адреса. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Не вдалося завантажити RSS-канал "%1". Канал: "%1". Причина: Хибний UID. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Повторна RSS роздача знайдена. UID: "%1". Помилка: Конфігурація схоже пошкоджена. - + Couldn't load RSS item. Item: "%1". Invalid data format. Не вдалося завантажити елемент RSS. Елемент: "%1". Хибний формат даних. - + Corrupted RSS list, not loading it. Пошкоджений список RSS подач, не завантажую його. - + Incorrect RSS Item path: %1. Некоректний шлях елемента RSS: %1. - + RSS item with given path already exists: %1. Запис RSS за даним шляхом вже присутній: %1. - + Parent folder doesn't exist: %1. Батьківська тека не існує: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Канал не існує: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + Адреса: + + + + Refresh interval: + Інтервал оновлення: + + + + sec + сек + + + + Default + Типово + + RSSWidget @@ -8481,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read Позначити як прочитане @@ -8507,132 +8977,115 @@ Those plugins were disabled. Торренти: (двічі клацніть щоб завантажити) - - + + Delete Видалити - + Rename... Перейменувати... - + Rename Перейменувати - - + + Update Оновити - + New subscription... Нова підписка... - - + + Update all feeds Оновити всі подачі - + Download torrent Завантажити торрент - + Open news URL Відкрити адресу новини - + Copy feed URL Копіювати адресу подачі - + New folder... Нова тека... - - Edit feed URL... - Редагувати розсилку URL каналу... + + Feed options... + - - Edit feed URL - Редагувати розсилку URL каналу... - - - + Please choose a folder name Будь ласка, виберіть назву теки - + Folder name: Назва теки: - + New folder Нова тека - - - Please type a RSS feed URL - Будь-ласка, введіть адресу подачі RSS - - - - - Feed URL: - Адреса подачі: - - - + 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: Нова назва подачі: - + Rename failed Перейменування не вдалося - + Date: Дата: - + Feed: канал: - + Author: Автор: @@ -8640,38 +9093,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. Для використання пошуковика вимагається встановлений Python. - + Unable to create more than %1 concurrent searches. Не можна створити більше %1 одночасних пошуків. - - + + Offset is out of range Зсув поза діапазоном - + All plugins are already up to date. Всі додатки свіжої версії. - + Updating %1 plugins Оновлення %1 додатків - + Updating plugin %1 Оновлюється додаток %1 - + Failed to check for plugin updates: %1 Не вдалося перевірити оновлення додатку: %1 @@ -8746,132 +9199,142 @@ Those plugins were disabled. Розмір: - + 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 - Пошуковик - - - + Filter search results... Фільтрувати результати пошуку... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Результати (показано <i>%1</i> із <i>%2</i>): - + Torrent names only Лише назви торрентів - + Everywhere Всюди - + Use regular expressions Використовувати регулярні вирази - + Open download window Відкрити вікно завантаження - + Download Завантажити - + Open description page Відкрити сторінку опису - + Copy Копіювати - + Name Назва - + Download link Посилання для завантаження - + Description page URL Адреса сторінки з описом - + Searching... Шукаю... - + Search has finished Пошук закінчено - + Search aborted Пошук скасовано - + An error occurred during search... Під час пошуку сталася помилка... - + Search returned no results Пошук не дав результів - + + Engine + Двигун + + + + Engine URL + URL-адреса двигуна + + + + Published On + Опубліковано + + + Column visibility Показані колонки - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту @@ -8879,104 +9342,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. Нова адреса пошукового додатка - + Plugin already at version %1, which is greater than %2 Плаґін уже має версію %1, що вище ніж %2 - + A more recent version of this plugin is already installed. Новіша версія цього пошукового додатка вже встановлена. - + Plugin %1 is not supported. Додаток %1 не підтримується. - - + + Plugin is not supported. Додаток не підтримується. - + Plugin %1 has been successfully updated. Додаток %1 успішно оновлено. - + All categories Всі категорії - + Movies Фільми - + TV shows Телешоу - + Music Музика - + Games Ігри - + Anime Аніме - + Software Програми - + Pictures Зображення - + Books Книги - + Update server is temporarily unavailable. %1 Сервер оновлень тимчасово недоступний. %1 - - + + Failed to download the plugin file. %1 Не вдалося завантажити файл додатка. %1 - + Plugin "%1" is outdated, updating to version %2 Плаґін "%1 " застарів, оновлення до версії %2 - + Incorrect update info received for %1 out of %2 plugins. Отримано неправильну інформацію про оновлення для %1 з %2 плаґінів. - + Search plugin '%1' contains invalid version string ('%2') Пошуковий додаток '%1' містить хибний рядок версії ('%2') @@ -8986,114 +9449,145 @@ Those plugins were disabled. - - - - Search Пошук - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Не встановлено жодного пошукового додатку. Клацніть кнопку "Шукати додатки..." справа знизу, щоб встановити їх. - + Search plugins... Пошукові додатки... - + A phrase to search for. Пошукова фраза. - + Spaces in a search term may be protected by double quotes. Пробіли в пошуковій фразі можна захистити прямими подвійними лапками - + Example: Search phrase example Наприклад: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: шукати <b>foo bar</b> - + All plugins Всі додатки - + Only enabled Лише увімкнені - + + + Invalid data format. + Хибний формат даних. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: пошук для <b>foo</b> і <b>bar</b> - + + Refresh + Оновлювати + + + Close tab Закрити вкладку - + Close all tabs Закрити усі вкладки - + Select... Вибрати... - - - + + Search Engine Пошуковик - + + Please install Python to use the Search Engine. Будь ласка, встановіть Python, щоб використовувати Пошуковик - + Empty search pattern Порожній шаблон пошуку - + Please type a search pattern first Будь ласка, спочатку введіть шаблон пошуку - + + Stop Зупинити + + + SearchWidget::DataStorage - - Search has finished - Пошук закінчено + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Не вдалося завантажити пошук за збереженим UI даних. Файл: "%1". Помилка: "%2" - - Search has failed - Пошук невдалий + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Не вдалося завантажити збережені результати пошуку. Вкладка: "%1". Файл: "%2". Помилка: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Не вдалося зберегти пошук стану UI. Файл: "%1". Помилка: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Не вдалося зберегти результати пошуку. Вкладка: "%1". Файл: "%2". Помилка: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Не вдалося завантажити пошук історії UI. Файл: "%1". Помилка: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Не вдалося зберегти історію пошуку. Файл: "%1". Помилка: "%2" @@ -9206,34 +9700,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: Відвантаження: - - - + + + - - - + + + KiB/s КіБ/с - - + + Download: Завантаження: - + Alternative speed limits Альтернативні обмеження швидкості @@ -9425,32 +9919,32 @@ Click the "Search plugins..." button at the bottom right of the window Середній час в черзі: - + Connected peers: Під'єднані піри: - + All-time share ratio: Коєфіцієнт відданого за весь час: - + All-time download: Завантажено за весь час: - + Session waste: Змарновано за сеанс: - + All-time upload: Відвантажено за весь час: - + Total buffer size: Загальний розмір буфера: @@ -9465,12 +9959,12 @@ Click the "Search plugins..." button at the bottom right of the window Завдання вводу/виводу в черзі: - + Write cache overload: Перевантаження кешу запису: - + Read cache overload: Перевантаження кешу зчитування: @@ -9489,51 +9983,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: Статус з'єднання: - - + + No direct connections. This may indicate network configuration problems. Немає прямих з'єднань. Це може означати, що є проблеми з налаштуванням мережі. - - + + Free space: N/A + + + + + + External IP: N/A + Зовнішній IP: N/A + + + + DHT: %1 nodes DHT: %1 вузлів - + qBittorrent needs to be restarted! Потрібно перезапустити qBittorrent! - - - + + + Connection Status: Статус з'єднання: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Не в мережі. Зазвичай це означає, що qBittorrent не може приймати вхідні з'єднання з вибраного порту. - + Online В мережі - + + Free space: + + + + + External IPs: %1, %2 + Зовнішні IPs: %1, %2 + + + + External IP: %1%2 + Зовнішній IP: %1 %2 + + + Click to switch to alternative speed limits Клацніть, щоб перемкнутись на альтернативні обмеження швидкості - + Click to switch to regular speed limits Клацніть, щоб повернутись до звичайних обмежень швидкості @@ -9563,13 +10083,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - Відновлені (0) + Running (0) + Виконується (0) - Paused (0) - Призупинені (0) + Stopped (0) + Зупинено (0) @@ -9631,36 +10151,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) Завершені (%1) + + + Running (%1) + Виконується (%1) + - Paused (%1) - Призупинені (%1) + Stopped (%1) + Зупинено (%1) + + + + Start torrents + Запустити торренти + + + + Stop torrents + Зупинити торренти Moving (%1) Переміщення (%1) - - - Resume torrents - Відновити завантаження - - - - Pause torrents - Призупинити завантаження - Remove torrents Вилучити торренти - - - Resumed (%1) - Відновлені (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags Вилучити невикористовувані мітки - - - Resume torrents - Відновити торренти - - - - Pause torrents - Призупинити торренти - Remove torrents Вилучити торренти - - New Tag - Нова мітка + + Start torrents + Запустити торренти + + + + Stop torrents + Зупинити торренти Tag: Мітка: + + + Add tag + Додати тег + Invalid tag name @@ -9903,32 +10423,32 @@ Please choose a different name and try again. TorrentContentModel - + Name Назва - + Progress Прогрес - + Download Priority Пріоритет - + Remaining Залишилось - + Availability Доступно - + Total Size Загальний розмір @@ -9973,98 +10493,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error Помилка перейменування - + Renaming Перейменування - + New name: Нова назва: - + Column visibility Видимість колонки - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту - + Open Відкрити - + Open containing folder Відкрити папку, що містить - + Rename... Перейменувати... - + Priority Пріоритет - - + + Do not download Не завантажувати - + Normal Нормальний - + High Високий - + Maximum Максимальний - + By shown file order За показаним порядком файлів - + Normal priority Звичайний пріоритет - + High priority Високий пріоритет - + Maximum priority Максимальний пріоритет - + Priority by shown file order Пріоритет за порядком файлів @@ -10072,19 +10592,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Забагато активних завдань - + Torrent creation is still unfinished. - + Створення торрента ще не завершено. - + Torrent creation failed. - + Не вдалося створити торрент. @@ -10111,13 +10631,13 @@ Please choose a different name and try again. - + Select file Виберіть файл - + Select folder Виберіть теку @@ -10192,87 +10712,83 @@ Please choose a different name and try again. Поля - + You can separate tracker tiers / groups with an empty line. Використовуйте порожні рядки для поділу рівнів / груп трекерів. - + Web seed URLs: Адреси веб-сідів: - + Tracker URLs: Адреси трекерів: - + Comments: Коментарі: - + Source: Джерело: - + Progress: Прогрес: - + Create Torrent Створити торрент - - + + Torrent creation failed Не вдалося створити торрент - + Reason: Path to file/folder is not readable. Причина: Шлях до файла або теки недоступний для читання. - + Select where to save the new torrent Виберіть, куди зберегти новий торрент - + Torrent Files (*.torrent) Torrent-файли (*.torrent) - Reason: %1 - Причина: %1 - - - + Add torrent to transfer list failed. Не вдалося додати торрент до списку передачі. - + Reason: "%1" Причина: "%1" - + Add torrent failed Не вдалося додати торрент - + Torrent creator Створення торрента - + Torrent created: Торрент створено: @@ -10280,32 +10796,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Не вдалося завантажити конфігурацію спостережуваних папок. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Не вдалося розібрати налаштування переглянутих папок з %1. Помилка: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Не вдалося завантажити налаштуваня спостережуваних папок з %1. Помилка: "Неправильний формат даних". - + Couldn't store Watched Folders configuration to %1. Error: %2 Не вдалося зберегти конфігурацію Спостережуваних тек у %1. Помилка: %2 - + Watched folder Path cannot be empty. Спостережувана тека не може бути порожньою. - + Watched folder Path cannot be relative. Шлях до Спостережуваної теки не може бути відносним @@ -10313,44 +10829,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 Недійсний URI магніту. URI: %1. Причина: %2 - + Magnet file too big. File: %1 Magnet-файл занадто великий. Файл: %1 - + Failed to open magnet file: %1 Не вдалось відкрити magnet-посилання: %1 - + Rejecting failed torrent file: %1 Відхилення невдалого торрент-файлу: %1 - + Watching folder: "%1" Папка перегляду: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Не вдалося виділити пам'ять при читанні файла. Файл: "%1". Помилка: "%2" - - - - Invalid metadata - Хибні метадані - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Please choose a different name and try again. Використовувати інший шлях для неповних торрентів - + Category: Категорія: - - Torrent speed limits - Обмеження швидкості торрента + + Torrent Share Limits + Обмеження потоку торрент - + Download: Завантаження: - - + + - - + + Torrent Speed Limits + Обмеження швидкості потоку торрент + + + + KiB/s КіБ/с - + These will not exceed the global limits Це не перевищить глобальні обмеження - + Upload: Відвантаження: - - Torrent share limits - Обмеження роздачі торрента - - - - Use global share limit - Використовувати глобальні обмеження - - - - Set no share limit - Встановити необмежену роздачу - - - - Set share limit to - Встановити обмеження роздачі - - - - ratio - коефіцієнт - - - - total minutes - всього хвилин - - - - inactive minutes - хвилин неактивності - - - + Disable DHT for this torrent Вимкнути DHT для цього торрента - + Download in sequential order Завантажувати послідовно - + Disable PeX for this torrent Вимкнути PeX для цього торрента - + Download first and last pieces first Завантажувати спочатку першу та останню частину - + Disable LSD for this torrent Вимкнути LSD для цього торрента - + Currently used categories Наразі задіяні категорії - - + + Choose save path Виберіть шлях збереження - + Not applicable to private torrents Не застосовується до приватних торрентів - - - No share limit method selected - Не вибраний метод обмеження роздачі - - - - Please select a limit method first - Будь ласка, виберіть метод обмеження - TorrentShareLimitsWidget - - - + + + + Default - + Типово + + + + + + Unlimited + Без обмежень - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Встановити на + + + + Seeding time: + Час роздачі: + + + + + + + + min minutes - хв + хв - + Inactive seeding time: - + Неактивний час роздачі: - + + Action when the limit is reached: + Дія при досягненні ліміту: + + + + Stop torrent + Зупинити торрент + + + + Remove torrent + Видалити торрент + + + + Remove torrent and its content + Видаліть торрент і його вміст + + + + Enable super seeding for torrent + Увімкнути режим супер-сід для торрента + + + Ratio: - + Співвідношення: @@ -10558,32 +11049,32 @@ Please choose a different name and try again. Торрент теги - - New Tag - Нова мітка + + Add tag + Додати тег - + Tag: Мітка: - + Invalid tag name Некоректна назва мітки - + Tag name '%1' is invalid. Назва мітки '%1' некоректна - + Tag exists Мітка існує - + Tag name already exists. Мітка під такою назвою вже існує. @@ -10591,115 +11082,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. Помилка: '%1' не є коректним torrent-файлом. - + Priority must be an integer Пріоритет повинен бути цілим числом - + Priority is not valid Некоректний пріоритет - + Torrent's metadata has not yet downloaded Метадані торрента ще не завантажені - + File IDs must be integers Ідентифікатори файлів повинні бути цілими числами - + File ID is not valid Некоректний ідентифікатор файла - - - - + + + + Torrent queueing must be enabled Черга торрентів повинна бути увімкнена - - + + Save path cannot be empty Шлях збереження не може бути порожнім - - + + Cannot create target directory Не вдається створити цільовий каталог - - + + Category cannot be empty Категорія не може бути порожньою - + Unable to create category Не вдалося створити категорію - + Unable to edit category Не вдалося редагувати категорію - + Unable to export torrent file. Error: %1 Не вдалося експортувати торрент-файл. Помилка: "%1" - + Cannot make save path Не вдалося створити шлях збереження - + + "%1" is not a valid URL + "%1" - це не дійсна URL адреса + + + + URL scheme must be one of [%1] + Схема URL повинна бути однією з [%1] + + + 'sort' parameter is invalid хибно вказаний параметр "sort" - + + "%1" is not an existing URL + "%1" - це не існуюча URL адреса + + + "%1" is not a valid file index. "%1" не є коректним індексом файлу. - + Index %1 is out of bounds. Індекс %1 виходить за межі. - - + + Cannot write to directory Не вдалося записати до каталогу - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI Задати розташування: переміщення "%1" з "%2" на "%3" - + Incorrect torrent name Хибна назва торрента - - + + Incorrect category name Некоректна назва категорії @@ -10730,196 +11236,191 @@ Please choose a different name and try again. TrackerListModel - + Working Працює - + Disabled Вимкнено - + Disabled for this torrent Відключити для цього торрента - + This torrent is private Цей торрент приватний - + N/A - + Updating... Оновлюється... - + Not working Не працює - + Tracker error Помилка трекера - + Unreachable Недосяжний - + Not contacted yet Ще не зв'язувався - - Invalid status! - Недійсний статус! - - - - URL/Announce endpoint - URL/Оголошення кінцевої точки + + Invalid state! + Недійсний стан! + URL/Announce Endpoint + URL/Оголошення кінцевої точки + + + + BT Protocol + Протокол BT + + + + Next Announce + Наступний анонс + + + + Min Announce + Мін. Оголошення + + + Tier Ранг - - Protocol - Протокол - - - + Status Статус - + Peers Піри - + Seeds Сіди - + Leeches Лічери - + Times Downloaded Разів Завантажено - + Message Повідомлення - - - Next announce - Наступний анонс - - - - Min announce - Мін анонсувати - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private Цей торрент приватний - + Tracker editing Редагування трекера - + Tracker URL: Адреса трекера: - - + + Tracker editing failed Не вдалось відредагувати трекер - + The tracker URL entered is invalid. Введено некоректну адресу трекера. - + The tracker URL already exists. Така адреса трекера вже існує. - + Edit tracker URL... Редагувати адресу трекера... - + Remove tracker Вилучити трекер - + Copy tracker URL Копіювати адресу трекера - + Force reannounce to selected trackers Примусово отримати пірів із вибраних трекерів - + Force reannounce to all trackers Примусово отримати піри з усіх трекерів - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту - + Add trackers... Додати трекери... - + Column visibility Показані колонки @@ -10937,37 +11438,37 @@ Please choose a different name and try again. Список трекерів, які ви хочете додати (один на рядок): - + µTorrent compatible list URL: Адреса списку, сумісного з µTorrent: - + Download trackers list Завантажте список трекерів - + Add Додати - + Trackers list URL error Помилка URL-адреси списку трекерів - + The trackers list URL cannot be empty URL-адреса списку трекерів не може бути пустою - + Download trackers list error Помилка списку трекерів завантаження - + Error occurred when downloading the trackers list. Reason: "%1" Під час завантаження списку трекерів сталася помилка. Причина: "%1" @@ -10975,62 +11476,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) Попередження (%1) - + Trackerless (%1) Без трекерів (%1) - + Tracker error (%1) Помилка трекера (%1) - + Other error (%1) Інша помилка (%1) - + Remove tracker Вилучити трекер - - Resume torrents - Відновити торренти + + Start torrents + Запустити торренти - - Pause torrents - Призупинити завантаження + + Stop torrents + Зупинити торренти - + Remove torrents Вилучити торренти - + Removal confirmation Підтвердження видалення - + Are you sure you want to remove tracker "%1" from all torrents? Ви впевнені, що хочете видалити трекер "%1" з усіх торрентів? - + Don't ask me again. Більше не питай мене. - + All (%1) this is for the tracker filter Всі (%1) @@ -11039,7 +11540,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'режим': недійсний аргумент @@ -11131,11 +11632,6 @@ Please choose a different name and try again. 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. Перевірка даних відновлення - - - Paused - Призупинений - Completed @@ -11159,220 +11655,252 @@ Please choose a different name and try again. З помилкою - + Name i.e: torrent name Назва - + Size i.e: torrent size Розмір - + Progress % Done Прогрес - + + Stopped + Зупинено + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Статус - + Seeds i.e. full sources (often untranslated) Сіди - + Peers i.e. partial sources (often untranslated) Піри - + Down Speed i.e: Download speed Шв. завант. - + Up Speed i.e: Upload speed Шв. відвант. - + Ratio Share ratio Коеф. - + + Popularity + Популярність + + + ETA i.e: Estimated Time of Arrival / Time left Залишилось - + Category Категорія - + Tags Мітки - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Додано - + Completed On Torrent was completed on 01/01/2010 08:00 Завершено - + Tracker Трекер - + Down Limit i.e: Download limit Обмеження завантаження - + Up Limit i.e: Upload limit Обмеження відвантаження - + Downloaded Amount of data downloaded (e.g. in MB) Завантажено - + Uploaded Amount of data uploaded (e.g. in MB) Відвантажено - + 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) Відвантажено за сеанс - + Remaining Amount of data left to download (e.g. in MB) Залишилось - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Активний протягом - + + Yes + Так + + + + No + Ні + + + Save Path Torrent save path Шлях збереження - + Incomplete Save Path Torrent incomplete save path Неповний шлях збереження - + Completed Amount of data completed (e.g. in MB) Завершені - + Ratio Limit Upload share ratio limit Обмеження коефіцієнта - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Востаннє завершений - + Last Activity Time passed since a chunk was downloaded/uploaded Востаннє активний - + Total Size i.e. Size including unwanted data Загальний розмір - + Availability The number of distributed copies of the torrent Доступно - + Info Hash v1 i.e: torrent info hash v1 Хеш інформації v1 - + Info Hash v2 i.e: torrent info hash v2 Хеш інформації v2 - + Reannounce In Indicates the time until next trackers reannounce Повторно оголосити в - - + + Private + Flags private torrents + Приватний + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Співвідношення / Час активності (у місяцях), вказує на популярність торрента + + + + + N/A - + %1 ago e.g.: 1h 20m ago %1 тому - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (роздається %2) @@ -11381,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility Показані колонки - + Recheck confirmation Підтвердження повторної перевірки - + Are you sure you want to recheck the selected torrent(s)? Ви впевнені, що хочете повторно перевірити вибрані торрент(и)? - + Rename Перейменувати - + New name: Нова назва: - + Choose save path Виберіть шлях збереження - - Confirm pause - Підтвердити паузу - - - - Would you like to pause all torrents? - Хочете призупинити всі торренти? - - - - Confirm resume - Підтвердити відновити - - - - Would you like to resume all torrents? - Бажаєте відновити всі торренти? - - - + Unable to preview Попередній перегляд не вдався - + The selected torrent "%1" does not contain previewable files Обраний торрент "%1" не містить файлів для попереднього перегляду - + Resize columns Змінити розмір стовпців - + Resize all non-hidden columns to the size of their contents Змінити розмір усіх не прихованих стовпців до розміру їх вмісту - + Enable automatic torrent management Увімкнути автоматичне керування торрентами - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Ви впевнені, що хочете увімкнути Автоматичне Керування Торрентами для вибраних торрент(ів)? Вони можуть бути переміщенні. - - Add Tags - Додати мітки - - - + Choose folder to save exported .torrent files Виберіть теку для збереження експортованих .torrent файлів - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Експорт .torrent файла не вдалий. Торрент: "%1". Шлях збереження: "%2". Причина: "%3" - + A file with the same name already exists Файл з такою назвою вже існує - + Export .torrent file error Помилка експорта .torrent файла - + Remove All Tags Вилучити всі мітки - + Remove all tags from selected torrents? Вилучити всі мітки із вибраних торрентів? - + Comma-separated tags: Мітки, розділені комами: - + Invalid tag Некоректна мітка - + Tag name: '%1' is invalid Назва мітки: '%1' некоректна - - &Resume - Resume/start the torrent - &Відновити - - - - &Pause - Pause the torrent - &Призупинити - - - - Force Resu&me - Force Resume/start the torrent - Примусово Продо&вжити - - - + Pre&view file... Пере&глянути файл... - + Torrent &options... Налаштування &торрента... - + Open destination &folder Відкрити &теку призначення - + Move &up i.e. move up in the queue Посунути &вперед - + Move &down i.e. Move down in the queue Посунути &назад - + Move to &top i.e. Move to top of the queue Перемістити на &початок - + Move to &bottom i.e. Move to bottom of the queue Перемістити в &кінець - + Set loc&ation... Змінити розта&шування... - + Force rec&heck Примусова перев&ірка - + Force r&eannounce Примусове п&овторне анонсування - + &Magnet link &Magnet-посилання - + Torrent &ID &ID торрента - + &Comment &Коментар - + &Name &Назва - + Info &hash v1 Інформаційний &хеш версія 1 - + Info h&ash v2 Інформаційний х&еш версія 2 - + Re&name... Пере&йменувати... - + Edit trac&kers... Редагувати тре&кери... - + E&xport .torrent... Е&кспортувати .torrent... - + Categor&y Категорі&я - + &New... New category... &Нова... - + &Reset Reset category &Збросити - + Ta&gs Те&ги - + &Add... Add / assign multiple tags... &Додати... - + &Remove All Remove all tags &Вилучити Всі - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Неможливо примусово повторно оголосити, якщо торрент Зупинено/У Черзі/Помилка/Перевірка + + + &Queue &Черга - + &Copy &Копіювати - + Exported torrent is not necessarily the same as the imported Експортований торрент не обов’язково збігається з імпортованим - + Download in sequential order Завантажувати послідовно - + + Add tags + Додати тег + + + Errors occurred when exporting .torrent files. Check execution log for details. Під час експорту файлів .torrent виникли помилки. Подробиці перевірте в журналі виконання. - + + &Start + Resume/start the torrent + &Запуск + + + + Sto&p + Stop the torrent + Сто&п + + + + Force Star&t + Force Resume/start the torrent + Примусовий Запус&к + + + &Remove Remove the torrent &Вилучити - + Download first and last pieces first Спочатку завантажувати першу і останню частину - + Automatic Torrent Management Автоматичне керування торрентами - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Автоматичний режим означає, що різні властивості торрента (наприклад, шлях збереження) визначатимуться відповідною категорією - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Неможливо примусово оголосити повторно, якщо торрент Призупинено/Поставлено в чергу/З помилкою/Перевіряється - - - + Super seeding mode Режим супер-сідування @@ -11758,28 +12266,28 @@ Please choose a different name and try again. Ідентифікатор значка - + UI Theme Configuration. Конфігурація теми інтерфейсу користувача - + The UI Theme changes could not be fully applied. The details can be found in the Log. Зміни теми інтерфейсу користувача не вдалося застосувати повністю. Подробиці можна знайти в журналі. - + Couldn't save UI Theme configuration. Reason: %1 Не вдалося зберегти конфігурацію теми інтерфейсу користувача. Причина: %1 - - + + Couldn't remove icon file. File: %1. Не вдалося видалити файл значка. Файл: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Не вдалося скопіювати файл значка. Джерело: %1. Призначення: %2. @@ -11787,7 +12295,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Не вдалося встановити стиль програми. Невідомий стиль: "%1" + + + Failed to load UI theme from file: "%1" Не вдалося завантажити тему інтерфейсу з файлу: "%1" @@ -11818,20 +12331,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Не вдалося перенести налаштування: Веб-інтерфейс https, файл: "%1", помилка: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Перенесені налаштування: Веб-інтерфейс https, експортовано дані у файл: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". У файлі конфігурації знайдено недійсне значення, повертаємо його до значення за замовчуванням. Ключ: "%1". Недійсне значення: "%2". @@ -11839,32 +12353,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Знайдено виконуваний файл Python. Ім'я: "%1". Версія: "%2" - + Failed to find Python executable. Path: "%1". Не вдалося знайти виконуваний файл Python. Шлях: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Не вдалося знайти виконуваний файл `python3` у змінній середовища PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Не вдалося знайти виконуваний файл `python` у змінній середовища PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Не вдалося знайти виконуваний файл `python` у реєстрі Windows. - + Failed to find Python executable Не вдалося знайти виконуваний файл Python @@ -11956,72 +12470,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Вказано неприйнятне ім’я cookie сеансу: «%1». Використовується стандартний. - + Unacceptable file type, only regular file is allowed. Неприпустимий тип файлу, дозволені лише звичайні файли. - + Symlinks inside alternative UI folder are forbidden. Символічні посилання всередині теки альтернативного інтерфейсу заборонені. - + Using built-in WebUI. Використовуючи вбудований WebUI. - + Using custom WebUI. Location: "%1". Використання кастомного WebUI. Місцезнаходження: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Переклад WebUI для вибраної локалі (%1) успішно завантажено. - + Couldn't load WebUI translation for selected locale (%1). Не вдалося завантажити переклад WebUI для вибраної локалі (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Відсутній роздільник ":" у спеціальному HTTP-заголовку Веб-інтерфейсу: "%1" - + Web server error. %1 Помилка веб-сервера. %1 - + Web server error. Unknown error. Помилка веб-сервера. Невідома помилка. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Веб-інтерфейс: заголовок напрямку переходу не співпадає з цільовою адресою! IP джерела: «%1». Заголовок напрямку переходу: «%2». Цільова адреса: «%3» - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Веб-інтерфейс: заголовок джерела не співпадають з цільовою адресою! IP джерела: «%1». Заголовок джерела: «%2». Цільова адреса: «%3» - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Веб-інтерфейс: неправильний заголовок хоста. IP джерела запиту: «%1». Порт серверу: «%2». Отриманий заголовок хоста: «%3» - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Веб-інтерфейс: неправильний заголовок хоста. IP джерела запиту: '%1'. Отриманий заголовок хоста: '%2' @@ -12029,83 +12543,91 @@ Please choose a different name and try again. WebUI - + Credentials are not set Облікові дані не задано - + WebUI: HTTPS setup successful WebUI: Налаштування HTTPS виконано успішно - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: Не вдалося налаштувати HTTPS, поверніться до HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Зараз слухаємо на IP: %1, порт: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Не вдалося прив'язатися до IP: %1, порт: %2. Причина: %3 + + fs + + + Unknown error + Невідома помилка + + misc - + B bytes Б - + KiB kibibytes (1024 bytes) КіБ - + MiB mebibytes (1024 kibibytes) МіБ - + GiB gibibytes (1024 mibibytes) ГіБ - + TiB tebibytes (1024 gibibytes) ТіБ - + PiB pebibytes (1024 tebibytes) ПіБ - + EiB exbibytes (1024 pebibytes) ЕіБ - + /s per second - + %1s e.g: 10 seconds %1s @@ -12303,43 +12825,43 @@ Please choose a different name and try again.   - + %1m e.g: 10 minutes %1хв - + %1h %2m e.g: 3 hours 5 minutes %1г %2хв - + %1d %2h e.g: 2 days 10 hours %1д %2г - + %1y %2d e.g: 2 years 10 days %1y %2d - - + + Unknown Unknown (size) Невідомо - + qBittorrent will shutdown the computer now because all downloads are complete. Зараз qBittorrent вимкне комп'ютер, бо всі завантаження завершено. - + < 1m < 1 minute < 1хв diff --git a/src/lang/qbittorrent_uz@Latn.ts b/src/lang/qbittorrent_uz@Latn.ts index 1d3d7cef6..eebcefb08 100644 --- a/src/lang/qbittorrent_uz@Latn.ts +++ b/src/lang/qbittorrent_uz@Latn.ts @@ -12,75 +12,75 @@ Haqida - + Authors Mualliflar - + Current maintainer Joriy ta'minotchi - + Greece Gretsiya - - + + Nationality: Millati: - - + + E-mail: E-mail: - - + + Name: Nomi: - + Original author Asl muallif - + France Fransiya - + Special Thanks Alohida minnatdorchilik - + Translators Tarjimonlar - + License Litsenziya - + Software Used Foydalanilgan dasturiy ta'minot - + qBittorrent was built with the following libraries: qBittorrent quyidagi kutubxonalar bilan ishlab chiqilgan: - + Copy to clipboard Buferga nusxalash @@ -91,8 +91,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Mualliflik huquqi %1 2006-2024 qBittorrent loyihasi + Copyright %1 2006-2025 The qBittorrent project + Mualliflik huquqi %1 2006-2025 qBittorrent loyihasi @@ -164,15 +164,10 @@ Saqlash joyi - + Never show again Boshqa ko‘rsatilmasin - - - Torrent settings - Torrent sozlamalari - Set as default category @@ -189,12 +184,12 @@ Torrentni boshlash - + Torrent information Torrent axboroti - + Skip hash check Shifr tekshirilmasin @@ -203,6 +198,11 @@ Use another path for incomplete torrent + + + Torrent options + + Tags: @@ -229,70 +229,75 @@ - - + + None - - + + Metadata received - - + + Torrents that have metadata initially will be added as stopped. + + + + + Files checked - + Add to top of queue - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog - + Content layout: Kontent maketi: - + Original Asli - + Create subfolder Quyi jild yaratish - + Don't create subfolder Quyi jild yaratilmasin - + Info hash v1: - + Size: Hajmi: - + Comment: Sharh: - + Date: Sana: @@ -309,7 +314,7 @@ Manual - Mustaqil + Qo'llanma @@ -322,152 +327,147 @@ - + Do not delete .torrent file - + Download in sequential order - + Download first and last pieces first - + Info hash v2: - + Select All - + Select None - + Save as .torrent file... - + I/O Error I/O xatosi - + Not Available This comment is unavailable Mavjud emas - + Not Available This date is unavailable Mavjud emas - + Not available Mavjud emas - + Magnet link Magnet havola - + Retrieving metadata... Tavsif ma’lumotlari olinmoqda... - - + + Choose save path Saqlash yo‘lagini tanlang - + No stop condition is set. - + Torrent will stop after metadata is received. - - Torrents that have metadata initially aren't affected. - - - - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - - + + N/A Noaniq - + %1 (Free space on disk: %2) %1 (Diskdagi boʻsh joy: %2) - + Not available This size is unavailable. Mavjud emas - + Torrent file (*%1) - + Save as torrent file Torrent fayl sifatida saqlash - + Couldn't export torrent metadata file '%1'. Reason: %2. - + Cannot create v2 torrent until its data is fully downloaded. - + Filter files... - + Parsing metadata... Tavsif ma’lumotlari ochilmoqda... - + Metadata retrieval complete Tavsif ma’lumotlari olindi @@ -475,35 +475,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -587,6 +587,11 @@ Skip hash check Shifr tekshirilmasin + + + Torrent share limits + + @@ -661,753 +666,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Torrentlar tugallanganidan so‘ng yana bir bor tekshirilsin - - + + ms milliseconds ms - + Setting Sozlama - + Value Value set for this setting Qiymat - + (disabled) (faolsizlantirilgan) - + (auto) (avtomatik) - + + min minutes daq - + All addresses Barcha manzillar - + qBittorrent Section - - + + Open documentation Qoʻllanmani ochish - + All IPv4 addresses Barcha IPv4 manzillar - + All IPv6 addresses Barcha IPv6 manzillar - + libtorrent Section - + Fastresume files - + SQLite database (experimental) - + Resume data storage type (requires restart) - + Normal Normal - + Below normal - + Medium - + Low - + Very low - + Physical memory (RAM) usage limit - + Asynchronous I/O threads - + Hashing threads - + File pool size - + Outstanding memory when checking torrents - + Disk cache - - - - + + + + + s seconds s - + Disk cache expiry interval Disk keshining saqlanish muddati - + Disk queue size - - + + Enable OS cache OT keshi ishga tushirilsin - + Coalesce reads & writes - + Use piece extent affinity - + Send upload piece suggestions - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default - + Memory mapped files - + POSIX-compliant - + + Simple pread/pwrite + + + + Disk IO type (requires restart) - - + + Disable OS cache - + Disk IO read mode - + Write-through - + Disk IO write mode - + Send buffer watermark - + Send buffer low watermark - + Send buffer watermark factor - + Outgoing connections per second - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers - + Prefer TCP - + Peer proportional (throttles TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) - + Allow multiple connections from the same IP address - + Validate HTTPS tracker certificates - + Server-side request forgery (SSRF) mitigation - + Disallow connection to peers on privileged ports - - It controls the internal state update interval which in turn will affect UI updates + + It appends the text to the window title to help distinguish qBittorent instances - - Refresh interval - - - - - Resolve peer host names - Pir xost nomlarini tahlillash - - - - IP address reported to trackers (requires restart) - - - - - Reannounce to all trackers when IP or port changed - - - - - Enable icons in menus - - - - - Enable port forwarding for embedded tracker - - - - - Enable quarantine for downloaded files - - - - - Enable Mark-of-the-Web (MOTW) for downloaded files - - - - - (Auto detect if empty) - - - - - Python executable path (may require restart) - - - - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - - - - - Peer turnover threshold percentage - - - - - Peer turnover disconnect interval - - - - - Resets to default if empty - - - - - DHT bootstrap nodes - - - - - I2P inbound quantity - - - - - I2P outbound quantity - - - - - I2P inbound length - - - - - I2P outbound length + + Customize application instance name - Display notifications + It controls the internal state update interval which in turn will affect UI updates - - Display notifications for added torrents + + Refresh interval - - Download tracker's favicon + + Resolve peer host names + Pir xost nomlarini tahlillash + + + + IP address reported to trackers (requires restart) - - Save path history length + + Port reported to trackers (requires restart) [0: listening port] - - Enable speed graphs + + Reannounce to all trackers when IP or port changed - - Fixed slots - - - - - Upload rate based - - - - - Upload slots behavior - - - - - Round-robin - - - - - Fastest upload - - - - - Anti-leech - - - - - Upload choking algorithm - - - - - Confirm torrent recheck - Torrent qayta tekshirilishi tasdiqlansin - - - - Confirm removal of all tags - - - - - Always announce to all trackers in a tier + + Enable icons in menus + Attach "Add new torrent" dialog to main window + + + + + Enable port forwarding for embedded tracker + + + + + Enable quarantine for downloaded files + + + + + Enable Mark-of-the-Web (MOTW) for downloaded files + + + + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + + (Auto detect if empty) + + + + + Python executable path (may require restart) + + + + + Start BitTorrent session in paused state + + + + + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + + + + + Peer turnover threshold percentage + + + + + Peer turnover disconnect interval + + + + + Resets to default if empty + + + + + DHT bootstrap nodes + + + + + I2P inbound quantity + + + + + I2P outbound quantity + + + + + I2P inbound length + + + + + I2P outbound length + + + + + Display notifications + + + + + Display notifications for added torrents + + + + + Download tracker's favicon + + + + + Save path history length + + + + + Enable speed graphs + + + + + Fixed slots + + + + + Upload rate based + + + + + Upload slots behavior + + + + + Round-robin + + + + + Fastest upload + + + + + Anti-leech + + + + + Upload choking algorithm + + + + + Confirm torrent recheck + Torrent qayta tekshirilishi tasdiqlansin + + + + Confirm removal of all tags + + + + + Always announce to all trackers in a tier + + + + Always announce to all tiers - + Any interface i.e. Any network interface Har qanday interfeys - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm - + Resolve peer countries - + Network interface - + Optional IP address to bind to - + Max concurrent HTTP announces - + Enable embedded tracker Ichki o‘rnatilgan treker ishga tushirilsin - + Embedded tracker port Ichki o‘rnatilgan treker porti + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. - + Using config directory: %1 - + Torrent name: %1 - + Torrent size: %1 - + Save path: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + + Thank you for using qBittorrent. - + Torrent: %1, sending mail notification - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading - + WebUI will be started shortly after internal preparations. Please wait... - - + + Loading torrents... - + E&xit &Chiqish - + I/O Error i.e: Input/Output Error I/O xatosi - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1416,100 +1531,110 @@ Sababi: %2 - + Torrent added - + '%1' was added. e.g: xxx.avi was added. - + Download completed - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. “%1” yuklab olishni tamomladi. - + Information Ma’lumot - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 - + Exit - + Recursive download confirmation Navbatma-navbat yuklab olishni tasdiqlash - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? - + Never Hech qachon - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated - + qBittorrent is shutting down... - + Saving torrent progress... Torrent rivoji saqlanmoqda... - + qBittorrent is now ready to exit @@ -1517,7 +1642,7 @@ AsyncFileStorage - + Could not create directory '%1'. @@ -1588,12 +1713,12 @@ - + Must Not Contain: Tarkibida bu bo‘lmasligi shart: - + Episode Filter: Qism filtri: @@ -1645,263 +1770,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Eksport qilish... - + Matches articles based on episode filter. Qism filtriga asoslangan maqolalar mosligini aniqlaydi. - + Example: Misol: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match birinchi faslning 2, 5, 8-15, 30 va undan keyingi qismlariga mos keladi - + Episode filter rules: Qism filtri qoidalari: - + Season number is a mandatory non-zero value Fasl raqamiga nol bo‘lmagan qiymat kiritish shart - + Filter must end with semicolon Filtr oxirida nuqta-vergul qo‘yilishi shart - + Three range types for episodes are supported: Qismlar uchun uch xildagi miqyos qo‘llanadi: - + Single number: <b>1x25;</b> matches episode 25 of season one Bitta son: <b>1x25;</b> birinchi faslning 25-qismiga mos keladi - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normal miqyos <b>1x25-40;</b> birinchi faslning 25-40 qismlariga mos keladi - + Episode number is a mandatory positive value - + Rules - + Rules (legacy) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons - + Last Match: %1 days ago Oxirgi marta %1 kun oldin mos kelgan - + Last Match: Unknown Oxirgi mos kelish sanasi noma’lum - + New rule name Yangi qoida nomi - + Please type the name of the new download rule. Yangi yuklab olish qoidasi uchun nom kiriting - - + + Rule name conflict Qoida nomida ziddiyat - - + + A rule with this name already exists, please choose another name. Bu nomdagi qoida oldindan mavjud, boshqa kiriting. - + Are you sure you want to remove the download rule named '%1'? Haqiqatan ham “%1” nomli yuklab olish qoidasini o‘chirib tashlamoqchimisiz? - + Are you sure you want to remove the selected download rules? Haqiqatan ham tanlangan yuklab olish qoidalarini o‘chirib tashlamoqchimisiz? - + Rule deletion confirmation Qoidani o‘chirib tashlashni tasdiqlash - + Invalid action Amal noto‘g‘ri - + The list is empty, there is nothing to export. Ro‘yxat bo‘m-bo‘sh, eksport qilinadigan narsa yo‘q. - + Export RSS rules - + I/O Error I/O xatosi - + Failed to create the destination file. Reason: %1 - + Import RSS rules - + Failed to import the selected rules file. Reason: %1 - + Add new rule... Yangi qoida qo‘shish... - + Delete rule Qoidani o‘chirib tashlash - + Rename rule... Qoida nomini o‘zgartirish... - + Delete selected rules Tanlangan qoidalarni o‘chirib tashlash - + Clear downloaded episodes... - + Rule renaming Qoida ismini o‘zgartirish - + Please type the new rule name Yangi qoida nomini kiriting - + Clear downloaded episodes - + Are you sure you want to clear the list of downloaded episodes for the selected rule? - + Regex mode: use Perl-compatible regular expressions - - + + Position %1: %2 - + Wildcard mode: you can use - - + + Import error - + Failed to read the file. %1 - + ? to match any single character - + * to match zero or more of any characters - + Whitespaces count as AND operators (all words, any order) - + | is used as OR operator - + If word order is important use * instead of whitespace. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) - + will match all articles. - + will exclude all articles. @@ -1943,58 +2068,69 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" - + Cannot parse resume data: invalid format - - + + Cannot parse torrent info: %1 - + Cannot parse torrent info: invalid format - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. - + Couldn't save torrent resume data to '%1'. Error: %2. - + Couldn't load torrents queue: %1 - + + Cannot parse resume data: %1 - + Resume data is invalid: neither metadata nor info-hash was found - + Couldn't save data to '%1'. Error: %2 @@ -2002,38 +2138,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. - + Couldn't load resume data of torrent '%1'. Error: %2 - - + + Database is corrupted. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + + + + + + Cannot parse torrent info: %1 + + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2041,22 +2199,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 - + Couldn't store torrents queue positions. Error: %1 @@ -2064,466 +2222,525 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 - + Restart is required to toggle Peer Exchange (PeX) support - + Failed to resume torrent. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" - + HTTP User-Agent: "%1" - + Peer Exchange (PeX) support: %1 - - + + Anonymous mode: %1 - - + + Encryption support: %1 - - + + FORCED - + Could not find GUID of network interface. Interface: "%1" - + Trying to listen on the following list of IP addresses: "%1" - + Torrent reached the share ratio limit. - - - + Torrent: "%1". - - - - Removed torrent. - - - - - - - Removed torrent and deleted its content. - - - - - - - Torrent paused. - - - - - - + Super seeding enabled. - + Torrent reached the seeding time limit. - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 - + The configured network address is invalid. Address: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" - + The configured network interface is invalid. Interface: "%1" - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". - + Torrent resumed. Torrent: "%1" - + Torrent download finished. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 - + Failed to parse the IP filter file - + Restored torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" - - - Removed torrent. Torrent: "%1" + + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - - Removed torrent and deleted its content. Torrent: "%1" - - - - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" - + IP filter this peer was blocked. Reason: IP filter. - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. - + %1 is disabled this peer was blocked. Reason: TCP is disabled. - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" - + Detected external IP. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" + + BitTorrent::TorrentCreationTask + + + Failed to start seeding. + + + BitTorrent::TorrentCreator - + Operation aborted - - + + Create new torrent file failed. Reason: %1. @@ -2531,67 +2748,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 - + Peer "%1" is added to torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. - + Download first and last piece first: %1, torrent: '%2' - + On - + Off - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" - + Missing metadata - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" - + Performance alert: %1. More info: %2 @@ -2612,189 +2829,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' - + Expected integer number in environment variable '%1', but got '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - - - - + Expected %1 in environment variable '%2', but got '%3' - - + + %1 must specify a valid port (1 to 65535). - + Usage: - + [options] [(<filename> | <url>)...] - + Options: - + Display program version and exit - + Display this help message and exit - - Confirm the legal notice - - - - - - port + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Confirm the legal notice + + + + + + port + + + + Change the WebUI port - + Change the torrenting port - + Disable splash screen - + Run in daemon-mode (background) - + dir Use appropriate short form or abbreviation of "directory" - + Store configuration files in <dir> - - + + name - + Store configuration files in directories qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory - + files or URLs - + Download the torrents passed by the user - + Options when adding new torrents: - + path - + Torrent save path - - Add torrents as started or paused + + Add torrents as running or stopped - + Skip hash check Shifr tekshirilmasin - + Assign torrents to category. If the category doesn't exist, it will be created. - + Download files in sequential order - + Download first and last pieces first - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: - + Command line parameters take precedence over environment variables - + Help Yordam @@ -2846,13 +3063,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Torrentlarni davomlash + Start torrents + - Pause torrents - Torrentlarni pauza qilish + Stop torrents + @@ -2863,15 +3080,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset + + + System + + CookiesDialog @@ -2912,12 +3134,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2925,7 +3147,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2944,23 +3166,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files + Also remove the content files - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? - + Remove @@ -2973,12 +3195,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - + Add torrent links - + One link per line (HTTP links, Magnet links and info-hashes are supported) @@ -2988,12 +3210,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Yuklab olish - + No URL entered - + Please type at least one URL. @@ -3152,25 +3374,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Tahlil xatosi: bu filtr fayli yaroqli PeerGuardian P2B fayli emas. + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? @@ -3178,38 +3423,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Database fayl hajmi qo‘llab-quvvatlanmaydi. - + Metadata error: '%1' entry not found. Tavsif ma’lumotlari xatosi: “%1” kiritmasi topilmadi. - + Metadata error: '%1' entry has invalid type. Tavsif ma’lumotlari xatosi: “%1” kiritmasi yaroqsiz turda. - + Unsupported database version: %1.%2 Database versiyasi qo‘llab-quvvatlanmaydi: %1.%2 - + Unsupported IP version: %1 IP versiyasi qo‘llab-quvvatlanmaydi: %1 - + Unsupported record size: %1 Yozuv hajmi qo‘llab-quvvatlanmaydi: %1 - + Database corrupted: no data section found. Database buzilgan: ma’lumotlar bo‘limi topilmadi. @@ -3217,17 +3462,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 @@ -3268,26 +3513,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Belgila... - + Reset - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3319,13 +3598,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. - + %1 was banned 0.0.0.0 was banned @@ -3334,60 +3613,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - - + + %1 must be the single command line parameter. - + Run application with -h option to read about command line parameters. - + Bad command line - + Bad command line: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3400,602 +3679,678 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Tahrirlash - + &Tools &Asboblar - + &File &Fayl - + &Help &Yordam - + On Downloads &Done Yuklanishlar &tugallanganida - + &View &Ko‘rish - + &Options... &Opsiyalar... - - &Resume - &Davomlash - - - + &Remove - + Torrent &Creator &Torrent yaratuvchi - - + + Alternative Speed Limits Muqobil tezlik cheklovlari - + &Top Toolbar &Yuqoridagi uskunalar majmuasi - + Display Top Toolbar Yuqoridagi uskunalar majmuasini ko‘rsatish - + Status &Bar - + Filters Sidebar - + S&peed in Title Bar &Tezlik sarlavha qatorida - + Show Transfer Speed in Title Bar Oldi-berdi tezligini sarlavha qatorida ko‘rsatish - + &RSS Reader &RSS o‘quvchi - + Search &Engine &Qidiruv vositasi - + L&ock qBittorrent qBittorrent’ni q&ulflash - + Do&nate! &Xayriya! - + + Sh&utdown System + + + + &Do nothing - + Close Window - - R&esume All - &Hammasini davomlash - - - + Manage Cookies... - + Manage stored network cookies - + Normal Messages - + Information Messages - + Warning Messages - + Critical Messages - + &Log &Log yuritish - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... - + Bottom of Queue - + Move to the bottom of the queue - + Top of Queue - + Move to the top of the queue - + Move Down Queue - + Move down in the queue - + Move Up Queue - + Move up in the queue - + &Exit qBittorrent qBittorrent’dan &chiqish - + &Suspend System &Tizimni uxlatish - + &Hibernate System Tizimni &kutish holatiga o‘tkazish - - S&hutdown System - Tizimni &o‘chirish - - - + &Statistics &Statistika - + Check for Updates Yangilanishlarni tekshirish - + Check for Program Updates Dastur yangilanishlarini tekshirish - + &About &Dastur haqida - - &Pause - &Pauza qilish - - - - P&ause All - &Hammasini pauza qilish - - - + &Add Torrent File... &Torrent fayli qo‘shish... - + Open Ochish - + E&xit &Chiqish - + Open URL URL manzilini ochish - + &Documentation &Hujjatlar - + Lock Qulflash - - - + + + Show Ko‘rsatish - + Check for program updates Dastur yangilanishlarini tekshirish - + Add Torrent &Link... Torrent &havolasi qo‘shish... - + If you like qBittorrent, please donate! Sizga qBittorrent dasturi yoqqan bo‘lsa, marhamat qilib xayriya qiling! - - + + Execution Log Faoliyat logi - + Clear the password Parolni tozalash - + &Set Password &Parol qo‘yish - + Preferences - + &Clear Password Parolni &tozalash - + Transfers Oldi-berdilar - - + + qBittorrent is minimized to tray - - - + + + This behavior can be changed in the settings. You won't be reminded again. - + Icons Only Faqat ikonlar - + Text Only Faqat matn - + Text Alongside Icons Ikonlar yonida matn - + Text Under Icons Ikonlar tagida matn - + Follow System Style Tizim stiliga muvofiq - - + + UI lock password FI qulflash paroli - - + + Please type the UI lock password: UI qulflash parolini kiriting: - + Are you sure you want to clear the password? Haqiqatan ham parolni olib tashlamoqchimisiz? - + Use regular expressions - + + + Search Engine + + + + + Search has failed + + + + + Search has finished + + + + Search Qidiruv - + Transfers (%1) Oldi-berdi (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. - + qBittorrent is closed to tray - + Some files are currently transferring. - + Are you sure you want to quit qBittorrent? - + &No &Yo‘q - + &Yes &Ha - + &Always Yes &Doim ha - + Options saved. - - + + [PAUSED] %1 + %1 is the rest of the window title + + + + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime - + qBittorrent Update Available qBittorrent uchun yangilanish mavjud - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Qidiruv vositasini ishlatish uchun Python kerak, ammo o‘rnatilmagan shekilli. Uni o‘rnatishni istaysizmi? - + Python is required to use the search engine but it does not seem to be installed. Qidiruv vositasini ishlatish uchun Python kerak, ammo o‘rnatilmagan shekilli. - - + + Old Python Runtime - + A new version is available. - + Do you want to download %1? - + Open changelog... - + No updates available. You are already using the latest version. Hech qanday yangilanish mavjud emas. Siz eng yangi versiyasidan foydalanmoqdasiz. - + &Check for Updates &Yangilanishlarni tekshirish - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. - + + Paused + Pauzada + + + Checking for Updates... Yangilanishlar tekshirilmoqda... - + Already checking for program updates in the background Dastur yangilanishlar fonda tekshirilmoqda - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error Yuklab olish xatoligi - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python o‘rnatish faylini olib bo‘lmadi, sababi: %1. -Uni o‘zingiz o‘rnating. - - - - + + Invalid password Parol noto‘g‘ri - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long - - - + + + RSS (%1) RSS (%1) - + The password is invalid Parol yaroqsiz - + DL speed: %1 e.g: Download speed: 10 KiB/s YO tezligi: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s Y tezligi: %1 - - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [O: %1, Y: %2] qBittorrent %3 - - - + Hide Yashirish - + Exiting qBittorrent qBittorrent dasturidan chiqilmoqda - + Open Torrent Files Torrent fayllarini ochish - + Torrent Files Torrent fayllari @@ -4056,133 +4411,133 @@ Uni o‘zingiz o‘rnating. Net::DownloadHandlerImpl - - + + I/O Error: %1 - + The file size (%1) exceeds the download limit (%2) - + Exceeded max redirections (%1) - + Redirected to magnet URI - + 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 @@ -4190,7 +4545,12 @@ Uni o‘zingiz o‘rnating. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" @@ -5484,47 +5844,47 @@ Uni o‘zingiz o‘rnating. Net::Smtp - + Connection failed, unrecognized reply: %1 - + Authentication failed, msg: %1 - + <mail from> was rejected by server, msg: %1 - + <Rcpt to> was rejected by server, msg: %1 - + <data> was rejected by server, msg: %1 - + Message was rejected by the server, error: %1 - + Both EHLO and HELO failed, msg: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 - + Email Notification Error: %1 @@ -5562,481 +5922,510 @@ Uni o‘zingiz o‘rnating. - + RSS - - Web UI - - - - + Advanced - + Customize UI Theme... - + Transfer List - + Confirm when deleting torrents - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. - + Hide zero and infinity values - + Always Har doim - - Paused torrents only - - - - + Action on double-click - + Downloading torrents: - - - Start / Stop Torrent - - - - - + + Open destination folder - - + + No action - + Completed torrents: - + Auto hide zero status filters - + Desktop - + Start qBittorrent on Windows start up - + Show splash screen on start up - + Confirmation on exit when torrents are active - + Confirmation on auto-exit when downloads finish - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: - + Original Asli - + Create subfolder Quyi jild yaratish - + Don't create subfolder Quyi jild yaratilmasin - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... - + Options.. - + Remove - + Email notification &upon download completion - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: - + Any - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering - + Schedule &the use of alternative rate limits - + From: From start time - + To: To end time - + Find peers on the DHT network - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption - + Allow encryption - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active checking torrents: - + &Torrent Queueing - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - - - - + RSS Reader - + Enable fetching RSS feeds - + Feeds refresh interval: - + + Same host request delay: + + + + Maximum number of articles per feed: - - - + + + min minutes daq - + Seeding Limits - - Pause torrent - - - - + Remove torrent - + Remove torrent and its files - + Enable super seeding for torrent - + When ratio reaches - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader - + Enable auto downloading of RSS torrents - + Edit auto downloading rules... - + RSS Smart Episode Filter - + Download REPACK/PROPER episodes - + Filters: - + Web User Interface (Remote control) - + IP address: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. - + Ban client after consecutive failures: - + Never Hech qachon - + ban for: - + Session timeout: - + Disabled - - Enable cookie Secure flag (requires HTTPS) - - - - + Server domains: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6045,441 +6434,482 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP - + Bypass authentication for clients on localhost - + Bypass authentication for clients in whitelisted IP subnets - + IP subnet whitelist... - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. - + Upda&te my dynamic domain name - + Minimize qBittorrent to notification area - + + Search + Qidiruv + + + + WebUI + + + + Interface - + Language: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: - - + + Normal Normal - + File association - + Use qBittorrent for .torrent files - + Use qBittorrent for magnet links - + Check for program updates Dastur yangilanishlarini tekshirish - + Power Management - + + &Log Files + + + + Save path: - + Backup the log file after: - + Delete backup logs older than: - + + Show external IP in status bar + + + + When adding a torrent - + Bring torrent dialog to the front - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled - + Also when addition is cancelled - + Warning! Data loss possible! - + Saving Management - + Default Torrent Management Mode: - + Manual Mustaqil - + Automatic Avtomatik - + When Torrent Category changed: - + Relocate torrent - + Switch torrent to Manual Mode - - + + Relocate affected torrents - - + + Switch affected torrents to Manual Mode - + Use Subcategories - + Default Save Path: - + Copy .torrent files to: - + Show &qBittorrent in notification area - - &Log file - - - - + Display &torrent content and some options - + De&lete .torrent files afterwards - + Copy .torrent files for finished downloads to: - + Pre-allocate disk space for all files - + Use custom UI Theme - + UI Theme file: - + Changing Interface settings requires application restart - + Shows a confirmation dialog upon torrent deletion - - + + Preview file, otherwise open destination folder - - - Show torrent options - - - - + Shows a confirmation dialog when exiting with active torrents - + When minimizing, the main window is closed and must be reopened from the systray icon - + The systray icon will still be visible when closing the main window - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window - + Monochrome (for dark theme) - + Monochrome (for light theme) - + Inhibit system sleep when torrents are downloading - + Inhibit system sleep when torrents are seeding - + Creates an additional log file after the log file reaches the specified file size - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings - - The torrent will be added to download list in a paused state - - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state - + Whether the .torrent file should be deleted after adding it - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. - + Append .!qB extension to incomplete files - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it - + Enable recursive download dialog - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually - + When Default Save/Incomplete Path changed: - + When Category Save Path changed: - + Use Category paths in Manual Mode - + Resolve relative Save Path against appropriate Category path instead of Default one - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: - - + + None - - + + Metadata received - - + + Files checked - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: - + Automatically add torrents from: - + Excluded file names - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6496,765 +6926,811 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Receiver - + To: To receiver - + SMTP server: - + Sender - + From: From sender - + This server requires a secure connection (SSL) - - + + Authentication - - - - + + + + Username: - - - - + + + + Password: - + Run external program - - Run on torrent added - - - - - Run on torrent finished - - - - + Show console window - + TCP and μTP - + Listening Port - + Port used for incoming connections: - + Set to 0 to let your system pick an unused port - + Random - + Use UPnP / NAT-PMP port forwarding from my router - + Connections Limits - + Maximum number of connections per torrent: - + Global maximum number of connections: - + Maximum number of upload slots per torrent: - + Global maximum number of upload slots: - + Proxy Server - + Type: - + SOCKS4 - + SOCKS5 - + HTTP - - + + Host: - - - + + + Port: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + A&uthentication - - Info: The password is saved unencrypted - - - - + Filter path (.dat, .p2p, .p2b): - + Reload the filter - + Manually banned IP addresses... - + Apply to trackers - + Global Rate Limits - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s - - + + Upload: - - + + Download: - + Alternative Rate Limits - + Start time - + End time - + When: - + Every day Har kuni - + Weekdays - + Weekends - + Rate Limits Settings - + Apply rate limit to peers on LAN - + Apply rate limit to transport overhead - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Require encryption - + Disable encryption - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: - + Do not count slow torrents in these limits - + Upload rate threshold: - + Download rate threshold: - - - + + + + sec seconds - + Torrent inactivity timer: - + then - + Use UPnP / NAT-PMP to forward the port from my router - + Certificate: - + Key: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Change current password - - Use alternative Web UI - - - - + Files location: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security - + Enable clickjacking protection - + Enable Cross-Site Request Forgery (CSRF) protection - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation - + Add custom HTTP headers - + Header: value pairs, one per line - + Enable reverse proxy support - + Trusted proxies list: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: - + Register - + Domain name: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog - + Select qBittorrent UI Theme file - + Choose Alternative UI files location - + Supported parameters (case sensitive): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence - + No stop condition is set. - + Torrent will stop after metadata is received. - - Torrents that have metadata initially aren't affected. - - - - + Torrent will stop after files are initially checked. - + This will also download metadata if it wasn't there initially. - + %N: Torrent name - + %L: Category - + %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds - + Certificate - + Select certificate - + Private key - + Select private key - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor - + Adding entry failed - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error - - + + Choose export directory - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well - + qBittorrent UI Theme file (*.qbtheme config.json) - + %G: Tags (separated by comma) - + %I: Info hash v1 (or '-' if unavailable) - + %J: Info hash v2 (or '-' if unavailable) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) - - - + + + Choose a save directory - + + Torrents that have metadata initially will be added as stopped. + + + + Choose an IP filter file - + All supported filters - + The alternative WebUI files location cannot be blank. - + 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 Berilgan IP filtri tahlil qilindi: %1 ta qoida qo‘llandi. - + Preferences - + Time Error - + The start time and the end time can't be the same. - - + + Length Error @@ -7262,241 +7738,246 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PeerInfo - + Unknown - + Interested (local) and choked (peer) - + Interested (local) and unchoked (peer) - + Interested (peer) and choked (local) - + Interested (peer) and unchoked (local) - + Not interested (local) and unchoked (peer) - + Not interested (peer) and unchoked (local) - + Optimistic unchoke - + Peer snubbed - + Incoming connection - + Peer from DHT - + Peer from PEX - + Peer from LSD - + Encrypted traffic - + Encrypted handshake + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region - + IP/Address - + Port - + Flags - + Connection - + Client i.e.: Client application - + Peer ID Client i.e.: Client resolved from Peer ID - + Progress i.e: % downloaded - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Downloaded i.e: total data downloaded Yuklab olingan - + 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. - + Files i.e. files that are being downloaded right now - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add peers... - - + + Adding peers - + Some peers cannot be added. Check the Log for details. - + Peers are added to this torrent. - - + + Ban peer permanently - + Cannot add peers to a private torrent - + Cannot add peers when the torrent is checking - + Cannot add peers when the torrent is queued - + No peer was selected - + Are you sure you want to permanently ban the selected peers? - + Peer "%1" is manually banned - + N/A Noaniq - + Copy IP:port @@ -7514,7 +7995,7 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Format: IPv4:port / [IPv6]:port @@ -7555,27 +8036,27 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not PiecesBar - + Files in this piece: - + File in this piece: - + File in these pieces: - + Wait until metadata become available to see detailed information - + Hold Shift key for detailed information @@ -7588,58 +8069,58 @@ readme[0-9].txt: filter 'readme1.txt', 'readme2.txt' but not - + Installed search plugins: - + Name - + Version - + Url - - + + Enabled - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one - + Check for updates - + Close - + Uninstall @@ -7758,98 +8239,65 @@ Those plugins were disabled. - + Search plugin source: - + Local file - + Web link - - PowerManagement - - - qBittorrent is active - - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: - + Preview - + Name - + Size - + Progress - + Preview impossible - + Sorry, we can't preview this file: "%1". - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -7862,27 +8310,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist - + Path does not point to a directory - + Path does not point to a file - + Don't have read permission to path - + Don't have write permission to path @@ -7923,12 +8371,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: - + Availability: @@ -7943,53 +8391,53 @@ Those plugins were disabled. - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + ETA: - + Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: @@ -7999,193 +8447,220 @@ Those plugins were disabled. - + Information Ma’lumot - + Info Hash v1: - + Info Hash v2: - + Comment: Sharh: - + Select All - + Select None - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + + Private: + + + + Save Path: - + Never Hech qachon - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - - + + %1 (%2 this session) - - + + + N/A Noaniq - + + Yes + Ha + + + + No + Yo‘q + + + %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.) - - New Web seed + + Add web seed + Add HTTP source - - Remove Web seed + + Add web seed: - - Copy Web seed URL + + + This web seed is already in the list. - - Edit Web seed URL - - - - + Filter files... - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled - + You can enable it in Advanced Options - - New URL seed - New HTTP source - - - - - New URL seed: - - - - - - This URL seed is already in the list. - - - - + Web seed editing - + Web seed URL: @@ -8193,33 +8668,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 - + Invalid data format - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 @@ -8227,22 +8702,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' updated. Added %2 new articles. - + Failed to parse RSS feed at '%1'. Reason: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. @@ -8278,12 +8753,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. - + %1 (line: %2, column: %3, offset: %4). @@ -8291,103 +8766,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" - - + + RSS feed with given URL already exists: %1. - + Feed doesn't exist: %1. - + Cannot move root folder. - - + + Item doesn't exist: %1. - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. - + Couldn't load RSS item. Item: "%1". Invalid data format. - + Corrupted RSS list, not loading it. - + Incorrect RSS Item path: %1. - + RSS item with given path already exists: %1. - + Parent folder doesn't exist: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + + + + + Refresh interval: + + + + + sec + + + + + Default + + + RSSWidget @@ -8407,8 +8923,8 @@ Those plugins were disabled. - - + + Mark items read @@ -8433,132 +8949,115 @@ Those plugins were disabled. - - + + Delete O‘chirib tashlash - + Rename... Nomini o‘zgartirish... - + Rename - - + + Update - + New subscription... - - + + Update all feeds - + Download torrent - + Open news URL - + Copy feed URL - + New folder... - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name - + Folder name: - + New folder - - - Please type a RSS feed URL - - - - - - Feed URL: - - - - + 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: - + Rename failed - + Date: - + Feed: - + Author: @@ -8566,38 +9065,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. - + Unable to create more than %1 concurrent searches. - - + + Offset is out of range - + All plugins are already up to date. - + Updating %1 plugins - + Updating plugin %1 - + Failed to check for plugin updates: %1 @@ -8672,132 +9171,142 @@ Those plugins were disabled. Hajmi: - + 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 - - - - + Filter search results... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results - + Torrent names only - + Everywhere - + Use regular expressions - + Open download window - + Download Yuklab olish - + Open description page - + Copy Nusxalash - + Name - + Download link - + Description page URL - + Searching... - + Search has finished - + Search aborted - + An error occurred during search... - + Search returned no results - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents @@ -8805,104 +9314,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. - + Plugin already at version %1, which is greater than %2 - + A more recent version of this plugin is already installed. - + Plugin %1 is not supported. - - + + Plugin is not supported. - + Plugin %1 has been successfully updated. - + All categories - + Movies - + TV shows - + Music - + Games - + Anime - + Software - + Pictures - + Books - + Update server is temporarily unavailable. %1 - - + + Failed to download the plugin file. %1 - + Plugin "%1" is outdated, updating to version %2 - + Incorrect update info received for %1 out of %2 plugins. - + Search plugin '%1' contains invalid version string ('%2') @@ -8912,112 +9421,143 @@ Those plugins were disabled. - - - - Search Qidiruv - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. - + Search plugins... - + A phrase to search for. - + Spaces in a search term may be protected by double quotes. - + Example: Search phrase example - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted - + All plugins - + Only enabled - + + + Invalid data format. + + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted - + + Refresh + + + + Close tab - + Close all tabs - + Select... - - - + + Search Engine - + + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - + + Stop + + + SearchWidget::DataStorage - - Search has finished + + Failed to load Search UI saved state data. File: "%1". Error: "%2" - - Search has failed + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" @@ -9131,34 +9671,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: - - - + + + - - - + + + KiB/s - - + + Download: - + Alternative speed limits @@ -9350,32 +9890,32 @@ Click the "Search plugins..." button at the bottom right of the window - + Connected peers: - + All-time share ratio: - + All-time download: - + Session waste: - + All-time upload: - + Total buffer size: @@ -9390,12 +9930,12 @@ Click the "Search plugins..." button at the bottom right of the window - + Write cache overload: - + Read cache overload: @@ -9414,51 +9954,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: - - + + No direct connections. This may indicate network configuration problems. - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes - + qBittorrent needs to be restarted! - - - + + + Connection Status: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - + Online - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits - + Click to switch to regular speed limits @@ -9488,12 +10054,12 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) + Running (0) - Paused (0) + Stopped (0) @@ -9556,9 +10122,24 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) + + + Running (%1) + + - Paused (%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents @@ -9566,26 +10147,11 @@ Click the "Search plugins..." button at the bottom right of the window Moving (%1) - - - Resume torrents - Torrentlarni davomlash - - - - Pause torrents - Torrentlarni pauza qilish - Remove torrents - - - Resumed (%1) - - Active (%1) @@ -9657,24 +10223,19 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags - - - Resume torrents - Torrentlarni davomlash - - - - Pause torrents - Torrentlarni pauza qilish - Remove torrents - - New Tag + + Start torrents + + + + + Stop torrents @@ -9682,6 +10243,11 @@ Click the "Search plugins..." button at the bottom right of the window Tag: + + + Add tag + + Invalid tag name @@ -9825,32 +10391,32 @@ Please choose a different name and try again. TorrentContentModel - + Name - + Progress - + Download Priority - + Remaining - + Availability - + Total Size @@ -9895,102 +10461,120 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error - + Renaming - + New name: Yangi nomi: - + Column visibility - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Open Ochish - + Open containing folder - + Rename... Nomini o‘zgartirish... - + Priority Dolzarblik - - + + Do not download Yuklab olinmasin - + Normal Normal - + High Yuqori - + Maximum Maksimal - + By shown file order - + Normal priority - + High priority - + Maximum priority - + Priority by shown file order + + TorrentCreatorController + + + Too many active tasks + + + + + Torrent creation is still unfinished. + + + + + Torrent creation failed. + + + TorrentCreatorDialog @@ -10015,13 +10599,13 @@ Please choose a different name and try again. - + Select file - + Select folder @@ -10046,7 +10630,7 @@ Please choose a different name and try again. - + Auto @@ -10096,88 +10680,83 @@ Please choose a different name and try again. - + You can separate tracker tiers / groups with an empty line. - + Web seed URLs: - + Tracker URLs: - + Comments: - + Source: - + Progress: - + Create Torrent - - + + Torrent creation failed - + Reason: Path to file/folder is not readable. - + Select where to save the new torrent - + Torrent Files (*.torrent) - - Reason: %1 - - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator - + Torrent created: @@ -10185,32 +10764,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 - + Watched folder Path cannot be empty. - + Watched folder Path cannot be relative. @@ -10218,44 +10797,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 - + Rejecting failed torrent file: %1 - + Watching folder: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - Tavsif ma’lumotlari yaroqsiz - - TorrentOptionsDialog @@ -10284,126 +10850,162 @@ Please choose a different name and try again. - + Category: Toifa: - - Torrent speed limits + + Torrent Share Limits - + Download: - - + + - - + + Torrent Speed Limits + + + + + KiB/s - + These will not exceed the global limits - + Upload: - - Torrent share limits - - - - - Use global share limit - - - - - Set no share limit - - - - - Set share limit to - - - - - ratio - - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent - + Download in sequential order - + Disable PeX for this torrent - + Download first and last pieces first - + Disable LSD for this torrent - + Currently used categories - - + + Choose save path Saqlash yo‘lagini tanlang - + Not applicable to private torrents + + + TorrentShareLimitsWidget - - No share limit method selected + + + + + Default - - Please select a limit method first + + + + Unlimited + + + + + + + Set to + + + + + Seeding time: + + + + + + + + + + min + minutes + daq + + + + Inactive seeding time: + + + + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + + + + + Ratio: @@ -10415,32 +11017,32 @@ Please choose a different name and try again. - - New Tag + + Add tag - + Tag: - + Invalid tag name - + Tag name '%1' is invalid. - + Tag exists - + Tag name already exists. @@ -10448,115 +11050,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. - + Priority must be an integer - + Priority is not valid - + Torrent's metadata has not yet downloaded - + File IDs must be integers - + File ID is not valid - - - - + + + + Torrent queueing must be enabled - - + + Save path cannot be empty - - + + Cannot create target directory - - + + Category cannot be empty - + Unable to create category - + Unable to edit category - + Unable to export torrent file. Error: %1 - + Cannot make save path - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. - + Index %1 is out of bounds. - - + + Cannot write to directory - + WebUI Set location: moving "%1", from "%2" to "%3" - + Incorrect torrent name - - + + Incorrect category name @@ -10582,196 +11199,191 @@ Please choose a different name and try again. TrackerListModel - + Working - + Disabled - + Disabled for this torrent - + This torrent is private - + N/A Noaniq - + Updating... - + Not working - + Tracker error - + Unreachable - + Not contacted yet - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - - - - - Peers - - - - - Seeds - - - - - Leeches - - - - - Times Downloaded - - - - - Message - - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + + + Tier + + + + + Status + + + + + Peers + + + + + Seeds + + + + + Leeches + + + + + Times Downloaded + + + + + Message TrackerListWidget - + This torrent is private - + Tracker editing - + Tracker URL: - - + + Tracker editing failed - + The tracker URL entered is invalid. - + The tracker URL already exists. - + Edit tracker URL... - + Remove tracker - + Copy tracker URL - + Force reannounce to selected trackers - + Force reannounce to all trackers - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Add trackers... - + Column visibility @@ -10789,37 +11401,37 @@ Please choose a different name and try again. - + µTorrent compatible list URL: - + Download trackers list - + Add Qo‘shish - + Trackers list URL error - + The trackers list URL cannot be empty - + Download trackers list error - + Error occurred when downloading the trackers list. Reason: "%1" @@ -10827,62 +11439,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) - + Trackerless (%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker - - Resume torrents - Torrentlarni davomlash + + Start torrents + - - Pause torrents - Torrentlarni pauza qilish + + Stop torrents + - + Remove torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter Hammasi (%1) @@ -10891,7 +11503,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument @@ -10983,11 +11595,6 @@ Please choose a different name and try again. 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. - - - Paused - Pauzada - Completed @@ -11011,220 +11618,252 @@ Please choose a different name and try again. - + Name i.e: torrent name - + Size i.e: torrent size - + Progress % Done - - Status - Torrent status (e.g. downloading, seeding, paused) + + Stopped - + + Status + Torrent status (e.g. downloading, seeding, stopped) + + + + Seeds i.e. full sources (often untranslated) - + Peers i.e. partial sources (often untranslated) - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Ratio Share ratio - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left - + Category - + Tags - + Added On Torrent was added to transfer list on 01/01/2010 08:00 - + Completed On Torrent was completed on 01/01/2010 08:00 - + Tracker - + Down Limit i.e: Download limit - + Up Limit i.e: Upload limit - + Downloaded Amount of data downloaded (e.g. in MB) Yuklab olingan - + Uploaded Amount of data uploaded (e.g. in MB) - + 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) - + Remaining Amount of data left to download (e.g. in MB) - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) - + + Yes + Ha + + + + No + Yo‘q + + + Save Path Torrent save path - + Incomplete Save Path Torrent incomplete save path - + Completed Amount of data completed (e.g. in MB) Tugallangan - + Ratio Limit Upload share ratio limit - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Last Activity Time passed since a chunk was downloaded/uploaded - + Total Size i.e. Size including unwanted data - + Availability The number of distributed copies of the torrent - + Info Hash v1 i.e: torrent info hash v1 - + Info Hash v2 i.e: torrent info hash v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A Noaniq - + %1 ago e.g.: 1h 20m ago - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) @@ -11233,339 +11872,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility - + Recheck confirmation - + Are you sure you want to recheck the selected torrent(s)? - + Rename - + New name: Yangi nomi: - + Choose save path Saqlash yo‘lagini tanlang - - Confirm pause - - - - - Would you like to pause all torrents? - - - - - Confirm resume - - - - - Would you like to resume all torrents? - - - - + Unable to preview - + The selected torrent "%1" does not contain previewable files - + Resize columns - + Resize all non-hidden columns to the size of their contents - + Enable automatic torrent management - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. - - Add Tags - - - - + Choose folder to save exported .torrent files - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" - + A file with the same name already exists - + Export .torrent file error - + Remove All Tags - + Remove all tags from selected torrents? - + Comma-separated tags: - + Invalid tag - + Tag name: '%1' is invalid - - &Resume - Resume/start the torrent - &Davomlash - - - - &Pause - Pause the torrent - &Pauza qilish - - - - Force Resu&me - Force Resume/start the torrent - - - - + Pre&view file... - + Torrent &options... - + Open destination &folder - + Move &up i.e. move up in the queue - + Move &down i.e. Move down in the queue - + Move to &top i.e. Move to top of the queue - + Move to &bottom i.e. Move to bottom of the queue - + Set loc&ation... - + Force rec&heck - + Force r&eannounce - + &Magnet link - + Torrent &ID - + &Comment - + &Name - + Info &hash v1 - + Info h&ash v2 - + Re&name... - + Edit trac&kers... - + E&xport .torrent... - + Categor&y - + &New... New category... - + &Reset Reset category - + Ta&gs - + &Add... Add / assign multiple tags... - + &Remove All Remove all tags - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue - + &Copy - + Exported torrent is not necessarily the same as the imported - + Download in sequential order - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent - + Download first and last pieces first - + Automatic Torrent Management - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - - - - + Super seeding mode @@ -11602,7 +12221,7 @@ Please choose a different name and try again. Icons - + Belgilar @@ -11610,28 +12229,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11639,7 +12258,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" @@ -11670,20 +12294,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". @@ -11691,32 +12316,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11724,27 +12349,27 @@ Please choose a different name and try again. Utils::IO - + File open error. File: "%1". Error: "%2" - + File size exceeds limit. File: "%1". File size: %2. Size limit: %3 - + File size exceeds data size limit. File: "%1". File size: %2. Array limit: %3 - + File read error. File: "%1". Error: "%2" - + Read size mismatch. File: "%1". Expected: %2. Actual: %3 @@ -11813,67 +12438,67 @@ Please choose a different name and try again. - + Unacceptable file type, only regular file is allowed. - + Symlinks inside alternative UI folder are forbidden. - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' @@ -11881,125 +12506,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + + + misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + PiB pebibytes (1024 tebibytes) - + EiB exbibytes (1024 pebibytes) - + /s per second - + %1s e.g: 10 seconds - + %1m e.g: 10 minutes - + %1h %2m e.g: 3 hours 5 minutes - + %1d %2h e.g: 2 days 10 hours - + %1y %2d e.g: 2 years 10 days - - + + Unknown Unknown (size) - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute diff --git a/src/lang/qbittorrent_vi.ts b/src/lang/qbittorrent_vi.ts index ac12c74c2..51153d440 100644 --- a/src/lang/qbittorrent_vi.ts +++ b/src/lang/qbittorrent_vi.ts @@ -6,7 +6,7 @@ About qBittorrent - Giới thiệu về qBittorrent + Thông tin qBittorrent @@ -14,87 +14,87 @@ Thông tin - + Authors Tác giả - + Current maintainer - Người duy trì hiện tại + Người bảo trì hiện tại - + Greece Hy Lạp - - + + Nationality: Quốc tịch: - - + + E-mail: E-mail: - - + + Name: Tên: - + Original author Tác giả gốc - + France Pháp - + Special Thanks - Cảm Tạ + Đặc biệt cảm ơn - + Translators Người dịch - + License Giấy phép - + Software Used - Phần mềm Được sử dụng + Phần Mềm Đã Dùng - + qBittorrent was built with the following libraries: qBittorrent được xây dựng với các thư viện sau: - + Copy to clipboard - Sao chép vào bộ nhớ tạm + Sao chép vào bảng tạm An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar. - Một ứng dụng khách BitTorrent nâng cao được lập trình bằng C++, dựa trên bộ công cụ Qt và libtorrent-rasterbar. + Ứng dụng khách BitTorrent nâng cao lập trình bằng C++, dựa trên Qt và libtorrent-rasterbar. - Copyright %1 2006-2024 The qBittorrent project - Bản quyền %1 2006-2024 Dự án qBittorrent + Copyright %1 2006-2025 The qBittorrent project + Bản quyền %1 2006-2025 Dự án qBittorrent @@ -109,12 +109,12 @@ Bug Tracker: - Máy theo dõi Lỗi: + Máy Theo Dõi Lỗi: The free IP to Country Lite database by DB-IP is used for resolving the countries of peers. The database is licensed under the Creative Commons Attribution 4.0 International License - Cơ sở dữ liệu IP đến Country Lite miễn phí của DB-IP được sử dụng để giải quyết các quốc gia ngang hàng. Cơ sở dữ liệu được cấp phép theo Giấy phép Quốc tế Ghi Công Sáng Tạo Công Cộng 4.0 + Cơ sở dữ liệu IP to Country Lite miễn phí của DB-IP được sử dụng để xử lý các quốc gia ngang hàng. Cơ sở dữ liệu được cấp phép theo Giấy phép Quốc tế Ghi Công Sáng Tạo Công Cộng 4.0 @@ -166,15 +166,10 @@ Lưu tại - + Never show again Không hiển thị lại - - - Torrent settings - Cài đặt torrent - Set as default category @@ -191,12 +186,12 @@ Chạy torrent - + Torrent information Thông tin torrent - + Skip hash check Bỏ qua kiểm tra hash @@ -205,6 +200,11 @@ Use another path for incomplete torrent Dùng đường dẫn khác cho torrent chưa xong + + + Torrent options + Tùy chọn Torrent + Tags: @@ -231,75 +231,75 @@ Điều kiện dừng: - - + + None Không - - + + Metadata received - Đã nhận dữ liệu mô tả + Dữ liệu mô tả đã nhận - + Torrents that have metadata initially will be added as stopped. - + Các torrent có dữ liệu mô tả ban đầu sẽ được thêm vào dưới dạng đã dừng. - - + + Files checked Tệp đã kiểm tra - + Add to top of queue Thêm vào đầu hàng đợi - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog Khi được chọn, tệp .torrent sẽ không bị xóa bất kể cài đặt nào tại trang "Tải xuống" của hộp thoại Tùy chọn - + Content layout: Bố cục nội dung: - + Original Gốc - + Create subfolder Tạo thư mục con - + Don't create subfolder Không tạo thư mục con - + Info hash v1: Thông tin băm v1: - + Size: Kích cỡ: - + Comment: - Bình luận: + Chú thích: - + Date: Ngày: @@ -329,151 +329,147 @@ Nhớ đường dẫn lưu đã dùng lần cuối - + Do not delete .torrent file Không xóa tệp .torrent - + Download in sequential order Tải xuống theo thứ tự tuần tự - + Download first and last pieces first Tải về phần đầu và phần cuối trước - + Info hash v2: Thông tin băm v2: - + Select All - Chọn Tất cả + Chọn Hết - + Select None Không Chọn - + Save as .torrent file... Lưu tệp .torrent... - + I/O Error Lỗi I/O - + Not Available This comment is unavailable Không có sẵn - + Not Available This date is unavailable Không có sẵn - + Not available Không có sẵn - + Magnet link Liên kết magnet - + Retrieving metadata... Đang truy xuất dữ liệu mô tả... - - + + Choose save path Chọn đường dẫn lưu - + No stop condition is set. - Không có điều kiện dừng. + Chưa đặt điều kiện dừng. - + Torrent will stop after metadata is received. Torrent sẽ dừng sau khi nhận dữ liệu mô tả. - Torrents that have metadata initially aren't affected. - Torrent có dữ liệu mô tả ban đầu không bị ảnh hưởng. - - - + Torrent will stop after files are initially checked. Torrent sẽ dừng sau khi tệp được kiểm tra lần đầu. - + This will also download metadata if it wasn't there initially. Sẽ tải xuống dữ liệu mô tả nếu ban đầu không có. - - + + N/A Không - + %1 (Free space on disk: %2) %1 (Dung lượng đĩa trống: %2) - + Not available This size is unavailable. Không có sẵn - + Torrent file (*%1) Tệp torrent (*%1) - + Save as torrent file Lưu tệp torrent - + Couldn't export torrent metadata file '%1'. Reason: %2. Không thể xuất tệp dữ liệu mô tả torrent '%1'. Lý do: %2. - + Cannot create v2 torrent until its data is fully downloaded. Không thể tạo torrent v2 cho đến khi dữ liệu của nó đã tải về đầy đủ. - + Filter files... Lọc tệp... - + Parsing metadata... Đang phân tích dữ liệu mô tả... - + Metadata retrieval complete Hoàn tất truy xuất dữ liệu mô tả @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" Đang tải torrent... Nguồn: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" Thêm torrent thất bại. Nguồn: "%1". Lý do: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - Đã phát hiện nỗ lực thêm torrent trùng lặp. Nguồn: %1. Torrent hiện có: %2. Kết quả: %3 - - - + Merging of trackers is disabled Gộp các máy theo dõi bị tắt - + Trackers cannot be merged because it is a private torrent Không thể hợp nhất trình theo dõi vì đây là torrent riêng tư - + Trackers are merged from new source Máy theo dõi được gộp từ ​​nguồn mới + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Giới hạn chia sẻ torrent + Giới hạn chia sẻ torrent @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion Kiểm tra lại torrent khi hoàn tất - - + + ms milliseconds ms - + Setting Cài đặt - + Value Value set for this setting Giá trị - + (disabled) - ‎ (bị vô hiệu hóa)‎ + ‎ (bị tắt)‎ - + (auto) (tự động) - + + min minutes phút - + All addresses Tất cả các địa chỉ - + qBittorrent Section Phần qBittorrent - - + + Open documentation Mở tài liệu - + All IPv4 addresses Tất cả địa chỉ IPv4 - + All IPv6 addresses Tất cả địa chỉ IPv6 - + libtorrent Section Phần libtorrent - + Fastresume files Tệp fastresume - + SQLite database (experimental) Cơ sở dữ liệu SQLite (thử nghiệm) - + Resume data storage type (requires restart) Kiểu lưu trữ dữ liệu tiếp tục (cần khởi động lại) - + Normal Bình thường - + Below normal Dưới bình thường - + Medium Trung bình - + Low Thấp - + Very low Rất thấp - + Physical memory (RAM) usage limit Giới hạn sử dụng bộ nhớ vật lý (RAM) - + Asynchronous I/O threads Luồng I/O không đồng bộ - + Hashing threads Luồng băm - + File pool size Kích thước nhóm tệp - + Outstanding memory when checking torrents - Bộ nhớ vượt trội khi kiểm tra torrent + Bộ nhớ vượt mức khi kiểm tra torrents - + Disk cache Bộ nhớ đệm trên đĩa - - - - + + + + + s seconds gi. - + Disk cache expiry interval Khoảng thời gian hết hạn bộ nhớ đệm trên đĩa - + Disk queue size Kích thước hàng đợi đĩa - - + + Enable OS cache Bật bộ nhớ đệm của HĐH - + Coalesce reads & writes Kết hợp đọc và ghi - + Use piece extent affinity Sử dụng tương đồng khoảng mảnh - + Send upload piece suggestions Gửi đề xuất phần tải lên - - - - + + + + + 0 (disabled) 0 (tắt) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - Khoản thời gian lưu dữ liệu tiếp tục [0: tắt] + Khoảng thời gian lưu dữ liệu tiếp tục [0: tắt] - + Outgoing ports (Min) [0: disabled] Cổng đi (Tối thiểu) [0: đã tắt] - + Outgoing ports (Max) [0: disabled] Cổng đi (Tối đa) [0: đã tắt] - + 0 (permanent lease) 0 (thuê vĩnh viễn) - + UPnP lease duration [0: permanent lease] Thời hạn thuê UPnP [0: thuê vĩnh viễn] - + Stop tracker timeout [0: disabled] Dừng thời gian tạm ngưng máy theo dõi [0: đã tắt] - + Notification timeout [0: infinite, -1: system default] Thời gian chờ thông báo [0: vô hạn, -1: mặc định hệ thống] - + Maximum outstanding requests to a single peer Số lượng yêu cầu tồn đọng tối đa tới một máy ngang hàng - - - - - + + + + + KiB KiB - + (infinite) (vô hạn) - + (system default) (mặc định hệ thống) - + + Delete files permanently + Xóa tập tin vĩnh viễn + + + + Move files to trash (if possible) + Đưa tệp vào thùng rác (nếu có thể) + + + + Torrent content removing mode + Chế độ xóa nội dung torrent + + + This option is less effective on Linux Tùy chọn này ít hiệu quả trên Linux - + Process memory priority Ưu tiên bộ nhớ xử lý - + Bdecode depth limit Giới hạn độ sâu Bdecode - + Bdecode token limit Giới hạn độ sâu Bdecode - + Default Mặc định - + Memory mapped files - Các tệp được ánh xạ bộ nhớ + Tệp ánh xạ bộ nhớ - + POSIX-compliant Chuẩn POSIX - + + Simple pread/pwrite + pread/pwrite đơn giản + + + Disk IO type (requires restart) Loại IO trên đĩa (cần khởi động lại) - - + + Disable OS cache - Tắt bộ nhớ cache của hệ điều hành + Tắt bộ nhớ đệm của hệ điều hành - + Disk IO read mode Chế độ đọc IO trên đĩa - + Write-through Viết qua - + Disk IO write mode Chế độ ghi IO trên đĩa - + Send buffer watermark Gửi buffer watermark - + Send buffer low watermark Gửi hình mờ thấp của bộ đệm - + Send buffer watermark factor Gửi buffer watermark factor - + Outgoing connections per second Kết nối đi mỗi giây - - + + 0 (system default) 0 (mặc định hệ thống) - + Socket send buffer size [0: system default] Socket gửi đi kích cỡ vùng đệm [0: mặc định hệ thống] - + Socket receive buffer size [0: system default] Socket nhận kích cỡ vùng đệm [0: mặc định hệ thống] - + Socket backlog size Kích thước tồn đọng socket - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + Lưu khoảng thời gian thống kê [0: tắt] + + + .torrent file size limit giới hạn kích thước tệp .torrent - + Type of service (ToS) for connections to peers Loại dịch vụ (ToS) cho các kết nối tới ngang hàng - + Prefer TCP Ưu tiên TCP - + Peer proportional (throttles TCP) Tỷ lệ ngang hàng (điều chỉnh TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) Hỗ trợ tên miền quốc tế hóa (IDN) - + Allow multiple connections from the same IP address Cho phép nhiều kết nối từ cùng một địa chỉ IP - + Validate HTTPS tracker certificates Xác thực chứng chỉ máy theo dõi HTTPS - + Server-side request forgery (SSRF) mitigation Chống giả mạo yêu cầu phía máy chủ (SSRF) - + Disallow connection to peers on privileged ports Không kết nối ngang hàng trên các cổng đặc quyền - + It appends the text to the window title to help distinguish qBittorent instances - + Nó nối văn bản vào tiêu đề cửa sổ để giúp phân biệt các phiên bản qBittorent - + Customize application instance name - + Tùy chỉnh tên phiên bản ứng dụng - + It controls the internal state update interval which in turn will affect UI updates Kiểm soát khoảng thời gian cập nhật trạng thái nội bộ, nó sẽ ảnh hưởng đến cập nhật giao diện người dùng - + Refresh interval Khoảng thời gian làm mới - + Resolve peer host names Xử lý tên các máy chủ ngang hàng - + IP address reported to trackers (requires restart) Địa chỉ IP được báo cáo cho máy theo dõi (yêu cầu khởi động lại) - + + Port reported to trackers (requires restart) [0: listening port] + Cổng được báo cáo cho máy theo dõi (yêu cầu khởi động lại) [0: Cổng nghe] + + + Reannounce to all trackers when IP or port changed Thông báo lại với tất cả máy theo dõi khi IP hoặc cổng thay đổi - + Enable icons in menus Bật các biểu tượng trong menu - + + Attach "Add new torrent" dialog to main window + Đính kèm hộp thoại "Thêm torrent mới" vào cửa sổ chính + + + Enable port forwarding for embedded tracker Bật chuyển tiếp cổng cho máy theo dõi được nhúng - + Enable quarantine for downloaded files Bật cách ly cho các tệp đã tải xuống - + Enable Mark-of-the-Web (MOTW) for downloaded files Bật Mark-of-the-Web (MOTW) cho các tệp đã tải xuống - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + Ảnh hưởng đến việc xác thực chứng chỉ và các hoạt động giao thức không phải torrent (ví dụ: nguồn cấp dữ liệu RSS, cập nhật chương trình, tệp torrent, db địa lý, v.v.) + + + + Ignore SSL errors + Bỏ qua lỗi SSL + + + (Auto detect if empty) (Tự động phát hiện nếu trống) - + Python executable path (may require restart) Đường dẫn thực thi Python (có thể yêu cầu khởi động lại) - + + Start BitTorrent session in paused state + Bắt đầu phiên BitTorrent ở trạng thái tạm dừng + + + + sec + seconds + giây + + + + -1 (unlimited) + -1 (vô hạn) + + + + BitTorrent session shutdown timeout [-1: unlimited] + Hết thời gian tắt phiên BitTorrent [-1: vô hạn] + + + Confirm removal of tracker from all torrents Xác nhận xóa máy theo dõi khỏi tất cả torrent - + Peer turnover disconnect percentage Phần trăm ngắt kết nối xoay vòng ngang hàng - + Peer turnover threshold percentage Phần trăm ngưỡng xoay vòng ngang hàng - + Peer turnover disconnect interval Khoảng ngắt kết nối xoay vòng ngang hàng - + Resets to default if empty Đặt lại về mặc định nếu trống - + DHT bootstrap nodes Các nút khởi động DHT - + I2P inbound quantity Số lượng đầu vào I2P - + I2P outbound quantity Số lượng đầu ra I2P - + I2P inbound length Độ dài đầu vào I2P - + I2P outbound length Độ dài đầu ra I2P - + Display notifications Hiển thị thông báo - + Display notifications for added torrents Hiển thị thông báo cho các torrent được thêm vào - + Download tracker's favicon Tải về biểu tượng đại diện của máy theo dõi - + Save path history length Độ dài lịch sử đường dẫn lưu - + Enable speed graphs Bật biểu đồ tốc độ - + Fixed slots - Các vị trí cố định + Cố định số lượng - + Upload rate based Tỷ lệ tải lên dựa trên - + Upload slots behavior Hành vi các lượt tải lên - + Round-robin Round-robin - + Fastest upload Tải lên nhanh nhất - + Anti-leech Chống leech - + Upload choking algorithm Thuật toán làm nghẽn tải lên - + Confirm torrent recheck Xác nhận kiểm tra lại torrent - + Confirm removal of all tags Xác nhận xóa tất cả các thẻ - + Always announce to all trackers in a tier Luôn thông báo cho tất cả các máy theo dõi trong một cấp - + Always announce to all tiers Luôn thông báo cho tất cả các cấp - + Any interface i.e. Any network interface Bất kỳ giao diện - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP thuật toán chế đọ hỗn hợp - + Resolve peer countries Giải quyết các quốc gia ngang hàng - + Network interface Giao diện mạng - + Optional IP address to bind to Địa chỉ IP tùy chọn để liên kết với - + Max concurrent HTTP announces Thông báo HTTP đồng thời tối đa - + Enable embedded tracker Bật máy theo dõi đã nhúng - + Embedded tracker port Cổng máy theo dõi đã nhúng + + AppController + + + + Invalid directory path + Đường dẫn thư mục không hợp lệ + + + + Directory does not exist + Thư mục không tồn tại + + + + Invalid mode, allowed values: %1 + Chế độ không hợp lệ, giá trị cho phép: %1 + + + + cookies must be array + cookies phải là mảng + + Application - + Running in portable mode. Auto detected profile folder at: %1 Chạy ở chế độ di động. Thư mục hồ sơ được phát hiện tự động tại: %1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. Đã phát hiện cờ dòng lệnh dự phòng: "%1". Chế độ di động ngụ ý số lượng nhanh tương đối. - + Using config directory: %1 Sử dụng thư mục cấu hình: %1 - + Torrent name: %1 Tên torrent: %1 - + Torrent size: %1 Kích cỡ Torrent: %1 - + Save path: %1 Đường dẫn lưu: %1 - + The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds Torrent đã được tải về trong %1. - + + Thank you for using qBittorrent. Cảm ơn bạn đã sử dụng qBittorrent. - + Torrent: %1, sending mail notification Torrent: %1, gửi thông báo qua thư - + Add torrent failed Thêm torrent thất bại - + Couldn't add torrent '%1', reason: %2. Không thể thêm torrent '%1', lý do: %2. - + The WebUI administrator username is: %1 Tên người dùng của quản trị viên WebUI là: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 Mật khẩu quản trị viên WebUI chưa được đặt. Mật khẩu tạm thời được cung cấp cho phiên này: %1 - + You should set your own password in program preferences. Bạn nên đặt mật khẩu của riêng mình trong tùy chọn chương trình. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI bị tắt! Để bật WebUI, hãy sửa tệp cấu hình theo cách thủ công. - + Running external program. Torrent: "%1". Command: `%2` Chạy chương trình bên ngoài. Torrent: "%1". Lệnh: `%2` - + Failed to run external program. Torrent: "%1". Command: `%2` Không thể chạy chương trình bên ngoài. Torrent: "%1". Lệnh: `%2` - + Torrent "%1" has finished downloading Torrent "%1" đã hoàn tất tải xuống - + WebUI will be started shortly after internal preparations. Please wait... WebUI sẽ được bắt đầu ngay sau khi chuẩn bị nội bộ. Vui lòng chờ... - - + + Loading torrents... Đang tải torrent... - + E&xit Thoát - + I/O Error i.e: Input/Output Error Lỗi Nhập/Xuất - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ Lý do: %2 - + Torrent added Đã thêm torrent - + '%1' was added. e.g: xxx.avi was added. '%1' đã được thêm. - + Download completed Đã tải về xong - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 đã bắt đầu. ID tiến trình: %2 - + + This is a test email. + Đây là email kiểm tra. + + + + Test email + Email thử nghiệm + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' đã tải về hoàn tất. - + Information Thông tin - + To fix the error, you may need to edit the config file manually. Để sửa lỗi, bạn có thể cần phải sửa tệp cấu hình thủ công. - + To control qBittorrent, access the WebUI at: %1 Để điều khiển qBittorrent, hãy truy cập WebUI tại: %1 - + Exit Thoát - + Recursive download confirmation Xác nhận tải về đệ quy - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent '%1' chứa các tệp .torrent, bạn có muốn tiếp tục tải chúng xuống không? - + Never Không bao giờ - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" Tải xuống đệ quy tệp .torrent trong torrent. Nguồn torrent: "%1". Tệp: "%2" - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" Không đặt được giới hạn sử dụng bộ nhớ vật lý (RAM). Mã lỗi: %1. Thông báo lỗi: "%2" - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" Không thể đặt giới hạn cứng sử dụng bộ nhớ vật lý (RAM). Kích thước được yêu cầu: %1. Giới hạn cứng của hệ thống: %2. Mã lỗi: %3. Thông báo lỗi: "%4" - + qBittorrent termination initiated Đã bắt đầu thoát qBittorrent - + qBittorrent is shutting down... qBittorrent đang tắt... - + Saving torrent progress... Đang lưu tiến trình torrent... - + qBittorrent is now ready to exit qBittorrent đã sẵn sàng để thoát @@ -1609,12 +1715,12 @@ Ưu tiên: - + Must Not Contain: Không được chứa: - + Episode Filter: Bộ lọc phân đoạn @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &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ẽ khớp với các tập 2, 5, 8 đến 15, 30 và các tập tiếp theo của phần một - + Episode filter rules: Quy luật lọc phân đoạn: - + Season number is a mandatory non-zero value Số phần là một giá trị khác 0 bắt buộc - + 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 tập đượ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 tập từ 25 đến 40 của phần một - + Episode number is a mandatory positive value Số tập là một giá trị dương bắt buộc - + Rules Quy tắc - + Rules (legacy) Quy tắc (kế thừa) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons Phạm vi vô hạn:<b>1x25-;</b> khớp với các tập từ 25 trở lên của phần một và tất cả các tập của các phần sau - + Last Match: %1 days ago Phù hợp gần đây: %1 ngày trước - + Last Match: Unknown Phù hợp gần đây: Không rõ - + New rule name Tên quy tắc mới - + Please type the name of the new download rule. Hãy nhập tên quy tắc tải về mới. - - + + Rule name conflict Xung đột tên quy tắc - - + + A rule with this name already exists, please choose another name. Một quy tắc có tên này đã tồn tại, hãy chọn một tên khác. - + Are you sure you want to remove the download rule named '%1'? Bạn có chắc muốn xóa quy tắc tải xuống tên là '%1' không? - + Are you sure you want to remove the selected download rules? Bạn có chắc muốn xóa các quy tắc tải xuống đã chọn không? - + Rule deletion confirmation Xác nhận xóa quy tắc - + Invalid action Hành động không hợp lệ - + The list is empty, there is nothing to export. Danh sách trống, không có gì để xuất. - + Export RSS rules Xuất quy tắc RSS - + I/O Error Lỗi I/O - + Failed to create the destination file. Reason: %1 Không thể tạo tệp đích. Lý do: %1 - + Import RSS rules Nhập quy tắc RSS - + Failed to import the selected rules file. Reason: %1 Không thể nhập tệp quy tắc đã chọn. Lý do: %1 - + Add new rule... Thêm quy tắc mới... - + Delete rule Xoá quy tắc - + Rename rule... Đổi tên quy tắc... - + Delete selected rules Xoá các quy tắc đã chọn - + Clear downloaded episodes... Xóa các tập đã tải xuống... - + Rule renaming Đổi tên quy tắc - + Please type the new rule name Vui lòng nhập tên quy tắc mới - + Clear downloaded episodes Xóa các tập đã tải xuống - + Are you sure you want to clear the list of downloaded episodes for the selected rule? Bạn có chắc chắn muốn xóa danh sách các tập đã tải xuống cho quy tắc đã chọn không? - + Regex mode: use Perl-compatible regular expressions Chế độ Biểu thức chính quy: sử dụng biểu thức chính quy tương thích với Perl - - + + Position %1: %2 Vị trí %1: %2 - + Wildcard mode: you can use Chế độ ký tự đại diện: bạn có thể sử dụng - - + + Import error Lỗi nhập - + Failed to read the file. %1 Không đọc được tệp. %1 - + ? to match any single character ? để khớp với bất kỳ ký tự đơn lẻ nào - + * to match zero or more of any characters * để khớp với không hoặc nhiều hơn bất kỳ ký tự nào - + Whitespaces count as AND operators (all words, any order) Khoảng trắng được tính là toán tử VÀ (tất cả các từ, bất kỳ thứ tự nào) - + | is used as OR operator | được sử dụng như toán tử HOẶC - + If word order is important use * instead of whitespace. Nếu thứ tự từ là quan trọng, hãy sử dụng * thay vì khoảng trắng. - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) Một biểu thức có mệnh đề %1 trống (ví dụ: %2) - + will match all articles. sẽ phù hợp với tất cả các bài báo. - + will exclude all articles. sẽ loại trừ tất cả các bài báo. @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" Không thể tạo thư mục tiếp tục torrent: "%1" @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Không thể phân tích cú pháp dữ liệu tiếp tục: định dạng không hợp lệ - - + + Cannot parse torrent info: %1 Không thể phân tích cú pháp thông tin của torrent: %1 - + Cannot parse torrent info: invalid format Không thể phân tích cú pháp thông tin của torrent: dịnh dạng không hợp lệ - + Mismatching info-hash detected in resume data Phát hiện hàm băm thông tin không khớp trong dữ liệu tiếp tục - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. Không thể lưu dữ liệu mô tả torrent vào '%1'. Lỗi:%2. - + Couldn't save torrent resume data to '%1'. Error: %2. Không thể lưu dữ liệu tiếp tục torrent vào '%1'. Lỗi: %2. @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 Không thể phân tích cú pháp dữ liệu tiếp tục: %1 - + Resume data is invalid: neither metadata nor info-hash was found Dữ liệu tiếp tục không hợp lệ: không tìm thấy dữ liệu mô tả hay thông tin băm - + Couldn't save data to '%1'. Error: %2 Không thể lưu dữ liệu tới '%1'. Lỗi: %2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. Không tìm thấy. - + Couldn't load resume data of torrent '%1'. Error: %2 Không thể tải dữ liệu tiếp tục của torrent '%1'. Lỗi: %2 - - + + Database is corrupted. Cơ sở dữ liệu bị hỏng. - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. Không thể bật chế độ ghi nhật ký Ghi-Trước (WAL). Lỗi: %1. - + Couldn't obtain query result. Không thể nhận được kết quả truy vấn. - + WAL mode is probably unsupported due to filesystem limitations. Chế độ WAL có thể không được hỗ trợ do hạn chế của hệ thống tệp. - + + + Cannot parse resume data: %1 + Không thể phân tích cú pháp dữ liệu tiếp tục: %1 + + + + + Cannot parse torrent info: %1 + Không thể phân tích cú pháp thông tin của torrent: %1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 Không thể bắt đầu giao dịch. Lỗi: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. Không thể lưu dữ liệu mô tả torrent. Lỗi: %1. - + Couldn't store resume data for torrent '%1'. Error: %2 Không thể lưu trữ dữ liệu tiếp tục cho torrent '%1'. Lỗi: %2 - + Couldn't delete resume data of torrent '%1'. Error: %2 Không thể xóa dữ liệu tiếp tục của torrent '%1'. Lỗi: %2 - + Couldn't store torrents queue positions. Error: %1 Không thể lưu được vị trí hàng đợi torrent. Lỗi: %1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 Hỗ trợ Bảng Băm Phân Tán (DHT): %1 - - - - - - - - - + + + + + + + + + ON BẬT - - - - - - - - - + + + + + + + + + OFF TẮT - - + + Local Peer Discovery support: %1 Hỗ trợ tìm kiếm ngang hàng địa phương: %1 - + Restart is required to toggle Peer Exchange (PeX) support Khởi động lại là bắt buộc để chuyển đổi hỗ trợ trao đổi ngang hàng (PeX) - + Failed to resume torrent. Torrent: "%1". Reason: "%2" Tiếp tục tải xuống torrent thất bại/không thành công. Torrent: "%1". Reason: "%2" - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" Tiếp tục tải xuống torrent thất bại/không thành công: ID torrent không nhất quán đã được phát hiện/bị phát hiện/được nhận dạng. Torrent: "%1" - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" Đã phát hiện dữ liệu không nhất quán: danh mục bị thiếu trong tệp cấu hình. Danh mục sẽ được khôi phục nhưng cài đặt của nó sẽ được đặt lại về mặc định. Torrent: "%1". Danh mục: "%2" - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" Đã phát hiện dữ liệu không nhất quán: danh mục không hợp lệ. Torrent: "%1". Danh mục: "%2" - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" Đã phát hiện sự không khớp giữa các đường dẫn lưu của danh mục đã khôi phục và đường dẫn lưu hiện tại của torrent. Torrent hiện đã được chuyển sang chế độ Thủ công. Torrent: "%1". Danh mục: "%2" - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" Đã phát hiện dữ liệu không nhất quán: thiếu thẻ trong tệp cấu hình. Thẻ sẽ được phục hồi. Torrent: "%1". Thẻ: "%2" - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" Đã phát hiện dữ liệu không nhất quán: thẻ không hợp lệ. Torrent: "%1". Thẻ: "%2" - + System wake-up event detected. Re-announcing to all the trackers... Đã phát hiện sự kiện đánh thức hệ thống. Thông báo lại cho tất cả các máy theo dõi... - + Peer ID: "%1" ID Ngang hàng: "%1" - + HTTP User-Agent: "%1" Tác nhân Người dùng HTTP: '%1' - + Peer Exchange (PeX) support: %1 Hỗ trợ trao đổi ngang hàng (PeX): %1 - - + + Anonymous mode: %1 Chế độ ẩn danh: %1 - - + + Encryption support: %1 Hỗ trợ mã hóa: %1 - - + + FORCED BẮT BUỘC - + Could not find GUID of network interface. Interface: "%1" Không thể tìm thấy GUID của giao diện mạng. Giao diện: "%1" - + Trying to listen on the following list of IP addresses: "%1" Đang cố nghe danh sách địa chỉ IP sau: "%1" - + Torrent reached the share ratio limit. - Torrent đạt đến giới hạn tỷ lệ chia sẻ. + Torrent đã đến giới hạn tỷ lệ chia sẻ. - - - + Torrent: "%1". Torrent: "%1". - - - - Removed torrent. - Xóa torrent. - - - - - - Removed torrent and deleted its content. - Đã xóa torrent và xóa nội dung của nó. - - - - - - Torrent paused. - Torrent đã tạm dừng. - - - - - + Super seeding enabled. Đã bật siêu chia sẻ. - + Torrent reached the seeding time limit. Torrent đã đạt đến giới hạn thời gian chia sẻ. - + Torrent reached the inactive seeding time limit. Torrent đã đạt đến giới hạn thời gian chia sẻ không hoạt động. - + Failed to load torrent. Reason: "%1" Không tải được torrent. Lý do: "%1" - + I2P error. Message: "%1". Lỗi I2P. Thông báo: "%1". - + UPnP/NAT-PMP support: ON Hỗ trợ UPnP/NAT-PMP: BẬT - + + Saving resume data completed. + Lưu dữ liệu hồi phục đã hoàn tất. + + + + BitTorrent session successfully finished. + Phiên BitTorrent đã kết thúc thành công. + + + + Session shutdown timed out. + Đã hết thời gian tắt phiên. + + + + Removing torrent. + Đang xóa torrent. + + + + Removing torrent and deleting its content. + Đang xóa torrent và nội dung của nó. + + + + Torrent stopped. + Torrent đã dừng. + + + + Torrent content removed. Torrent: "%1" + Đã xóa nội dung torrent. Torrent: "%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + Xnội dung torrent thất bại. Torrent: "%1". Lỗi: "%2" + + + + Torrent removed. Torrent: "%1" + Đã xóa torrent. Torrent: "%1" + + + + Merging of trackers is disabled + Gộp các máy theo dõi bị tắt + + + + Trackers cannot be merged because it is a private torrent + Không thể hợp nhất máy theo dõi vì đây là torrent riêng tư + + + + Trackers are merged from new source + Máy theo dõi được gộp từ ​​nguồn mới + + + UPnP/NAT-PMP support: OFF Hỗ trợ UPnP/NAT-PMP: TẮT - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" Không xuất được torrent. Dòng chảy: "%1". Điểm đến: "%2". Lý do: "%3" - + Aborted saving resume data. Number of outstanding torrents: %1 Đã hủy lưu dữ liệu tiếp tục. Số lượng torrent đang giải quyết: %1 - + The configured network address is invalid. Address: "%1" Địa chỉ mạng đã cấu hình không hợp lệ. Địa chỉ: "%1" - - + + Failed to find the configured network address to listen on. Address: "%1" Không thể tìm thấy địa chỉ mạng được định cấu hình để nghe. Địa chỉ: "%1" - + The configured network interface is invalid. Interface: "%1" Giao diện mạng được cấu hình không hợp lệ. Giao diện: "%1" - + + Tracker list updated + Đã cập nhật danh sách máy theo dõi + + + + Failed to update tracker list. Reason: "%1" + Không thể cập nhật danh sách máy theo dõi. Lý do: "%1" + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" Đã từ chối địa chỉ IP không hợp lệ trong khi áp dụng danh sách các địa chỉ IP bị cấm. IP: "%1" - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" Đã thêm máy theo dõi vào torrent. Torrent: "%1". Máy theo dõi: "%2" - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" Đã xóa máy theo dõi khỏi torrent. Torrent: "%1". Máy theo dõi: "%2" - + Added URL seed to torrent. Torrent: "%1". URL: "%2" Đã thêm URL chia sẻ vào torrent. Torrent: "%1". URL: "%2" - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" Đã URL seed khỏi torrent. Torrent: "%1". URL: "%2" - - Torrent paused. Torrent: "%1" - Torrent tạm dừng. Torrent: "%1" + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + Xóa partfile thất bại. Torrent: "%1". Lý do: "%2". - + Torrent resumed. Torrent: "%1" Torrent đã tiếp tục. Torrent: "%1" - + Torrent download finished. Torrent: "%1" Tải xuống torrent đã hoàn tất. Torrent: "%1" - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" Di chuyển Torrent bị hủy bỏ. Torrent: "%1". Nguồn: "%2". Đích đến: "%3" - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + Torrent đã dừng lại. Torrent: "%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination Không thể xếp hàng di chuyển torrent. Torrent: "%1". Nguồn: "%2". Đích đến: "%3". Lý do: torrent hiện đang di chuyển đến đích - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location Không thể xếp hàng di chuyển torrent. Torrent: "%1". Nguồn: "%2" Đích đến: "%3". Lý do: hai đường dẫn trỏ đến cùng một vị trí - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" Đã xếp hàng di chuyển torent. Torrent: "%1". Nguồn: "%2". Đích đến: "%3" - + Start moving torrent. Torrent: "%1". Destination: "%2" Bắt đầu di chuyển torrent. Torrent: "%1". Đích đến: "%2" - + Failed to save Categories configuration. File: "%1". Error: "%2" Không lưu được cấu hình Danh mục. Tập tin: "%1". Lỗi: "%2" - + Failed to parse Categories configuration. File: "%1". Error: "%2" Không thể phân tích cú pháp cấu hình Danh mục. Tập tin: "%1". Lỗi: "%2" - + Successfully parsed the IP filter file. Number of rules applied: %1 Đã phân tích cú pháp thành công tệp bộ lọc IP. Số quy tắc được áp dụng: %1 - + Failed to parse the IP filter file Không thể phân tích cú pháp tệp bộ lọc IP - + Restored torrent. Torrent: "%1" Đã khôi phục torrent. Torrent: "%1" - + Added new torrent. Torrent: "%1" Đã thêm torrent mới. Torrent: "%1" - + Torrent errored. Torrent: "%1". Error: "%2" Torrent đã bị lỗi. Torrent: "%1". Lỗi: "%2" - - - Removed torrent. Torrent: "%1" - Đã xóa torrent. Torrent: "%1" - - - - Removed torrent and deleted its content. Torrent: "%1" - Đã xóa torrent và xóa nội dung của nó. Torrent: "%1" - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent thiếu tham số SSL. Torrent: "%1". Thông báo: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" Cảnh báo lỗi tập tin. Torrent: "%1". Tập tin: "%2". Lý do: "%3" - + UPnP/NAT-PMP port mapping failed. Message: "%1" Ánh xạ cổng UPnP/NAT-PMP không thành công. Thông báo: "%1" - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" Ánh xạ cổng UPnP/NAT-PMP đã thành công. Thông báo: "%1" - + IP filter this peer was blocked. Reason: IP filter. Lọc IP - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). đã lọc cổng (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). cổng đặc quyền (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + Kết nối hạt RL không thành công. Torrent: "%1". URL: "%2". Lỗi: "%3" + + + BitTorrent session encountered a serious error. Reason: "%1" Phiên BitTorrent gặp lỗi nghiêm trọng. Lý do: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". Lỗi proxy SOCKS5. Địa chỉ %1. Thông báo: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 hạn chế chế độ hỗn hợp - + Failed to load Categories. %1 Không tải được Danh mục. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" Không tải được cấu hình Danh mục. Tập tin: "%1". Lỗi: "Định dạng dữ liệu không hợp lệ" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - Đã xóa torrent nhưng không xóa được nội dung và/hoặc phần tệp của nó. Torrent: "%1". Lỗi: "%2" - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 đã tắt - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 đã tắt - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - Tra cứu DNS URL chia sẻ không thành công. Torrent: "%1". URL: "%2". Lỗi: "%3" - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" Đã nhận được thông báo lỗi từ URL chia sẻ. Torrent: "%1". URL: "%2". Thông báo: "%3" - + Successfully listening on IP. IP: "%1". Port: "%2/%3" Nghe thành công trên IP. IP: "%1". Cổng: "%2/%3" - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" Không nghe được trên IP. IP: "%1". Cổng: "%2/%3". Lý do: "%4" - + Detected external IP. IP: "%1" Đã phát hiện IP bên ngoài. IP: "%1" - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" Lỗi: Hàng đợi cảnh báo nội bộ đã đầy và cảnh báo bị xóa, bạn có thể thấy hiệu suất bị giảm sút. Loại cảnh báo bị giảm: "%1". Tin nhắn: "%2" - + Moved torrent successfully. Torrent: "%1". Destination: "%2" Đã chuyển torrent thành công. Torrent: "%1". Đích đến: "%2" - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" Không thể di chuyển torrent. Torrent: "%1". Nguồn: "%2". Đích đến: "%3". Lý do: "%4" @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + Thất bại seeding. BitTorrent::TorrentCreator - + Operation aborted Thao tác bị hủy bỏ - - + + Create new torrent file failed. Reason: %1. Tạo tệp torrent mới thất bại. Lý do: %1. @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 Thất bại thêm máy ngang hàng "%1" vào torrent "%2". Lý do: %3 - + Peer "%1" is added to torrent "%2" Máy ngang hàng "%1" được thêm vào torrent "%2" - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. Đã phát hiện dữ liệu không mong muốn. Torrent: %1. Dữ liệu: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. Không thể ghi vào tệp. Lý do: "%1". Torrent hiện ở chế độ "chỉ tải lên". - + Download first and last piece first: %1, torrent: '%2' Tải về phần đầu và phần cuối trước: %1, torrent: '%2' - + On Mở - + Off Tắt - + Failed to reload torrent. Torrent: %1. Reason: %2 Không thể tải lại torrent. Torrent: %1. Lý do: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" Tạo dữ liệu tiếp tục không thành công. Torrent: "%1". Lý do: "%2" - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" Khôi phục torrent thất bại. Các tệp có thể đã được di chuyển hoặc không thể truy cập bộ nhớ. Torrent: "%1". Lý do: "%2" - + Missing metadata Thiếu dữ liệu mô tả - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" Đổi tên tệp thất bại. Torrent: "%1", tệp: "%2", lý do: "%3" - + Performance alert: %1. More info: %2 Cảnh báo hiệu suất: %1. Thông tin khác: %2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' Tham số '%1' phải theo cú pháp '%1=%2' - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' Tham số '%1' phải theo cú pháp '%1=%2' - + Expected integer number in environment variable '%1', but got '%2' Số nguyên mong đợi trong biến môi trường '%1', nhưng có '%2' - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - Tham số '%1' phải theo cú pháp '%1=%2' - - - + Expected %1 in environment variable '%2', but got '%3' Dự kiến %1 trong biến môi trường '%2', nhưng có '%3' - - + + %1 must specify a valid port (1 to 65535). %1 phải nêu một cổng hợp lệ (1 tới 65535). - + Usage: Sử dụng: - + [options] [(<filename> | <url>)...] [tùy chọn] [(<filename> | <url>)...] - + Options: Tùy chọn: - + Display program version and exit Hiển thị phiên bản chương trình và thoát - + Display this help message and exit Hiển thị thông báo trợ giúp này và thoát - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + Tham số '%1' phải theo cú pháp '%1=%2' + + + Confirm the legal notice Xác nhận thông báo pháp lý - - + + port cổng - + Change the WebUI port Thay đổi cổng WebUI - + Change the torrenting port Thay đổi cổng torrent - + Disable splash screen Tắt màn hình giật gân - + Run in daemon-mode (background) Chạy ở chế độ-daemon (nền) - + dir Use appropriate short form or abbreviation of "directory" dir - + Store configuration files in <dir> Lưu trữ các tệp cấu hình trong <dir> - - + + name tên - + Store configuration files in directories qBittorrent_<name> Lưu trữ các tệp cấu hình trong thư mục qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory Tấn công vào tệp fastresume libtorrent và tạo đường dẫn tệp liên quan đến thư mục hồ sơ - + files or URLs tập tin hoặc URL - + Download the torrents passed by the user Tải xuống torrent được chấp thuận bởi người dùng - + Options when adding new torrents: Các tùy chọn khi thêm torrent mới: - + path đường dẫn - + Torrent save path Đường dẫn lưu torrent - - Add torrents as started or paused - Thêm torrent khi bắt đầu hoặc tạm dừng + + Add torrents as running or stopped + Thêm torrent khi đang chạy hoặc đã dừng - + Skip hash check Bỏ qua kiểm tra băm - + Assign torrents to category. If the category doesn't exist, it will be created. Gán torrent cho danh mục. Nếu danh mục không tồn tại, nó sẽ được tạo. - + Download files in sequential order Tải về các tệp theo thứ tự tuần tự - + Download first and last pieces first Tải về phần đầu và phần cuối trước - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. Chỉ định xem hộp thoại "Thêm Torrent mới" có mở khi thêm torrent hay không. - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: Giá trị tùy chọn có thể được cung cấp qua các biến môi trường. Đối với tùy chọn tên 'parameter-name', tên biến môi trường là 'QBT_PARAMETER_NAME' (nếu viết hoa, '-' được thay bằng '_'). Để thông qua giá trị canh, đặt biến thành '1' hoặc 'TRUE'. Lấy ví dụ, để vô hiệu hóa màn hình khởi động: - + Command line parameters take precedence over environment variables Tham số dòng lệnh được ưu tiên hơn giá trị môi trường - + Help Trợ giúp @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - Tiếp tục torrent + Start torrents + Chạy torrents - Pause torrents - Tạm dừng các torrent + Stop torrents + Dừng torrents @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... Sửa... - + Reset Cài lại + + + System + Hệ thống + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 Không tải được biểu định kiểu chủ đề tùy chỉnh. %1 - + Failed to load custom theme colors. %1 Không tải được màu chủ đề tùy chỉnh. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 Không tải được màu chủ đề mặc định. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - Đồng thời xóa vĩnh viễn các tệp + Also remove the content files + Đồng thời xóa các tập tin nội dung - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? Bạn có chắc muốn xóa '%1' từ danh sách trao đổi? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? Bạn có chắc muốn xóa những %1 torrent này từ danh sách trao đổi? - + Remove Xóa @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Tải về từ URL - + Add torrent links Thêm liên kết torrent - + One link per line (HTTP links, Magnet links and info-hashes are supported) Một liên kết trên mỗi dòng (liên kết HTTP, liên kết nam châm và băm thông tin được hỗ trợ) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Tải về - + No URL entered Chưa có URL được điền - + Please type at least one URL. Vui lòng nhập ít nhất một URL. @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Lỗi phân tích cú pháp: Tệp bộ lọc không phải là tệp PeerGuardian P2B hợp lệ. + + FilterPatternFormatMenu + + + Pattern Format + Định Dạng Mẫu + + + + Plain text + Văn bản thuần + + + + Wildcards + Ký tự đại diện + + + + Regular expression + Biểu thức chính quy + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" Đang tải torrent... Nguồn: "%1" - - Trackers cannot be merged because it is a private torrent - Không thể hợp nhất máy theo dõi vì đây là torrent riêng tư - - - + Torrent is already present Torrent đã tồn tại - + + Trackers cannot be merged because it is a private torrent. + Không thể gộp máy theo dõi vì đây là một torrent riêng tư. + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent '%1' đã có trong danh sách trao đổi. Bạn có muốn gộp các máy theo dõi từ nguồn mới không? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also GeoIPDatabase - - + + Unsupported database file size. Kích thước tệp cơ sở dữ liệu không được hỗ trợ. - + Metadata error: '%1' entry not found. Lỗi dữ liệu mô tả: không tìm thấy mục nhập '%1'. - + Metadata error: '%1' entry has invalid type. Lỗi dữ liệu mô tả: mục nhập '%1' có loại không hợp lệ. - + Unsupported database version: %1.%2 Phiên bản cơ sở dữ liệu không được hỗ trợ: %1.%2 - + Unsupported IP version: %1 Phiên bản IP không hỗ trợ: %1 - + Unsupported record size: %1 Kích thước bản ghi không hỗ trợ: %1 - + Database corrupted: no data section found. Cơ sở dữ liệu bị hỏng: không tìm thấy phần dữ liệu. @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 Kích thước yêu cầu http vượt quá giới hạn, đóng socket. Giới hạn: %1, IP: %2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" Phương thức yêu cầu HTTP không hợp lệ, đóng ổ cắm. IP: %1. Phương thức: "%2" - + Bad Http request, closing socket. IP: %1 Yêu cầu Http không hợp lệ, đóng ổ cắm. IP: %1 @@ -3303,24 +3516,58 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... Duyệt qua... - + Reset Cài lại - + Select icon Chọn biểu tượng - + Supported image files - Các tệp hình ảnh được hỗ trợ + Tệp ảnh được hỗ trợ + + + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + Quản lý năng lượng tìm thấy giao diện D-Bus phù hợp. Giao diện: %1 + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + Lỗi quản lý nguồn. Hành động: %1. Lỗi: %2 + + + + Power management unexpected error. State: %1. Error: %2 + Lỗi quản lý nguồn không mong muốn. Giai đoạn 1. Lỗi: %2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 đã bị chặn. Lí do: %2. - + %1 was banned 0.0.0.0 was banned %1 đã bị cấm. @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. %1 là một tham số dòng lệnh không xác định. - - + + %1 must be the single command line parameter. %1 phải là tham số dòng lệnh duy nhất. - + Run application with -h option to read about command line parameters. Chạy ứng dụng với tùy chọn -h để đọc về các tham số dòng lệnh. - + Bad command line Dòng lệnh xấu - + Bad command line: Dòng lệnh xấu: - + An unrecoverable error occurred. Đã xảy ra lỗi không thể khôi phục. + - qBittorrent has encountered an unrecoverable error. qBittorrent đã gặp lỗi không thể khôi phục. - + You cannot use %1: qBittorrent is already running. Bạn không thể sử dụng %1: qBittorrent đang chạy. - + Another qBittorrent instance is already running. Một phiên bản qBittorrent khác đang chạy. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. Đã tìm thấy phiên bản qBittorrent không mong muốn. Thoát khỏi trường hợp này. ID tiến trình hiện tại: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. Lỗi khi daemonizing. Lý do: "%1". Mã lỗi: %2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also &Chỉnh sửa - + &Tools &Công cụ - + &File &Tệp - + &Help &Trợ giúp - + On Downloads &Done Khi Tải về &Hoàn tất - + &View &Xem - + &Options... &Tùy chọn... - - &Resume - Tiếp tục - - - + &Remove Xóa - + Torrent &Creator Trình tạo &Torrent - - + + Alternative Speed Limits Giới Hạn Tốc Độ Thay Thế - + &Top Toolbar &Thanh công cụ Trên - + Display Top Toolbar Hiển thị Thanh công cụ Hàng đầu - + Status &Bar Thanh &Trạng thái - + Filters Sidebar Bộ Lọc Thanh Bên - + S&peed in Title Bar Tốc độ trên Thanh Tiêu đề - + Show Transfer Speed in Title Bar Hiển Thị Tốc Độ Truyền Tải Trong Thanh Tiêu Đề - + &RSS Reader &Trình đọc RSS - + Search &Engine Máy &Tìm kiếm - + L&ock qBittorrent Kh&óa qBittorrent - + Do&nate! Đó&ng góp! - + + Sh&utdown System + Tắt Hệ Thống + + + &Do nothing &Không làm gì cả - + Close Window Đóng cửa sổ - - R&esume All - Tiếp tục Tất cả - - - + Manage Cookies... Quản lý Cookie... - + Manage stored network cookies Quản lý cookie mạng được lưu trữ - + Normal Messages Thông báo Bình thường - + Information Messages Thông báo Thông tin - + Warning Messages Thông báo Cảnh báo - + Critical Messages Thông Báo Quan Trọng - + &Log &Nhật ký - + + Sta&rt + Chạy + + + + Sto&p + Dừng + + + + R&esume Session + Tiếp Tục Phiên + + + + Pau&se Session + Tạm Dừng Phiên + + + Set Global Speed Limits... Đặt Giới Hạn Tốc Độ Chung... - + Bottom of Queue Dưới cùng của Hàng đợi - + Move to the bottom of the queue Dời xuống dưới cùng của hàng đợi - + Top of Queue Trên cùng của Hàng đợi - + Move to the top of the queue Dời lên trên cùng của hàng đợi - + Move Down Queue Di chuyển Xuống Hàng đợi - + Move down in the queue Di chuyển xuống hàng đợi - + Move Up Queue Di chuyển Lên Hàng đợi - + Move up in the queue Dời lên trong hàng đợi - + &Exit qBittorrent &Thoát qBittorrent - + &Suspend System &Tạm ngừng Hệ thống - + &Hibernate System &Ngủ đông Hệ thống - - S&hutdown System - T&ắt máy - - - + &Statistics &Thống kê - + Check for Updates Kiểm tra Cập nhật - + Check for Program Updates Kiểm tra Cập nhật Chương trình - + &About Thông tin - - &Pause - Tạm dừng - - - - P&ause All - Tạ&m Dừng Tất Cả - - - + &Add Torrent File... &Thêm tệp Torrent... - + Open Mở - + E&xit T&hoát - + Open URL Mở URL - + &Documentation &Tài liệu Hướng dẫn - + Lock Khóa - - - + + + Show Hiển Thị - + Check for program updates Kiểm tra cập nhật chương trình - + Add Torrent &Link... Thêm &Liên kết Torrent... - + If you like qBittorrent, please donate! Nếu Bạn Thích qBittorrent, Hãy Quyên Góp! - - + + Execution Log Nhật Ký Thực Thi - + Clear the password Xóa mật khẩu - + &Set Password &Đặt Mật khẩu - + Preferences Tùy chọn - + &Clear Password &Xóa Mật khẩu - + Transfers Trao đổi - - + + qBittorrent is minimized to tray qBittorrent được thu nhỏ xuống khay hệ thống - - - + + + This behavior can be changed in the settings. You won't be reminded again. Hành vi này có thể được thay đổi trong cài đặt. Bạn sẽ không được nhắc lại. - + Icons Only Chỉ Biểu Tượng - + Text Only Chỉ Văn Bản - + Text Alongside Icons Biểu tượng văn bản dọc theo văn bản - + Text Under Icons Văn bản dưới biểu tượng - + Follow System Style Theo kiểu hệ thống - - + + UI lock password Mật Khẩu Khóa Giao Diện - - + + Please type the UI lock password: Vui Lòng Nhập Mật Khẩu Khóa Giao Diện: - + Are you sure you want to clear the password? Bạn có chắc chắn muốn xóa mật khẩu không? - + Use regular expressions Sử dụng biểu thức chính quy - + + + Search Engine + Máy tìm kiếm + + + + Search has failed + Tìm kiếm thất bại + + + + Search has finished + Tìm kiếm đã kết thúc + + + Search Tìm Kiếm - + Transfers (%1) Trao đổi (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent vừa được cập nhật và cần được khởi động lại để các thay đổi có hiệu lực. - + qBittorrent is closed to tray qBittorrent được đóng xuống khay hệ thống - + Some files are currently transferring. Một số tệp hiện đang trao đổi. - + Are you sure you want to quit qBittorrent? Bạn có chắc mình muốn thoát qBittorrent? - + &No &Không - + &Yes &Đồng ý - + &Always Yes &Luôn Đồng ý - + Options saved. Đã lưu Tùy chọn. - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [ĐÃ TẠM DỪNG] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + Bộ cài đặt Python không thể tải xuống. Lỗi: %1. +Vui lòng cài đặt nó theo cách thủ công. + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + Đổi tên trình cài đặt Python không thành công. Nguồn: "%1". Điểm đến: "%2". + + + + Python installation success. + Cài đặt Python thành công. + + + + Exit code: %1. + Mã thoát: %1. + + + + Reason: installer crashed. + Lý do: Bộ cài đặt bị hỏng. + + + + Python installation failed. + Cài đặt Python thất bại. + + + + Launching Python installer. File: "%1". + Khởi chạy bộ cài đặt Python. Tệp: "%1". + + + + Missing Python Runtime Thiếu thời gian chạy Python - + qBittorrent Update Available Cập Nhật qBittorrent Có Sẵn - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Cần Python để sử dụng công cụ tìm kiếm nhưng nó dường như không được cài đặt. Bạn muốn cài đặt nó bây giờ không? - + Python is required to use the search engine but it does not seem to be installed. Python được yêu cầu để sử dụng công cụ tìm kiếm nhưng nó dường như không được cài đặt. - - + + Old Python Runtime Python Runtime cũ - + A new version is available. Một phiên bản mới có sẵn. - + Do you want to download %1? Bạn có muốn tải về %1? - + Open changelog... Mở nhật ký thay đổi... - + No updates available. You are already using the latest version. Không có bản cập nhật có sẵn. Bạn đang sử dụng phiên bản mới nhất. - + &Check for Updates &Kiểm tra Cập nhật - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? Phiên bản Python của bạn (%1) đã lỗi thời. Yêu cầu tối thiểu: %2. Bạn có muốn cài đặt phiên bản mới hơn ngay bây giờ không? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. Phiên bản Python của bạn (%1) đã lỗi thời. Vui lòng nâng cấp lên phiên bản mới nhất để công cụ tìm kiếm hoạt động. Yêu cầu tối thiểu: %2. - + + Paused + Bị tạm dừng + + + Checking for Updates... Đang kiểm tra Cập nhật... - + Already checking for program updates in the background Đã kiểm tra các bản cập nhật chương trình trong nền - + + Python installation in progress... + Cài đặt Python đang được tiến hành... + + + + Failed to open Python installer. File: "%1". + Không thể mở bộ cài đặt Python. Tệp: "%1". + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Thất bại kiểm tra băm MD5 cho trình cài đặt Python. Tệp: "%1". Kết quả băm: "%2". Hash dự kiến: "%3". + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Không thành công SHA3-512 Hash Kiểm tra trình cài đặt Python. Tệp: "%1". Kết quả băm: "%2". Hash dự kiến: "%3". + + + Download error Lỗi tải về - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Không thể tải xuống thiết lập Python, lý do: %1. -Hãy cài đặt thủ công. - - - - + + Invalid password Mật Khẩu Không Hợp Lệ - + Filter torrents... Lọc torrent... - + Filter by: Lọc bởi: - + The password must be at least 3 characters long Mật khẩu buộc phải dài ít nhất 3 ký tự - - - + + + RSS (%1) RSS (%1) - + The password is invalid Mật khẩu không hợp lệ - + DL speed: %1 e.g: Download speed: 10 KiB/s Tốc độ TX: %1 - + UP speed: %1 e.g: Upload speed: 10 KiB/s - Tốc độ TL: %1 + Tốc độ tải lên: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - [D: %1, U: %2] qBittorrent %3 - - - + Hide Ẩn - + Exiting qBittorrent Thoát qBittorrent - + Open Torrent Files Mở Các Tệp Torrent - + Torrent Files Các Tệp Torrent @@ -4141,7 +4460,7 @@ Hãy cài đặt thủ công. SSL/TLS handshake failed - Bắt tay SSL/TLS không thành công + Bắt tay SSL/TLS thất bại @@ -4232,7 +4551,12 @@ Hãy cài đặt thủ công. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + Lỗi SSL, URL: "%1", lỗi: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" Đang bỏ qua lỗi SSL, URL: "%1", lỗi: "%2" @@ -5526,47 +5850,47 @@ Hãy cài đặt thủ công. Net::Smtp - + Connection failed, unrecognized reply: %1 Kết nối không thành công, trả lời không được công nhận: %1 - + Authentication failed, msg: %1 Xác thực không thành công, thông báo: %1 - + <mail from> was rejected by server, msg: %1 <mail from> đã bị máy chủ từ chối, thông báo: %1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> đã bị máy chủ từ chối, thông báo: %1 - + <data> was rejected by server, msg: %1 <data> đã bị máy chủ từ chối, thông báo: %1 - + Message was rejected by the server, error: %1 Tin nhắn đã bị máy chủ từ chối, lỗi: %1 - + Both EHLO and HELO failed, msg: %1 Cả EHLO và HELO đều không thành công, thông báo: %1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 Máy chủ SMTP dường như không hỗ trợ bất kỳ chế độ xác thực nào mà chúng tôi hỗ trợ [CRAM-MD5|PLAIN|LOGIN], bỏ qua xác thực, biết rằng nó có khả năng bị lỗi... Chế Độ Xác Thực Máy Chủ: %1 - + Email Notification Error: %1 Lỗi Thông Báo Email: %1 @@ -5604,299 +5928,283 @@ Hãy cài đặt thủ công. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced Nâng cao - + Customize UI Theme... Tùy chỉnh chủ đề giao diện người dùng... - + Transfer List Danh sách Trao đổi - + Confirm when deleting torrents Xác nhận khi xóa torrent - - Shows a confirmation dialog upon pausing/resuming all the torrents - Hiển thị hộp thoại xác nhận khi tạm dừng/tiếp tục tất cả các torrent - - - - Confirm "Pause/Resume all" actions - Xác nhận hành động "Tạm dừng/Tiếp tục tất cả" - - - + Use alternating row colors In table elements, every other row will have a grey background. Sử dụng các màu hàng xen kẽ - + Hide zero and infinity values Ẩn các giá trị không và vô cùng - + Always Luôn luôn - - Paused torrents only - Chỉ torrent bị tạm dừng - - - + Action on double-click Thao tác khi đúp chuột - + Downloading torrents: Đang tải xuống torrent: - - - Start / Stop Torrent - Khởi chạy / Dừng Torrent - - - - + + Open destination folder Mở thư mục đích - - + + No action Không thao tác - + Completed torrents: Torrent đã hoàn tất: - + Auto hide zero status filters Tự động ẩn bộ lọc trạng thái không - + Desktop Màn hình nền - + Start qBittorrent on Windows start up Khởi chạy qBittorrent lúc Windows khởi động - + Show splash screen on start up Hiển thị màn hình giới thiệu khi mới chạy - + Confirmation on exit when torrents are active Xác nhận thoát khi torrent đang hoạt động - + Confirmation on auto-exit when downloads finish Xác nhận tự động thoát khi tải xuống hoàn tất - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>Để đặt qBittorrent mặc định cho tệp .torrent và liên kết Magnet<br/>bạn có thể dùng hộp thoại <span style=" font-weight:600;">Chương Trình Mặc Định</span> từ<span style=" font-weight:600;">Bảng Điều Khiển</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Bố cục nội dung torrent: - + Original Gốc - + Create subfolder Tạo thư mục con - + Don't create subfolder Không tạo thư mục con - + The torrent will be added to the top of the download queue Torrent sẽ được thêm vào đầu hàng đợi tải xuống - + Add to top of queue The torrent will be added to the top of the download queue Thêm vào đầu hàng đợi - + When duplicate torrent is being added Khi torrent trùng lặp đang được thêm vào - + Merge trackers to existing torrent Gộp máy theo dõi với torrent hiện có - + Keep unselected files in ".unwanted" folder Giữ các tập tin không được chọn trong thư mục ".unwanted" - + Add... Thêm... - + Options.. Tùy chọn... - + Remove Xóa - + Email notification &upon download completion Thông báo qua email khi tải về xong - + + Send test email + Gửi email kiểm tra + + + + Run on torrent added: + Chạy trên torrent được thêm vào: + + + + Run on torrent finished: + Chạy trên torrent đã hoàn thành: + + + Peer connection protocol: Giao thức kết nối ngang hàng: - + Any Bất kỳ - + I2P (experimental) I2P (thử nghiệm) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>Nếu &quot;chế độ hỗn hợp&quot; được bật Các torrent I2P cũng được phép nhận các máy ngang hàng từ các nguồn khác ngoài trình theo dõi và kết nối với các IP thông thường, không cung cấp bất kỳ ẩn danh nào. Điều này có thể hữu ích nếu người dùng không quan tâm đến việc ẩn danh I2P, nhưng vẫn muốn có thể kết nối với các máy ngang hàng I2P.</p></body></html> - - - + Mixed mode Chế độ hỗn hợp - - Some options are incompatible with the chosen proxy type! - Một số tùy chọn không tương thích với loại proxy đã chọn! - - - + If checked, hostname lookups are done via the proxy Nếu được chọn, tra cứu tên máy chủ được thực hiện thông qua proxy - + Perform hostname lookup via proxy Thực hiện tra cứu tên máy chủ qua proxy - + Use proxy for BitTorrent purposes Sử dụng proxy cho mục đích BitTorrent - + RSS feeds will use proxy Nguồn cấp dữ liệu RSS sẽ sử dụng proxy - + Use proxy for RSS purposes Sử dụng proxy cho mục đích RSS - + Search engine, software updates or anything else will use proxy Công cụ tìm kiếm, cập nhật phần mềm hoặc bất kỳ thứ gì khác sẽ sử dụng proxy - + Use proxy for general purposes Sử dụng proxy cho các mục đích chung - + IP Fi&ltering &Lọc IP - + Schedule &the use of alternative rate limits Sắp xếp &sử dụng giới hạn tỉ lệ khác - + From: From start time Từ: - + To: To end time Đến: - + Find peers on the DHT network Tìm ngang hàng trên mạng DHT - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Yêu cầu mã hóa: Chỉ kết nối đến máy ngang hàng với giao thức Tắt mã hóa: Chỉ kết nối đến máy ngang hàng không có giao thức mã hóa - + Allow encryption Cho phép mã hóa - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Thêm thông tin</a>) - + Maximum active checking torrents: Hoạt dộng kiểm tra torrents tối đa: - + &Torrent Queueing &Hàng đợi Torrent - + When total seeding time reaches Khi tổng thời gian seeding đạt - + When inactive seeding time reaches Khi thời gian gieo hạt không hoạt động đạt đến - - A&utomatically add these trackers to new downloads: - Tự động thêm các máy theo dõi này vào các bản tải về mới: - - - + RSS Reader Trình đọc RSS - + Enable fetching RSS feeds Bật nạp luồng RSS - + Feeds refresh interval: Khoảng làm mới luồng: - + Same host request delay: - + Độ trễ yêu cầu máy chủ tương tự: - + Maximum number of articles per feed: Số lượng tối đa của các bài viết cho một luồng: - - - + + + min minutes phút - + Seeding Limits Giới hạn chia sẻ - - Pause torrent - Tạm dừng torrent - - - + Remove torrent Loại bỏ torrent - + Remove torrent and its files Xóa torrent và các tệp của nó - + Enable super seeding for torrent Bật siêu chia sẻ cho torrent - + When ratio reaches Khi tỷ lệ đạt đến - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + Dừng torrents + + + + A&utomatically append these trackers to new downloads: + Tự động thêm các máy theo dõi này vào bản tải xuống mới: + + + + Automatically append trackers from URL to new downloads: + Tự động nối các trình theo dõi từ URL sang tải xuống mới: + + + + URL: + URL: + + + + Fetched trackers + Tìm nạp máy theo dõi + + + + Search UI + UI Tìm Kiếm + + + + Store opened tabs + Lưu trữ các tab đã mở + + + + Also store search results + Cũng lưu trữ kết quả tìm kiếm + + + + History length + Độ dài lịch sử + + + RSS Torrent Auto Downloader Trình Tải Về RSS Torrent Tự Động - + Enable auto downloading of RSS torrents Bật tự động tải về RSS torrents - + Edit auto downloading rules... Chỉnh sửa quy tắc tải về tự động... - + RSS Smart Episode Filter Bộ Lọc Tập Thông Minh RSS - + Download REPACK/PROPER episodes Tải về các tập phim REPACK/PROPER - + Filters: Bộ Lọc: - + Web User Interface (Remote control) Giao diện người dùng web (Điều khiển từ xa) - + IP address: Địa chỉ IP: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Nêu một địa chỉ IPv4 or IPv6. Bạn có thể nêu "0.0.0.0" c "::" cho bất kì địa chỉ IPv6 nào, hoặc "*" cho cả hai IPv4 và IPv6. - + Ban client after consecutive failures: Cấm máy khách sau các lần thất bại liên tiếp: - + Never Không bao giờ - + ban for: cấm: - + Session timeout: Thời gian chờ phiên: - + Disabled Vô hiệu hóa - - Enable cookie Secure flag (requires HTTPS) - Bật cờ bảo mật cookie (yêu cầu HTTPS) - - - + Server domains: Miền máy chủ: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ bạn nên đặt tên miền được sử dụng bởi máy chủ WebUI. Sử dụng ';' để chia nhiều mục nhập. Có thể sử dụng ký tự đại diện '*'. - + &Use HTTPS instead of HTTP &Sử dụng HTTPS thay vì HTTP - + Bypass authentication for clients on localhost Bỏ qua xác thực máy khách trên máy chủ cục bộ. - + Bypass authentication for clients in whitelisted IP subnets Bỏ qua xác thực cho máy khách trong các mạng con IP được cho phép. - + IP subnet whitelist... Danh sách cho phép mạng con IP... - + + Use alternative WebUI + Sử dụng WebUI thay thế + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. Chỉ định IP proxy ngược (hoặc mạng con, ví dụ: 0.0.0.0/24) để sử dụng địa chỉ ứng dụng khách được chuyển tiếp (tiêu đề X-Forwarded-For). Sử dụng ';' để chia nhiều mục nhập. - + Upda&te my dynamic domain name Cập &nhật tên miền động của tôi - + Minimize qBittorrent to notification area Thu nhỏ qBittorrent vào vùng thông báo - + + Search + Tìm kiếm + + + + WebUI + WebUI + + + Interface Giao diện - + Language: Ngôn ngữ: - + + Style: + Kiểu: + + + + Color scheme: + Bảng màu: + + + + Stopped torrents only + Chỉ torrent đã dừng + + + + + Start / stop torrent + Chạy / dừng torrent + + + + + Open torrent options dialog + Hộp thoại Tùy chọn torrent mở + + + Tray icon style: Kiểu biểu tượng khay hệ thống: - - + + Normal Bình thường - + File association Gắn kết tệp - + Use qBittorrent for .torrent files Sử dụng qBittorrent cho các tệp .torrent - + Use qBittorrent for magnet links Sử dụng qBittorrent cho các liên kết nam châm - + Check for program updates Kiểm tra cập nhật chương trình - + Power Management Quản lý năng lượng - + + &Log Files + Tệp Nhật Ký + + + Save path: Đường dẫn lưu: - + Backup the log file after: Sao lưu tệp nhật ký sau: - + Delete backup logs older than: Xóa nhật ký sao lưu cũ hơn: - + + Show external IP in status bar + Hiển thị IP bên ngoài trong thanh trạng thái + + + When adding a torrent Khi thêm vào một torrent - + Bring torrent dialog to the front Đem hộp thoại torrent lên phía trước - + + The torrent will be added to download list in a stopped state + Torrent sẽ được thêm vào danh sách tải ở trạng thái dừng + + + Also delete .torrent files whose addition was cancelled Đồng thời xóa các tệp .torrent có phần bổ sung đã bị hủy - + Also when addition is cancelled Ngoài ra khi việc bổ sung bị hủy bỏ - + Warning! Data loss possible! Cảnh báo! Có thể mất dữ liệu! - + Saving Management Quản lý tiết kiệm - + Default Torrent Management Mode: Chế độ quản lý Torrent mặc định: - + Manual Thủ công - + Automatic Tự động - + When Torrent Category changed: Khi Danh mục Torrent bị thay đổi: - + Relocate torrent Đổi vị trí torrent - + Switch torrent to Manual Mode Chuyển torrent sang Chế độ thủ công - - + + Relocate affected torrents Đổi vị trí các torrent bị ảnh hưởng - - + + Switch affected torrents to Manual Mode Chuyển torrent bị ảnh hưởng sang Chế độ thủ công - + Use Subcategories Sử dụng các danh mục phụ - + Default Save Path: Đường dẫn Lưu Mặc định: - + Copy .torrent files to: Sao chép tệp .torrent đến: - + Show &qBittorrent in notification area Hiển thị &qBittorrent trong khu vực thông báo - - &Log file - &Tệp nhật ký - - - + Display &torrent content and some options Hiển thị nội dung &torrent và các tùy chọn khác` - + De&lete .torrent files afterwards Xóa các tập tin .torrent sau đó - + Copy .torrent files for finished downloads to: Sao chép các tệp .torrent đã tải về xong vào: - + Pre-allocate disk space for all files Phân bổ trước dung lượng đĩa cho tất cả các tệp - + Use custom UI Theme Dùng Chủ đề UI tự chọn - + UI Theme file: Tệp Chủ đề UI: - + Changing Interface settings requires application restart Thay đổi cài đặt Giao diện yêu cầu khởi động lại ứng dụng - + Shows a confirmation dialog upon torrent deletion Hiển thị hộp thoại xác nhận khi xóa torrent - - + + Preview file, otherwise open destination folder Xem trước tệp, nếu không, hãy mở thư mục đích - - - Show torrent options - Hiển thị các tùy chọn torrent - - - + Shows a confirmation dialog when exiting with active torrents Hiển thị hộp thoại xác nhận khi thoát với torrent đang hoạt động - + When minimizing, the main window is closed and must be reopened from the systray icon Khi thu nhỏ, cửa sổ chính sẽ bị đóng và phải được mở lại từ biểu tượng systray - + The systray icon will still be visible when closing the main window Biểu tượng systray sẽ vẫn hiển thị khi đóng cửa sổ chính - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window Đóng lại qBittorrent vào khay hệ thống - + Monochrome (for dark theme) Màu đơn (giao diện tối) - + Monochrome (for light theme) Màu đơn (giao diện sáng) - + Inhibit system sleep when torrents are downloading Ngăn chặn chế độ ngủ của hệ thống khi torrent đang tải xuống - + Inhibit system sleep when torrents are seeding Ngăn cản chế độ ngủ của hệ thống khi torrent đang khởi động - + Creates an additional log file after the log file reaches the specified file size Tạo tệp nhật ký bổ sung sau khi tệp nhật ký đạt đến kích thước tệp được chỉ định - + days Delete backup logs older than 10 days ngày - + months Delete backup logs older than 10 months tháng - + years Delete backup logs older than 10 years năm - + Log performance warnings Ghi nhật ký cảnh báo hiệu suất - - The torrent will be added to download list in a paused state - Torrent sẽ được thêm vào danh sách tải xuống ở trạng thái tạm dừng - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state Không bắt đầu tải xuống tự động - + Whether the .torrent file should be deleted after adding it Liệu tệp .torrent có bị xóa sau khi thêm nó hay không - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. Phân bổ kích thước tệp đầy đủ trên đĩa trước khi bắt đầu tải xuống, để giảm thiểu phân mảnh. Chỉ hữu ích cho HDDs. - + Append .!qB extension to incomplete files Nối phần mở rộng .!QB vào các tệp chưa hoàn chỉnh - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it Khi một torrent dược tải về, đề nghị thêm các torrent từ bất kỳ tệp .torrent nào tìm thấy trong nó - + Enable recursive download dialog Bật hộp thoại tải xuống đệ quy - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually Tự động: Các thuộc tính torrent khác nhau (ví dụ: đường dẫn lưu) sẽ do danh mục liên quan quyết định Thủ công: Các thuộc tính torrent khác nhau (ví dụ: đường dẫn lưu) phải được gán thủ công - + When Default Save/Incomplete Path changed: Khi Đường Dẫn Lưu/Chưa Hoàn Tất Mặc Định thay đổi: - + When Category Save Path changed: Khi Đường dẫn Lưu Danh mục bị thay đổi: - + Use Category paths in Manual Mode Dùng đường dẫn Danh Mục ở Chế Độ Thủ Công - + Resolve relative Save Path against appropriate Category path instead of Default one Xử lý Đường Dẫn Lưu tương đối dựa trên đường dẫn Danh Mục thích hợp thay vì đường dẫn Mặc định - + Use icons from system theme Sử dụng các biểu tượng từ chủ đề hệ thống - + Window state on start up: Trạng thái cửa sổ khi khởi động: - + qBittorrent window state on start up Trạng thái cửa sổ qBittorrent khi khởi động - + Torrent stop condition: Điều kiện dừng torrent: - - + + None Không có - - + + Metadata received Đã nhận dữ liệu mô tả - - + + Files checked Đã kiểm tra tệp - + Ask for merging trackers when torrent is being added manually Hỏi về gộp máy theo dõi khi torrent được thêm thủ công - + Use another path for incomplete torrents: Dùng một đường dẫn khác cho các torrent chưa xong: - + Automatically add torrents from: Tự động thêm torrent từ: - + Excluded file names Tên tệp bị loại trừ - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt: lọc chính xác tên tập tin. readme[0-9].txt: lọc 'readme1.txt', 'readme2.txt' nhưng không lọc 'readme10.txt'. - + Receiver Nhận - + To: To receiver Đến: - + SMTP server: Máy chủ SMTP: - + Sender Gửi - + From: From sender Từ: - + This server requires a secure connection (SSL) Máy chủ này yêu cầu kết nối an toàn (SSL) - - + + Authentication Xác thực - - - - + + + + Username: Tên người dùng: - - - - + + + + Password: Mật khẩu: - + Run external program Chạy chương trình bên ngoài - - Run on torrent added - Chạy trên torrent đã thêm - - - - Run on torrent finished - Chạy trên torrent đã xong - - - + Show console window Hiển thị cửa sổ bảng điều khiển - + TCP and μTP TCP và μTP - + Listening Port Cổng Nghe - + Port used for incoming connections: Cổng được sử dụng cho các kết nối đến: - + Set to 0 to let your system pick an unused port Đặt là 0 để hệ thống chọn một cổng không sử dụng - + Random Ngẫu nhiên - + Use UPnP / NAT-PMP port forwarding from my router Sử dụng chuyển tiếp cổng UPnP / NAT-PMP từ bộ định tuyến của tôi - + Connections Limits Giới hạn Kết nối - + Maximum number of connections per torrent: Số lượng kết nối tối đa mỗi torrent: - + Global maximum number of connections: Số lượng kết nối tối đa chung: - + Maximum number of upload slots per torrent: Số lượng máy tải lên tối đa trên mỗi torrent: - + Global maximum number of upload slots: Số lượng máy tải lên tối đa chung: - + Proxy Server Máy chủ proxy - + Type: Loại: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: Máy chủ lưu trữ: - - - + + + Port: Cổng: - + Otherwise, the proxy server is only used for tracker connections Nếu không, máy chủ proxy chỉ dùng cho các kết nối máy theo dõi - + Use proxy for peer connections Sử dụng proxy cho các kết nối ngang hàng - + A&uthentication X&ác thực - - Info: The password is saved unencrypted - Thông tin: Mật khẩu đã lưu không mã hóa - - - + Filter path (.dat, .p2p, .p2b): Đường dẫn bộ lọc (.dat, .p2p, .p2b): - + Reload the filter Tải lại bộ lọc - + Manually banned IP addresses... Các địa chỉ IP bị cấm theo cách thủ công... - + Apply to trackers Áp dụng với máy theo dõi - + Global Rate Limits Giới hạn Tỉ lệ Chung - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: Tải lên: - - + + Download: Tải về: - + Alternative Rate Limits Giới hạn Tỉ lệ Thay thế - + Start time Thời gian bắt đầu - + End time Thời gian kết thúc - + When: Vào lúc: - + Every day Mọi ngày - + Weekdays Ngày tuần - + Weekends Ngày cuối tuần - + Rate Limits Settings Cài đặt giới hạn tỷ lệ - + Apply rate limit to peers on LAN Áp dụng giới hạn tỉ lệ với ngang hàng trên LAN - + Apply rate limit to transport overhead Áp dụng giới hạn tốc độ cho mào đầu truyền tải - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>Nếu "Chế độ hỗn hợp" được kích hoạt i2p Torrent cũng được phép nhận các đồng nghiệp từ các nguồn khác so với trình theo dõi và kết nối với IP thông thường, không cung cấp bất kỳ ẩn danh nào. Điều này có thể hữu ích nếu người dùng không quan tâm đến việc ẩn danh của i2p, nhưng vẫn muốn có thể kết nối với các đồng nghiệp i2p.</p></body></html> + + + Apply rate limit to µTP protocol Áp dụng giới hạn tỉ lệ với giao thức uTP - + Privacy Riêng tư - + Enable DHT (decentralized network) to find more peers Bật DHT (mạng phi tập trung) để tìm thêm máy ngang hàng - + 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, ...) - + Enable Peer Exchange (PeX) to find more peers Bật Trao Đổi Ngang Hàng (PeX) để tìm thêm máy ngang hàng - + Look for peers on your local network Tìm các máy ngang hàng ở mạng cục bộ của bạn - + Enable Local Peer Discovery to find more peers Bật tính năng Khám phá ngang hàng cục bộ để tìm thêm máy ngang hàng khác - + Encryption mode: Chế độ mã hóa: - + Require encryption Yêu cầu mã hóa - + Disable encryption Vô hiệu mã hóa - + Enable when using a proxy or a VPN connection Bật khi sử dụng một kết nối proxy hoặc VPN - + Enable anonymous mode Bật chế độ ẩn danh - + Maximum active downloads: Tải xuống hoạt động tối đa: - + Maximum active uploads: Tải lên hoạt động tối đa: - + Maximum active torrents: Các torrent hoạt động tối đa: - + Do not count slow torrents in these limits Không tính các torrent chậm trong các giới hạn này - + Upload rate threshold: Ngưỡng tỉ lệ tải lên: - + Download rate threshold: Ngưỡng tỉ lệ tải xuống: - - - - + + + + sec seconds giây - + Torrent inactivity timer: Đếm giờ torrent bất hoạt: - + then thì - + Use UPnP / NAT-PMP to forward the port from my router Sử dụng UPnP / NAT-PMP để chuyển tiếp cổng từ bộ định tuyến của tôi - + Certificate: Chứng chỉ: - + Key: Chìa khóa: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Thông tin về chứng chỉ</a> - + Change current password Thay đổi mật khẩu hiện tại - - Use alternative Web UI - Sử dụng giao diện người dùng web thay thế - - - + Files location: Vị trí tập tin: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">Danh sách WebUI thay thế</a> + + + Security Bảo mật - + Enable clickjacking protection Bật tính năng bảo vệ chống tấn công bằng nhấp chuột - + Enable Cross-Site Request Forgery (CSRF) protection Bật tính năng bảo vệ Truy vấn Yêu cầu Trên Trang web (CSRF) - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + Bật cờ an toàn cookie (yêu cầu kết nối HTTPS hoặc localhost) + + + Enable Host header validation Bật xác thực tiêu đề máy chủ lưu trữ - + Add custom HTTP headers Thêm tiêu đề HTTP tùy chỉnh - + Header: value pairs, one per line Phần đầu: các cặp giá trị, một cặp trên mỗi dòng - + Enable reverse proxy support Bật hỗ trợ proxy ngược - + Trusted proxies list: Danh sách proxy tin cậy: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Ví dụ thiết lập proxy ngược</a> + + + Service: Dịch vụ: - + Register Đăng ký - + Domain name: Tên miền: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! Bằng cách bật các tùy chọn này, bạn có thể <strong>mất mãi mãi</strong> tệp .torrent của bạn! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog Nếu bạn bật tùy chọn thứ hai (&ldquo;khi việc bổ sung bị hủy&rdquo;) tập tin .torrent <strong>sẽ bị xóa</strong> kể cả khi bạn bấm &ldquo;<strong>Hủy</strong>&rdquo; trong hộp thoại &ldquo;Thêm torrent&rdquo; - + Select qBittorrent UI Theme file Chọn tệp chủ đề UI qBittorrent - + Choose Alternative UI files location Chọn vị trí tệp giao diện người dùng thay thế - + Supported parameters (case sensitive): Các thông số được hỗ trợ (phân biệt chữ hoa chữ thường): - + Minimized Thu nhỏ - + Hidden Ẩn - + Disabled due to failed to detect system tray presence Đã vô hiệu hóa vì không thể phát hiện được sự hiện diện của thanh hệ thống - + No stop condition is set. Không có điều kiện dừng nào được đặt. - + Torrent will stop after metadata is received. Torrent sẽ dừng sau khi nhận được dữ liệu mô tả. - Torrents that have metadata initially aren't affected. - Các torrent có dữ liệu mô tả ban đầu không bị ảnh hưởng. - - - + Torrent will stop after files are initially checked. Torrent sẽ dừng sau khi tệp được kiểm tra lần đầu. - + This will also download metadata if it wasn't there initially. Điều này sẽ tải xuống dữ liệu mô tả nếu nó không có ở đó ban đầu. - + %N: Torrent name %N: Tên torrent - + %L: Category %L: Danh mục - + %F: Content path (same as root path for multifile torrent) %F: Đường dẫn nội dung (giống như đường dẫn gốc cho nhiều tệp torrent) - + %R: Root path (first torrent subdirectory path) %R: Đường dẫn gốc (đường dẫn thư mục con torrent đầu tiên) - + %D: Save path %D: Đường dẫn lưu - + %C: Number of files %C: Số lượng tệp - + %Z: Torrent size (bytes) %Z: Kích cỡ Torrent (bytes) - + %T: Current tracker %T: Máy theo dõi hiện tại - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") Mẹo: Bao bọc tham số bằng ngoặc kép để tránh văn bản bị cắt tại khoảng trắng (v.d., "%N") - + + Test email + Email kiểm tra + + + + Attempted to send email. Check your inbox to confirm success + Đã cố gắng gửi email. Kiểm tra hộp thư đến của bạn để xác nhận thành công + + + (None) (Trống) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Một torrent sẽ bị xem là chậm nếu tỉ lệ tải lên và tải xuống của nó ở dưới các giá trị sau trong "Đếm giờ torrent bất hoạt" giây - + Certificate Chứng chỉ - + Select certificate Chọn chứng chỉ - + Private key Key riêng tư - + Select private key Chọn key riêng tư - + WebUI configuration failed. Reason: %1 Cấu hình WebUI không thành công. Lý do: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + %1 được khuyến nghị để tương thích tốt nhất với chế độ tối của Windows + + + + System + System default Qt style + Hệ thống + + + + Let Qt decide the style for this system + Hãy để Qt quyết định kiểu dáng cho hệ thống này + + + + Dark + Dark color scheme + Tối + + + + Light + Light color scheme + Sáng + + + + System + System color scheme + Hệ thống + + + Select folder to monitor Chọn thư mục để theo dõi - + Adding entry failed Thêm mục nhập thất bại - + The WebUI username must be at least 3 characters long. Tên người dùng WebUI phải dài ít nhất 3 ký tự. - + The WebUI password must be at least 6 characters long. Mật khẩu WebUI phải dài ít nhất 6 ký tự. - + Location Error Lỗi Vị trí - - + + Choose export directory Chọn thư mục xuất - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well Khi bật các tùy chọn này, qBittorrent sẽ <strong>xóa</strong> tệp .torrent sau khi đã thêm thành công (tùy chọn 1) hoặc thất bại (tùy chọn 2) vào hàng đợi tải về. Nó sẽ được áp dụng <strong>không chỉ</strong> các tập tin mở với thao tác menu &ldquo;Thêm torrent&rdquo; mà còn với những thứ được mở bằng <strong>tệp liên kết</strong> - + qBittorrent UI Theme file (*.qbtheme config.json) Tệp chủ đề giao diện người dùng qBittorrent (*.qbtheme config.json) - + %G: Tags (separated by comma) %G: Thẻ (phân tách bằng dấu phẩy) - + %I: Info hash v1 (or '-' if unavailable) %I: thông tin băm v1 (hoặc '-' nếu không có) - + %J: Info hash v2 (or '-' if unavailable) %J: Băm thông tin v2 (hoặc '-' nếu không có) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K: ID Torrent (băm thông tin sha-1 cho torrent v1 hoặc băm thông tin sha-256 bị cắt ngắn cho v2 / torrent lai) - - - + + + Choose a save directory Chọn một chỉ mục lưu - + Torrents that have metadata initially will be added as stopped. - + Các torrent có dữ liệu mô tả ban đầu sẽ được thêm vào dưới dạng đã dừng. - + Choose an IP filter file Chọn tệp bộ lọc IP - + All supported filters Tất cả các bộ lọc được hỗ trợ - + The alternative WebUI files location cannot be blank. Vị trí tệp WebUI thay thế không được để trống. - + Parsing error Lỗi Phân tích cú pháp - + Failed to parse the provided IP filter Không phân tích được bộ lọc 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 bộ lọc IP đã cung cấp: %1 quy tắc đã được áp dụng. - + Preferences Tùy chỉnh - + Time Error Lỗi Thời gian - + 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. - - + + Length Error Lỗi độ dài @@ -7335,241 +7765,246 @@ readme[0-9].txt: lọc 'readme1.txt', 'readme2.txt' nhưng k PeerInfo - + Unknown Không rõ - + Interested (local) and choked (peer) Muốn có mảnh file (nội bộ) và không muốn gửi file (peer) - + Interested (local) and unchoked (peer) Muốn có mảnh (cục bộ) và muốn gửi đi dữ liệu (ngang hàng) - + Interested (peer) and choked (local) Muốn có mảnh (ngang hàng) và không muốn gửi đi dữ liệu (cục bộ) - + Interested (peer) and unchoked (local) Muốn có mảnh (ngang hàng) và muốn gửi đi dữ liệu (ngang hàng) - + Not interested (local) and unchoked (peer) Không muốn có mảnh (cục bộ) và muốn gửi đi dữ liệu (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ộ) - + Optimistic unchoke Optimistic unchoke - + Peer snubbed Máy ngang hàng bị bỏ rơi - + Incoming connection Kết nối đến - + Peer from DHT Máy ngang hàng từ DHT - + Peer from PEX Máy ngang hàng từ PEX - + Peer from LSD Máy ngang hàng từ LSD - + Encrypted traffic Lưu lượng được mã hóa - + Encrypted handshake Bắt tay được mã hóa + + + Peer is using NAT hole punching + Ngang hàng đang sử dụng Nat Hole Punching + PeerListWidget - + Country/Region Quốc gia/Khu vực - + IP/Address IP/Địa chỉ - + Port Cổng - + Flags Cờ Đánh Dấu - + Connection Kết nối - + Client i.e.: Client application Máy trạm - + Peer ID Client i.e.: Client resolved from Peer ID ID Máy Ngang Hàng - + 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. Liên quan - + Files i.e. files that are being downloaded right now - Các Tệp + Tệp - + Column visibility Hiển thị cột - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không ẩn thành kích thước của nội dung của chúng - + Add peers... Thêm máy ngang hàng... - - + + Adding peers Thêm ngang hàng - + Some peers cannot be added. Check the Log for details. Không thể thêm một số máy ngang hàng. Kiểm tra nhật ký để biết chi tiết. - + Peers are added to this torrent. Các máy ngang hàng được thêm vào torrent này. - - + + Ban peer permanently Cấm máy ngang hàng vĩnh viễn - + Cannot add peers to a private torrent Không thể thêm máy ngang hàng vào một torrent riêng tư - + Cannot add peers when the torrent is checking Không thể thêm máy ngang hàng khi torrent đang kiểm tra - + Cannot add peers when the torrent is queued Không thể thêm máy ngang hàng khi torrent được xếp hàng đợi - + No peer was selected Không có máy ngang hàng nào được chọn - + Are you sure you want to permanently ban the selected peers? Bạn có chắc muốn ban vĩnh viễn những máy ngang hàng đã chọn? - + Peer "%1" is manually banned Máy ngang hàng "%1" bị cấm theo cách thủ công - + N/A Không áp dụng - + Copy IP:port Sao chép IP:cổng @@ -7587,7 +8022,7 @@ readme[0-9].txt: lọc 'readme1.txt', 'readme2.txt' nhưng k Danh sách máy ngang hàng để thêm vào (một IP trên mỗi đường dây) - + Format: IPv4:port / [IPv6]:port Định dạng: IPv4:port / [IPv6]:port @@ -7628,27 +8063,27 @@ readme[0-9].txt: lọc 'readme1.txt', 'readme2.txt' nhưng k PiecesBar - + Files in this piece: Các tệp trong phần này: - + File in this piece: Tập tin trong mảnh này: - + File in these pieces: Tập tin trong các mảnh này: - + Wait until metadata become available to see detailed information Chờ cho đến khi dữ liệu mô tả có sẵn để xem thông tin chi tiết - + Hold Shift key for detailed information Giữ phím Shift để xem thông tin chi tiết @@ -7661,58 +8096,58 @@ readme[0-9].txt: lọc 'readme1.txt', 'readme2.txt' nhưng k Tìm kiếm plugin - + Installed search plugins: Các plugin tìm kiếm đã cài đặt: - + Name Tên - + Version Phiên bản - + Url Url - - + + Enabled Đã bật - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. Cảnh báo: Đảm bảo tuân thủ luật bản quyền của quốc gia bạn khi tải xuống torrent từ bất kỳ công cụ tìm kiếm nào trong số này. - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> Bạn có thể lấy các gói cài thêm công cụ tìm kiếm mới tại đây: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one Cài đặt một cái mới - + Check for updates Kiểm tra cập nhật - + Close Đóng - + Uninstall Gỡ bỏ @@ -7832,98 +8267,65 @@ Các plugin đó đã bị vô hiệu hóa. Nguồn tiện ích - + Search plugin source: Tìm kiếm nguồn plugin: - + Local file Tệp cục bộ - + Web link Liên kết Web - - PowerManagement - - - qBittorrent is active - qBittorrent đang hoạt động - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - Quản lý năng lượng tìm thấy giao diện D-Bus phù hợp. Giao diện: %1 - - - - Power management error. Did not found suitable D-Bus interface. - Lỗi quản lý nguồn. Không tìm thấy giao diện D-Bus phù hợp. - - - - - - Power management error. Action: %1. Error: %2 - Lỗi quản lý nguồn. Hành động: %1. Lỗi: %2 - - - - Power management unexpected error. State: %1. Error: %2 - Lỗi quản lý nguồn không mong muốn. Giai đoạn 1. Lỗi: %2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: Các tệp sau từ torrent "%1" hỗ trợ xem trước, vui lòng chọn một trong số chúng: - + Preview Xem trước - + Name Tên - + Size Kích cỡ - + Progress Tiến độ - + Preview impossible Không thể xem trước - + Sorry, we can't preview this file: "%1". Xin lỗi, chúng tôi không thể xem trước tệp này: "%1". - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không ẩn thành kích thước của nội dung của chúng @@ -7936,27 +8338,27 @@ Các plugin đó đã bị vô hiệu hóa. Private::FileLineEdit - + Path does not exist Đường dẫn không tồn tại - + Path does not point to a directory Đường dẫn không dẫn tới một chỉ mục - + Path does not point to a file Đường dẫn không chỉ tới một tập tin - + Don't have read permission to path Không có quyền đọc ở đường dẫn - + Don't have write permission to path Không có quyền ghi ở đường dẫn @@ -7997,12 +8399,12 @@ Các plugin đó đã bị vô hiệu hóa. PropertiesWidget - + Downloaded: Đã tải về: - + Availability: Khả dụng: @@ -8017,53 +8419,53 @@ Các plugin đó đã bị vô hiệu hóa. Trao đổi - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Thời Gian Hoạt Động: - + ETA: ETA - + Uploaded: Đã tải lên: - + Seeds: Chia sẻ: - + Download Speed: Tốc độ Tải về: - + Upload Speed: Tốc Độ Tải Lên: - + Peers: Ngang hàng: - + Download Limit: Giới Hạn Tải Xuống: - + Upload Limit: Giới hạn Tải lên - + Wasted: Lãng phí: @@ -8073,193 +8475,220 @@ Các plugin đó đã bị vô hiệu hóa. Kết nối: - + Information Thông tin - + Info Hash v1: Thông Tin Băm v1: - + Info Hash v2: Thông Tin Băm v2: - + Comment: Bình luận: - + Select All Chọn Tất Cả - + Select None Không Chọn - + Share Ratio: Tỷ Lệ Chia Sẻ: - + Reannounce In: Thông báo lại Trong: - + Last Seen Complete: Lần Cuối Trông Thấy Hoàn Thành: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + Tỷ lệ / Thời gian hoạt động (tính theo tháng), cho biết mức độ phổ biến của torrent + + + + Popularity: + Phổ biến: + + + Total Size: Tổng Kích Thước: - + Pieces: Mảnh: - + Created By: Tạo Bởi: - + Added On: Thêm Lúc: - + Completed On: Hoàn Thành Lúc: - + Created On: Tạo Lúc: - + + Private: + Riêng tư: + + + Save Path: Đường Dẫn Lưu: - + Never Không bao giờ - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (có %3) - - + + %1 (%2 this session) %1 (%2 phiên này) - - + + + N/A Không áp dụng - + + Yes + Đồng Ý + + + + No + Không Đồng Ý + + + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (đã chia sẻ cho %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (tối đa %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (tổng %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 tr. bình) - - New Web seed - Web Chia Sẻ Mới + + Add web seed + Add HTTP source + Thêm hạt giống web - - Remove Web seed - Loại bỏ seed Web + + Add web seed: + Thêm hạt giống web: - - Copy Web seed URL - Sao chép URL seed Web + + + This web seed is already in the list. + Hạt giống web này đã có trong danh sách. - - Edit Web seed URL - Chỉnh sửa đường dẫn seed Web - - - + Filter files... Bộ Lọc tệp ... - + + Add web seed... + Thêm hạt giống web... + + + + Remove web seed + Loại bỏ hạt giống web + + + + Copy web seed URL + Sao chép URL hạt giống web + + + + Edit web seed URL... + Chỉnh sửa URL hạt giống web ... + + + Speed graphs are disabled Biểu đồ tốc độ bị tắt - + You can enable it in Advanced Options Bạn có thể bật nó trong Tùy Chọn Nâng Cao - - New URL seed - New HTTP source - URL chia sẻ mới - - - - New URL seed: - URL chia sẻ mới: - - - - - This URL seed is already in the list. - URL chia sẻ này đã có trong danh sách. - - - + Web seed editing Đang chỉnh sửa seed Web - + Web seed URL: Đường liên kết seed Web: @@ -8267,33 +8696,33 @@ Các plugin đó đã bị vô hiệu hóa. RSS::AutoDownloader - - + + Invalid data format. Dạng dữ liệu không hợp lệ. - + Couldn't save RSS AutoDownloader data in %1. Error: %2 Không thể lưu dữ liệu Trình tải xuống tự động RSS trong %1. Lỗi: %2 - + Invalid data format Định dạng dữ liệu không hợp lệ - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... Bài đăng RSS '%1' được chấp nhận theo quy tắc '%2'. Đang cố thêm torrent... - + Failed to read RSS AutoDownloader rules. %1 Không thể đọc các quy tắc RSS AutoDownloader. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 Không thể tải quy tắc Trình tải xuống tự động RSS. Lý do: %1 @@ -8301,22 +8730,22 @@ Các plugin đó đã bị vô hiệu hóa. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 Không tải xuống được nguồn cấp RSS tại '%1'. Lý do: %2 - + RSS feed at '%1' updated. Added %2 new articles. Đã cập nhật nguồn cấp dữ liệu RSS tại '%1'. Đã thêm %2 bài viết mới. - + Failed to parse RSS feed at '%1'. Reason: %2 Không thể phân tích cú pháp nguồn cấp dữ liệu RSS tại '%1'. Lý do: %2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. Luồng RSS tại '%1' đã được tải xuống thành công. Bắt đầu phân tích nó. @@ -8352,12 +8781,12 @@ Các plugin đó đã bị vô hiệu hóa. RSS::Private::Parser - + Invalid RSS feed. Luồng RSS không hợp lệ. - + %1 (line: %2, column: %3, offset: %4). %1 (dòng: %2, cột: %3, bù đắp: %4). @@ -8365,103 +8794,144 @@ Các plugin đó đã bị vô hiệu hóa. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" Không thể lưu cấu hình phiên RSS. Tệp: "%1". Lỗi: "%2" - + Couldn't save RSS session data. File: "%1". Error: "%2" Không thể lưu dữ liệu phiên RSS. Tệp: "%1". Lỗi: "%2" - - + + RSS feed with given URL already exists: %1. Nguồn cấp dữ liệu RSS với URL nhất định đã tồn tại: %1. - + Feed doesn't exist: %1. Luồng không tồn tại: %1. - + Cannot move root folder. Không thể di chuyển thư mục gốc. - - + + Item doesn't exist: %1. Mục không tồn tại: %1. - - Couldn't move folder into itself. - Không thể di chuyển thư mục vào chính nó. + + Can't move a folder into itself or its subfolders. + - + Cannot delete root folder. Không thể xóa thư mục gốc. - + Failed to read RSS session data. %1 Không thể đọc dữ liệu phiên RSS. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" Không thể phân tích cú pháp dữ liệu phiên RSS. Tập tin: "%1". Lỗi: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." Không tải được dữ liệu phiên RSS. Tập tin: "%1". Lỗi: "Định dạng dữ liệu không hợp lệ." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. Không thể tải nguồn cấp dữ liệu RSS. Nguồn cấp dữ liệu: "%1". Lý do: URL là bắt buộc. - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. Không thể tải nguồn cấp dữ liệu RSS. Nguồn cấp dữ liệu: "%1". Lý do: UID không hợp lệ. - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. Đã tìm thấy nguồn cấp dữ liệu RSS trùng lặp. UID: "%1". Lỗi: Cấu hình dường như bị hỏng. - + Couldn't load RSS item. Item: "%1". Invalid data format. Không thể tải mục RSS. Mục: "%1". Định dạng dữ liệu không hợp lệ. - + Corrupted RSS list, not loading it. Danh sách RSS bị hỏng, không tải được. - + Incorrect RSS Item path: %1. Đường dẫn Mục RSS không chính xác: %1. - + RSS item with given path already exists: %1. Mục RSS với đường dẫn nhất định đã tồn tại: %1. - + Parent folder doesn't exist: %1. Thư mục mẹ không tồn tại: %1. + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + Luồng không tồn tại: %1. + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + URL: + + + + Refresh interval: + Khoảng thời gian làm mới: + + + + sec + giây + + + + Default + Mặc định + + RSSWidget @@ -8481,8 +8951,8 @@ Các plugin đó đã bị vô hiệu hóa. - - + + Mark items read Đánh dấu các mục đã đọc @@ -8507,132 +8977,115 @@ Các plugin đó đã bị vô hiệu hóa. Torrent: (nhấp đúp để tải xuống) - - + + Delete Xóa - + Rename... Đổi tên... - + Rename Đổi tên - - + + Update Cập nhật - + New subscription... Đăng ký mới - - + + Update all feeds Cập nhật tất cả các nguồn cấp dữ liệu - + Download torrent Tải xuống torrent - + Open news URL Mở URL tin tức - + Copy feed URL Sao chép luồng URL - + New folder... Thư mục mới... - - Edit feed URL... - Sửa URL nguồn cấp... + + Feed options... + - - Edit feed URL - Sửa URL nguồn cấp - - - + Please choose a folder name Vui lòng chọn tên thư mục - + Folder name: Tên thư mục: - + New folder Thư mục mới - - - Please type a RSS feed URL - Vui lòng nhập URL nguồn cấp RSS - - - - - Feed URL: - URL nguồn cấp dữ liệu: - - - + Deletion confirmation Xác nhận xóa - + Are you sure you want to delete the selected RSS feeds? Bạn có chắc muốn xóa các nguồn cấp RSS đã chọn không? - + Please choose a new name for this RSS feed Vui lòng chọn một tên mới cho nguồn cấp dữ liệu RSS này - + New feed name: Tên nguồn cấp dữ liệu mới: - + Rename failed Đổi tên thất bại - + Date: Ngày: - + Feed: Luồng: - + Author: Tác giả: @@ -8640,38 +9093,38 @@ Các plugin đó đã bị vô hiệu hóa. SearchController - + Python must be installed to use the Search Engine. Để dùng Công cụ Tìm kiếm cần phải cài đặt Python. - + Unable to create more than %1 concurrent searches. Không thể tạo nhiều hơn %1 tìm kiếm đồng thời. - - + + Offset is out of range Chênh lệch nằm ngoài phạm vi - + All plugins are already up to date. Tất cả các plugin đã được cập nhật. - + Updating %1 plugins Đang cập nhật %1 plugins - + Updating plugin %1 Đang cập nhật plugin %1 - + Failed to check for plugin updates: %1 Không thể kiểm tra các bản cập nhật plugin: %1 @@ -8746,132 +9199,142 @@ Các plugin đó đã bị vô hiệu hóa. Kích cỡ: - + Name i.e: file name Tên - + Size i.e: file size Kích cỡ - + Seeders i.e: Number of full sources Máy chia sẻ - + Leechers i.e: Number of partial sources Người leech - - Search engine - Máy tìm kiếm - - - + Filter search results... Lọc kết quả tìm kiếm... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results Kết quả (đang hiện <i>%1</i> trong tổng số <i>%2</i>): - + Torrent names only Chỉ tên torrent - + Everywhere Mọi nơi - + Use regular expressions Sử dụng biểu thức chính quy - + Open download window Mở cửa sổ tải xuống - + Download Tải về - + Open description page Mở trang mô tả - + Copy Sao chép - + Name Tên - + Download link Liên kết tải xuống - + Description page URL URL trang mô tả - + Searching... Đang tìm kiếm... - + Search has finished Tìm kiếm đã kết thúc - + Search aborted Tìm kiếm bị hủy bỏ - + An error occurred during search... Đã xảy ra lỗi khi tìm kiếm... - + Search returned no results Tìm kiếm không trả về kết quả - + + Engine + Máy + + + + Engine URL + URL Máy + + + + Published On + Đã Xuất Bản Lúc + + + Column visibility Hiển thị cột - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không ẩn thành kích thước của nội dung của chúng @@ -8879,104 +9342,104 @@ Các plugin đó đã bị vô hiệu hóa. SearchPluginManager - + Unknown search engine plugin file format. Định dạng tệp plugin của công cụ tìm kiếm không xác định. - + Plugin already at version %1, which is greater than %2 Phiên bản tiện ích đã là %1, mới hơn %2 - + A more recent version of this plugin is already installed. Một phiên bản mới hơn của tiện ích này đã được cài đặt. - + Plugin %1 is not supported. Tiện ích %1 không được hỗ trợ. - - + + Plugin is not supported. Tiện ích không được hỗ trợ. - + Plugin %1 has been successfully updated. Plugin %1 đã được cập nhật thành công. - + All categories Tất cả danh mục - + Movies Phim - + TV shows Chương trình TV - + Music Âm nhạc - + Games Trò chơi - + Anime Anime - + Software Phần mềm - + Pictures Hình ảnh - + Books Sách - + Update server is temporarily unavailable. %1 Máy chủ cập nhật tạm thời không khả dụng. %1 - - + + Failed to download the plugin file. %1 Không thể tải xuống tệp plugin. %1 - + Plugin "%1" is outdated, updating to version %2 Plugin "%1" đã lỗi thời, cập nhật lên phiên bản %2 - + Incorrect update info received for %1 out of %2 plugins. Đã nhận được thông tin cập nhật không chính xác cho %1 trong số %2 plugin. - + Search plugin '%1' contains invalid version string ('%2') Plugin tìm kiếm '%1' chứa chuỗi phiên bản không hợp lệ ('%2') @@ -8986,114 +9449,145 @@ Các plugin đó đã bị vô hiệu hóa. - - - - Search Tìm Kiếm - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. Không có bất kỳ plugin tìm kiếm nào được cài đặt. Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phải của cửa sổ để cài đặt một số plugin. - + Search plugins... Tìm kiếm plugins... - + A phrase to search for. Một cụm từ để tìm kiếm. - + Spaces in a search term may be protected by double quotes. Các dấu cách trong một cụm từ tìm kiếm có thể được bảo vệ bằng dấu ngoặc kép. - + Example: Search phrase example Ví dụ: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: tìm kiếm <b>foo bar</b> - + All plugins Tất cả tiện ích - + Only enabled Chỉ được bật - + + + Invalid data format. + Dạng dữ liệu không hợp lệ. + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>: tìm kiếm <b>foo</b> và <b>bar</b> - + + Refresh + Làm mới + + + Close tab Đóng tab - + Close all tabs Đóng tất cả cửa sổ - + Select... Lựa chọn... - - - + + Search Engine Máy tìm kiếm - + + Please install Python to use the Search Engine. Hãy cài đặt Python để dùng Công cụ tìm kiếm. - + Empty search pattern Mẫu tìm kiếm trống - + Please type a search pattern first Vui lòng nhập một mẫu tìm kiếm trước tiên - + + Stop Dừng + + + SearchWidget::DataStorage - - Search has finished - Tìm kiếm đã kết thúc + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + Không tải được tìm kiếm dữ liệu trạng thái được lưu UI. Tệp: "%1". Lỗi: "%2" - - Search has failed - Tìm kiếm thất bại + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + Không tải được kết quả tìm kiếm đã lưu. Tab: "%1". Tệp: "%2". Lỗi: "%3" + + + + Failed to save Search UI state. File: "%1". Error: "%2" + Không thể lưu trạng thái UI tìm kiếm. Tệp: "%1". Lỗi: "%2" + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + Không thể lưu kết quả tìm kiếm. Tab: "%1". Tệp: "%2". Lỗi: "%3" + + + + Failed to load Search UI history. File: "%1". Error: "%2" + Không tải được tìm kiếm lịch sử UI. Tệp: "%1". Lỗi: "%2" + + + + Failed to save search history. File: "%1". Error: "%2" + Không thể lưu lịch sử tìm kiếm. Tệp: "%1". Lỗi: "%2" @@ -9206,34 +9700,34 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả - + Upload: Tải lên: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: Tải về: - + Alternative speed limits Giới hạn tốc độ thay thế @@ -9425,32 +9919,32 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả Thời gian trung bình xếp hàng: - + Connected peers: Máy ngang hàng đã kết nối: - + All-time share ratio: Tỷ lệ chia sẻ mọi lúc: - + All-time download: Tải xuống mọi lúc: - + Session waste: Phiên lãng phí: - + All-time upload: Tải lên mọi lúc: - + Total buffer size: Tổng kích cỡ bộ đệm: @@ -9465,12 +9959,12 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả Tác vụ Nhập/Xuất đang đợi thực thi: - + Write cache overload: Ghi quá tải bộ nhớ đệm: - + Read cache overload: Đọc quá tải bộ nhớ đệm: @@ -9489,51 +9983,77 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả StatusBar - + Connection status: Trạng thái kết nối: - - + + No direct connections. This may indicate network configuration problems. Không có kết nối trực tiếp. Điều này có thể cho thấy sự cố cấu hình mạng. - - + + Free space: N/A + + + + + + External IP: N/A + IP ngoài: N/A + + + + DHT: %1 nodes DHT: %1 nút - + qBittorrent needs to be restarted! qBittorrent buộc khởi động lại! - - - + + + Connection Status: Trạng Thái Kết Nối: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. Ngoại tuyến. Điều này có nghĩa rằng qBittorrent không thể tiếp nhận các tín hiệu từ cổng kết nối được chọn dành cho những kết nối đầu vào. - + Online Trực tuyến - + + Free space: + + + + + External IPs: %1, %2 + IP bên ngoài: %1, %2 + + + + External IP: %1%2 + IP ngoài: %1%2 + + + Click to switch to alternative speed limits Nhấp để chuyển sang các giới hạn tốc độ thay thế - + Click to switch to regular speed limits Bấm để chuyển sang giới hạn tốc độ thông thường @@ -9563,13 +10083,13 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả - Resumed (0) - Đã tiếp tục (0) + Running (0) + Đang chạy (0) - Paused (0) - Tạm dừng (0) + Stopped (0) + Đã dừng (0) @@ -9631,36 +10151,36 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả Completed (%1) Đã hoàn tất (%1) + + + Running (%1) + Đang chạy (%1) + - Paused (%1) - Tạm dừng (%1) + Stopped (%1) + Đã dừng (%1) + + + + Start torrents + Chạy torrents + + + + Stop torrents + Dừng torrents Moving (%1) Đang di chuyển (%1) - - - Resume torrents - Tiếp tục torrent - - - - Pause torrents - Tạm dừng torrent - Remove torrents Xóa các torrent - - - Resumed (%1) - Đã tiếp tục (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Nhấp vào nút "Tìm kiếm plugin ..." ở dưới cùng bên phả Remove unused tags Xóa thẻ không dùng - - - Resume torrents - Tiếp tục torrent - - - - Pause torrents - Tạm dừng torrent - Remove torrents Xóa các torrent - - New Tag - Thẻ mới + + Start torrents + Chạy torrents + + + + Stop torrents + Dừng torrents Tag: Thẻ: + + + Add tag + Thêm thẻ + Invalid tag name @@ -9903,32 +10423,32 @@ Vui lòng chọn một tên khác và thử lại. TorrentContentModel - + Name Tên - + Progress Tiến độ - + Download Priority Ưu Tiên Tải Về - + Remaining Còn lại - + Availability Khả dụng - + Total Size Tổng Kích Cỡ @@ -9973,98 +10493,98 @@ Vui lòng chọn một tên khác và thử lại. TorrentContentWidget - + Rename error Lỗi đổi tên - + Renaming Đổi tên - + New name: Tên mới: - + Column visibility Khả năng hiển thị của cột - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không bị ẩn thành kích thước nội dung của chúng - + Open Mở - + Open containing folder Mở thư mục chứa - + Rename... Đổi tên... - + Priority Ưu tiên - - + + Do not download Không tải về - + Normal Bình thường - + High Cao - + Maximum Tối đa - + By shown file order Theo tứ tự hiển thị tệp - + Normal priority Ưu tiên bình thường - + High priority Ưu tiên cao - + Maximum priority Ưu tiên tối đa - + Priority by shown file order Ưu tiên hiển thị tệp theo thứ tự @@ -10072,19 +10592,19 @@ Vui lòng chọn một tên khác và thử lại. TorrentCreatorController - + Too many active tasks - + Quá nhiều nhiệm vụ đang hoạt động - + Torrent creation is still unfinished. - + Tạo torrent vẫn chưa hoàn thành. - + Torrent creation failed. - + Tạo torrent thất bại. @@ -10111,13 +10631,13 @@ Vui lòng chọn một tên khác và thử lại. - + Select file Chọn tệp - + Select folder Chọn thư mục @@ -10192,87 +10712,83 @@ Vui lòng chọn một tên khác và thử lại. Trường - + You can separate tracker tiers / groups with an empty line. Bạn có thể phân biệt các hạng / nhóm máy theo theo dõi bằng một hàng rỗng. - + Web seed URLs: URL Web chia sẻ - + Tracker URLs: URL máy theo dõi: - + Comments: Bình luận: - + Source: Nguồn: - + Progress: Tiến độ: - + Create Torrent Tạo Torrent - - + + Torrent creation failed Tạo Torrent thất bại - + Reason: Path to file/folder is not readable. Lí do: Đường dẫn đến tập tin/thư mục không thể đọc được. - + Select where to save the new torrent Chọn nơi lưu torrent mới - + Torrent Files (*.torrent) Tệp Torrent (*.torrent) - Reason: %1 - Nguyên nhân: %1 - - - + Add torrent to transfer list failed. Thêm torrent vào danh sách trao đổi thất bại. - + Reason: "%1" Lý do: "%1" - + Add torrent failed Thêm torrent thất bại - + Torrent creator Trình tạo Torrent - + Torrent created: Torrent đã tạo: @@ -10280,32 +10796,32 @@ Vui lòng chọn một tên khác và thử lại. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 Không tải được cấu hình Thư Mục Đã Xem. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" Không thể phân tích cú pháp cấu hình Thư Mục Đã Xem từ %1. Lỗi: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." Không tải được cấu hình Thư Mục Đã Xem từ %1. Lỗi: "Định dạng dữ liệu không hợp lệ." - + Couldn't store Watched Folders configuration to %1. Error: %2 Không thể lưu trữ cấu hình Thư mục đã xem vào %1. Lỗi: %2 - + Watched folder Path cannot be empty. Đường dẫn thư mục Đã Xem không được để trống. - + Watched folder Path cannot be relative. Đường dẫn thư mục Đã Xem không thể là tương đối. @@ -10313,44 +10829,31 @@ Vui lòng chọn một tên khác và thử lại. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 URI Magnet không hợp lệ. URI: %1. Lý do: %2 - + Magnet file too big. File: %1 Tệp nam châm quá lớn. Tệp: %1 - + Failed to open magnet file: %1 Không mở được tệp nam châm: %1 - + Rejecting failed torrent file: %1 Từ chối tệp torrent thất bại: %1 - + Watching folder: "%1" Thư mục đang xem: "%1" - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - Không thể cấp phát bộ nhớ khi đọc tệp. Tập tin: "%1". Lỗi: "%2" - - - - Invalid metadata - Dữ liệu mô tả không hợp lệ - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Vui lòng chọn một tên khác và thử lại. Sử dụng một đường dẫn khác cho torrent chưa hoàn thành - + Category: Danh mục: - - Torrent speed limits - Giới hạn tốc độ torrent + + Torrent Share Limits + Giới Hạn Chia Sẻ Torrent - + Download: Tải về: - - + + - - + + Torrent Speed Limits + Giới Hạn Tốc Độ Torrent + + + + KiB/s KiB/s - + These will not exceed the global limits Những cái này sẽ không vượt quá giới hạn chung - + Upload: Tải lên: - - Torrent share limits - Giới hạn chia sẻ torrent - - - - Use global share limit - Sử dụng giới hạn chung - - - - Set no share limit - Không đặt giới hạn chia sẻ - - - - Set share limit to - Đặt giới hạn chia sẻ thành - - - - ratio - tỉ lệ - - - - total minutes - tổng số phút - - - - inactive minutes - phút không hoạt động - - - + Disable DHT for this torrent Tắt DHT cho torrent này - + Download in sequential order Tải xuống theo thứ tự tuần tự - + Disable PeX for this torrent Tắt PeX cho torrent này - + Download first and last pieces first Tải xuống phần đầu tiên và phần cuối cùng trước tiên - + Disable LSD for this torrent Tắt LSD cho torrent này - + Currently used categories Danh mục được sử dụng hiện tại - - + + Choose save path Chọn đường dẫn lưu - + Not applicable to private torrents Không áp được được với torrent riêng tư - - - No share limit method selected - Không có phương thức giới hạn chia sẻ nào được chọn - - - - Please select a limit method first - Vui lòng chọn một cách giới hạn trước tiên - TorrentShareLimitsWidget - - - + + + + Default - Mặc định + Mặc định + + + + + + Unlimited + Không giới hạn - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + Đặt là + + + + Seeding time: + Thời gian Seeding: + + + + + + + + min minutes - phút + phút - + Inactive seeding time: - + Thời gian seeding không hoạt động: - + + Action when the limit is reached: + Hành động khi đạt đến giới hạn: + + + + Stop torrent + Dừng torrent + + + + Remove torrent + Loại bỏ torrent + + + + Remove torrent and its content + Xóa torrent và xóa nội dung của nó + + + + Enable super seeding for torrent + Bật siêu chia sẻ cho torrent + + + Ratio: - + Tỉ lệ: @@ -10558,32 +11049,32 @@ Vui lòng chọn một tên khác và thử lại. Thẻ torrent - - New Tag - Thẻ mới + + Add tag + Thêm thẻ - + Tag: Thẻ: - + Invalid tag name Tên thẻ không hợp lệ - + Tag name '%1' is invalid. Tên thẻ '%1' không hợp lệ. - + Tag exists Thẻ tồn tại - + Tag name already exists. Tên thẻ đã tồn tại. @@ -10591,115 +11082,130 @@ Vui lòng chọn một tên khác và thử lại. TorrentsController - + Error: '%1' is not a valid torrent file. Lỗi: '%1' không phải là tệp torrent hợp lệ. - + Priority must be an integer Độ Ưu tiên phải là một số nguyên - + Priority is not valid Ưu tiên không hợp lệ - + Torrent's metadata has not yet downloaded Dữ liệu mô tả torrent chưa được tải xuống - + File IDs must be integers ID tệp phải là số nguyên - + File ID is not valid ID tệp không hợp lệ - - - - + + + + Torrent queueing must be enabled Hàng đợi torrent phải được bật - - + + Save path cannot be empty Đường dẫn lưu không được để trống` - - + + Cannot create target directory Không thể tạo thư mục đích - - + + Category cannot be empty Danh mục không được để trống - + Unable to create category Không thể tạo danh mục - + Unable to edit category Không thể sửa danh mục được - + Unable to export torrent file. Error: %1 Không thể xuất tệp torrent. Lỗi: %1 - + Cannot make save path Không thể tạo đường dẫn lưu - + + "%1" is not a valid URL + "%1" không phải là URL hợp lệ + + + + URL scheme must be one of [%1] + Sơ đồ URL phải là một trong [%1] + + + 'sort' parameter is invalid tham số 'sort' không hợp lệ - + + "%1" is not an existing URL + "%1" không phải là một URL hiện có + + + "%1" is not a valid file index. "%1" không phải là một chỉ mục tệp hợp lệ. - + Index %1 is out of bounds. Chỉ mục %1 nằm ngoài giới hạn. - - + + Cannot write to directory Không thể viết vào chỉ mục - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI Đặt vị trí: di chuyển "%1", từ "%2" đến "%3" - + Incorrect torrent name Tên torrent không chính xác - - + + Incorrect category name Tên danh mục không chính xác @@ -10730,196 +11236,191 @@ Vui lòng chọn một tên khác và thử lại. TrackerListModel - + Working Đang làm việc - + Disabled Đã tắt - + Disabled for this torrent Đã tắt cho torrent này - + This torrent is private Torrent này có dạng riêng tư - + N/A Không - + Updating... Đang cập nhật... - + Not working Không làm việc - + Tracker error Lỗi máy theo dõi - + Unreachable Không thể truy cập - + Not contacted yet Chưa liên hệ - - Invalid status! + + Invalid state! Trạng thái không hợp lệ! - - URL/Announce endpoint - URL/Thông báo điểm cuối + + URL/Announce Endpoint + Đích đến URL/Thông Báo - + + BT Protocol + Giao Thức BT + + + + Next Announce + Thông Báo Kế Tiếp + + + + Min Announce + Phút Thông Báo + + + Tier Hạng - - Protocol - Giao thức - - - + Status Trạng thái - + Peers Máy ngang hàng - + Seeds Chia sẻ - + Leeches Tải về - + Times Downloaded Số Lần Tải Về - + Message Thông báo - - - Next announce - Thông báo tiếp theo - - - - Min announce - Thông báo tối thiểu - - - - v%1 - - TrackerListWidget - + This torrent is private Torrent này có dạng riêng tư - + Tracker editing Sửa máy theo dõi - + Tracker URL: URL máy theo dõi: - - + + Tracker editing failed Sửa máy theo dõi thất bại - + The tracker URL entered is invalid. URL máy theo dõi đã nhập không hợp lệ. - + The tracker URL already exists. URL máy theo dõi đã tồn tại. - + Edit tracker URL... Chỉnh sửa URL máy theo dõi... - + Remove tracker Xóa máy theo dõi - + Copy tracker URL Sao chép URL máy theo dõi - + Force reannounce to selected trackers Buộc thông báo lại với các máy theo dõi đã chọn - + Force reannounce to all trackers Buộc thông báo lại với tất cả máy theo dõi - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không ẩn thành kích thước của nội dung của chúng - + Add trackers... Thêm máy theo dõi... - + Column visibility Khả năng hiển thị của cột @@ -10937,37 +11438,37 @@ Vui lòng chọn một tên khác và thử lại. Danh sách các tracker để thêm vào (từng dòng một): - + µTorrent compatible list URL: URL danh sách tương thích với µTorrent: - + Download trackers list Tải xuống danh sách máy theo dõi - + Add Thêm - + Trackers list URL error Lỗi URL danh sách máy theo dõi - + The trackers list URL cannot be empty URL danh sách máy theo dõi không được để trống - + Download trackers list error Lỗi tải xuống danh sách máy theo dõi - + Error occurred when downloading the trackers list. Reason: "%1" Đã xảy ra lỗi khi tải xuống danh sách máy theo dõi. Lý do: "%1" @@ -10975,62 +11476,62 @@ Vui lòng chọn một tên khác và thử lại. TrackersFilterWidget - + Warning (%1) Cảnh báo (%1) - + Trackerless (%1) Không máy theo dõi (%1) - + Tracker error (%1) Lỗi máy theo dõi (%1) - + Other error (%1) Lỗi khác (%1) - + Remove tracker Xóa máy theo dõi - - Resume torrents - Tiếp tục torrent + + Start torrents + Chạy torrents - - Pause torrents - Tạm dừng torrent + + Stop torrents + Dừng torrents - + Remove torrents Xóa các torrent - + Removal confirmation Xác nhận xóa - + Are you sure you want to remove tracker "%1" from all torrents? Bạn có chắc muốn xóa máy theo dõi "%1" khỏi tất cả torrent không? - + Don't ask me again. Đừng hỏi tôi nữa. - + All (%1) this is for the tracker filter Tất cả (%1) @@ -11039,7 +11540,7 @@ Vui lòng chọn một tên khác và thử lại. TransferController - + 'mode': invalid argument 'chế độ': đối số không hợp lệ @@ -11131,11 +11632,6 @@ Vui lòng chọn một tên khác và thử lại. 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. Kiểm tra dữ liệu tiếp tục - - - Paused - Tạm dừng - Completed @@ -11159,220 +11655,252 @@ Vui lòng chọn một tên khác và thử lại. Bị lỗi - + Name i.e: torrent name Tên - + Size i.e: torrent size Kích cỡ - + Progress % Done Tiến độ - + + Stopped + Đã dừng lại + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) Trạng thái - + Seeds i.e. full sources (often untranslated) Chia sẻ - + Peers i.e. partial sources (often untranslated) Ngang hàng - + Down Speed i.e: Download speed Tốc độ Tải về - + Up Speed i.e: Upload speed Tốc độ Tải lên - + Ratio Share ratio Tỉ Lệ - + + Popularity + Phổ biến + + + ETA i.e: Estimated Time of Arrival / Time left Thời gian dự kiến - + Category Danh mục - + Tags Thẻ - + Added On Torrent was added to transfer list on 01/01/2010 08:00 Thêm Lúc - + Completed On Torrent was completed on 01/01/2010 08:00 Hoàn Thành Lúc - + Tracker Máy theo dõi - + Down Limit i.e: Download limit Giới hạn Tải về - + Up Limit i.e: Upload limit Giới hạn Tải lên - + Downloaded Amount of data downloaded (e.g. in MB) Đã Tải về - + Uploaded Amount of data uploaded (e.g. in MB) Đã tải lên - + Session Download Amount of data downloaded since program open (e.g. in MB) Tải xuống phiên - + Session Upload Amount of data uploaded since program open (e.g. in MB) Tải lên phiên - + Remaining Amount of data left to download (e.g. in MB) Còn lại - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) Thời Gian Hoạt Động - + + Yes + Đúng + + + + No + Không + + + Save Path Torrent save path Đường Dẫn Lưu - + Incomplete Save Path Torrent incomplete save path Đường Dẫn Lưu Chưa Hoàn Tất - + Completed Amount of data completed (e.g. in MB) Đã hoàn tất - + Ratio Limit Upload share ratio limit Giới Hạn Tỷ Lệ - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole Lần Cuối Trông Thấy Hoàn Thành - + Last Activity Time passed since a chunk was downloaded/uploaded Hoạt động cuối - + Total Size i.e. Size including unwanted data Tổng Kích Thước - + Availability The number of distributed copies of the torrent Khả dụng - + Info Hash v1 i.e: torrent info hash v1 Thông Tin Băm v1: - + Info Hash v2 i.e: torrent info hash v2 Thông Tin Băm v2 - + Reannounce In Indicates the time until next trackers reannounce Thông báo lại Trong - - + + Private + Flags private torrents + Riêng tư + + + + Ratio / Time Active (in months), indicates how popular the torrent is + Tỷ lệ / Thời gian hoạt động (tính theo tháng), cho biết mức độ phổ biến của torrent + + + + + N/A Không áp dụng - + %1 ago e.g.: 1h 20m ago %1 trước - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (đã chia sẻ cho %2) @@ -11381,339 +11909,319 @@ Vui lòng chọn một tên khác và thử lại. TransferListWidget - + Column visibility Khả năng hiển thị của cột - + Recheck confirmation Kiểm tra lại xác nhận - + Are you sure you want to recheck the selected torrent(s)? Bạn có chắc muốn kiểm tra lại (các)torrent đã chọn? - + Rename Đổi tên - + New name: Tên mới: - + Choose save path Chọn đường dẫn lưu - - Confirm pause - Xác nhận tạm dừng - - - - Would you like to pause all torrents? - Bạn có muốn tạm dừng tất cả các torrent? - - - - Confirm resume - Xác nhận tiếp tục - - - - Would you like to resume all torrents? - Bạn có muốn tiếp tục tất cả các torrent không? - - - + Unable to preview Không thể xem trước - + The selected torrent "%1" does not contain previewable files Torrent đã chọn "%1" không chứa các tệp có thể xem trước - + Resize columns Đổi kích cỡ cột - + Resize all non-hidden columns to the size of their contents Thay đổi kích thước tất cả các cột không ẩn thành kích thước của nội dung của chúng - + Enable automatic torrent management Bật quản lý torrent tự động - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. Bạn có chắc chắn muốn bật Quản lý Torrent Tự động cho (các) torrent đã chọn không? Nó có thể được đổi chỗ. - - Add Tags - Thêm thẻ - - - + Choose folder to save exported .torrent files Chọn thư mục để lưu các tệp .torrent đã xuất - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" Xuất tệp .torrent thất bại. Torrent: "%1". Đường dẫn lưu: "%2". Lý do: "%3" - + A file with the same name already exists Tệp có cùng tên đã tồn tại - + Export .torrent file error Lỗi xuất tệp .torrent - + Remove All Tags Xóa Hết Các Thẻ - + Remove all tags from selected torrents? Xóa hết thẻ khỏi torrent đã chọn? - + Comma-separated tags: Các thẻ cách nhau bằng dấu phẩy: - + Invalid tag Thẻ không hợp lệ - + Tag name: '%1' is invalid Tên thẻ '%1' không hợp lệ - - &Resume - Resume/start the torrent - Tiếp tục - - - - &Pause - Pause the torrent - Tạm ngừng - - - - Force Resu&me - Force Resume/start the torrent - Buộc Tiếp Tục - - - + Pre&view file... Xem trước tệp... - + Torrent &options... Tùy chọn t&orrent... - + Open destination &folder Mở thư mục đích - + Move &up i.e. move up in the queue Di ch&uyển lên - + Move &down i.e. Move down in the queue &Di chuyển xuống - + Move to &top i.e. Move to top of the queue Di chuyển lên đầu - + Move to &bottom i.e. Move to bottom of the queue Di chuyển xuống cuối - + Set loc&ation... Đặt vị trí... - + Force rec&heck Buộc kiểm tra lại - + Force r&eannounce Buộc thông báo lại - + &Magnet link Liên kết Magnet - + Torrent &ID Torrent &ID - + &Comment &Bình luận - + &Name Tê&n - + Info &hash v1 Thông tin băm v1 - + Info h&ash v2 Thông tin băm v2 - + Re&name... Đổi tê&n - + Edit trac&kers... Sửa máy theo dõi... - + E&xport .torrent... &Xuất .torrent - + Categor&y Danh mục - + &New... New category... Mới... - + &Reset Reset category Đặt lại - + Ta&gs Thẻ - + &Add... Add / assign multiple tags... Thêm - + &Remove All Remove all tags Xoá Hết - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + Không thể buộc thông báo lại nếu torrent Đã Dừng/Xếp Hàng/Lỗi/Đang Kiểm Tra + + + &Queue Xếp hàng - + &Copy Sao &Chép - + Exported torrent is not necessarily the same as the imported Torrent đã xuất không nhất thiết phải giống với torrent đã nhập - + Download in sequential order Tải về theo thứ tự tuần tự - + + Add tags + Thêm thẻ + + + Errors occurred when exporting .torrent files. Check execution log for details. Đã xảy ra lỗi khi xuất tệp .torrent. Kiểm tra nhật ký thực thi để biết chi tiết. - + + &Start + Resume/start the torrent + Chạy + + + + Sto&p + Stop the torrent + Dừng + + + + Force Star&t + Force Resume/start the torrent + Buộc Chạy + + + &Remove Remove the torrent Xóa - + Download first and last pieces first Tải về phần đầu và phần cuối trước - + Automatic Torrent Management Quản lý Torrent tự động - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category Chế độ tự động có nghĩa là các thuộc tính torrent khác nhau (VD: đường dẫn lưu) sẽ được quyết định bởi danh mục liên quan - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - Không thể buộc thông báo lại nếu torrent bị Tạm dừng/Xếp hàng đợi/ Lỗi/Đang kiểm tra - - - + Super seeding mode Chế độ siêu chia sẻ @@ -11758,28 +12266,28 @@ Vui lòng chọn một tên khác và thử lại. ID Biểu tượng - + UI Theme Configuration. Cấu hình chủ đề giao diện người dùng. - + The UI Theme changes could not be fully applied. The details can be found in the Log. Không thể áp dụng đầy đủ các thay đổi Giao diện UI. Chi tiết có thể tìm trong Nhật ký. - + Couldn't save UI Theme configuration. Reason: %1 Không thể lưu cấu hình Giao diện UI. Lý do: %1 - - + + Couldn't remove icon file. File: %1. Không thể xóa tệp biểu tượng. Tệp: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. Không thể sao chép tệp biểu tượng. Nguồn: %1. Đích: %2. @@ -11787,7 +12295,12 @@ Vui lòng chọn một tên khác và thử lại. UIThemeManager - + + Set app style failed. Unknown style: "%1" + Đặt kiểu dáng ứng dụng thất bại. Không rõ kiểu: "%1" + + + Failed to load UI theme from file: "%1" Tải Giao diện UI từ tệp thất bại: "%1" @@ -11818,20 +12331,21 @@ Vui lòng chọn một tên khác và thử lại. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" Di chuyển tùy chọn thất bại: WebUI https, tệp: "%1", lỗi: "%2" - + Migrated preferences: WebUI https, exported data to file: "%1" Tùy chọn đã di chuyển: WebUI https, dữ liệu được xuất sang tệp: "%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". Tìm thấy giá trị không hợp lệ trong tệp cấu hình, trả về mặc định. Khóa: "%1". Giá trị không hợp lệ: "%2". @@ -11839,32 +12353,32 @@ Vui lòng chọn một tên khác và thử lại. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" Đã tìm thấy Python có thể thực thi được. Tên: "%1". Phiên bản: "%2" - + Failed to find Python executable. Path: "%1". Không tìm thấy tệp thực thi Python. Đường dẫn: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" Không tìm thấy tệp thực thi `python3` trong biến môi trường PATH. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" Không tìm thấy tệp thực thi `python` trong biến môi trường PATH. PATH: "%1" - + Failed to find `python` executable in Windows Registry. Không tìm thấy tệp thực thi `python` trong Windows Registry. - + Failed to find Python executable Không thể tìm thấy Python có thể thực thi được @@ -11956,72 +12470,72 @@ Vui lòng chọn một tên khác và thử lại. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. Tên cookie phiên không được chấp nhận được chỉ định: '%1'. Mặc định một được sử dụng. - + Unacceptable file type, only regular file is allowed. Loại tệp không được chấp nhận, chỉ cho phép tệp thông thường. - + Symlinks inside alternative UI folder are forbidden. Liên kết biểu tượng bên trong thư mục giao diện người dùng thay thế bị cấm. - + Using built-in WebUI. Sử dụng WebUI tích hợp. - + Using custom WebUI. Location: "%1". Sử dụng WebUI tùy chỉnh. Vị trí: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. Bản dịch WebUI cho ngôn ngữ đã chọn (%1) đã được tải thành công. - + Couldn't load WebUI translation for selected locale (%1). Không thể tải bản dịch WebUI cho ngôn ngữ đã chọn (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Thiếu dấu phân tách ':' trong tiêu đề HTTP tùy chỉnh WebUI: "%1" - + Web server error. %1 Lỗi máy chủ web. %1 - + Web server error. Unknown error. Lỗi máy chủ web. Không rõ lỗi. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: Tiêu đề nguồn gốc & Nguồn gốc mục tiêu không khớp! IP nguồn: '%1'. Tiêu đề gốc: '%2'. Nguồn gốc mục tiêu: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: Tiêu đề giới thiệu và nguồn gốc mục tiêu không khớp! IP nguồn: '%1'. Tiêu đề giới thiệu: '%2'. Nguồn gốc mục tiêu: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI: Tiêu đề máy chủ lưu trữ không hợp lệ, cổng không khớp. Yêu cầu IP nguồn: '%1'. Cổng máy chủ: '%2'. Tiêu đề Máy chủ đã nhận: '%3' - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI: Tiêu đề máy chủ lưu trữ không hợp lệ. Yêu cầu IP nguồn: '%1'. Tiêu đề Máy chủ đã nhận: '%2' @@ -12029,125 +12543,133 @@ Vui lòng chọn một tên khác và thử lại. WebUI - + Credentials are not set Thông tin xác thực chưa được đặt - + WebUI: HTTPS setup successful WebUI: Thiết lập HTTPS thành công - + WebUI: HTTPS setup failed, fallback to HTTP WebUI: Thiết lập HTTPS không thành công, chuyển sang HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI: Hiện đang nghe trên IP: %1, cổng: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Không thể liên kết với IP: %1, cổng: %2. Lý do: %3 + + fs + + + Unknown error + Không rõ lỗi + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /giây - + %1s e.g: 10 seconds - %1phút {1s?} + %1s - + %1m e.g: 10 minutes %1phút - + %1h %2m e.g: 3 hours 5 minutes %1 giờ %2 phút - + %1d %2h e.g: 2 days 10 hours %1d %2h - + %1y %2d e.g: 2 years 10 days %1năm %2ngày - - + + 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 lập tức bởi vì toàn bộ tải xuống đều đã hoàn tất. - + < 1m < 1 minute < 1phút diff --git a/src/lang/qbittorrent_zh_CN.ts b/src/lang/qbittorrent_zh_CN.ts index 4ceffe415..33ac2337a 100644 --- a/src/lang/qbittorrent_zh_CN.ts +++ b/src/lang/qbittorrent_zh_CN.ts @@ -14,75 +14,75 @@ 关于 - + Authors 作者 - + Current maintainer 目前的维护者 - + Greece 希腊 - - + + Nationality: 国籍: - - + + E-mail: E-mail: - - + + Name: 姓名: - + Original author 原始作者 - + France 法国 - + Special Thanks 致谢 - + Translators 译者 - + License 许可 - + Software Used 使用的软件 - + qBittorrent was built with the following libraries: qBittorrent 的构建使用了以下库: - + Copy to clipboard 复制到剪贴板 @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - 版权所有 %1 2006-2024 The qBittorrent project + Copyright %1 2006-2025 The qBittorrent project + 版权所有 %1 2006-2025 The qBittorrent project @@ -166,15 +166,10 @@ 保存在 - + Never show again 不再显示 - - - Torrent settings - Torrent 设置 - Set as default category @@ -191,12 +186,12 @@ 开始 Torrent - + Torrent information Torrent 信息 - + Skip hash check 跳过哈希校验 @@ -205,6 +200,11 @@ Use another path for incomplete torrent 对不完整的 Torrent 使用另一个路径 + + + Torrent options + Torrent 选项 + Tags: @@ -231,75 +231,75 @@ 停止条件: - - + + None - - + + Metadata received 已收到元数据 - + Torrents that have metadata initially will be added as stopped. - + 最开始就有元数据的 Torrent 文件被添加后将处在停止状态 - - + + Files checked 文件已被检查 - + Add to top of queue 添加到队列顶部 - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog 勾选后,无论选项对话框的“下载”页面如何设置,.torrent 文件都不不会被删除 - + Content layout: 内容布局: - + Original 原始 - + Create subfolder 创建子文件夹 - + Don't create subfolder 不创建子文件夹 - + Info hash v1: 信息哈希值 v1: - + Size: 大小: - + Comment: 注释: - + Date: 日期: @@ -329,151 +329,147 @@ 记住上次使用的保存路径 - + Do not delete .torrent file 不删除 .torrent 文件 - + Download in sequential order 按顺序下载 - + Download first and last pieces first 先下载首尾文件块 - + Info hash v2: 信息哈希值 v2: - + Select All 全选 - + Select None 全不选 - + Save as .torrent file... 保存为 .torrent 文件... - + I/O Error I/O 错误 - + Not Available This comment is unavailable 不可用 - + Not Available This date is unavailable 不可用 - + Not available 不可用 - + Magnet link 磁力链接 - + Retrieving metadata... 正在检索元数据... - - + + Choose save path 选择保存路径 - + No stop condition is set. 未设置停止条件。 - + Torrent will stop after metadata is received. 接收到元数据后,Torrent 将停止。 - Torrents that have metadata initially aren't affected. - 不会影响起初就有元数据的 Torrent。 - - - + Torrent will stop after files are initially checked. 第一次文件检查完成后,Torrent 将停止。 - + This will also download metadata if it wasn't there initially. 如果最开始不存在元数据,勾选此选项也会下载元数据。 - - + + N/A N/A - + %1 (Free space on disk: %2) %1(剩余磁盘空间:%2) - + Not available This size is unavailable. 不可用 - + Torrent file (*%1) Torrent 文件 (*%1) - + Save as torrent file 另存为 Torrent 文件 - + Couldn't export torrent metadata file '%1'. Reason: %2. 无法导出 Torrent 元数据文件 “%1”。原因:%2。 - + Cannot create v2 torrent until its data is fully downloaded. 在完全下载数据之前无法创建 v2 Torrent。 - + Filter files... 过滤文件... - + Parsing metadata... 正在解析元数据... - + Metadata retrieval complete 元数据检索完成 @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" 正在下载 Torrent... 来源:“%1” - + Failed to add torrent. Source: "%1". Reason: "%2" 添加 Torrent 失败。来源:“%1”。原因:“%2” - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - 检测到尝试添加重复 Torrent 文件。来源:%1。现有 Torrent 文件:%2。结果:%3 - - - + Merging of trackers is disabled 合并 Tracker 已禁用 - + Trackers cannot be merged because it is a private torrent 因为这是一个私有 Torrent,所以无法合并 Tracker - + Trackers are merged from new source 来自新来源的 Tracker 已经合并 + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + 检测到尝试添加重复的种子文件。来源:%1.。现有种子:"%2"。种子 infohash 值:%3。结果:%4 + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent 分享限制 + Torrent 分享限制 @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion 完成后重新校验 Torrent - - + + ms milliseconds 毫秒 - + Setting 设置 - + Value Value set for this setting - + (disabled) (禁用) - + (auto) (自动) - + + min minutes 分钟 - + All addresses 所有地址 - + qBittorrent Section qBittorrent 相关 - - + + Open documentation 打开文档 - + All IPv4 addresses 所有 IPv4 地址 - + All IPv6 addresses 所有 IPv6 地址 - + libtorrent Section libtorrent 相关 - + Fastresume files 快速恢复文件 - + SQLite database (experimental) SQLite 数据库(实验性功能) - + Resume data storage type (requires restart) 恢复数据存储类型(需要重新启动) - + Normal 正常 - + Below normal 低于正常 - + Medium 中等 - + Low - + Very low 极低 - + Physical memory (RAM) usage limit 物理内存(RAM)使用限制 - + Asynchronous I/O threads 异步 I/O 线程数 - + Hashing threads 散列线程 - + File pool size 文件池大小 - + Outstanding memory when checking torrents 校验时内存使用扩增量 - + Disk cache 磁盘缓存 - - - - + + + + + s seconds - + Disk cache expiry interval 磁盘缓存到期间隔 - + Disk queue size 磁盘队列大小 - - + + Enable OS cache 启用操作系统缓存 - + Coalesce reads & writes 合并读写 - + Use piece extent affinity 启用相连文件块下载模式 - + Send upload piece suggestions 发送分块上传建议 - - - - + + + + + 0 (disabled) 0(禁用) - + Save resume data interval [0: disabled] How often the fastresume file is saved. 保存恢复数据的间隔 [0:禁用] - + Outgoing ports (Min) [0: disabled] 传出端口(最低)[0:禁用] - + Outgoing ports (Max) [0: disabled] 传出端口(最高)[0:禁用] - + 0 (permanent lease) 0(永久租约) - + UPnP lease duration [0: permanent lease] UPnP 租期 [0:永久 ] - + Stop tracker timeout [0: disabled] 停止 Tracker 超时 [0:禁用] - + Notification timeout [0: infinite, -1: system default] 通知超时 [0:无限,-1:系统默认值] - + Maximum outstanding requests to a single peer 单一 peer 的最大未完成请求数 - - - - - + + + + + KiB KiB - + (infinite) (无限) - + (system default) (系统默认) - + + Delete files permanently + 永久删除文件 + + + + Move files to trash (if possible) + 移动文件到回收站(如果可能) + + + + Torrent content removing mode + Torrent 内容删除模式 + + + This option is less effective on Linux 这个选项在 Linux 上没那么有效 - + Process memory priority 处理内存优先级 - + Bdecode depth limit Bdecode 深度限制 - + Bdecode token limit Bdecode 令牌限制 - + Default 默认 - + Memory mapped files 内存映射文件 - + POSIX-compliant 遵循 POSIX - + + Simple pread/pwrite + 简单 pread/pwrite + + + Disk IO type (requires restart) 磁盘 IO 类型(需要重启) - - + + Disable OS cache 禁用操作系统缓存 - + Disk IO read mode 磁盘 IO 读取模式 - + Write-through 连续写入 - + Disk IO write mode 磁盘 IO 写入模式 - + Send buffer watermark 发送缓冲区上限 - + Send buffer low watermark 发送缓冲区下限 - + Send buffer watermark factor 发送缓冲区增长系数 - + Outgoing connections per second 每秒传出连接数 - - + + 0 (system default) 0(系统默认) - + Socket send buffer size [0: system default] 套接字发送缓存大小 [0:系统默认值] - + Socket receive buffer size [0: system default] 套接字接收缓存大小 [0:系统默认值] - + Socket backlog size 套接字 backlog 大小 - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + 保存统计数据间隔 [0:停用] + + + .torrent file size limit .torrent 文件大小上限 - + Type of service (ToS) for connections to peers 与 peers 连接的服务类型(ToS) - + Prefer TCP 优先使用 TCP - + Peer proportional (throttles TCP) 按用户比重 (抑制 TCP) - + + Internal hostname resolver cache expiry interval + 内部主机名解析器缓存过期间隔 + + + Support internationalized domain name (IDN) 支持国际化域名(IDN) - + Allow multiple connections from the same IP address 允许来自同一 IP 地址的多个连接 - + Validate HTTPS tracker certificates 验证 HTTPS tracker 证书 - + Server-side request forgery (SSRF) mitigation 服务器端请求伪造(SSRF)缓解 - + Disallow connection to peers on privileged ports 禁止连接到特权端口上的 peer - + It appends the text to the window title to help distinguish qBittorent instances - + 它将文本附加到窗口标题来区分不同的 qBittorrent 实例 - + Customize application instance name - + 定制程序实例名 - + It controls the internal state update interval which in turn will affect UI updates 它控制内部状态更新间隔,此间隔会影响用户界面更新 - + Refresh interval 刷新间隔 - + Resolve peer host names 解析用户主机名 - + IP address reported to trackers (requires restart) 报告给 Tracker 的 IP 地址(需要重启) - + + Port reported to trackers (requires restart) [0: listening port] + 报告给 Trackers 的端口 (需要重启)[0:监听端口] + + + Reannounce to all trackers when IP or port changed 当 IP 或端口更改时重新通知所有 Tracker - + Enable icons in menus 启用菜单中的图标 - + + Attach "Add new torrent" dialog to main window + 将“添加新 torrent 文件”对话框附到主窗口 + + + Enable port forwarding for embedded tracker 对内置 Tracker 启用端口转发 - + Enable quarantine for downloaded files 开启已下载文件隔离 - + Enable Mark-of-the-Web (MOTW) for downloaded files 开启已下载文件 Mark-of-the-Web (MOTW) - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + 影响证书验证和非 torrent 协议活动(如 RSS 源、程序更新、torrent 文件、geoip 数据库等) + + + + Ignore SSL errors + 忽略 SSL 错误 + + + (Auto detect if empty) (假如为空,自动检测) - + Python executable path (may require restart) Python 可执行路径(可能需要重新启动) - + + Start BitTorrent session in paused state + 启动处于暂停状态下的 BitTorrent 会话 + + + + sec + seconds + + + + + -1 (unlimited) + -1 (无限) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent 会话关闭超时 [-1:无限制] + + + Confirm removal of tracker from all torrents 确认从所有 Torrent 中移除 Tracker - + Peer turnover disconnect percentage peer 进出断开百分比 - + Peer turnover threshold percentage peer 进出阈值百分比 - + Peer turnover disconnect interval peer 进出断开间隔 - + Resets to default if empty 如果为空,则重置为默认值 - + DHT bootstrap nodes DHT Bootstrap 节点 - + I2P inbound quantity I2P 传入量 - + I2P outbound quantity I2P 传出量 - + I2P inbound length I2P 传入长度 - + I2P outbound length I2P 传出长度 - + Display notifications 显示通知 - + Display notifications for added torrents 显示已添加 Torrent 的通知 - + Download tracker's favicon 下载 Tracker 的网站图标 - + Save path history length 保存路径的历史记录条目数 - + Enable speed graphs 启用速度图表 - + Fixed slots 固定窗口数 - + Upload rate based 基于上传速度 - + Upload slots behavior 上传窗口策略 - + Round-robin 轮流上传 - + Fastest upload 最快上传 - + Anti-leech 反吸血 - + Upload choking algorithm 上传连接策略 - + Confirm torrent recheck 重新校验 Torrent 时提示确认 - + Confirm removal of all tags 删除所有标签时提示确认 - + Always announce to all trackers in a tier 总是向同级的所有 Tracker 汇报 - + Always announce to all tiers 总是向所有等级的 Tracker 汇报 - + Any interface i.e. Any network interface 任意网络接口 - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP 混合模式策略 - + Resolve peer countries 解析用户所在国家 - + Network interface 网络接口 - + Optional IP address to bind to 绑定到的可选 IP 地址 - + Max concurrent HTTP announces 最大并发 HTTP 汇报 - + Enable embedded tracker 启用内置 Tracker - + Embedded tracker port 内置 Tracker 端口 + + AppController + + + + Invalid directory path + 无效的目录路径 + + + + Directory does not exist + 目录不存在 + + + + Invalid mode, allowed values: %1 + 无效模式,允许的值:%1 + + + + cookies must be array + Cookies 必须为数组 + + Application - + Running in portable mode. Auto detected profile folder at: %1 当前运行在便携模式下。自动检测配置文件夹于:%1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. 检测到冗余的命令行参数:“%1”。便携模式使用基于相对路径的快速恢复文件。 - + Using config directory: %1 使用配置目录:%1 - + 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。 - + Torrent: %1, sending mail notification Torrent:%1,发送邮件提醒 - + Add torrent failed 添加 torrent 失败 - + Couldn't add torrent '%1', reason: %2. 无法添加 Torrent “%1”,原因:%2。 - + The WebUI administrator username is: %1 WebUI 管理员用户名是:%1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 未设置 WebUI 管理员密码。为此会话提供了一个临时密码:%1 - + You should set your own password in program preferences. 你应该在程序首选项中设置你自己的密码 - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI 已禁用!要启用 WebUI,请手动编辑配置文件。 - + Running external program. Torrent: "%1". Command: `%2` 运行外部程序。Torrent:“%1”。命令:`%2` - + Failed to run external program. Torrent: "%1". Command: `%2` 运行外部程序失败。Torrent 文件:“%1”。命令:`%2` - + Torrent "%1" has finished downloading Torrent “%1” 已完成下载 - + WebUI will be started shortly after internal preparations. Please wait... WebUI 将在内部准备不久后启动。请稍等… - - + + Loading torrents... 加载 Torrent 中... - + E&xit 退出(&X) - + I/O Error i.e: Input/Output Error I/O 错误 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ 原因:%2 - + Torrent added 已添加 Torrent - + '%1' was added. e.g: xxx.avi was added. 已添加 “%1”。 - + Download completed 下载完成 - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 已启动。进程 ID:%2 - + + This is a test email. + 这是测试邮件。 + + + + Test email + 测试邮件 + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. “%1” 下载完成。 - + Information 信息 - + To fix the error, you may need to edit the config file manually. 你可能需要手动编辑配置文件以修复此错误。 - + To control qBittorrent, access the WebUI at: %1 要控制 qBittorrent,请访问下列地址的 WebUI:%1 - + Exit 退出 - + Recursive download confirmation 确认递归下载 - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent “%1” 包含 .torrent 文件,您要继续下载它们的内容吗? - + Never 从不 - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" 递归下载 Torrent 内的 .torrent 文件。源 Torrent:“%1”。文件:“%2” - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" 设置物理内存(RAM)使用限制失败。错误代码:%1。错误信息:“%2” - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" 未能设置硬性物理内存(RAM)用量限制。请求的大小:%1。硬性系统限制:%2。错误码:%3。错误消息:“%4” - + qBittorrent termination initiated 发起了 qBittorrent 终止操作 - + qBittorrent is shutting down... qBittorrent 正在关闭... - + Saving torrent progress... 正在保存 Torrent 进度... - + qBittorrent is now ready to exit qBittorrent 现在准备好退出了 @@ -1609,12 +1715,12 @@ 优先级: - + Must Not Contain: 必须不含: - + Episode Filter: 剧集过滤器: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 导出(&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 季数必须是非零数 - + 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 集 - + Episode number is a mandatory positive value 集数必须是正数 - + Rules 规则 - + Rules (legacy) 规则 (旧式) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons 无限范围:<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 删除规则时提示确认 - + Invalid action 无效操作 - + The list is empty, there is nothing to export. 列表为空,没有可导出的项目。 - + Export RSS rules 导出 RSS 规则 - + I/O Error I/O 错误 - + Failed to create the destination file. Reason: %1 无法创建目标文件。原因:%1 - + Import RSS rules 导入 RSS 规则 - + Failed to import the selected rules file. Reason: %1 无法导入所选规则文件。原因:%1 - + Add new rule... 添加新规则... - + Delete rule 删除规则 - + Rename rule... 重命名规则... - + Delete selected rules 删除所选规则 - + Clear downloaded episodes... 清空已下载剧集... - + Rule renaming 重命名规则 - + Please type the new rule name 请输入新的规则名称 - + Clear downloaded episodes 清空已下载剧集 - + Are you sure you want to clear the list of downloaded episodes for the selected rule? 您确定要清空所选规则下的已下载剧集列表吗? - + Regex mode: use Perl-compatible regular expressions 正则模式:使用兼容 Perl 的正则表达式 - - + + Position %1: %2 位置 %1:%2 - + Wildcard mode: you can use 通配符模式:您可以使用—— - - + + Import error 导入错误 - + Failed to read the file. %1 未能读取文件:%1 - + ? to match any single character ? —— 匹配任意单个字符 - + * to match zero or more of any characters * —— 匹配 0 个或多个任意字符 - + Whitespaces count as AND operators (all words, any order) 空格 —— "与" 运算符 (所有关键词,任意顺序) - + | is used as OR operator | —— "或" 运算符 - + If word order is important use * instead of whitespace. 如果要区分关键词顺序,请使用 * 替代空格。 - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) 将 %1 符号的一侧留空的表达式 (例如 %2) - + will match all articles. 将匹配所有文章。 - + will exclude all articles. 将排除所有文章。 @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" 无法建立 Torrent 恢复文件夹:“%1” @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 无法解析恢复数据:无效格式 - - + + Cannot parse torrent info: %1 无法解析 Torrent 信息:%1 - + Cannot parse torrent info: invalid format 无法解析 Torrent 信息:无效格式 - + Mismatching info-hash detected in resume data 在继续数据中检测到不匹配的 info-hash - + + Corrupted resume data: %1 + 恢复数据受损:%1 + + + + save_path is invalid + 保存路径无效 + + + Couldn't save torrent metadata to '%1'. Error: %2. 无法将 Torrent 元数据保存到 “%1”。错误:%2 - + Couldn't save torrent resume data to '%1'. Error: %2. 无法将 Torrent 恢复数据保存到 “%1”。错误:%2 @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 无法解析恢复数据:%1 - + Resume data is invalid: neither metadata nor info-hash was found 恢复数据无效:没有找到元数据和信息哈希 - + Couldn't save data to '%1'. Error: %2 无法将数据保存到 “%1”。错误:%2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. 未找到。 - + Couldn't load resume data of torrent '%1'. Error: %2 无法加载 Torrent “%1”的恢复数据。错误:%2 - - + + Database is corrupted. 数据库损坏。 - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. 无法启用预写式日志(WAL)记录模式。错误:%1。 - + Couldn't obtain query result. 无法获取查询结果。 - + WAL mode is probably unsupported due to filesystem limitations. 由于文件系统限制,WAL 模式可能不受支持。 - + + + Cannot parse resume data: %1 + 无法解析恢复数据:%1 + + + + + Cannot parse torrent info: %1 + 无法解析 Torrent 信息:%1 + + + + Corrupted resume data: %1 + 恢复数据受损:%1 + + + + save_path is invalid + 保存路径无效 + + + Couldn't begin transaction. Error: %1 无法开始处理。错误:%1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. 无法保存 Torrent 元数据。 错误:%1。 - + Couldn't store resume data for torrent '%1'. Error: %2 无法存储 Torrent “%1” 的恢复数据。错误:%2 - + Couldn't delete resume data of torrent '%1'. Error: %2 无法删除 Torrent “%1” 的恢复数据。错误:%2 - + Couldn't store torrents queue positions. Error: %1 无法存储 Torrent 的队列位置。错误:%1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 分布式哈希表(DHT)支持:%1 - - - - - - - - - + + + + + + + + + ON - - - - - - - - - + + + + + + + + + OFF - - + + Local Peer Discovery support: %1 本地 Peer 发现支持:%1 - + Restart is required to toggle Peer Exchange (PeX) support 开/关 Peer 交换(PeX)功能必须重新启动程序 - + Failed to resume torrent. Torrent: "%1". Reason: "%2" 未能继续下载 Torrent。Torrent:“%1”。原因:“%2” - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" 未能继续下载 Torrent:检测到不一致的 Torrent ID。Torrent:“%1” - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" 检测到不一致的数据:配置文件缺少分类。分类将被恢复但其设置将被重置到默认值。Torrent:“%1”。分类:“%2” - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" 检测到不一致的数据:无效分类。Torrent:“%1”。分类:“%2” - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" 检测到已恢复分类的路径和 Torrent 当前保存路径不一致。Torrent 现在切换到手动模式。Torrent:“%1”。分类:“%2” - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" 检测到不一致的数据:配置文件缺少标签。标签将被恢复。Torrent:“%1”。标签:“%2” - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" 检测到不一致的数据:无效标签。Torrent:“%1”。标签:“%2” - + System wake-up event detected. Re-announcing to all the trackers... 检测到系统唤醒事件。正重新向所有 Tracker 广播... - + Peer ID: "%1" Peer ID:“%1” - + HTTP User-Agent: "%1" HTTP User-Agent:“%1” - + Peer Exchange (PeX) support: %1 Peer 交换(PeX)支持:%1 - - + + Anonymous mode: %1 匿名模式:%1 - - + + Encryption support: %1 加密支持:%1 - - + + FORCED 强制 - + Could not find GUID of network interface. Interface: "%1" 找不到网络接口的 GUID。接口:“%1” - + Trying to listen on the following list of IP addresses: "%1" 尝试侦听下列 IP 地址列表:“%1” - + Torrent reached the share ratio limit. Torrent 到达了分享率上限。 - - - + Torrent: "%1". Torrent:“%1”。 - - - - Removed torrent. - 已移除 Torrent。 - - - - - - Removed torrent and deleted its content. - 已移除 Torrent 并删除了其内容。 - - - - - - Torrent paused. - Torrent 已暂停。 - - - - - + Super seeding enabled. 已开启超级做种。 - + Torrent reached the seeding time limit. Torrent 到达做种时间上限。 - + Torrent reached the inactive seeding time limit. Torrent 到达了不活跃做种时间上限。 - + Failed to load torrent. Reason: "%1" 加载 Torrent 失败,原因:“%1” - + I2P error. Message: "%1". I2P 错误。消息:“%1”。 - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP 支持:开 - + + Saving resume data completed. + 已完成恢复数据保存。 + + + + BitTorrent session successfully finished. + BitTorrent 会话成功完成了。 + + + + Session shutdown timed out. + 会话关闭超时。 + + + + Removing torrent. + 删除 torrent。 + + + + Removing torrent and deleting its content. + 删除 torrent 及其内容。 + + + + Torrent stopped. + Torrent 已停止。 + + + + Torrent content removed. Torrent: "%1" + 已删除 Torrent 内容。Torrent:"%1" + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + 删除 torrent 内容失败。Torrent:"%1"。 错误:"%2" + + + + Torrent removed. Torrent: "%1" + 已删除 Torrent。Torrent:"%1" + + + + Merging of trackers is disabled + 合并 Tracker 已禁用 + + + + Trackers cannot be merged because it is a private torrent + 无法合并 Tracker,因为这是一个私有 Torrent + + + + Trackers are merged from new source + 来自新来源的 Tracker 已经合并 + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP 支持:关 - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" 导出 Torrent 失败。Torrent:“%1”。保存位置:“%2”。原因:“%3” - + Aborted saving resume data. Number of outstanding torrents: %1 终止了保存恢复数据。未完成 Torrent 数目:%1 - + The configured network address is invalid. Address: "%1" 配置的网络地址无效。地址:“%1” - - + + Failed to find the configured network address to listen on. Address: "%1" 未能找到配置的要侦听的网络地址。地址:“%1” - + The configured network interface is invalid. Interface: "%1" 配置的网络接口无效。接口:“%1” - + + Tracker list updated + Tracker 列表已更新 + + + + Failed to update tracker list. Reason: "%1" + 更新Tracker列表失败。原因:“%1” + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" 应用被禁止的 IP 地址列表时拒绝了无效的 IP 地址。IP:“%1” - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" 已添加 Tracker 到 Torrent。Torrent:“%1”。Tracker:“%2” - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" 从 Torrent 删除了 Tracker。Torrent:“%1”。Tracker:“%2” - + Added URL seed to torrent. Torrent: "%1". URL: "%2" 已添加 URL 种子到 Torrent。Torrent:“%1”。URL:“%2” - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" 从 Torrent 中删除了 URL 种子。Torrent:“%1”。URL:“%2” - - Torrent paused. Torrent: "%1" - Torrent 已暂停。Torrent:“%1” + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + 删除 partfile 失败。Torrent:"%1"。理由:"%2". - + Torrent resumed. Torrent: "%1" Torrent 已恢复。Torrent:“%1” - + Torrent download finished. Torrent: "%1" Torrent 下载完成。Torrent:“%1” - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" 取消了 Torrent 移动。Torrent:“%1”。 源位置:“%2”。目标位置:“%3” - + + Duplicate torrent + 重复的种子 + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + 检测到尝试添加重复的种子。现有种子:"%1"。种子 infohash 值:%2。结果:%3 + + + + Torrent stopped. Torrent: "%1" + Torrent 已停止。Torrent:"%1" + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination 未能将 Torrent 移动加入队列。Torrent:“%1”。源位置:“%2”。目标位置:“%3”。原因:正在将 Torrent 移动到目标位置 - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location 未能将 Torrent 移动加入队列。Torrent:“%1”。源位置:“%2”。目标位置:“%3”。原因:两个路径指向同一个位置 - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" 已将 Torrent 移动加入队列。Torrent:“%1”。源位置:“%2”。目标位置:“%3” - + Start moving torrent. Torrent: "%1". Destination: "%2" 开始移动 Torrent。Torrent:“%1”。目标位置:“%2” - + Failed to save Categories configuration. File: "%1". Error: "%2" 保存分类配置失败。文件:“%1”。错误:“%2” - + Failed to parse Categories configuration. File: "%1". Error: "%2" 解析分类配置失败。文件:“%1”。错误:“%2” - + Successfully parsed the IP filter file. Number of rules applied: %1 成功解析了 IP 过滤规则文件。应用的规则数:%1 - + Failed to parse the IP filter file 解析 IP 过滤规则文件失败 - + Restored torrent. Torrent: "%1" 已还原 Torrent。Torrent:“%1” - + Added new torrent. Torrent: "%1" 添加了新 Torrent。Torrent:“%1” - + Torrent errored. Torrent: "%1". Error: "%2" Torrent 出错了。Torrent:“%1”。错误:“%2” - - - Removed torrent. Torrent: "%1" - 移除了 Torrent。Torrent:“%1” - - - - Removed torrent and deleted its content. Torrent: "%1" - 移除了 Torrent 并删除了其内容。Torrent:“%1” - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent 缺少 SSL 参数。Torrent:"%1"。消息: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" 文件错误警报。Torrent:“%1”。文件:“%2”。原因:“%3” - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP 端口映射失败。消息:“%1” - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP 端口映射成功。消息:“%1” - + IP filter this peer was blocked. Reason: IP filter. IP 过滤规则 - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). 过滤的端口(%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). 特权端口(%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL 种子连接失败。Torrent:"%1"。URL:"%2"。错误:"%3" + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent 会话遇到严重错误。原因:“%1” - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 代理错误。地址:%1。消息:“%2”。 - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 混合模式限制 - + Failed to load Categories. %1 未能加载类别:%1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" 未能加载分类配置。文件:“%1”。错误:“无效数据格式” - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - 移除了 Torrent 文件但未能删除其内容和/或 part 文件。Torrent:“%1”。错误:“%2” - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 已停用 - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 已停用 - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL 种子 DNS 查询失败。Torrent:“%1”。URL:“%2”。错误:“%3” - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" 收到了来自 URL 种子的错误信息。Torrent:“%1”。URL:“%2”。消息:“%3” - + Successfully listening on IP. IP: "%1". Port: "%2/%3" 成功监听 IP。IP:“%1”。端口:“%2/%3” - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" 监听 IP 失败。IP:“%1”。端口:“%2/%3”。原因:“%4” - + Detected external IP. IP: "%1" 检测到外部 IP。IP:“%1” - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" 错误:内部警报队列已满,警报被丢弃。您可能注意到性能下降。被丢弃的警报类型:“%1”。消息:“%2” - + Moved torrent successfully. Torrent: "%1". Destination: "%2" 成功移动了 Torrent。Torrent:“%1”。目标位置:“%2” - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" 移动 Torrent 失败。Torrent:“%1”。源位置:“%2”。目标位置:“%3”。原因:“%4” @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + 启动做种失败 BitTorrent::TorrentCreator - + Operation aborted 操作中止 - - + + Create new torrent file failed. Reason: %1. 创建新的 Torrent 文件失败。原因:%1。 @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 无法将用户 “%1” 添加到 Torrent “%2”。原因:%3 - + Peer "%1" is added to torrent "%2" 用户 “%1” 已被添加到 Torrent “%2” - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. 检测到异常数据。Torrent 文件:%1。数据: total_wanted=%2 total_wanted_done=%3。 - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. 无法写入文件。原因:“%1”。Torrent 目前处在 “仅上传” 模式。 - + Download first and last piece first: %1, torrent: '%2' 先下载首尾文件块:%1,Torrent:“%2” - + On 开启 - + Off 关闭 - + Failed to reload torrent. Torrent: %1. Reason: %2 重加载 torrent 文件失败。Torrent:%1. 原因:%2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" 生成恢复数据失败。Torrent:“%1”。原因:“%2” - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" 恢复 Torrent 失败。文件可能被移动或存储不可访问。Torrent:“%1”。原因:“%2” - + Missing metadata 缺少元数据 - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" 文件重命名错误。Torrent:“%1”,文件:“%2”,错误:“%3” - + Performance alert: %1. More info: %2 性能警报:%1。更多信息:%2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' 参数 “%1” 必须符合语法 “%1=%2” - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' 参数 “%1” 必须符合语法 “%1=%2” - + Expected integer number in environment variable '%1', but got '%2' 预期环境变量 “%1” 是一个整数,而它的值为 “%2” - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - 参数 “%1” 必须符合语法 “%1=%2” - - - + Expected %1 in environment variable '%2', but got '%3' 预期环境变量 “%2” 是 “%1”,而它是 “%3” - - + + %1 must specify a valid port (1 to 65535). %1 必须指定一个有效的端口号(1 - 65535)。 - + Usage: 使用: - + [options] [(<filename> | <url>)...] [options] [(<filename> | <url>)...] - + Options: 设定: - + Display program version and exit 显示程序版本并退出 - + Display this help message and exit 显示帮助信息并退出 - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + 参数 “%1” 必须符合语法 “%1=%2” + + + Confirm the legal notice 确认法律注意事项 - - + + port 端口 - + Change the WebUI port 更改 WebUI 端口 - + Change the torrenting port 更改做种端口 - + Disable splash screen 禁用启动界面 - + Run in daemon-mode (background) 运行在守护进程模式(后台运行) - + dir Use appropriate short form or abbreviation of "directory" 路径 - + Store configuration files in <dir> 保存配置文件于 <dir> - - + + name 名称 - + Store configuration files in directories qBittorrent_<name> 保存配置文件于 qBittorrent_<name> 文件夹 - + Hack into libtorrent fastresume files and make file paths relative to the profile directory 将修改 libtorrent 的快速恢复文件并使文件路径相对于设置文件夹 - + files or URLs 文件或 URL - + Download the torrents passed by the user 下载用户传入的 Torrent - + Options when adding new torrents: 添加新的 Torrent 时的选项: - + path 路径 - + Torrent save path Torrent 保存路径 - - Add torrents as started or paused - 添加 Torrent 时的状态为开始或暂停 + + Add torrents as running or stopped + 以运行或停止状态添加多个 torrent - + Skip hash check 跳过哈希校验 - + Assign torrents to category. If the category doesn't exist, it will be created. 指定 Torrent 的分类。如果分类不存在,则会创建它。 - + Download files in sequential order 按顺序下载文件 - + Download first and last pieces first 先下载首尾文件块 - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. 指定在添加 Torrent 时是否开启“新建 Torrent”窗口 - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: 选项的值可以通过环境变量设置。例如选项的名称为 “parameter-name”,那么它的环境变量名为 “QBT_PARAMETER_NAME”(字符大写,使用 “_” 替换 “-”)。若要指定标记的值,将值设置为 “1” 或 “TRUE”。例如,若要禁用启动画面: - + Command line parameters take precedence over environment variables 命令行参数将覆盖环境变量 - + Help 帮助 @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - 继续 torrent + Start torrents + 启动 torrent - Pause torrents - 暂停 torrent + Stop torrents + 停止 torrent @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... 编辑... - + Reset 重置 + + + System + 系统 + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 未能加载自定义主题样式表:%1 - + Failed to load custom theme colors. %1 未能加载自定义主题颜色:%1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 未能加载默认主题颜色:%1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - 并永久删除这些文件 + Also remove the content files + 同时删除已下载的文件 - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? 您确定要从传输列表中删除 “%1” 吗? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? 您确定要从传输列表中删除这 %1 个 Torrent 吗? - + Remove 删除 @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 从 URL 下载 - + Add torrent links 添加 torrent 链接 - + One link per line (HTTP links, Magnet links and info-hashes are supported) 每行一个链接(支持 HTTP 链接,磁力链接和哈希值) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 下载 - + No URL entered 没有输入 URL - + Please type at least one URL. 请输入至少一个 URL。 @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 解析错误:过滤规则文件不是一个有效的 PeerGuardian P2B 文件。 + + FilterPatternFormatMenu + + + Pattern Format + 模式格式 + + + + Plain text + 纯文本 + + + + Wildcards + 通配符 + + + + Regular expression + 正则表达式 + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" 正在下载 Torrent... 来源:“%1” - - Trackers cannot be merged because it is a private torrent - 无法合并 Tracker,因为这是一个私有 Torrent - - - + Torrent is already present Torrent 已存在 - + + Trackers cannot be merged because it is a private torrent. + 无法合并 Tracker,因为这是一个私有 Torrent + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent “%1” 已经在传输列表中。你想合并来自新来源的 Tracker 吗? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. 数据库损坏:未发现数据段。 @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP 请求大小超过限制,将关闭套接字。限制:%1,IP:%2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" 不正确的 HTTP 请求方式,将关闭套接字。IP:%1。方式:“%2” - + Bad Http request, closing socket. IP: %1 Http 请求错误,关闭套接字。IP:%1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... 浏览... - + Reset 重置 - + Select icon 选择图标 - + Supported image files 支持的图片文件 + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + 电源管理发现了合适的 D-Bus 界面。界面:%1 + + + + Power management error. Did not find a suitable D-Bus interface. + 电源管理错误、未找到合适的 D-Bus 接口。 + + + + + + Power management error. Action: %1. Error: %2 + 电源管理错误。操作:%1。错误:%2 + + + + Power management unexpected error. State: %1. Error: %2 + 电源管理异常错误。状态:%1.。错误:%2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 被阻止,原因:%2。 - + %1 was banned 0.0.0.0 was banned %1 被禁止 @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 必须是一个单一的命令行参数。 - + Run application with -h option to read about command line parameters. 启动程序时加入 -h 参数以参看相关命令行信息。 - + Bad command line 错误的命令 - + Bad command line: 错误的命令: - + An unrecoverable error occurred. 发生不可恢复的错误。 + - qBittorrent has encountered an unrecoverable error. qBittorrent 遇到无法恢复的错误。 - + You cannot use %1: qBittorrent is already running. 你不能使用 %1:qBittorrent 已经在运行。 - + Another qBittorrent instance is already running. 另一个 qBittorrent 实例已经在运行。 - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. 发现了未预期的 qBittorrent 实例。正在退出此实例。当前进程 ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. 转变成后台驻留进程时出错。原因: "%1". 错误代码:%2. @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 编辑(&E) - + &Tools 工具(&T) - + &File 文件(&F) - + &Help 帮助(&H) - + On Downloads &Done 下载完成后的操作(&D) - + &View 视图(&V) - + &Options... 设置(&O)... - - &Resume - 继续(&R) - - - + &Remove 移除(&R) - + Torrent &Creator 生成 Torrent(&C) - - + + Alternative Speed Limits 备用速度限制 - + &Top Toolbar 顶部工具栏(&T) - + Display Top Toolbar 显示顶部工具栏 - + Status &Bar 状态栏(&B) - + Filters Sidebar 筛选器侧边栏 - + S&peed in Title Bar 在标题栏显示速度(&P) - + Show Transfer Speed in Title Bar 在标题栏显示传输速度 - + &RSS Reader RSS 阅读器(&R) - + Search &Engine 搜索引擎(&E) - + L&ock qBittorrent 锁定 qBittorrent(&O) - + Do&nate! 捐赠(&N) - + + Sh&utdown System + 关闭系统(&U) + + + &Do nothing 什么都不做(&D) - + Close Window 关闭窗口 - - R&esume All - 全部继续(&E) - - - + Manage Cookies... 管理 Cookies... - + Manage stored network cookies 管理存储的网络 cookies - + Normal Messages 一般消息 - + Information Messages 通知消息 - + Warning Messages 警告信息 - + Critical Messages 严重信息 - + &Log 日志(&L) - + + Sta&rt + 启动(&R) + + + + Sto&p + 停止(&P) + + + + R&esume Session + 恢复会话(&E) + + + + Pau&se Session + 暂停会话(&S) + + + Set Global Speed Limits... 设置全局速度限制... - + Bottom of Queue 队列底部 - + Move to the bottom of the queue 移动到队列底部 - + Top of Queue 队列顶部 - + Move to the top of the queue 移动到队列顶部 - + Move Down Queue 向下移动队列 - + Move down in the queue 在队列中向下移动 - + Move Up Queue 向上移动队列 - + Move up in the queue 在队列中向上移动 - + &Exit qBittorrent 退出 qBittorrent(&E) - + &Suspend System 系统睡眠(&S) - + &Hibernate System 系统休眠(&H) - - S&hutdown System - 关机(&U) - - - + &Statistics 统计(&S) - + Check for Updates 检查更新 - + Check for Program Updates 检查程序更新 - + &About 关于(&A) - - &Pause - 暂停(&P) - - - - P&ause All - 全部暂停(&A) - - - + &Add Torrent File... 添加 Torrent 文件(&A)... - + Open 打开 - + E&xit 退出(&X) - + Open URL 打开 URL - + &Documentation 帮助文档(&D) - + Lock 锁定 - - - + + + Show 显示 - + Check for program updates 检查程序更新 - + Add Torrent &Link... 添加 Torrent 链接(&L)... - + If you like qBittorrent, please donate! 如果您喜欢 qBittorrent,请捐款! - - + + Execution Log 执行日志 - + Clear the password 清除密码 - + &Set Password 设置密码(&S) - + Preferences 首选项 - + &Clear Password 清除密码(&C) - + Transfers 传输 - - + + qBittorrent is minimized to tray qBittorrent 已最小化到任务托盘 - - - + + + This behavior can be changed in the settings. You won't be reminded again. 该行为可以在设置中改变。你不会再次收到此提醒。 - + Icons Only 只显示图标 - + Text Only 只显示文字 - + Text Alongside Icons 在图标旁显示文字 - + Text Under Icons 在图标下显示文字 - + Follow System Style 跟随系统设置 - - + + UI lock password 锁定用户界面的密码 - - + + Please type the UI lock password: 请输入用于锁定用户界面的密码: - + Are you sure you want to clear the password? 您确定要清除密码吗? - + Use regular expressions 使用正则表达式 - + + + Search Engine + 搜索引擎 + + + + Search has failed + 搜索失败 + + + + Search has finished + 搜索已完成 + + + Search 搜索 - + Transfers (%1) 传输 (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent 刚刚被更新,需要重启以使更改生效。 - + qBittorrent is closed to tray qBittorrent 已关闭到任务托盘 - + Some files are currently transferring. 一些文件正在传输中。 - + Are you sure you want to quit qBittorrent? 您确定要退出 qBittorrent 吗? - + &No 否(&N) - + &Yes 是(&Y) - + &Always Yes 总是(&A) - + Options saved. 已保存选项 - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [已暂停] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [D: %1, U: %2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + 无法下载 Python 安装程序。错误:%1。 +请手动安装。 + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + 无法重命名 Python 安装程序。源:“%1”。目标:“%2”。 + + + + Python installation success. + Python 安装成功。 + + + + Exit code: %1. + 退出码:%1。 + + + + Reason: installer crashed. + 原因:安装程序崩溃。 + + + + Python installation failed. + Python 安装失败。 + + + + Launching Python installer. File: "%1". + 启动 Python 安装程序。文件:“%1”。 + + + + Missing Python Runtime 缺少 Python 运行环境 - + qBittorrent Update Available qBittorrent 有可用更新 - + 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,但是它似乎未被安装。 - - + + Old Python Runtime Python 运行环境过旧 - + A new version is available. 新版本可用。 - + Do you want to download %1? 您想要下载版本 %1 吗? - + Open changelog... 打开更新日志... - + No updates available. You are already using the latest version. 没有可用更新。 您正在使用的已是最新版本。 - + &Check for Updates 检查更新(&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? 您的 Python 版本(%1)已过时。最低要求:%2。 您想现在安装较新的版本吗? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. 您的 Python 版本(%1)已过时,请更新其至最新版本以继续使用搜索引擎。 最低要求:%2。 - + + Paused + 暂停 + + + Checking for Updates... 正在检查更新... - + Already checking for program updates in the background 已经在后台检查程序更新 - + + Python installation in progress... + Python 安装进行中… + + + + Failed to open Python installer. File: "%1". + 打开 Python 安装程序失败。文件:“%1”。 + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 安装程序的 MD5 哈希检查失败。文件:“%1”。哈希结果:“%2”。期望哈希值:“%3”。 + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 安装程序的 SHA3-512 哈希检查失败。文件:“%1”。哈希结果:“%2”。期望哈希值:“%3”。 + + + Download error 下载出错 - - Python setup could not be downloaded, reason: %1. -Please install it manually. - 无法下载 Python 安装程序,原因:%1。 -请手动安装。 - - - - + + Invalid password 无效密码 - + Filter torrents... 过滤 Torrent... - + Filter by: 过滤依据: - + The password must be at least 3 characters long 密码长度至少为 3 个字符 - - - + + + RSS (%1) RSS (%1) - + 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] qBittorrent %3 - - - + Hide 隐藏 - + Exiting qBittorrent 正在退出 qBittorrent - + Open Torrent Files 打开 Torrent 文件 - + Torrent Files Torrent 文件 @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL 错误, URL:"%1", 错误: "%2" + + + Ignoring SSL error, URL: "%1", errors: "%2" 忽略 SSL 错误,URL:"%1",错误:"%2" @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 连接失败,未识别的响应:%1 - + Authentication failed, msg: %1 认证失败,消息:%1 - + <mail from> was rejected by server, msg: %1 <mail from>被服务器拒绝,消息:%1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to>被服务器拒绝,消息:%1 - + <data> was rejected by server, msg: %1 <data>被服务器拒绝,消息:%1 - + Message was rejected by the server, error: %1 消息被服务器拒绝,错误:%1 - + Both EHLO and HELO failed, msg: %1 EHLO 和 HELO 均失败,消息:%1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP 服务器似乎不支持任何我们支持的认证模式 [CRAM-MD5|PLAIN|LOGIN],正跳过验证,因为它可能会失败...服务器认证模式:%1 - + Email Notification Error: %1 电子邮件通知错误:%1 @@ -5604,299 +5928,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced 高级 - + Customize UI Theme... 定制用户界面主题... - + Transfer List 传输列表 - + Confirm when deleting torrents 删除 Torrent 时提示确认 - - Shows a confirmation dialog upon pausing/resuming all the torrents - 暂停/恢复所有 torrent 时显示确认对话框 - - - - Confirm "Pause/Resume all" actions - 确认”暂停/继续所有“操作 - - - + Use alternating row colors In table elements, every other row will have a grey background. 使用交替的行颜色 - + Hide zero and infinity values 隐藏为 0 及无穷大的项 - + Always 总是 - - Paused torrents only - 仅暂停 torrent - - - + Action on double-click 双击执行操作 - + Downloading torrents: 正在下载 torrent: - - - Start / Stop Torrent - 开始 / 停止 Torrent - - - - + + Open destination folder 打开目标文件夹 - - + + No action 不执行操作 - + Completed torrents: 完成的 torrent: - + Auto hide zero status filters 自动隐藏零状态过滤器 - + Desktop 桌面 - + Start qBittorrent on Windows start up 在 Windows 启动时启动 qBittorrent - + Show splash screen on start up 启动时显示程序启动画面 - + Confirmation on exit when torrents are active 如果退出时有 Torrent 活动则提示确认 - + Confirmation on auto-exit when downloads finish 下载完成并自动退出时提示确认 - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p><br/>你可以使用<span style=" font-weight:600;">控制面板</span>里的<span style=" font-weight:600;">默认程序</span>对话框来设置 qBittorrent为打开 .torrent 文件和/或磁力链接的默认程序。</p></body></html> - + KiB KiB - + + Show free disk space in status bar + 在状态栏中显示可用的磁盘空间 + + + Torrent content layout: Torrent 内容布局: - + Original 原始 - + Create subfolder 创建子文件夹 - + Don't create subfolder 不创建子文件夹 - + The torrent will be added to the top of the download queue 该 Torrent 将被添加至下载队列顶部 - + Add to top of queue The torrent will be added to the top of the download queue 添加到队列顶部 - + When duplicate torrent is being added 当添加重复的 torrent 时 - + Merge trackers to existing torrent 合并 trackers 到现有 torrent - + Keep unselected files in ".unwanted" folder 将未选中的文件保留在 ".unwanted" 文件夹中 - + Add... 添加... - + Options.. 选项.. - + Remove 删除 - + Email notification &upon download completion 下载完成时发送电子邮件通知(&U) - + + Send test email + 发送测试邮件 + + + + Run on torrent added: + 新增 Torrent 时运行: + + + + Run on torrent finished: + torrent 完成时运行: + + + Peer connection protocol: Peer 连接协议: - + Any 任何 - + I2P (experimental) I2P(实验性) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>如启用 “混合模式”,则 I2P Torrent 也被允许从 Tracker 之外的来源获得 peers,并连接到正常的 IP 地址,这样的结果是不提供任何的匿名性。对于对 I2P 匿名性不感兴趣,但让仍希望能连接到 I2P peer 的用户来说,此模式会有用处。</p></body></html> - - - + Mixed mode 混合模式 - - Some options are incompatible with the chosen proxy type! - 某些选项与所选的代理类型不兼容! - - - + If checked, hostname lookups are done via the proxy 勾选后,将通过代理查找主机名 - + Perform hostname lookup via proxy 通过代理查找主机名 - + Use proxy for BitTorrent purposes 对 BitTorrent 目的使用代理 - + RSS feeds will use proxy RSS 源将使用代理 - + Use proxy for RSS purposes 对 RSS 目的使用代理 - + Search engine, software updates or anything else will use proxy 搜索引擎、软件更新或其他事项将使用代理 - + Use proxy for general purposes 对常规目的使用代理 - + IP Fi&ltering IP 过滤(&L) - + Schedule &the use of alternative rate limits 自动启用备用速度限制(&T) - + From: From start time 从: - + To: To end time 到: - + Find peers on the DHT network 在 DHT 网络上寻找节点 - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption 禁用加密:仅当节点不使用加密协议时才连接 - + Allow encryption 允许加密 - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">更多信息</a>) - + Maximum active checking torrents: 最大活跃检查 Torrent 数: - + &Torrent Queueing Torrent 队列(&T) - + When total seeding time reaches 达到总做种时间时 - + When inactive seeding time reaches 达到不活跃做种时间时 - - A&utomatically add these trackers to new downloads: - 自动将以下 Tracker 添加到新的任务(&U): - - - + RSS Reader RSS 阅读器 - + Enable fetching RSS feeds 启用获取 RSS 订阅 - + Feeds refresh interval: RSS 订阅源更新间隔: - + Same host request delay: - + 相同的主机请求延迟: - + Maximum number of articles per feed: 每个订阅源文章数目最大值: - - - + + + min minutes 分钟 - + Seeding Limits 做种限制 - - Pause torrent - 暂停 torrent - - - + Remove torrent 删除 torrent - + Remove torrent and its files 删除 torrent 及所属文件 - + Enable super seeding for torrent 为 torrent 启用超级做种 - + When ratio reaches 当分享率达到 - + + Some functions are unavailable with the chosen proxy type! + 某些功能在所选的代理类型中不可用 + + + + Note: The password is saved unencrypted + 注意:密码以非加密形式保存 + + + + Stop torrent + 停止 torrent + + + + A&utomatically append these trackers to new downloads: + 自动附加这些 tracker 到新下载: + + + + Automatically append trackers from URL to new downloads: + 自动附加 URL 的 trackers 到新的下载: + + + + URL: + 网址: + + + + Fetched trackers + 获取 tracker + + + + Search UI + 搜索用户界面 + + + + Store opened tabs + 保存已开启的分页 + + + + Also store search results + 也存储搜索结果 + + + + History length + 历史记录数量 + + + RSS Torrent Auto Downloader RSS Torrent 自动下载器 - + Enable auto downloading of RSS torrents 启用 RSS Torrent 自动下载 - + Edit auto downloading rules... 修改自动下载规则... - + RSS Smart Episode Filter RSS 智能剧集过滤器 - + Download REPACK/PROPER episodes 下载 REPACK/PROPER 版剧集 - + Filters: 过滤器: - + Web User Interface (Remote control) Web 用户界面(远程控制) - + IP address: IP 地址: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv "::" 为任何 IPv6 地址,或 "*" 为 IPv4 和 IPv6。 - + Ban client after consecutive failures: 连续失败后禁止客户端: - + Never 从不 - + ban for: 禁止: - + Session timeout: 会话超时: - + Disabled 禁用 - - Enable cookie Secure flag (requires HTTPS) - 启用 cookie 安全标志(需要 HTTPS) - - - + Server domains: 服务器域名: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP 使用 HTTPS 而不是 HTTP(&U) - + Bypass authentication for clients on localhost 对本地主机上的客户端跳过身份验证 - + Bypass authentication for clients in whitelisted IP subnets 对 IP 子网白名单中的客户端跳过身份验证 - + IP subnet whitelist... IP 子网白名单... - + + Use alternative WebUI + 使用备选 WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. 指定反向代理 IP(或子网,如 0.0.0.0/24)以使用转发的客户端地址(X-Forwarded-For 标头)。使用 “;” 符号分割多个条目。 - + Upda&te my dynamic domain name 更新我的动态域名(&T) - + Minimize qBittorrent to notification area 最小化 qBittorrent 到通知区域 - + + Search + 搜索 + + + + WebUI + WebUI + + + Interface 接口 - + Language: 语言 - + + Style: + 样式 + + + + Color scheme: + 配色方案: + + + + Stopped torrents only + 仅已停止的 torrent + + + + + Start / stop torrent + 开始 / 停止 torrent + + + + + Open torrent options dialog + 打开 Torrent 设置对话框 + + + Tray icon style: 托盘图标样式: - - + + Normal 正常 - + File association 文件关联 - + Use qBittorrent for .torrent files 使用 qBittorrent 打开 .torrent 文件 - + Use qBittorrent for magnet links 使用 qBittorrent 打开磁力链接 - + Check for program updates 检查程序更新 - + Power Management 电源管理 - + + &Log Files + 日志文件(&L) + + + Save path: 保存路径: - + Backup the log file after: 当大于指定大小时备份日志文件: - + Delete backup logs older than: 删除早于指定时间的备份日志文件: - + + Show external IP in status bar + 在状态栏展示外部 IP + + + When adding a torrent 添加 torrent 时 - + Bring torrent dialog to the front 前置 torrent 对话框 - + + The torrent will be added to download list in a stopped state + torrent 将以停止状态添加到下载列表中 + + + Also delete .torrent files whose addition was cancelled 添加操作被取消时也删除 .torrent 文件 - + Also when addition is cancelled 添加操作被取消时也删除 .torrent 文件 - + Warning! Data loss possible! 警告!该操作可能会丢失数据! - + Saving Management 保存管理 - + Default Torrent Management Mode: 默认 Torrent 管理模式: - + Manual 手动 - + Automatic 自动 - + When Torrent Category changed: 当 Torrent 分类改变时: - + Relocate torrent 移动 torrent - + Switch torrent to Manual Mode 切换 torrent 至手动模式 - - + + Relocate affected torrents 移动影响的 torrent - - + + Switch affected torrents to Manual Mode 切换受影响的 torrent 至手动模式 - + Use Subcategories 启用子分类: - + Default Save Path: 默认保存路径: - + Copy .torrent files to: 复制 .torrent 文件到: - + Show &qBittorrent in notification area 在通知区域显示 qBittorrent(&Q) - - &Log file - 日志文件(&L) - - - + Display &torrent content and some options 显示 Torrent 内容和选项(&T) - + De&lete .torrent files afterwards 添加后删除 .torrent 文件(&L) - + Copy .torrent files for finished downloads to: 复制下载完成的 .torrent 文件到: - + Pre-allocate disk space for all files 为所有文件预分配磁盘空间 - + Use custom UI Theme 使用自定义界面主题 - + UI Theme file: 界面主题文件: - + Changing Interface settings requires application restart 改变界面设置需要重启应用程序 - + Shows a confirmation dialog upon torrent deletion 删除 Torrent 时显示确认对话框 - - + + Preview file, otherwise open destination folder 预览文件,否则打开所在目录 - - - Show torrent options - 显示 Torrent 选项 - - - + Shows a confirmation dialog when exiting with active torrents 如果退出时有 Torrent 活动则提示确认 - + When minimizing, the main window is closed and must be reopened from the systray icon 最小化时,主窗体同时关闭,只能通过托盘图标打开 - + The systray icon will still be visible when closing the main window 关闭主窗体时,托盘图标保持可见 - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window 关闭 qBittorrent 到通知区域 - + Monochrome (for dark theme) 单色(深色主题) - + Monochrome (for light theme) 单色(浅色主题) - + Inhibit system sleep when torrents are downloading 下载时禁止系统自动睡眠 - + Inhibit system sleep when torrents are seeding 做种时禁止系统自动睡眠 - + Creates an additional log file after the log file reaches the specified file size 当日志文件达到指定大小时创建一个新的日志文件 - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings 记录性能警报 - - The torrent will be added to download list in a paused state - 将 Torrent 以暂停状态添加到下载列表中 - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state 不要自动开始下载 - + Whether the .torrent file should be deleted after adding it 添加 .torrent 文件后是否要删除它 - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. 开始下载前分配所有文件的磁盘空间,以便最大限度减少磁盘碎片。只对 HDD 硬盘有用。 - + Append .!qB extension to incomplete files 为不完整的文件添加扩展名 .!qB - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it 当 Torrent 下载完成的同时,把其中包含的所有 .torrent 文件一并添加到 Torrent 列表中 - + Enable recursive download dialog 启用递归下载对话框 - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually 自动:各种 Torrent 属性(如保存路径)由关联分类决定 手动:各种 Torrent 属性(如保存路径)必须手工指定 - + When Default Save/Incomplete Path changed: 默认保存/不完整路径更改时: - + When Category Save Path changed: 当分类保存路径更改时: - + Use Category paths in Manual Mode 在手动模式下使用分类路径 - + Resolve relative Save Path against appropriate Category path instead of Default one 根据适当的分类路径而不是默认路径解析相对的保存路径 - + Use icons from system theme 使用来自系统主题的图标 - + Window state on start up: 启动时的窗口状态 - + qBittorrent window state on start up 启动时 qBittorrent 窗口状态 - + Torrent stop condition: Torrent 停止条件: - - + + None - - + + Metadata received 已收到元数据 - - + + Files checked 文件已被检查 - + Ask for merging trackers when torrent is being added manually 手动添加 torrent 时询问是否合并 trackers - + Use another path for incomplete torrents: 对不完整的 Torrent 使用另一个路径: - + Automatically add torrents from: 自动从此处添加 torrent: - + Excluded file names 排除的文件名 - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt:过滤精确文件名。 readme[0-9].txt:过滤 “readme1.txt”、“readme2.txt” 但不过滤 “readme10.txt”。 - + Receiver 接收者 - + To: To receiver 到: - + SMTP server: SMTP 服务器: - + Sender 发送者 - + From: From sender 从: - + This server requires a secure connection (SSL) 该服务器需要安全链接(SSL) - - + + Authentication 验证 - - - - + + + + Username: 用户名: - - - - + + + + Password: 密码: - + Run external program 运行外部程序 - - Run on torrent added - 新增 Torrent 时运行 - - - - Run on torrent finished - Torrent 完成时运行 - - - + Show console window 显示控制台窗口 - + TCP and μTP TCP 和 μTP - + Listening Port 监听端口 - + Port used for incoming connections: 用于传入连接的端口: - + Set to 0 to let your system pick an unused port 设为 0,让系统选择一个未使用的端口 - + Random 随机 - + Use UPnP / NAT-PMP port forwarding from my router 使用我的路由器的 UPnP / NAT-PMP 端口转发 - + Connections Limits 连接限制 - + Maximum number of connections per torrent: 每 torrent 最大连接数: - + Global maximum number of connections: 全局最大连接数: - + Maximum number of upload slots per torrent: 每个 Torrent 上传窗口数上限: - + Global maximum number of upload slots: 全局上传窗口数上限: - + Proxy Server 代理服务器 - + Type: 类型: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: 主机: - - - + + + Port: 端口: - + Otherwise, the proxy server is only used for tracker connections 否则,代理服务器将仅用于 tracker 连接 - + Use proxy for peer connections 使用代理服务器进行用户连接 - + A&uthentication 认证(&U) - - Info: The password is saved unencrypted - 提示:密码未加密 - - - + Filter path (.dat, .p2p, .p2b): 过滤规则路径 (.dat, .p2p, .p2b): - + Reload the filter 重新加载过滤规则 - + Manually banned IP addresses... 手动屏蔽 IP 地址... - + Apply to trackers 匹配 tracker - + Global Rate Limits 全局速度限制 - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: 上传: - - + + Download: 下载: - + Alternative Rate Limits 备用速度限制 - + Start time 开始时间 - + End time 结束时间 - + When: 时间: - + Every day 每天 - + Weekdays 工作日 - + Weekends 周末 - + Rate Limits Settings 设置速度限制 - + Apply rate limit to peers on LAN 对本地网络用户进行速度限制 - + Apply rate limit to transport overhead 对传送总开销进行速度限制 - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>如启用 “混合模式”,I2P Torrent 将被允许从 Tracker 之外的来源获得 peers,并连接到正常的 IP 地址,不提供任何的匿名性。对于对 I2P 的匿名性不感兴趣,但让仍希望能连接到 I2P peer 的用户来说,此模式可能会有用。</p></body></html> + + + Apply rate limit to µTP protocol 对 µTP 协议进行速度限制 - + Privacy 隐私 - + Enable DHT (decentralized network) to find more peers 启用 DHT (去中心化网络) 以找到更多用户 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 与兼容的 Bittorrent 客户端交换用户 (µTorrent, Vuze, …) - + Enable Peer Exchange (PeX) to find more peers 启用用户交换 (PeX) 以找到更多用户 - + Look for peers on your local network 在本地网络上寻找用户 - + Enable Local Peer Discovery to find more peers 启用本地用户发现以找到更多用户 - + Encryption mode: 加密模式: - + Require encryption 强制加密 - + Disable encryption 禁用加密 - + Enable when using a proxy or a VPN connection 使用代理或 VPN 连接时启用 - + Enable anonymous mode 启用匿名模式 - + Maximum active downloads: 最大活动的下载数: - + Maximum active uploads: 最大活动的上传数: - + Maximum active torrents: 最大活动的 torrent 数: - + Do not count slow torrents in these limits 慢速 torrent 不计入限制内 - + Upload rate threshold: 上传速度阈值: - + Download rate threshold: 下载速度阈值: - - - - + + + + sec seconds - + Torrent inactivity timer: Torrent 非活动计时器: - + then 达到上限后: - + Use UPnP / NAT-PMP to forward the port from my router 使用我的路由器的 UPnP / NAT-PMP 功能来转发端口 - + Certificate: 证书: - + Key: 密钥: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>关于证书</a> - + Change current password 更改当前密码 - - Use alternative Web UI - 使用备用的 Web UI - - - + Files location: 文件位置: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">替代 WebUI 清单</a> + + + Security 安全 - + Enable clickjacking protection 启用点击劫持保护 - + Enable Cross-Site Request Forgery (CSRF) protection 启用跨站请求伪造 (CSRF) 保护 - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + 启用 cookie 安全标志(需要 HTTPS或本地连接) + + + Enable Host header validation 启用 Host header 属性验证 - + Add custom HTTP headers 添加自定义 HTTP headers - + Header: value pairs, one per line Header: value 值对,每行一个 - + Enable reverse proxy support 启用反向代理支持 - + Trusted proxies list: 受信任的代理列表: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>反向代理安装样例</a> + + + Service: 服务: - + Register 注册 - + Domain name: 域名: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! 若启用以下选项,你可能会<strong>永久地丢失<strong>你的 .torrent 文件! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog 如果启用第二个选项&ldquo;取消添加后也删除&rdquo;,即使在&ldquo;添加 Torrent&rdquo;对话框中点击&ldquo;<strong>取消</strong>&rdquo;,<strong>也会删除</strong> .torrent 文件。 - + Select qBittorrent UI Theme file 选择 qBittorrent 界面主题文件 - + Choose Alternative UI files location 选择备用的 UI 文件位置 - + Supported parameters (case sensitive): 支持的参数(区分大小写): - + Minimized 最小化 - + Hidden 隐藏 - + Disabled due to failed to detect system tray presence 因未能检测到系统托盘的存在而禁用 - + No stop condition is set. 未设置停止条件。 - + Torrent will stop after metadata is received. 接收到元数据后,Torrent 将停止。 - Torrents that have metadata initially aren't affected. - 不会影响起初就有元数据的 Torrent。 - - - + Torrent will stop after files are initially checked. 第一次文件检查完成后,Torrent 将停止。 - + This will also download metadata if it wasn't there initially. 如果最开始不存在元数据,勾选此选项也会下载元数据。 - + %N: Torrent name %N:Torrent 名称 - + %L: Category %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 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") 提示:使用引号将参数扩起以防止文本被空白符分割(例如:"%N") - + + Test email + 测试邮件 + + + + Attempted to send email. Check your inbox to confirm success + 已尝试发送邮件。检查你的收件箱确认是否发送成功 + + + (None) (无) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds 当 Torrent 下载或上传速度低于指定阈值并持续超过 “Torrent 非活动计时器” 指定的时间时,Torrent 将会被判定为慢速。 - + Certificate 证书 - + Select certificate 选择证书 - + Private key 私钥 - + Select private key 选择私钥 - + WebUI configuration failed. Reason: %1 WebUI 配置失败了。原因:%1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + 建议选择 %1 来达到和 Windows 深色模式最佳兼容性 + + + + System + System default Qt style + 系统 + + + + Let Qt decide the style for this system + 让 Qt 决定此系统的样式 + + + + Dark + Dark color scheme + 深色 + + + + Light + Light color scheme + 浅色 + + + + System + System color scheme + 系统 + + + Select folder to monitor 选择要监视的文件夹 - + Adding entry failed 添加条目失败 - + The WebUI username must be at least 3 characters long. WebUI 用户名长度至少为3个字符 - + The WebUI password must be at least 6 characters long. WebUI 密码长度至少为6个字符 - + Location Error 路径错误 - - + + Choose export directory 选择导出目录 - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well 如果启用以上选项,qBittorrent 会在 .torrent 文件成功添加到下载队列后(第一个选项)或取消添加后(第二个选项)<strong> 删除</strong>原本的 .torrent 文件。这<strong>不仅</strong>适用于通过&ldquo;添加 Torrent&rdquo;菜单打开的文件,也适用于通过<strong>关联文件类型</strong>打开的文件。 - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI 主题文件 (*.qbtheme config.json) - + %G: Tags (separated by comma) %G:标签(以逗号分隔) - + %I: Info hash v1 (or '-' if unavailable) %I:信息哈希值 v1(如果不可用,则为“-”) - + %J: Info hash v2 (or '-' if unavailable) %J:信息哈希值 v2(如果不可用,则为“-”) - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K:Torrent ID(v1 Torrent 的 sha-1 信息哈希值,或 v2/混合 Torrent 的截断 sha-256 信息哈希值) - - - + + + Choose a save directory 选择保存目录 - + Torrents that have metadata initially will be added as stopped. - + 最开始就有元数据的 Torrent 文件被添加后将处在停止状态 - + Choose an IP filter file 选择一个 IP 过滤规则文件 - + All supported filters 所有支持的过滤规则 - + The alternative WebUI files location cannot be blank. 备选的 WebUI 文件位置不能为空 - + 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 条规则已应用。 - + Preferences 首选项 - + Time Error 时间错误 - + The start time and the end time can't be the same. 开始时间和结束时间不能相同。 - - + + Length Error 长度错误 @@ -7335,241 +7765,246 @@ readme[0-9].txt:过滤 “readme1.txt”、“readme2.txt” 但不过滤 “r PeerInfo - + Unknown 未知 - + Interested (local) and choked (peer) 您:期待下载╱他:拒绝上传 - + Interested (local) and unchoked (peer) 您:期待下载╱他:同意上传 - + Interested (peer) and choked (local) 他:期待下载╱您:拒绝上传 - + Interested (peer) and unchoked (local) 他:期待下载╱您:同意上传 - + Not interested (local) and unchoked (peer) 您:不想下载╱他:同意上传 - + Not interested (peer) and unchoked (local) 他:不想下载╱您:同意上传 - + Optimistic unchoke 多传者优先 - + Peer snubbed 下载者突然停止 - + Incoming connection 传入连接 - + Peer from DHT 来自 DHT 的下载者 - + Peer from PEX 来自 PEX 的下载者 - + Peer from LSD 来自 LSD 的下载者 - + Encrypted traffic 加密的流量 - + Encrypted handshake 加密握手 + + + Peer is using NAT hole punching + Peer 正使用 NAT 打洞 + PeerListWidget - + Country/Region 国家/地区 - + IP/Address IP/地址 - + Port 端口 - + Flags 标志 - + Connection 连接 - + Client i.e.: Client application 客户端 - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 客户端 - + 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. 文件关联 - + Files i.e. files that are being downloaded right now 文件 - + Column visibility 显示列 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 - + Add peers... 添加 peers 用户... - - + + Adding peers 添加用户 - + Some peers cannot be added. Check the Log for details. 部分用户无法被添加。请查看日志以了解更多。 - + Peers are added to this torrent. 这些用户已添加到此 torrent。 - - + + Ban peer permanently 永久禁止用户 - + Cannot add peers to a private torrent 无法将 peer 用户添加至私有 torrent - + Cannot add peers when the torrent is checking torrent 在检查时无法添加 peers 用户 - + Cannot add peers when the torrent is queued torrent 排队时无法添加 peers 用户 - + No peer was selected 未选中 peer - + Are you sure you want to permanently ban the selected peers? 您确定要永久禁止所选的用户吗? - + Peer "%1" is manually banned 用户 "%1" 已被自动屏蔽 - + N/A N/A - + Copy IP:port 复制 IP:端口 @@ -7587,7 +8022,7 @@ readme[0-9].txt:过滤 “readme1.txt”、“readme2.txt” 但不过滤 “r 要添加的用户列表(每行一个 IP): - + Format: IPv4:port / [IPv6]:port 格式:IPv4:端口 / [IPv6]:端口 @@ -7628,27 +8063,27 @@ readme[0-9].txt:过滤 “readme1.txt”、“readme2.txt” 但不过滤 “r PiecesBar - + Files in this piece: 在此块中的文件: - + File in this piece: 此块中的文件: - + File in these pieces: 这些块中的文件: - + Wait until metadata become available to see detailed information 待元数据获取成功后即可显示详细信息 - + Hold Shift key for detailed information 按住 Shift 键以查看详细信息 @@ -7661,58 +8096,58 @@ readme[0-9].txt:过滤 “readme1.txt”、“readme2.txt” 但不过滤 “r 搜索插件 - + Installed search plugins: 已安装的搜索插件: - + Name 名称 - + Version 版本 - + Url Url - - + + Enabled 启用 - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. 警告:在下载来自这些搜索引擎的 torrent 时,请确认它符合您所在国家的版权法。 - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> 你可以访问此处获得新的搜索引擎插件:<a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one 安装一个新的搜索引擎 - + Check for updates 检查更新 - + Close 关闭 - + Uninstall 卸载 @@ -7832,98 +8267,65 @@ Those plugins were disabled. 插件来源 - + Search plugin source: 搜索插件来源: - + Local file 本地文件 - + Web link 网站链接 - - PowerManagement - - - qBittorrent is active - qBittorrent 正在活动 - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - 电源管理发现了合适的 D-Bus 界面。界面:%1 - - - - Power management error. Did not found suitable D-Bus interface. - 电源管理错误。未发现合适的 D-Bus 界面。 - - - - - - Power management error. Action: %1. Error: %2 - 电源管理错误。操作:%1。错误:%2 - - - - Power management unexpected error. State: %1. Error: %2 - 电源管理异常错误。状态:%1.。错误:%2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: 下列来自 torrent "%1" 的文件支持预览,请选择其中之一: - + Preview 预览 - + Name 名称 - + Size 大小 - + Progress 进度 - + Preview impossible 无法预览 - + Sorry, we can't preview this file: "%1". 抱歉,此文件无法预览:"%1"。 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 @@ -7936,27 +8338,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist 路径不存在 - + Path does not point to a directory 路径不指向一个目录 - + Path does not point to a file 路径不指向一个文件 - + Don't have read permission to path 没有读取路径的权限 - + Don't have write permission to path 没有写入路径的权限 @@ -7997,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: 已下载: - + Availability: 可用性: @@ -8017,53 +8419,53 @@ Those plugins were disabled. 传输 - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 活动时间: - + ETA: 剩余时间: - + Uploaded: 已上传: - + Seeds: 做种数: - + Download Speed: 下载速度: - + Upload Speed: 上传速度: - + Peers: 用户: - + Download Limit: 下载限制: - + Upload Limit: 上传限制: - + Wasted: 已丢弃: @@ -8073,193 +8475,220 @@ Those plugins were disabled. 连接: - + Information 信息 - + Info Hash v1: 信息哈希值 v1: - + Info Hash v2: 信息哈希值 v2: - + Comment: 注释: - + Select All 选择所有 - + Select None 全不选 - + Share Ratio: 分享率: - + Reannounce In: 下次汇报: - + Last Seen Complete: 最后完整可见: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + 分享率/活跃时间(月份为单位),表明 torrent 的流行度 + + + + Popularity: + 流行度: + + + Total Size: 总大小: - + Pieces: 区块: - + Created By: 创建: - + Added On: 添加于: - + Completed On: 完成于: - + Created On: 创建于: - + + Private: + 私密: + + + Save Path: 保存路径: - + Never 从不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (已完成 %3) - - + + %1 (%2 this session) %1 (本次会话 %2) - - + + + N/A N/A - + + Yes + + + + + No + + + + %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) - - New Web seed - 新建 Web 种子 + + Add web seed + Add HTTP source + 新增 Web 种子 - - Remove Web seed - 移除 Web 种子 + + Add web seed: + 新增 Web 种子: - - Copy Web seed URL - 复制 Web 种子 URL + + + This web seed is already in the list. + 该 Web 种子已在此列表中。 - - Edit Web seed URL - 编辑 Web 种子 URL - - - + Filter files... 过滤文件... - + + Add web seed... + 新增 Web 种子 + + + + Remove web seed + 移除 Web 种子 + + + + Copy web seed URL + 复制 Web 种子 URL + + + + Edit web seed URL... + 编辑 Web 种子 URL... + + + Speed graphs are disabled 速度图被禁用 - + You can enable it in Advanced Options 您可以在“高级选项”中启用它 - - 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 种子 URL: @@ -8267,33 +8696,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. 无效的数据格式。 - + Couldn't save RSS AutoDownloader data in %1. Error: %2 无法在 %1 保存 RSS 自动下载器数据。错误:%2 - + Invalid data format 无效数据格式 - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... 已接受 RSS 文章 '%1',依据是规则 '%2'。正尝试添加 torrent... - + Failed to read RSS AutoDownloader rules. %1 未能读取 RSS 自动下载程序规则: %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 无法读取 RSS 自动下载器规则。原因:%1 @@ -8301,22 +8730,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 下载 RSS 订阅 '%1' 失败。原因:%2 - + RSS feed at '%1' updated. Added %2 new articles. 已更新 RSS 订阅 '%1'。添加了 %2 个新文章。 - + Failed to parse RSS feed at '%1'. Reason: %2 无法解析 RSS 订阅 '%1'。原因:%2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. 已成功下载 RSS 订阅 “%1”。开始解析。 @@ -8352,12 +8781,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. 无效的 RSS 订阅。 - + %1 (line: %2, column: %3, offset: %4). %1(行:%2,列:%3,偏移:%4)。 @@ -8365,103 +8794,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" 无法保存 RSS 会话配置。文件:“%1”。错误:“%2” - + Couldn't save RSS session data. File: "%1". Error: "%2" 无法保存 RSS 会话数据。文件:“%1”。错误:“%2” - - + + RSS feed with given URL already exists: %1. 该 URL 已在 RSS 订阅源中存在:%1。 - + Feed doesn't exist: %1. Feed 不存在:%1。 - + Cannot move root folder. 不能移动根文件夹。 - - + + Item doesn't exist: %1. 项目不存在:%1。 - - Couldn't move folder into itself. - 文件夹移动的起点和终点不能相同 + + Can't move a folder into itself or its subfolders. + 无法移动文件夹到其自身或其子文件夹中 - + Cannot delete root folder. 不能删除根文件夹。 - + Failed to read RSS session data. %1 未能读取 RSS 会话数据: %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" 未能解析 RSS 会话数据。文件:"%1"。错误: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." 未能加载 RSS 会话数据。文件:"%1"。错误: "无效的数据格式." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. 无法加载 RSS 源。源:“%1”。原因:需要 URL。 - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. 无法加载 RSS 源。源:“%1”。原因:UID 无效。 - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. 找到重复的 RSS 源。UID:“%1”,错误:配置似乎已损坏。 - + Couldn't load RSS item. Item: "%1". Invalid data format. 无法加载 RSS 项目。项目:“%1”。无效的数据格式。 - + Corrupted RSS list, not loading it. 损坏的 RSS 列表,无法加载它。 - + Incorrect RSS Item path: %1. 不正确的 RSS 项路径:%1。 - + RSS item with given path already exists: %1. 该 RSS 项的路径已存在:%1。 - + Parent folder doesn't exist: %1. 父文件夹不存在:%1。 + + RSSController + + + Invalid 'refreshInterval' value + 无效的“刷新间隔”值 + + + + Feed doesn't exist: %1. + Feed 不存在:%1。 + + + + RSSFeedDialog + + + RSS Feed Options + RSS 源选项 + + + + URL: + 网址: + + + + Refresh interval: + 刷新间隔 + + + + sec + + + + + Default + 默认 + + RSSWidget @@ -8481,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read 标记为已读 @@ -8507,132 +8977,115 @@ Those plugins were disabled. Torrent:(双击下载) - - + + Delete 删除 - + Rename... 重命名... - + Rename 重命名 - - + + Update 更新 - + New subscription... 新建订阅... - - + + Update all feeds 更新所有订阅 - + Download torrent 下载 torrent - + Open news URL 打开新闻 URL - + Copy feed URL 复制订阅源 URL - + New folder... 新建文件夹... - - Edit feed URL... - 编辑源 URL... + + Feed options... + 源选项... - - Edit feed URL - 编辑源 URL - - - + Please choose a folder name 请指定文件夹名 - + Folder name: 文件夹名: - + New folder 新建文件夹 - - - Please type a RSS feed URL - 请输入一个 RSS 订阅地址 - - - - - Feed URL: - 订阅源 URL: - - - + 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: 新订阅源名称: - + Rename failed 重命名失败 - + Date: 日期: - + Feed: 订阅源: - + Author: 作者: @@ -8640,38 +9093,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. 使用搜索引擎必须先安装 Python。 - + Unable to create more than %1 concurrent searches. 无法创建超过 %1 并发搜索。 - - + + Offset is out of range 偏移超出范围 - + All plugins are already up to date. 所有插件已准备好更新 - + Updating %1 plugins 正在更新 %1 插件 - + Updating plugin %1 正在更新插件 %1 - + Failed to check for plugin updates: %1 检查插件更新失败: %1 @@ -8746,132 +9199,142 @@ Those plugins were disabled. 大小: - + 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 - 搜索引擎 - - - + Filter search results... 过滤搜索结果... - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results 结果(显示 <i>%1</i> 条,共 <i>%2</i> 条): - + Torrent names only 仅 Torrent 名称 - + Everywhere 任意位置 - + Use regular expressions 使用正则表达式 - + Open download window 打开下载窗口 - + Download 下载 - + Open description page 打开描述页 - + Copy 复制 - + Name 名称 - + Download link 下载链接 - + Description page URL 描述页 URL - + Searching... 搜索... - + Search has finished 搜索已完成 - + Search aborted 搜索中止 - + An error occurred during search... 搜索期间发生错误... - + Search returned no results 搜索未返回任何结果 - + + Engine + 引擎 + + + + Engine URL + 引擎 URL + + + + Published On + 发布于 + + + Column visibility 显示列 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 @@ -8879,104 +9342,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. 未知的搜索引擎插件文件格式。 - + Plugin already at version %1, which is greater than %2 插件当前版本为 %1,比 %2 更新。 - + A more recent version of this plugin is already installed. 已安装此插件的更新版本。 - + Plugin %1 is not supported. 不支持插件 %1。 - - + + Plugin is not supported. 不支持的插件。 - + Plugin %1 has been successfully updated. 插件 %1 已成功更新。 - + All categories 所有分类 - + Movies 电影 - + TV shows 电视节目 - + Music 音乐 - + Games 游戏 - + Anime 动画 - + Software 软件 - + Pictures 图片 - + Books 书籍 - + Update server is temporarily unavailable. %1 更新服务器暂时不可用。%1 - - + + Failed to download the plugin file. %1 无法下载插件文件。%1 - + Plugin "%1" is outdated, updating to version %2 插件 "%1" 已过时,正在更新至 %2 版本 - + Incorrect update info received for %1 out of %2 plugins. 在 %2 插件中收到 %1 不正确的更新信息。 - + Search plugin '%1' contains invalid version string ('%2') 搜索插件 '%1' 包含无效的版本字符串 ('%2') @@ -8986,114 +9449,145 @@ Those plugins were disabled. - - - - Search 搜索 - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. 您未安装任何搜索插件。 点击窗口右下角的 "搜索插件..." 按钮来安装一些插件。 - + Search plugins... 搜索插件... - + A phrase to search for. 欲搜索的关键词。 - + Spaces in a search term may be protected by double quotes. 可以使用双引号防止搜索关键词中的空格被忽略。 - + Example: Search phrase example 例如: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>: 搜索 <b>foo bar</b> - + All plugins 所有插件 - + Only enabled 仅启用的 - + + + Invalid data format. + 无效的数据格式。 + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>:搜索 <b>foo</b> 和 <b>bar</b> - + + Refresh + 刷新 + + + Close tab 关闭标签 - + Close all tabs 关闭所有标签 - + Select... 选择... - - - + + Search Engine 搜索引擎 - + + Please install Python to use the Search Engine. 请安装 Python 以使用搜索引擎。 - + Empty search pattern 无搜索关键词 - + Please type a search pattern first 请先输入关键词 - + + Stop 停止 + + + SearchWidget::DataStorage - - Search has finished - 搜索完毕 + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + 加载搜索用户界面已保存的状态数据失败。文件:“%1”。错误:“%2” - - Search has failed - 搜索失败 + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + 加载已保存的搜索结果失败。分页:“%1”。文件:“%2”。错误:“%3” + + + + Failed to save Search UI state. File: "%1". Error: "%2" + 保存搜索用户界面状态失败。文件:“%1”。错误:“%2” + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + 保存搜索结果失败。分页:“%1”。文件:“%2”。错误:“%3” + + + + Failed to load Search UI history. File: "%1". Error: "%2" + 加载搜索用户界面历史失败。文件:“%1”。错误:“%2” + + + + Failed to save search history. File: "%1". Error: "%2" + 保存搜索历史失败。文件:“%1”。错误:“%2” @@ -9206,34 +9700,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: 上传: - - - + + + - - - + + + KiB/s KiB/s - - + + Download: 下载: - + Alternative speed limits 备用速率限制 @@ -9425,32 +9919,32 @@ Click the "Search plugins..." button at the bottom right of the window 在队列的平均时间: - + Connected peers: 已连接的用户数: - + All-time share ratio: 全局分享率: - + All-time download: 总计下载: - + Session waste: 本次会话丢弃数据: - + All-time upload: 全局上传: - + Total buffer size: 总缓冲大小: @@ -9465,12 +9959,12 @@ Click the "Search plugins..." button at the bottom right of the window 队列的 I/O 任务: - + Write cache overload: 写入缓存超负荷: - + Read cache overload: 读取缓存超负荷: @@ -9489,51 +9983,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: 连接状态: - - + + No direct connections. This may indicate network configuration problems. 无直接连接。这也许表明网络设置存在问题。 - - + + Free space: N/A + 可用空间:N/A + + + + + External IP: N/A + 外部 IP:N/A + + + + DHT: %1 nodes DHT:%1 结点 - + qBittorrent needs to be restarted! 需要重启 qBittorrent! - - - + + + Connection Status: 连接状态: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. 离线。这通常是 qBittorrent 无法监听传入连接的端口。 - + Online 联机 - + + Free space: + 可用空间: + + + + External IPs: %1, %2 + 外部 IP:%1, %2 + + + + External IP: %1%2 + 外部 IP:%1%2 + + + Click to switch to alternative speed limits 点击以切换到备用速度限制 - + Click to switch to regular speed limits 点击以切换到常规速度限制 @@ -9563,13 +10083,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - 恢复 (0) + Running (0) + 正运行 (0) - Paused (0) - 暂停 (0) + Stopped (0) + 已停止 (0) @@ -9631,36 +10151,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) 完成 (%1) + + + Running (%1) + 正运行 (%1) + - Paused (%1) - 暂停 (%1) + Stopped (%1) + 已停止 (%1) + + + + Start torrents + 启动 torrent + + + + Stop torrents + 停止 torrent Moving (%1) 正在移动 (%1) - - - Resume torrents - 继续 Torrent - - - - Pause torrents - 暂停 Torrent - Remove torrents 移除 Torrent - - - Resumed (%1) - 恢复 (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags 删除未使用的标签 - - - Resume torrents - 继续 torrent - - - - Pause torrents - 暂停 torrent - Remove torrents 移除 Torrent - - New Tag - 新标签 + + Start torrents + 启动 torrent + + + + Stop torrents + 停止 torrent Tag: 标签: + + + Add tag + 添加标签 + Invalid tag name @@ -9903,32 +10423,32 @@ Please choose a different name and try again. TorrentContentModel - + Name 名称 - + Progress 进度 - + Download Priority 下载优先级 - + Remaining 剩余 - + Availability 可用性 - + Total Size 总大小 @@ -9973,98 +10493,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error 重命名出错 - + Renaming 重命名 - + New name: 新名称: - + Column visibility 显示列 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 - + Open 打开 - + Open containing folder 打开包含文件夹 - + Rename... 重命名... - + Priority 优先级 - - + + Do not download 不下载 - + Normal 正常 - + High - + Maximum 最高 - + By shown file order 按显示的文件顺序 - + Normal priority 正常优先级 - + High priority 高优先级 - + Maximum priority 最高优先级 - + Priority by shown file order 按文件顺序显示的优先级 @@ -10072,19 +10592,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + 活跃任务太多了 - + Torrent creation is still unfinished. - + 仍未完成 Torrent 创建 - + Torrent creation failed. - + Torrent 创建失败了。 @@ -10111,13 +10631,13 @@ Please choose a different name and try again. - + Select file 选择文件 - + Select folder 选择文件夹 @@ -10192,87 +10712,83 @@ Please choose a different name and try again. 字段 - + You can separate tracker tiers / groups with an empty line. 你可以用一个空行分隔 Tracker 层级 / 组。 - + Web seed URLs: Web 种子 URL: - + Tracker URLs: Tracker URL: - + Comments: 注释: - + Source: 源: - + Progress: 进度: - + Create Torrent 制作 Torrent - - + + Torrent creation failed Torrent 制作失败 - + Reason: Path to file/folder is not readable. 原因:目标文件/文件夹不可读。 - + Select where to save the new torrent 选择路径存放新 torrent - + Torrent Files (*.torrent) Torrent 文件 (*.torrent) - Reason: %1 - 原因:%1 - - - + Add torrent to transfer list failed. 添加 Torrent 到传输列表失败。 - + Reason: "%1" 原因:"%1" - + Add torrent failed 添加 torrent 失败 - + Torrent creator 制作 Torrent - + Torrent created: Torrent 已创建: @@ -10280,32 +10796,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 未能加载已关注文件夹的配置:%1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" 未能从 %1 解析已关注文件夹的配置。错误:"%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." 未能从 %1 解析已关注文件夹的配置。错误:"无效的数据格式" - + Couldn't store Watched Folders configuration to %1. Error: %2 无法将监视文件夹配置存储到 %1。 错误:%2 - + Watched folder Path cannot be empty. 所监视的文件夹路径不能为空。 - + Watched folder Path cannot be relative. 所监视的文件夹路径不能是相对的。 @@ -10313,44 +10829,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 无效磁力 URI。URI:%1。原因:%2 - + Magnet file too big. File: %1 磁力文件太大。文件:%1 - + Failed to open magnet file: %1 无法打开 magnet 文件:%1 - + Rejecting failed torrent file: %1 拒绝失败的 Torrent 文件: %1 - + Watching folder: "%1" 监视文件夹:“%1” - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - 读取文件时未能分配内存。文件: "%1"。错误: "%2" - - - - Invalid metadata - 元数据无效 - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Please choose a different name and try again. 对不完整的 Torrent 使用另一个路径 - + Category: 分类: - - Torrent speed limits - Torrent 速度限制 + + Torrent Share Limits + Torrent 分享率限制 - + Download: 下载: - - + + - - + + Torrent Speed Limits + Torrent 速度限制 + + + + KiB/s KiB/s - + These will not exceed the global limits 这些将不会超过全局限制 - + Upload: 上传: - - Torrent share limits - Torrent 分享限制 - - - - Use global share limit - 使用全局分享限制 - - - - Set no share limit - 设置为无分享限制 - - - - Set share limit to - 设置分享限制为 - - - - ratio - 分享率 - - - - total minutes - 总分钟 - - - - inactive minutes - 不活跃分钟 - - - + Disable DHT for this torrent 禁用此 Torrent 的 DHT - + Download in sequential order 按顺序下载 - + Disable PeX for this torrent 禁用此 Torrent 的 PeX - + Download first and last pieces first 先下载首尾文件块 - + Disable LSD for this torrent 禁用此 Torrent 的 LSD - + Currently used categories 当前使用的分类 - - + + Choose save path 选择保存路径 - + Not applicable to private torrents 不适用于私有 Torrent - - - No share limit method selected - 未指定分享限制方式 - - - - Please select a limit method first - 请先选择一个限制方式 - TorrentShareLimitsWidget - - - + + + + Default - 默认 + 默认 + + + + + + Unlimited + 无限制的 - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + 已设为 + + + + Seeding time: + 做种时间: + + + + + + + + min minutes - + 分钟 - + Inactive seeding time: - + 不活跃的做种时间: - + + Action when the limit is reached: + 达到限制时采取的操作: + + + + Stop torrent + 停止 torrent + + + + Remove torrent + 删除 torrent + + + + Remove torrent and its content + 删除 torrent 及其内容 + + + + Enable super seeding for torrent + 为 torrent 启用超级做种 + + + Ratio: - + 比率 @@ -10558,32 +11049,32 @@ Please choose a different name and try again. Torrent 标签 - - New Tag - 新标签 + + Add tag + 添加标签 - + Tag: 标签: - + Invalid tag name 无效标签名 - + Tag name '%1' is invalid. 标签名 “%1” 无效。 - + Tag exists 标签已存在 - + Tag name already exists. 标签名已存在。 @@ -10591,115 +11082,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. 错误:'%1' 不是一个有效的 torrent 文件。 - + Priority must be an integer 优先级必须是整数 - + Priority is not valid 优先级无效 - + Torrent's metadata has not yet downloaded Torrent 的元数据尚未下载 - + File IDs must be integers 文件 ID 必须是整数 - + File ID is not valid 文件 ID 无效 - - - - + + + + Torrent queueing must be enabled 必须启用 torrent 队列 - - + + Save path cannot be empty 保存路径不能为空 - - + + Cannot create target directory 无法创建目标目录 - - + + Category cannot be empty 分类不能为空 - + Unable to create category 无法创建分类 - + Unable to edit category 无法编辑分类 - + Unable to export torrent file. Error: %1 无法导出 Torrent 文件。错误:%1 - + Cannot make save path 无法保存路径 - + + "%1" is not a valid URL + “%1” 不是有效的 URL + + + + URL scheme must be one of [%1] + URL 形式必须为其中之一 [%1] + + + 'sort' parameter is invalid “sort” 参数无效 - + + "%1" is not an existing URL + URL “%1” 不存在 + + + "%1" is not a valid file index. “%1” 不是有效的文件索引。 - + Index %1 is out of bounds. 索引 %1 超出范围。 - - + + Cannot write to directory 无法写入目录 - + WebUI Set location: moving "%1", from "%2" to "%3" Web UI 设置路径:从 "%2" 移动 "%1" 至 "%3" - + Incorrect torrent name 不正确的 torrent 名称 - - + + Incorrect category name 不正确的分类名 @@ -10730,196 +11236,191 @@ Please choose a different name and try again. TrackerListModel - + Working 工作 - + Disabled 禁用 - + Disabled for this torrent 对此 Torrent 禁用 - + This torrent is private 这是私有 torrent - + N/A N/A - + Updating... 更新... - + Not working 未工作 - + Tracker error Tracker 错误 - + Unreachable 无法连接 - + Not contacted yet 未联系 - - Invalid status! + + Invalid state! 无效状态! - - URL/Announce endpoint - URL/汇报 + + URL/Announce Endpoint + URL/Announce 端点 - + + BT Protocol + BT 协议 + + + + Next Announce + 下一个 Announce + + + + Min Announce + 最小 Announce + + + Tier 层级 - - Protocol - 协议 - - - + Status 状态 - + Peers 用户 - + Seeds 种子 - + Leeches 下载 - + Times Downloaded 下载次数 - + Message 消息 - - - Next announce - 下次汇报 - - - - Min announce - 最小汇报 - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private 这是私有 torrent - + Tracker editing 编辑 Tracker - + Tracker URL: Tracker URL: - - + + Tracker editing failed Tracker 编辑失败 - + The tracker URL entered is invalid. 输入的 tracker URL 是无效的。 - + The tracker URL already exists. 这个 tracker URL 已经存在。 - + Edit tracker URL... 编辑 tracker URL... - + Remove tracker 移除 tracker - + Copy tracker URL 复制 tracker URL - + Force reannounce to selected trackers 强制向选定的 Tracker 重新汇报 - + Force reannounce to all trackers 强制向所有 Tracker 重新汇报 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 - + Add trackers... 添加 Tracker... - + Column visibility 显示列 @@ -10937,37 +11438,37 @@ Please choose a different name and try again. 要添加的 tracker 列表 (每行一个): - + µTorrent compatible list URL: µTorrent 兼容的 URL 列表: - + Download trackers list 下载 Tracker 列表 - + Add 添加 - + Trackers list URL error Tracker 列表 URL 错误 - + The trackers list URL cannot be empty Tracker 列表 URL 不能为空 - + Download trackers list error 下载 Tracker 列表出错 - + Error occurred when downloading the trackers list. Reason: "%1" 下载 Tracker 列表时出错。原因:“%1” @@ -10975,62 +11476,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) 警告 (%1) - + Trackerless (%1) 缺少 Tracker (%1) - + Tracker error (%1) Tracker 错误(%1) - + Other error (%1) 其他错误(%1) - + Remove tracker 移除 tracker - - Resume torrents - 继续 Torrent + + Start torrents + 启动 torrent - - Pause torrents - 暂停 Torrent + + Stop torrents + 停止 torrent - + Remove torrents 移除 Torrent - + Removal confirmation 移除确认 - + Are you sure you want to remove tracker "%1" from all torrents? 你确定要从所有 Torrent 移除 Tracker "%1"吗? - + Don't ask me again. 不要再询问我。 - + All (%1) this is for the tracker filter 全部 (%1) @@ -11039,7 +11540,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument “mode”:无效参数 @@ -11131,11 +11632,6 @@ Please choose a different name and try again. 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. 校验恢复数据 - - - Paused - 暂停 - Completed @@ -11159,220 +11655,252 @@ Please choose a different name and try again. 错误 - + Name i.e: torrent name 名称 - + Size i.e: torrent size 选定大小 - + Progress % Done 进度 - + + Stopped + 已停止 + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) 状态 - + Seeds i.e. full sources (often untranslated) 做种数 - + Peers i.e. partial sources (often untranslated) 用户 - + Down Speed i.e: Download speed 下载速度 - + Up Speed i.e: Upload speed 上传速度 - + Ratio Share ratio 比率 - + + Popularity + 流行度 + + + ETA i.e: Estimated Time of Arrival / Time left 剩余时间 - + Category 分类 - + Tags 标签 - + Added On Torrent was added to transfer list on 01/01/2010 08:00 添加于 - + Completed On Torrent was completed on 01/01/2010 08:00 完成于 - + Tracker Tracker - + Down Limit i.e: Download limit 下载限制 - + Up Limit i.e: Upload limit 上传限制 - + Downloaded Amount of data downloaded (e.g. in MB) 已下载 - + Uploaded Amount of data uploaded (e.g. in MB) 已上传 - + 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) 本次会话上传 - + Remaining Amount of data left to download (e.g. in MB) 剩余 - + Time Active - Time (duration) the torrent is active (not paused) - 活动时间 + Time (duration) the torrent is active (not stopped) + 有效时间 - + + Yes + + + + + No + + + + Save Path Torrent save path 保存路径 - + Incomplete Save Path Torrent incomplete save path 保存路径不完整 - + Completed Amount of data completed (e.g. in MB) 已完成 - + Ratio Limit Upload share ratio limit 比率限制 - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole 最后完整可见 - + Last Activity Time passed since a chunk was downloaded/uploaded 最近活动 - + Total Size i.e. Size including unwanted data 总大小 - + Availability The number of distributed copies of the torrent 可用性 - + Info Hash v1 i.e: torrent info hash v1 信息哈希值 v1 - + Info Hash v2 i.e: torrent info hash v2 信息哈希值 v2 - + Reannounce In Indicates the time until next trackers reannounce 下次重新汇报 - - + + Private + Flags private torrents + 私密 + + + + Ratio / Time Active (in months), indicates how popular the torrent is + 分享率/活跃时间(月份为单位),表明 torrent 的流行度 + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 前 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (已做种 %2) @@ -11381,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility 是否显示列 - + Recheck confirmation 确认重新校验 - + Are you sure you want to recheck the selected torrent(s)? 您确定要重新校验所选的 Torrent 吗? - + Rename 重命名 - + New name: 新名称: - + Choose save path 选择保存路径 - - Confirm pause - 确认暂停 - - - - Would you like to pause all torrents? - 您要暂停所有的 Torrent 吗? - - - - Confirm resume - 确认继续 - - - - Would you like to resume all torrents? - 您要继续所有的 Torrent 吗? - - - + Unable to preview 无法预览 - + The selected torrent "%1" does not contain previewable files 已选中的 torrent "%1" 不包含任何可预览的文件 - + Resize columns 调整列大小 - + Resize all non-hidden columns to the size of their contents 将所有非隐藏列的大小调整为其内容的大小 - + Enable automatic torrent management 启用自动 Torrent 管理 - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. 你确定要为选定的 Torrent 启用自动 Torrent 管理吗?它们可能会被移动到新位置。 - - Add Tags - 添加标签 - - - + Choose folder to save exported .torrent files 选择保存所导出 .torrent 文件的文件夹 - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" 导出 .torrent 文件失败。Torrent:“%1”。保存路径:“%2”。原因:“%3” - + A file with the same name already exists 已存在同名文件 - + Export .torrent file error 导出 .torrent 文件错误 - + Remove All Tags 删除所有标签 - + Remove all tags from selected torrents? 从选中的 Torrent 中删除所有标签? - + Comma-separated tags: 标签(以逗号分隔): - + Invalid tag 无效标签 - + Tag name: '%1' is invalid 标签名:'%1' 无效 - - &Resume - Resume/start the torrent - 继续(&R) - - - - &Pause - Pause the torrent - 暂停(&P) - - - - Force Resu&me - Force Resume/start the torrent - 强制继续(&M) - - - + Pre&view file... 预览文件(&V)... - + Torrent &options... Torrent 选项(&O)... - + Open destination &folder 打开目标文件夹(&F) - + Move &up i.e. move up in the queue 上移(&U) - + Move &down i.e. Move down in the queue 下移(&D) - + Move to &top i.e. Move to top of the queue 移至顶部(&T) - + Move to &bottom i.e. Move to bottom of the queue 移至底部(&B) - + Set loc&ation... 设定位置(&A)... - + Force rec&heck 强制重新检查(&H) - + Force r&eannounce 强制重新汇报(&E) - + &Magnet link 磁力链接(&M) - + Torrent &ID Torrent ID(&I) - + &Comment 注释(&C) - + &Name 名称(&N) - + Info &hash v1 信息哈希值 v1(&H) - + Info h&ash v2 信息哈希值 v2(&A) - + Re&name... 重命名(&N)... - + Edit trac&kers... 编辑 Tracker(&K)... - + E&xport .torrent... 导出 .torrent(&X)... - + Categor&y 分类(&Y) - + &New... New category... 新建(&N)... - + &Reset Reset category 重置(&R) - + Ta&gs 标签(&G) - + &Add... Add / assign multiple tags... 添加(&A)... - + &Remove All Remove all tags 删除全部(&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + 如 torrent 被停止/加入队列/出错/正在检查,则无法强制重新 announce + + + &Queue 队列(&Q) - + &Copy 复制(&C) - + Exported torrent is not necessarily the same as the imported 导出的 Torrent 未必和导入的相同 - + Download in sequential order 按顺序下载 - + + Add tags + 添加标签 + + + Errors occurred when exporting .torrent files. Check execution log for details. 导出 .torrent 文件时发生错误。详细信息请查看执行日志。 - + + &Start + Resume/start the torrent + 启动(&S) + + + + Sto&p + Stop the torrent + 停止(&P) + + + + Force Star&t + Force Resume/start the torrent + 强制启动(&T) + + + &Remove Remove the torrent 移除(&R) - + Download first and last pieces first 先下载首尾文件块 - + Automatic Torrent Management 自动 Torrent 管理 - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category 自动模式意味着各种 Torrent 属性(例如保存路径)将由相关的分类决定 - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - 如果 Torrent 处于暂停/排队/出错/检查状态,则无法强制重新汇报 - - - + Super seeding mode 超级做种模式 @@ -11758,28 +12266,28 @@ Please choose a different name and try again. 图标 ID - + UI Theme Configuration. 用户界面主题配置。 - + The UI Theme changes could not be fully applied. The details can be found in the Log. 无法完全应用用户界面主题更改。详情见日志。 - + Couldn't save UI Theme configuration. Reason: %1 无法保存用户界面主题配置。原因:%1 - - + + Couldn't remove icon file. File: %1. 无法删除图标文件。文件:%1。 - + Couldn't copy icon file. Source: %1. Destination: %2. 无法复制图标文件。来源:%1。目标:%2。 @@ -11787,7 +12295,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + 设置应用程序样式失败。未知样式:"%1" + + + Failed to load UI theme from file: "%1" 从文件加载 UI 主题失败:"%1" @@ -11818,20 +12331,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" 合并个性化设置失败:WebUI https,文件:"%1",错误:"%2" - + Migrated preferences: WebUI https, exported data to file: "%1" 合并个性化设置成功:WebUI https,数据已导出至文件:"%1" - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". 在配置文件中找到了无效的值,将其还原为默认值。键:“%1”。无效值:“%2”。 @@ -11839,32 +12353,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" 发现 Python 可执行文件。名称:"%1"。版本:"%2" - + Failed to find Python executable. Path: "%1". 未发现 Python 可执行文件。路径:"%1"。 - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" 未在 PATH 环境变量下发现`python3`可执行文件。PATH:"%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" 未在 PATH 环境变量下发现`python`可执行文件。PATH:"%1" - + Failed to find `python` executable in Windows Registry. 未在 Windows 注册表里发现`python`可执行文件。 - + Failed to find Python executable 查找 Python 可执行文件失败 @@ -11956,72 +12470,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. 指定了不可接受的会话 cookie 名:“%1”。将使用默认值。 - + Unacceptable file type, only regular file is allowed. 不可接受的文件类型,只允许使用常规文件。 - + Symlinks inside alternative UI folder are forbidden. 备用 UI 目录中不允许使用符号链接。 - + Using built-in WebUI. 使用内置 WebUI - + Using custom WebUI. Location: "%1". 使用自定义 WebUI。位置:"%1". - + WebUI translation for selected locale (%1) has been successfully loaded. 成功加载了所选语言环境 (%1) 的 WebUI 翻译 - + Couldn't load WebUI translation for selected locale (%1). 无法加载所选语言环境 (%1) 的 Web UI 翻译。 - + Missing ':' separator in WebUI custom HTTP header: "%1" 自定义 WebUI HTTP 头字段缺少分隔符 “:”:“%1” - + Web server error. %1 Web 服务器错误:%1 - + Web server error. Unknown error. Web 服务器错误:未知错误。 - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI: 请求 Header 中 Origin 与 XFH/Host 不匹配!来源 IP: '%1'。Origin: '%2'。XFH/Host: '%3' - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI: 请求 Header 中 Referer 与 XFH/Host 不匹配!来源 IP: '%1'。Referer: '%2'。XFH/Host: '%3' - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI:无效的 Host header,端口不匹配。请求的来源 IP:“%1”。服务器端口:“%2”。收到的 Host header:“%3” - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI:无效的 Host header。请求的来源 IP:“%1”。收到的 Host header:“%2” @@ -12029,125 +12543,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set 未设置凭据 - + WebUI: HTTPS setup successful WebUI: HTTPS 设置成功 - + WebUI: HTTPS setup failed, fallback to HTTP Web UI: HTTPS 配置失败,回退至 HTTP - + WebUI: Now listening on IP: %1, port: %2 Web UI:正在监听 IP:%1,端口:%2 - + Unable to bind to IP: %1, port: %2. Reason: %3 Web UI:无法绑定到 IP:%1,端口:%2。原因:%3 + + fs + + + Unknown error + 未知错误 + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 分钟 - + %1h %2m e.g: 3 hours 5 minutes %1 小时 %2 分钟 - + %1d %2h e.g: 2 days 10 hours %1 天 %2 小时 - + %1y %2d e.g: 2 years 10 days %1 年 %2 天 - - + + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. 所有下载已完成,qBittorrent 将关闭电脑。 - + < 1m < 1 minute < 1 分钟 diff --git a/src/lang/qbittorrent_zh_HK.ts b/src/lang/qbittorrent_zh_HK.ts index a21dc17d0..007ab5fd8 100644 --- a/src/lang/qbittorrent_zh_HK.ts +++ b/src/lang/qbittorrent_zh_HK.ts @@ -14,75 +14,75 @@ 關於 - + Authors 作者 - + Current maintainer 目前維護者 - + Greece 希臘 - - + + Nationality: 國家: - - + + E-mail: 電郵: - - + + Name: 姓名: - + Original author 原作者 - + France 法國 - + Special Thanks 鳴謝 - + Translators 翻譯 - + License 授權 - + Software Used 使用的軟件 - + qBittorrent was built with the following libraries: qBittorrent使用下列函式庫建立: - + Copy to clipboard @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 qBittorrent 專案 + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 qBittorrent 專案 @@ -166,15 +166,10 @@ 儲存於 - + Never show again 不要再顯示 - - - Torrent settings - Torrent設定 - Set as default category @@ -191,12 +186,12 @@ 開始Torrent - + Torrent information Torrent資訊 - + Skip hash check 略過驗證碼檢查 @@ -205,6 +200,11 @@ Use another path for incomplete torrent 使用其他路徑取得不完整的 torrent + + + Torrent options + + Tags: @@ -231,75 +231,75 @@ 停止條件: - - + + None - - + + Metadata received 收到的元資料 - + Torrents that have metadata initially will be added as stopped. - - + + Files checked 已檢查的檔案 - + Add to top of queue 加至佇列頂部 - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog 勾選後,無論「選項」對話方塊中的「下載」頁面的設定如何,都不會刪除 .torrent 檔案 - + Content layout: 內容佈局: - + Original 原版 - + Create subfolder 建立子資料夾 - + Don't create subfolder 不要建立子資料夾 - + Info hash v1: 資訊雜湊值 v1: - + Size: 大小: - + Comment: 評註: - + Date: 日期: @@ -329,151 +329,147 @@ 記住最後一次儲存路徑 - + Do not delete .torrent file 不要刪除「.torrent」檔 - + Download in sequential order 按順序下載 - + Download first and last pieces first 先下載首片段和最後片段 - + Info hash v2: 資訊雜湊值 v2: - + Select All 全選 - + Select None 全不選 - + Save as .torrent file... 另存為 .torrent 檔案…… - + I/O Error 入出錯誤 - + Not Available This comment is unavailable 不可選用 - + Not Available This date is unavailable 不可選用 - + Not available 不可選用 - + Magnet link 磁性連結 - + Retrieving metadata... 檢索元資料… - - + + Choose save path 選取儲存路徑 - + No stop condition is set. 停止條件未設定。 - + Torrent will stop after metadata is received. Torrent會在收到元資料後停止。 - Torrents that have metadata initially aren't affected. - 一開始就有元資料的 torrent 則不受影響。 - - - + Torrent will stop after files are initially checked. 初步檢查完檔案後,Torrent 將會停止。 - + This will also download metadata if it wasn't there initially. 如果一開始不存在,這也會下載元資料。 - - + + N/A N/A - + %1 (Free space on disk: %2) %1(硬碟上的可用空間:%2) - + Not available This size is unavailable. 無法使用 - + Torrent file (*%1) Torrent 檔案 (*%1) - + Save as torrent file 另存為 torrent 檔案 - + Couldn't export torrent metadata file '%1'. Reason: %2. 無法匯出 torrent 詮釋資料檔案「%1」。理由:%2。 - + Cannot create v2 torrent until its data is fully downloaded. 在完全下載其資料前無法建立 v2 torrent。 - + Filter files... 過濾檔案… - + Parsing metadata... 解析元資料… - + Metadata retrieval complete 完成檢索元資料 @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" - + Failed to add torrent. Source: "%1". Reason: "%2" - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - - - - + Merging of trackers is disabled - + Trackers cannot be merged because it is a private torrent - + Trackers are merged from new source + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent 速度限制 + Torrent 速度限制 @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion 完成後重新檢查Torrent - - + + ms milliseconds 毫秒 - + Setting 設定 - + Value Value set for this setting - + (disabled) (已停用) - + (auto) (自動) - + + min minutes 分鐘 - + All addresses 全部位址 - + qBittorrent Section qBittorrent部份 - - + + Open documentation 網上說明 - + All IPv4 addresses 所有 IPv4 位址 - + All IPv6 addresses 所有 IPv6 位址 - + libtorrent Section libtorrent部份 - + Fastresume files 快速復原檔案 - + SQLite database (experimental) SQLite 資料庫(實驗性) - + Resume data storage type (requires restart) 復原資料儲存類型(需要重新啟動) - + Normal 一般 - + Below normal 低於一般 - + Medium 中等 - + Low - + Very low 非常低 - + Physical memory (RAM) usage limit 實體記憶體 (RAM) 使用率限制 - + Asynchronous I/O threads 異步入出執行緒 - + Hashing threads 雜湊執行緒 - + File pool size 檔案叢集大小 - + Outstanding memory when checking torrents 檢查Torrent時未處理資料暫存 - + Disk cache 磁碟快存 - - - - + + + + + s seconds - + Disk cache expiry interval 磁碟快存到期間距 - + Disk queue size 磁碟佇列大小 - - + + Enable OS cache 啟用作業系統快存 - + Coalesce reads & writes 結合讀取和寫入 - + Use piece extent affinity 使用片段範圍關聯 - + Send upload piece suggestions 傳送上載片段建議 - - - - + + + + + 0 (disabled) - + Save resume data interval [0: disabled] How often the fastresume file is saved. - + Outgoing ports (Min) [0: disabled] - + Outgoing ports (Max) [0: disabled] - + 0 (permanent lease) - + UPnP lease duration [0: permanent lease] - + Stop tracker timeout [0: disabled] - + Notification timeout [0: infinite, -1: system default] - + Maximum outstanding requests to a single peer 對單個 peer 的最多未完成請求 - - - - - + + + + + KiB KiB - + (infinite) - + (system default) - + + Delete files permanently + + + + + Move files to trash (if possible) + + + + + Torrent content removing mode + + + + This option is less effective on Linux 這個選項在 Linux 上沒那麼有效 - + Process memory priority - + Bdecode depth limit - + Bdecode token limit - + Default 預設 - + Memory mapped files 記憶體對映檔案 - + POSIX-compliant 遵循 POSIX - + + Simple pread/pwrite + + + + Disk IO type (requires restart) 硬碟 IO 類型(須重新啟動) - - + + Disable OS cache 停用作業系統快取 - + Disk IO read mode 磁碟 IO 讀取模式 - + Write-through 連續寫入 - + Disk IO write mode 磁碟 IO 寫入模式 - + Send buffer watermark 傳送緩衝區上限 - + Send buffer low watermark 傳送緩衝區下限 - + Send buffer watermark factor 傳送緩衝區上下限因素 - + Outgoing connections per second 每秒對外連線數 - - + + 0 (system default) - + Socket send buffer size [0: system default] - + Socket receive buffer size [0: system default] - + Socket backlog size Socket 紀錄檔大小 - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + + + + .torrent file size limit - + Type of service (ToS) for connections to peers 與 peers 連線的服務類型 (ToS) - + Prefer TCP 傾向使用TCP - + Peer proportional (throttles TCP) 同路人按比例(抑制TCP) - + + Internal hostname resolver cache expiry interval + + + + Support internationalized domain name (IDN) 支援國際化域名 (IDN) - + Allow multiple connections from the same IP address 容許來自相同IP位置的多重連接 - + Validate HTTPS tracker certificates 驗證 HTTPS Tracker 憑證 - + Server-side request forgery (SSRF) mitigation 伺服器端請求偽造 (SSRF) 緩解 - + Disallow connection to peers on privileged ports 不允許連線到在特權通訊埠上的 peer - + It appends the text to the window title to help distinguish qBittorent instances - + Customize application instance name - + It controls the internal state update interval which in turn will affect UI updates 控制內部狀態更新間隔,進而影響使用者界面更新 - + Refresh interval 重新整理間隔 - + Resolve peer host names 分析同路人主機名 - + IP address reported to trackers (requires restart) 向追蹤器回報的 IP 位置(需要重新啟動) - + + Port reported to trackers (requires restart) [0: listening port] + + + + Reannounce to all trackers when IP or port changed 當 IP 或通訊埠變更時回報至所有Tracker - + Enable icons in menus 在選單中啟用圖示 - + + Attach "Add new torrent" dialog to main window + + + + Enable port forwarding for embedded tracker 為內置的Tracker啟用通訊埠轉發 - + Enable quarantine for downloaded files - + Enable Mark-of-the-Web (MOTW) for downloaded files - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + + + + + Ignore SSL errors + + + + (Auto detect if empty) - + Python executable path (may require restart) - - Confirm removal of tracker from all torrents - - - - - Peer turnover disconnect percentage - Peer 流動斷線百分比 - - - - Peer turnover threshold percentage - Peer 流動閾值百分比 - - - - Peer turnover disconnect interval - Peer 流動斷線間隔 - - - - Resets to default if empty + + Start BitTorrent session in paused state + sec + seconds + + + + + -1 (unlimited) + + + + + BitTorrent session shutdown timeout [-1: unlimited] + + + + + Confirm removal of tracker from all torrents + + + + + Peer turnover disconnect percentage + Peer 流動斷線百分比 + + + + Peer turnover threshold percentage + Peer 流動閾值百分比 + + + + Peer turnover disconnect interval + Peer 流動斷線間隔 + + + + Resets to default if empty + + + + DHT bootstrap nodes - + I2P inbound quantity - + I2P outbound quantity - + I2P inbound length - + I2P outbound length - + Display notifications 顯示程式通知 - + Display notifications for added torrents 顯示已加入Torrent的通知 - + Download tracker's favicon 下載追蹤器圖示 - + Save path history length 記住的儲存路徑數量 - + Enable speed graphs 啟用速度圖 - + Fixed slots 固定通道 - + Upload rate based 基於上載速度 - + Upload slots behavior 上載通道行為 - + Round-robin 輪流上載 - + Fastest upload 最快上載 - + Anti-leech 反依附 - + Upload choking algorithm 上載與否推算法 - + Confirm torrent recheck 重新檢查Torrent時須確認 - + Confirm removal of all tags 確認清除全部標籤 - + Always announce to all trackers in a tier 總是公告到同一追蹤器群組內全部的追蹤器 - + Always announce to all tiers 總是公告到全部追蹤器群組 - + Any interface i.e. Any network interface 任何介面 - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP混合模式推算法 - + Resolve peer countries 解析 peer 國家 - + Network interface 網絡介面 - + Optional IP address to bind to 可選擇綁紮的 IP 地址 - + Max concurrent HTTP announces 最大並行 HTTP 回報 - + Enable embedded tracker 啟用嵌入式追蹤器 - + Embedded tracker port 嵌入式追蹤器埠 + + AppController + + + + Invalid directory path + + + + + Directory does not exist + + + + + Invalid mode, allowed values: %1 + + + + + cookies must be array + + + Application - + Running in portable mode. Auto detected profile folder at: %1 正以可攜模式執行。自動偵測到的設定檔資料夾位於:%1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. 偵測到冗餘的命令列旗標:「%1」。可攜模式代表了相對快速的恢復。 - + Using config directory: %1 正在使用設定目錄:%1 - + 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。 - + Torrent: %1, sending mail notification Torrent:%1,傳送電郵通知 - + Add torrent failed - + Couldn't add torrent '%1', reason: %2. - + The WebUI administrator username is: %1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 - + You should set your own password in program preferences. - + The WebUI is disabled! To enable the WebUI, edit the config file manually. - + Running external program. Torrent: "%1". Command: `%2` 正在執行外部程式。Torrent:「%1」。指令:「%2」 - + Failed to run external program. Torrent: "%1". Command: `%2` - + Torrent "%1" has finished downloading Torrent「%1」已下載完畢 - + WebUI will be started shortly after internal preparations. Please wait... WebUI 將在內部準備不久後啟動。請稍等… - - + + Loading torrents... 正在載入 torrent… - + E&xit 關閉(&X) - + I/O Error i.e: Input/Output Error I/O 錯誤 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ 理由:「%2」 - + Torrent added 已新增 Torrent - + '%1' was added. e.g: xxx.avi was added. 「%1」已新增。 - + Download completed 下載完成 - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started - + + This is a test email. + + + + + Test email + + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. 「%1」已下載完畢。 - + Information 資訊 - + To fix the error, you may need to edit the config file manually. - + To control qBittorrent, access the WebUI at: %1 要控制 qBittorrent,請從 %1 造訪 WebUI - + Exit 關閉 - + Recursive download confirmation 確認反復下載 - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent「%1」包含 .torrent 檔案,您想要執行下載作業嗎? - + Never 從不 - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" 在 torrent 中遞迴下載 .torrent 檔案。來源 torrent:「%1」。檔案:「%2」 - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" 設定實體記憶體(RAM)使用率限制失敗。錯誤代碼:%1。錯誤訊息:「%2」 - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" - + qBittorrent termination initiated qBittorrent 中止操作 - + qBittorrent is shutting down... qBittorrent 正在關閉…… - + Saving torrent progress... 儲存Torrent進度… - + qBittorrent is now ready to exit qBittorrent 已準備好關閉 @@ -1609,12 +1715,12 @@ - + Must Not Contain: 必須不包含: - + Episode Filter: 分集過濾器: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 匯出(&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 季度數值須大於零 - + 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集 - + Episode number is a mandatory positive value 分集數值須大於零 - + Rules 規則 - + Rules (legacy) 規則(舊版) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons 往後分集:<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 確認清除規則 - + Invalid action 無效行動 - + The list is empty, there is nothing to export. 清單空白,不會匯出任何東西。 - + Export RSS rules 匯出RSS規則 - + I/O Error 入出錯誤 - + Failed to create the destination file. Reason: %1 無法建立目標檔案。理由:%1 - + Import RSS rules 匯入RSS規則 - + Failed to import the selected rules file. Reason: %1 無法匯入所選規則檔。理由:%1 - + Add new rule... 加入新規則… - + Delete rule 刪除規則 - + Rename rule... 重新命名規則… - + Delete selected rules 刪除所選規則 - + Clear downloaded episodes... 清除已下載分集… - + Rule renaming 重新命名規則 - + Please type the new rule name 請輸入新規則名稱 - + Clear downloaded episodes 清除已下載分集 - + Are you sure you want to clear the list of downloaded episodes for the selected rule? 清除所選規則的已下載分集清單,確定? - + Regex mode: use Perl-compatible regular expressions 正規表示法模式:使用兼容Perl的正規表示法 - - + + Position %1: %2 位置%1:%2 - + Wildcard mode: you can use 萬用字元: - - + + Import error - + Failed to read the file. %1 - + ? to match any single character ? 問號代表任何單一字元 - + * to match zero or more of any characters * 星號代表無或多個字元 - + Whitespaces count as AND operators (all words, any order) 空格代表運算子「AND」(全部文字、任何排序) - + | is used as OR operator 「|」代表運算子「OR」 - + If word order is important use * instead of whitespace. 如果文字順序重要,使用「*」,而不是空格。 - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) 帶有空白從屬句「%1」的表示法(例如:%2) - + will match all articles. 將搜尋全部相符文章。 - + will exclude all articles. 將排除全部文章。 @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" 無法建立 torrent 復原資料夾:「%1」 @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 無法解析還原資料:無效格式 - - + + Cannot parse torrent info: %1 無法解析 torrent 資訊:%1 - + Cannot parse torrent info: invalid format 無法解析 torrent 資訊:無效格式 - + Mismatching info-hash detected in resume data - + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't save torrent metadata to '%1'. Error: %2. 無法儲存 Torrent 詮釋資料至「%1」。錯誤:%2。 - + Couldn't save torrent resume data to '%1'. Error: %2. 無法儲存 Torrent 復原資料至「%1」。錯誤:%2。 @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 無法解析還原資料:%1 - + Resume data is invalid: neither metadata nor info-hash was found 還原資料無效:沒有找到詮釋資料與資訊雜湊值 - + Couldn't save data to '%1'. Error: %2 無法儲存資料至「%1」。錯誤:%2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. 找不到 - + Couldn't load resume data of torrent '%1'. Error: %2 無法載入 torrent「%1」的復原資料。錯誤:%2 - - + + Database is corrupted. 資料庫毀損。 - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. - + Couldn't obtain query result. - + WAL mode is probably unsupported due to filesystem limitations. - + + + Cannot parse resume data: %1 + 無法解析還原資料:%1 + + + + + Cannot parse torrent info: %1 + 無法解析 torrent 資訊:%1 + + + + Corrupted resume data: %1 + + + + + save_path is invalid + + + + Couldn't begin transaction. Error: %1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. 無法儲存 torrent 詮釋資料。錯誤:%1。 - + Couldn't store resume data for torrent '%1'. Error: %2 無法儲存 torrent「%1」的復原資料。錯誤:%2 - + Couldn't delete resume data of torrent '%1'. Error: %2 無法載入 torrent「%1」的復原資料。錯誤:%2 - + Couldn't store torrents queue positions. Error: %1 無法儲存 torrent 的排程位置。錯誤:%1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 分散式雜湊表 (DHT) 支援:%1 - - - - - - - - - + + + + + + + + + ON 開啟 - - - - - - - - - + + + + + + + + + OFF 關閉 - - + + Local Peer Discovery support: %1 區域 Peer 搜尋支援:%1 - + Restart is required to toggle Peer Exchange (PeX) support 切換 Peer 交換 (PeX) 支援必須重新啟動 - + Failed to resume torrent. Torrent: "%1". Reason: "%2" 還原 torrent 失敗。Torrent:「%1」。理由:「%2」 - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" 還原 torrent 失敗:偵測到不一致的 torrent ID。Torrent:「%1」 - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" 偵測到不一致的資料:設定檔中缺少分類。分類將會被還原,但其設定將會重設回預設值。Torrent:「%1」。分類:「%2」 - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" 偵測到不一致的資料:無效分類。Torrent:「%1」。分類:「%2」 - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" 偵測到還原分類的儲存路徑與目前 torrent 的儲存路徑不相符。Torrent 目前已切換至手動模式。Torrent:「%1」。分類:「%2」 - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" 偵測到不一致的資料:設定檔中缺少標籤。標籤將會被還原。Torrent:「%1」。標籤:「%2」 - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" 偵測到不一致的資料:無效標籤。Torrent:「%1」。標籤:「%2」 - + System wake-up event detected. Re-announcing to all the trackers... - + Peer ID: "%1" Peer ID:「%1」 - + HTTP User-Agent: "%1" HTTP 使用者代理:「%1」 - + Peer Exchange (PeX) support: %1 Peer 交換 (PeX) 支援:%1 - - + + Anonymous mode: %1 匿名模式:%1 - - + + Encryption support: %1 加密支援:%1 - - + + FORCED 強制 - + Could not find GUID of network interface. Interface: "%1" 找不到網路介面的 GUID。介面:「%1」 - + Trying to listen on the following list of IP addresses: "%1" 正在嘗試監聽以下 IP 位址清單:「%1」 - + Torrent reached the share ratio limit. Torrent 達到了分享比例限制。 - - - + Torrent: "%1". Torrent:「%1」。 - - - - Removed torrent. - 已移除 torrent。 - - - - - - Removed torrent and deleted its content. - 已移除 torrent 並刪除其內容。 - - - - - - Torrent paused. - Torrent 已暫停。 - - - - - + Super seeding enabled. 超級種子模式已啟用。 - + Torrent reached the seeding time limit. Torrent 達到了種子時間限制。 - + Torrent reached the inactive seeding time limit. - + Failed to load torrent. Reason: "%1" 載入 torrent 失敗。理由:「%1」 - + I2P error. Message: "%1". - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP 支援:開啟 - + + Saving resume data completed. + + + + + BitTorrent session successfully finished. + + + + + Session shutdown timed out. + + + + + Removing torrent. + + + + + Removing torrent and deleting its content. + + + + + Torrent stopped. + + + + + Torrent content removed. Torrent: "%1" + + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + + + + + Torrent removed. Torrent: "%1" + + + + + Merging of trackers is disabled + + + + + Trackers cannot be merged because it is a private torrent + + + + + Trackers are merged from new source + + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP 支援:關閉 - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" 匯出 torrent 失敗。Torrent:「%1」。目的地:「%2」。理由:「%3」 - + Aborted saving resume data. Number of outstanding torrents: %1 中止儲存還原資料。未完成的 torrent 數量:%1 - + The configured network address is invalid. Address: "%1" 已設定的網絡位址無效。位址:「%1」 - - + + Failed to find the configured network address to listen on. Address: "%1" 未能找到要監聽的網絡位址。位址:「%1」 - + The configured network interface is invalid. Interface: "%1" 已設定的網絡介面無效。介面:「%1」 - + + Tracker list updated + + + + + Failed to update tracker list. Reason: "%1" + + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" 套用封鎖 IP 位址清單時拒絕無效的 IP 位址。IP:「%1」 - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" 已新增追蹤器至 torrent。Torrent:「%1」。追蹤器:「%2」 - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" 已從 torrent 移除追蹤器。Torrent:「%1」。追蹤器:「%2」 - + Added URL seed to torrent. Torrent: "%1". URL: "%2" 已新增 URL 種子到 torrent。Torrent:「%1」。URL:「%2」 - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" 已從 torrent 移除 URL 種子。Torrent:「%1」。URL:「%2」 - - Torrent paused. Torrent: "%1" - Torrent 已暫停。Torrent:「%1」 + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + - + Torrent resumed. Torrent: "%1" Torrent 已恢復下載。Torrent:「%1」 - + Torrent download finished. Torrent: "%1" Torrent 下載完成。Torrent:「%1」 - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" 取消移動 torrent。Torrent:「%1」。來源:「%2」。目的地:「%3」 - + + Duplicate torrent + + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + + + + + Torrent stopped. Torrent: "%1" + + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination 未能將 torrent 將入佇列。Torrent:「%1」。來源:「%2」。目的地:「%3」。理由:torrent 目前正在移動至目的地 - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location 將 torrent 移動加入佇列失敗。Torrent:「%1」。來源:「%2」。目的地:「%3」。理由:兩個路徑均指向相同的位置 - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" 已將 torrent 移動加入佇列。Torrent:「%1」。來源:「%2」。目的地:「%3」 - + Start moving torrent. Torrent: "%1". Destination: "%2" 開始移動 torrent。Torrent:「%1」。目的地:「%2」 - + Failed to save Categories configuration. File: "%1". Error: "%2" 儲存分類設定失敗。檔案:「%1」。錯誤:「%2」 - + Failed to parse Categories configuration. File: "%1". Error: "%2" 解析分類設定失敗。檔案:「%1」。錯誤:「%2」 - + Successfully parsed the IP filter file. Number of rules applied: %1 成功解析 IP 位址過濾檔案。套用的規則數量:%1 - + Failed to parse the IP filter file 解析 IP 過濾條件檔案失敗 - + Restored torrent. Torrent: "%1" 已還原 torrent。Torrent:「%1」 - + Added new torrent. Torrent: "%1" 已新增新的 torrent。Torrent:「%1」 - + Torrent errored. Torrent: "%1". Error: "%2" Torrent 錯誤。Torrent:「%1」。錯誤:「%2」 - - - Removed torrent. Torrent: "%1" - 已移除 torrent。Torrent:「%1」 - - - - Removed torrent and deleted its content. Torrent: "%1" - 已移除 torrent 並刪除其內容。Torrent:「%1」 - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" 檔案錯誤警告。Torrent:「%1」。檔案:「%2」。理由:「%3」 - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP 通訊埠對映失敗。訊息:「%1」 - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP 通訊埠映射成功。訊息:「%1」 - + IP filter this peer was blocked. Reason: IP filter. IP 過濾 - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). - + privileged port (%1) this peer was blocked. Reason: privileged port (80). - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + + + + BitTorrent session encountered a serious error. Reason: "%1" - + SOCKS5 proxy error. Address: %1. Message: "%2". - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 混合模式限制 - + Failed to load Categories. %1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 已停用 - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 已停用 - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL 種子 DNS 查詢失敗。Torrent:「%1」。URL:「%2」。錯誤:「%3」 - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" 從 URL 種子收到錯誤訊息。Torrent:「%1」。URL:「%2」。訊息:「%3」 - + Successfully listening on IP. IP: "%1". Port: "%2/%3" 成功監聽 IP。IP:「%1」。通訊埠:「%2/%3」 - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" 監聽 IP 失敗。IP:「%1」。通訊埠:「%2/%3」。理由:「%4」 - + Detected external IP. IP: "%1" 偵測到外部 IP。IP:「%1」 - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" 錯誤:內部警告佇列已滿,警告已被丟棄,您可能會發現效能變差。被丟棄的警告類型:「%1」。訊息:「%2」 - + Moved torrent successfully. Torrent: "%1". Destination: "%2" 已成功移動 torrent。Torrent:「%1」。目的地:「%2」 - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" 移動 torrent 失敗。Torrent:「%1」。來源:「%2」。目的地:「%3」。理由:「%4」 @@ -2552,13 +2737,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentCreator - + Operation aborted 中止運作 - - + + Create new torrent file failed. Reason: %1. 建立新的 torrent 檔案失敗。理由:%1。 @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 新增 peer「%1」到 torrent「%2」失敗。理由:%3 - + Peer "%1" is added to torrent "%2" Peer「%1」新增至 torrent「%2」 - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. 無法寫入檔案。理由:「%1」。Torrent 目前處在「僅上傳」模式。 - + Download first and last piece first: %1, torrent: '%2' 先下載第一及最後一塊:%1,torrent:「%2」 - + On 開啟 - + Off 關閉 - + Failed to reload torrent. Torrent: %1. Reason: %2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" 產生還原資料失敗。Torrent:「%1」。理由:「%2」 - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" 還原 Torrent 失敗。檔案可能被移動或儲存空間不可存取。Torrent:「%1」。原因:「%2」 - + Missing metadata 缺少詮釋資料 - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" 檔案重新命名失敗。Torrent:「%1」,檔案:「%2」,理由:「%3」 - + Performance alert: %1. More info: %2 效能警告:%1。更多資訊:%2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' 參數「%1」須跟從句子結構「%1=%2」 - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' 參數「%1」須跟從句子結構「%1=%2」 - + Expected integer number in environment variable '%1', but got '%2' 預期環境變數「%1」是整數,但實際是「%2」 - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - 參數「%1」須跟從句子結構「%1=%2」 - - - + Expected %1 in environment variable '%2', but got '%3' 預期環境變數「%2」是%1,但實際是「%3」 - - + + %1 must specify a valid port (1 to 65535). %1須指向有效的埠(1到65535)。 - + Usage: 用量: - + [options] [(<filename> | <url>)...] [選項] [(<filename> | <url>)...] - + Options: 選項: - + Display program version and exit 顯示程式版本並離開 - + Display this help message and exit 顯示此說明訊息並離開 - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + 參數「%1」須跟從句子結構「%1=%2」 + + + Confirm the legal notice - - + + port - + Change the WebUI port - + Change the torrenting port 變更 torrenting 通訊埠 - + Disable splash screen 不要顯示開始畫面 - + Run in daemon-mode (background) 以守護模式啟動(背景執行) - + dir Use appropriate short form or abbreviation of "directory" 路徑 - + Store configuration files in <dir> 儲存設定檔到<dir> - - + + name 名稱 - + Store configuration files in directories qBittorrent_<name> 儲存設定檔到資料夾qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory 強行存取libtorrent快速復原檔,使檔案路徑關聯到設定檔存放位置 - + files or URLs 檔案或網址 - + Download the torrents passed by the user 下載用戶批准的Torrent - + Options when adding new torrents: 加入新Torrent的選項: - + path 路徑 - + Torrent save path Torrent儲存路徑 - - Add torrents as started or paused - 加入Torrent後,立即開始或暫停 + + Add torrents as running or stopped + - + Skip hash check 略過雜湊值檢查 - + Assign torrents to category. If the category doesn't exist, it will be created. 指派Torrent到分類。如果分類不存在,將建立分類。 - + Download files in sequential order 按順序下載檔案 - + Download first and last pieces first 先下載首片段和最後片段 - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. 指示加入Torrent時是否開啟「加入新Torrent」話匣。 - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: 選項的值可以經由環境變數提供。選項是「parameter-name」時,環境變數名稱將會是「QBT_PARAMETER_NAME」(全大楷,並以「_」取代「-」)。要實現旗號值,設定變數為「1」或「TRUE」。例如「不要顯示開始畫面」就是: - + Command line parameters take precedence over environment variables 指令行參數凌駕環境變數 - + Help 說明 @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - 回復Torrent + Start torrents + - Pause torrents - 暫停Torrent + Stop torrents + @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... - + Reset 重設 + + + System + + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 - + Failed to load custom theme colors. %1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - 同時永久刪除檔案 + Also remove the content files + - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? 確定要從傳輸清單移除「%1」? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? 您確定要移除在傳輸清單中的這 %1 個 torrent 嗎? - + Remove 移除 @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 從網址下載 - + Add torrent links 加入Torrent連結 - + One link per line (HTTP links, Magnet links and info-hashes are supported) 一行一連結(支援HTTP連結、磁性連結和資料驗證碼) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 下載 - + No URL entered 未輸入網址 - + Please type at least one URL. 請輸入最少一個網址。 @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 解析錯誤:過濾器檔並非有效的PeerGuardian P2B檔。 + + FilterPatternFormatMenu + + + Pattern Format + + + + + Plain text + + + + + Wildcards + + + + + Regular expression + + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" - - Trackers cannot be merged because it is a private torrent - - - - + Torrent is already present Torrent已存在 - + + Trackers cannot be merged because it is a private torrent. + + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent「%1」已經在傳輸清單中。您想合併來自新來源的追蹤者嗎? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. 資料庫破損:未能找到資料部份。 @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP 請求超過數量上限,正在關閉網路插座。限制:%1,IP:%2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" - + Bad Http request, closing socket. IP: %1 不正確的 HTTP 請求,正在關閉網路插座。IP:%1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... 瀏覽… - + Reset 重設 - + Select icon - + Supported image files + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + + + + + Power management error. Did not find a suitable D-Bus interface. + + + + + + + Power management error. Action: %1. Error: %2 + + + + + Power management unexpected error. State: %1. Error: %2 + + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 已被封鎖。理由:%2。 - + %1 was banned 0.0.0.0 was banned %1 被封鎖 @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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必須是單一指令行參數。 - + Run application with -h option to read about command line parameters. 以-h選項執行應用程式以閱讀關於指令行參數的資訊。 - + Bad command line 錯誤指令行 - + Bad command line: 錯誤指令行: - + An unrecoverable error occurred. + - qBittorrent has encountered an unrecoverable error. - + You cannot use %1: qBittorrent is already running. - + Another qBittorrent instance is already running. - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. - + Error when daemonizing. Reason: "%1". Error code: %2. @@ -3435,609 +3682,680 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 項目(&E) - + &Tools 工具(&T) - + &File 檔案(&F) - + &Help 程式(&H) - + On Downloads &Done 下載完成時(&D) - + &View 檢視(&V) - + &Options... 喜好設定(&O) - - &Resume - 取消暫停(&R) - - - + &Remove 移除(&R) - + Torrent &Creator Torrent建立工具(&C) - - + + Alternative Speed Limits 特別速度限制 - + &Top Toolbar 頂端工具列(&T) - + Display Top Toolbar 顯示頂端工具列 - + Status &Bar 狀態列 - + Filters Sidebar 過濾器側邊欄 - + S&peed in Title Bar 標題列和工作列按鈕顯示速度(&P) - + Show Transfer Speed in Title Bar 標題列和工作列按鈕顯示傳輸速度 - + &RSS Reader RSS閱讀器(&R) - + Search &Engine 搜尋器(&E) - + L&ock qBittorrent 鎖定qBittorrent(&O) - + Do&nate! 捐款(&N) - + + Sh&utdown System + + + + &Do nothing 不做任何事(&D) - + Close Window 關閉視窗 - - R&esume All - 全部取消暫停(&E) - - - + Manage Cookies... 管理Cookie… - + Manage stored network cookies 管理留駐的網絡Cookie… - + Normal Messages 一般訊息 - + Information Messages 資訊訊息 - + Warning Messages 警告訊息 - + Critical Messages 重要訊息 - + &Log 執行日誌(&L) - + + Sta&rt + + + + + Sto&p + + + + + R&esume Session + + + + + Pau&se Session + + + + Set Global Speed Limits... 設定全域速率限制…… - + Bottom of Queue 佇列底部 - + Move to the bottom of the queue 移動到佇列底部 - + Top of Queue 佇列頂部 - + Move to the top of the queue 移動到佇列頂部 - + Move Down Queue 向下移動佇列 - + Move down in the queue 在佇列中向下移動 - + Move Up Queue 向上移動佇列 - + Move up in the queue 在佇列中向上移動 - + &Exit qBittorrent 關閉qBittorrent - + &Suspend System 睡眠 - + &Hibernate System 休眠 - - S&hutdown System - 關機 - - - + &Statistics 統計資料(&S) - + Check for Updates 檢查更新 - + Check for Program Updates 檢查程式更新 - + &About 關於(&A) - - &Pause - 暫停(&P) - - - - P&ause All - 全部暫停(&A) - - - + &Add Torrent File... 加入Torrent檔案(&A) - + Open 開啟 - + E&xit 離開(&X) - + Open URL 開啟網址 - + &Documentation 網上說明(&D) - + Lock 鎖定 - - - + + + Show 顯示 - + Check for program updates 檢查程式更新 - + Add Torrent &Link... 加入Torrent連結(&L) - + If you like qBittorrent, please donate! 如果你喜歡qBittorrent,請捐款! - - + + Execution Log 執行日誌 - + Clear the password 清除密碼 - + &Set Password 設定密碼(&S) - + Preferences 喜好設定 - + &Clear Password 清除密碼(&C) - + Transfers 傳輸 - - + + qBittorrent is minimized to tray qBittorrent最小化到工作列通知區域 - - - + + + This behavior can be changed in the settings. You won't be reminded again. 此行為可於喜好設定更改。往後不會再有提醒。 - + Icons Only 只有圖示 - + Text Only 只有文字 - + Text Alongside Icons 文字於圖示旁 - + Text Under Icons 文字於圖示下 - + Follow System Style 跟隨系統風格 - - + + UI lock password UI鎖定密碼 - - + + Please type the UI lock password: 請輸入UI鎖定密碼: - + Are you sure you want to clear the password? 清除密碼,確定? - + Use regular expressions 使用正規表示法 - + + + Search Engine + 搜尋器 + + + + Search has failed + 搜尋失敗 + + + + Search has finished + 搜尋完成 + + + Search 搜尋 - + Transfers (%1) 傳輸(%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent更新後須重新啟動。 - + qBittorrent is closed to tray qBittorrent關閉到工作列通知區域 - + Some files are currently transferring. 部份檔案仍在傳輸。 - + Are you sure you want to quit qBittorrent? 確定離開qBittorrent嗎? - + &No 否(&N) - + &Yes 是((&Y) - + &Always Yes 總是(&A) - + Options saved. 已儲存選項。 - + + [PAUSED] %1 + %1 is the rest of the window title + + + + [D: %1, U: %2] %3 D = Download; U = Upload; %3 is the rest of the window title - - + + Python installer could not be downloaded. Error: %1. +Please install it manually. + + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + + + + + Python installation success. + + + + + Exit code: %1. + + + + + Reason: installer crashed. + + + + + Python installation failed. + + + + + Launching Python installer. File: "%1". + + + + + Missing Python Runtime 沒有Python直譯器 - + qBittorrent Update Available qBittorrent存在新版本 - + 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。 - - + + Old Python Runtime 舊Python直譯器 - + A new version is available. 存在新版本。 - + Do you want to download %1? 下載%1嗎? - + Open changelog... 開啟更新日誌… - + No updates available. You are already using the latest version. 沒有較新的版本 你的版本已是最新。 - + &Check for Updates 檢查更新(&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? 您的 Python 版本 (%1) 太舊了。最低需求:%2。 您想要現在安裝更新版本嗎? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. 您的 Python 版本 (%1) 太舊了。請升級到最新版本來讓搜尋引擎運作。 最低需求:%2。 - + + Paused + 暫停 + + + Checking for Updates... 正在檢查更新… - + Already checking for program updates in the background 已於背景檢查程式更新 - + + Python installation in progress... + + + + + Failed to open Python installer. File: "%1". + + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + + + + Download error 下載錯誤 - - Python setup could not be downloaded, reason: %1. -Please install it manually. - Python安裝程式無法下載。理由:%1。 -請手動安裝。 - - - - + + Invalid password 無效密碼 - + Filter torrents... - + Filter by: - + The password must be at least 3 characters long 密碼長度必須至少有 3 個字元 - - - + + + RSS (%1) RSS(%1) - + 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 - + Open Torrent Files 開啟Torrent檔 - + Torrent Files Torrent檔 @@ -4232,7 +4550,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + + + + Ignoring SSL error, URL: "%1", errors: "%2" 正在忽略 SSL 錯誤,URL:「%1」,錯誤:「%2」 @@ -5526,47 +5849,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 連線失敗,無法是別的回覆:%1 - + Authentication failed, msg: %1 驗證失敗,訊息:%1 - + <mail from> was rejected by server, msg: %1 <mail from> 被伺服器拒絕,訊息:%1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> 被伺服器拒絕,訊息:%1 - + <data> was rejected by server, msg: %1 <data> 被伺服器拒絕,訊息:%1 - + Message was rejected by the server, error: %1 訊息被伺服器拒絕,錯誤:%1 - + Both EHLO and HELO failed, msg: %1 EHLO 與 HELO 皆失敗,訊息:%1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP 伺服器似乎並不支援任何我們支援的驗證模式 [CRAM-MD5|PLAIN|LOGIN],正在略過驗證,知道其可能會失敗……伺服器驗證模式:%1 - + Email Notification Error: %1 電郵通知錯誤:%1 @@ -5604,299 +5927,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI遠端控制 - - - + Advanced 進階 - + Customize UI Theme... - + Transfer List 傳輸清單 - + Confirm when deleting torrents 刪除Torrent時須確認 - - Shows a confirmation dialog upon pausing/resuming all the torrents - - - - - Confirm "Pause/Resume all" actions - - - - + Use alternating row colors In table elements, every other row will have a grey background. 單雙行交替背景色彩 - + Hide zero and infinity values 隱藏零和無限大數值 - + Always 總是 - - Paused torrents only - 僅暫停Torrent - - - + Action on double-click 按兩下鼠鍵的行動 - + Downloading torrents: 下載中的Torrent: - - - Start / Stop Torrent - 開始╱停止Torrent - - - - + + Open destination folder 開啟存放位置 - - + + No action 甚麼都不做 - + Completed torrents: 完成的Torrent: - + Auto hide zero status filters - + Desktop 基本 - + Start qBittorrent on Windows start up Windows啟動時啟動qBittorrent - + Show splash screen on start up 啟動時顯示開始畫面 - + Confirmation on exit when torrents are active Torrent活躍時,離開須確認 - + Confirmation on auto-exit when downloads finish 完成下載所觸發的「自動離開」須確認 - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> - + KiB KiB - + + Show free disk space in status bar + + + + Torrent content layout: Torrent 內容佈局: - + Original 原版 - + Create subfolder 建立子資料夾 - + Don't create subfolder 不要建立子資料夾 - + The torrent will be added to the top of the download queue - + Add to top of queue The torrent will be added to the top of the download queue 加至佇列頂部 - + When duplicate torrent is being added - + Merge trackers to existing torrent - + Keep unselected files in ".unwanted" folder - + Add... 新增…… - + Options.. 選項…… - + Remove 移除 - + Email notification &upon download completion 下載完成時以電郵通知 - + + Send test email + + + + + Run on torrent added: + + + + + Run on torrent finished: + + + + Peer connection protocol: 下載者連線協定: - + Any 任何 - + I2P (experimental) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - - - - + Mixed mode - - Some options are incompatible with the chosen proxy type! - - - - + If checked, hostname lookups are done via the proxy - + Perform hostname lookup via proxy - + Use proxy for BitTorrent purposes - + RSS feeds will use proxy - + Use proxy for RSS purposes - + Search engine, software updates or anything else will use proxy - + Use proxy for general purposes - + IP Fi&ltering IP過濾 - + Schedule &the use of alternative rate limits 設定使用特別速度限制的時間 - + From: From start time 從: - + To: To end time 到: - + Find peers on the DHT network 在 DHT 網路上尋找 peer - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6212,190 @@ Disable encryption: Only connect to peers without protocol encryption 停用加密:僅連線到沒有加密協議的 peer - + Allow encryption 允許加密 - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">網上說明</a>) - + Maximum active checking torrents: 最大活躍的正在檢查 torrent 數: - + &Torrent Queueing Torrent排程 - + When total seeding time reaches - + When inactive seeding time reaches - - A&utomatically add these trackers to new downloads: - 自動加入以下追蹤器到新下載: - - - + RSS Reader RSS閱讀器 - + Enable fetching RSS feeds 啟用讀取最新RSS Feed - + Feeds refresh interval: RSS Feed更新間距: - + Same host request delay: - + Maximum number of articles per feed: 每個RSS Feed的最大文章數: - - - + + + min minutes 分鐘 - + Seeding Limits 做種限制 - - Pause torrent - 暫停 torrent - - - + Remove torrent 移除 torrent - + Remove torrent and its files 移除 torrent 與其檔案 - + Enable super seeding for torrent 為 torrent 啟用超級做種 - + When ratio reaches 當分享率達到 - + + Some functions are unavailable with the chosen proxy type! + + + + + Note: The password is saved unencrypted + + + + + Stop torrent + + + + + A&utomatically append these trackers to new downloads: + + + + + Automatically append trackers from URL to new downloads: + + + + + URL: + 網址: + + + + Fetched trackers + + + + + Search UI + + + + + Store opened tabs + + + + + Also store search results + + + + + History length + + + + RSS Torrent Auto Downloader RSS Torrent自動下載器 - + Enable auto downloading of RSS torrents 啟用RSS Torrent自動下載 - + Edit auto downloading rules... 編輯自動下載規則… - + RSS Smart Episode Filter RSS智能分集過濾器 - + Download REPACK/PROPER episodes 下載「重新發佈」╱「足本」分集 - + Filters: 過濾器: - + Web User Interface (Remote control) 網絡用戶介面(Web UI遠端控制) - + IP address: IP位址: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6404,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv 「::」代表任何IPv6位址,而「*」代表任何的IPv4或IPv6位址。 - + Ban client after consecutive failures: 連續失敗後封鎖用戶端: - + Never 永不 - + ban for: 封鎖: - + Session timeout: 工作階段逾時: - + Disabled 已停用 - - Enable cookie Secure flag (requires HTTPS) - 啟用 cookie 安全旗標(需要 HTTPS) - - - + Server domains: 伺服器域名: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6447,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP 使用HTTPS,而不是HTTP - + Bypass authentication for clients on localhost 略過對本機上用戶的驗證 - + Bypass authentication for clients in whitelisted IP subnets 略過對IP子網絡白名單用戶的驗證 - + IP subnet whitelist... IP子網絡白名單… - + + Use alternative WebUI + + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. 指定反向代理 IP(或子網路,例如 0.0.0.0/24)以使用轉發的客戶端位置(X-Forwarded-For 標頭)。使用 ';' 來分隔多個項目。 - + Upda&te my dynamic domain name 更新動態域名 - + Minimize qBittorrent to notification area 最小化qBittorrent到工作列通知區域 - + + Search + 搜尋 + + + + WebUI + + + + Interface 界面 - + Language: 語言: - + + Style: + + + + + Color scheme: + + + + + Stopped torrents only + + + + + + Start / stop torrent + + + + + + Open torrent options dialog + + + + Tray icon style: 圖示款式: - - + + Normal 一般 - + File association 檔案關聯 - + Use qBittorrent for .torrent files Torrent檔使用qBittorrent - + Use qBittorrent for magnet links 磁性連結使用qBittorrent - + Check for program updates 檢查程式更新 - + Power Management 電源管理 - + + &Log Files + + + + Save path: 儲存路徑: - + Backup the log file after: 備份日誌檔,每滿 - + Delete backup logs older than: 只保存備份日誌: - + + Show external IP in status bar + + + + When adding a torrent 加入Torrent時 - + Bring torrent dialog to the front 保持Torrent話匣在畫面最上層 - + + The torrent will be added to download list in a stopped state + + + + Also delete .torrent files whose addition was cancelled 取消「加入」Torrent動作時,同時刪除相關Torrent檔 - + Also when addition is cancelled 也當「加入」被取消時 - + Warning! Data loss possible! 警告!資料可能消失! - + Saving Management 存檔管理 - + Default Torrent Management Mode: 預設Torrent管理模式: - + Manual 手動 - + Automatic 自動 - + When Torrent Category changed: Torrent的分類更改時: - + Relocate torrent 遷移Torrent - + Switch torrent to Manual Mode 切換Torrent到手動模式 - - + + Relocate affected torrents 遷移受影響Torrent - - + + Switch affected torrents to Manual Mode 切換受影響Torrent到手動模式 - + Use Subcategories 使用子分類 - + Default Save Path: 預設儲存路徑: - + Copy .torrent files to: 複製「.torrent」檔到: - + Show &qBittorrent in notification area 工作列通知區域顯示qBittorrent圖示 - - &Log file - 備份執行日誌 - - - + Display &torrent content and some options 顯示Torrent內容和其他選項 - + De&lete .torrent files afterwards 往後再清除Torrent檔 - + Copy .torrent files for finished downloads to: 複製完成下載的「.torrent」檔到: - + Pre-allocate disk space for all files 預先分配檔案的磁碟空間 - + Use custom UI Theme 使用自訂 UI 佈景主題 - + UI Theme file: UI 佈景主題檔案: - + Changing Interface settings requires application restart 變更界面設定需要重新啟動 - + Shows a confirmation dialog upon torrent deletion Torrent 刪除時顯示確認對話框 - - + + Preview file, otherwise open destination folder 預覽檔案,否則開啟目標資料夾 - - - Show torrent options - 顯示 torrent 選項 - - - + Shows a confirmation dialog when exiting with active torrents 在有活躍的 torrent 但要關閉程式時顯示確認對話框 - + When minimizing, the main window is closed and must be reopened from the systray icon 最小化時,主視窗會關閉且必須從系統匣圖示重新開啟 - + The systray icon will still be visible when closing the main window 系統匣圖示將會在關閉主視窗後仍然可見 - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window 將 qBittorrent 關閉到通知區域 - + Monochrome (for dark theme) 單色(供深色主題使用) - + Monochrome (for light theme) 單色(供淺色主題使用) - + Inhibit system sleep when torrents are downloading Torrent下載時,防止系統休眠 - + Inhibit system sleep when torrents are seeding Torrent做種時,防止系統休眠 - + Creates an additional log file after the log file reaches the specified file size 紀錄檔達到一定大小後,建立額外的紀錄檔 - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings 記錄效能警告 - - The torrent will be added to download list in a paused state - Torrent 將以暫停狀態加入到下載清單中 - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state 不要自動開始下載 - + Whether the .torrent file should be deleted after adding it 是否於加入Torrent檔後將其刪除 - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. 開始下載前,請在磁碟上預先分配好完整檔案大小的空間以減少磁碟碎片。僅對 HDD 有用。 - + Append .!qB extension to incomplete files 未完成檔案加上.!qB副檔名 - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it 下載 torrent 時,可以從其中找到的任何 .torrent 檔案新增 torrent - + Enable recursive download dialog 啟用反復下載確認話匣 - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually 自動:各種 torrent 屬性(如儲存路徑)將由相關分類來決定 手動:各種 torrent 屬性(如儲存路徑)必須手動分配 - + When Default Save/Incomplete Path changed: 當預設儲存/不完整路徑變更時: - + When Category Save Path changed: 分類儲存路徑更改時: - + Use Category paths in Manual Mode 在手動模式下使用分類路徑 - + Resolve relative Save Path against appropriate Category path instead of Default one 根據適當的分類路徑而非預設路徑解析相對儲存路徑 - + Use icons from system theme - + Window state on start up: - + qBittorrent window state on start up - + Torrent stop condition: Torrent 停止條件: - - + + None - - + + Metadata received 收到的元資料 - - + + Files checked 已檢查的檔案 - + Ask for merging trackers when torrent is being added manually - + Use another path for incomplete torrents: 使用其他路徑取得不完整的 torrents: - + Automatically add torrents from: 自動加入以下位置的Torrent: - + Excluded file names 排除的檔案名稱 - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6952,811 @@ readme.txt:過濾精確的檔案名稱。 readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「readme10.txt」。 - + Receiver 接收人 - + To: To receiver 到: - + SMTP server: SMTP伺服器: - + Sender 寄件者 - + From: From sender 從: - + This server requires a secure connection (SSL) 此伺服器需要加密連接(SSL) - - + + Authentication 驗證 - - - - + + + + Username: 用戶名: - - - - + + + + Password: 密碼: - + Run external program 執行外部程式 - - Run on torrent added - 在 torrent 新增時執行 - - - - Run on torrent finished - 在 torrent 完成時執行 - - - + Show console window 顯示終端機視窗 - + TCP and μTP TCP和μTP - + Listening Port 監聽埠 - + Port used for incoming connections: 連入埠: - + Set to 0 to let your system pick an unused port 設定為 0 讓您的系統挑選未使用的通訊埠 - + Random 隨機 - + Use UPnP / NAT-PMP port forwarding from my router 使用映射自路由器的UPnP╱NAT-PMP連接埠 - + Connections Limits 連接限制 - + Maximum number of connections per torrent: 每個Torrent最大連接數量: - + Global maximum number of connections: 整體最大連接數量: - + Maximum number of upload slots per torrent: 每個Torrent最大上載通道數量: - + Global maximum number of upload slots: 整體最大上載通道數量: - + Proxy Server 代理伺服器 - + Type: 類型: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: 主機: - - - + + + Port: 埠: - + Otherwise, the proxy server is only used for tracker connections 否則,代理伺服器僅用於追蹤器連接 - + Use proxy for peer connections 使用代理伺服器來連接同路人 - + A&uthentication 驗證 - - Info: The password is saved unencrypted - (注意:儲存的密碼不會加密) - - - + Filter path (.dat, .p2p, .p2b): 過濾器(.dat、.p2p、.p2b) - + Reload the filter 重新載入過濾器 - + Manually banned IP addresses... 手動封鎖IP位址… - + Apply to trackers 套用到追蹤器 - + Global Rate Limits 整體速度限制 - - - - - - - + + + + + + + 無限 - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: 上載: - - + + Download: 下載: - + Alternative Rate Limits 特別速度限制 - + Start time 開始時間 - + End time 結束時間 - + When: 日期: - + Every day 每日 - + Weekdays 工作日 - + Weekends 週末 - + Rate Limits Settings 設定速度限制 - + Apply rate limit to peers on LAN 將速度限制套用到區域網絡(LAN)的同路人 - + Apply rate limit to transport overhead 將速度限制套用到傳輸消耗 - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + + + + Apply rate limit to µTP protocol 將速度限制套用到µTP協定 - + Privacy 私隱 - + Enable DHT (decentralized network) to find more peers 啟用DHT分散式網絡來尋找更多同路人 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 與相容的Bittorrent用戶端(µTorrent等)交換同路人資訊 - + Enable Peer Exchange (PeX) to find more peers 啟用PeX同路人交換來尋找更多同路人 - + Look for peers on your local network 於本地網絡尋找同路人 - + Enable Local Peer Discovery to find more peers 啟用LPD本地同路人發現來尋找更多同路人 - + Encryption mode: 加密模式: - + Require encryption 要求加密 - + Disable encryption 停用加密 - + Enable when using a proxy or a VPN connection 使用代理伺服器或VPN連接時啟用 - + Enable anonymous mode 啟用匿名模式 - + Maximum active downloads: 最大活躍下載數量: - + Maximum active uploads: 最大活躍上載數量: - + Maximum active torrents: 最大活躍Torrent數量: - + Do not count slow torrents in these limits 此等限制不要計算慢速Torrent - + Upload rate threshold: 上載速度下限: - + Download rate threshold: 下載速度下限: - - - - + + + + sec seconds - + Torrent inactivity timer: 慢速Torrent時間: - + then 然後 - + Use UPnP / NAT-PMP to forward the port from my router 使用UPnP╱NAT-PMP映射路由器連接埠 - + Certificate: 憑證: - + Key: 密匙: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>關於憑證</a> - + Change current password 更改目前密碼 - - Use alternative Web UI - 使用後備Web UI遠端控制 - - - + Files location: 檔案位置: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + + + + Security 驗證 - + Enable clickjacking protection 啟用防劫持鼠鍵保護 - + Enable Cross-Site Request Forgery (CSRF) protection 啟用防偽造跨站請求(CSRF)保護 - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + + + + Enable Host header validation 啟用主機標頭驗證 - + Add custom HTTP headers 新增自訂 HTTP 標頭 - + Header: value pairs, one per line 標頭:鍵值對,一行一個 - + Enable reverse proxy support 啟用反向代理支援 - + Trusted proxies list: 受信任的代理伺服器清單: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + + + + Service: 服務: - + Register 註冊 - + Domain name: 域名: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! 啟用此等選項,你的「.torrent 」檔或會<strong>無可挽回</strong>地離你而去! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog 啟用第二個選項(也當「加入」被取消),「.torrent」檔會被<strong>清除</strong>,不管有否按下「加入Torrent」話匣的「<strong>取消</strong>」按鈕。 - + Select qBittorrent UI Theme file 選取 qBittorrent UI 佈景主題檔案 - + Choose Alternative UI files location 選取後備Web UI遠端控制的檔案位置 - + Supported parameters (case sensitive): 支援的參數(大小楷視為不同): - + Minimized - + Hidden - + Disabled due to failed to detect system tray presence 未偵測到系統匣存在而停用 - + No stop condition is set. 未設定停止條件。 - + Torrent will stop after metadata is received. Torrent 將會在收到詮釋資料後停止。 - Torrents that have metadata initially aren't affected. - 一開始就有詮釋資料的 torrent 則不受影響。 - - - + Torrent will stop after files are initially checked. 初步檢查檔案後,torrent 將會停止。 - + This will also download metadata if it wasn't there initially. 如果一開始不存在,這也會下載詮釋資料。 - + %N: Torrent name 【%N】Torrent名稱 - + %L: Category 【%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】目前追蹤器 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") 提示:以引號包起參數可避免於空格被切斷(例如:"%N") - + + Test email + + + + + Attempted to send email. Check your inbox to confirm success + + + + (None) (無) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent會被視為慢速,如果於「慢速Torrent時間」設定秒數內的上下載速度都低於設定下限值。 - + Certificate 憑證 - + Select certificate 選取憑證 - + Private key 私密金鑰 - + Select private key 選取私密金鑰 - + WebUI configuration failed. Reason: %1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + + + + + System + System default Qt style + + + + + Let Qt decide the style for this system + + + + + Dark + Dark color scheme + + + + + Light + Light color scheme + + + + + System + System color scheme + + + + Select folder to monitor 選取監視的資料夾 - + Adding entry failed 加入項目失敗 - + The WebUI username must be at least 3 characters long. - + The WebUI password must be at least 6 characters long. - + Location Error 位置錯誤 - - + + Choose export directory 選取輸出路徑 - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well 當這些選項啟用時,qBittorrent 將會在它們成功(第一個選項)或是未(第二個選項)加入其下載佇列時<strong>刪除</strong> .torrent 檔案。這將<strong>不僅是套用於</strong>透過「新增 torrent」選單動作開啟的檔案,也會套用於透過<strong>檔案類型關聯</strong>開啟的檔案。 - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI 佈景主題檔案 (*.qbtheme config.json) - + %G: Tags (separated by comma) %G:標籤(以逗號分隔) - + %I: Info hash v1 (or '-' if unavailable) %I:資訊雜湊值 v1(如果不可用則為 '-') - + %J: Info hash v2 (or '-' if unavailable) %J:資訊雜湊值 v2(如果不可用則為 '-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K:Torrent ID(v1 的 torrent 即為 sha-1 資訊雜湊值,若為 v2 或是混合的 torrent 即為截斷的 sha-256 資訊雜湊值) - - - + + + Choose a save directory 選取儲存路徑 - + Torrents that have metadata initially will be added as stopped. - + Choose an IP filter file 選取一個IP過濾器檔 - + All supported filters 全部支援的過濾器 - + The alternative WebUI files location cannot be blank. - + 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個規則。 - + Preferences 喜好設定 - + Time Error 時間錯誤 - + The start time and the end time can't be the same. 開始時間和結尾時間不可相同。 - - + + Length Error 長度錯誤 @@ -7335,241 +7764,246 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read PeerInfo - + Unknown 未知 - + Interested (local) and choked (peer) 【您:期待下載╱他:拒絕上傳】 - + Interested (local) and unchoked (peer) 【您:期待下載╱他:同意上傳】 - + Interested (peer) and choked (local) 【他:期待下載╱您:拒絕上傳】 - + Interested (peer) and unchoked (local) 【他:期待下載╱您:同意上傳】 - + Not interested (local) and unchoked (peer) 【您:不想下載╱他:同意上傳】 - + Not interested (peer) and unchoked (local) 【他:不想下載╱您:同意上傳】 - + Optimistic unchoke 多傳者優先 - + Peer snubbed 下載者突然停止 - + Incoming connection 連入的連線 - + Peer from DHT 來自 DHT 的下載者 - + Peer from PEX 來自 PeX 的下載者 - + Peer from LSD 來自 LSD 的下載者 - + Encrypted traffic 加密的流量 - + Encrypted handshake 加密的交握 + + + Peer is using NAT hole punching + + PeerListWidget - + Country/Region 國家/區域 - + IP/Address - + Port - + Flags 旗號 - + Connection 連接 - + Client i.e.: Client application 用戶端 - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 客戶端 - + 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. 相關度 - + Files i.e. files that are being downloaded right now 檔案 - + Column visibility 欄位顯示 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 - + Add peers... 新增 Peers... - - + + Adding peers 正在新增 Peers - + Some peers cannot be added. Check the Log for details. 有些下載者無法被新增。檢查記錄檔以取得更多資訊。 - + Peers are added to this torrent. Peers 已新增到此 torrent 中。 - - + + Ban peer permanently 永遠封鎖同路人 - + Cannot add peers to a private torrent 無法新增 Peers 至私有 torrent - + Cannot add peers when the torrent is checking 正在檢查 torrent 時無法新增 Peers - + Cannot add peers when the torrent is queued torrent 排入佇列時無法新增 Peers - + No peer was selected 未選取 Peers - + Are you sure you want to permanently ban the selected peers? 您確定要永遠封鎖所選的 Peers 嗎? - + Peer "%1" is manually banned Peer「%1」已被手動封鎖 - + N/A N/A - + Copy IP:port 複製「IP:埠」 @@ -7587,7 +8021,7 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read 加入的同路人清單(一行一個IP): - + Format: IPv4:port / [IPv6]:port 格式:IPv4:埠╱[IPv6]:埠 @@ -7628,27 +8062,27 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read PiecesBar - + Files in this piece: 此片段包含: - + File in this piece: 此 Piece 中的檔案: - + File in these pieces: 這些 Piece 中的檔案: - + Wait until metadata become available to see detailed information 等待取得元資料後再檢視詳細資訊 - + Hold Shift key for detailed information 按住「Shift」鍵以取得更多資訊 @@ -7661,58 +8095,58 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read 搜尋附加元件 - + Installed search plugins: 已安裝的搜尋附加元件: - + Name 名稱 - + Version 版本 - + Url 網址 - - + + Enabled 已啟用 - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. 警告:請確保從此等搜尋器下載Torrent時遵守你所在地的版權規定。 - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one 安裝新的 - + Check for updates 檢查更新 - + Close 關閉 - + Uninstall 解除安裝 @@ -7831,98 +8265,65 @@ Those plugins were disabled. 附加元件來源 - + Search plugin source: 搜尋附加元件來源: - + Local file 本機檔案 - + Web link 網絡連結 - - PowerManagement - - - qBittorrent is active - qBittorrent運行中 - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - - - - - Power management error. Did not found suitable D-Bus interface. - - - - - - - Power management error. Action: %1. Error: %2 - - - - - Power management unexpected error. State: %1. Error: %2 - - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: 以下從「%1」而來的檔案支援預覽,請從中選取: - + Preview 預覽 - + Name 名稱 - + Size 大小 - + Progress 進度 - + Preview impossible 無法預覽 - + Sorry, we can't preview this file: "%1". 抱歉,我們無法預覽此檔案:「%1」。 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 @@ -7935,27 +8336,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist 路徑不存在 - + Path does not point to a directory 路徑未指向目錄 - + Path does not point to a file 路徑未指向檔案 - + Don't have read permission to path 沒有讀取路徑的權限 - + Don't have write permission to path 沒有寫入路徑的權限 @@ -7996,12 +8397,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: 已下載: - + Availability: 可得度: @@ -8016,53 +8417,53 @@ Those plugins were disabled. 傳輸 - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 已用時間: - + ETA: 預計剩餘時間: - + Uploaded: 已上載: - + Seeds: 種子: - + Download Speed: 下載速度: - + Upload Speed: 上載速度: - + Peers: 同路人: - + Download Limit: 下載速度限制: - + Upload Limit: 上載速度限制: - + Wasted: 已丟棄: @@ -8072,193 +8473,220 @@ Those plugins were disabled. 連接: - + Information 資訊 - + Info Hash v1: 資訊雜湊值 v1: - + Info Hash v2: 資訊雜湊值 v2: - + Comment: 評註: - + Select All 選取全部 - + Select None 取消選取檔案 - + Share Ratio: 分享率: - + Reannounce In: 重新公告於: - + Last Seen Complete: 最後完整可見: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + Popularity: + + + + Total Size: 總大小: - + Pieces: 片段: - + Created By: 編製工具: - + Added On: 加入於: - + Completed On: 完成於: - + Created On: 建立於: - + + Private: + + + + Save Path: 儲存路徑: - + Never 從不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1×%2(完成%3) - - + + %1 (%2 this session) %1(本階段%2) - - + + + N/A N/A - + + Yes + + + + + No + + + + %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) - - New Web seed - 新Web種子 + + Add web seed + Add HTTP source + - - Remove Web seed - 清除Web種子 + + Add web seed: + - - Copy Web seed URL - 複製Web種子網址 + + + This web seed is already in the list. + - - Edit Web seed URL - 編輯Web種子網址 - - - + Filter files... 過濾檔案… - + + Add web seed... + + + + + Remove web seed + + + + + Copy web seed URL + + + + + Edit web seed URL... + + + + Speed graphs are disabled 已停用速度圖表 - + You can enable it in Advanced Options 您可以在進階選項中啟用它 - - 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種子網址: @@ -8266,33 +8694,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. 無效的資料格式。 - + Couldn't save RSS AutoDownloader data in %1. Error: %2 無法於%1儲存RSS自動下載器資料。錯誤:%2 - + Invalid data format 無效的資料格式 - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... - + Failed to read RSS AutoDownloader rules. %1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 無法載入RSS自動下載器規則。理由:%1 @@ -8300,22 +8728,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 下載「%1」的RSS Feed失敗。理由:%2 - + RSS feed at '%1' updated. Added %2 new articles. 「%1」的RSS Feed已更新。加入%2個新文章。 - + Failed to parse RSS feed at '%1'. Reason: %2 解析「%1」的RSS Feed失敗。理由:%2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. 在「%1」的 RSS feed 已成功下載。開始解析它。 @@ -8351,12 +8779,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. 無效的RSS Feed。 - + %1 (line: %2, column: %3, offset: %4). %1(行:%2,欄:%3,偏移:%4)。 @@ -8364,103 +8792,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" 無法儲存 RSS 工作階段設定。檔案:「%1」。錯誤:「%2」 - + Couldn't save RSS session data. File: "%1". Error: "%2" 無法儲存 RSS 工作階段資料。檔案:「%1」。錯誤:「%2」 - - + + RSS feed with given URL already exists: %1. 存在同網址RSS Feed:%1。 - + Feed doesn't exist: %1. - + Cannot move root folder. 無法遷移根資料夾。 - - + + Item doesn't exist: %1. 項目不存在:%1。 - - Couldn't move folder into itself. + + Can't move a folder into itself or its subfolders. - + Cannot delete root folder. 無法刪除根資料夾。 - + Failed to read RSS session data. %1 - + Failed to parse RSS session data. File: "%1". Error: "%2" - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. 無法載入 RSS feed。Feed:「%1」。理由:URL 為必填。 - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. 無法載入 RSS feed。Feed:「%1」。理由:UID 無效。 - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. 找到重複的 RSS feed。UID:「%1」。錯誤:設定似乎已損壞。 - + Couldn't load RSS item. Item: "%1". Invalid data format. 無法載入 RSS 項目。項目:「%1」。無效的資料格式。 - + Corrupted RSS list, not loading it. 損壞的 RSS 清單,無法載入。 - + Incorrect RSS Item path: %1. 錯誤的RSS項目路徑:%1。 - + RSS item with given path already exists: %1. 存在同路徑RSS項目:%1。 - + Parent folder doesn't exist: %1. 父資料夾不存在:%1。 + + RSSController + + + Invalid 'refreshInterval' value + + + + + Feed doesn't exist: %1. + + + + + RSSFeedDialog + + + RSS Feed Options + + + + + URL: + 網址: + + + + Refresh interval: + 更新間距: + + + + sec + + + + + Default + 預設 + + RSSWidget @@ -8480,8 +8949,8 @@ Those plugins were disabled. - - + + Mark items read 標示項目為已讀 @@ -8506,132 +8975,115 @@ Those plugins were disabled. Torrent:(按兩下下載) - - + + Delete 刪除 - + Rename... 重新命名… - + Rename 重新命名 - - + + Update 更新 - + New subscription... 新訂閱… - - + + Update all feeds 更新全部RSS Feed - + Download torrent 下載Torrent - + Open news URL 開啟消息網址 - + Copy feed URL 複製RSS Feed網址 - + New folder... 新資料夾… - - Edit feed URL... + + Feed options... - - Edit feed URL - - - - + Please choose a folder name 請選取資料夾名稱 - + Folder name: 資料夾名稱: - + New folder 新資料夾 - - - Please type a RSS feed URL - 請輸入一個RSS Feed網址 - - - - - Feed URL: - RSS Feed網址: - - - + 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: 新RSS Feed名稱: - + Rename failed 重新命名失敗 - + Date: 日期: - + Feed: - + Author: 作者: @@ -8639,38 +9091,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. 必須安裝 Python 以使用搜尋引擎。 - + Unable to create more than %1 concurrent searches. 無法建立多於 %1 個並行搜尋。 - - + + Offset is out of range 偏移量超出範圍 - + All plugins are already up to date. 全部附加元件已是最新版本。 - + Updating %1 plugins 正在更新%1個附加元件 - + Updating plugin %1 正在更新附加元件%1 - + Failed to check for plugin updates: %1 檢查附加元件更新失敗:%1 @@ -8745,132 +9197,142 @@ Those plugins were disabled. 大小: - + 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 - 搜尋器 - - - + Filter search results... 過濾搜尋結果… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results 搜尋結果(顯示<i>%2</i>個其中<i>%1</i>個): - + Torrent names only 僅Torrent名 - + Everywhere 全部 - + Use regular expressions 使用正規表示法 - + Open download window 開啟下載視窗 - + Download 下載 - + Open description page 開啟描述頁面 - + Copy 複製 - + Name 名稱 - + Download link 下載連結 - + Description page URL 描述頁面的 URL - + Searching... 搜尋中… - + Search has finished 搜尋完成 - + Search aborted 搜尋中止 - + An error occurred during search... 搜尋時發生錯誤… - + Search returned no results 沒有搜尋結果 - + + Engine + + + + + Engine URL + + + + + Published On + + + + Column visibility 欄位顯示 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 @@ -8878,104 +9340,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. 未知的搜尋器附加元件檔案格式。 - + Plugin already at version %1, which is greater than %2 附加元件目前版本是%1,比%2新。 - + A more recent version of this plugin is already installed. 已安裝此附加元件較新版本。 - + Plugin %1 is not supported. 不支援附加元件%1。 - - + + Plugin is not supported. 不支援的附加元件。 - + Plugin %1 has been successfully updated. 成功更新附加元件%1。 - + All categories 全部類別 - + Movies 電影 - + TV shows 電視節目 - + Music 音樂 - + Games 遊戲 - + Anime 動畫 - + Software 軟件 - + Pictures 圖片 - + Books - + Update server is temporarily unavailable. %1 更新伺服器暫時不可用。%1 - - + + Failed to download the plugin file. %1 下載附加元件檔案失敗。%1 - + Plugin "%1" is outdated, updating to version %2 附加元件「%1」已過時,正在更新到版本%2 - + Incorrect update info received for %1 out of %2 plugins. %2個附加元件其中%1個有不正確更新資訊。 - + Search plugin '%1' contains invalid version string ('%2') 搜尋附加元件「%1」包含了無效的版本字串(「%2」) @@ -8985,114 +9447,145 @@ Those plugins were disabled. - - - - Search 搜尋 - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. 沒有安裝任何搜尋附加元件。 如果需要搜尋附加元件,請按下視窗右下角的「搜尋附加元件…」按鈕。 - + Search plugins... 搜尋附加元件… - + A phrase to search for. 搜尋的句語: - + Spaces in a search term may be protected by double quotes. 保護搜尋句語的完整,請使用英語雙引號。 - + Example: Search phrase example 例子: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>會搜尋句語<b>foo bar</b> - + All plugins 全部附加元件 - + Only enabled 僅已啟用 - + + + Invalid data format. + 無效的資料格式。 + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>:搜尋 <b>foo</b> 與 <b>bar</b> - + + Refresh + + + + Close tab 關閉分頁 - + Close all tabs 關閉所有分頁 - + Select... 選取… - - - + + Search Engine 搜尋器 - + + Please install Python to use the Search Engine. 請安裝搜尋器需要的Pyrhon。 - + Empty search pattern 空白搜尋模式 - + Please type a search pattern first 請先輸入一個搜尋模式 - + + Stop 停止 + + + SearchWidget::DataStorage - - Search has finished - 搜尋完成 + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + - - Search has failed - 搜尋失敗 + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to save Search UI state. File: "%1". Error: "%2" + + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + + + + + Failed to load Search UI history. File: "%1". Error: "%2" + + + + + Failed to save search history. File: "%1". Error: "%2" + @@ -9205,34 +9698,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: 上傳: - - - + + + 無限 - - - + + + KiB/s KiB/s - - + + Download: 下載: - + Alternative speed limits 特別速度限制 @@ -9424,32 +9917,32 @@ Click the "Search plugins..." button at the bottom right of the window 排程平均逗留時間: - + Connected peers: 連接的同路人: - + All-time share ratio: 歷年總分享率: - + All-time download: 歷年總下載: - + Session waste: 本階段丟棄: - + All-time upload: 歷年總上載: - + Total buffer size: 總緩衝大小: @@ -9464,12 +9957,12 @@ Click the "Search plugins..." button at the bottom right of the window 已排程入出任務: - + Write cache overload: 寫入超額快存: - + Read cache overload: 讀取超額快存: @@ -9488,51 +9981,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: 連接狀態: - - + + No direct connections. This may indicate network configuration problems. 沒有直接連接。表示你的網絡設定可能有問題。 - - + + Free space: N/A + + + + + + External IP: N/A + + + + + DHT: %1 nodes DHT分散式網絡:%1個節點 - + qBittorrent needs to be restarted! qBittorrent須重新啟動。 - - - + + + Connection Status: 連接狀態: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. 離線。通常表示qBittorrent監聽連入埠失敗。 - + Online 在線 - + + Free space: + + + + + External IPs: %1, %2 + + + + + External IP: %1%2 + + + + Click to switch to alternative speed limits 按下切換到特別速度限制 - + Click to switch to regular speed limits 按下切換到正常速度限制 @@ -9562,13 +10081,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - 回復下載(0) + Running (0) + - Paused (0) - 暫停(0) + Stopped (0) + @@ -9630,36 +10149,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) 完成(%1) + + + Running (%1) + + - Paused (%1) - 暫停(%1) + Stopped (%1) + + + + + Start torrents + + + + + Stop torrents + Moving (%1) 移動中 (%1) - - - Resume torrents - 繼續下載 torrent - - - - Pause torrents - 暫停 torrent - Remove torrents 移除 torrents - - - Resumed (%1) - 回復下載(%1) - Active (%1) @@ -9731,31 +10250,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags 清除未使用標籤 - - - Resume torrents - 回復Torrent - - - - Pause torrents - 暫停Torrent - Remove torrents 移除 torrents - - New Tag - 新標籤 + + Start torrents + + + + + Stop torrents + Tag: 標籤: + + + Add tag + + Invalid tag name @@ -9902,32 +10421,32 @@ Please choose a different name and try again. TorrentContentModel - + Name 名稱 - + Progress 進度 - + Download Priority 下載優先權 - + Remaining 剩餘 - + Availability 可得度 - + Total Size 總大小 @@ -9972,98 +10491,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error 重新命名錯誤 - + Renaming 正在重新命名 - + New name: 新名稱: - + Column visibility 欄位顯示 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 - + Open 開啟 - + Open containing folder 開啟包含的資料夾 - + Rename... 重新命名… - + Priority 優先權 - - + + Do not download 不要下載 - + Normal 一般 - + High - + Maximum 最高 - + By shown file order 按顯示的檔案順序 - + Normal priority 一般優先度 - + High priority 高優先度 - + Maximum priority 最高優先度 - + Priority by shown file order 按檔案順序顯示的優先度 @@ -10071,17 +10590,17 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + Torrent creation is still unfinished. - + Torrent creation failed. @@ -10110,13 +10629,13 @@ Please choose a different name and try again. - + Select file 選取檔案 - + Select folder 選取資料夾 @@ -10191,87 +10710,83 @@ Please choose a different name and try again. 資料項 - + You can separate tracker tiers / groups with an empty line. 您可以用一行空白行分離 tracker 層/群組。 - + Web seed URLs: Web種子網址: - + Tracker URLs: 追蹤器網址: - + Comments: 評註: - + Source: 來源: - + Progress: 進度: - + Create Torrent 建立Torrent - - + + Torrent creation failed 建立 Torrent 失敗 - + Reason: Path to file/folder is not readable. 理由:檔案╱資料夾的路徑無法讀取。 - + Select where to save the new torrent 選取新Torrent儲存位置 - + Torrent Files (*.torrent) Torrent檔(*.torrent) - Reason: %1 - 理由:%1 - - - + Add torrent to transfer list failed. - + Reason: "%1" - + Add torrent failed - + Torrent creator Torrent建立工具 - + Torrent created: 建立的Torrent: @@ -10279,32 +10794,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." - + Couldn't store Watched Folders configuration to %1. Error: %2 無法儲存監視資料夾設定至 %1。錯誤:%2 - + Watched folder Path cannot be empty. 監視的資料夾路徑不能為空。 - + Watched folder Path cannot be relative. 監視的資料夾路徑不能是相對路徑。 @@ -10312,44 +10827,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 - + Magnet file too big. File: %1 - + Failed to open magnet file: %1 開啟磁力檔案失敗:%1 - + Rejecting failed torrent file: %1 拒絕失敗的 torrent 檔案:%1 - + Watching folder: "%1" 正在監視資料夾:「%1」 - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - - - - - Invalid metadata - 無效的詮釋資料 - - TorrentOptionsDialog @@ -10378,173 +10880,161 @@ Please choose a different name and try again. 使用其他路徑取得不完整的 torrent - + Category: 分類: - - Torrent speed limits - Torrent 速度限制 + + Torrent Share Limits + - + Download: 下載: - - + + - - + + Torrent Speed Limits + + + + + KiB/s KiB/s - + These will not exceed the global limits 這些不會超過全域限制 - + Upload: 上傳: - - Torrent share limits - Torrent 速度限制 - - - - Use global share limit - 使用全域分享限制 - - - - Set no share limit - 設定無分享限制 - - - - Set share limit to - 設定分享限制為 - - - - ratio - 上傳╱下載比率 - - - - total minutes - - - - - inactive minutes - - - - + Disable DHT for this torrent 停用此 torrent 的 DHT - + Download in sequential order 依順序下載 - + Disable PeX for this torrent 停用此 torrent 的 PeX - + Download first and last pieces first 先下載第一和最後一塊 - + Disable LSD for this torrent 停用此 torrent 的 LSD - + Currently used categories 目前已使用的分類 - - + + Choose save path 選擇儲存路徑 - + Not applicable to private torrents 不適用於私人 torrent - - - No share limit method selected - 未選取分享限制方法 - - - - Please select a limit method first - 請先選擇限制方式 - TorrentShareLimitsWidget - - - + + + + Default - 預設 + 預設 - - - + + + Unlimited - - - + + + Set to - + Seeding time: - - - - + + + + + + min minutes - 分鐘 + 分鐘 - + Inactive seeding time: - + + Action when the limit is reached: + + + + + Stop torrent + + + + + Remove torrent + 移除 torrent + + + + Remove torrent and its content + + + + + Enable super seeding for torrent + 為 torrent 啟用超級做種 + + + Ratio: @@ -10557,32 +11047,32 @@ Please choose a different name and try again. - - New Tag - 新標籤 + + Add tag + - + Tag: 標籤: - + Invalid tag name 無效標籤名 - + Tag name '%1' is invalid. - + Tag exists 標籤已存在 - + Tag name already exists. 存在同名標籤。 @@ -10590,115 +11080,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. 錯誤:「%1」不是有效Torrent檔。 - + Priority must be an integer 優先權須是整數 - + Priority is not valid 優先權無效 - + Torrent's metadata has not yet downloaded Torrent的元資料未有下載 - + File IDs must be integers 檔案ID須是整數 - + File ID is not valid 檔案ID無效 - - - - + + + + Torrent queueing must be enabled 須啟用Torrent排程 - - + + Save path cannot be empty 儲存路徑不可空白 - - + + Cannot create target directory 無法建立目標目錄 - - + + Category cannot be empty 分類不可空白 - + Unable to create category 無法建立分類 - + Unable to edit category 無法編輯分類 - + Unable to export torrent file. Error: %1 無法匯出Torrent文件。錯誤:%1 - + Cannot make save path 無法建立儲存路徑 - + + "%1" is not a valid URL + + + + + URL scheme must be one of [%1] + + + + 'sort' parameter is invalid 「sort」參數無效 - + + "%1" is not an existing URL + + + + "%1" is not a valid file index. 「%1」不是有效的檔案索引。 - + Index %1 is out of bounds. 索引 %1 超出範圍。 - - + + Cannot write to directory 無法寫入到路徑 - + WebUI Set location: moving "%1", from "%2" to "%3" Web UI遠端控制存放位置:將「%1」從「%2」搬到「%3」 - + Incorrect torrent name 錯誤Torrent名稱 - - + + Incorrect category name 錯誤分類名稱 @@ -10729,196 +11234,191 @@ Please choose a different name and try again. TrackerListModel - + Working 運行中 - + Disabled 已停用 - + Disabled for this torrent 對此 Torrent 停用 - + This torrent is private 私人Torrent - + N/A (無) - + Updating... 更新中… - + Not working 閒置 - + Tracker error - + Unreachable - + Not contacted yet 未嘗連接 - - Invalid status! - - - - - URL/Announce endpoint + + Invalid state! - Tier - - - - - Protocol + URL/Announce Endpoint - Status - 狀態 - - - - Peers - 同路人 - - - - Seeds - 種子 - - - - Leeches - 依附者 - - - - Times Downloaded - 下載次數 - - - - Message - 訊息 - - - - Next announce + BT Protocol - Min announce + Next Announce - - v%1 + + Min Announce + + + Tier + + + + + Status + 狀態 + + + + Peers + 同路人 + + + + Seeds + 種子 + + + + Leeches + 依附者 + + + + Times Downloaded + 下載次數 + + + + Message + 訊息 + TrackerListWidget - + This torrent is private 私人Torrent - + Tracker editing 編輯追蹤器 - + Tracker URL: 追蹤器網址: - - + + Tracker editing failed 編輯追蹤器失敗 - + The tracker URL entered is invalid. 無效追蹤器網址。 - + The tracker URL already exists. 存在同網址的追蹤器。 - + Edit tracker URL... 編輯追蹤器網址… - + Remove tracker 清除追蹤器 - + Copy tracker URL 複製追蹤器網址 - + Force reannounce to selected trackers 強制重新公告到所選追蹤器 - + Force reannounce to all trackers 強制重新公告到全部追蹤器 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 - + Add trackers... 新增追蹤者… - + Column visibility 欄位顯示 @@ -10936,37 +11436,37 @@ Please choose a different name and try again. 加入的追蹤器清單(一行一個): - + µTorrent compatible list URL: µTorrent相容清單網址: - + Download trackers list 下載追蹤者列表 - + Add 新增 - + Trackers list URL error 追蹤者列表 URL 錯誤 - + The trackers list URL cannot be empty 追蹤者列表 URL 不能為空 - + Download trackers list error 下載追蹤者列表錯誤 - + Error occurred when downloading the trackers list. Reason: "%1" 下載追蹤者清單時發生錯誤。理由:「%1」 @@ -10974,62 +11474,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) 警告(%1) - + Trackerless (%1) 缺少追蹤器(%1) - + Tracker error (%1) - + Other error (%1) - + Remove tracker 清除追蹤器 - - Resume torrents - 回復Torrent + + Start torrents + - - Pause torrents - 暫停 torrent + + Stop torrents + - + Remove torrents 移除 torrents - + Removal confirmation - + Are you sure you want to remove tracker "%1" from all torrents? - + Don't ask me again. - + All (%1) this is for the tracker filter 全部(%1) @@ -11038,7 +11538,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'mode':無效參數 @@ -11130,11 +11630,6 @@ Please choose a different name and try again. 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. 正在檢查恢復資料 - - - Paused - 暫停 - Completed @@ -11158,220 +11653,252 @@ Please choose a different name and try again. 錯誤 - + Name i.e: torrent name 名稱 - + Size i.e: torrent size 大小 - + Progress % Done 進度 - + + Stopped + 已停止 + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) 狀態 - + Seeds i.e. full sources (often untranslated) 完整種子 - + Peers i.e. partial sources (often untranslated) 同路人 - + Down Speed i.e: Download speed 下載速度 - + Up Speed i.e: Upload speed 上載速度 - + Ratio Share ratio 分享率 - + + Popularity + + + + ETA i.e: Estimated Time of Arrival / Time left 預計剩餘時間 - + Category 分類 - + Tags 標籤 - + Added On Torrent was added to transfer list on 01/01/2010 08:00 加入於 - + Completed On Torrent was completed on 01/01/2010 08:00 完成於 - + Tracker 追蹤器 - + Down Limit i.e: Download limit 下載速度限制 - + Up Limit i.e: Upload limit 上載速度限制 - + Downloaded Amount of data downloaded (e.g. in MB) 已下載 - + Uploaded Amount of data uploaded (e.g. in MB) 已上載 - + 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) 本階段上載 - + Remaining Amount of data left to download (e.g. in MB) 剩餘 - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 已用時間 - + + Yes + + + + + No + + + + Save Path Torrent save path 儲存路徑 - + Incomplete Save Path Torrent incomplete save path 不完整的儲存路徑 - + Completed Amount of data completed (e.g. in MB) 已完成 - + Ratio Limit Upload share ratio limit 最大分享率 - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole 最後完整可見 - + Last Activity Time passed since a chunk was downloaded/uploaded 最後活動 - + Total Size i.e. Size including unwanted data 總大小 - + Availability The number of distributed copies of the torrent 可得性 - + Info Hash v1 i.e: torrent info hash v1 資訊雜湊值 v1 - + Info Hash v2 i.e: torrent info hash v2 資訊雜湊值 v2 - + Reannounce In Indicates the time until next trackers reannounce - - + + Private + Flags private torrents + + + + + Ratio / Time Active (in months), indicates how popular the torrent is + + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 前 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1(已做種 %2) @@ -11380,339 +11907,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility 欄位顯示 - + Recheck confirmation 確認重新檢查 - + Are you sure you want to recheck the selected torrent(s)? 重新檢查所選Torrent,確定? - + Rename 重新命名 - + New name: 新名稱: - + Choose save path 選取儲存路徑 - - Confirm pause - 確認暫停 - - - - Would you like to pause all torrents? - 您想要暫停所有 torrents 嗎? - - - - Confirm resume - 確認繼續 - - - - Would you like to resume all torrents? - 您想要繼續所有 torrents 嗎? - - - + Unable to preview 無法預覽 - + The selected torrent "%1" does not contain previewable files 所選的 torrent「%1」不包含可預覽的檔案 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄位與其內容的大小 - + Enable automatic torrent management 啟用自動 torrent 管理 - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. 您確定要為選定的 torrent 啟用自動 Torrent 管理嗎?它們可能會被重新安置。 - - Add Tags - 加入標籤 - - - + Choose folder to save exported .torrent files 選擇保存所匯出 .torrent 文件的文件夾 - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" 匯出 .torrent 檔案失敗。Torrent:「%1」。儲存路徑:「%2」。理由:「%3」 - + A file with the same name already exists 已存在同名檔案 - + Export .torrent file error 匯出 .torrent 文件錯誤 - + Remove All Tags 清除全部標籤 - + Remove all tags from selected torrents? 從所選Torrent清除全部標籤? - + Comma-separated tags: 標籤(以英語逗號分開): - + Invalid tag 無效標籤 - + Tag name: '%1' is invalid 標籤名:「%1」無效 - - &Resume - Resume/start the torrent - 取消暫停(&R) - - - - &Pause - Pause the torrent - 暫停(&P) - - - - Force Resu&me - Force Resume/start the torrent - 強制繼續(&M) - - - + Pre&view file... 預覽檔案(&V)... - + Torrent &options... Torrent 選項(&O)... - + Open destination &folder 開啟目的資料夾(&F) - + Move &up i.e. move up in the queue 上移(&U) - + Move &down i.e. Move down in the queue 下移(&D) - + Move to &top i.e. Move to top of the queue 移至頂端(&T) - + Move to &bottom i.e. Move to bottom of the queue 移至底部(&B) - + Set loc&ation... 設定位置(&A)... - + Force rec&heck 強制重新檢查(&H) - + Force r&eannounce 強制重新回報(&E) - + &Magnet link 磁力連結(&M) - + Torrent &ID Torrent ID(&I) - + &Comment - + &Name 名稱(&N) - + Info &hash v1 資訊雜湊值 v1(&H) - + Info h&ash v2 資訊雜湊值 v2(&A) - + Re&name... 重新命名…(&N) - + Edit trac&kers... 編輯追蹤器…(&K) - + E&xport .torrent... 匯出 .torrent…(&X) - + Categor&y 類別(&Y) - + &New... New category... 新增…(&N) - + &Reset Reset category 重設(&R) - + Ta&gs 標籤(&G) - + &Add... Add / assign multiple tags... 加入…(&A) - + &Remove All Remove all tags 删除全部(&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + + + + &Queue 隊列(&Q) - + &Copy 複製(&C) - + Exported torrent is not necessarily the same as the imported 匯出的 torrent 不一定與匯入的相同 - + Download in sequential order 按順序下載 - + + Add tags + + + + Errors occurred when exporting .torrent files. Check execution log for details. 匯出 .torrent 檔案時發生錯誤。請檢視執行紀錄檔以取得更多資訊。 - + + &Start + Resume/start the torrent + + + + + Sto&p + Stop the torrent + + + + + Force Star&t + Force Resume/start the torrent + + + + &Remove Remove the torrent 移除(&R) - + Download first and last pieces first 先下載首片段和最後片段 - + Automatic Torrent Management 自動Torrent管理 - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category 自動模式代表多個Torrent屬性(例如儲存路徑)將由相關分類決定 - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - 若 Torrent 暫停/排入佇列/錯誤/檢查,則無法強制重新公告 - - - + Super seeding mode 超級種子模式 @@ -11757,28 +12264,28 @@ Please choose a different name and try again. - + UI Theme Configuration. - + The UI Theme changes could not be fully applied. The details can be found in the Log. - + Couldn't save UI Theme configuration. Reason: %1 - - + + Couldn't remove icon file. File: %1. - + Couldn't copy icon file. Source: %1. Destination: %2. @@ -11786,7 +12293,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + + + + Failed to load UI theme from file: "%1" 從檔案載入 UI 佈景主題失敗:「%1」 @@ -11817,20 +12329,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" 遷移偏好設定失敗:WebUI https,檔案:「%1」,錯誤:「%2」 - + Migrated preferences: WebUI https, exported data to file: "%1" 已遷移偏好設定:WebUI https,已匯出資料到檔案:「%1」 - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". 設定檔中有無效的值,將其還原為預設值。鍵:「%1」。無效的值:「%2」。 @@ -11838,32 +12351,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" - + Failed to find Python executable. Path: "%1". - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in PATH environment variable. PATH: "%1" - + Failed to find `python` executable in Windows Registry. - + Failed to find Python executable @@ -11955,72 +12468,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. - + Unacceptable file type, only regular file is allowed. 不接受的檔案類型,僅容許常規檔案。 - + Symlinks inside alternative UI folder are forbidden. 後備Web UI遠端控制資料夾中不准使用符號連結。 - + Using built-in WebUI. - + Using custom WebUI. Location: "%1". - + WebUI translation for selected locale (%1) has been successfully loaded. - + Couldn't load WebUI translation for selected locale (%1). - + Missing ':' separator in WebUI custom HTTP header: "%1" Web UI遠端控制的自訂 HTTP 標頭缺少 ':' 分隔符號:「%1」 - + Web server error. %1 - + Web server error. Unknown error. - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' Web UI遠端控制:來源標頭和目標來源不相符。來源IP:「%1」╱來源標頭:「%2」╱目標來源:「%3」 - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' Web UI遠端控制:參照標頭和目標來源不相符。來源IP:「%1」╱參照標頭:「%2」╱目標來源:「%3」 - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' Web UI遠端控制:無效主機標頭、埠不相符。請求的來源IP:「%1」╱伺服器埠:「%2」╱接收的主機標頭:「%3」 - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' Web UI遠端控制:無效主機標頭。請求的來源IP:「%1」╱接收的主機標頭:「%2」 @@ -12028,125 +12541,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set - + WebUI: HTTPS setup successful - + WebUI: HTTPS setup failed, fallback to HTTP - + WebUI: Now listening on IP: %1, port: %2 - + Unable to bind to IP: %1, port: %2. Reason: %3 + + fs + + + Unknown error + 未知的錯誤 + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second 每秒 - + %1s e.g: 10 seconds - %1分鐘 {1s?} + - + %1m e.g: 10 minutes %1分鐘 - + %1h %2m e.g: 3 hours 5 minutes %1小時%2分鐘 - + %1d %2h e.g: 2 days 10 hours %1日%2小時 - + %1y %2d e.g: 2 years 10 days %1 年 %2 日 - - + + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent完成全部下載,即將關機。 - + < 1m < 1 minute 少於1分鐘 diff --git a/src/lang/qbittorrent_zh_TW.ts b/src/lang/qbittorrent_zh_TW.ts index 36238e5e4..844628614 100644 --- a/src/lang/qbittorrent_zh_TW.ts +++ b/src/lang/qbittorrent_zh_TW.ts @@ -14,75 +14,75 @@ 關於 - + Authors 作者 - + Current maintainer 目前的維護者 - + Greece 希臘 - - + + Nationality: 國籍: - - + + E-mail: 電子郵件: - - + + Name: 姓名: - + Original author 原始作者 - + France 法國 - + Special Thanks 特別感謝 - + Translators 翻譯者 - + License 授權 - + Software Used 使用的軟體 - + qBittorrent was built with the following libraries: qBittorrent 是使用下列函式庫建構: - + Copy to clipboard 複製到剪貼簿 @@ -93,8 +93,8 @@ - Copyright %1 2006-2024 The qBittorrent project - Copyright %1 2006-2024 qBittorrent 專案 + Copyright %1 2006-2025 The qBittorrent project + Copyright %1 2006-2025 qBittorrent 專案 @@ -166,15 +166,10 @@ 儲存至 - + Never show again 不要再顯示 - - - Torrent settings - Torrent 設定 - Set as default category @@ -191,12 +186,12 @@ 開始 torrent - + Torrent information Torrent 資訊 - + Skip hash check 跳過雜湊值檢查 @@ -205,6 +200,11 @@ Use another path for incomplete torrent 使用其他路徑取得不完整的 torrent + + + Torrent options + Torrent 選項 + Tags: @@ -231,75 +231,75 @@ 停止條件: - - + + None - - + + Metadata received 收到的詮釋資料 - + Torrents that have metadata initially will be added as stopped. - + 一開始就有詮釋資料的 torrent 將被新增為已停止。 - - + + Files checked 已檢查的檔案 - + Add to top of queue 新增至佇列頂部 - + When checked, the .torrent file will not be deleted regardless of the settings at the "Download" page of the Options dialog 勾選後,無論「選項」對話方塊中的「下載」頁面的設定如何,都不會刪除 .torrent 檔案 - + Content layout: 內容佈局: - + Original 原始 - + Create subfolder 建立子資料夾 - + Don't create subfolder 不要建立子資料夾 - + Info hash v1: 資訊雜湊值 v1: - + Size: 大小: - + Comment: 註解: - + Date: 日期: @@ -329,151 +329,147 @@ 記住最後一次使用的儲存路徑 - + Do not delete .torrent file 不要刪除 .torrent 檔案 - + Download in sequential order 依順序下載 - + Download first and last pieces first 先下載第一和最後一塊 - + Info hash v2: 資訊雜湊值 v2: - + Select All 全選 - + Select None 全不選 - + Save as .torrent file... 另存為 .torrent 檔案… - + I/O Error I/O 錯誤 - + Not Available This comment is unavailable 無法使用 - + Not Available This date is unavailable 無法使用 - + Not available 無法使用 - + Magnet link 磁力連結 - + Retrieving metadata... 正在檢索詮釋資料… - - + + Choose save path 選擇儲存路徑 - + No stop condition is set. 未設定停止條件。 - + Torrent will stop after metadata is received. Torrent 將會在收到詮釋資料後停止。 - Torrents that have metadata initially aren't affected. - 一開始就有詮釋資料的 torrent 則不受影響。 - - - + Torrent will stop after files are initially checked. 最初檢查檔案後,torrent 將會停止。 - + This will also download metadata if it wasn't there initially. 如果一開始不存在,這也會下載詮釋資料。 - - + + N/A N/A - + %1 (Free space on disk: %2) %1(磁碟上的可用空間:%2) - + Not available This size is unavailable. 無法使用 - + Torrent file (*%1) Torrent 檔案 (*%1) - + Save as torrent file 另存為 torrent 檔案 - + Couldn't export torrent metadata file '%1'. Reason: %2. 無法匯出 torrent 詮釋資料檔案「%1」。原因:%2。 - + Cannot create v2 torrent until its data is fully downloaded. 在完全下載其資料前無法建立 v2 torrent。 - + Filter files... 過濾檔案... - + Parsing metadata... 正在解析詮釋資料… - + Metadata retrieval complete 詮釋資料檢索完成 @@ -481,35 +477,35 @@ AddTorrentManager - + Downloading torrent... Source: "%1" 正在下載 torrent……來源:「%1」 - + Failed to add torrent. Source: "%1". Reason: "%2" 新增 torrent 失敗。來源:「%1」。理由:「%2」 - - Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: %2. Result: %3 - 偵測到嘗試新增重複的 torrent。來源:%1。既有的 torrent:%2。結果:%3 - - - + Merging of trackers is disabled 合併 tracker 已停用 - + Trackers cannot be merged because it is a private torrent 因為這是私有的 torrent,所以無法合併 tracker - + Trackers are merged from new source 已經合併來自新來源的 tracker + + + Detected an attempt to add a duplicate torrent. Source: %1. Existing torrent: "%2". Torrent infohash: %3. Result: %4 + 偵測到新增重複 torrent 的嘗試。來源:%1。既有的 torrent:「%2」。Torrent inforhash:%3。結果:%4 + AddTorrentParamsWidget @@ -596,7 +592,7 @@ Torrent share limits - Torrent 分享限制 + Torrent 分享限制 @@ -672,763 +668,863 @@ AdvancedSettings - - - - + + + + MiB MiB - + Recheck torrents on completion 完成後重新檢查 torrent - - + + ms milliseconds ms - + Setting 設定 - + Value Value set for this setting - + (disabled) (已停用) - + (auto) (自動) - + + min minutes 分鐘 - + All addresses 所有位置 - + qBittorrent Section qBittorrent 小節 - - + + Open documentation 開啟文件 - + All IPv4 addresses 所有 IPv4 地址 - + All IPv6 addresses 所有 IPv6 地址 - + libtorrent Section libtorrent 小節 - + Fastresume files 快速復原檔案 - + SQLite database (experimental) SQLite 資料庫(實驗性) - + Resume data storage type (requires restart) 復原資料儲存類型(需要重新啟動) - + Normal 一般 - + Below normal 低於一般 - + Medium 中等 - + Low - + Very low 非常低 - + Physical memory (RAM) usage limit 實體記憶體 (RAM) 使用率限制 - + Asynchronous I/O threads 異步 I/O 執行緒 - + Hashing threads 雜湊執行緒 - + File pool size 檔案叢集大小 - + Outstanding memory when checking torrents 檢查 torrent 時的未完成記憶 - + Disk cache 磁碟快取 - - - - + + + + + s seconds s - + Disk cache expiry interval 磁碟快取到期區間 - + Disk queue size 磁碟佇列大小 - - + + Enable OS cache 啟用作業系統快取 - + Coalesce reads & writes 合併讀取與寫入 - + Use piece extent affinity 使用片段範圍關聯 - + Send upload piece suggestions 傳送上傳分塊建議 - - - - + + + + + 0 (disabled) 0(停用) - + Save resume data interval [0: disabled] How often the fastresume file is saved. 儲存復原資料區間 [0:停用] - + Outgoing ports (Min) [0: disabled] 連出埠(最小)[0:停用] - + Outgoing ports (Max) [0: disabled] 連出埠(最大)[0:停用] - + 0 (permanent lease) 0(永久租約) - + UPnP lease duration [0: permanent lease] UPnP 租約期限 [0:永久租約] - + Stop tracker timeout [0: disabled] 停止追蹤器逾時 [0:停用] - + Notification timeout [0: infinite, -1: system default] 通知逾時 [0:無限大,-1:系統預設值] - + Maximum outstanding requests to a single peer 對單個 peer 的最多未完成請求 - - - - - + + + + + KiB KiB - + (infinite) (無限大) - + (system default) (系統預設值) - + + Delete files permanently + 永久刪除檔案 + + + + Move files to trash (if possible) + 移動檔案到回收桶(若可能) + + + + Torrent content removing mode + Torrent 內容移除模式 + + + This option is less effective on Linux 這個選項在 Linux 上沒那麼有效 - + Process memory priority 處理程序記憶體優先程度 - + Bdecode depth limit Bdecode 深度限制 - + Bdecode token limit Bdecode 權杖限制 - + Default 預設 - + Memory mapped files 記憶體對映檔案 - + POSIX-compliant 遵循 POSIX - + + Simple pread/pwrite + 簡易預先讀取/預先寫入 + + + Disk IO type (requires restart) 磁碟 IO 類型(需要重新啟動): - - + + Disable OS cache 停用作業系統快取 - + Disk IO read mode 磁碟 IO 讀取模式 - + Write-through 連續寫入 - + Disk IO write mode 磁碟 IO 寫入模式 - + Send buffer watermark 傳送緩衝浮水印 - + Send buffer low watermark 傳送緩衝低浮水印 - + Send buffer watermark factor 傳送緩衝浮水印因子 - + Outgoing connections per second 每秒對外連線數 - - + + 0 (system default) 0(系統預設值) - + Socket send buffer size [0: system default] 插座傳送緩衝大小 [0:系統預設值] - + Socket receive buffer size [0: system default] 插座接收緩衝大小 [0:系統預設值] - + Socket backlog size Socket 紀錄檔大小 - + + Save statistics interval [0: disabled] + How often the statistics file is saved. + 儲存統計資料間隔 [0:停用] + + + .torrent file size limit .torrent 檔案大小限制 - + Type of service (ToS) for connections to peers 與 peers 連線的服務類型 (ToS) - + Prefer TCP 偏好 TCP - + Peer proportional (throttles TCP) 下載者比例 (TCP 節流) - + + Internal hostname resolver cache expiry interval + 內部主機名稱解析器快取過期間隔 + + + Support internationalized domain name (IDN) 支援國際化域名 (IDN) - + Allow multiple connections from the same IP address 允許從同一個 IP 位置而來的多重連線 - + Validate HTTPS tracker certificates 驗證 HTTPS 追蹤器憑證 - + Server-side request forgery (SSRF) mitigation 伺服器端請求偽造 (SSRF) 緩解 - + Disallow connection to peers on privileged ports 不允許連線到在特權連接埠上的 peer - + It appends the text to the window title to help distinguish qBittorent instances - + 其將文字附加到視窗標題以協助區分 qBittorrent 實體 - + Customize application instance name - + 自訂應用程式實體名稱 - + It controls the internal state update interval which in turn will affect UI updates 其控制內部狀態更新間隔,進而影響使用者介面更新 - + Refresh interval 重新整理間隔 - + Resolve peer host names 解析下載者的主機名 - + IP address reported to trackers (requires restart) 向追蹤器回報的 IP 位置(需要重新啟動) - + + Port reported to trackers (requires restart) [0: listening port] + 回報給 tracker 的連接埠(需要重新啟動)[0:監聽埠] + + + Reannounce to all trackers when IP or port changed 當 IP 或連接埠變更時通知所有追蹤者 - + Enable icons in menus 在選單中啟用圖示 - + + Attach "Add new torrent" dialog to main window + 將「新增 torrent」對話方塊附加到主視窗 + + + Enable port forwarding for embedded tracker 為嵌入的追蹤器啟用通訊埠轉送 - + Enable quarantine for downloaded files 開啟已下載檔案隔離 - + Enable Mark-of-the-Web (MOTW) for downloaded files 啟用已下載檔案的 Mark-of-the-Web (MOTW) - + + Affects certificate validation and non-torrent protocol activities (e.g. RSS feeds, program updates, torrent files, geoip db, etc) + 影響證書驗證及非 torrent 通訊協定活動(例如 RSS 摘要、程式更新、torrent 檔案、geoip 資料庫等) + + + + Ignore SSL errors + 忽略 SSL 錯誤 + + + (Auto detect if empty) (若為空則自動偵測) - + Python executable path (may require restart) Python 可執行檔路徑(可能需要重新啟動) - + + Start BitTorrent session in paused state + 以暫停狀態啟動 BitTorrent 工作階段 + + + + sec + seconds + + + + + -1 (unlimited) + -1(無限制) + + + + BitTorrent session shutdown timeout [-1: unlimited] + BitTorrent 工作階段關閉逾時 [-1:無限制] + + + Confirm removal of tracker from all torrents 確認從所有 torrent 中移除 tracker - + Peer turnover disconnect percentage Peer 流動斷線百分比 - + Peer turnover threshold percentage Peer 流動閾值百分比 - + Peer turnover disconnect interval Peer 流動斷線間隔 - + Resets to default if empty 若為空,則重設回預設值 - + DHT bootstrap nodes DHT 自舉節點 - + I2P inbound quantity I2P 傳入量 - + I2P outbound quantity I2P 傳出量 - + I2P inbound length I2P 傳入長度 - + I2P outbound length I2P 傳出長度 - + Display notifications 顯示通知 - + Display notifications for added torrents 顯示已加入 torrent 的通知 - + Download tracker's favicon 下載追蹤者的 favicon - + Save path history length 儲存路徑歷史長度 - + Enable speed graphs 啟用速率圖 - + Fixed slots 固定通道 - + Upload rate based 上傳速率基於 - + Upload slots behavior 上傳通道行為 - + Round-robin 循環 - + Fastest upload 上傳最快 - + Anti-leech 反蝗族 - + Upload choking algorithm 是否上傳演算法 - + Confirm torrent recheck Torrent 重新檢查確認 - + Confirm removal of all tags 確認移除所有標籤 - + Always announce to all trackers in a tier 總是發佈到同一追蹤者群組內所有的追蹤者 - + Always announce to all tiers 總是發佈到所有追蹤者群組 - + Any interface i.e. Any network interface 任何介面 - + %1-TCP mixed mode algorithm uTP-TCP mixed mode algorithm %1-TCP 混合模式演算法 - + Resolve peer countries 解析 peer 國家 - + Network interface 網路介面 - + Optional IP address to bind to 可選擇繫結的 IP 位址 - + Max concurrent HTTP announces 最大並行 HTTP 宣佈 - + Enable embedded tracker 啟用嵌入追蹤者 - + Embedded tracker port 嵌入追蹤者埠 + + AppController + + + + Invalid directory path + 無效的目錄路徑 + + + + Directory does not exist + 目錄不存在 + + + + Invalid mode, allowed values: %1 + 無效模式,允許的值:%1 + + + + cookies must be array + cookies 必須為陣列 + + Application - + Running in portable mode. Auto detected profile folder at: %1 正以可攜模式執行。自動偵測到的設定檔資料夾位於:%1 - + Redundant command line flag detected: "%1". Portable mode implies relative fastresume. 偵測到冗餘的命令列旗標:「%1」。可攜模式代表了相對快速的恢復。 - + Using config directory: %1 正在使用設定目錄:%1 - + 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。 - + Torrent: %1, sending mail notification Torrent:%1,正在傳送郵件通知 - + Add torrent failed 新增 torrent 失敗 - + Couldn't add torrent '%1', reason: %2. 無法新增 torrent「%1」,理由:%2。 - + The WebUI administrator username is: %1 WebUI 管理員使用者名稱為:%1 - + The WebUI administrator password was not set. A temporary password is provided for this session: %1 未設定 WebUI 管理員密碼。為此工作階段提供了臨時密碼:%1 - + You should set your own password in program preferences. 您應該在程式的偏好設定中設定您自己的密碼。 - + The WebUI is disabled! To enable the WebUI, edit the config file manually. WebUI 已停用!要啟用 WebUI,請手動編輯設定檔。 - + Running external program. Torrent: "%1". Command: `%2` 正在執行外部程式。Torrent:「%1」。指令:「%2」 - + Failed to run external program. Torrent: "%1". Command: `%2` 無法執行外部程式。Torrent:「%1」。命令:`%2` - + Torrent "%1" has finished downloading Torrent「%1」已完成下載 - + WebUI will be started shortly after internal preparations. Please wait... WebUI 將在內部準備後不久啟動。請稍等... - - + + Loading torrents... 正在載入 torrent... - + E&xit 離開 (&X) - + I/O Error i.e: Input/Output Error I/O 錯誤 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -1437,100 +1533,110 @@ 原因:「%2」 - + Torrent added 已新增 Torrent - + '%1' was added. e.g: xxx.avi was added. 「%1」已新增。 - + Download completed 下載完成 - + qBittorrent %1 started. Process ID: %2 qBittorrent v3.2.0alpha started qBittorrent %1 已啟動。處理程序 ID:%2 - + + This is a test email. + 這是測試電子郵件。 + + + + Test email + 測試電子郵件 + + + '%1' has finished downloading. e.g: xxx.avi has finished downloading. 「%1」已下載完畢。 - + Information 資訊 - + To fix the error, you may need to edit the config file manually. 要修復錯誤,您可能需要手動編輯設定檔。 - + To control qBittorrent, access the WebUI at: %1 要控制 qBittorrent,請從 %1 造訪 WebUI - + Exit 離開 - + Recursive download confirmation 遞迴下載確認 - + The torrent '%1' contains .torrent files, do you want to proceed with their downloads? Torrent「%1」包含 .torrent 檔案,您想要執行下載作業嗎? - + Never 永不 - + Recursive download .torrent file within torrent. Source torrent: "%1". File: "%2" 在 torrent 中遞迴下載 .torrent 檔案。來源 torrent:「%1」。檔案:「%2」 - + Failed to set physical memory (RAM) usage limit. Error code: %1. Error message: "%2" 無法設定實體記憶體使用率限制。錯誤代碼:%1。錯誤訊息:「%2」 - + Failed to set physical memory (RAM) usage hard limit. Requested size: %1. System hard limit: %2. Error code: %3. Error message: "%4" 設定實體記憶體 (RAM) 硬性使用量限制失敗。請求大小:%1。系統硬性限制:%2。錯誤代碼:%3。錯誤訊息:「%4」 - + qBittorrent termination initiated qBittorrent 中止操作 - + qBittorrent is shutting down... qBittorrent 正在關閉…… - + Saving torrent progress... 正在儲存 torrent 進度… - + qBittorrent is now ready to exit qBittorrent 已準備好關閉 @@ -1609,12 +1715,12 @@ 優先程度: - + Must Not Contain: 必須不包含: - + Episode Filter: 章節過濾器: @@ -1667,263 +1773,263 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 匯出… (&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 季的數字為一強制非零的值 - + 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 集 - + Episode number is a mandatory positive value 章節的數字為一強制正值 - + Rules 規則 - + Rules (legacy) 規則 (舊版) - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons 無限範圍:<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 原則刪除確認 - + Invalid action 無效的動作 - + The list is empty, there is nothing to export. 這個清單是空白的,沒有東西可以匯出。 - + Export RSS rules 匯出 RSS 規則 - + I/O Error I/O 錯誤 - + Failed to create the destination file. Reason: %1 無法建立目標檔案。原因:%1 - + Import RSS rules 匯入 RSS 規則 - + Failed to import the selected rules file. Reason: %1 無法匯入指定的規則檔案。原因:%1 - + Add new rule... 增加新原則… - + Delete rule 刪除原則 - + Rename rule... 重新命名原則… - + Delete selected rules 刪除選取的規則 - + Clear downloaded episodes... 清除已下載的章節… - + Rule renaming 重新命名原則 - + Please type the new rule name 請輸入新原則的名稱 - + Clear downloaded episodes 清除已下載的章節 - + Are you sure you want to clear the list of downloaded episodes for the selected rule? 您確定要清除選取規則的已下載章節清單嗎? - + Regex mode: use Perl-compatible regular expressions 正規表示法模式:使用相容於 Perl 的正規表示法 - - + + Position %1: %2 位置 %1:%2 - + Wildcard mode: you can use 萬用字元模式:您可以使用 - - + + Import error 匯入錯誤 - + Failed to read the file. %1 讀取檔案失敗。%1 - + ? to match any single character ? 可配對為任何單一字元 - + * to match zero or more of any characters * 可配對為零個或更多個任意字元 - + Whitespaces count as AND operators (all words, any order) 空格會以 AND 運算子來計算(所有文字、任意順序) - + | is used as OR operator | 則作為 OR 運算子使用 - + If word order is important use * instead of whitespace. 若文字順序很重要請使用 * 而非空格。 - + An expression with an empty %1 clause (e.g. %2) We talk about regex/wildcards in the RSS filters section here. So a valid sentence would be: An expression with an empty | clause (e.g. expr|) 帶有空白 %1 子句的表達式 (例如 %2) - + will match all articles. 將會配對所有文章。 - + will exclude all articles. 將會排除所有文章。 @@ -1965,7 +2071,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::BencodeResumeDataStorage - + Cannot create torrent resume folder: "%1" 無法建立 torrent 復原資料夾:「%1」 @@ -1975,28 +2081,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 無法解析還原資料:無效格式 - - + + Cannot parse torrent info: %1 無法解析 torrent 資訊:%1 - + Cannot parse torrent info: invalid format 無法解析 torrent 資訊:無效格式 - + Mismatching info-hash detected in resume data 在還原資料中偵測到不相符的資訊雜湊值 - + + Corrupted resume data: %1 + 還原資料受損:%1 + + + + save_path is invalid + save_path 無效 + + + Couldn't save torrent metadata to '%1'. Error: %2. 無法儲存 torrent 詮釋資料至「%1」。錯誤:%2。 - + Couldn't save torrent resume data to '%1'. Error: %2. 無法儲存 torrent 復原資料至「%1」。錯誤:%2。 @@ -2007,16 +2123,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also + Cannot parse resume data: %1 無法解析還原資料:%1 - + Resume data is invalid: neither metadata nor info-hash was found 還原資料無效:找不到詮釋資料與資訊雜湊值 - + Couldn't save data to '%1'. Error: %2 無法儲存資料至「%1」。錯誤:%2 @@ -2024,38 +2141,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::DBResumeDataStorage - + Not found. 找不到 - + Couldn't load resume data of torrent '%1'. Error: %2 無法載入 torrent「%1」的復原資料。錯誤:%2 - - + + Database is corrupted. 資料庫毀損。 - + Couldn't enable Write-Ahead Logging (WAL) journaling mode. Error: %1. 無法啟用預寫紀錄 (WAL) 日誌模式。錯誤:%1。 - + Couldn't obtain query result. 無法取得查詢結果。 - + WAL mode is probably unsupported due to filesystem limitations. 因為檔案系統限制,可能不支援 WAL 模式。 - + + + Cannot parse resume data: %1 + 無法解析還原資料:%1 + + + + + Cannot parse torrent info: %1 + 無法解析 torrent 資訊:%1 + + + + Corrupted resume data: %1 + 還原資料受損:%1 + + + + save_path is invalid + save_path 無效 + + + Couldn't begin transaction. Error: %1 無法開始交易。錯誤:%1 @@ -2063,22 +2202,22 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::ResumeDataStorage - + Couldn't save torrent metadata. Error: %1. 無法儲存 torrent 詮釋資料。錯誤:%1。 - + Couldn't store resume data for torrent '%1'. Error: %2 無法儲存 torrent「%1」的復原資料。錯誤:%2 - + Couldn't delete resume data of torrent '%1'. Error: %2 無法刪除 torrent「%1」的復原資料。錯誤:%2 - + Couldn't store torrents queue positions. Error: %1 無法儲存 torrent 的佇列位置。錯誤:%1 @@ -2086,457 +2225,503 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::SessionImpl - - + + Distributed Hash Table (DHT) support: %1 分散式雜湊表 (DHT) 支援:%1 - - - - - - - - - + + + + + + + + + ON 開啟 - - - - - - - - - + + + + + + + + + OFF 關閉 - - + + Local Peer Discovery support: %1 區域 Peer 探索支援:%1 - + Restart is required to toggle Peer Exchange (PeX) support 切換 Peer 交換 (PeX) 支援必須重新啟動 - + Failed to resume torrent. Torrent: "%1". Reason: "%2" 無法繼續 torrent。Torrent:「%1」。原因:「%2」 - - + + Failed to resume torrent: inconsistent torrent ID is detected. Torrent: "%1" 無法繼續 torrent:偵測到不一致的 torrent ID。Torrent:「%1」 - + Detected inconsistent data: category is missing from the configuration file. Category will be recovered but its settings will be reset to default. Torrent: "%1". Category: "%2" 偵測到不一致的資料:設定檔中缺少分類。分類將會被還原,但其設定將會重設回預設值。Torrent:「%1」。分類:「%2」 - + Detected inconsistent data: invalid category. Torrent: "%1". Category: "%2" 偵測到不一致的資料:無效分類。Torrent:「%1」。分類:「%2」 - + Detected mismatch between the save paths of the recovered category and the current save path of the torrent. Torrent is now switched to Manual mode. Torrent: "%1". Category: "%2" 偵測到還原分類的儲存路徑與目前 torrent 的儲存路徑不相符。Torrent 目前已切換至手動模式。Torrent:「%1」。分類:「%2」 - + Detected inconsistent data: tag is missing from the configuration file. Tag will be recovered. Torrent: "%1". Tag: "%2" 偵測到不一致的資料:設定檔中缺少標籤。標籤將會被還原。Torrent:「%1」。標籤:「%2」 - + Detected inconsistent data: invalid tag. Torrent: "%1". Tag: "%2" 偵測到不一致的資料:無效標籤。Torrent:「%1」。標籤:「%2」 - + System wake-up event detected. Re-announcing to all the trackers... 偵測到系統喚醒事件。正重新向所有 tracker 廣播…… - + Peer ID: "%1" Peer ID:「%1」 - + HTTP User-Agent: "%1" HTTP 使用者代理字串:「%1」 - + Peer Exchange (PeX) support: %1 Peer 交換 (PeX) 支援:%1 - - + + Anonymous mode: %1 匿名模式:%1 - - + + Encryption support: %1 加密支援:%1 - - + + FORCED 強制 - + Could not find GUID of network interface. Interface: "%1" 找不到網路介面的 GUID。介面:「%1」 - + Trying to listen on the following list of IP addresses: "%1" 正在嘗試監聽以下 IP 位置清單:「%1」 - + Torrent reached the share ratio limit. Torrent 達到了分享比例限制。 - - - + Torrent: "%1". Torrent:「%1」。 - - - - Removed torrent. - 已移除 torrent。 - - - - - - Removed torrent and deleted its content. - 已移除 torrent 並刪除其內容。 - - - - - - Torrent paused. - Torent 已暫停。 - - - - - + Super seeding enabled. 超級種子已啟用。 - + Torrent reached the seeding time limit. Torrent 達到了種子時間限制。 - + Torrent reached the inactive seeding time limit. Torrent 已達到不活躍種子時間限制。 - + Failed to load torrent. Reason: "%1" 無法載入 torrent。原因:「%1」 - + I2P error. Message: "%1". I2P 錯誤。訊息:「%1」。 - + UPnP/NAT-PMP support: ON UPnP/NAT-PMP 支援:開啟 - + + Saving resume data completed. + 儲存復原資料完成。 + + + + BitTorrent session successfully finished. + BitTorrent 工作階段成功結束。 + + + + Session shutdown timed out. + 工作階段關閉逾時。 + + + + Removing torrent. + 移除 torrent。 + + + + Removing torrent and deleting its content. + 移除 torrent 並刪除其內容。 + + + + Torrent stopped. + Torrent 已停止。 + + + + Torrent content removed. Torrent: "%1" + Torrent 內容已移除。Torretn:「%1」 + + + + Failed to remove torrent content. Torrent: "%1". Error: "%2" + 移除 torrent 內容失敗。Torrent:「%1」。錯誤:「%2」 + + + + Torrent removed. Torrent: "%1" + Torrent 已移除。Torrent:「%1」 + + + + Merging of trackers is disabled + 合併 tracker 已停用 + + + + Trackers cannot be merged because it is a private torrent + 因為這是私有的 torrent,所以無法合併 tracker + + + + Trackers are merged from new source + 已經合併來自新來源的 tracker + + + UPnP/NAT-PMP support: OFF UPnP/NAT-PMP 支援:關閉 - + Failed to export torrent. Torrent: "%1". Destination: "%2". Reason: "%3" 無法匯出 torrent。Torrent:「%1」。目標:「%2」。原因:「%3」 - + Aborted saving resume data. Number of outstanding torrents: %1 中止儲存還原資料。未完成的 torrent 數量:%1 - + The configured network address is invalid. Address: "%1" 已設定的網路地址無效。地址:「%1」 - - + + Failed to find the configured network address to listen on. Address: "%1" 找不到指定監聽的網路位址。位址:「%1」 - + The configured network interface is invalid. Interface: "%1" 已設定的網路介面無效。介面:「%1」 - + + Tracker list updated + Tracker 清單已更新 + + + + Failed to update tracker list. Reason: "%1" + 更新 tracker 清單失敗。理由:「%1」 + + + Rejected invalid IP address while applying the list of banned IP addresses. IP: "%1" 套用封鎖 IP 位置清單時拒絕無效的 IP 位置。IP:「%1」 - + Added tracker to torrent. Torrent: "%1". Tracker: "%2" 已新增追蹤器至 torrent。Torrent:「%1」。追蹤器:「%2」 - + Removed tracker from torrent. Torrent: "%1". Tracker: "%2" 已從 torrent 移除追蹤器。Torrent:「%1」。追蹤器:「%2」 - + Added URL seed to torrent. Torrent: "%1". URL: "%2" 已新增 URL 種子到 torrent。Torrent:「%1」。URL:「%2」 - + Removed URL seed from torrent. Torrent: "%1". URL: "%2" 已從 torrent 移除 URL 種子。Torrent:「%1」。URL:「%2」 - - Torrent paused. Torrent: "%1" - Torrent 已暫停。Torrent:「%1」 + + Failed to remove partfile. Torrent: "%1". Reason: "%2". + 移除 partfile 失敗。Torrent:「%1」。理由:「%2」。 - + Torrent resumed. Torrent: "%1" Torrent 已復原。Torrent:「%1」 - + Torrent download finished. Torrent: "%1" Torrent 下載完成。Torrent:「%1」 - + Torrent move canceled. Torrent: "%1". Source: "%2". Destination: "%3" 已取消移動 torrent。Torrent:「%1」。來源:「%2」。目標:「%3」 - + + Duplicate torrent + 重複的 torrent + + + + + + Detected an attempt to add a duplicate torrent. Existing torrent: "%1". Torrent infohash: %2. Result: %3 + 偵測到新增重複 torrent 的嘗試。既有的 torrent:「%1」。Torrent inforhash:%2。結果:%3 + + + + Torrent stopped. Torrent: "%1" + Torrent 已停止。Torrent:「%1」 + + + Failed to enqueue torrent move. Torrent: "%1". Source: "%2". Destination: "%3". Reason: torrent is currently moving to the destination 無法將 torrent 加入移動佇列。Torrent:「%1」。來源:「%2」。目標:「%3」。原因:torrent 目前正在移動至目標資料夾 - + Failed to enqueue torrent move. Torrent: "%1". Source: "%2" Destination: "%3". Reason: both paths point to the same location 無法將 torrent 移動加入佇列。Torrent:「%1」。來源:「%2」。目標:「%3」。原因:兩個路徑均指向相同的位置 - + Enqueued torrent move. Torrent: "%1". Source: "%2". Destination: "%3" 已將 torrent 移動加入佇列。Torrent:「%1」。來源:「%2」。目標:「%3」 - + Start moving torrent. Torrent: "%1". Destination: "%2" 開始移動 torrent。Torrent:「%1」。目標:「%2」 - + Failed to save Categories configuration. File: "%1". Error: "%2" 無法儲存分類設定。檔案:「%1」。錯誤:「%2」 - + Failed to parse Categories configuration. File: "%1". Error: "%2" 無法解析分類設定。檔案:「%1」。錯誤:「%2」 - + Successfully parsed the IP filter file. Number of rules applied: %1 成功解析 IP 過濾條件檔案。套用的規則數量:%1 - + Failed to parse the IP filter file 無法解析 IP 過濾條件檔案 - + Restored torrent. Torrent: "%1" 已還原 torrent。Torrent:「%1」 - + Added new torrent. Torrent: "%1" 已新增新的 torrent。Torrent:「%1」 - + Torrent errored. Torrent: "%1". Error: "%2" Torrent 錯誤。Torrent:「%1」。錯誤:「%2」 - - - Removed torrent. Torrent: "%1" - 已移除 torrent。Torrent:「%1」 - - - - Removed torrent and deleted its content. Torrent: "%1" - 已移除 torrent 並刪除其內容。Torrent:「%1」 - - - + Torrent is missing SSL parameters. Torrent: "%1". Message: "%2" - + Torrent 缺少 SSL 參數。Torretn:「%1」。訊息:「%2」 - + File error alert. Torrent: "%1". File: "%2". Reason: "%3" 檔案錯誤警告。Torrent:「%1」。檔案:「%2」。原因:「%3」 - + UPnP/NAT-PMP port mapping failed. Message: "%1" UPnP/NAT-PMP 連接埠對映失敗。訊息:「%1」 - + UPnP/NAT-PMP port mapping succeeded. Message: "%1" UPnP/NAT-PMP 連接埠對映成功。訊息:「%1」 - + IP filter this peer was blocked. Reason: IP filter. IP 過濾 - + filtered port (%1) this peer was blocked. Reason: filtered port (8899). 已過濾的連接埠 (%1) - + privileged port (%1) this peer was blocked. Reason: privileged port (80). 特權連接埠 (%1) - + + URL seed connection failed. Torrent: "%1". URL: "%2". Error: "%3" + URL 種子連線失敗。Torrent:「%1」。URL:「%2」。錯誤:「%3」 + + + BitTorrent session encountered a serious error. Reason: "%1" BitTorrent 工作階段遇到嚴重錯誤。理由:「%1」 - + SOCKS5 proxy error. Address: %1. Message: "%2". SOCKS5 代理伺服器錯誤。地址:%1。訊息:「%2」。 - + %1 mixed mode restrictions this peer was blocked. Reason: I2P mixed mode restrictions. %1 混合模式限制 - + Failed to load Categories. %1 載入分類失敗。%1 - + Failed to load Categories configuration. File: "%1". Error: "Invalid data format" 載入分類設定失敗。檔案:「%1」。錯誤:「無效的資料格式」 - - Removed torrent but failed to delete its content and/or partfile. Torrent: "%1". Error: "%2" - 已移除 torrent 但刪除其內容及/或部份檔案失敗。Torrent:「%1」。錯誤:「%2」 - - - + %1 is disabled this peer was blocked. Reason: uTP is disabled. %1 已停用 - + %1 is disabled this peer was blocked. Reason: TCP is disabled. %1 已停用 - - URL seed DNS lookup failed. Torrent: "%1". URL: "%2". Error: "%3" - URL 種子 DNS 查詢失敗。Torrent:「%1」。URL:「%2」。錯誤:「%3」 - - - + Received error message from URL seed. Torrent: "%1". URL: "%2". Message: "%3" 從 URL 種子收到錯誤訊息。Torrent:「%1」。URL:「%2」。訊息:「%3」 - + Successfully listening on IP. IP: "%1". Port: "%2/%3" 成功監聽 IP。IP:「%1」。連接埠:「%2/%3」 - + Failed to listen on IP. IP: "%1". Port: "%2/%3". Reason: "%4" 無法監聽該 IP 位址。IP:「%1」。連接埠:「%2/%3」。原因:「%4」 - + Detected external IP. IP: "%1" 偵測到外部 IP。IP:「%1」 - + Error: Internal alert queue is full and alerts are dropped, you might see degraded performance. Dropped alert type: "%1". Message: "%2" 錯誤:內部警告佇列已滿,警告已被丟棄,您可能會發現效能變差。被丟棄的警告類型:「%1」。訊息:「%2」 - + Moved torrent successfully. Torrent: "%1". Destination: "%2" 已成功移動 torrent。Torrent:「%1」。目標:「%2」 - + Failed to move torrent. Torrent: "%1". Source: "%2". Destination: "%3". Reason: "%4" 無法移動 torrent。Torrent:「%1」。來源:「%2」。目標:「%3」。原因:「%4」 @@ -2546,19 +2731,19 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Failed to start seeding. - + 無法開始做種。 BitTorrent::TorrentCreator - + Operation aborted 放棄動作 - - + + Create new torrent file failed. Reason: %1. 無法建立新的 torrent 檔案。原因:%1。 @@ -2566,67 +2751,67 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also BitTorrent::TorrentImpl - + Failed to add peer "%1" to torrent "%2". Reason: %3 無法新增 peer「%1」到 torrent「%2」。原因:%3 - + Peer "%1" is added to torrent "%2" Peer「%1」新增至 torrent「%2」 - + Unexpected data detected. Torrent: %1. Data: total_wanted=%2 total_wanted_done=%3. 偵測到異常資料。Torrent:%1。資料:total_wanted=%2 total_wanted_done=%3。 - + Couldn't write to file. Reason: "%1". Torrent is now in "upload only" mode. 無法寫入檔案。原因:「%1」。Torrent 目前為「僅上傳」模式。 - + Download first and last piece first: %1, torrent: '%2' 先下載第一及最後一塊:%1,torrent:「%2」 - + On 開啟 - + Off 關閉 - + Failed to reload torrent. Torrent: %1. Reason: %2 重新載入 torrent 失敗。Torrent:%1。理由:%2 - + Generate resume data failed. Torrent: "%1". Reason: "%2" 無法產生復原資料。Torrent:「%1」。原因:「%2」 - + Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: "%1". Reason: "%2" 無法還原 torrent。檔案可能已被移動或儲存空間無法存取。Torrent:「%1」。原因:「%2」 - + Missing metadata 缺少詮釋資料 - + File rename failed. Torrent: "%1", file: "%2", reason: "%3" 無法重新命名檔案。Torrent:「%1」,檔案:「%2」,原因:「%3」 - + Performance alert: %1. More info: %2 效能警告:%1。更多資訊:%2 @@ -2647,189 +2832,189 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CMD Options - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=value' 參數「%1」必須使用語法「%1=%2」 - + Parameter '%1' must follow syntax '%1=%2' e.g. Parameter '--webui-port' must follow syntax '--webui-port=<value>' 參數「%1」必須使用語法「%1=%2」 - + Expected integer number in environment variable '%1', but got '%2' 預期環境變數「%1」為整數,但得到的是「%2」 - - Parameter '%1' must follow syntax '%1=%2' - e.g. Parameter '--add-paused' must follow syntax '--add-paused=<true|false>' - 參數「%1」必須使用語法「%1=%2」 - - - + Expected %1 in environment variable '%2', but got '%3' 預期環境變數「%2」為 %1 ,但得到的是「%3」 - - + + %1 must specify a valid port (1 to 65535). %1 必須指定有效的埠 (1 到 65535)。 - + Usage: 使用: - + [options] [(<filename> | <url>)...] [選項] [(<filename> | <url>)...] - + Options: 選項: - + Display program version and exit 顯示程式版本並結束 - + Display this help message and exit 顯示這說明訊息並結束 - + + Parameter '%1' must follow syntax '%1=%2' + e.g. Parameter '--add-stopped' must follow syntax '--add-stopped=<true|false>' + 參數「%1」必須使用語法「%1=%2」 + + + Confirm the legal notice 確認法律聲明 - - + + port - + Change the WebUI port 變更 WebUI 連接埠 - + Change the torrenting port 變更 torrenting 連接埠 - + Disable splash screen 停用起始畫面 - + Run in daemon-mode (background) 以守護模式開啟 (背景執行) - + dir Use appropriate short form or abbreviation of "directory" 目錄 - + Store configuration files in <dir> 儲存設定檔到 <dir> - - + + name 名稱 - + Store configuration files in directories qBittorrent_<name> 儲存設定檔到目錄 qBittorrent_<name> - + Hack into libtorrent fastresume files and make file paths relative to the profile directory 強制修改 libtorrent 快速復原檔案,並設定檔案路徑為設定檔目錄的相對路徑 - + files or URLs 檔案或 URL - + Download the torrents passed by the user 下載由使用者傳遞的 torrent - + Options when adding new torrents: 當新增 torrent 時的選項: - + path 路徑 - + Torrent save path Torrent 儲存路徑 - - Add torrents as started or paused - 新增 torrent 為已開始或已暫停 + + Add torrents as running or stopped + 新增正在執行或已停止的 torrent - + Skip hash check 略過雜湊值檢查 - + Assign torrents to category. If the category doesn't exist, it will be created. 指派 torrent 到分類。若分類不存在,其將會被建立。 - + Download files in sequential order 依順序下載檔案 - + Download first and last pieces first 先下載第一和最後一塊 - + Specify whether the "Add New Torrent" dialog opens when adding a torrent. 指定是否要在新增 torrent 時開啟「新增 torrent」對話框。 - + Option values may be supplied via environment variables. For option named 'parameter-name', environment variable name is 'QBT_PARAMETER_NAME' (in upper case, '-' replaced with '_'). To pass flag values, set the variable to '1' or 'TRUE'. For example, to disable the splash screen: 選項的值可以透過環境變數提供。選項名為「parameter-name」時,環境變數將會名為「QBT_PARAMETER_NAME」(全大寫,並以「_」替代「-」)。要傳遞旗標值,設定變數為「1」或「TRUE」。舉例來說,要「停用起始畫面」就是: - + Command line parameters take precedence over environment variables 命令列的參數優先於環境變數 - + Help 說明 @@ -2881,13 +3066,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Resume torrents - 繼續 torrent + Start torrents + 啟動 torrent - Pause torrents - 暫停 torrent + Stop torrents + 停止 torrent @@ -2898,15 +3083,20 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also ColorWidget - + Edit... 編輯…… - + Reset 重設 + + + System + 系統 + CookiesDialog @@ -2947,12 +3137,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also CustomThemeSource - + Failed to load custom theme style sheet. %1 載入自訂佈景主題樣式表失敗。%1 - + Failed to load custom theme colors. %1 載入自訂佈景主題色彩。%1 @@ -2960,7 +3150,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also DefaultThemeSource - + Failed to load default theme colors. %1 載入預設佈景主題色彩失敗。%1 @@ -2979,23 +3169,23 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also - Also permanently delete the files - 同時永久刪除檔案 + Also remove the content files + 也移除內容檔案 - + Are you sure you want to remove '%1' from the transfer list? Are you sure you want to remove 'ubuntu-linux-iso' from the transfer list? 確定要從傳輸清單移除「%1」? - + Are you sure you want to remove these %1 torrents from the transfer list? Are you sure you want to remove these 5 torrents from the transfer list? 您確定要移除在傳輸清單中的這 %1 個 torrent 嗎? - + Remove 移除 @@ -3008,12 +3198,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 從 URL 下載 - + Add torrent links 增加 torrent 連結 - + One link per line (HTTP links, Magnet links and info-hashes are supported) 每行一連結 (HTTP 連結、磁力連結及資訊雜湊值皆支援) @@ -3023,12 +3213,12 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 下載 - + No URL entered 沒有輸入 URL - + Please type at least one URL. 請輸入至少一個 URL。 @@ -3187,25 +3377,48 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 解析錯誤:過濾器檔案不是有效的 PeerGuardian P2B 檔案。 + + FilterPatternFormatMenu + + + Pattern Format + 模式格式 + + + + Plain text + 純文字 + + + + Wildcards + 萬用字元 + + + + Regular expression + 正則表示式 + + GUIAddTorrentManager - + Downloading torrent... Source: "%1" 正在下載 torrent……來源:「%1」 - - Trackers cannot be merged because it is a private torrent - 因為這是私有的 torrent,所以無法合併 tracker - - - + Torrent is already present Torrent 已經存在 - + + Trackers cannot be merged because it is a private torrent. + 因為這是私有的 torrent,所以無法合併 tracker。 + + + Torrent '%1' is already in the transfer list. Do you want to merge trackers from new source? Torrent「%1」已經在傳輸清單中。您想合併來自新來源的追蹤者嗎? @@ -3213,38 +3426,38 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 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 - + Database corrupted: no data section found. 資料庫毀損:找不到資料項目。 @@ -3252,17 +3465,17 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Http::Connection - + Http request size exceeds limitation, closing socket. Limit: %1, IP: %2 HTTP 請求超過數量上限,正在關閉網路插座。限制:%1,IP:%2 - + Bad Http request method, closing socket. IP: %1. Method: "%2" 不正確的 HTTP 請求方法,正在關閉網路插座。IP:%1。方法:「%2」 - + Bad Http request, closing socket. IP: %1 不正確的 HTTP 請求,正在關閉網路插座。IP:%1 @@ -3303,26 +3516,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also IconWidget - + Browse... 瀏覽… - + Reset 重設 - + Select icon 選取圖示 - + Supported image files 支援的影像檔案 + + InhibitorDBus + + + Power management found suitable D-Bus interface. Interface: %1 + 電源管理找到了合適的 D-Bus 介面。介面:%1 + + + + Power management error. Did not find a suitable D-Bus interface. + 電源管理錯誤。找不到合適的 D-Bus 介面。 + + + + + + Power management error. Action: %1. Error: %2 + 電源管理錯誤。動作:%1。錯誤:%2 + + + + Power management unexpected error. State: %1. Error: %2 + 電源管理非預期的錯誤。狀態:%1。錯誤:%2 + + + + InhibitorMacOS + + + PMMacOS + qBittorrent is active + PMMacOS + + LegalNotice @@ -3354,13 +3601,13 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also LogPeerModel - + %1 was blocked. Reason: %2. 0.0.0.0 was blocked. Reason: reason for blocking. %1 已被封鎖。原因:%2。 - + %1 was banned 0.0.0.0 was banned %1 被封鎖 @@ -3369,60 +3616,60 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also Main - + %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 必須是單一個命令列參數。 - + Run application with -h option to read about command line parameters. 以 -h 選項執行應用程式以閱讀關於命令列參數的資訊。 - + Bad command line 不正確的命令列 - + Bad command line: 不正確的命令列: - + An unrecoverable error occurred. 發生無法還原的錯誤。 + - qBittorrent has encountered an unrecoverable error. qBittorrent 遇到無法還原的錯誤。 - + You cannot use %1: qBittorrent is already running. 您無法使用 %1:qBittorent 正在執行。 - + Another qBittorrent instance is already running. 已有其他 qBittorrent 實體正在執行。 - + Found unexpected qBittorrent instance. Exiting this instance. Current process ID: %1. 找到預料之外的 qBittorrent 實體。正在結束此實體。目前處理程序 ID:%1。 - + Error when daemonizing. Reason: "%1". Error code: %2. 幕後處理程序化時發生錯誤。理由:「%1」。錯誤碼:%2。 @@ -3435,609 +3682,681 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also 編輯 (&E) - + &Tools 工具 (&T) - + &File 檔案 (&F) - + &Help 說明 (&H) - + On Downloads &Done 當下載完成 (&D) - + &View 檢視 (&V) - + &Options... 選項… (&O) - - &Resume - 繼續 (&R) - - - + &Remove 移除(&R) - + Torrent &Creator Torrent 製作器 (&C) - - + + Alternative Speed Limits 替補速率限制 - + &Top Toolbar 頂端工具列 (&T) - + Display Top Toolbar 顯示頂端工具列 - + Status &Bar 狀態列 (&B) - + Filters Sidebar 過濾條件側邊欄 - + S&peed in Title Bar 在標題列顯示速率 (&P) - + Show Transfer Speed in Title Bar 在標題列顯示傳輸速率 - + &RSS Reader RSS 閱讀器 (&R) - + Search &Engine 搜尋引擎 (&E) - + L&ock qBittorrent 鎖定 qBittorrent (&O) - + Do&nate! 捐款!(&N) - + + Sh&utdown System + 關機 (&U) + + + &Do nothing 不做任何事(&D) - + Close Window 關閉視窗 - - R&esume All - 全部繼續 (&E) - - - + Manage Cookies... 管理 cookie… - + Manage stored network cookies 管理儲存的網路 cookie… - + Normal Messages 一般訊息 - + Information Messages 資訊訊息 - + Warning Messages 警告訊息 - + Critical Messages 重要訊息 - + &Log 記錄 (&L) - + + Sta&rt + 啟動(&R) + + + + Sto&p + 停止(&P) + + + + R&esume Session + 繼續工作階段(&E) + + + + Pau&se Session + 暫停工作階段(&S) + + + Set Global Speed Limits... 設定全域速率限制… - + Bottom of Queue 佇列底部 - + Move to the bottom of the queue 移動到佇列底部 - + Top of Queue 佇列頂部 - + Move to the top of the queue 移動到佇列頂部 - + Move Down Queue 在佇列中向下移動 - + Move down in the queue 在佇列中向下移動 - + Move Up Queue 在佇列中向上移動 - + Move up in the queue 在佇列中向上移動 - + &Exit qBittorrent 結束 qbittorrent (&E) - + &Suspend System 系統暫停 (&S) - + &Hibernate System 系統休眠 (&H) - - S&hutdown System - 關機 (&h) - - - + &Statistics 統計資料 (&S) - + Check for Updates 檢查更新 - + Check for Program Updates 檢查程式更新 - + &About 關於 (&A) - - &Pause - 暫停 (&P) - - - - P&ause All - 全部暫停 (&A) - - - + &Add Torrent File... 新增 torrent 檔案… (&A) - + Open 開啟 - + E&xit 離開 (&X) - + Open URL 開啟 URL - + &Documentation 說明文件 (&D) - + Lock 鎖定 - - - + + + Show 顯示 - + Check for program updates 檢查軟體更新 - + Add Torrent &Link... 新增 torrent 連結 (&L) - + If you like qBittorrent, please donate! 如果您喜歡 qBittorrent,請捐款! - - + + Execution Log 活動紀錄 - + Clear the password 清除密碼 - + &Set Password 設定密碼 (&S) - + Preferences 偏好設定 - + &Clear Password 清除密碼 (&C) - + Transfers 傳輸 - - + + qBittorrent is minimized to tray qBittorrent 最小化到系統匣 - - - + + + This behavior can be changed in the settings. You won't be reminded again. 這行為可以在設定中變更。您將不會再被提醒。 - + Icons Only 只有圖示 - + Text Only 只有文字 - + Text Alongside Icons 文字在圖示旁 - + Text Under Icons 文字在圖示下 - + Follow System Style 跟隨系統風格 - - + + UI lock password UI 鎖定密碼 - - + + Please type the UI lock password: 請輸入 UI 鎖定密碼: - + Are you sure you want to clear the password? 您確定要清除密碼? - + Use regular expressions 使用正規表示式 - + + + Search Engine + 搜尋引擎 + + + + Search has failed + 搜尋失敗 + + + + Search has finished + 搜尋完成 + + + Search 搜尋 - + Transfers (%1) 傳輸 (%1) - + qBittorrent was just updated and needs to be restarted for the changes to be effective. qBittorrent 已經更新了並且需要重新啟動。 - + qBittorrent is closed to tray qBittorrent 關閉到系統匣 - + Some files are currently transferring. 有些檔案還在傳輸中。 - + Are you sure you want to quit qBittorrent? 您確定要退出 qBittorrent 嗎? - + &No 否 (&N) - + &Yes 是 (&Y) - + &Always Yes 總是 (&A) - + Options saved. 已儲存選項。 - - [D: %1, U: %2] %3 - D = Download; U = Upload; %3 is the rest of the window title - + + [PAUSED] %1 + %1 is the rest of the window title + [已暫停] %1 - - + + [D: %1, U: %2] %3 + D = Download; U = Upload; %3 is the rest of the window title + [下載:%1,上傳:%2] %3 + + + + Python installer could not be downloaded. Error: %1. +Please install it manually. + 無法下載 Python 安裝程式。原因:%1。 +請手動安裝。 + + + + Rename Python installer failed. Source: "%1". Destination: "%2". + 無法重新命名 Python 安裝程式。來源:「%1」。目的地:「%2」。 + + + + Python installation success. + Python 安裝成功 + + + + Exit code: %1. + 結束碼:%1。 + + + + Reason: installer crashed. + 理由:安裝程式當機。 + + + + Python installation failed. + Python 安裝失敗。 + + + + Launching Python installer. File: "%1". + 正在啟動 Python 安裝程式。檔案:「%1」。 + + + + Missing Python Runtime Python 執行庫遺失 - + qBittorrent Update Available 有新版本的 qBittorrent 可用 - + 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,但是它似乎尚未安裝。 - - + + Old Python Runtime 舊的 Python 執行庫 - + A new version is available. 有新版本可用。 - + Do you want to download %1? 您想要下載 %1 嗎? - + Open changelog... 開啟變更紀錄… - + No updates available. You are already using the latest version. 沒有更新的版本 您已經在用最新的版本了 - + &Check for Updates 檢查更新 (&C) - + Your Python version (%1) is outdated. Minimum requirement: %2. Do you want to install a newer version now? 您的 Python 版本 (%1) 太舊了。最低需求:%2。 您想要現在安裝更新版本嗎? - + Your Python version (%1) is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: %2. 您的 Python 版本 (%1) 太舊了。請升級到最新版本來讓搜尋引擎運作。 最低需求:%2。 - + + Paused + 暫停 + + + Checking for Updates... 正在檢查更新… - + Already checking for program updates in the background 已經在背景檢查程式更新 - + + Python installation in progress... + Python 安裝進行中…… + + + + Failed to open Python installer. File: "%1". + 開啟 Python 安裝程式失敗。檔案:「%1」。 + + + + Failed MD5 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 安裝程式的 MD5 雜湊值檢查失敗。檔案:「%1」。結果雜湊值:「%2」。預期雜湊值:「%3」。 + + + + Failed SHA3-512 hash check for Python installer. File: "%1". Result hash: "%2". Expected hash: "%3". + Python 安裝程式的 SHA3-512 雜湊值檢查失敗。檔案:「%1」。結果雜湊值:「%2」。預期雜湊值:「%3」。 + + + Download error 下載錯誤 - - Python setup could not be downloaded, reason: %1. -Please install it manually. - 無法下載 Python 安裝程式。原因:%1。 -請手動安裝。 - - - - + + Invalid password 無效的密碼 - + Filter torrents... 過濾 torrent…… - + Filter by: 過濾條件: - + The password must be at least 3 characters long 密碼長度必須至少有 3 個字元 - - - + + + RSS (%1) RSS (%1) - + 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 - + Open Torrent Files 開啟 torrent 檔案 - + Torrent Files Torrent 檔案 @@ -4232,7 +4551,12 @@ Please install it manually. Net::DownloadManager - + + SSL error, URL: "%1", errors: "%2" + SSL 錯誤,URL:「%1」,錯誤「%2」 + + + Ignoring SSL error, URL: "%1", errors: "%2" 正在忽略 SSL 錯誤,URL:「%1」,錯誤:「%2」 @@ -5526,47 +5850,47 @@ Please install it manually. Net::Smtp - + Connection failed, unrecognized reply: %1 連線失敗,無法是別的回覆:%1 - + Authentication failed, msg: %1 驗證失敗,訊息:%1 - + <mail from> was rejected by server, msg: %1 <mail from> 被伺服器拒絕,訊息:%1 - + <Rcpt to> was rejected by server, msg: %1 <Rcpt to> 被伺服器拒絕,訊息:%1 - + <data> was rejected by server, msg: %1 <data> 被伺服器拒絕,訊息:%1 - + Message was rejected by the server, error: %1 訊息被伺服器拒絕,錯誤:%1 - + Both EHLO and HELO failed, msg: %1 EHLO 與 HELO 皆失敗,訊息:%1 - + The SMTP server does not seem to support any of the authentications modes we support [CRAM-MD5|PLAIN|LOGIN], skipping authentication, knowing it is likely to fail... Server Auth Modes: %1 SMTP 伺服器似乎並不支援任何我們支援的驗證模式 [CRAM-MD5|PLAIN|LOGIN],正在略過驗證,知道其可能會失敗……伺服器驗證模式:%1 - + Email Notification Error: %1 電子郵件通知錯誤:%1 @@ -5604,299 +5928,283 @@ Please install it manually. BitTorrent - + RSS RSS - - Web UI - Web UI - - - + Advanced 進階 - + Customize UI Theme... 自訂使用者界面佈景主題…… - + Transfer List 傳輸清單 - + Confirm when deleting torrents 當刪除 torrent 時必須確認 - - Shows a confirmation dialog upon pausing/resuming all the torrents - 暫停/繼續所有 torrent 時顯示確認對話方塊 - - - - Confirm "Pause/Resume all" actions - 確認「暫停/繼續全部」動作 - - - + Use alternating row colors In table elements, every other row will have a grey background. 單雙列交替背景顏色 - + Hide zero and infinity values 隱藏零或無限大的值。 - + Always 總是 - - Paused torrents only - 僅暫停 torrent - - - + Action on double-click 按兩下時的行動 - + Downloading torrents: 下載中的 torrent: - - - Start / Stop Torrent - 開始╱停止 torrent - - - - + + Open destination folder 開啟目標資料夾 - - + + No action 無行動 - + Completed torrents: 已完成的 torrent: - + Auto hide zero status filters 自動隱藏零狀態過濾條件 - + Desktop 桌面 - + Start qBittorrent on Windows start up 在 Windows 啟動時啟動 qBittorrent - + Show splash screen on start up 啟動時顯示起始畫面 - + Confirmation on exit when torrents are active 當 torrent 活躍時,離開時要確認 - + Confirmation on auto-exit when downloads finish 下載完成時的自動離開要確認 - + <html><head/><body><p>To set qBittorrent as default program for .torrent files and/or Magnet links<br/>you can use <span style=" font-weight:600;">Default Programs</span> dialog from <span style=" font-weight:600;">Control Panel</span>.</p></body></html> <html><head/><body><p>要設定 qBittorrent 為 .torrent 檔案及/或磁力連結的預設程式<br/>您可以使用來自<span style=" font-weight:600;">控制台</span>的<span style=" font-weight:600;">預設程式</span>對話方塊。</p></body></html> - + KiB KiB - + + Show free disk space in status bar + 在狀態列中顯示可用磁碟空間 + + + Torrent content layout: Torrent 內容佈局: - + Original 原始 - + Create subfolder 建立子資料夾 - + Don't create subfolder 不要建立子資料夾 - + The torrent will be added to the top of the download queue Torrent 將會被新增至下載佇列頂部 - + Add to top of queue The torrent will be added to the top of the download queue 新增至佇列頂部 - + When duplicate torrent is being added 新增重複的 torrent 時 - + Merge trackers to existing torrent 合併追蹤器到既有的 torrent - + Keep unselected files in ".unwanted" folder 將未選取的檔案保留在「.unwanted」資料夾中 - + Add... 新增…… - + Options.. 選項…… - + Remove 移除 - + Email notification &upon download completion 下載完成時使用電子郵件通知 (&U) - + + Send test email + 傳送測試電子郵件 + + + + Run on torrent added: + 在 torrent 新增時執行: + + + + Run on torrent finished: + 在 torrent 結束時執行: + + + Peer connection protocol: 下載者連線協定: - + Any 任何 - + I2P (experimental) I2P(實驗性) - - <html><head/><body><p>If &quot;mixed mode&quot; is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> - <html><head/><body><p>若啟用「混合模式」,I2P torrent 也允許從追蹤者以外的來源取得 peer,並連線到一般 IP,不提供任何匿名化。若使用者對 I2P 的匿名化不感興趣,但仍希望可以連線至 I2P peer,這可能會很有用。</p></body></html> - - - + Mixed mode 混合模式 - - Some options are incompatible with the chosen proxy type! - 某些選項與選定的代理伺服器類型不相容! - - - + If checked, hostname lookups are done via the proxy 若勾選,主機名稱查詢將會透過代理伺服器完成 - + Perform hostname lookup via proxy 透過代理伺服器執行主機名稱查詢 - + Use proxy for BitTorrent purposes 對 BitTorrent 使用代理伺服器 - + RSS feeds will use proxy RSS feed 將會使用代理伺服器 - + Use proxy for RSS purposes 對 RSS 使用代理伺服器 - + Search engine, software updates or anything else will use proxy 搜尋引擎、軟體更新或其他任何會使用代理伺服器的東西 - + Use proxy for general purposes 對一般目的使用代理伺服器 - + IP Fi&ltering IP 過濾 (&L) - + Schedule &the use of alternative rate limits 預約使用替補速率限制 (&T) - + From: From start time 從: - + To: To end time 到: - + Find peers on the DHT network 在 DHT 網路上尋找 peer - + Allow encryption: Connect to peers regardless of setting Require encryption: Only connect to peers with protocol encryption Disable encryption: Only connect to peers without protocol encryption @@ -5905,145 +6213,190 @@ Disable encryption: Only connect to peers without protocol encryption 停用加密:僅連線到沒有協議加密的 peer - + Allow encryption 允許加密 - + (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="https://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">更多資訊</a>) - + Maximum active checking torrents: 最大活躍的正在檢查 torrent 數: - + &Torrent Queueing Torrent 佇列 (&T) - + When total seeding time reaches 當總種子時間達到 - + When inactive seeding time reaches 當不活躍種子時間達到 - - A&utomatically add these trackers to new downloads: - 自動新增這些追蹤者到新的下載中:(&U) - - - + RSS Reader RSS 閱讀器 - + Enable fetching RSS feeds 啟用抓取 RSS feed - + Feeds refresh interval: Feed 更新區間: - + Same host request delay: - + 相同主機請求延遲: - + Maximum number of articles per feed: 每個 feed 的最大文章數: - - - + + + min minutes 分鐘 - + Seeding Limits 種子限制 - - Pause torrent - 暫停 torrent - - - + Remove torrent 移除 torrent - + Remove torrent and its files 移除 torrent 與其檔案 - + Enable super seeding for torrent 為 torrent 啟用超級做種 - + When ratio reaches 當分享率達到 - + + Some functions are unavailable with the chosen proxy type! + 部份功能在選定的代理伺服器類型中無法使用! + + + + Note: The password is saved unencrypted + 注意:密碼以未加密形式儲存 + + + + Stop torrent + 停止 torrent + + + + A&utomatically append these trackers to new downloads: + 自動附加這些追蹤器到新下載項目 (&u) + + + + Automatically append trackers from URL to new downloads: + 自動將 URL 的 tracker 附加到新下載的檔案: + + + + URL: + URL: + + + + Fetched trackers + 擷取 tracker + + + + Search UI + 搜尋使用者介面 + + + + Store opened tabs + 儲存已開啟的分頁 + + + + Also store search results + 也儲存搜尋結果 + + + + History length + 歷史紀錄長度 + + + RSS Torrent Auto Downloader RSS torrent 自動下載器 - + Enable auto downloading of RSS torrents 啟用自動 RSS torrent 下載 - + Edit auto downloading rules... 編輯自動下載規則… - + RSS Smart Episode Filter RSS 智慧型章節過濾器 - + Download REPACK/PROPER episodes 下載 REPACK╱PROPER 章節 - + Filters: 過濾器: - + Web User Interface (Remote control) Web UI(遠端控制) - + IP address: IP 位置: - + IP address that the Web UI will bind to. Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv4 address, "::" for any IPv6 address, or "*" for both IPv4 and IPv6. @@ -6052,42 +6405,37 @@ Specify an IPv4 or IPv6 address. You can specify "0.0.0.0" for any IPv 「::」以配對任何 IPv6 位址,或是「*」以配對任何 IPv4 或 IPv6 位址。 - + Ban client after consecutive failures: 連續失敗後封鎖用戶端: - + Never 永不 - + ban for: 封鎖: - + Session timeout: 工作階段逾時: - + Disabled 已停用 - - Enable cookie Secure flag (requires HTTPS) - 啟用 cookie 安全旗標(需要 HTTPS) - - - + Server domains: 伺服器網域: - + Whitelist for filtering HTTP Host header values. In order to defend against DNS rebinding attack, you should put in domain names used by WebUI server. @@ -6100,442 +6448,483 @@ Use ';' to split multiple entries. Can use wildcard '*'. - + &Use HTTPS instead of HTTP 使用 HTTPS 而不是 HTTP (&U) - + Bypass authentication for clients on localhost 在本機上略過用戶端驗證 - + Bypass authentication for clients in whitelisted IP subnets 讓已在白名單中的 IP 子網路略過驗證 - + IP subnet whitelist... IP 子網白名單… - + + Use alternative WebUI + 使用替補 WebUI + + + Specify reverse proxy IPs (or subnets, e.g. 0.0.0.0/24) in order to use forwarded client address (X-Forwarded-For header). Use ';' to split multiple entries. 指定反向代理 IP(或子網路,例如 0.0.0.0/24)以使用轉送的用戶端位置(X-Forwarded-For 標頭)。使用 ';' 來分隔多個項目。 - + Upda&te my dynamic domain name 更新我的動態領域名稱 (&T) - + Minimize qBittorrent to notification area 最小化 qBittorrent 到通知區域 - + + Search + 搜尋 + + + + WebUI + WebUI + + + Interface 界面 - + Language: 語言: - + + Style: + 樣式: + + + + Color scheme: + 配色方案: + + + + Stopped torrents only + 僅已停止的 torrent + + + + + Start / stop torrent + 開始 / 停止 torrent + + + + + Open torrent options dialog + 開啟 torrent 選項對話方塊 + + + Tray icon style: 圖示樣式: - - + + Normal 一般 - + File association 檔案關聯 - + Use qBittorrent for .torrent files Torrent 檔案使用 qBittorrent - + Use qBittorrent for magnet links 磁力連結使用 qBittorrent - + Check for program updates 檢查程式更新 - + Power Management 電源管理 - + + &Log Files + 紀錄檔(&L) + + + Save path: 儲存路徑: - + Backup the log file after: 備份記錄檔,每滿 - + Delete backup logs older than: 只保存備份記錄: - + + Show external IP in status bar + 在狀態列中顯示外部 IP + + + When adding a torrent 當增加 torrent 時 - + Bring torrent dialog to the front 以最上層顯示 torrent 對話方塊 - + + The torrent will be added to download list in a stopped state + 這個 torrent 將會以「停止狀態」加入下載清單。 + + + Also delete .torrent files whose addition was cancelled 同時也刪除新增時被取消的 .torrent 檔案 - + Also when addition is cancelled 新增時被取消亦同 - + Warning! Data loss possible! 警告!可能遺失資料! - + Saving Management 存檔管理 - + Default Torrent Management Mode: 預設 torrent 管理模式: - + Manual 手動 - + Automatic 自動 - + When Torrent Category changed: 當 Torrent 分類變更時: - + Relocate torrent 重新定位 torrent - + Switch torrent to Manual Mode 切換 torrent 到手動模式 - - + + Relocate affected torrents 重新定位受影響的 torrent - - + + Switch affected torrents to Manual Mode 切換受影響的 torrent 至手動模式 - + Use Subcategories 使用子分類 - + Default Save Path: 預設儲存路徑: - + Copy .torrent files to: 複製 torrent 檔案到: - + Show &qBittorrent in notification area 在通知區域顯示 qBittorrent (&Q) - - &Log file - 備份記錄檔 (&L) - - - + Display &torrent content and some options 顯示 torrent 內容及其他選項 (&T) - + De&lete .torrent files afterwards 事後刪除 .torrent 檔案 (&L) - + Copy .torrent files for finished downloads to: 複製已完成的 torrent 檔案到: - + Pre-allocate disk space for all files 為所有檔案預先分配磁碟空間 - + Use custom UI Theme 使用自訂 UI 佈景主題 - + UI Theme file: UI 佈景主題檔案: - + Changing Interface settings requires application restart 變更介面設定需要應用重新啟動 - + Shows a confirmation dialog upon torrent deletion Torrent 刪除時顯示確認對話框 - - + + Preview file, otherwise open destination folder 預覽檔案,否則開啟目標資料夾 - - - Show torrent options - 顯示 torrent 選項 - - - + Shows a confirmation dialog when exiting with active torrents 在有活躍的 torrent 但要結束程式時顯示確認對話框 - + When minimizing, the main window is closed and must be reopened from the systray icon 最小化時,主視窗會關閉且必須從系統匣圖示重新開啟 - + The systray icon will still be visible when closing the main window 系統匣圖示將會在關閉主視窗後仍然可見 - + Close qBittorrent to notification area The systray icon will still be visible when closing the main window 將 qBittorrent 關閉到通知區域 - + Monochrome (for dark theme) 單色(供暗色背景使用) - + Monochrome (for light theme) 單色(供淺色背景使用) - + Inhibit system sleep when torrents are downloading 當 torrent 正在下載時,防止系統進入睡眠 - + Inhibit system sleep when torrents are seeding 當 torrent 正在做種時,防止系統進入睡眠 - + Creates an additional log file after the log file reaches the specified file size 紀錄檔達到一定大小後,建立額外的紀錄檔 - + days Delete backup logs older than 10 days - + months Delete backup logs older than 10 months - + years Delete backup logs older than 10 years - + Log performance warnings 記錄效能警告 - - The torrent will be added to download list in a paused state - Torrent 將以暫停狀態加入到下載清單中 - - - + Do not start the download automatically - The torrent will be added to download list in a paused state + The torrent will be added to download list in a stopped state 無法自動開始下載 - + Whether the .torrent file should be deleted after adding it 新增後是否應刪除 .torrent 檔案 - + Allocate full file sizes on disk before starting downloads, to minimize fragmentation. Only useful for HDDs. 開始下載前,在磁碟上預先分配好完整檔案大小的空間以減少空間碎片。僅對 HDD 有用。 - + Append .!qB extension to incomplete files 在未完成檔案加上 .!qB 副檔名 - + When a torrent is downloaded, offer to add torrents from any .torrent files found inside it 下載 torrent 時,可以從其中找到的任何 .torrent 檔案新增 torrent - + Enable recursive download dialog 啟用遞迴下載確認對話框 - + Automatic: Various torrent properties (e.g. save path) will be decided by the associated category Manual: Various torrent properties (e.g. save path) must be assigned manually 自動:各種 torrent 屬性(如儲存路徑)將由相關分類來決定 手動:各種 torrent 屬性(如儲存路徑)必須手動分配 - + When Default Save/Incomplete Path changed: 當預設儲存/不完整路徑變更時: - + When Category Save Path changed: 當分類儲存路徑變更: - + Use Category paths in Manual Mode 在手動模式下使用分類路徑 - + Resolve relative Save Path against appropriate Category path instead of Default one 根據適當的分類路徑而非預設路徑解析相對儲存路徑 - + Use icons from system theme 使用來自系統佈景主題的圖示 - + Window state on start up: 啟動時的視窗狀態 - + qBittorrent window state on start up 啟動時的 qBittorrent 視窗狀態 - + Torrent stop condition: Torrent 停止條件: - - + + None - - + + Metadata received 收到的詮釋資料 - - + + Files checked 已檢查的檔案 - + Ask for merging trackers when torrent is being added manually 手動新增 torrent 時詢問是否合併追蹤器 - + Use another path for incomplete torrents: 使用其他路徑取得不完整的 torrents: - + Automatically add torrents from: 自動載入 torrent 檔案: - + Excluded file names 排除的檔案名稱 - + Blacklist filtered file names from being downloaded from torrent(s). Files matching any of the filters in this list will have their priority automatically set to "Do not download". @@ -6564,770 +6953,811 @@ readme.txt:過濾精確的檔案名稱。 readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「readme10.txt」。 - + Receiver 接收者 - + To: To receiver 到: - + SMTP server: SMTP 伺服器: - + Sender 傳送者 - + From: From sender 從: - + This server requires a secure connection (SSL) 這個伺服器需要加密連線 (SSL) - - + + Authentication 驗證 - - - - + + + + Username: 使用者名稱: - - - - + + + + Password: 密碼: - + Run external program 執行外部程式 - - Run on torrent added - 在 torrent 新增時執行 - - - - Run on torrent finished - 在 torrent 結束時執行 - - - + Show console window 顯示終端機視窗 - + TCP and μTP TCP 與 μTP - + Listening Port 監聽埠 - + Port used for incoming connections: 連入連線時使用的埠: - + Set to 0 to let your system pick an unused port 設定為 0 讓您的系統挑選未使用的連接埠 - + Random 隨機 - + Use UPnP / NAT-PMP port forwarding from my router 使用從路由器轉送的 UPnP/NAT-PMP 連接埠 - + Connections Limits 連線限制 - + Maximum number of connections per torrent: 每個 torrent 的最大連線數: - + Global maximum number of connections: 全域最大連線數: - + Maximum number of upload slots per torrent: 每個 torrent 上傳通道的最大數: - + Global maximum number of upload slots: 全域上傳通道的最大數: - + Proxy Server 代理伺服器 - + Type: 類型: - + SOCKS4 SOCKS4 - + SOCKS5 SOCKS5 - + HTTP HTTP - - + + Host: 主機: - - - + + + Port: 埠: - + Otherwise, the proxy server is only used for tracker connections 除此之外,代理伺服器僅用於追蹤者連線 - + Use proxy for peer connections 使用代理伺服器來連線下載者 - + A&uthentication 驗證 (&U) - - Info: The password is saved unencrypted - 資訊:密碼以未加密的形式儲存 - - - + Filter path (.dat, .p2p, .p2b): 過濾路徑 (.dat, .p2p, .p2b): - + Reload the filter 重新載入過濾器 - + Manually banned IP addresses... 手動封鎖 IP 位置… - + Apply to trackers 套用到追蹤者 - + Global Rate Limits 全域速率限制 - - - - - - - + + + + + + + - - - - - - + + + + + + KiB/s KiB/s - - + + Upload: 上傳: - - + + Download: 下載: - + Alternative Rate Limits 替補速率限制 - + Start time 開始時間 - + End time 結束時間 - + When: 何時: - + Every day 每天 - + Weekdays 平日 - + Weekends 週末 - + Rate Limits Settings 速率限制設定 - + Apply rate limit to peers on LAN 在 LAN 上套用對下載者的速率限制 - + Apply rate limit to transport overhead 套用速率限制至傳輸負載 - + + <html><head/><body><p>If "mixed mode" is enabled I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.</p></body></html> + <html><head/><body><p>若啟用「混合模式」,I2P torrent 也允許從追蹤者以外的來源取得 peer,並連線到一般 IP,不提供任何匿名化。若使用者對 I2P 的匿名化不感興趣,但仍希望可以連線至 I2P peer,這可能會很有用。</p></body></html> + + + Apply rate limit to µTP protocol 套用速率限制到 µTP 協定 - + Privacy 隱私 - + Enable DHT (decentralized network) to find more peers 啟用 DHT (分散式網路) 來尋找更多下載者 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 與相容的 Bittorrent 客戶端 (µTorrent、Vuze 等) 交換下載者資訊 - + Enable Peer Exchange (PeX) to find more peers 啟用下載者交換 (PeX) 來尋找更多下載者 - + Look for peers on your local network 在本地網路找尋下載者 - + Enable Local Peer Discovery to find more peers 啟用本地下載者搜尋來尋找更多下載者 - + Encryption mode: 加密模式: - + Require encryption 要求加密 - + Disable encryption 停用加密 - + Enable when using a proxy or a VPN connection 當使用代理伺服器或 VPN 連線時啟用 - + Enable anonymous mode 啟用匿名模式 - + Maximum active downloads: 最大活躍的下載數: - + Maximum active uploads: 最大活躍的上傳數: - + Maximum active torrents: 最大活躍的 torrent 數: - + Do not count slow torrents in these limits 在這些限制中不要計算速率慢的 torrent - + Upload rate threshold: 上傳速率閾值: - + Download rate threshold: 下載速率閾值: - - - - + + + + sec seconds - + Torrent inactivity timer: Torrent 不活躍計時器: - + then 然後 - + Use UPnP / NAT-PMP to forward the port from my router 使用 UPnP/NAT-PMP 轉送路由器連接埠 - + Certificate: 憑證: - + Key: 鍵值: - + <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=https://httpd.apache.org/docs/current/ssl/ssl_faq.html#aboutcerts>關於憑證的資訊</a> - + Change current password 變更目前的密碼 - - Use alternative Web UI - 使用替補 Web UI - - - + Files location: 檔案位置: - + + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">List of alternative WebUI</a> + <a href="https://github.com/qbittorrent/qBittorrent/wiki/List-of-known-alternate-WebUIs">替代 WebUI 清單</a> + + + Security 安全 - + Enable clickjacking protection 啟用點選劫持保護 - + Enable Cross-Site Request Forgery (CSRF) protection 啟用跨站請求偽造 (CSRF) 保護 - + + Enable cookie Secure flag (requires HTTPS or localhost connection) + 啟用 cookie 安全旗標(需要 HTTPS 或 localhost 連線) + + + Enable Host header validation 啟用主機檔頭驗證 - + Add custom HTTP headers 新增自訂 HTTP 標頭 - + Header: value pairs, one per line 標頭:鍵值對,一行一個 - + Enable reverse proxy support 啟用反向代理支援 - + Trusted proxies list: 受信任的代理伺服器清單: - + + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>Reverse proxy setup examples</a> + <a href=https://github.com/qbittorrent/qBittorrent/wiki#reverse-proxy-setup-for-webui-access>反向代理設定範例</a> + + + Service: 服務: - + Register 註冊 - + Domain name: 網域名稱: - + By enabling these options, you can <strong>irrevocably lose</strong> your .torrent files! 啟用這些選項,您可能會<strong>無可挽回地失去</strong>您的 .torrent 檔案! - + If you enable the second option (&ldquo;Also when addition is cancelled&rdquo;) the .torrent file <strong>will be deleted</strong> even if you press &ldquo;<strong>Cancel</strong>&rdquo; in the &ldquo;Add torrent&rdquo; dialog 若您啟用第二個選項 (新增時被取消亦同),即使您只是按下「新增 torrent」對話方塊中的「<strong>取消</strong>」按鈕,您的 .torrent 檔案<strong>也會被刪除</strong>。 - + Select qBittorrent UI Theme file 選取 qBittorrent UI 佈景主題檔案 - + Choose Alternative UI files location 選擇替補 UI 檔案位置 - + Supported parameters (case sensitive): 支援的參數 (區分大小寫): - + Minimized 最小化 - + Hidden 隱藏 - + Disabled due to failed to detect system tray presence 未偵測到系統匣存在而停用 - + No stop condition is set. 未設定停止條件。 - + Torrent will stop after metadata is received. Torrent 將會在收到詮釋資料後停止。 - Torrents that have metadata initially aren't affected. - 一開始就有詮釋資料的 torrent 則不受影響。 - - - + Torrent will stop after files are initially checked. 最初檢查檔案後,torrent 將會停止。 - + This will also download metadata if it wasn't there initially. 如果一開始不存在,這也會下載詮釋資料。 - + %N: Torrent name %N:Torrent 名稱 - + %L: Category %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:目前的追蹤者 - + Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., "%N") 提示:把參數以引號包起來以避免被空格切斷 (例如:"%N") - + + Test email + 測試電子郵件 + + + + Attempted to send email. Check your inbox to confirm success + 嘗試發送電子郵件。請檢查您的收件匣以確認是否成功 + + + (None) (無) - + A torrent will be considered slow if its download and upload rates stay below these values for "Torrent inactivity timer" seconds Torrent 若下載與上傳速率在「Torrent 不活躍計時器」秒數內都低於這些值的話就會被認為是太慢了 - + Certificate 憑證 - + Select certificate 選取憑證 - + Private key 私密金鑰 - + Select private key 選取私密金鑰 - + WebUI configuration failed. Reason: %1 WebUI 設定失敗。理由:%1 - + + %1 is recommended for best compatibility with Windows dark mode + Fusion is recommended for best compatibility with Windows dark mode + 建議使用 %1 以取得對 Windows 深色模式的最佳相容性 + + + + System + System default Qt style + 系統 + + + + Let Qt decide the style for this system + 讓 Qt 決定此系統的樣式 + + + + Dark + Dark color scheme + 深色 + + + + Light + Light color scheme + 淺色 + + + + System + System color scheme + 系統 + + + Select folder to monitor 選擇資料夾以監視 - + Adding entry failed 新增項目失敗 - + The WebUI username must be at least 3 characters long. WebUI 使用者名稱必須至少 3 個字元長。 - + The WebUI password must be at least 6 characters long. WebUI 密碼必須至少 6 個字元長。 - + Location Error 位置錯誤 - - + + Choose export directory 選擇輸出目錄 - + When these options are enabled, qBittorrent will <strong>delete</strong> .torrent files after they were successfully (the first option) or not (the second option) added to its download queue. This will be applied <strong>not only</strong> to the files opened via &ldquo;Add torrent&rdquo; menu action but to those opened via <strong>file type association</strong> as well 當這些選項啟用時,qBittorrent 將會在它們成功(第一個選項)或是未(第二個選項)加入其下載佇列時<strong>刪除</strong> .torrent 檔案。這將<strong>不僅是套用於</strong>透過「新增 torrent」選單動作開啟的檔案,也會套用於透過<strong>檔案類型關聯</strong>開啟的檔案。 - + qBittorrent UI Theme file (*.qbtheme config.json) qBittorrent UI 佈景主題檔案 (*.qbtheme config.json) - + %G: Tags (separated by comma) %G:標籤(以逗號分隔) - + %I: Info hash v1 (or '-' if unavailable) %I:資訊雜湊值 v1(如果不可用則為 '-') - + %J: Info hash v2 (or '-' if unavailable) %J:資訊雜湊值 v2(如果不可用則為 '-') - + %K: Torrent ID (either sha-1 info hash for v1 torrent or truncated sha-256 info hash for v2/hybrid torrent) %K:Torrent ID(v1 的 torrent 即為 sha-1 資訊雜湊值,若為 v2 或是混合的 torrent 即為截斷的 sha-256 資訊雜湊值) - - - + + + Choose a save directory 選擇儲存的目錄 - + Torrents that have metadata initially will be added as stopped. - + 一開始就有詮釋資料的 torrent 將被新增為已停止。 - + Choose an IP filter file 選擇一個 IP 過濾器檔案 - + All supported filters 所有支援的過濾器 - + The alternative WebUI files location cannot be blank. 替補的 WebUI 檔案位置不應該為空白。 - + 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 個規則。 - + Preferences 偏好設定 - + Time Error 時間錯誤 - + The start time and the end time can't be the same. 起始時間與終止時間不應該相同。 - - + + Length Error 長度錯誤 @@ -7335,241 +7765,246 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read PeerInfo - + Unknown 未知 - + Interested (local) and choked (peer) 【您:期待下載╱他:拒絕上傳】 - + Interested (local) and unchoked (peer) 【您:期待下載╱他:同意上傳】 - + Interested (peer) and choked (local) 【他:期待下載╱您:拒絕上傳】 - + Interested (peer) and unchoked (local) 【他:期待下載╱您:同意上傳】 - + Not interested (local) and unchoked (peer) 【您:不想下載╱他:同意上傳】 - + Not interested (peer) and unchoked (local) 【他:不想下載╱您:同意上傳】 - + Optimistic unchoke 多傳者優先 - + Peer snubbed 下載者突然停止 - + Incoming connection 連入的連線 - + Peer from DHT 來自 DHT 的下載者 - + Peer from PEX 來自 PEX 的下載者 - + Peer from LSD 來自 LSD 的下載者 - + Encrypted traffic 加密的流量 - + Encrypted handshake 加密的溝通 + + + Peer is using NAT hole punching + Peer 正在使用 NAT 打洞 + PeerListWidget - + Country/Region 國家/區域 - + IP/Address IP/地址 - + Port - + Flags 旗標 - + Connection 連線 - + Client i.e.: Client application 用戶端 - + Peer ID Client i.e.: Client resolved from Peer ID Peer ID 用戶端 - + 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. 關聯 - + Files i.e. files that are being downloaded right now 檔案 - + Column visibility 欄目顯示 - + Resize columns 調整欄大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄與其內容的大小 - + Add peers... 新增下載者... - - + + Adding peers 正在新增 peer - + Some peers cannot be added. Check the Log for details. 有些下載者無法被新增。檢查記錄檔以取得更多資訊。 - + Peers are added to this torrent. 下載者已新增到此 torrent 中。 - - + + Ban peer permanently 永遠封鎖下載者 - + Cannot add peers to a private torrent 無法新增下載者至私有 torrent - + Cannot add peers when the torrent is checking 正在檢查 torrent 時無法新增下載者 - + Cannot add peers when the torrent is queued torrent 排入佇列時無法新增下載者 - + No peer was selected 未選取下載者 - + Are you sure you want to permanently ban the selected peers? 您確定要永遠封鎖選定的下載者嗎? - + Peer "%1" is manually banned Peer「%1」已被手動封鎖 - + N/A N/A - + Copy IP:port 複製 IP:埠 @@ -7587,7 +8022,7 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read 要新增的下載者清單 (每行一個 IP): - + Format: IPv4:port / [IPv6]:port 格式:IPv4:埠/[IPv6]:埠 @@ -7628,27 +8063,27 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read PiecesBar - + Files in this piece: 在這分塊中的檔案: - + File in this piece: 此片段中的檔案: - + File in these pieces: 這些片段中的檔案: - + Wait until metadata become available to see detailed information 等待詮釋資料可用時來檢視詳細資訊 - + Hold Shift key for detailed information 按住 Shift 鍵以取得詳細資訊 @@ -7661,58 +8096,58 @@ readme[0-9].txt:過濾「readme1.txt」、「readme2.txt」但不包含「read 搜尋附加元件 - + Installed search plugins: 已安裝的搜尋附加元件: - + Name 名稱 - + Version 版本 - + Url URL - - + + Enabled 已啟用 - + Warning: Be sure to comply with your country's copyright laws when downloading torrents from any of these search engines. 警告:請確保您從這些搜尋引擎中下載 torrent 時遵守您所在國家的版權法。 - + You can get new search engine plugins here: <a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> 您可以造訪此處取得新的搜尋引擎附加元件:<a href="https://plugins.qbittorrent.org">https://plugins.qbittorrent.org</a> - + Install a new one 安裝新的 - + Check for updates 檢查更新 - + Close 關閉 - + Uninstall 解除安裝 @@ -7832,98 +8267,65 @@ Those plugins were disabled. 附加元件來源 - + Search plugin source: 搜尋附加元件來源: - + Local file 本機檔案 - + Web link 網頁連結 - - PowerManagement - - - qBittorrent is active - qBittorrent 正在運作中 - - - - PowerManagementInhibitor - - - Power management found suitable D-Bus interface. Interface: %1 - 電源管理找到了合適的 D-Bus 介面。介面:%1 - - - - Power management error. Did not found suitable D-Bus interface. - 電源管理錯誤。找不到合適的 D-Bus 介面。 - - - - - - Power management error. Action: %1. Error: %2 - 電源管理錯誤。動作:%1。錯誤:%2 - - - - Power management unexpected error. State: %1. Error: %2 - 電源管理非預期的錯誤。狀態:%1。錯誤:%2 - - PreviewSelectDialog - + The following files from torrent "%1" support previewing, please select one of them: 以下從「%1」而來的檔案支援預覽,請從中選取: - + Preview 預覽 - + Name 名稱 - + Size 大小 - + Progress 進度 - + Preview impossible 不可預覽 - + Sorry, we can't preview this file: "%1". 抱歉,我們無法預覽此檔案:「%1」。 - + Resize columns 調整欄大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄與其內容的大小 @@ -7936,27 +8338,27 @@ Those plugins were disabled. Private::FileLineEdit - + Path does not exist 路徑不存在 - + Path does not point to a directory 路徑未指向目錄 - + Path does not point to a file 路徑未指向檔案 - + Don't have read permission to path 沒有讀取路徑的權限 - + Don't have write permission to path 沒有寫入路徑的權限 @@ -7997,12 +8399,12 @@ Those plugins were disabled. PropertiesWidget - + Downloaded: 已下載: - + Availability: 可得性: @@ -8017,53 +8419,53 @@ Those plugins were disabled. 傳輸 - + Time Active: - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 經過時間: - + ETA: 預估剩餘時間: - + Uploaded: 已上傳: - + Seeds: 種子: - + Download Speed: 下載速率: - + Upload Speed: 上傳速率: - + Peers: 下載者: - + Download Limit: 下載限制: - + Upload Limit: 上傳限制: - + Wasted: 已丟棄: @@ -8073,193 +8475,220 @@ Those plugins were disabled. 連線: - + Information 資訊 - + Info Hash v1: 資訊雜湊值 v1: - + Info Hash v2: 資訊雜湊值 v2: - + Comment: 註解: - + Select All 全部選擇 - + Select None 全部不選 - + Share Ratio: 分享率: - + Reannounce In: 重新發佈於: - + Last Seen Complete: 最後完整可見: - + + + Ratio / Time Active (in months), indicates how popular the torrent is + 比例 / 活躍時間(以月為單位),表示該 torrent 的受歡迎程度 + + + + Popularity: + 人氣: + + + Total Size: 總大小: - + Pieces: 分塊: - + Created By: 製作器: - + Added On: 增加於: - + Completed On: 完成於: - + Created On: 建立於: - + + Private: + 私人: + + + Save Path: 儲存路徑: - + Never 永不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (已完成 %3) - - + + %1 (%2 this session) %1 (今期 %2) - - + + + N/A N/A - + + Yes + + + + + No + + + + %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) - - New Web seed - 新網頁種子 + + Add web seed + Add HTTP source + 新增 web 種子 - - Remove Web seed - 移除網頁種子 + + Add web seed: + 新增 web 種子: - - Copy Web seed URL - 複製網頁種子 URL + + + This web seed is already in the list. + 這 web 種子已經在清單裡了。. - - Edit Web seed URL - 編輯網頁種子 URL - - - + Filter files... 過濾檔案… - + + Add web seed... + 新增 web 種子…… + + + + Remove web seed + 移除 web 種子 + + + + Copy web seed URL + 複製 web 種子 URL + + + + Edit web seed URL... + 編輯 web 種子 URL…… + + + Speed graphs are disabled 已停用速度圖 - + You can enable it in Advanced Options 您可以在進階選項中啟用它 - - 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: @@ -8267,33 +8696,33 @@ Those plugins were disabled. RSS::AutoDownloader - - + + Invalid data format. 無效的資料格式。 - + Couldn't save RSS AutoDownloader data in %1. Error: %2 無法在 %1 中儲存 RSS 自動下載器資料。錯誤:%2 - + Invalid data format 無效的資料格式 - + RSS article '%1' is accepted by rule '%2'. Trying to add torrent... 已接受 RSS 文章「%1」,根據規則「%2」。正在嘗試新增 torrent…… - + Failed to read RSS AutoDownloader rules. %1 讀取 RSS 自動下載程式規則失敗。%1 - + Couldn't load RSS AutoDownloader rules. Reason: %1 無法載入 RSS 自動下載器規則。原因:%1 @@ -8301,22 +8730,22 @@ Those plugins were disabled. RSS::Feed - + Failed to download RSS feed at '%1'. Reason: %2 無法從「%1」下載 RSS feed。原因:%2 - + RSS feed at '%1' updated. Added %2 new articles. 「%1」的 RSS feed 已更新。新增 %2 個文章。 - + Failed to parse RSS feed at '%1'. Reason: %2 無法從「%1」解析 RSS feed。原因:%2 - + RSS feed at '%1' is successfully downloaded. Starting to parse it. 在「%1」的 RSS feed 已成功下載。開始解析它。 @@ -8352,12 +8781,12 @@ Those plugins were disabled. RSS::Private::Parser - + Invalid RSS feed. 無效的 RSS feed。 - + %1 (line: %2, column: %3, offset: %4). %1 (行:%2,欄:%3,偏移:%4)。 @@ -8365,103 +8794,144 @@ Those plugins were disabled. RSS::Session - + Couldn't save RSS session configuration. File: "%1". Error: "%2" 無法儲存 RSS 工作階段設定。檔案:「%1」。錯誤:「%2」 - + Couldn't save RSS session data. File: "%1". Error: "%2" 無法儲存 RSS 工作階段資料。檔案:「%1」。錯誤:「%2」 - - + + RSS feed with given URL already exists: %1. 已有這 URL 的 RSS feed:%1。 - + Feed doesn't exist: %1. Feed 不存在:%1。 - + Cannot move root folder. 無法移動根資料夾。 - - + + Item doesn't exist: %1. 項目不存在:%1。 - - Couldn't move folder into itself. - 無法將資料夾移動到自己裡面。 + + Can't move a folder into itself or its subfolders. + 無法將資料夾移動到自身或其子資料夾中。 - + Cannot delete root folder. 無法刪除根資料夾。 - + Failed to read RSS session data. %1 讀取 RSS 工作階段資料失敗。%1 - + Failed to parse RSS session data. File: "%1". Error: "%2" 解析 RSS 工作階段資料失敗。檔案:「%1」。錯誤:「%2」 - + Failed to load RSS session data. File: "%1". Error: "Invalid data format." 載入 RSS 工作階段資料失敗。檔案:「%1」。錯誤:「無效的資料格式。」 - + Couldn't load RSS feed. Feed: "%1". Reason: URL is required. 無法載入 RSS feed。Feed:「%1」。原因:URL 為必填。 - + Couldn't load RSS feed. Feed: "%1". Reason: UID is invalid. 無法載入 RSS feed。Feed:「%1」。原因:UID 無效。 - + Duplicate RSS feed found. UID: "%1". Error: Configuration seems to be corrupted. 找到重複的 RSS feed。UID:「%1」。錯誤:設定似乎已毀損。 - + Couldn't load RSS item. Item: "%1". Invalid data format. 無法載入 RSS 項目。項目:「%1」。無效的資料格式。 - + Corrupted RSS list, not loading it. 毀損的 RSS 清單,無法載入。 - + Incorrect RSS Item path: %1. 不正確的 RSS 項目路徑:%1。 - + RSS item with given path already exists: %1. 已有這路徑的 RSS 項目:%1。 - + Parent folder doesn't exist: %1. 父資料夾不存在:%1。 + + RSSController + + + Invalid 'refreshInterval' value + 無效的「重新整理間隔」值 + + + + Feed doesn't exist: %1. + Feed 不存在:%1。 + + + + RSSFeedDialog + + + RSS Feed Options + RSS Feed 選項 + + + + URL: + URL: + + + + Refresh interval: + 重新整理間隔 + + + + sec + + + + + Default + 預設 + + RSSWidget @@ -8481,8 +8951,8 @@ Those plugins were disabled. - - + + Mark items read 標記項目為已讀 @@ -8507,132 +8977,115 @@ Those plugins were disabled. Torrent:(雙擊以下載) - - + + Delete 刪除 - + Rename... 重新命名… - + Rename 重新命名 - - + + Update 更新 - + New subscription... 新訂閱… - - + + Update all feeds 更新所有 feed - + Download torrent 下載 torrent - + Open news URL 開啟消息 URL - + Copy feed URL 複製 feed URL - + New folder... 新資料夾… - - Edit feed URL... - 編輯 feed URL…… + + Feed options... + Feed 選項…… - - Edit feed URL - 編輯 feed URL - - - + Please choose a folder name 請選擇資料夾名稱 - + Folder name: 資料夾名稱: - + New folder 新資料夾 - - - Please type a RSS feed URL - 請輸入一個 RSS feed URL - - - - - Feed URL: - Feed URL: - - - + 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 名稱: - + Rename failed 無法重新命名 - + Date: 日期: - + Feed: Feed: - + Author: 作者: @@ -8640,38 +9093,38 @@ Those plugins were disabled. SearchController - + Python must be installed to use the Search Engine. 必須安裝 Python 以使用搜尋引擎。 - + Unable to create more than %1 concurrent searches. 無法建立多於 %1 個共時搜尋。 - - + + Offset is out of range 偏移量超出範圍 - + All plugins are already up to date. 所有附加元件都已經是最新版本。 - + Updating %1 plugins 正在更新 %1 個附加元件 - + Updating plugin %1 正在更新附加元件 %1 - + Failed to check for plugin updates: %1 無法檢查附加元件更新:「%1」 @@ -8746,132 +9199,142 @@ Those plugins were disabled. 大小: - + 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 - 搜尋引擎 - - - + Filter search results... 過濾搜尋結果… - + Results (showing <i>%1</i> out of <i>%2</i>): i.e: Search results 搜尋結果 (顯示 <i>%2</i> 個中的 <i>%1</i> 個): - + Torrent names only 僅 torrent 名稱 - + Everywhere 各處 - + Use regular expressions 使用正規表示式 - + Open download window 開啟下載視窗 - + Download 下載 - + Open description page 開啟描述頁面 - + Copy 複製 - + Name 名稱 - + Download link 下載連結 - + Description page URL 描述頁面的 URL - + Searching... 正在搜尋… - + Search has finished 搜尋完成 - + Search aborted 搜尋中止 - + An error occurred during search... 搜尋時遇到錯誤… - + Search returned no results 沒有搜尋結果 - + + Engine + 引擎 + + + + Engine URL + 引擎 URL + + + + Published On + 發佈於 + + + Column visibility 欄目顯示 - + Resize columns 調整欄大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄與其內容的大小 @@ -8879,104 +9342,104 @@ Those plugins were disabled. SearchPluginManager - + Unknown search engine plugin file format. 未知的搜尋引擎附加元件檔案格式。 - + Plugin already at version %1, which is greater than %2 附加元件已經為版本 %1,大於 %2 - + A more recent version of this plugin is already installed. 已安裝此附加元件的較新版本。 - + Plugin %1 is not supported. 不支援附加元件 %1。 - - + + Plugin is not supported. 不支援的附加元件。 - + Plugin %1 has been successfully updated. 已成功更新附加元件 %1。 - + All categories 所有類別 - + Movies 電影 - + TV shows 電視節目 - + Music 音樂 - + Games 遊戲 - + Anime 動畫 - + Software 軟體 - + Pictures 圖片 - + Books 書籍 - + Update server is temporarily unavailable. %1 更新伺服器暫時不可用。%1 - - + + Failed to download the plugin file. %1 無法下載附加元件更新:「%1」 - + Plugin "%1" is outdated, updating to version %2 附加元件「%1」已過期,正在更新到版本 %2 - + Incorrect update info received for %1 out of %2 plugins. %2 個附加元件中的 %1 個收到不正確的更新資訊。 - + Search plugin '%1' contains invalid version string ('%2') 搜尋附加元件「%1」包含了無效的版本字串(「%2」) @@ -8986,114 +9449,145 @@ Those plugins were disabled. - - - - Search 搜尋 - + There aren't any search plugins installed. Click the "Search plugins..." button at the bottom right of the window to install some. 沒有安裝任何搜尋附加元件。 點選視窗右下角的「搜尋附加元件…」按鈕來安裝一些吧。 - + Search plugins... 搜尋附加元件… - + A phrase to search for. 搜尋的片語: - + Spaces in a search term may be protected by double quotes. 維持搜尋片語的完整,請使用英語雙引號。 - + Example: Search phrase example 範例: - + <b>&quot;foo bar&quot;</b>: search for <b>foo bar</b> Search phrase example, illustrates quotes usage, double quotedpair of space delimited words, the whole pair is highlighted <b>&quot;foo bar&quot;</b>會搜尋片語<b>foo bar</b> - + All plugins 所有附加元件 - + Only enabled 僅已啟用 - + + + Invalid data format. + 無效的資料格式。 + + + <b>foo bar</b>: search for <b>foo</b> and <b>bar</b> Search phrase example, illustrates quotes usage, a pair of space delimited words, individual words are highlighted <b>foo bar</b>:搜尋 <b>foo</b> 與 <b>bar</b> - + + Refresh + 重新整理 + + + Close tab 關閉分頁 - + Close all tabs 關閉所有分頁 - + Select... 選擇… - - - + + Search Engine 搜尋引擎 - + + Please install Python to use the Search Engine. 請安裝 Python 以使用搜尋引擎。 - + Empty search pattern 沒有搜尋模式 - + Please type a search pattern first 請先輸入一個搜尋模式 - + + Stop 停止 + + + SearchWidget::DataStorage - - Search has finished - 搜尋完成 + + Failed to load Search UI saved state data. File: "%1". Error: "%2" + 載入搜尋使用者介面已儲存狀態資料失敗。檔案:「%1」。錯誤:「%2」 - - Search has failed - 搜尋失敗 + + Failed to load saved search results. Tab: "%1". File: "%2". Error: "%3" + 載入已儲存的搜尋結果失敗。分頁:「%1」。檔案:「%2」。錯誤:「%3」 + + + + Failed to save Search UI state. File: "%1". Error: "%2" + 儲存搜尋使用者介面狀態失敗。檔案:「%1」。錯誤:「%2」 + + + + Failed to save search results. Tab: "%1". File: "%2". Error: "%3" + 儲存搜尋結果失敗。分頁:「%1」。檔案:「%2」。錯誤:「%3」 + + + + Failed to load Search UI history. File: "%1". Error: "%2" + 載入搜尋使用者介面歷史紀錄失敗。檔案:「%1」。錯誤:「%2」 + + + + Failed to save search history. File: "%1". Error: "%2" + 儲存搜尋歷史紀錄失敗。檔案:「%1」。錯誤:「%2」 @@ -9206,34 +9700,34 @@ Click the "Search plugins..." button at the bottom right of the window - + Upload: 上傳 - - - + + + - - - + + + KiB/s KiB/s - - + + Download: 下載: - + Alternative speed limits 替補速率限制 @@ -9425,32 +9919,32 @@ Click the "Search plugins..." button at the bottom right of the window 在佇列的平均時間: - + Connected peers: 已連線的下載者: - + All-time share ratio: 合計總分享率: - + All-time download: 合計總下載: - + Session waste: 今期丟棄: - + All-time upload: 合計總上傳: - + Total buffer size: 總緩衝大小: @@ -9465,12 +9959,12 @@ Click the "Search plugins..." button at the bottom right of the window 佇列的 I/O 任務: - + Write cache overload: 寫入快取超過負荷: - + Read cache overload: 讀取快取超過負荷: @@ -9489,51 +9983,77 @@ Click the "Search plugins..." button at the bottom right of the window StatusBar - + Connection status: 連線狀態: - - + + No direct connections. This may indicate network configuration problems. 沒有直接的連線。這表示您的網路設定可能有問題。 - - + + Free space: N/A + 可用空間:N/A + + + + + External IP: N/A + 外部 IP:N/A + + + + DHT: %1 nodes DHT:%1 個節點 - + qBittorrent needs to be restarted! qBittorrent 需要重新啟動! - - - + + + Connection Status: 連線狀態: - + Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. 離線。這通常表示 qBittorrent 監聽進來連線的埠失敗。 - + Online 線上 - + + Free space: + 可用空間: + + + + External IPs: %1, %2 + 外部 IP:%1, %2 + + + + External IP: %1%2 + 外部 IP:%1%2 + + + Click to switch to alternative speed limits 點選來切換至替補速率限制 - + Click to switch to regular speed limits 點選來切換至一般速率限制 @@ -9563,13 +10083,13 @@ Click the "Search plugins..." button at the bottom right of the window - Resumed (0) - 繼續 (0) + Running (0) + 正在執行 (0) - Paused (0) - 暫停 (0) + Stopped (0) + 已停止 (0) @@ -9631,36 +10151,36 @@ Click the "Search plugins..." button at the bottom right of the window Completed (%1) 已完成 (%1) + + + Running (%1) + 正在執行 (%1) + - Paused (%1) - 暫停 (%1) + Stopped (%1) + 已停止 (%1) + + + + Start torrents + 啟動 torrent + + + + Stop torrents + 停止 torrent Moving (%1) 移動中 (%1) - - - Resume torrents - 復原 torrent - - - - Pause torrents - 暫停 torrent - Remove torrents 移除 torrents - - - Resumed (%1) - 繼續 (%1) - Active (%1) @@ -9732,31 +10252,31 @@ Click the "Search plugins..." button at the bottom right of the window Remove unused tags 移除未使用的標籤 - - - Resume torrents - 繼續 torrent - - - - Pause torrents - 暫停 torrent - Remove torrents 移除 torrents - - New Tag - 新標籤 + + Start torrents + 啟動 torrent + + + + Stop torrents + 停止 torrent Tag: 標籤: + + + Add tag + 新增標籤 + Invalid tag name @@ -9903,32 +10423,32 @@ Please choose a different name and try again. TorrentContentModel - + Name 名稱 - + Progress 進度 - + Download Priority 下載優先度 - + Remaining 剩餘的 - + Availability 可得性 - + Total Size 總大小 @@ -9973,98 +10493,98 @@ Please choose a different name and try again. TorrentContentWidget - + Rename error 重新命名錯誤 - + Renaming 重新命名 - + New name: 新名稱: - + Column visibility 欄位能見度 - + Resize columns 調整欄位大小 - + Resize all non-hidden columns to the size of their contents 將所有非隱藏的欄位調整為其內容的大小 - + Open 開啟 - + Open containing folder 開啟包含的資料夾 - + Rename... 重新命名…… - + Priority 優先程度 - - + + Do not download 不要下載 - + Normal 一般 - + High - + Maximum 最高 - + By shown file order 按顯示的檔案順序 - + Normal priority 一般優先度 - + High priority 高優先度 - + Maximum priority 最高優先度 - + Priority by shown file order 按檔案順序顯示的優先度 @@ -10072,19 +10592,19 @@ Please choose a different name and try again. TorrentCreatorController - + Too many active tasks - + 太多活躍的工作 - + Torrent creation is still unfinished. - + Torrent 建立仍未完成。 - + Torrent creation failed. - + Torrent 建立失敗。 @@ -10111,13 +10631,13 @@ Please choose a different name and try again. - + Select file 選擇檔案 - + Select folder 選擇資料夾 @@ -10192,87 +10712,83 @@ Please choose a different name and try again. 資訊項 - + You can separate tracker tiers / groups with an empty line. 您可以用一行空白來分隔追蹤器層級 / 群組。 - + Web seed URLs: 網頁種子 URL: - + Tracker URLs: 追蹤者 URL: - + Comments: 註解: - + Source: 來源: - + Progress: 進度: - + Create Torrent 製作 torrent - - + + Torrent creation failed 無法建立 torrent - + Reason: Path to file/folder is not readable. 原因:到檔案或資料夾的路徑無法讀取。 - + Select where to save the new torrent 選擇要儲存新 torrent 的位置 - + Torrent Files (*.torrent) Torrent 檔案 (*.torrent) - Reason: %1 - 原因:%1 - - - + Add torrent to transfer list failed. 新增 torrent 至傳輸清單失敗。 - + Reason: "%1" 理由:「%1」 - + Add torrent failed 新增 torrent 失敗 - + Torrent creator Torrent 製作器 - + Torrent created: 已建立的 torrent: @@ -10280,32 +10796,32 @@ Please choose a different name and try again. TorrentFilesWatcher - + Failed to load Watched Folders configuration. %1 載入監視資料夾設定失敗。%1 - + Failed to parse Watched Folders configuration from %1. Error: "%2" 從 %1 解析監視資料夾設定失敗。錯誤:「%2」 - + Failed to load Watched Folders configuration from %1. Error: "Invalid data format." 從 %1 載入監視資料夾設定失敗。錯誤:「無效的資料格式。」 - + Couldn't store Watched Folders configuration to %1. Error: %2 無法儲存監視資料夾設定至 %1。錯誤:%2 - + Watched folder Path cannot be empty. 監視的資料夾路徑不能為空。 - + Watched folder Path cannot be relative. 監視的資料夾路徑不能是相對路徑。 @@ -10313,44 +10829,31 @@ Please choose a different name and try again. TorrentFilesWatcher::Worker - + Invalid Magnet URI. URI: %1. Reason: %2 無效的磁力 URI。URI:%1。理由:%2 - + Magnet file too big. File: %1 磁力檔案太大。檔案:%1 - + Failed to open magnet file: %1 無法開啟磁力檔案:「%1」 - + Rejecting failed torrent file: %1 拒絕失敗的 torrent 檔案:%1 - + Watching folder: "%1" 正在監視資料夾:「%1」 - - TorrentInfo - - - Failed to allocate memory when reading file. File: "%1". Error: "%2" - 讀取檔案時分配記憶體失敗。檔案:「%1」。錯誤:「%2」 - - - - Invalid metadata - 無效的詮釋資料 - - TorrentOptionsDialog @@ -10379,175 +10882,163 @@ Please choose a different name and try again. 使用其他路徑取得不完整的 torrent - + Category: 分類: - - Torrent speed limits - Torrent 速率限制 + + Torrent Share Limits + Torrent 分享限制 - + Download: 下載: - - + + - - + + Torrent Speed Limits + Torrent 速率限制 + + + + KiB/s KiB/s - + These will not exceed the global limits 這些不會超過全域限制 - + Upload: 上傳: - - Torrent share limits - Torrent 分享限制 - - - - Use global share limit - 使用全域分享限制 - - - - Set no share limit - 設定無分享限制 - - - - Set share limit to - 設定分享限制為 - - - - ratio - 上傳╱下載比率 - - - - total minutes - 總分鐘 - - - - inactive minutes - 不活躍分鐘 - - - + Disable DHT for this torrent 停用此 torrent 的 DHT - + Download in sequential order 依順序下載 - + Disable PeX for this torrent 停用此 torrent 的 PeX - + Download first and last pieces first 先下載第一和最後一塊 - + Disable LSD for this torrent 停用此 torrent 的 LSD - + Currently used categories 目前已使用的分類 - - + + Choose save path 選擇儲存路徑 - + Not applicable to private torrents 不適用於私人 torrent - - - No share limit method selected - 未選取分享限制方法 - - - - Please select a limit method first - 請先選擇限制方式 - TorrentShareLimitsWidget - - - + + + + Default - 預設 + 預設 + + + + + + Unlimited + 無限制 - - - Unlimited - - - - - - - Set to - - - - - Seeding time: - - - - - + Set to + 設定為 + + + + Seeding time: + 做種時間: + + + + + + + + min minutes - 分鐘 + 分鐘 - + Inactive seeding time: - + 不活躍的做種時間: - + + Action when the limit is reached: + 達到限制時要採取的動作: + + + + Stop torrent + 停止 torrent + + + + Remove torrent + 移除 torrent + + + + Remove torrent and its content + 移除 torrent 與其內容 + + + + Enable super seeding for torrent + 為 torrent 啟用超級做種 + + + Ratio: - + 分享率: @@ -10558,32 +11049,32 @@ Please choose a different name and try again. Torrent 標籤 - - New Tag - 新標籤 + + Add tag + 新增標籤 - + Tag: 標籤: - + Invalid tag name 無效的標籤名稱 - + Tag name '%1' is invalid. 標籤名稱「%1」無效。 - + Tag exists 已有這標籤 - + Tag name already exists. 已有這標籤名稱。 @@ -10591,115 +11082,130 @@ Please choose a different name and try again. TorrentsController - + Error: '%1' is not a valid torrent file. 錯誤:「%1」不是有效的 torrent 檔案。 - + Priority must be an integer 優先度必須為整數 - + Priority is not valid 優先度無效 - + Torrent's metadata has not yet downloaded 尚未下載 Torrent 的詮釋資料 - + File IDs must be integers 檔案 ID 必須為整數 - + File ID is not valid 檔案 ID 無效 - - - - + + + + Torrent queueing must be enabled Torrent 佇列必須啟用 - - + + Save path cannot be empty 儲存路徑不應該為空白 - - + + Cannot create target directory 無法建立目標目錄 - - + + Category cannot be empty 分類不應該為空白 - + Unable to create category 無法建立分類 - + Unable to edit category 無法編輯分類 - + Unable to export torrent file. Error: %1 無法匯出 Torrent 檔案。錯誤:%1 - + Cannot make save path 無法建立儲存路徑 - + + "%1" is not a valid URL + 「%1」並非有效的 URL + + + + URL scheme must be one of [%1] + URL 方案必須為 [%1] 之一 + + + 'sort' parameter is invalid 「sort」參數無效 - + + "%1" is not an existing URL + 「%1」不是現有的 URL + + + "%1" is not a valid file index. 「%1」不是有效的檔案索引。 - + Index %1 is out of bounds. 索引 %1 超出範圍。 - - + + Cannot write to directory 無法寫入目錄 - + WebUI Set location: moving "%1", from "%2" to "%3" WebUI 設定位置:正在移動「%1」,從「%2」到「%3」 - + Incorrect torrent name 不正確的 torrent 名稱 - - + + Incorrect category name 不正確的分類名稱 @@ -10730,196 +11236,191 @@ Please choose a different name and try again. TrackerListModel - + Working 正在運作 - + Disabled 已停用 - + Disabled for this torrent 對此 torrent 停用 - + This torrent is private 這是私有的 torrent - + N/A N/A - + Updating... 正在更新… - + Not working 沒有運作 - + Tracker error Tracker 錯誤 - + Unreachable 無法連結 - + Not contacted yet 尚未連線 - - Invalid status! + + Invalid state! 無效的狀態! - - URL/Announce endpoint + + URL/Announce Endpoint URL/公告端點 - + + BT Protocol + BT 協定 + + + + Next Announce + 下次公告 + + + + Min Announce + 最小公告 + + + Tier - - Protocol - 協定 - - - + Status 狀態 - + Peers 下載者 - + Seeds 種子 - + Leeches 蝗族 - + Times Downloaded 下載時間 - + Message 訊息 - - - Next announce - 下次公告 - - - - Min announce - 最小公告 - - - - v%1 - v%1 - TrackerListWidget - + This torrent is private 這是私有的 torrent - + Tracker editing 編輯追蹤者 - + Tracker URL: 追蹤者 URL: - - + + Tracker editing failed 編輯追蹤者失敗 - + The tracker URL entered is invalid. 輸入的追蹤者 URL 無效。 - + The tracker URL already exists. 已有這 URL 的追蹤者。 - + Edit tracker URL... 編輯追蹤者 URL… - + Remove tracker 移除追蹤者 - + Copy tracker URL 複製追蹤者 URL - + Force reannounce to selected trackers 強制重新宣告到選取的追蹤器 - + Force reannounce to all trackers 強制重新回報到所有追蹤者 - + Resize columns 調整欄大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄與其內容的大小 - + Add trackers... 新增追蹤者…… - + Column visibility 欄目顯示 @@ -10937,37 +11438,37 @@ Please choose a different name and try again. 要增加的追蹤者清單 (每行一個): - + µTorrent compatible list URL: µTorrent 相容清單 URL: - + Download trackers list 下載追蹤者清單 - + Add 新增 - + Trackers list URL error 追蹤者清單 URL 錯誤 - + The trackers list URL cannot be empty 追蹤者清單 URL 不能為空 - + Download trackers list error 下載追蹤者清單錯誤 - + Error occurred when downloading the trackers list. Reason: "%1" 下載追蹤器清單時發生錯誤。原因:「%1」 @@ -10975,62 +11476,62 @@ Please choose a different name and try again. TrackersFilterWidget - + Warning (%1) 警告 (%1) - + Trackerless (%1) 缺少追蹤者 (%1) - + Tracker error (%1) Tracker 錯誤 (%1) - + Other error (%1) 其他錯誤 (%1) - + Remove tracker 移除 Tracker - - Resume torrents - 繼續 torrent + + Start torrents + 啟動 torrent - - Pause torrents - 暫停 torrent + + Stop torrents + 停止 torrent - + Remove torrents 移除 torrents - + Removal confirmation 移除確認 - + Are you sure you want to remove tracker "%1" from all torrents? 您確定要從所有 torrent 移除 tracker「%1」嗎? - + Don't ask me again. 不要再問我。 - + All (%1) this is for the tracker filter 全部 (%1) @@ -11039,7 +11540,7 @@ Please choose a different name and try again. TransferController - + 'mode': invalid argument 'mode':無效參數 @@ -11131,11 +11632,6 @@ Please choose a different name and try again. 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. 正在檢查復原資料 - - - Paused - 暫停 - Completed @@ -11159,220 +11655,252 @@ Please choose a different name and try again. 錯誤 - + Name i.e: torrent name 名稱 - + Size i.e: torrent size 大小 - + Progress % Done 進度 - + + Stopped + 已停止 + + + Status - Torrent status (e.g. downloading, seeding, paused) + Torrent status (e.g. downloading, seeding, stopped) 狀態 - + Seeds i.e. full sources (often untranslated) 種子 - + Peers i.e. partial sources (often untranslated) 下載者 - + Down Speed i.e: Download speed 下載速率 - + Up Speed i.e: Upload speed 上傳速率 - + Ratio Share ratio 分享率 - + + Popularity + 人氣 + + + ETA i.e: Estimated Time of Arrival / Time left 預估剩餘時間 - + Category 分類 - + Tags 標籤 - + Added On Torrent was added to transfer list on 01/01/2010 08:00 增加於 - + Completed On Torrent was completed on 01/01/2010 08:00 完成於 - + Tracker 追蹤者 - + Down Limit i.e: Download limit 下載限制 - + Up Limit i.e: Upload limit 上傳限制 - + Downloaded Amount of data downloaded (e.g. in MB) 已下載 - + Uploaded Amount of data uploaded (e.g. in MB) 已上傳 - + 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) 今期上傳 - + Remaining Amount of data left to download (e.g. in MB) 剩餘的 - + Time Active - Time (duration) the torrent is active (not paused) + Time (duration) the torrent is active (not stopped) 經過時間 - + + Yes + + + + + No + + + + Save Path Torrent save path 儲存路徑 - + Incomplete Save Path Torrent incomplete save path 不完整的儲存路徑 - + Completed Amount of data completed (e.g. in MB) 已完成 - + Ratio Limit Upload share ratio limit 分享率限制 - + Last Seen Complete Indicates the time when the torrent was last seen complete/whole 最後完整可見 - + Last Activity Time passed since a chunk was downloaded/uploaded 最後活動 - + Total Size i.e. Size including unwanted data 總大小 - + Availability The number of distributed copies of the torrent 可得性 - + Info Hash v1 i.e: torrent info hash v1 資訊雜湊值 v1 - + Info Hash v2 i.e: torrent info hash v2 資訊雜湊值 v2 - + Reannounce In Indicates the time until next trackers reannounce 重新發佈於 - - + + Private + Flags private torrents + 私人 + + + + Ratio / Time Active (in months), indicates how popular the torrent is + 比例 / 活躍時間(以月為單位),表示該 torrent 的受歡迎程度 + + + + + N/A N/A - + %1 ago e.g.: 1h 20m ago %1 前 - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1(已做種 %2) @@ -11381,339 +11909,319 @@ Please choose a different name and try again. TransferListWidget - + Column visibility 欄目顯示 - + Recheck confirmation 確認重新檢查 - + Are you sure you want to recheck the selected torrent(s)? 您確定要重新檢查選取的 torrent 嗎? - + Rename 重新命名 - + New name: 新名稱: - + Choose save path 選擇儲存路徑 - - Confirm pause - 確認暫停 - - - - Would you like to pause all torrents? - 您想要暫停所有 torrents 嗎? - - - - Confirm resume - 確認繼續 - - - - Would you like to resume all torrents? - 您想要繼續所有 torrents 嗎? - - - + Unable to preview 無法預覽 - + The selected torrent "%1" does not contain previewable files 選定的 torrent「%1」不包含可預覽的檔案 - + Resize columns 調整欄大小 - + Resize all non-hidden columns to the size of their contents 調整所有非隱藏欄與其內容的大小 - + Enable automatic torrent management 啟用自動 torrent 管理 - + Are you sure you want to enable Automatic Torrent Management for the selected torrent(s)? They may be relocated. 您確定要為選定的 torrent 啟用自動 Torrent 管理嗎?它們可能會被重新安置。 - - Add Tags - 新增標籤 - - - + Choose folder to save exported .torrent files 選擇儲存所匯出 .torrent 檔案的資料夾 - + Export .torrent file failed. Torrent: "%1". Save path: "%2". Reason: "%3" 無法匯出 .torrent 檔案。Torrent:「%1」。儲存路徑:「%2」。原因:「%3」 - + A file with the same name already exists 已存在同名檔案 - + Export .torrent file error 匯出 .torrent 檔案錯誤 - + Remove All Tags 移除所有標籤 - + Remove all tags from selected torrents? 從選取的 torrent 中移除所有標籤? - + Comma-separated tags: 逗號分隔標籤: - + Invalid tag 無效的標籤 - + Tag name: '%1' is invalid 標籤名稱:「%1」無效 - - &Resume - Resume/start the torrent - 繼續(&R) - - - - &Pause - Pause the torrent - 暫停(&P) - - - - Force Resu&me - Force Resume/start the torrent - 強制繼續(&M) - - - + Pre&view file... 預覽檔案(&V)... - + Torrent &options... Torrent 選項(&O)... - + Open destination &folder 開啟目標資料夾 (&F) - + Move &up i.e. move up in the queue 上移(&U) - + Move &down i.e. Move down in the queue 下移(&D) - + Move to &top i.e. Move to top of the queue 移至頂端(&T) - + Move to &bottom i.e. Move to bottom of the queue 移至底部(&B) - + Set loc&ation... 設定位置(&A)... - + Force rec&heck 強制重新檢查(&H) - + Force r&eannounce 強制重新回報(&E) - + &Magnet link 磁力連結(&M) - + Torrent &ID Torrent ID(&I) - + &Comment 註解(&C) - + &Name 名稱(&N) - + Info &hash v1 資訊雜湊值 v1(&H) - + Info h&ash v2 資訊雜湊值 v2(&A) - + Re&name... 重新命名(&N)... - + Edit trac&kers... 編輯 tracker(&K)... - + E&xport .torrent... 匯出 .torrent(&X)... - + Categor&y 類別(&Y) - + &New... New category... 新增(&N)... - + &Reset Reset category 重設(&R) - + Ta&gs 標籤(&G) - + &Add... Add / assign multiple tags... 加入(&A)... - + &Remove All Remove all tags 全部移除(&R) - + + Can not force reannounce if torrent is Stopped/Queued/Errored/Checking + 如果 torrent 處於「停止」、「排隊」、「錯誤」或「檢查」狀態,則無法強制重新公告 + + + &Queue 佇列(&Q) - + &Copy 複製(&C) - + Exported torrent is not necessarily the same as the imported 匯出的 torrent 不一定與匯入的相同 - + Download in sequential order 依順序下載 - + + Add tags + 新增標籤 + + + Errors occurred when exporting .torrent files. Check execution log for details. 匯出 .torrent 檔案時發生錯誤。請檢視執行紀錄檔以取得更多資訊。 - + + &Start + Resume/start the torrent + 啟動(&S) + + + + Sto&p + Stop the torrent + 停止(&P) + + + + Force Star&t + Force Resume/start the torrent + 強制啟動(&T) + + + &Remove Remove the torrent 移除(&R) - + Download first and last pieces first 先下載第一和最後一塊 - + Automatic Torrent Management 自動 torrent 管理 - + Automatic mode means that various torrent properties (e.g. save path) will be decided by the associated category 自動模式代表了多個 torrent 屬性(例如儲存路徑)將會由相關的分類來決定 - - Can not force reannounce if torrent is Paused/Queued/Errored/Checking - 若 torrent 暫停/排入佇列/錯誤/檢查,則無法強制重新公告 - - - + Super seeding mode 超級種子模式 @@ -11758,28 +12266,28 @@ Please choose a different name and try again. 圖示 ID - + UI Theme Configuration. 使用者界面佈景主題設定。 - + The UI Theme changes could not be fully applied. The details can be found in the Log. 使用者界面佈景主題變更可能未完全套用。詳細資訊可以在紀錄檔中找到。 - + Couldn't save UI Theme configuration. Reason: %1 無法儲存使用者佈景主題設定。原因:%1 - - + + Couldn't remove icon file. File: %1. 無法移除圖示檔案。檔案:%1。 - + Couldn't copy icon file. Source: %1. Destination: %2. 無法複製圖示檔案。來源:%1。目標:%2。 @@ -11787,7 +12295,12 @@ Please choose a different name and try again. UIThemeManager - + + Set app style failed. Unknown style: "%1" + 設定應用程式樣式失敗。未知樣式:「%1」 + + + Failed to load UI theme from file: "%1" 無法從檔案載入 UI 佈景主題:「%1」 @@ -11818,20 +12331,21 @@ Please choose a different name and try again. Upgrade - + Migrate preferences failed: WebUI https, file: "%1", error: "%2" 遷移偏好設定失敗:WebUI https,檔案:「%1」,錯誤:「%2」 - + Migrated preferences: WebUI https, exported data to file: "%1" 已遷移偏好設定:WebUI https,已匯出資料到檔案:「%1」 - - - - + + + + + Invalid value found in configuration file, reverting it to default. Key: "%1". Invalid value: "%2". 設定檔中有無效的值,將其還原為預設值。鍵:「%1」。無效的值:「%2」。 @@ -11839,32 +12353,32 @@ Please choose a different name and try again. Utils::ForeignApps - + Found Python executable. Name: "%1". Version: "%2" 找到 Python 可執行檔。名稱:「%1」。版本:「%2」 - + Failed to find Python executable. Path: "%1". 找不到 Python 可執行檔。路徑:「%1」。 - + Failed to find `python3` executable in PATH environment variable. PATH: "%1" 未在 PATH 環境變數下找到 `python3` 可執行檔。PATH:「%1」 - + Failed to find `python` executable in PATH environment variable. PATH: "%1" 未在 PATH 環境變數下找到 `python` 可執行檔。PATH:「%1」 - + Failed to find `python` executable in Windows Registry. 未在 Windows 登錄檔中發現 `python` 可執行檔。 - + Failed to find Python executable 找不到 Python 可執行檔 @@ -11956,72 +12470,72 @@ Please choose a different name and try again. WebApplication - + Unacceptable session cookie name is specified: '%1'. Default one is used. 指定了不可接受的工作階段 cookie 名稱:「%1」。將會使用預設值。 - + Unacceptable file type, only regular file is allowed. 無法接受的檔案類型,僅允許一般檔案。 - + Symlinks inside alternative UI folder are forbidden. 在替補 UI 資料夾中的符號連結是被禁止的。 - + Using built-in WebUI. 使用內建的 WebUI。 - + Using custom WebUI. Location: "%1". 使用自訂的 WebUI。位置:「%1」。 - + WebUI translation for selected locale (%1) has been successfully loaded. 成功載入了選定區域設定 (%1) 的 WebUI 翻譯。 - + Couldn't load WebUI translation for selected locale (%1). 無法載入指定語系 (%1) 的 WebUI 翻譯。 - + Missing ':' separator in WebUI custom HTTP header: "%1" WebUI 的自訂 HTTP 標頭遺失 ':' 分隔符號:「%1」 - + Web server error. %1 網路伺服器錯誤。%1 - + Web server error. Unknown error. 網路伺服器錯誤。未知錯誤。 - + WebUI: Origin header & Target origin mismatch! Source IP: '%1'. Origin header: '%2'. Target origin: '%3' WebUI:來源檔頭與目標源頭不符合!來源 IP:「%1」╱來源檔頭:「%2」╱目標源頭:「%3」 - + WebUI: Referer header & Target origin mismatch! Source IP: '%1'. Referer header: '%2'. Target origin: '%3' WebUI:Referer 檔頭與目標源頭不符合!來源 IP:「%1」╱Referer 檔頭:「%2」╱目標源頭:「%3」 - + WebUI: Invalid Host header, port mismatch. Request source IP: '%1'. Server port: '%2'. Received Host header: '%3' WebUI:無效的主機檔頭、埠不符合。請求來源 IP:「%1」╱伺服器埠:「%2」╱收到主機檔頭:「%3」 - + WebUI: Invalid Host header. Request source IP: '%1'. Received Host header: '%2' WebUI:無效的主機檔頭。請求來源 IP:「%1」╱收到主機檔頭:「%2」 @@ -12029,125 +12543,133 @@ Please choose a different name and try again. WebUI - + Credentials are not set 未設定憑證 - + WebUI: HTTPS setup successful WebUI:HTTPS 設定成功 - + WebUI: HTTPS setup failed, fallback to HTTP WebUI:HTTPS 設定失敗,退回至 HTTP - + WebUI: Now listening on IP: %1, port: %2 WebUI:正在監聽 IP:%1,連接埠:%2 - + Unable to bind to IP: %1, port: %2. Reason: %3 無法繫結到 IP:%1,連接埠:%2。原因:%3 + + fs + + + Unknown error + 未知的錯誤 + + misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + PiB pebibytes (1024 tebibytes) PiB - + EiB exbibytes (1024 pebibytes) EiB - + /s per second /s - + %1s e.g: 10 seconds %1s - + %1m e.g: 10 minutes %1 分鐘 - + %1h %2m e.g: 3 hours 5 minutes %1 小時 %2 分鐘 - + %1d %2h e.g: 2 days 10 hours %1 天 %2 小時 - + %1y %2d e.g: 2 years 10 days %1年%2天 - - + + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. 因為所有下載已經完成,qBittorrent 現在會將電腦關機。 - + < 1m < 1 minute < 1 分鐘 diff --git a/src/qbittorrent.exe.manifest b/src/qbittorrent.exe.manifest index 939a56d1e..909409854 100644 --- a/src/qbittorrent.exe.manifest +++ b/src/qbittorrent.exe.manifest @@ -1,5 +1,12 @@ + + @@ -28,10 +35,13 @@ - - - - true - - + + + + + SegmentHeap + + true + + diff --git a/src/qbittorrent.rc b/src/qbittorrent.rc index 9e1550c08..0032dcbd1 100644 --- a/src/qbittorrent.rc +++ b/src/qbittorrent.rc @@ -35,7 +35,7 @@ BEGIN VALUE "FileDescription", "qBittorrent - A Bittorrent Client" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "qbittorrent" - VALUE "LegalCopyright", "Copyright ©2006-2024 The qBittorrent Project" + VALUE "LegalCopyright", "Copyright ©2006-2025 The qBittorrent Project" VALUE "OriginalFilename", "qbittorrent.exe" VALUE "ProductName", "qBittorrent" VALUE "ProductVersion", VER_PRODUCTVERSION_STR diff --git a/src/searchengine/nova3/helpers.py b/src/searchengine/nova3/helpers.py index d453f1c4d..5e4457235 100644 --- a/src/searchengine/nova3/helpers.py +++ b/src/searchengine/nova3/helpers.py @@ -1,4 +1,4 @@ -#VERSION: 1.45 +# VERSION: 1.53 # Author: # Christophe DUMEZ (chris@qbittorrent.org) @@ -29,19 +29,22 @@ import datetime import gzip -import html.entities +import html import io import os -import re import socket import socks +import ssl +import sys import tempfile import urllib.error import urllib.parse import urllib.request +from collections.abc import Mapping +from typing import Any, Optional -def getBrowserUserAgent(): +def _getBrowserUserAgent() -> str: """ Disguise as browser to circumvent website blocking """ # Firefox release calendar @@ -57,84 +60,90 @@ def getBrowserUserAgent(): return f"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:{nowVersion}.0) Gecko/20100101 Firefox/{nowVersion}.0" -headers = {'User-Agent': getBrowserUserAgent()} - -# SOCKS5 Proxy support -if "sock_proxy" in os.environ and len(os.environ["sock_proxy"].strip()) > 0: - proxy_str = os.environ["sock_proxy"].strip() - m = re.match(r"^(?:(?P[^:]+):(?P[^@]+)@)?(?P[^:]+):(?P\w+)$", - proxy_str) - if m is not None: - socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, m.group('host'), - int(m.group('port')), True, m.group('username'), m.group('password')) - socket.socket = socks.socksocket +_headers: dict[str, Any] = {'User-Agent': _getBrowserUserAgent()} +_original_socket = socket.socket -def htmlentitydecode(s): - # First convert alpha entities (such as é) - # (Inspired from http://mail.python.org/pipermail/python-list/2007-June/443813.html) - def entity2char(m): - entity = m.group(1) - if entity in html.entities.name2codepoint: - return chr(html.entities.name2codepoint[entity]) - return " " # Unknown entity: We replace with a space. - t = re.sub('&(%s);' % '|'.join(html.entities.name2codepoint), entity2char, s) - - # Then convert numerical entities (such as é) - t = re.sub(r'&#(\d+);', lambda x: chr(int(x.group(1))), t) - - # Then convert hexa entities (such as é) - return re.sub(r'&#x(\w+);', lambda x: chr(int(x.group(1), 16)), t) +def enable_socks_proxy(enable: bool) -> None: + if enable: + socksURL = os.environ.get("qbt_socks_proxy") + if socksURL is not None: + parts = urllib.parse.urlsplit(socksURL) + resolveHostname = (parts.scheme == "socks4a") or (parts.scheme == "socks5h") + if (parts.scheme == "socks4") or (parts.scheme == "socks4a"): + socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, parts.hostname, parts.port, resolveHostname) + socket.socket = socks.socksocket # type: ignore[misc] + elif (parts.scheme == "socks5") or (parts.scheme == "socks5h"): + socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, parts.hostname, parts.port, resolveHostname, parts.username, parts.password) + socket.socket = socks.socksocket # type: ignore[misc] + else: + # the following code provide backward compatibility for older qbt versions + # TODO: scheduled be removed with qbt >= 5.3 + legacySocksURL = os.environ.get("sock_proxy") + if legacySocksURL is not None: + legacySocksURL = f"socks5h://{legacySocksURL.strip()}" + parts = urllib.parse.urlsplit(legacySocksURL) + socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, parts.hostname, parts.port, True, parts.username, parts.password) + socket.socket = socks.socksocket # type: ignore[misc] + else: + socket.socket = _original_socket # type: ignore[misc] -def retrieve_url(url): +# This is only provided for backward compatibility, new code should not use it +htmlentitydecode = html.unescape + + +def retrieve_url(url: str, custom_headers: Mapping[str, Any] = {}, request_data: Optional[Any] = None, ssl_context: Optional[ssl.SSLContext] = None, unescape_html_entities: bool = True) -> str: """ Return the content of the url page as a string """ - req = urllib.request.Request(url, headers=headers) + + request = urllib.request.Request(url, request_data, {**_headers, **custom_headers}) try: - response = urllib.request.urlopen(req) + response = urllib.request.urlopen(request, context=ssl_context) except urllib.error.URLError as errno: - print(" ".join(("Connection error:", str(errno.reason)))) + print(f"Connection error: {errno.reason}", file=sys.stderr) return "" - dat = response.read() + data: bytes = response.read() + # Check if it is gzipped - if dat[:2] == b'\x1f\x8b': + if data[:2] == b'\x1f\x8b': # Data is gzip encoded, decode it - compressedstream = io.BytesIO(dat) - gzipper = gzip.GzipFile(fileobj=compressedstream) - extracted_data = gzipper.read() - dat = extracted_data - info = response.info() + with io.BytesIO(data) as compressedStream, gzip.GzipFile(fileobj=compressedStream) as gzipper: + data = gzipper.read() + charset = 'utf-8' try: - ignore, charset = info['Content-Type'].split('charset=') - except Exception: + charset = response.getheader('Content-Type', '').split('charset=', 1)[1] + except IndexError: pass - dat = dat.decode(charset, 'replace') - dat = htmlentitydecode(dat) - # return dat.encode('utf-8', 'replace') - return dat + + dataStr = data.decode(charset, 'replace') + + if unescape_html_entities: + dataStr = html.unescape(dataStr) + + return dataStr -def download_file(url, referer=None): +def download_file(url: str, referer: Optional[str] = None, ssl_context: Optional[ssl.SSLContext] = None) -> str: """ Download file at url and write it to a file, return the path to the file and the url """ - file, path = tempfile.mkstemp() - file = os.fdopen(file, "wb") + # Download url - req = urllib.request.Request(url, headers=headers) + request = urllib.request.Request(url, headers=_headers) if referer is not None: - req.add_header('referer', referer) - response = urllib.request.urlopen(req) - dat = response.read() + request.add_header('referer', referer) + response = urllib.request.urlopen(request, context=ssl_context) + data = response.read() + # Check if it is gzipped - if dat[:2] == b'\x1f\x8b': + if data[:2] == b'\x1f\x8b': # Data is gzip encoded, decode it - compressedstream = io.BytesIO(dat) - gzipper = gzip.GzipFile(fileobj=compressedstream) - extracted_data = gzipper.read() - dat = extracted_data + with io.BytesIO(data) as compressedStream, gzip.GzipFile(fileobj=compressedStream) as gzipper: + data = gzipper.read() # Write it to a file - file.write(dat) - file.close() + fileHandle, path = tempfile.mkstemp() + with os.fdopen(fileHandle, "wb") as file: + file.write(data) + # return file path - return (path + " " + url) + return f"{path} {url}" diff --git a/src/searchengine/nova3/nova2.py b/src/searchengine/nova3/nova2.py index 2c5963beb..6df365a07 100644 --- a/src/searchengine/nova3/nova2.py +++ b/src/searchengine/nova3/nova2.py @@ -1,4 +1,4 @@ -#VERSION: 1.45 +# VERSION: 1.49 # Author: # Fabien Devaux @@ -36,18 +36,34 @@ import importlib import pathlib import sys +import traceback import urllib.parse +import xml.etree.ElementTree as ET +from collections.abc import Iterable +from enum import Enum from glob import glob from multiprocessing import Pool, cpu_count from os import path +from typing import Optional -THREADED = True +# qbt tend to run this script in 'isolate mode' so append the current path manually +current_path = str(pathlib.Path(__file__).parent.resolve()) +if current_path not in sys.path: + sys.path.append(current_path) + +import helpers + +# enable SOCKS proxy for all plugins by default +helpers.enable_socks_proxy(True) + +THREADED: bool = True try: - MAX_THREADS = cpu_count() + MAX_THREADS: int = cpu_count() except NotImplementedError: MAX_THREADS = 1 -CATEGORIES = {'all', 'movies', 'tv', 'music', 'games', 'anime', 'software', 'pictures', 'books'} +Category = Enum('Category', ['all', 'anime', 'books', 'games', 'movies', 'music', 'pictures', 'software', 'tv']) + ################################################################################ # Every engine should have a "search" method taking @@ -58,182 +74,170 @@ CATEGORIES = {'all', 'movies', 'tv', 'music', 'games', 'anime', 'software', 'pic ################################################################################ +EngineModuleName = str # the filename of the engine plugin + + +class Engine: + url: str + name: str + supported_categories: dict[str, str] + + def __init__(self) -> None: + pass + + def search(self, what: str, cat: str = Category.all.name) -> None: + pass + + def download_torrent(self, info: str) -> None: + pass + + # global state -engine_dict = dict() +engine_dict: dict[EngineModuleName, Optional[type[Engine]]] = {} -def list_engines(): +def list_engines() -> list[EngineModuleName]: """ List all engines, - including broken engines that fail on import + including broken engines that would fail on import - Faster than initialize_engines - - Return list of all engines + Return list of all engines' module name """ - found_engines = [] + + names = [] for engine_path in glob(path.join(path.dirname(__file__), 'engines', '*.py')): - engine_name = path.basename(engine_path).split('.')[0].strip() - if len(engine_name) == 0 or engine_name.startswith('_'): + engine_module_name = path.basename(engine_path).split('.')[0].strip() + if len(engine_module_name) == 0 or engine_module_name.startswith('_'): continue - found_engines.append(engine_name) + names.append(engine_module_name) - return found_engines + return sorted(names) -def get_engine(engine_name): - #global engine_dict - if engine_name in engine_dict: - return engine_dict[engine_name] - # when import fails, engine is None - engine = None +def import_engine(engine_module_name: EngineModuleName) -> Optional[type[Engine]]: + if engine_module_name in engine_dict: + return engine_dict[engine_module_name] + + # when import fails, return `None` + engine_class = None try: - # import engines.[engine] - engine_module = importlib.import_module("engines." + engine_name) - engine = getattr(engine_module, engine_name) + # import engines.[engine_module_name] + engine_module = importlib.import_module(f"engines.{engine_module_name}") + engine_class = getattr(engine_module, engine_module_name) except Exception: pass - engine_dict[engine_name] = engine - return engine + + engine_dict[engine_module_name] = engine_class + return engine_class -def initialize_engines(found_engines): - """ Import available engines - - Return list of available engines +def get_capabilities(engines: Iterable[EngineModuleName]) -> str: """ - supported_engines = [] - - for engine_name in found_engines: - # import engine - engine = get_engine(engine_name) - if engine is None: - continue - supported_engines.append(engine_name) - - return supported_engines - - -def engines_to_xml(supported_engines): - """ Generates xml for supported engines """ - tab = " " * 4 - - for engine_name in supported_engines: - search_engine = get_engine(engine_name) - - supported_categories = "" - if hasattr(search_engine, "supported_categories"): - supported_categories = " ".join((key - for key in search_engine.supported_categories.keys() - if key != "all")) - - yield "".join((tab, "<", engine_name, ">\n", - tab, tab, "", search_engine.name, "\n", - tab, tab, "", search_engine.url, "\n", - tab, tab, "", supported_categories, "\n", - tab, "\n")) - - -def displayCapabilities(supported_engines): - """ - Display capabilities in XML format + Return capabilities in XML format - + long name http://example.com movies music games - + """ - xml = "".join(("\n", - "".join(engines_to_xml(supported_engines)), - "")) - print(xml) + + capabilities_element = ET.Element('capabilities') + + for engine_module_name in engines: + engine_class = import_engine(engine_module_name) + if engine_class is None: + continue + + engine_module_element = ET.SubElement(capabilities_element, engine_module_name) + + ET.SubElement(engine_module_element, 'name').text = engine_class.name + ET.SubElement(engine_module_element, 'url').text = engine_class.url + + supported_categories = "" + if hasattr(engine_class, "supported_categories"): + supported_categories = " ".join((key + for key in sorted(engine_class.supported_categories.keys()) + if key != Category.all.name)) + ET.SubElement(engine_module_element, 'categories').text = supported_categories + + ET.indent(capabilities_element) + return ET.tostring(capabilities_element, 'unicode') -def run_search(engine_list): +def run_search(search_params: tuple[type[Engine], str, Category]) -> bool: """ Run search in engine - @param engine_list List with engine, query and category + @param search_params Tuple with engine, query and category @retval False if any exceptions occurred @retval True otherwise """ - engine, what, cat = engine_list + + engine_class, what, cat = search_params try: - engine = engine() + engine = engine_class() # avoid exceptions due to invalid category if hasattr(engine, 'supported_categories'): - if cat in engine.supported_categories: - engine.search(what, cat) + if cat.name in engine.supported_categories: + engine.search(what, cat.name) else: engine.search(what) - return True except Exception: + traceback.print_exc() return False -def main(args): - # qbt tend to run this script in 'isolate mode' so append the current path manually - current_path = str(pathlib.Path(__file__).parent.resolve()) - if current_path not in sys.path: - sys.path.append(current_path) - - found_engines = list_engines() - - def show_usage(): - print("./nova2.py all|engine1[,engine2]* ", file=sys.stderr) - print("found engines: " + ','.join(found_engines), file=sys.stderr) - print("to list available engines: ./nova2.py --capabilities [--names]", file=sys.stderr) - - if not args: - show_usage() - sys.exit(1) - - elif args[0] == "--capabilities": - supported_engines = initialize_engines(found_engines) - if "--names" in args: - print(",".join(supported_engines)) - return - displayCapabilities(supported_engines) - return - - elif len(args) < 3: - show_usage() - sys.exit(1) - - cat = args[1].lower() - - if cat not in CATEGORIES: - print(" - ".join(('Invalid category', cat)), file=sys.stderr) - sys.exit(1) - - # get only unique engines with set - engines_list = set(e.lower() for e in args[0].strip().split(',')) - - if not engines_list: - # engine list is empty. Nothing to do here - return - - if 'all' in engines_list: - # use all supported engines - # note: this can be slower than passing a list of supported engines - # because initialize_engines will also try to import not-supported engines - engines_list = initialize_engines(found_engines) - else: - # discard not-found engines - engines_list = [engine for engine in engines_list if engine in found_engines] - - what = urllib.parse.quote(' '.join(args[2:])) - if THREADED: - # child process spawning is controlled min(number of searches, number of cpu) - with Pool(min(len(engines_list), MAX_THREADS)) as pool: - pool.map(run_search, ([get_engine(engine_name), what, cat] for engine_name in engines_list)) - else: - # py3 note: map is needed to be evaluated for content to be executed - all(map(run_search, ([get_engine(engine_name), what, cat] for engine_name in engines_list))) - - if __name__ == "__main__": - main(sys.argv[1:]) + def main() -> int: + # https://docs.python.org/3/library/sys.html#sys.exit + class ExitCode(Enum): + OK = 0 + AppError = 1 + ArgError = 2 + + found_engines = list_engines() + + prog_name = sys.argv[0] + prog_usage = (f"Usage: {prog_name} all|engine1[,engine2]* \n" + f"To list available engines: {prog_name} --capabilities [--names]\n" + f"Found engines: {','.join(found_engines)}") + + if "--capabilities" in sys.argv: + if "--names" in sys.argv: + print(",".join((e for e in found_engines if import_engine(e) is not None))) + return ExitCode.OK.value + + print(get_capabilities(found_engines)) + return ExitCode.OK.value + elif len(sys.argv) < 4: + print(prog_usage, file=sys.stderr) + return ExitCode.ArgError.value + + # get unique engines + engs = set(arg.strip().lower() for arg in sys.argv[1].split(',')) + engines = found_engines if 'all' in engs else [e for e in found_engines if e in engs] + + cat = sys.argv[2].lower() + try: + category = Category[cat] + except KeyError: + print(f"Invalid category: {cat}", file=sys.stderr) + return ExitCode.ArgError.value + + what = urllib.parse.quote(' '.join(sys.argv[3:])) + params = ((engine_class, what, category) for e in engines if (engine_class := import_engine(e)) is not None) + + search_success = False + if THREADED: + processes = max(min(len(engines), MAX_THREADS), 1) + with Pool(processes) as pool: + search_success = all(pool.map(run_search, params)) + else: + search_success = all(map(run_search, params)) + + return ExitCode.OK.value if search_success else ExitCode.AppError.value + + sys.exit(main()) diff --git a/src/searchengine/nova3/nova2dl.py b/src/searchengine/nova3/nova2dl.py index c35646654..bdbf1c574 100644 --- a/src/searchengine/nova3/nova2dl.py +++ b/src/searchengine/nova3/nova2dl.py @@ -1,4 +1,4 @@ -#VERSION: 1.24 +# VERSION: 1.26 # Author: # Christophe DUMEZ (chris@qbittorrent.org) @@ -38,26 +38,31 @@ current_path = str(pathlib.Path(__file__).parent.resolve()) if current_path not in sys.path: sys.path.append(current_path) -from helpers import download_file +import helpers + +# enable SOCKS proxy for all plugins by default +helpers.enable_socks_proxy(True) if __name__ == '__main__': + prog_name = sys.argv[0] + if len(sys.argv) < 3: - raise SystemExit('./nova2dl.py engine_name download_parameter') + raise SystemExit(f'Usage: {prog_name} engine_name download_parameter') engine_name = sys.argv[1].strip() download_param = sys.argv[2].strip() try: - module = importlib.import_module("engines." + engine_name) + module = importlib.import_module(f"engines.{engine_name}") engine_class = getattr(module, engine_name) engine = engine_class() except Exception as e: - print(repr(e)) - raise SystemExit('./nova2dl.py: this engine_name was not recognized') + print(repr(e), file=sys.stderr) + raise SystemExit(f'{prog_name}: `engine_name` was not recognized: {engine_name}') if hasattr(engine, 'download_torrent'): engine.download_torrent(download_param) else: - print(download_file(download_param)) + print(helpers.download_file(download_param)) sys.exit(0) diff --git a/src/searchengine/nova3/novaprinter.py b/src/searchengine/nova3/novaprinter.py index 80f73aae3..812b0cd95 100644 --- a/src/searchengine/nova3/novaprinter.py +++ b/src/searchengine/nova3/novaprinter.py @@ -1,4 +1,4 @@ -#VERSION: 1.48 +# VERSION: 1.53 # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -24,8 +24,22 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +import re +from typing import TypedDict, Union -def prettyPrinter(dictionary): +SearchResults = TypedDict('SearchResults', { + 'link': str, + 'name': str, + 'size': Union[float, int, str], # TODO: use `float | int | str` when using Python >= 3.10 + 'seeds': int, + 'leech': int, + 'engine_url': str, + 'desc_link': str, # Optional # TODO: use `NotRequired[str]` when using Python >= 3.11 + 'pub_date': int # Optional # TODO: use `NotRequired[int]` when using Python >= 3.11 +}) + + +def prettyPrinter(dictionary: SearchResults) -> None: outtext = "|".join(( dictionary["link"], dictionary["name"].replace("|", " "), @@ -34,7 +48,7 @@ def prettyPrinter(dictionary): str(dictionary["leech"]), dictionary["engine_url"], dictionary.get("desc_link", ""), # Optional - str(dictionary.get("pub_date", -1)), # Optional + str(dictionary.get("pub_date", -1)) # Optional )) # fd 1 is stdout @@ -42,30 +56,33 @@ def prettyPrinter(dictionary): print(outtext, file=utf8stdout) -def anySizeToBytes(size_string): +_sizeUnitRegex: re.Pattern[str] = re.compile(r"^(?P\d*\.?\d+) *(?P[a-z]+)?", re.IGNORECASE) + + +# TODO: use `float | int | str` when using Python >= 3.10 +def anySizeToBytes(size_string: Union[float, int, str]) -> int: """ Convert a string like '1 KB' to '1024' (bytes) - """ - # separate integer from unit - try: - size, unit = size_string.split() - except Exception: - try: - size = size_string.strip() - unit = ''.join([c for c in size if c.isalpha()]) - if len(unit) > 0: - size = size[:-len(unit)] - except Exception: - return -1 - if len(size) == 0: - return -1 - size = float(size) - if len(unit) == 0: - return int(size) - short_unit = unit.upper()[0] - # convert - units_dict = {'T': 40, 'G': 30, 'M': 20, 'K': 10} - if short_unit in units_dict: - size = size * 2**units_dict[short_unit] - return int(size) + The canonical type for `size_string` is `str`. However numeric types are also accepted in order to + accommodate poorly written plugins. + """ + + if isinstance(size_string, int): + return size_string + if isinstance(size_string, float): + return round(size_string) + + match = _sizeUnitRegex.match(size_string.strip()) + if match is None: + return -1 + + size = float(match.group('size')) # need to match decimals + unit = match.group('unit') + + if unit is not None: + units_exponents = {'T': 40, 'G': 30, 'M': 20, 'K': 10} + exponent = units_exponents.get(unit[0].upper(), 0) + size *= 2**exponent + + return round(size) diff --git a/src/searchengine/nova3/socks.py b/src/searchengine/nova3/socks.py index 889b88350..8b7ceee69 100644 --- a/src/searchengine/nova3/socks.py +++ b/src/searchengine/nova3/socks.py @@ -1,8 +1,9 @@ -"""SocksiPy - Python SOCKS module. -Version 1.01 +# VERSION: 1.00 + +"""PySocks - A SOCKS proxy client and wrapper for Python. +Version 1.7.1 Copyright 2006 Dan-Haim. All rights reserved. -Various fixes by Christophe DUMEZ - 2010 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -31,361 +32,850 @@ for tunneling connections through SOCKS proxies. """ +from base64 import b64encode +try: + from collections.abc import Callable +except ImportError: + from collections import Callable +from errno import EOPNOTSUPP, EINVAL, EAGAIN +import functools +from io import BytesIO +import logging +import os +from os import SEEK_CUR import socket import struct +import sys -PROXY_TYPE_SOCKS4 = 1 -PROXY_TYPE_SOCKS5 = 2 -PROXY_TYPE_HTTP = 3 +__version__ = "1.7.1" -_defaultproxy = None -_orgsocket = socket.socket -class ProxyError(Exception): - def __init__(self, value): - self.value = value +if os.name == "nt" and sys.version_info < (3, 0): + try: + import win_inet_pton + except ImportError: + raise ImportError( + "To run PySocks on Windows you must install win_inet_pton") + +log = logging.getLogger(__name__) + +PROXY_TYPE_SOCKS4 = SOCKS4 = 1 +PROXY_TYPE_SOCKS5 = SOCKS5 = 2 +PROXY_TYPE_HTTP = HTTP = 3 + +PROXY_TYPES = {"SOCKS4": SOCKS4, "SOCKS5": SOCKS5, "HTTP": HTTP} +PRINTABLE_PROXY_TYPES = dict(zip(PROXY_TYPES.values(), PROXY_TYPES.keys())) + +_orgsocket = _orig_socket = socket.socket + + +def set_self_blocking(function): + + @functools.wraps(function) + def wrapper(*args, **kwargs): + self = args[0] + try: + _is_blocking = self.gettimeout() + if _is_blocking == 0: + self.setblocking(True) + return function(*args, **kwargs) + except Exception as e: + raise + finally: + # set orgin blocking + if _is_blocking == 0: + self.setblocking(False) + return wrapper + + +class ProxyError(IOError): + """Socket_err contains original socket.error exception.""" + def __init__(self, msg, socket_err=None): + self.msg = msg + self.socket_err = socket_err + + if socket_err: + self.msg += ": {}".format(socket_err) + def __str__(self): - return repr(self.value) + return self.msg + class GeneralProxyError(ProxyError): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) + pass -class Socks5AuthError(ProxyError): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) -class Socks5Error(ProxyError): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) +class ProxyConnectionError(ProxyError): + pass + + +class SOCKS5AuthError(ProxyError): + pass + + +class SOCKS5Error(ProxyError): + pass + + +class SOCKS4Error(ProxyError): + pass -class Socks4Error(ProxyError): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) class HTTPError(ProxyError): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) + pass -_generalerrors = ("success", - "invalid data", - "not connected", - "not available", - "bad proxy type", - "bad input") +SOCKS4_ERRORS = { + 0x5B: "Request rejected or failed", + 0x5C: ("Request rejected because SOCKS server cannot connect to identd on" + " the client"), + 0x5D: ("Request rejected because the client program and identd report" + " different user-ids") +} -_socks5errors = ("succeeded", - "general SOCKS server failure", - "connection not allowed by ruleset", - "Network unreachable", - "Host unreachable", - "Connection refused", - "TTL expired", - "Command not supported", - "Address type not supported", - "Unknown error") +SOCKS5_ERRORS = { + 0x01: "General SOCKS server failure", + 0x02: "Connection not allowed by ruleset", + 0x03: "Network unreachable", + 0x04: "Host unreachable", + 0x05: "Connection refused", + 0x06: "TTL expired", + 0x07: "Command not supported, or protocol error", + 0x08: "Address type not supported" +} -_socks5autherrors = ("succeeded", - "authentication is required", - "all offered authentication methods were rejected", - "unknown username or invalid password", - "unknown error") +DEFAULT_PORTS = {SOCKS4: 1080, SOCKS5: 1080, HTTP: 8080} -_socks4errors = ("request granted", - "request rejected or failed", - "request rejected because SOCKS server cannot connect to identd on the client", - "request rejected because the client program and identd report different user-ids", - "unknown error") -def setdefaultproxy(proxytype=None,addr=None,port=None,rdns=True,username=None,password=None): - """setdefaultproxy(proxytype, addr[, port[, rdns[, username[, password]]]]) - Sets a default proxy which all further socksocket objects will use, - unless explicitly changed. +def set_default_proxy(proxy_type=None, addr=None, port=None, rdns=True, + username=None, password=None): + """Sets a default proxy. + + All further socksocket objects will use the default unless explicitly + changed. All parameters are as for socket.set_proxy().""" + socksocket.default_proxy = (proxy_type, addr, port, rdns, + username.encode() if username else None, + password.encode() if password else None) + + +def setdefaultproxy(*args, **kwargs): + if "proxytype" in kwargs: + kwargs["proxy_type"] = kwargs.pop("proxytype") + return set_default_proxy(*args, **kwargs) + + +def get_default_proxy(): + """Returns the default proxy, set by set_default_proxy.""" + return socksocket.default_proxy + +getdefaultproxy = get_default_proxy + + +def wrap_module(module): + """Attempts to replace a module's socket library with a SOCKS socket. + + Must set a default proxy using set_default_proxy(...) first. This will + only work on modules that import socket directly into the namespace; + most of the Python Standard Library falls into this category.""" + if socksocket.default_proxy: + module.socket.socket = socksocket + else: + raise GeneralProxyError("No default proxy specified") + +wrapmodule = wrap_module + + +def create_connection(dest_pair, + timeout=None, source_address=None, + proxy_type=None, proxy_addr=None, + proxy_port=None, proxy_rdns=True, + proxy_username=None, proxy_password=None, + socket_options=None): + """create_connection(dest_pair, *[, timeout], **proxy_args) -> socket object + + Like socket.create_connection(), but connects to proxy + before returning the socket object. + + dest_pair - 2-tuple of (IP/hostname, port). + **proxy_args - Same args passed to socksocket.set_proxy() if present. + timeout - Optional socket timeout value, in seconds. + source_address - tuple (host, port) for the socket to bind to as its source + address before connecting (only for compatibility) """ - global _defaultproxy - _defaultproxy = (proxytype,addr,port,rdns,username,password) + # Remove IPv6 brackets on the remote address and proxy address. + remote_host, remote_port = dest_pair + if remote_host.startswith("["): + remote_host = remote_host.strip("[]") + if proxy_addr and proxy_addr.startswith("["): + proxy_addr = proxy_addr.strip("[]") -class socksocket(socket.socket): + err = None + + # Allow the SOCKS proxy to be on IPv4 or IPv6 addresses. + for r in socket.getaddrinfo(proxy_addr, proxy_port, 0, socket.SOCK_STREAM): + family, socket_type, proto, canonname, sa = r + sock = None + try: + sock = socksocket(family, socket_type, proto) + + if socket_options: + for opt in socket_options: + sock.setsockopt(*opt) + + if isinstance(timeout, (int, float)): + sock.settimeout(timeout) + + if proxy_type: + sock.set_proxy(proxy_type, proxy_addr, proxy_port, proxy_rdns, + proxy_username, proxy_password) + if source_address: + sock.bind(source_address) + + sock.connect((remote_host, remote_port)) + return sock + + except (socket.error, ProxyError) as e: + err = e + if sock: + sock.close() + sock = None + + if err: + raise err + + raise socket.error("gai returned empty list.") + + +class _BaseSocket(socket.socket): + """Allows Python 2 delegated methods such as send() to be overridden.""" + def __init__(self, *pos, **kw): + _orig_socket.__init__(self, *pos, **kw) + + self._savedmethods = dict() + for name in self._savenames: + self._savedmethods[name] = getattr(self, name) + delattr(self, name) # Allows normal overriding mechanism to work + + _savenames = list() + + +def _makemethod(name): + return lambda self, *pos, **kw: self._savedmethods[name](*pos, **kw) +for name in ("sendto", "send", "recvfrom", "recv"): + method = getattr(_BaseSocket, name, None) + + # Determine if the method is not defined the usual way + # as a function in the class. + # Python 2 uses __slots__, so there are descriptors for each method, + # but they are not functions. + if not isinstance(method, Callable): + _BaseSocket._savenames.append(name) + setattr(_BaseSocket, name, _makemethod(name)) + + +class socksocket(_BaseSocket): """socksocket([family[, type[, proto]]]) -> socket object Open a SOCKS enabled socket. The parameters are the same as those of the standard socket init. In order for SOCKS to work, - you must specify family=AF_INET, type=SOCK_STREAM and proto=0. + you must specify family=AF_INET and proto=0. + The "type" argument must be either SOCK_STREAM or SOCK_DGRAM. """ - def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, proto=0, _sock=None): - _orgsocket.__init__(self,family,type,proto,_sock) - if _defaultproxy != None: - self.__proxy = _defaultproxy - else: - self.__proxy = (None, None, None, None, None, None) - self.__proxysockname = None - self.__proxypeername = None + default_proxy = None - def __recvall(self, bytes): - """__recvall(bytes) -> data - Receive EXACTLY the number of bytes requested from the socket. - Blocks until the required number of bytes have been received. - """ - data = "" - while len(data) < bytes: - d = self.recv(bytes-len(data)) + def __init__(self, family=socket.AF_INET, type=socket.SOCK_STREAM, + proto=0, *args, **kwargs): + if type not in (socket.SOCK_STREAM, socket.SOCK_DGRAM): + msg = "Socket type must be stream or datagram, not {!r}" + raise ValueError(msg.format(type)) + + super(socksocket, self).__init__(family, type, proto, *args, **kwargs) + self._proxyconn = None # TCP connection to keep UDP relay alive + + if self.default_proxy: + self.proxy = self.default_proxy + else: + self.proxy = (None, None, None, None, None, None) + self.proxy_sockname = None + self.proxy_peername = None + + self._timeout = None + + def _readall(self, file, count): + """Receive EXACTLY the number of bytes requested from the file object. + + Blocks until the required number of bytes have been received.""" + data = b"" + while len(data) < count: + d = file.read(count - len(data)) if not d: - raise GeneralProxyError("connection closed unexpectedly") - data = data + d + raise GeneralProxyError("Connection closed unexpectedly") + data += d return data - def setproxy(self,proxytype=None,addr=None,port=None,rdns=True,username=None,password=None): - """setproxy(proxytype, addr[, port[, rdns[, username[, password]]]]) - Sets the proxy to be used. - proxytype - The type of the proxy to be used. Three types - are supported: PROXY_TYPE_SOCKS4 (including socks4a), - PROXY_TYPE_SOCKS5 and PROXY_TYPE_HTTP - addr - The address of the server (IP or DNS). - port - The port of the server. Defaults to 1080 for SOCKS - servers and 8080 for HTTP proxy servers. - rdns - Should DNS queries be performed on the remote side - (rather than the local side). The default is True. - Note: This has no effect with SOCKS4 servers. - username - Username to authenticate with to the server. - The default is no authentication. - password - Password to authenticate with to the server. - Only relevant when username is also provided. - """ - self.__proxy = (proxytype,addr,port,rdns,username,password) - - def __negotiatesocks5(self,destaddr,destport): - """__negotiatesocks5(self,destaddr,destport) - Negotiates a connection through a SOCKS5 server. - """ - # First we'll send the authentication packages we support. - if (self.__proxy[4]!=None) and (self.__proxy[5]!=None): - # The username/password details were supplied to the - # setproxy method so we support the USERNAME/PASSWORD - # authentication (in addition to the standard none). - self.sendall("\x05\x02\x00\x02") - else: - # No username/password were entered, therefore we - # only support connections with no authentication. - self.sendall("\x05\x01\x00") - # We'll receive the server's response to determine which - # method was selected - chosenauth = self.__recvall(2) - if chosenauth[0] != "\x05": - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - # Check the chosen authentication method - if chosenauth[1] == "\x00": - # No authentication is required - pass - elif chosenauth[1] == "\x02": - # Okay, we need to perform a basic username/password - # authentication. - self.sendall("\x01" + chr(len(self.__proxy[4])) + self.__proxy[4] + chr(len(self.__proxy[5])) + self.__proxy[5]) - authstat = self.__recvall(2) - if authstat[0] != "\x01": - # Bad response - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - if authstat[1] != "\x00": - # Authentication failed - self.close() - raise Socks5AuthError((3,_socks5autherrors[3])) - # Authentication succeeded - else: - # Reaching here is always bad - self.close() - if chosenauth[1] == "\xFF": - raise Socks5AuthError((2,_socks5autherrors[2])) - else: - raise GeneralProxyError((1,_generalerrors[1])) - # Now we can request the actual connection - req = "\x05\x01\x00" - # If the given destination address is an IP address, we'll - # use the IPv4 address request even if remote resolving was specified. + def settimeout(self, timeout): + self._timeout = timeout try: - ipaddr = socket.inet_aton(destaddr) - req = req + "\x01" + ipaddr + # test if we're connected, if so apply timeout + peer = self.get_proxy_peername() + super(socksocket, self).settimeout(self._timeout) except socket.error: - # Well it's not an IP number, so it's probably a DNS name. - if self.__proxy[3]==True: - # Resolve remotely - ipaddr = None - req = req + "\x03" + chr(len(destaddr)) + destaddr - else: - # Resolve locally - ipaddr = socket.inet_aton(socket.gethostbyname(destaddr)) - req = req + "\x01" + ipaddr - req = req + struct.pack(">H",destport) - self.sendall(req) - # Get the response - resp = self.__recvall(4) - if resp[0] != "\x05": - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - elif resp[1] != "\x00": - # Connection failed - self.close() - if ord(resp[1])<=8: - raise Socks5Error((ord(resp[1]),_generalerrors[ord(resp[1])])) - else: - raise Socks5Error((9,_generalerrors[9])) - # Get the bound address/port - elif resp[3] == "\x01": - boundaddr = self.__recvall(4) - elif resp[3] == "\x03": - resp = resp + self.recv(1) - boundaddr = self.__recvall(ord(resp[4])) - else: - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - boundport = struct.unpack(">H",self.__recvall(2))[0] - self.__proxysockname = (boundaddr,boundport) - if ipaddr != None: - self.__proxypeername = (socket.inet_ntoa(ipaddr),destport) - else: - self.__proxypeername = (destaddr,destport) + pass - def getproxysockname(self): - """getsockname() -> address info - Returns the bound IP address and port number at the proxy. + def gettimeout(self): + return self._timeout + + def setblocking(self, v): + if v: + self.settimeout(None) + else: + self.settimeout(0.0) + + def set_proxy(self, proxy_type=None, addr=None, port=None, rdns=True, + username=None, password=None): + """ Sets the proxy to be used. + + proxy_type - The type of the proxy to be used. Three types + are supported: PROXY_TYPE_SOCKS4 (including socks4a), + PROXY_TYPE_SOCKS5 and PROXY_TYPE_HTTP + addr - The address of the server (IP or DNS). + port - The port of the server. Defaults to 1080 for SOCKS + servers and 8080 for HTTP proxy servers. + rdns - Should DNS queries be performed on the remote side + (rather than the local side). The default is True. + Note: This has no effect with SOCKS4 servers. + username - Username to authenticate with to the server. + The default is no authentication. + password - Password to authenticate with to the server. + Only relevant when username is also provided.""" + self.proxy = (proxy_type, addr, port, rdns, + username.encode() if username else None, + password.encode() if password else None) + + def setproxy(self, *args, **kwargs): + if "proxytype" in kwargs: + kwargs["proxy_type"] = kwargs.pop("proxytype") + return self.set_proxy(*args, **kwargs) + + def bind(self, *pos, **kw): + """Implements proxy connection for UDP sockets. + + Happens during the bind() phase.""" + (proxy_type, proxy_addr, proxy_port, rdns, username, + password) = self.proxy + if not proxy_type or self.type != socket.SOCK_DGRAM: + return _orig_socket.bind(self, *pos, **kw) + + if self._proxyconn: + raise socket.error(EINVAL, "Socket already bound to an address") + if proxy_type != SOCKS5: + msg = "UDP only supported by SOCKS5 proxy type" + raise socket.error(EOPNOTSUPP, msg) + super(socksocket, self).bind(*pos, **kw) + + # Need to specify actual local port because + # some relays drop packets if a port of zero is specified. + # Avoid specifying host address in case of NAT though. + _, port = self.getsockname() + dst = ("0", port) + + self._proxyconn = _orig_socket() + proxy = self._proxy_addr() + self._proxyconn.connect(proxy) + + UDP_ASSOCIATE = b"\x03" + _, relay = self._SOCKS5_request(self._proxyconn, UDP_ASSOCIATE, dst) + + # The relay is most likely on the same host as the SOCKS proxy, + # but some proxies return a private IP address (10.x.y.z) + host, _ = proxy + _, port = relay + super(socksocket, self).connect((host, port)) + super(socksocket, self).settimeout(self._timeout) + self.proxy_sockname = ("0.0.0.0", 0) # Unknown + + def sendto(self, bytes, *args, **kwargs): + if self.type != socket.SOCK_DGRAM: + return super(socksocket, self).sendto(bytes, *args, **kwargs) + if not self._proxyconn: + self.bind(("", 0)) + + address = args[-1] + flags = args[:-1] + + header = BytesIO() + RSV = b"\x00\x00" + header.write(RSV) + STANDALONE = b"\x00" + header.write(STANDALONE) + self._write_SOCKS5_address(address, header) + + sent = super(socksocket, self).send(header.getvalue() + bytes, *flags, + **kwargs) + return sent - header.tell() + + def send(self, bytes, flags=0, **kwargs): + if self.type == socket.SOCK_DGRAM: + return self.sendto(bytes, flags, self.proxy_peername, **kwargs) + else: + return super(socksocket, self).send(bytes, flags, **kwargs) + + def recvfrom(self, bufsize, flags=0): + if self.type != socket.SOCK_DGRAM: + return super(socksocket, self).recvfrom(bufsize, flags) + if not self._proxyconn: + self.bind(("", 0)) + + buf = BytesIO(super(socksocket, self).recv(bufsize + 1024, flags)) + buf.seek(2, SEEK_CUR) + frag = buf.read(1) + if ord(frag): + raise NotImplementedError("Received UDP packet fragment") + fromhost, fromport = self._read_SOCKS5_address(buf) + + if self.proxy_peername: + peerhost, peerport = self.proxy_peername + if fromhost != peerhost or peerport not in (0, fromport): + raise socket.error(EAGAIN, "Packet filtered") + + return (buf.read(bufsize), (fromhost, fromport)) + + def recv(self, *pos, **kw): + bytes, _ = self.recvfrom(*pos, **kw) + return bytes + + def close(self): + if self._proxyconn: + self._proxyconn.close() + return super(socksocket, self).close() + + def get_proxy_sockname(self): + """Returns the bound IP address and port number at the proxy.""" + return self.proxy_sockname + + getproxysockname = get_proxy_sockname + + def get_proxy_peername(self): """ - return self.__proxysockname - - def getproxypeername(self): - """getproxypeername() -> address info Returns the IP and port number of the proxy. """ - return _orgsocket.getpeername(self) + return self.getpeername() - def getpeername(self): - """getpeername() -> address info - Returns the IP address and port number of the destination - machine (note: getproxypeername returns the proxy) - """ - return self.__proxypeername + getproxypeername = get_proxy_peername - def __negotiatesocks4(self,destaddr,destport): - """__negotiatesocks4(self,destaddr,destport) - Negotiates a connection through a SOCKS4 server. + def get_peername(self): + """Returns the IP address and port number of the destination machine. + + Note: get_proxy_peername returns the proxy.""" + return self.proxy_peername + + getpeername = get_peername + + def _negotiate_SOCKS5(self, *dest_addr): + """Negotiates a stream connection through a SOCKS5 server.""" + CONNECT = b"\x01" + self.proxy_peername, self.proxy_sockname = self._SOCKS5_request( + self, CONNECT, dest_addr) + + def _SOCKS5_request(self, conn, cmd, dst): """ - # Check if the destination address provided is an IP address - rmtrslv = False + Send SOCKS5 request with given command (CMD field) and + address (DST field). Returns resolved DST address that was used. + """ + proxy_type, addr, port, rdns, username, password = self.proxy + + writer = conn.makefile("wb") + reader = conn.makefile("rb", 0) # buffering=0 renamed in Python 3 try: - ipaddr = socket.inet_aton(destaddr) - except socket.error: - # It's a DNS name. Check where it should be resolved. - if self.__proxy[3]==True: - ipaddr = "\x00\x00\x00\x01" - rmtrslv = True + # First we'll send the authentication packages we support. + if username and password: + # The username/password details were supplied to the + # set_proxy method so we support the USERNAME/PASSWORD + # authentication (in addition to the standard none). + writer.write(b"\x05\x02\x00\x02") else: - ipaddr = socket.inet_aton(socket.gethostbyname(destaddr)) - # Construct the request packet - req = "\x04\x01" + struct.pack(">H",destport) + ipaddr - # The username parameter is considered userid for SOCKS4 - if self.__proxy[4] != None: - req = req + self.__proxy[4] - req = req + "\x00" - # DNS name if remote resolving is required - # NOTE: This is actually an extension to the SOCKS4 protocol - # called SOCKS4A and may not be supported in all cases. - if rmtrslv==True: - req = req + destaddr + "\x00" - self.sendall(req) - # Get the response from the server - resp = self.__recvall(8) - if resp[0] != "\x00": - # Bad data - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - if resp[1] != "\x5A": - # Server returned an error - self.close() - if ord(resp[1]) in (91,92,93): - self.close() - raise Socks4Error((ord(resp[1]),_socks4errors[ord(resp[1])-90])) - else: - raise Socks4Error((94,_socks4errors[4])) - # Get the bound address/port - self.__proxysockname = (socket.inet_ntoa(resp[4:]),struct.unpack(">H",resp[2:4])[0]) - if rmtrslv != None: - self.__proxypeername = (socket.inet_ntoa(ipaddr),destport) - else: - self.__proxypeername = (destaddr,destport) + # No username/password were entered, therefore we + # only support connections with no authentication. + writer.write(b"\x05\x01\x00") - def __negotiatehttp(self,destaddr,destport): - """__negotiatehttp(self,destaddr,destport) - Negotiates a connection through an HTTP server. + # We'll receive the server's response to determine which + # method was selected + writer.flush() + chosen_auth = self._readall(reader, 2) + + if chosen_auth[0:1] != b"\x05": + # Note: string[i:i+1] is used because indexing of a bytestring + # via bytestring[i] yields an integer in Python 3 + raise GeneralProxyError( + "SOCKS5 proxy server sent invalid data") + + # Check the chosen authentication method + + if chosen_auth[1:2] == b"\x02": + # Okay, we need to perform a basic username/password + # authentication. + if not (username and password): + # Although we said we don't support authentication, the + # server may still request basic username/password + # authentication + raise SOCKS5AuthError("No username/password supplied. " + "Server requested username/password" + " authentication") + + writer.write(b"\x01" + chr(len(username)).encode() + + username + + chr(len(password)).encode() + + password) + writer.flush() + auth_status = self._readall(reader, 2) + if auth_status[0:1] != b"\x01": + # Bad response + raise GeneralProxyError( + "SOCKS5 proxy server sent invalid data") + if auth_status[1:2] != b"\x00": + # Authentication failed + raise SOCKS5AuthError("SOCKS5 authentication failed") + + # Otherwise, authentication succeeded + + # No authentication is required if 0x00 + elif chosen_auth[1:2] != b"\x00": + # Reaching here is always bad + if chosen_auth[1:2] == b"\xFF": + raise SOCKS5AuthError( + "All offered SOCKS5 authentication methods were" + " rejected") + else: + raise GeneralProxyError( + "SOCKS5 proxy server sent invalid data") + + # Now we can request the actual connection + writer.write(b"\x05" + cmd + b"\x00") + resolved = self._write_SOCKS5_address(dst, writer) + writer.flush() + + # Get the response + resp = self._readall(reader, 3) + if resp[0:1] != b"\x05": + raise GeneralProxyError( + "SOCKS5 proxy server sent invalid data") + + status = ord(resp[1:2]) + if status != 0x00: + # Connection failed: server returned an error + error = SOCKS5_ERRORS.get(status, "Unknown error") + raise SOCKS5Error("{:#04x}: {}".format(status, error)) + + # Get the bound address/port + bnd = self._read_SOCKS5_address(reader) + + super(socksocket, self).settimeout(self._timeout) + return (resolved, bnd) + finally: + reader.close() + writer.close() + + def _write_SOCKS5_address(self, addr, file): """ + Return the host and port packed for the SOCKS5 protocol, + and the resolved address as a tuple object. + """ + host, port = addr + proxy_type, _, _, rdns, username, password = self.proxy + family_to_byte = {socket.AF_INET: b"\x01", socket.AF_INET6: b"\x04"} + + # If the given destination address is an IP address, we'll + # use the IP address request even if remote resolving was specified. + # Detect whether the address is IPv4/6 directly. + for family in (socket.AF_INET, socket.AF_INET6): + try: + addr_bytes = socket.inet_pton(family, host) + file.write(family_to_byte[family] + addr_bytes) + host = socket.inet_ntop(family, addr_bytes) + file.write(struct.pack(">H", port)) + return host, port + except socket.error: + continue + + # Well it's not an IP number, so it's probably a DNS name. + if rdns: + # Resolve remotely + host_bytes = host.encode("idna") + file.write(b"\x03" + chr(len(host_bytes)).encode() + host_bytes) + else: + # Resolve locally + addresses = socket.getaddrinfo(host, port, socket.AF_UNSPEC, + socket.SOCK_STREAM, + socket.IPPROTO_TCP, + socket.AI_ADDRCONFIG) + # We can't really work out what IP is reachable, so just pick the + # first. + target_addr = addresses[0] + family = target_addr[0] + host = target_addr[4][0] + + addr_bytes = socket.inet_pton(family, host) + file.write(family_to_byte[family] + addr_bytes) + host = socket.inet_ntop(family, addr_bytes) + file.write(struct.pack(">H", port)) + return host, port + + def _read_SOCKS5_address(self, file): + atyp = self._readall(file, 1) + if atyp == b"\x01": + addr = socket.inet_ntoa(self._readall(file, 4)) + elif atyp == b"\x03": + length = self._readall(file, 1) + addr = self._readall(file, ord(length)) + elif atyp == b"\x04": + addr = socket.inet_ntop(socket.AF_INET6, self._readall(file, 16)) + else: + raise GeneralProxyError("SOCKS5 proxy server sent invalid data") + + port = struct.unpack(">H", self._readall(file, 2))[0] + return addr, port + + def _negotiate_SOCKS4(self, dest_addr, dest_port): + """Negotiates a connection through a SOCKS4 server.""" + proxy_type, addr, port, rdns, username, password = self.proxy + + writer = self.makefile("wb") + reader = self.makefile("rb", 0) # buffering=0 renamed in Python 3 + try: + # Check if the destination address provided is an IP address + remote_resolve = False + try: + addr_bytes = socket.inet_aton(dest_addr) + except socket.error: + # It's a DNS name. Check where it should be resolved. + if rdns: + addr_bytes = b"\x00\x00\x00\x01" + remote_resolve = True + else: + addr_bytes = socket.inet_aton( + socket.gethostbyname(dest_addr)) + + # Construct the request packet + writer.write(struct.pack(">BBH", 0x04, 0x01, dest_port)) + writer.write(addr_bytes) + + # The username parameter is considered userid for SOCKS4 + if username: + writer.write(username) + writer.write(b"\x00") + + # DNS name if remote resolving is required + # NOTE: This is actually an extension to the SOCKS4 protocol + # called SOCKS4A and may not be supported in all cases. + if remote_resolve: + writer.write(dest_addr.encode("idna") + b"\x00") + writer.flush() + + # Get the response from the server + resp = self._readall(reader, 8) + if resp[0:1] != b"\x00": + # Bad data + raise GeneralProxyError( + "SOCKS4 proxy server sent invalid data") + + status = ord(resp[1:2]) + if status != 0x5A: + # Connection failed: server returned an error + error = SOCKS4_ERRORS.get(status, "Unknown error") + raise SOCKS4Error("{:#04x}: {}".format(status, error)) + + # Get the bound address/port + self.proxy_sockname = (socket.inet_ntoa(resp[4:]), + struct.unpack(">H", resp[2:4])[0]) + if remote_resolve: + self.proxy_peername = socket.inet_ntoa(addr_bytes), dest_port + else: + self.proxy_peername = dest_addr, dest_port + finally: + reader.close() + writer.close() + + def _negotiate_HTTP(self, dest_addr, dest_port): + """Negotiates a connection through an HTTP server. + + NOTE: This currently only supports HTTP CONNECT-style proxies.""" + proxy_type, addr, port, rdns, username, password = self.proxy + # If we need to resolve locally, we do this now - if self.__proxy[3] == False: - addr = socket.gethostbyname(destaddr) - else: - addr = destaddr - self.sendall("CONNECT " + addr + ":" + str(destport) + " HTTP/1.1\r\n" + "Host: " + destaddr + "\r\n\r\n") - # We read the response until we get the string "\r\n\r\n" - resp = self.recv(1) - while resp.find("\r\n\r\n")==-1: - resp = resp + self.recv(1) - # We just need the first line to check if the connection - # was successful - statusline = resp.splitlines()[0].split(" ",2) - if statusline[0] not in ("HTTP/1.0","HTTP/1.1"): - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - try: - statuscode = int(statusline[1]) - except ValueError: - self.close() - raise GeneralProxyError((1,_generalerrors[1])) - if statuscode != 200: - self.close() - raise HTTPError((statuscode,statusline[2])) - self.__proxysockname = ("0.0.0.0",0) - self.__proxypeername = (addr,destport) + addr = dest_addr if rdns else socket.gethostbyname(dest_addr) - def connect(self,destpair): - """connect(self,despair) - Connects to the specified destination through a proxy. - destpar - A tuple of the IP/DNS address and the port number. - (identical to socket's connect). - To select the proxy server use setproxy(). + http_headers = [ + (b"CONNECT " + addr.encode("idna") + b":" + + str(dest_port).encode() + b" HTTP/1.1"), + b"Host: " + dest_addr.encode("idna") + ] + + if username and password: + http_headers.append(b"Proxy-Authorization: basic " + + b64encode(username + b":" + password)) + + http_headers.append(b"\r\n") + + self.sendall(b"\r\n".join(http_headers)) + + # We just need the first line to check if the connection was successful + fobj = self.makefile() + status_line = fobj.readline() + fobj.close() + + if not status_line: + raise GeneralProxyError("Connection closed unexpectedly") + + try: + proto, status_code, status_msg = status_line.split(" ", 2) + except ValueError: + raise GeneralProxyError("HTTP proxy server sent invalid response") + + if not proto.startswith("HTTP/"): + raise GeneralProxyError( + "Proxy server does not appear to be an HTTP proxy") + + try: + status_code = int(status_code) + except ValueError: + raise HTTPError( + "HTTP proxy server did not return a valid HTTP status") + + if status_code != 200: + error = "{}: {}".format(status_code, status_msg) + if status_code in (400, 403, 405): + # It's likely that the HTTP proxy server does not support the + # CONNECT tunneling method + error += ("\n[*] Note: The HTTP proxy server may not be" + " supported by PySocks (must be a CONNECT tunnel" + " proxy)") + raise HTTPError(error) + + self.proxy_sockname = (b"0.0.0.0", 0) + self.proxy_peername = addr, dest_port + + _proxy_negotiators = { + SOCKS4: _negotiate_SOCKS4, + SOCKS5: _negotiate_SOCKS5, + HTTP: _negotiate_HTTP + } + + @set_self_blocking + def connect(self, dest_pair, catch_errors=None): """ + Connects to the specified destination through a proxy. + Uses the same API as socket's connect(). + To select the proxy server, use set_proxy(). + + dest_pair - 2-tuple of (IP/hostname, port). + """ + if len(dest_pair) != 2 or dest_pair[0].startswith("["): + # Probably IPv6, not supported -- raise an error, and hope + # Happy Eyeballs (RFC6555) makes sure at least the IPv4 + # connection works... + raise socket.error("PySocks doesn't support IPv6: %s" + % str(dest_pair)) + + dest_addr, dest_port = dest_pair + + if self.type == socket.SOCK_DGRAM: + if not self._proxyconn: + self.bind(("", 0)) + dest_addr = socket.gethostbyname(dest_addr) + + # If the host address is INADDR_ANY or similar, reset the peer + # address so that packets are received from any peer + if dest_addr == "0.0.0.0" and not dest_port: + self.proxy_peername = None + else: + self.proxy_peername = (dest_addr, dest_port) + return + + (proxy_type, proxy_addr, proxy_port, rdns, username, + password) = self.proxy + # Do a minimal input check first - if (type(destpair) in (list,tuple)==False) or (len(destpair)<2) or (type(destpair[0])!=str) or (type(destpair[1])!=int): - raise GeneralProxyError((5,_generalerrors[5])) - if self.__proxy[0] == PROXY_TYPE_SOCKS5: - if self.__proxy[2] != None: - portnum = self.__proxy[2] + if (not isinstance(dest_pair, (list, tuple)) + or len(dest_pair) != 2 + or not dest_addr + or not isinstance(dest_port, int)): + # Inputs failed, raise an error + raise GeneralProxyError( + "Invalid destination-connection (host, port) pair") + + # We set the timeout here so that we don't hang in connection or during + # negotiation. + super(socksocket, self).settimeout(self._timeout) + + if proxy_type is None: + # Treat like regular socket object + self.proxy_peername = dest_pair + super(socksocket, self).settimeout(self._timeout) + super(socksocket, self).connect((dest_addr, dest_port)) + return + + proxy_addr = self._proxy_addr() + + try: + # Initial connection to proxy server. + super(socksocket, self).connect(proxy_addr) + + except socket.error as error: + # Error while connecting to proxy + self.close() + if not catch_errors: + proxy_addr, proxy_port = proxy_addr + proxy_server = "{}:{}".format(proxy_addr, proxy_port) + printable_type = PRINTABLE_PROXY_TYPES[proxy_type] + + msg = "Error connecting to {} proxy {}".format(printable_type, + proxy_server) + log.debug("%s due to: %s", msg, error) + raise ProxyConnectionError(msg, error) else: - portnum = 1080 - _orgsocket.connect(self,(self.__proxy[1],portnum)) - self.__negotiatesocks5(destpair[0],destpair[1]) - elif self.__proxy[0] == PROXY_TYPE_SOCKS4: - if self.__proxy[2] != None: - portnum = self.__proxy[2] - else: - portnum = 1080 - _orgsocket.connect(self,(self.__proxy[1],portnum)) - self.__negotiatesocks4(destpair[0],destpair[1]) - elif self.__proxy[0] == PROXY_TYPE_HTTP: - if self.__proxy[2] != None: - portnum = self.__proxy[2] - else: - portnum = 8080 - _orgsocket.connect(self,(self.__proxy[1],portnum)) - self.__negotiatehttp(destpair[0],destpair[1]) - elif self.__proxy[0] == None: - _orgsocket.connect(self,(destpair[0],destpair[1])) + raise error + else: - raise GeneralProxyError((4,_generalerrors[4])) + # Connected to proxy server, now negotiate + try: + # Calls negotiate_{SOCKS4, SOCKS5, HTTP} + negotiate = self._proxy_negotiators[proxy_type] + negotiate(self, dest_addr, dest_port) + except socket.error as error: + if not catch_errors: + # Wrap socket errors + self.close() + raise GeneralProxyError("Socket error", error) + else: + raise error + except ProxyError: + # Protocol error while negotiating with proxy + self.close() + raise + + @set_self_blocking + def connect_ex(self, dest_pair): + """ https://docs.python.org/3/library/socket.html#socket.socket.connect_ex + Like connect(address), but return an error indicator instead of raising an exception for errors returned by the C-level connect() call (other problems, such as "host not found" can still raise exceptions). + """ + try: + self.connect(dest_pair, catch_errors=True) + return 0 + except OSError as e: + # If the error is numeric (socket errors are numeric), then return number as + # connect_ex expects. Otherwise raise the error again (socket timeout for example) + if e.errno: + return e.errno + else: + raise + + def _proxy_addr(self): + """ + Return proxy address to connect to as tuple object + """ + (proxy_type, proxy_addr, proxy_port, rdns, username, + password) = self.proxy + proxy_port = proxy_port or DEFAULT_PORTS.get(proxy_type) + if not proxy_port: + raise GeneralProxyError("Invalid proxy type") + return proxy_addr, proxy_port diff --git a/src/webui/CMakeLists.txt b/src/webui/CMakeLists.txt index 9dfc12831..c82340239 100644 --- a/src/webui/CMakeLists.txt +++ b/src/webui/CMakeLists.txt @@ -13,7 +13,6 @@ add_library(qbt_webui STATIC api/torrentscontroller.h api/transfercontroller.h api/serialize/serialize_torrent.h - freediskspacechecker.h webapplication.h webui.h @@ -30,7 +29,6 @@ add_library(qbt_webui STATIC api/torrentscontroller.cpp api/transfercontroller.cpp api/serialize/serialize_torrent.cpp - freediskspacechecker.cpp webapplication.cpp webui.cpp ) diff --git a/src/webui/api/apicontroller.cpp b/src/webui/api/apicontroller.cpp index 3792029a7..ca2c318f4 100644 --- a/src/webui/api/apicontroller.cpp +++ b/src/webui/api/apicontroller.cpp @@ -32,8 +32,8 @@ #include #include +#include #include -#include #include "apierror.h" @@ -72,7 +72,7 @@ const DataMap &APIController::data() const return m_data; } -void APIController::requireParams(const QVector &requiredParams) const +void APIController::requireParams(const QList &requiredParams) const { const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend() , [this](const QString &requiredParam) diff --git a/src/webui/api/apicontroller.h b/src/webui/api/apicontroller.h index 2d29e3f2e..edcfc16fc 100644 --- a/src/webui/api/apicontroller.h +++ b/src/webui/api/apicontroller.h @@ -60,7 +60,7 @@ public: protected: const StringMap ¶ms() const; const DataMap &data() const; - void requireParams(const QVector &requiredParams) const; + void requireParams(const QList &requiredParams) const; void setResult(const QString &result); void setResult(const QJsonArray &result); diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp index 7a6fa4547..701160542 100644 --- a/src/webui/api/appcontroller.cpp +++ b/src/webui/api/appcontroller.cpp @@ -37,9 +37,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -49,6 +51,7 @@ #include "base/bittorrent/session.h" #include "base/global.h" #include "base/interfaces/iapplication.h" +#include "base/net/downloadmanager.h" #include "base/net/portforwarder.h" #include "base/net/proxyconfigurationmanager.h" #include "base/path.h" @@ -57,6 +60,7 @@ #include "base/rss/rss_session.h" #include "base/torrentfileguard.h" #include "base/torrentfileswatcher.h" +#include "base/utils/datetime.h" #include "base/utils/fs.h" #include "base/utils/misc.h" #include "base/utils/net.h" @@ -68,6 +72,12 @@ using namespace std::chrono_literals; +const QString KEY_COOKIE_NAME = u"name"_s; +const QString KEY_COOKIE_DOMAIN = u"domain"_s; +const QString KEY_COOKIE_PATH = u"path"_s; +const QString KEY_COOKIE_VALUE = u"value"_s; +const QString KEY_COOKIE_EXPIRATION_DATE = u"expirationDate"_s; + void AppController::webapiVersionAction() { setResult(API_VERSION.toString()); @@ -126,6 +136,9 @@ void AppController::preferencesAction() // Language data[u"locale"_s] = pref->getLocale(); data[u"performance_warning"_s] = session->isPerformanceWarningEnabled(); + data[u"status_bar_external_ip"_s] = pref->isStatusbarExternalIPDisplayed(); + // Transfer List + data[u"confirm_torrent_deletion"_s] = pref->confirmTorrentDeletion(); // Log file data[u"file_log_enabled"_s] = app()->isFileLoggerEnabled(); data[u"file_log_path"_s] = app()->fileLoggerPath().toString(); @@ -135,7 +148,7 @@ void AppController::preferencesAction() data[u"file_log_age"_s] = app()->fileLoggerAge(); data[u"file_log_age_type"_s] = app()->fileLoggerAgeType(); // Delete torrent contents files on torrent removal - data[u"delete_torrent_content_files"_s] = pref->deleteTorrentFilesAsDefault(); + data[u"delete_torrent_content_files"_s] = pref->removeTorrentContent(); // Downloads // When adding a torrent @@ -294,6 +307,9 @@ void AppController::preferencesAction() // Add trackers data[u"add_trackers_enabled"_s] = session->isAddTrackersEnabled(); data[u"add_trackers"_s] = session->additionalTrackers(); + data[u"add_trackers_from_url_enabled"_s] = session->isAddTrackersFromURLEnabled(); + data[u"add_trackers_url"_s] = session->additionalTrackersURL(); + data[u"add_trackers_url_list"_s] = session->additionalTrackersFromURL(); // WebUI // HTTP Server @@ -349,6 +365,8 @@ void AppController::preferencesAction() // qBitorrent preferences // Resume data storage type data[u"resume_data_storage_type"_s] = Utils::String::fromEnum(session->resumeDataStorageType()); + // Torrent content removing mode + data[u"torrent_content_remove_option"_s] = Utils::String::fromEnum(session->torrentContentRemoveOption()); // Physical memory (RAM) usage limit data[u"memory_working_set_limit"_s] = app()->memoryWorkingSetLimit(); // Current network interface @@ -359,8 +377,12 @@ void AppController::preferencesAction() data[u"current_interface_address"_s] = session->networkInterfaceAddress(); // Save resume data interval data[u"save_resume_data_interval"_s] = session->saveResumeDataInterval(); + // Save statistics interval + data[u"save_statistics_interval"_s] = static_cast(session->saveStatisticsInterval().count()); // .torrent file size limit data[u"torrent_file_size_limit"_s] = pref->getTorrentFileSizeLimit(); + // Confirm torrent recheck + data[u"confirm_torrent_recheck"_s] = pref->confirmTorrentRecheck(); // Recheck completed torrents data[u"recheck_completed_torrents"_s] = pref->recheckTorrentsOnCompletion(); // Customize application instance name @@ -371,6 +393,16 @@ void AppController::preferencesAction() data[u"resolve_peer_countries"_s] = pref->resolvePeerCountries(); // Reannounce to all trackers when ip/port changed data[u"reannounce_when_address_changed"_s] = session->isReannounceWhenAddressChangedEnabled(); + // Embedded tracker + data[u"enable_embedded_tracker"_s] = session->isTrackerEnabled(); + data[u"embedded_tracker_port"_s] = pref->getTrackerPort(); + data[u"embedded_tracker_port_forwarding"_s] = pref->isTrackerPortForwardingEnabled(); + // Mark-of-the-Web + data[u"mark_of_the_web"_s] = pref->isMarkOfTheWebEnabled(); + // Ignore SSL errors + data[u"ignore_ssl_errors"_s] = pref->isIgnoreSSLErrors(); + // Python executable path + data[u"python_executable_path"_s] = pref->getPythonExecutablePath().toString(); // libtorrent preferences // Bdecode depth limit @@ -423,6 +455,8 @@ void AppController::preferencesAction() data[u"peer_tos"_s] = session->peerToS(); // uTP-TCP mixed mode data[u"utp_tcp_mixed_mode"_s] = static_cast(session->utpMixedMode()); + // Hostname resolver cache TTL + data[u"hostname_cache_ttl"_s] = session->hostnameCacheTTL(); // Support internationalized domain name (IDN) data[u"idn_support_enabled"_s] = session->isIDNSupportEnabled(); // Multiple connections per IP @@ -433,14 +467,6 @@ void AppController::preferencesAction() data[u"ssrf_mitigation"_s] = session->isSSRFMitigationEnabled(); // Disallow connection to peers on privileged ports data[u"block_peers_on_privileged_ports"_s] = session->blockPeersOnPrivilegedPorts(); - // Embedded tracker - data[u"enable_embedded_tracker"_s] = session->isTrackerEnabled(); - data[u"embedded_tracker_port"_s] = pref->getTrackerPort(); - data[u"embedded_tracker_port_forwarding"_s] = pref->isTrackerPortForwardingEnabled(); - // Mark-of-the-Web - data[u"mark_of_the_web"_s] = pref->isMarkOfTheWebEnabled(); - // Python executable path - data[u"python_executable_path"_s] = pref->getPythonExecutablePath().toString(); // Choking algorithm data[u"upload_slots_behavior"_s] = static_cast(session->chokingAlgorithm()); // Seed choking algorithm @@ -449,6 +475,7 @@ void AppController::preferencesAction() data[u"announce_to_all_trackers"_s] = session->announceToAllTrackers(); data[u"announce_to_all_tiers"_s] = session->announceToAllTiers(); data[u"announce_ip"_s] = session->announceIP(); + data[u"announce_port"_s] = session->announcePort(); data[u"max_concurrent_http_announces"_s] = session->maxConcurrentHTTPAnnounces(); data[u"stop_tracker_timeout"_s] = session->stopTrackerTimeout(); // Peer Turnover @@ -474,7 +501,7 @@ void AppController::setPreferencesAction() QVariantHash::ConstIterator it; const auto hasKey = [&it, &m](const QString &key) -> bool { - it = m.find(key); + it = m.constFind(key); return (it != m.constEnd()); }; @@ -499,8 +526,13 @@ void AppController::setPreferencesAction() pref->setLocale(locale); } } + if (hasKey(u"status_bar_external_ip"_s)) + pref->setStatusbarExternalIPDisplayed(it.value().toBool()); if (hasKey(u"performance_warning"_s)) session->setPerformanceWarningEnabled(it.value().toBool()); + // Transfer List + if (hasKey(u"confirm_torrent_deletion"_s)) + pref->setConfirmTorrentDeletion(it.value().toBool()); // Log file if (hasKey(u"file_log_enabled"_s)) app()->setFileLoggerEnabled(it.value().toBool()); @@ -518,7 +550,7 @@ void AppController::setPreferencesAction() app()->setFileLoggerAgeType(it.value().toInt()); // Delete torrent content files on torrent removal if (hasKey(u"delete_torrent_content_files"_s)) - pref->setDeleteTorrentFilesAsDefault(it.value().toBool()); + pref->setRemoveTorrentContent(it.value().toBool()); // Downloads // When adding a torrent @@ -754,10 +786,12 @@ void AppController::setPreferencesAction() // Scheduling if (hasKey(u"scheduler_enabled"_s)) session->setBandwidthSchedulerEnabled(it.value().toBool()); - if (m.contains(u"schedule_from_hour"_s) && m.contains(u"schedule_from_min"_s)) - pref->setSchedulerStartTime(QTime(m[u"schedule_from_hour"_s].toInt(), m[u"schedule_from_min"_s].toInt())); - if (m.contains(u"schedule_to_hour"_s) && m.contains(u"schedule_to_min"_s)) - pref->setSchedulerEndTime(QTime(m[u"schedule_to_hour"_s].toInt(), m[u"schedule_to_min"_s].toInt())); + if (const auto hourIter = m.constFind(u"schedule_from_hour"_s), minIter = m.constFind(u"schedule_from_min"_s) + ; (hourIter != m.constEnd()) && (minIter != m.constEnd())) + pref->setSchedulerStartTime({hourIter.value().toInt(), minIter.value().toInt()}); + if (const auto hourIter = m.constFind(u"schedule_to_hour"_s), minIter = m.constFind(u"schedule_to_min"_s) + ; (hourIter != m.constEnd()) && (minIter != m.constEnd())) + pref->setSchedulerEndTime({hourIter.value().toInt(), minIter.value().toInt()}); if (hasKey(u"scheduler_days"_s)) pref->setSchedulerDays(static_cast(it.value().toInt())); @@ -794,25 +828,18 @@ void AppController::setPreferencesAction() if (hasKey(u"slow_torrent_inactive_timer"_s)) session->setSlowTorrentsInactivityTimer(it.value().toInt()); // Share Ratio Limiting - if (hasKey(u"max_ratio_enabled"_s)) - { - if (it.value().toBool()) - session->setGlobalMaxRatio(m[u"max_ratio"_s].toReal()); - else - session->setGlobalMaxRatio(-1); - } - if (hasKey(u"max_seeding_time_enabled"_s)) - { - if (it.value().toBool()) - session->setGlobalMaxSeedingMinutes(m[u"max_seeding_time"_s].toInt()); - else - session->setGlobalMaxSeedingMinutes(-1); - } - if (hasKey(u"max_inactive_seeding_time_enabled"_s)) - { - session->setGlobalMaxInactiveSeedingMinutes(it.value().toBool() - ? m[u"max_inactive_seeding_time"_s].toInt() : -1); - } + if (hasKey(u"max_ratio_enabled"_s) && !it.value().toBool()) + session->setGlobalMaxRatio(-1); + else if (hasKey(u"max_ratio"_s)) + session->setGlobalMaxRatio(it.value().toReal()); + if (hasKey(u"max_seeding_time_enabled"_s) && !it.value().toBool()) + session->setGlobalMaxSeedingMinutes(-1); + else if (hasKey(u"max_seeding_time"_s)) + session->setGlobalMaxSeedingMinutes(it.value().toInt()); + if (hasKey(u"max_inactive_seeding_time_enabled"_s) && !it.value().toBool()) + session->setGlobalMaxInactiveSeedingMinutes(-1); + else if (hasKey(u"max_inactive_seeding_time"_s)) + session->setGlobalMaxInactiveSeedingMinutes(it.value().toInt()); if (hasKey(u"max_ratio_act"_s)) { switch (it.value().toInt()) @@ -837,6 +864,10 @@ void AppController::setPreferencesAction() session->setAddTrackersEnabled(it.value().toBool()); if (hasKey(u"add_trackers"_s)) session->setAdditionalTrackers(it.value().toString()); + if (hasKey(u"add_trackers_from_url_enabled"_s)) + session->setAddTrackersFromURLEnabled(it.value().toBool()); + if (hasKey(u"add_trackers_url"_s)) + session->setAdditionalTrackersURL(it.value().toString()); // WebUI // HTTP Server @@ -930,6 +961,9 @@ void AppController::setPreferencesAction() // Resume data storage type if (hasKey(u"resume_data_storage_type"_s)) session->setResumeDataStorageType(Utils::String::toEnum(it.value().toString(), BitTorrent::ResumeDataStorageType::Legacy)); + // Torrent content removing mode + if (hasKey(u"torrent_content_remove_option"_s)) + session->setTorrentContentRemoveOption(Utils::String::toEnum(it.value().toString(), BitTorrent::TorrentContentRemoveOption::MoveToTrash)); // Physical memory (RAM) usage limit if (hasKey(u"memory_working_set_limit"_s)) app()->setMemoryWorkingSetLimit(it.value().toInt()); @@ -943,7 +977,7 @@ void AppController::setPreferencesAction() { return (!iface.addressEntries().isEmpty()) && (iface.name() == ifaceValue); }); - const QString ifaceName = (ifacesIter != ifaces.cend()) ? ifacesIter->humanReadableName() : QString {}; + const QString ifaceName = (ifacesIter != ifaces.cend()) ? ifacesIter->humanReadableName() : QString(); session->setNetworkInterface(ifaceValue); if (!ifaceName.isEmpty() || ifaceValue.isEmpty()) @@ -953,14 +987,20 @@ void AppController::setPreferencesAction() if (hasKey(u"current_interface_address"_s)) { const QHostAddress ifaceAddress {it.value().toString().trimmed()}; - session->setNetworkInterfaceAddress(ifaceAddress.isNull() ? QString {} : ifaceAddress.toString()); + session->setNetworkInterfaceAddress(ifaceAddress.isNull() ? QString() : ifaceAddress.toString()); } // Save resume data interval if (hasKey(u"save_resume_data_interval"_s)) session->setSaveResumeDataInterval(it.value().toInt()); + // Save statistics interval + if (hasKey(u"save_statistics_interval"_s)) + session->setSaveStatisticsInterval(std::chrono::minutes(it.value().toInt())); // .torrent file size limit if (hasKey(u"torrent_file_size_limit"_s)) pref->setTorrentFileSizeLimit(it.value().toLongLong()); + // Confirm torrent recheck + if (hasKey(u"confirm_torrent_recheck"_s)) + pref->setConfirmTorrentRecheck(it.value().toBool()); // Recheck completed torrents if (hasKey(u"recheck_completed_torrents"_s)) pref->recheckTorrentsOnCompletion(it.value().toBool()); @@ -976,6 +1016,22 @@ void AppController::setPreferencesAction() // Reannounce to all trackers when ip/port changed if (hasKey(u"reannounce_when_address_changed"_s)) session->setReannounceWhenAddressChangedEnabled(it.value().toBool()); + // Embedded tracker + if (hasKey(u"embedded_tracker_port"_s)) + pref->setTrackerPort(it.value().toInt()); + if (hasKey(u"embedded_tracker_port_forwarding"_s)) + pref->setTrackerPortForwardingEnabled(it.value().toBool()); + if (hasKey(u"enable_embedded_tracker"_s)) + session->setTrackerEnabled(it.value().toBool()); + // Mark-of-the-Web + if (hasKey(u"mark_of_the_web"_s)) + pref->setMarkOfTheWebEnabled(it.value().toBool()); + // Ignore SLL errors + if (hasKey(u"ignore_ssl_errors"_s)) + pref->setIgnoreSSLErrors(it.value().toBool()); + // Python executable path + if (hasKey(u"python_executable_path"_s)) + pref->setPythonExecutablePath(Path(it.value().toString())); // libtorrent preferences // Bdecode depth limit @@ -1055,6 +1111,9 @@ void AppController::setPreferencesAction() // uTP-TCP mixed mode if (hasKey(u"utp_tcp_mixed_mode"_s)) session->setUtpMixedMode(static_cast(it.value().toInt())); + // Hostname resolver cache TTL + if (hasKey(u"hostname_cache_ttl"_s)) + session->setHostnameCacheTTL(it.value().toInt()); // Support internationalized domain name (IDN) if (hasKey(u"idn_support_enabled"_s)) session->setIDNSupportEnabled(it.value().toBool()); @@ -1070,19 +1129,6 @@ void AppController::setPreferencesAction() // Disallow connection to peers on privileged ports if (hasKey(u"block_peers_on_privileged_ports"_s)) session->setBlockPeersOnPrivilegedPorts(it.value().toBool()); - // Embedded tracker - if (hasKey(u"embedded_tracker_port"_s)) - pref->setTrackerPort(it.value().toInt()); - if (hasKey(u"embedded_tracker_port_forwarding"_s)) - pref->setTrackerPortForwardingEnabled(it.value().toBool()); - if (hasKey(u"enable_embedded_tracker"_s)) - session->setTrackerEnabled(it.value().toBool()); - // Mark-of-the-Web - if (hasKey(u"mark_of_the_web"_s)) - pref->setMarkOfTheWebEnabled(it.value().toBool()); - // Python executable path - if (hasKey(u"python_executable_path"_s)) - pref->setPythonExecutablePath(Path(it.value().toString())); // Choking algorithm if (hasKey(u"upload_slots_behavior"_s)) session->setChokingAlgorithm(static_cast(it.value().toInt())); @@ -1097,8 +1143,10 @@ void AppController::setPreferencesAction() if (hasKey(u"announce_ip"_s)) { const QHostAddress announceAddr {it.value().toString().trimmed()}; - session->setAnnounceIP(announceAddr.isNull() ? QString {} : announceAddr.toString()); + session->setAnnounceIP(announceAddr.isNull() ? QString() : announceAddr.toString()); } + if (hasKey(u"announce_port"_s)) + session->setAnnouncePort(it.value().toInt()); if (hasKey(u"max_concurrent_http_announces"_s)) session->setMaxConcurrentHTTPAnnounces(it.value().toInt()); if (hasKey(u"stop_tracker_timeout"_s)) @@ -1159,8 +1207,68 @@ void AppController::getDirectoryContentAction() throw APIError(APIErrorType::BadParams, tr("Invalid mode, allowed values: %1").arg(u"all, dirs, files"_s)); }; - const QStringList dirs = dir.entryList(QDir::NoDotAndDotDot | parseDirectoryContentMode(visibility)); - setResult(QJsonArray::fromStringList(dirs)); + QJsonArray ret; + QDirIterator it {dirPath, (QDir::NoDotAndDotDot | parseDirectoryContentMode(visibility))}; + while (it.hasNext()) + ret.append(it.next()); + setResult(ret); +} + +void AppController::cookiesAction() +{ + const QList cookies = Net::DownloadManager::instance()->allCookies(); + QJsonArray ret; + for (const QNetworkCookie &cookie : cookies) + { + ret << QJsonObject { + {KEY_COOKIE_NAME, QString::fromLatin1(cookie.name())}, + {KEY_COOKIE_DOMAIN, cookie.domain()}, + {KEY_COOKIE_PATH, cookie.path()}, + {KEY_COOKIE_VALUE, QString::fromLatin1(cookie.value())}, + {KEY_COOKIE_EXPIRATION_DATE, Utils::DateTime::toSecsSinceEpoch(cookie.expirationDate())}, + }; + } + + setResult(ret); +} + +void AppController::setCookiesAction() +{ + requireParams({u"cookies"_s}); + const QString cookiesParam {params()[u"cookies"_s].trimmed()}; + + QJsonParseError jsonError; + const auto cookiesJsonDocument = QJsonDocument::fromJson(cookiesParam.toUtf8(), &jsonError); + if (jsonError.error != QJsonParseError::NoError) + throw APIError(APIErrorType::BadParams, jsonError.errorString()); + if (!cookiesJsonDocument.isArray()) + throw APIError(APIErrorType::BadParams, tr("cookies must be array")); + + const QJsonArray cookiesJsonArr = cookiesJsonDocument.array(); + QList cookies; + cookies.reserve(cookiesJsonArr.size()); + for (const QJsonValue &jsonVal : cookiesJsonArr) + { + if (!jsonVal.isObject()) + throw APIError(APIErrorType::BadParams); + + QNetworkCookie cookie; + const QJsonObject jsonObj = jsonVal.toObject(); + if (jsonObj.contains(KEY_COOKIE_NAME)) + cookie.setName(jsonObj.value(KEY_COOKIE_NAME).toString().toLatin1()); + if (jsonObj.contains(KEY_COOKIE_DOMAIN)) + cookie.setDomain(jsonObj.value(KEY_COOKIE_DOMAIN).toString()); + if (jsonObj.contains(KEY_COOKIE_PATH)) + cookie.setPath(jsonObj.value(KEY_COOKIE_PATH).toString()); + if (jsonObj.contains(KEY_COOKIE_VALUE)) + cookie.setValue(jsonObj.value(KEY_COOKIE_VALUE).toString().toUtf8()); + if (jsonObj.contains(KEY_COOKIE_EXPIRATION_DATE)) + cookie.setExpirationDate(QDateTime::fromSecsSinceEpoch(jsonObj.value(KEY_COOKIE_EXPIRATION_DATE).toInteger())); + + cookies << cookie; + } + + Net::DownloadManager::instance()->setAllCookies(cookies); } void AppController::networkInterfaceListAction() diff --git a/src/webui/api/appcontroller.h b/src/webui/api/appcontroller.h index 432c9f1f5..dea33eada 100644 --- a/src/webui/api/appcontroller.h +++ b/src/webui/api/appcontroller.h @@ -50,6 +50,8 @@ private slots: void defaultSavePathAction(); void sendTestEmailAction(); void getDirectoryContentAction(); + void cookiesAction(); + void setCookiesAction(); void networkInterfaceListAction(); void networkInterfaceAddressListAction(); diff --git a/src/webui/api/authcontroller.cpp b/src/webui/api/authcontroller.cpp index eb1d1baf2..5c308a62e 100644 --- a/src/webui/api/authcontroller.cpp +++ b/src/webui/api/authcontroller.cpp @@ -103,8 +103,8 @@ void AuthController::logoutAction() const bool AuthController::isBanned() const { - const auto failedLoginIter = m_clientFailedLogins.find(m_sessionManager->clientId()); - if (failedLoginIter == m_clientFailedLogins.end()) + const auto failedLoginIter = m_clientFailedLogins.constFind(m_sessionManager->clientId()); + if (failedLoginIter == m_clientFailedLogins.cend()) return false; bool isBanned = (failedLoginIter->banTimer.remainingTime() >= 0); diff --git a/src/webui/api/logcontroller.cpp b/src/webui/api/logcontroller.cpp index 22d157444..b5a36b3e4 100644 --- a/src/webui/api/logcontroller.cpp +++ b/src/webui/api/logcontroller.cpp @@ -30,7 +30,7 @@ #include #include -#include +#include #include "base/global.h" #include "base/logger.h" diff --git a/src/webui/api/rsscontroller.cpp b/src/webui/api/rsscontroller.cpp index f3cd11bba..d4308db46 100644 --- a/src/webui/api/rsscontroller.cpp +++ b/src/webui/api/rsscontroller.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include "base/rss/rss_article.h" #include "base/rss/rss_autodownloader.h" @@ -49,8 +49,8 @@ void RSSController::addFolderAction() { requireParams({u"path"_s}); - const QString path = params()[u"path"_s].trimmed(); - const nonstd::expected result = RSS::Session::instance()->addFolder(path); + const QString path = params()[u"path"_s]; + const nonstd::expected result = RSS::Session::instance()->addFolder(path); if (!result) throw APIError(APIErrorType::Conflict, result.error()); } @@ -59,9 +59,10 @@ void RSSController::addFeedAction() { requireParams({u"url"_s, u"path"_s}); - const QString url = params()[u"url"_s].trimmed(); - const QString path = params()[u"path"_s].trimmed(); - const nonstd::expected result = RSS::Session::instance()->addFeed(url, (path.isEmpty() ? url : path)); + const QString url = params()[u"url"_s]; + const QString path = params()[u"path"_s]; + const auto refreshInterval = std::max(params()[u"refreshInterval"_s].toLongLong(), 0); + const nonstd::expected result = RSS::Session::instance()->addFeed(url, (path.isEmpty() ? url : path), std::chrono::seconds(refreshInterval)); if (!result) throw APIError(APIErrorType::Conflict, result.error()); } @@ -70,18 +71,35 @@ void RSSController::setFeedURLAction() { requireParams({u"path"_s, u"url"_s}); - const QString path = params()[u"path"_s].trimmed(); - const QString url = params()[u"url"_s].trimmed(); + const QString path = params()[u"path"_s]; + const QString url = params()[u"url"_s]; const nonstd::expected result = RSS::Session::instance()->setFeedURL(path, url); if (!result) throw APIError(APIErrorType::Conflict, result.error()); } +void RSSController::setFeedRefreshIntervalAction() +{ + requireParams({u"path"_s, u"refreshInterval"_s}); + + bool ok = false; + const auto refreshInterval = params()[u"refreshInterval"_s].toLongLong(&ok); + if (!ok || (refreshInterval < 0)) + throw APIError(APIErrorType::BadParams, tr("Invalid 'refreshInterval' value")); + + const QString path = params()[u"path"_s]; + auto *feed = qobject_cast(RSS::Session::instance()->itemByPath(path)); + if (!feed) + throw APIError(APIErrorType::Conflict, tr("Feed doesn't exist: %1.").arg(path)); + + feed->setRefreshInterval(std::chrono::seconds(refreshInterval)); +} + void RSSController::removeItemAction() { requireParams({u"path"_s}); - const QString path = params()[u"path"_s].trimmed(); + const QString path = params()[u"path"_s]; const nonstd::expected result = RSS::Session::instance()->removeItem(path); if (!result) throw APIError(APIErrorType::Conflict, result.error()); @@ -91,8 +109,8 @@ void RSSController::moveItemAction() { requireParams({u"itemPath"_s, u"destPath"_s}); - const QString itemPath = params()[u"itemPath"_s].trimmed(); - const QString destPath = params()[u"destPath"_s].trimmed(); + const QString itemPath = params()[u"itemPath"_s]; + const QString destPath = params()[u"destPath"_s]; const nonstd::expected result = RSS::Session::instance()->moveItem(itemPath, destPath); if (!result) throw APIError(APIErrorType::Conflict, result.error()); @@ -146,8 +164,8 @@ void RSSController::setRuleAction() { requireParams({u"ruleName"_s, u"ruleDef"_s}); - const QString ruleName {params()[u"ruleName"_s].trimmed()}; - const QByteArray ruleDef {params()[u"ruleDef"_s].trimmed().toUtf8()}; + const QString ruleName {params()[u"ruleName"_s]}; + const QByteArray ruleDef {params()[u"ruleDef"_s].toUtf8()}; const auto jsonObj = QJsonDocument::fromJson(ruleDef).object(); RSS::AutoDownloader::instance()->setRule(RSS::AutoDownloadRule::fromJsonObject(jsonObj, ruleName)); @@ -157,8 +175,8 @@ void RSSController::renameRuleAction() { requireParams({u"ruleName"_s, u"newRuleName"_s}); - const QString ruleName {params()[u"ruleName"_s].trimmed()}; - const QString newRuleName {params()[u"newRuleName"_s].trimmed()}; + const QString ruleName {params()[u"ruleName"_s]}; + const QString newRuleName {params()[u"newRuleName"_s]}; RSS::AutoDownloader::instance()->renameRule(ruleName, newRuleName); } @@ -167,7 +185,7 @@ void RSSController::removeRuleAction() { requireParams({u"ruleName"_s}); - const QString ruleName {params()[u"ruleName"_s].trimmed()}; + const QString ruleName {params()[u"ruleName"_s]}; RSS::AutoDownloader::instance()->removeRule(ruleName); } diff --git a/src/webui/api/rsscontroller.h b/src/webui/api/rsscontroller.h index 0d10ba5c5..9c9e5f1fd 100644 --- a/src/webui/api/rsscontroller.h +++ b/src/webui/api/rsscontroller.h @@ -42,6 +42,7 @@ private slots: void addFolderAction(); void addFeedAction(); void setFeedURLAction(); + void setFeedRefreshIntervalAction(); void removeItemAction(); void moveItemAction(); void itemsAction(); diff --git a/src/webui/api/searchcontroller.cpp b/src/webui/api/searchcontroller.cpp index b954da119..d7b0c9786 100644 --- a/src/webui/api/searchcontroller.cpp +++ b/src/webui/api/searchcontroller.cpp @@ -131,8 +131,8 @@ void SearchController::stopAction() const int id = params()[u"id"_s].toInt(); - const auto iter = m_searchHandlers.find(id); - if (iter == m_searchHandlers.end()) + const auto iter = m_searchHandlers.constFind(id); + if (iter == m_searchHandlers.cend()) throw APIError(APIErrorType::NotFound); const std::shared_ptr &searchHandler = iter.value(); @@ -176,8 +176,8 @@ void SearchController::resultsAction() int limit = params()[u"limit"_s].toInt(); int offset = params()[u"offset"_s].toInt(); - const auto iter = m_searchHandlers.find(id); - if (iter == m_searchHandlers.end()) + const auto iter = m_searchHandlers.constFind(id); + if (iter == m_searchHandlers.cend()) throw APIError(APIErrorType::NotFound); const std::shared_ptr &searchHandler = iter.value(); @@ -207,8 +207,8 @@ void SearchController::deleteAction() const int id = params()[u"id"_s].toInt(); - const auto iter = m_searchHandlers.find(id); - if (iter == m_searchHandlers.end()) + const auto iter = m_searchHandlers.constFind(id); + if (iter == m_searchHandlers.cend()) throw APIError(APIErrorType::NotFound); const std::shared_ptr &searchHandler = iter.value(); diff --git a/src/webui/api/serialize/serialize_torrent.cpp b/src/webui/api/serialize/serialize_torrent.cpp index 8883f4b82..bc75a7698 100644 --- a/src/webui/api/serialize/serialize_torrent.cpp +++ b/src/webui/api/serialize/serialize_torrent.cpp @@ -29,7 +29,7 @@ #include "serialize_torrent.h" #include -#include +#include #include "base/bittorrent/infohash.h" #include "base/bittorrent/torrent.h" @@ -104,7 +104,7 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent) const qlonglong timeSinceActivity = torrent.timeSinceActivity(); return (timeSinceActivity < 0) ? Utils::DateTime::toSecsSinceEpoch(torrent.addedTime()) - : (QDateTime::currentDateTime().toSecsSinceEpoch() - timeSinceActivity); + : (QDateTime::currentSecsSinceEpoch() - timeSinceActivity); }; return { @@ -135,6 +135,7 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent) {KEY_TORRENT_SAVE_PATH, torrent.savePath().toString()}, {KEY_TORRENT_DOWNLOAD_PATH, torrent.downloadPath().toString()}, {KEY_TORRENT_CONTENT_PATH, torrent.contentPath().toString()}, + {KEY_TORRENT_ROOT_PATH, torrent.rootPath().toString()}, {KEY_TORRENT_ADDED_ON, Utils::DateTime::toSecsSinceEpoch(torrent.addedTime())}, {KEY_TORRENT_COMPLETION_ON, Utils::DateTime::toSecsSinceEpoch(torrent.completedTime())}, {KEY_TORRENT_TRACKER, torrent.currentTracker()}, @@ -163,8 +164,8 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent) {KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()}, {KEY_TORRENT_REANNOUNCE, torrent.nextAnnounce()}, {KEY_TORRENT_COMMENT, torrent.comment()}, - {KEY_TORRENT_ISPRIVATE, torrent.isPrivate()}, - - {KEY_TORRENT_TOTAL_SIZE, torrent.totalSize()} + {KEY_TORRENT_PRIVATE, (torrent.hasMetadata() ? torrent.isPrivate() : QVariant())}, + {KEY_TORRENT_TOTAL_SIZE, torrent.totalSize()}, + {KEY_TORRENT_HAS_METADATA, torrent.hasMetadata()} }; } diff --git a/src/webui/api/serialize/serialize_torrent.h b/src/webui/api/serialize/serialize_torrent.h index ee9d20ab7..883efa6dd 100644 --- a/src/webui/api/serialize/serialize_torrent.h +++ b/src/webui/api/serialize/serialize_torrent.h @@ -66,6 +66,7 @@ inline const QString KEY_TORRENT_FORCE_START = u"force_start"_s; inline const QString KEY_TORRENT_SAVE_PATH = u"save_path"_s; inline const QString KEY_TORRENT_DOWNLOAD_PATH = u"download_path"_s; inline const QString KEY_TORRENT_CONTENT_PATH = u"content_path"_s; +inline const QString KEY_TORRENT_ROOT_PATH = u"root_path"_s; inline const QString KEY_TORRENT_ADDED_ON = u"added_on"_s; inline const QString KEY_TORRENT_COMPLETION_ON = u"completion_on"_s; inline const QString KEY_TORRENT_TRACKER = u"tracker"_s; @@ -93,6 +94,7 @@ inline const QString KEY_TORRENT_SEEDING_TIME = u"seeding_time"_s; inline const QString KEY_TORRENT_AVAILABILITY = u"availability"_s; inline const QString KEY_TORRENT_REANNOUNCE = u"reannounce"_s; inline const QString KEY_TORRENT_COMMENT = u"comment"_s; -inline const QString KEY_TORRENT_ISPRIVATE = u"is_private"_s; +inline const QString KEY_TORRENT_PRIVATE = u"private"_s; +inline const QString KEY_TORRENT_HAS_METADATA = u"has_metadata"_s; QVariantMap serialize(const BitTorrent::Torrent &torrent); diff --git a/src/webui/api/synccontroller.cpp b/src/webui/api/synccontroller.cpp index 99330ed59..222b066aa 100644 --- a/src/webui/api/synccontroller.cpp +++ b/src/webui/api/synccontroller.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2018-2023 Vladimir Golovnev + * Copyright (C) 2018-2024 Vladimir Golovnev * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,8 +28,6 @@ #include "synccontroller.h" -#include - #include #include #include @@ -87,6 +85,8 @@ namespace const QString KEY_TRANSFER_DLRATELIMIT = u"dl_rate_limit"_s; const QString KEY_TRANSFER_DLSPEED = u"dl_info_speed"_s; const QString KEY_TRANSFER_FREESPACEONDISK = u"free_space_on_disk"_s; + const QString KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V4 = u"last_external_address_v4"_s; + const QString KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V6 = u"last_external_address_v6"_s; const QString KEY_TRANSFER_UPDATA = u"up_info_data"_s; const QString KEY_TRANSFER_UPRATELIMIT = u"up_rate_limit"_s; const QString KEY_TRANSFER_UPSPEED = u"up_info_speed"_s; @@ -119,9 +119,9 @@ namespace const QString KEY_FULL_UPDATE = u"full_update"_s; const QString KEY_RESPONSE_ID = u"rid"_s; - void processMap(const QVariantMap &prevData, const QVariantMap &data, QVariantMap &syncData); - void processHash(QVariantHash prevData, const QVariantHash &data, QVariantMap &syncData, QVariantList &removedItems); - void processList(QVariantList prevData, const QVariantList &data, QVariantList &syncData, QVariantList &removedItems); + QVariantMap processMap(const QVariantMap &prevData, const QVariantMap &data); + std::pair processHash(QVariantHash prevData, const QVariantHash &data); + std::pair processList(QVariantList prevData, const QVariantList &data); QJsonObject generateSyncData(int acceptedResponseId, const QVariantMap &data, QVariantMap &lastAcceptedData, QVariantMap &lastData); QVariantMap getTransferInfo() @@ -161,6 +161,8 @@ namespace map[KEY_TRANSFER_AVERAGE_TIME_QUEUE] = cacheStatus.averageJobTime; map[KEY_TRANSFER_TOTAL_QUEUED_SIZE] = cacheStatus.queuedBytes; + map[KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V4] = session->lastExternalIPv4Address(); + map[KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V6] = session->lastExternalIPv6Address(); map[KEY_TRANSFER_DHT_NODES] = sessionStatus.dhtNodes; map[KEY_TRANSFER_CONNECTION_STATUS] = session->isListening() ? (sessionStatus.hasIncomingConnections ? u"connected"_s : u"firewalled"_s) @@ -171,31 +173,28 @@ namespace // Compare two structures (prevData, data) and calculate difference (syncData). // Structures encoded as map. - void processMap(const QVariantMap &prevData, const QVariantMap &data, QVariantMap &syncData) + QVariantMap processMap(const QVariantMap &prevData, const QVariantMap &data) { // initialize output variable - syncData.clear(); + QVariantMap syncData; for (auto i = data.cbegin(); i != data.cend(); ++i) { const QString &key = i.key(); const QVariant &value = i.value(); - QVariantList removedItems; switch (value.userType()) { case QMetaType::QVariantMap: { - QVariantMap map; - processMap(prevData[key].toMap(), value.toMap(), map); + const QVariantMap map = processMap(prevData[key].toMap(), value.toMap()); if (!map.isEmpty()) syncData[key] = map; } break; case QMetaType::QVariantHash: { - QVariantMap map; - processHash(prevData[key].toHash(), value.toHash(), map, removedItems); + const auto [map, removedItems] = processHash(prevData[key].toHash(), value.toHash()); if (!map.isEmpty()) syncData[key] = map; if (!removedItems.isEmpty()) @@ -204,8 +203,7 @@ namespace break; case QMetaType::QVariantList: { - QVariantList list; - processList(prevData[key].toList(), value.toList(), list, removedItems); + const auto [list, removedItems] = processList(prevData[key].toList(), value.toList()); if (!list.isEmpty()) syncData[key] = list; if (!removedItems.isEmpty()) @@ -222,26 +220,28 @@ namespace case QMetaType::UInt: case QMetaType::QDateTime: case QMetaType::Nullptr: + case QMetaType::UnknownType: if (prevData[key] != value) syncData[key] = value; break; default: Q_ASSERT_X(false, "processMap" - , u"Unexpected type: %1"_s - .arg(QString::fromLatin1(value.metaType().name())) - .toUtf8().constData()); + , u"Unexpected type: %1"_s.arg(QString::fromLatin1(value.metaType().name())) + .toUtf8().constData()); } } + + return syncData; } // Compare two lists of structures (prevData, data) and calculate difference (syncData, removedItems). // Structures encoded as map. // Lists are encoded as hash table (indexed by structure key value) to improve ease of searching for removed items. - void processHash(QVariantHash prevData, const QVariantHash &data, QVariantMap &syncData, QVariantList &removedItems) + std::pair processHash(QVariantHash prevData, const QVariantHash &data) { // initialize output variables - syncData.clear(); - removedItems.clear(); + std::pair result; + auto &[syncData, removedItems] = result; if (prevData.isEmpty()) { @@ -263,8 +263,7 @@ namespace } else { - QVariantMap map; - processMap(prevData[i.key()].toMap(), i.value().toMap(), map); + const QVariantMap map = processMap(prevData[i.key()].toMap(), i.value().toMap()); // existing list item found - remove it from prevData prevData.remove(i.key()); if (!map.isEmpty()) @@ -282,9 +281,7 @@ namespace } else { - QVariantList list; - QVariantList removedList; - processList(prevData[i.key()].toList(), i.value().toList(), list, removedList); + const auto [list, removedList] = processList(prevData[i.key()].toList(), i.value().toList()); // existing list item found - remove it from prevData prevData.remove(i.key()); if (!list.isEmpty() || !removedList.isEmpty()) @@ -295,7 +292,7 @@ namespace } break; default: - Q_ASSERT(false); + Q_UNREACHABLE(); break; } } @@ -308,14 +305,16 @@ namespace removedItems << i.key(); } } + + return result; } // Compare two lists of simple value (prevData, data) and calculate difference (syncData, removedItems). - void processList(QVariantList prevData, const QVariantList &data, QVariantList &syncData, QVariantList &removedItems) + std::pair processList(QVariantList prevData, const QVariantList &data) { // initialize output variables - syncData.clear(); - removedItems.clear(); + std::pair result; + auto &[syncData, removedItems] = result; if (prevData.isEmpty()) { @@ -345,6 +344,8 @@ namespace removedItems = prevData; } } + + return result; } QJsonObject generateSyncData(int acceptedResponseId, const QVariantMap &data, QVariantMap &lastAcceptedData, QVariantMap &lastData) @@ -372,7 +373,7 @@ namespace } else { - processMap(lastAcceptedData, data, syncData); + syncData = processMap(lastAcceptedData, data); } const int responseId = (lastResponseId % 1000000) + 1; // cycle between 1 and 1000000 @@ -449,6 +450,8 @@ void SyncController::updateFreeDiskSpace(const qint64 freeDiskSpace) // - "dl_info_data": bytes downloaded // - "dl_info_speed": download speed // - "dl_rate_limit: download rate limit +// - "last_external_address_v4": last external address v4 +// - "last_external_address_v6": last external address v6 // - "up_info_data: bytes uploaded // - "up_info_speed: upload speed // - "up_rate_limit: upload speed limit @@ -594,8 +597,11 @@ QJsonObject SyncController::generateMaindataSyncData(const int id, const bool fu category.insert(u"name"_s, categoryName); auto &categorySnapshot = m_maindataSnapshot.categories[categoryName]; - processMap(categorySnapshot, category, m_maindataSyncBuf.categories[categoryName]); - categorySnapshot = category; + if (const QVariantMap syncData = processMap(categorySnapshot, category); !syncData.isEmpty()) + { + m_maindataSyncBuf.categories[categoryName] = syncData; + categorySnapshot = category; + } } m_updatedCategories.clear(); @@ -629,8 +635,12 @@ QJsonObject SyncController::generateMaindataSyncData(const int id, const bool fu serializedTorrent.remove(KEY_TORRENT_ID); auto &torrentSnapshot = m_maindataSnapshot.torrents[torrentID.toString()]; - processMap(torrentSnapshot, serializedTorrent, m_maindataSyncBuf.torrents[torrentID.toString()]); - torrentSnapshot = serializedTorrent; + + if (const QVariantMap syncData = processMap(torrentSnapshot, serializedTorrent); !syncData.isEmpty()) + { + m_maindataSyncBuf.torrents[torrentID.toString()] = syncData; + torrentSnapshot = serializedTorrent; + } } m_updatedTorrents.clear(); @@ -667,8 +677,11 @@ QJsonObject SyncController::generateMaindataSyncData(const int id, const bool fu serverState[KEY_SYNC_MAINDATA_USE_ALT_SPEED_LIMITS] = session->isAltGlobalSpeedLimitEnabled(); serverState[KEY_SYNC_MAINDATA_REFRESH_INTERVAL] = session->refreshInterval(); serverState[KEY_SYNC_MAINDATA_USE_SUBCATEGORIES] = session->isSubcategoriesEnabled(); - processMap(m_maindataSnapshot.serverState, serverState, m_maindataSyncBuf.serverState); - m_maindataSnapshot.serverState = serverState; + if (const QVariantMap syncData = processMap(m_maindataSnapshot.serverState, serverState); !syncData.isEmpty()) + { + m_maindataSyncBuf.serverState = syncData; + m_maindataSnapshot.serverState = serverState; + } QJsonObject syncData; syncData[KEY_RESPONSE_ID] = id; @@ -732,7 +745,7 @@ void SyncController::torrentPeersAction() QVariantMap data; QVariantHash peers; - const QVector peersList = torrent->peers(); + const QList peersList = torrent->peers(); bool resolvePeerCountries = Preferences::instance()->resolvePeerCountries(); @@ -851,7 +864,7 @@ void SyncController::onTorrentAboutToBeRemoved(BitTorrent::Torrent *torrent) for (const BitTorrent::TrackerEntryStatus &status : asConst(torrent->trackers())) { - auto iter = m_knownTrackers.find(status.url); + const auto iter = m_knownTrackers.find(status.url); Q_ASSERT(iter != m_knownTrackers.end()); if (iter == m_knownTrackers.end()) [[unlikely]] continue; @@ -912,7 +925,7 @@ void SyncController::onTorrentTagRemoved(BitTorrent::Torrent *torrent, [[maybe_u m_updatedTorrents.insert(torrent->id()); } -void SyncController::onTorrentsUpdated(const QVector &torrents) +void SyncController::onTorrentsUpdated(const QList &torrents) { for (const BitTorrent::Torrent *torrent : torrents) m_updatedTorrents.insert(torrent->id()); @@ -922,7 +935,7 @@ void SyncController::onTorrentTrackersChanged(BitTorrent::Torrent *torrent) { using namespace BitTorrent; - const QVector trackers = torrent->trackers(); + const QList trackers = torrent->trackers(); QSet currentTrackers; currentTrackers.reserve(trackers.size()); diff --git a/src/webui/api/synccontroller.h b/src/webui/api/synccontroller.h index d8f0eb4c8..af2223827 100644 --- a/src/webui/api/synccontroller.h +++ b/src/webui/api/synccontroller.h @@ -77,7 +77,7 @@ private: void onTorrentSavingModeChanged(BitTorrent::Torrent *torrent); void onTorrentTagAdded(BitTorrent::Torrent *torrent, const Tag &tag); void onTorrentTagRemoved(BitTorrent::Torrent *torrent, const Tag &tag); - void onTorrentsUpdated(const QVector &torrents); + void onTorrentsUpdated(const QList &torrents); void onTorrentTrackersChanged(BitTorrent::Torrent *torrent); qint64 m_freeDiskSpace = 0; diff --git a/src/webui/api/torrentcreatorcontroller.cpp b/src/webui/api/torrentcreatorcontroller.cpp index ced5ec390..e3f3769e7 100644 --- a/src/webui/api/torrentcreatorcontroller.cpp +++ b/src/webui/api/torrentcreatorcontroller.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "base/global.h" #include "base/bittorrent/torrentcreationmanager.h" @@ -88,6 +89,17 @@ namespace } #endif + QStringList parseUrls(const QString &urlsParam) + { + // Empty lines are preserved because they indicate new tracker tier and will be ignored in url seeds. + const QStringList encodedUrls = urlsParam.split(u'|'); + QStringList urls; + urls.reserve(encodedUrls.size()); + for (const QString &urlStr : encodedUrls) + urls << QUrl::fromPercentEncoding(urlStr.toLatin1()); + return urls; + } + QString taskStatusString(const std::shared_ptr task) { if (task->isFailed()) @@ -129,9 +141,9 @@ void TorrentCreatorController::addTaskAction() .sourcePath = Path(params()[KEY_SOURCE_PATH]), .torrentFilePath = Path(params()[KEY_TORRENT_FILE_PATH]), .comment = params()[KEY_COMMENT], - .source = params()[KEY_COMMENT], - .trackers = params()[KEY_TRACKERS].split(u'|'), - .urlSeeds = params()[KEY_URL_SEEDS].split(u'|') + .source = params()[KEY_SOURCE], + .trackers = parseUrls(params()[KEY_TRACKERS]), + .urlSeeds = parseUrls(params()[KEY_URL_SEEDS]) }; bool const startSeeding = parseBool(params()[u"startSeeding"_s]).value_or(createTorrentParams.torrentFilePath.isEmpty()); diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index 2d40d3645..6fd5f6fbf 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -28,13 +28,13 @@ #include "torrentscontroller.h" +#include #include #include #include #include #include -#include #include #include @@ -53,7 +53,6 @@ #include "base/interfaces/iapplication.h" #include "base/global.h" #include "base/logger.h" -#include "base/net/downloadmanager.h" #include "base/torrentfilter.h" #include "base/utils/datetime.h" #include "base/utils/fs.h" @@ -111,10 +110,15 @@ const QString KEY_PROP_CREATION_DATE = u"creation_date"_s; const QString KEY_PROP_SAVE_PATH = u"save_path"_s; const QString KEY_PROP_DOWNLOAD_PATH = u"download_path"_s; const QString KEY_PROP_COMMENT = u"comment"_s; -const QString KEY_PROP_ISPRIVATE = u"is_private"_s; +const QString KEY_PROP_IS_PRIVATE = u"is_private"_s; // deprecated, "private" should be used instead +const QString KEY_PROP_PRIVATE = u"private"_s; const QString KEY_PROP_SSL_CERTIFICATE = u"ssl_certificate"_s; const QString KEY_PROP_SSL_PRIVATEKEY = u"ssl_private_key"_s; const QString KEY_PROP_SSL_DHPARAMS = u"ssl_dh_params"_s; +const QString KEY_PROP_HAS_METADATA = u"has_metadata"_s; +const QString KEY_PROP_PROGRESS = u"progress"_s; +const QString KEY_PROP_TRACKERS = u"trackers"_s; + // File keys const QString KEY_FILE_INDEX = u"index"_s; @@ -132,7 +136,11 @@ namespace using Utils::String::parseInt; using Utils::String::parseDouble; - void applyToTorrents(const QStringList &idList, const std::function &func) + const QSet SUPPORTED_WEB_SEED_SCHEMES {u"http"_s, u"https"_s, u"ftp"_s}; + + template + void applyToTorrents(const QStringList &idList, Func func) + requires std::invocable { if ((idList.size() == 1) && (idList[0] == u"all")) { @@ -241,14 +249,53 @@ namespace return {dht, pex, lsd}; } - QVector toTorrentIDs(const QStringList &idStrings) + QJsonArray getTrackers(const BitTorrent::Torrent *const torrent) { - QVector idList; + QJsonArray trackerList; + + for (const BitTorrent::TrackerEntryStatus &tracker : asConst(torrent->trackers())) + { + const bool isNotWorking = (tracker.state == BitTorrent::TrackerEndpointState::NotWorking) + || (tracker.state == BitTorrent::TrackerEndpointState::TrackerError) + || (tracker.state == BitTorrent::TrackerEndpointState::Unreachable); + trackerList << QJsonObject + { + {KEY_TRACKER_URL, tracker.url}, + {KEY_TRACKER_TIER, tracker.tier}, + {KEY_TRACKER_STATUS, static_cast((isNotWorking ? BitTorrent::TrackerEndpointState::NotWorking : tracker.state))}, + {KEY_TRACKER_MSG, tracker.message}, + {KEY_TRACKER_PEERS_COUNT, tracker.numPeers}, + {KEY_TRACKER_SEEDS_COUNT, tracker.numSeeds}, + {KEY_TRACKER_LEECHES_COUNT, tracker.numLeeches}, + {KEY_TRACKER_DOWNLOADED_COUNT, tracker.numDownloaded} + }; + } + + return trackerList; + } + + QList toTorrentIDs(const QStringList &idStrings) + { + QList idList; idList.reserve(idStrings.size()); for (const QString &hash : idStrings) idList << BitTorrent::TorrentID::fromString(hash); return idList; } + + nonstd::expected validateWebSeedUrl(const QString &urlStr) + { + const QString normalizedUrlStr = QUrl::fromPercentEncoding(urlStr.toLatin1()); + + const QUrl url {normalizedUrlStr, QUrl::StrictMode}; + if (!url.isValid()) + return nonstd::make_unexpected(TorrentsController::tr("\"%1\" is not a valid URL").arg(normalizedUrlStr)); + + if (!SUPPORTED_WEB_SEED_SCHEMES.contains(url.scheme())) + return nonstd::make_unexpected(TorrentsController::tr("URL scheme must be one of [%1]").arg(SUPPORTED_WEB_SEED_SCHEMES.values().join(u", "))); + + return url; + } } void TorrentsController::countAction() @@ -282,6 +329,8 @@ void TorrentsController::countAction() // - category (string): torrent category for filtering by it (empty string means "uncategorized"; no "category" param presented means "any category") // - tag (string): torrent tag for filtering by it (empty string means "untagged"; no "tag" param presented means "any tag") // - hashes (string): filter by hashes, can contain multiple hashes separated by | +// - private (bool): filter torrents that are from private trackers (true) or not (false). Empty means any torrent (no filtering) +// - includeTrackers (bool): include trackers in list output (true) or not (false). Empty means not included // - sort (string): name of column for sorting by its value // - reverse (bool): enable reverse sorting // - limit (int): set limit number of torrents returned (if greater than 0, otherwise - unlimited) @@ -296,6 +345,8 @@ void TorrentsController::infoAction() int limit {params()[u"limit"_s].toInt()}; int offset {params()[u"offset"_s].toInt()}; const QStringList hashes {params()[u"hashes"_s].split(u'|', Qt::SkipEmptyParts)}; + const std::optional isPrivate = parseBool(params()[u"private"_s]); + const bool includeTrackers = parseBool(params()[u"includeTrackers"_s]).value_or(false); std::optional idSet; if (!hashes.isEmpty()) @@ -305,12 +356,19 @@ void TorrentsController::infoAction() idSet->insert(BitTorrent::TorrentID::fromString(hash)); } - const TorrentFilter torrentFilter {filter, idSet, category, tag}; + const TorrentFilter torrentFilter {filter, idSet, category, tag, isPrivate}; QVariantList torrentList; for (const BitTorrent::Torrent *torrent : asConst(BitTorrent::Session::instance()->torrents())) { - if (torrentFilter.match(torrent)) - torrentList.append(serialize(*torrent)); + if (!torrentFilter.match(torrent)) + continue; + + QVariantMap serializedTorrent = serialize(*torrent); + + if (includeTrackers) + serializedTorrent.insert(KEY_PROP_TRACKERS, getTrackers(torrent)); + + torrentList.append(serializedTorrent); } if (torrentList.isEmpty()) @@ -363,8 +421,6 @@ void TorrentsController::infoAction() // normalize offset if (offset < 0) offset = size + offset; - if ((offset >= size) || (offset < 0)) - offset = 0; // normalize limit if (limit <= 0) limit = -1; // unlimited @@ -435,6 +491,8 @@ void TorrentsController::propertiesAction() const int uploadLimit = torrent->uploadLimit(); const qreal ratio = torrent->realRatio(); const qreal popularity = torrent->popularity(); + const bool hasMetadata = torrent->hasMetadata(); + const bool isPrivate = torrent->isPrivate(); const QJsonObject ret { @@ -470,14 +528,17 @@ void TorrentsController::propertiesAction() {KEY_PROP_PIECE_SIZE, torrent->pieceLength()}, {KEY_PROP_PIECES_HAVE, torrent->piecesHave()}, {KEY_PROP_CREATED_BY, torrent->creator()}, - {KEY_PROP_ISPRIVATE, torrent->isPrivate()}, + {KEY_PROP_IS_PRIVATE, torrent->isPrivate()}, // used for maintaining backward compatibility + {KEY_PROP_PRIVATE, (hasMetadata ? isPrivate : QJsonValue())}, {KEY_PROP_ADDITION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->addedTime())}, {KEY_PROP_LAST_SEEN, Utils::DateTime::toSecsSinceEpoch(torrent->lastSeenComplete())}, {KEY_PROP_COMPLETION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->completedTime())}, {KEY_PROP_CREATION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->creationDate())}, {KEY_PROP_SAVE_PATH, torrent->savePath().toString()}, {KEY_PROP_DOWNLOAD_PATH, torrent->downloadPath().toString()}, - {KEY_PROP_COMMENT, torrent->comment()} + {KEY_PROP_COMMENT, torrent->comment()}, + {KEY_PROP_HAS_METADATA, torrent->hasMetadata()}, + {KEY_PROP_PROGRESS, torrent->progress()} }; setResult(ret); @@ -503,27 +564,13 @@ void TorrentsController::trackersAction() if (!torrent) throw APIError(APIErrorType::NotFound); - QJsonArray trackerList = getStickyTrackers(torrent); + QJsonArray trackersList = getStickyTrackers(torrent); - for (const BitTorrent::TrackerEntryStatus &tracker : asConst(torrent->trackers())) - { - const bool isNotWorking = (tracker.state == BitTorrent::TrackerEndpointState::NotWorking) - || (tracker.state == BitTorrent::TrackerEndpointState::TrackerError) - || (tracker.state == BitTorrent::TrackerEndpointState::Unreachable); - trackerList << QJsonObject - { - {KEY_TRACKER_URL, tracker.url}, - {KEY_TRACKER_TIER, tracker.tier}, - {KEY_TRACKER_STATUS, static_cast((isNotWorking ? BitTorrent::TrackerEndpointState::NotWorking : tracker.state))}, - {KEY_TRACKER_MSG, tracker.message}, - {KEY_TRACKER_PEERS_COUNT, tracker.numPeers}, - {KEY_TRACKER_SEEDS_COUNT, tracker.numSeeds}, - {KEY_TRACKER_LEECHES_COUNT, tracker.numLeeches}, - {KEY_TRACKER_DOWNLOADED_COUNT, tracker.numDownloaded} - }; - } + // merge QJsonArray + for (const auto &tracker : asConst(getTrackers(torrent))) + trackersList.append(tracker); - setResult(trackerList); + setResult(trackersList); } // Returns the web seeds for a torrent in JSON format. @@ -551,6 +598,84 @@ void TorrentsController::webseedsAction() setResult(webSeedList); } +void TorrentsController::addWebSeedsAction() +{ + requireParams({u"hash"_s, u"urls"_s}); + const QStringList paramUrls = params()[u"urls"_s].split(u'|', Qt::SkipEmptyParts); + + const auto id = BitTorrent::TorrentID::fromString(params()[u"hash"_s]); + BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->getTorrent(id); + if (!torrent) + throw APIError(APIErrorType::NotFound); + + QList urls; + urls.reserve(paramUrls.size()); + for (const QString &urlStr : paramUrls) + { + const auto result = validateWebSeedUrl(urlStr); + if (!result) + throw APIError(APIErrorType::BadParams, result.error()); + urls << result.value(); + } + + torrent->addUrlSeeds(urls); +} + +void TorrentsController::editWebSeedAction() +{ + requireParams({u"hash"_s, u"origUrl"_s, u"newUrl"_s}); + + const auto id = BitTorrent::TorrentID::fromString(params()[u"hash"_s]); + const QString origUrlStr = params()[u"origUrl"_s]; + const QString newUrlStr = params()[u"newUrl"_s]; + + BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->getTorrent(id); + if (!torrent) + throw APIError(APIErrorType::NotFound); + + const auto origUrlResult = validateWebSeedUrl(origUrlStr); + if (!origUrlResult) + throw APIError(APIErrorType::BadParams, origUrlResult.error()); + const QUrl origUrl = origUrlResult.value(); + + const auto newUrlResult = validateWebSeedUrl(newUrlStr); + if (!newUrlResult) + throw APIError(APIErrorType::BadParams, newUrlResult.error()); + const QUrl newUrl = newUrlResult.value(); + + if (newUrl != origUrl) + { + if (!torrent->urlSeeds().contains(origUrl)) + throw APIError(APIErrorType::Conflict, tr("\"%1\" is not an existing URL").arg(origUrl.toString())); + + torrent->removeUrlSeeds({origUrl}); + torrent->addUrlSeeds({newUrl}); + } +} + +void TorrentsController::removeWebSeedsAction() +{ + requireParams({u"hash"_s, u"urls"_s}); + const QStringList paramUrls = params()[u"urls"_s].split(u'|', Qt::SkipEmptyParts); + + const auto id = BitTorrent::TorrentID::fromString(params()[u"hash"_s]); + BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->getTorrent(id); + if (!torrent) + throw APIError(APIErrorType::NotFound); + + QList urls; + urls.reserve(paramUrls.size()); + for (const QString &urlStr : paramUrls) + { + const auto result = validateWebSeedUrl(urlStr); + if (!result) + throw APIError(APIErrorType::BadParams, result.error()); + urls << result.value(); + } + + torrent->removeUrlSeeds(urls); +} + // Returns the files in a torrent in JSON format. // The return value is a JSON-formatted list of dictionaries. // The dictionary keys are: @@ -572,7 +697,7 @@ void TorrentsController::filesAction() throw APIError(APIErrorType::NotFound); const int filesCount = torrent->filesCount(); - QVector fileIndexes; + QList fileIndexes; const auto idxIt = params().constFind(u"indexes"_s); if (idxIt != params().cend()) { @@ -600,9 +725,9 @@ void TorrentsController::filesAction() QJsonArray fileList; if (torrent->hasMetadata()) { - const QVector priorities = torrent->filePriorities(); - const QVector fp = torrent->filesProgress(); - const QVector fileAvailability = torrent->availableFileFractions(); + const QList priorities = torrent->filePriorities(); + const QList fp = torrent->filesProgress(); + const QList fileAvailability = torrent->availableFileFractions(); const BitTorrent::TorrentInfo info = torrent->info(); for (const int index : asConst(fileIndexes)) { @@ -644,7 +769,7 @@ void TorrentsController::pieceHashesAction() QJsonArray pieceHashes; if (torrent->hasMetadata()) { - const QVector hashes = torrent->info().pieceHashes(); + const QList hashes = torrent->info().pieceHashes(); for (const QByteArray &hash : hashes) pieceHashes.append(QString::fromLatin1(hash.toHex())); } @@ -684,11 +809,11 @@ void TorrentsController::pieceStatesAction() void TorrentsController::addAction() { const QString urls = params()[u"urls"_s]; - const QString cookie = params()[u"cookie"_s]; const bool skipChecking = parseBool(params()[u"skip_checking"_s]).value_or(false); const bool seqDownload = parseBool(params()[u"sequentialDownload"_s]).value_or(false); const bool firstLastPiece = parseBool(params()[u"firstLastPiecePrio"_s]).value_or(false); + const bool addForced = parseBool(params()[u"forced"_s]).value_or(false); const std::optional addToQueueTop = parseBool(params()[u"addToTopOfQueue"_s]); const std::optional addStopped = parseBool(params()[u"stopped"_s]); const QString savepath = params()[u"savepath"_s].trimmed(); @@ -715,23 +840,6 @@ void TorrentsController::addAction() ? Utils::String::toEnum(contentLayoutParam, BitTorrent::TorrentContentLayout::Original) : std::optional {}); - QList cookies; - if (!cookie.isEmpty()) - { - const QStringList cookiesStr = cookie.split(u"; "_s); - for (QString cookieStr : cookiesStr) - { - cookieStr = cookieStr.trimmed(); - int index = cookieStr.indexOf(u'='); - if (index > 1) - { - QByteArray name = cookieStr.left(index).toLatin1(); - QByteArray value = cookieStr.right(cookieStr.length() - index - 1).toLatin1(); - cookies += QNetworkCookie(name, value); - } - } - } - const BitTorrent::AddTorrentParams addTorrentParams { // TODO: Check if destination actually exists @@ -743,7 +851,7 @@ void TorrentsController::addAction() .downloadPath = Path(downloadPath), .sequential = seqDownload, .firstLastPiecePriority = firstLastPiece, - .addForced = false, + .addForced = addForced, .addToQueueTop = addToQueueTop, .addStopped = addStopped, .stopCondition = stopCondition, @@ -772,7 +880,6 @@ void TorrentsController::addAction() url = url.trimmed(); if (!url.isEmpty()) { - Net::DownloadManager::instance()->setCookiesFromUrl(cookies, QUrl::fromEncoded(url.toUtf8())); partialSuccess |= app()->addTorrentManager()->addTorrent(url, addTorrentParams); } } @@ -866,16 +973,34 @@ void TorrentsController::removeTrackersAction() { requireParams({u"hash"_s, u"urls"_s}); - const auto id = BitTorrent::TorrentID::fromString(params()[u"hash"_s]); - BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->getTorrent(id); - if (!torrent) - throw APIError(APIErrorType::NotFound); + const QString hashParam = params()[u"hash"_s]; + const QStringList urlsParam = params()[u"urls"_s].split(u'|', Qt::SkipEmptyParts); - const QStringList urls = params()[u"urls"_s].split(u'|'); - torrent->removeTrackers(urls); + QStringList urls; + urls.reserve(urlsParam.size()); + for (const QString &urlStr : urlsParam) + urls << QUrl::fromPercentEncoding(urlStr.toLatin1()); - if (!torrent->isStopped()) - torrent->forceReannounce(); + QList torrents; + + if (hashParam == u"*"_s) + { + // remove trackers from all torrents + torrents = BitTorrent::Session::instance()->torrents(); + } + else + { + // remove trackers from specified torrent + const auto id = BitTorrent::TorrentID::fromString(hashParam); + BitTorrent::Torrent *const torrent = BitTorrent::Session::instance()->getTorrent(id); + if (!torrent) + throw APIError(APIErrorType::NotFound); + + torrents.append(torrent); + } + + for (BitTorrent::Torrent *const torrent : asConst(torrents)) + torrent->removeTrackers(urls); } void TorrentsController::addPeersAction() @@ -885,7 +1010,7 @@ void TorrentsController::addPeersAction() const QStringList hashes = params()[u"hashes"_s].split(u'|'); const QStringList peers = params()[u"peers"_s].split(u'|'); - QVector peerList; + QList peerList; peerList.reserve(peers.size()); for (const QString &peer : peers) { @@ -952,7 +1077,7 @@ void TorrentsController::filePrioAction() throw APIError(APIErrorType::Conflict, tr("Torrent's metadata has not yet downloaded")); const int filesCount = torrent->filesCount(); - QVector priorities = torrent->filePriorities(); + QList priorities = torrent->filePriorities(); bool priorityChanged = false; for (const QString &fileID : params()[u"id"_s].split(u'|')) { @@ -1092,11 +1217,11 @@ void TorrentsController::deleteAction() requireParams({u"hashes"_s, u"deleteFiles"_s}); const QStringList hashes {params()[u"hashes"_s].split(u'|')}; - const DeleteOption deleteOption = parseBool(params()[u"deleteFiles"_s]).value_or(false) - ? DeleteTorrentAndFiles : DeleteTorrent; + const BitTorrent::TorrentRemoveOption deleteOption = parseBool(params()[u"deleteFiles"_s]).value_or(false) + ? BitTorrent::TorrentRemoveOption::RemoveContent : BitTorrent::TorrentRemoveOption::KeepContent; applyToTorrents(hashes, [deleteOption](const BitTorrent::Torrent *torrent) { - BitTorrent::Session::instance()->deleteTorrent(torrent->id(), deleteOption); + BitTorrent::Session::instance()->removeTorrent(torrent->id(), deleteOption); }); } @@ -1369,6 +1494,27 @@ void TorrentsController::addTagsAction() } } +void TorrentsController::setTagsAction() +{ + requireParams({u"hashes"_s, u"tags"_s}); + + const QStringList hashes {params()[u"hashes"_s].split(u'|', Qt::SkipEmptyParts)}; + const QStringList tags {params()[u"tags"_s].split(u',', Qt::SkipEmptyParts)}; + + const TagSet newTags {tags.begin(), tags.end()}; + applyToTorrents(hashes, [&newTags](BitTorrent::Torrent *const torrent) + { + TagSet tmpTags {newTags}; + for (const Tag &tag : asConst(torrent->tags())) + { + if (tmpTags.erase(tag) == 0) + torrent->removeTag(tag); + } + for (const Tag &tag : tmpTags) + torrent->addTag(tag); + }); +} + void TorrentsController::removeTagsAction() { requireParams({u"hashes"_s}); diff --git a/src/webui/api/torrentscontroller.h b/src/webui/api/torrentscontroller.h index d731b0de8..a233048ac 100644 --- a/src/webui/api/torrentscontroller.h +++ b/src/webui/api/torrentscontroller.h @@ -44,6 +44,9 @@ private slots: void propertiesAction(); void trackersAction(); void webseedsAction(); + void addWebSeedsAction(); + void editWebSeedAction(); + void removeWebSeedsAction(); void filesAction(); void pieceHashesAction(); void pieceStatesAction(); @@ -58,6 +61,7 @@ private slots: void removeCategoriesAction(); void categoriesAction(); void addTagsAction(); + void setTagsAction(); void removeTagsAction(); void createTagsAction(); void deleteTagsAction(); diff --git a/src/webui/api/transfercontroller.cpp b/src/webui/api/transfercontroller.cpp index 115804270..66ecb2747 100644 --- a/src/webui/api/transfercontroller.cpp +++ b/src/webui/api/transfercontroller.cpp @@ -29,7 +29,7 @@ #include "transfercontroller.h" #include -#include +#include #include "base/bittorrent/peeraddress.h" #include "base/bittorrent/peerinfo.h" @@ -45,6 +45,8 @@ const QString KEY_TRANSFER_DLRATELIMIT = u"dl_rate_limit"_s; const QString KEY_TRANSFER_UPSPEED = u"up_info_speed"_s; const QString KEY_TRANSFER_UPDATA = u"up_info_data"_s; const QString KEY_TRANSFER_UPRATELIMIT = u"up_rate_limit"_s; +const QString KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V4 = u"last_external_address_v4"_s; +const QString KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V6 = u"last_external_address_v6"_s; const QString KEY_TRANSFER_DHT_NODES = u"dht_nodes"_s; const QString KEY_TRANSFER_CONNECTION_STATUS = u"connection_status"_s; @@ -57,11 +59,14 @@ const QString KEY_TRANSFER_CONNECTION_STATUS = u"connection_status"_s; // - "up_info_data": Data uploaded this session // - "dl_rate_limit": Download rate limit // - "up_rate_limit": Upload rate limit +// - "last_external_address_v4": external IPv4 address +// - "last_external_address_v6": external IPv6 address // - "dht_nodes": DHT nodes connected to // - "connection_status": Connection status void TransferController::infoAction() { - const BitTorrent::SessionStatus &sessionStatus = BitTorrent::Session::instance()->status(); + const auto *btSession = BitTorrent::Session::instance(); + const BitTorrent::SessionStatus &sessionStatus = btSession->status(); QJsonObject dict; @@ -69,10 +74,12 @@ void TransferController::infoAction() dict[KEY_TRANSFER_DLDATA] = static_cast(sessionStatus.totalPayloadDownload); dict[KEY_TRANSFER_UPSPEED] = static_cast(sessionStatus.payloadUploadRate); dict[KEY_TRANSFER_UPDATA] = static_cast(sessionStatus.totalPayloadUpload); - dict[KEY_TRANSFER_DLRATELIMIT] = BitTorrent::Session::instance()->downloadSpeedLimit(); - dict[KEY_TRANSFER_UPRATELIMIT] = BitTorrent::Session::instance()->uploadSpeedLimit(); + dict[KEY_TRANSFER_DLRATELIMIT] = btSession->downloadSpeedLimit(); + dict[KEY_TRANSFER_UPRATELIMIT] = btSession->uploadSpeedLimit(); + dict[KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V4] = btSession->lastExternalIPv4Address(); + dict[KEY_TRANSFER_LAST_EXTERNAL_ADDRESS_V6] = btSession->lastExternalIPv6Address(); dict[KEY_TRANSFER_DHT_NODES] = static_cast(sessionStatus.dhtNodes); - if (!BitTorrent::Session::instance()->isListening()) + if (!btSession->isListening()) dict[KEY_TRANSFER_CONNECTION_STATUS] = u"disconnected"_s; else dict[KEY_TRANSFER_CONNECTION_STATUS] = sessionStatus.hasIncomingConnections ? u"connected"_s : u"firewalled"_s; diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 1394e1e46..22c6dc401 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2014-2024 Vladimir Golovnev + * Copyright (C) 2014-2025 Vladimir Golovnev * Copyright (C) 2024 Radu Carpa * * This program is free software; you can redistribute it and/or @@ -43,10 +43,10 @@ #include #include #include -#include #include #include "base/algorithm.h" +#include "base/bittorrent/session.h" #include "base/bittorrent/torrentcreationmanager.h" #include "base/http/httperror.h" #include "base/logger.h" @@ -67,7 +67,6 @@ #include "api/torrentcreatorcontroller.h" #include "api/torrentscontroller.h" #include "api/transfercontroller.h" -#include "freediskspacechecker.h" const int MAX_ALLOWED_FILESIZE = 10 * 1024 * 1024; const QString DEFAULT_SESSION_COOKIE_NAME = u"SID"_s; @@ -75,10 +74,7 @@ const QString DEFAULT_SESSION_COOKIE_NAME = u"SID"_s; const QString WWW_FOLDER = u":/www"_s; const QString PUBLIC_FOLDER = u"/public"_s; const QString PRIVATE_FOLDER = u"/private"_s; - -using namespace std::chrono_literals; - -const std::chrono::seconds FREEDISKSPACE_CHECK_TIMEOUT = 30s; +const QString INDEX_HTML = u"/index.html"_s; namespace { @@ -94,8 +90,8 @@ namespace if (idx < 0) continue; - const QString name = cookie.left(idx).trimmed().toString(); - const QString value = Utils::String::unquote(cookie.mid(idx + 1).trimmed()).toString(); + const QString name = cookie.first(idx).trimmed().toString(); + const QString value = Utils::String::unquote(cookie.sliced(idx + 1).trimmed()).toString(); ret.insert(name, value); } return ret; @@ -161,9 +157,6 @@ WebApplication::WebApplication(IApplication *app, QObject *parent) : ApplicationComponent(app, parent) , m_cacheID {QString::number(Utils::Random::rand(), 36)} , m_authController {new AuthController(this, app, this)} - , m_workerThread {new QThread} - , m_freeDiskSpaceChecker {new FreeDiskSpaceChecker} - , m_freeDiskSpaceCheckingTimer {new QTimer(this)} , m_torrentCreationManager {new BitTorrent::TorrentCreationManager(app, this)} { declarePublicAPI(u"auth/login"_s); @@ -181,16 +174,6 @@ WebApplication::WebApplication(IApplication *app, QObject *parent) } m_sessionCookieName = DEFAULT_SESSION_COOKIE_NAME; } - - m_freeDiskSpaceChecker->moveToThread(m_workerThread.get()); - connect(m_workerThread.get(), &QThread::finished, m_freeDiskSpaceChecker, &QObject::deleteLater); - m_workerThread->start(); - - m_freeDiskSpaceCheckingTimer->setInterval(FREEDISKSPACE_CHECK_TIMEOUT); - m_freeDiskSpaceCheckingTimer->setSingleShot(true); - connect(m_freeDiskSpaceCheckingTimer, &QTimer::timeout, m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::check); - connect(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::checked, m_freeDiskSpaceCheckingTimer, qOverload<>(&QTimer::start)); - QMetaObject::invokeMethod(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::check); } WebApplication::~WebApplication() @@ -212,7 +195,7 @@ void WebApplication::sendWebUIFile() const QString path = (request().path != u"/") ? request().path - : u"/index.html"_s; + : INDEX_HTML; Path localPath = m_rootFolder / Path(session() ? PRIVATE_FOLDER : PUBLIC_FOLDER) @@ -226,7 +209,17 @@ void WebApplication::sendWebUIFile() if (m_isAltUIUsed) { if (!Utils::Fs::isRegularFile(localPath)) + { +#ifdef DISABLE_GUI + if (path == INDEX_HTML) + { + auto *preferences = Preferences::instance(); + preferences->setAltWebUIEnabled(false); + preferences->apply(); + } +#endif throw InternalServerErrorHTTPError(tr("Unacceptable file type, only regular file is allowed.")); + } const QString rootFolder = m_rootFolder.data(); @@ -234,7 +227,17 @@ void WebApplication::sendWebUIFile() while (fileInfo.path() != rootFolder) { if (fileInfo.isSymLink()) + { +#ifdef DISABLE_GUI + if (path == INDEX_HTML) + { + auto *preferences = Preferences::instance(); + preferences->setAltWebUIEnabled(false); + preferences->apply(); + } +#endif throw InternalServerErrorHTTPError(tr("Symlinks inside alternative UI folder are forbidden.")); + } fileInfo.setFile(fileInfo.path()); } @@ -255,19 +258,21 @@ void WebApplication::translateDocument(QString &data) const i = data.indexOf(regex, i, ®exMatch); if (i >= 0) { - const QString sourceText = regexMatch.captured(1); - const QString context = regexMatch.captured(3); + const QStringView sourceText = regexMatch.capturedView(1); + const QStringView context = regexMatch.capturedView(3); const QString loadedText = m_translationFileLoaded ? m_translator.translate(context.toUtf8().constData(), sourceText.toUtf8().constData()) : QString(); // `loadedText` is empty when translation is not provided // it should fallback to `sourceText` - QString translation = loadedText.isEmpty() ? sourceText : loadedText; + QString translation = loadedText.isEmpty() ? sourceText.toString() : loadedText; - // Use HTML code for quotes to prevent issues with JS - translation.replace(u'\'', u"'"_s); - translation.replace(u'\"', u"""_s); + // Escape quotes to workaround issues with HTML attributes + // FIXME: this is a dirty workaround to deal with broken translation strings: + // 1. Translation strings is the culprit of the issue, they should be fixed instead + // 2. The escaped quote/string is wrong for JS. JS use backslash to escape the quote: "\"" + translation.replace(u'"', u"""_s); data.replace(i, regexMatch.capturedLength(), translation); i += translation.length(); @@ -336,8 +341,8 @@ void WebApplication::doProcessRequest() } // Filter HTTP methods - const auto allowedMethodIter = m_allowedMethod.find({scope, action}); - if (allowedMethodIter == m_allowedMethod.end()) + const auto allowedMethodIter = m_allowedMethod.constFind({scope, action}); + if (allowedMethodIter == m_allowedMethod.cend()) { // by default allow both GET, POST methods if ((m_request.method != Http::METHOD_GET) && (m_request.method != Http::METHOD_POST)) @@ -393,7 +398,8 @@ void WebApplication::doProcessRequest() case APIErrorType::NotFound: throw NotFoundHTTPError(error.message()); default: - Q_ASSERT(false); + Q_UNREACHABLE(); + break; } } } @@ -463,7 +469,7 @@ void WebApplication::configure() const QString contentSecurityPolicy = (m_isAltUIUsed ? QString() - : u"default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self';"_s) + : u"default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-src 'self' blob:;"_s) + (isClickjackingProtectionEnabled ? u" frame-ancestors 'self';"_s : QString()) + (m_isHttpsEnabled ? u" upgrade-insecure-requests;"_s : QString()); if (!contentSecurityPolicy.isEmpty()) @@ -484,8 +490,8 @@ void WebApplication::configure() continue; } - const QString header = line.left(idx).trimmed().toString(); - const QString value = line.mid(idx + 1).trimmed().toString(); + const QString header = line.first(idx).trimmed().toString(); + const QString value = line.sliced(idx + 1).trimmed().toString(); m_prebuiltHeaders.push_back({header, value}); } } @@ -533,15 +539,12 @@ void WebApplication::sendFile(const Path &path) const QDateTime lastModified = Utils::Fs::lastModified(path); // find translated file in cache - if (!m_isAltUIUsed) + if (const auto it = m_translatedFiles.constFind(path); + (it != m_translatedFiles.constEnd()) && (lastModified <= it->lastModified)) { - if (const auto it = m_translatedFiles.constFind(path); - (it != m_translatedFiles.constEnd()) && (lastModified <= it->lastModified)) - { - print(it->data, it->mimeType); - setHeader({Http::HEADER_CACHE_CONTROL, getCachingInterval(it->mimeType)}); - return; - } + print(it->data, it->mimeType); + setHeader({Http::HEADER_CACHE_CONTROL, getCachingInterval(it->mimeType)}); + return; } const auto readResult = Utils::IO::readFile(path, MAX_ALLOWED_FILESIZE); @@ -572,7 +575,7 @@ void WebApplication::sendFile(const Path &path) QByteArray data = readResult.value(); const QMimeType mimeType = QMimeDatabase().mimeTypeForFileNameAndData(path.data(), data); - const bool isTranslatable = !m_isAltUIUsed && mimeType.inherits(u"text/plain"_s); + const bool isTranslatable = mimeType.inherits(u"text/plain"_s); if (isTranslatable) { @@ -696,7 +699,7 @@ QString WebApplication::generateSid() const bool WebApplication::isAuthNeeded() { - if (!m_isLocalAuthEnabled && Utils::Net::isLoopbackAddress(m_clientAddress)) + if (!m_isLocalAuthEnabled && m_clientAddress.isLoopback()) return false; if (m_isAuthSubnetWhitelistEnabled && Utils::Net::isIPInSubnets(m_clientAddress, m_authSubnetWhitelist)) return false; @@ -727,29 +730,29 @@ void WebApplication::sessionStart() m_currentSession = new WebSession(generateSid(), app()); m_sessions[m_currentSession->id()] = m_currentSession; - m_currentSession->registerAPIController(u"app"_s, new AppController(app(), this)); - m_currentSession->registerAPIController(u"log"_s, new LogController(app(), this)); - m_currentSession->registerAPIController(u"torrentcreator"_s, new TorrentCreatorController(m_torrentCreationManager, app(), this)); - m_currentSession->registerAPIController(u"rss"_s, new RSSController(app(), this)); - m_currentSession->registerAPIController(u"search"_s, new SearchController(app(), this)); - m_currentSession->registerAPIController(u"torrents"_s, new TorrentsController(app(), this)); - m_currentSession->registerAPIController(u"transfer"_s, new TransferController(app(), this)); + m_currentSession->registerAPIController(u"app"_s, new AppController(app(), m_currentSession)); + m_currentSession->registerAPIController(u"log"_s, new LogController(app(), m_currentSession)); + m_currentSession->registerAPIController(u"torrentcreator"_s, new TorrentCreatorController(m_torrentCreationManager, app(), m_currentSession)); + m_currentSession->registerAPIController(u"rss"_s, new RSSController(app(), m_currentSession)); + m_currentSession->registerAPIController(u"search"_s, new SearchController(app(), m_currentSession)); + m_currentSession->registerAPIController(u"torrents"_s, new TorrentsController(app(), m_currentSession)); + m_currentSession->registerAPIController(u"transfer"_s, new TransferController(app(), m_currentSession)); - auto *syncController = new SyncController(app(), this); - syncController->updateFreeDiskSpace(m_freeDiskSpaceChecker->lastResult()); - connect(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::checked, syncController, &SyncController::updateFreeDiskSpace); + const auto *btSession = BitTorrent::Session::instance(); + auto *syncController = new SyncController(app(), m_currentSession); + syncController->updateFreeDiskSpace(btSession->freeDiskSpace()); + connect(btSession, &BitTorrent::Session::freeDiskSpaceChecked, syncController, &SyncController::updateFreeDiskSpace); m_currentSession->registerAPIController(u"sync"_s, syncController); - QNetworkCookie cookie {m_sessionCookieName.toLatin1(), m_currentSession->id().toUtf8()}; + QNetworkCookie cookie {m_sessionCookieName.toLatin1(), m_currentSession->id().toLatin1()}; cookie.setHttpOnly(true); - cookie.setSecure(m_isSecureCookieEnabled && m_isHttpsEnabled); + cookie.setSecure(m_isSecureCookieEnabled && isOriginTrustworthy()); // [rfc6265] 4.1.2.5. The Secure Attribute cookie.setPath(u"/"_s); - QByteArray cookieRawForm = cookie.toRawForm(); if (m_isCSRFProtectionEnabled) - cookieRawForm.append("; SameSite=Strict"); + cookie.setSameSitePolicy(QNetworkCookie::SameSite::Strict); else if (cookie.isSecure()) - cookieRawForm.append("; SameSite=None"); - setHeader({Http::HEADER_SET_COOKIE, QString::fromLatin1(cookieRawForm)}); + cookie.setSameSitePolicy(QNetworkCookie::SameSite::None); + setHeader({Http::HEADER_SET_COOKIE, QString::fromLatin1(cookie.toRawForm())}); } void WebApplication::sessionEnd() @@ -766,6 +769,23 @@ void WebApplication::sessionEnd() setHeader({Http::HEADER_SET_COOKIE, QString::fromLatin1(cookie.toRawForm())}); } +bool WebApplication::isOriginTrustworthy() const +{ + // https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy + + if (m_isReverseProxySupportEnabled) + { + const QString forwardedProto = request().headers.value(Http::HEADER_X_FORWARDED_PROTO); + if (forwardedProto.compare(u"https", Qt::CaseInsensitive) == 0) + return true; + } + + if (m_isHttpsEnabled) + return true; + + return false; +} + bool WebApplication::isCrossSiteRequest(const Http::Request &request) const { // https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Verifying_Same_Origin_with_Standard_Headers diff --git a/src/webui/webapplication.h b/src/webui/webapplication.h index b14ce770f..b5f015449 100644 --- a/src/webui/webapplication.h +++ b/src/webui/webapplication.h @@ -1,6 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2014-2024 Vladimir Golovnev + * Copyright (C) 2014-2025 Vladimir Golovnev * Copyright (C) 2024 Radu Carpa * * This program is free software; you can redistribute it and/or @@ -36,12 +36,12 @@ #include #include #include +#include #include #include #include #include #include -#include #include "base/applicationcomponent.h" #include "base/global.h" @@ -50,17 +50,13 @@ #include "base/http/types.h" #include "base/path.h" #include "base/utils/net.h" -#include "base/utils/thread.h" #include "base/utils/version.h" #include "api/isessionmanager.h" -inline const Utils::Version<3, 2> API_VERSION {2, 11, 0}; - -class QTimer; +inline const Utils::Version<3, 2> API_VERSION {2, 11, 6}; class APIController; class AuthController; -class FreeDiskSpaceChecker; class WebApplication; namespace BitTorrent @@ -128,9 +124,11 @@ private: bool isAuthNeeded(); bool isPublicAPI(const QString &scope, const QString &action) const; + bool isOriginTrustworthy() const; bool isCrossSiteRequest(const Http::Request &request) const; bool validateHostHeader(const QStringList &domains) const; + // reverse proxy QHostAddress resolveClientAddress() const; // Persistent data @@ -150,6 +148,7 @@ private: { // <, HTTP method> {{u"app"_s, u"sendTestEmail"_s}, Http::METHOD_POST}, + {{u"app"_s, u"setCookies"_s}, Http::METHOD_POST}, {{u"app"_s, u"setPreferences"_s}, Http::METHOD_POST}, {{u"app"_s, u"shutdown"_s}, Http::METHOD_POST}, {{u"auth"_s, u"login"_s}, Http::METHOD_POST}, @@ -177,6 +176,7 @@ private: {{u"torrents"_s, u"addPeers"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"addTags"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"addTrackers"_s}, Http::METHOD_POST}, + {{u"torrents"_s, u"addWebSeeds"_s}, Http::METHOD_POST}, {{u"transfer"_s, u"banPeers"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"bottomPrio"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"createCategory"_s}, Http::METHOD_POST}, @@ -186,6 +186,7 @@ private: {{u"torrents"_s, u"deleteTags"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"editCategory"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"editTracker"_s}, Http::METHOD_POST}, + {{u"torrents"_s, u"editWebSeed"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"filePrio"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"increasePrio"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"reannounce"_s}, Http::METHOD_POST}, @@ -193,6 +194,7 @@ private: {{u"torrents"_s, u"removeCategories"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"removeTags"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"removeTrackers"_s}, Http::METHOD_POST}, + {{u"torrents"_s, u"removeWebSeeds"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"rename"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"renameFile"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"renameFolder"_s}, Http::METHOD_POST}, @@ -206,6 +208,7 @@ private: {{u"torrents"_s, u"setShareLimits"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"setSSLParameters"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"setSuperSeeding"_s}, Http::METHOD_POST}, + {{u"torrents"_s, u"setTags"_s}, Http::METHOD_POST}, {{u"torrents"_s, u"setUploadLimit"_s}, Http::METHOD_POST}, {{u"transfer"_s, u"setDownloadLimit"_s}, Http::METHOD_POST}, {{u"transfer"_s, u"setSpeedLimitsMode"_s}, Http::METHOD_POST}, @@ -234,7 +237,7 @@ private: AuthController *m_authController = nullptr; bool m_isLocalAuthEnabled = false; bool m_isAuthSubnetWhitelistEnabled = false; - QVector m_authSubnetWhitelist; + QList m_authSubnetWhitelist; int m_sessionTimeout = 0; QString m_sessionCookieName; @@ -247,13 +250,10 @@ private: // Reverse proxy bool m_isReverseProxySupportEnabled = false; - QVector m_trustedReverseProxyList; + QList m_trustedReverseProxyList; QHostAddress m_clientAddress; - QVector m_prebuiltHeaders; + QList m_prebuiltHeaders; - Utils::Thread::UniquePtr m_workerThread; - FreeDiskSpaceChecker *m_freeDiskSpaceChecker = nullptr; - QTimer *m_freeDiskSpaceCheckingTimer = nullptr; BitTorrent::TorrentCreationManager *m_torrentCreationManager = nullptr; }; diff --git a/src/webui/webui.cpp b/src/webui/webui.cpp index 20036c156..fc177d56b 100644 --- a/src/webui/webui.cpp +++ b/src/webui/webui.cpp @@ -42,7 +42,7 @@ WebUI::WebUI(IApplication *app, const QByteArray &tempPasswordHash) : ApplicationComponent(app) - , m_passwordHash {tempPasswordHash} + , m_tempPasswordHash {tempPasswordHash} { configure(); connect(Preferences::instance(), &Preferences::changed, this, &WebUI::configure); @@ -54,12 +54,17 @@ void WebUI::configure() m_errorMsg.clear(); const Preferences *pref = Preferences::instance(); + m_isEnabled = pref->isWebUIEnabled(); const QString username = pref->getWebUIUsername(); - if (const QByteArray passwordHash = pref->getWebUIPassword(); !passwordHash.isEmpty()) - m_passwordHash = passwordHash; + QByteArray passwordHash = m_tempPasswordHash; + if (const QByteArray prefPasswordHash = pref->getWebUIPassword(); !prefPasswordHash.isEmpty()) + { + passwordHash = prefPasswordHash; + m_tempPasswordHash.clear(); + } - if (m_isEnabled && (username.isEmpty() || m_passwordHash.isEmpty())) + if (m_isEnabled && (username.isEmpty() || passwordHash.isEmpty())) { setError(tr("Credentials are not set")); } @@ -98,7 +103,7 @@ void WebUI::configure() } m_webapp->setUsername(username); - m_webapp->setPasswordHash(m_passwordHash); + m_webapp->setPasswordHash(passwordHash); if (pref->isWebUIHttpsEnabled()) { diff --git a/src/webui/webui.h b/src/webui/webui.h index fa0589c2a..01820060b 100644 --- a/src/webui/webui.h +++ b/src/webui/webui.h @@ -77,5 +77,5 @@ private: QPointer m_dnsUpdater; QPointer m_webapp; - QByteArray m_passwordHash; + QByteArray m_tempPasswordHash; }; diff --git a/src/webui/www/.gitignore b/src/webui/www/.gitignore new file mode 100644 index 000000000..2f85f13cb --- /dev/null +++ b/src/webui/www/.gitignore @@ -0,0 +1,5 @@ +# Web UI tools +.eslintcache +.stylelintcache +node_modules +package-lock.json diff --git a/src/webui/www/.htmlvalidate.json b/src/webui/www/.htmlvalidate.json deleted file mode 100644 index d07cc98d3..000000000 --- a/src/webui/www/.htmlvalidate.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": [ - "html-validate:recommended" - ], - "rules": { - "empty-heading": "off", - "long-title": "off", - "no-conditional-comment": "off", - "no-inline-style": "off", - "prefer-button": "off", - "prefer-tbody": "off", - "text-content": "off", - "void-style": "off", - "wcag/h63": "off", - "wcag/h71": "off" - } -} diff --git a/src/webui/www/.htmlvalidate.mjs b/src/webui/www/.htmlvalidate.mjs new file mode 100644 index 000000000..b39ef1db3 --- /dev/null +++ b/src/webui/www/.htmlvalidate.mjs @@ -0,0 +1,20 @@ +import { defineConfig } from "html-validate"; + +export default defineConfig({ + extends: [ + "html-validate:recommended" + ], + rules: { + "input-missing-label": "error", + "long-title": "off", + "no-inline-style": "off", + "no-missing-references": "error", + "prefer-button": "off", + "require-sri": [ + "error", + { + target: "crossorigin" + } + ] + } +}); diff --git a/src/webui/www/.stylelintrc.json b/src/webui/www/.stylelintrc.json deleted file mode 100644 index 55324a0dd..000000000 --- a/src/webui/www/.stylelintrc.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "plugins": [ - "stylelint-order" - ], - "ignoreFiles": ["private/css/lib/*.css"], - "rules": { - "color-hex-length": null, - "comment-empty-line-before": null, - "comment-whitespace-inside": null, - "function-name-case": null, - "length-zero-no-unit": null, - "no-descending-specificity": null, - "order/properties-alphabetical-order": true, - "selector-class-pattern": null, - "selector-id-pattern": null, - "value-keyword-case": null - } -} diff --git a/src/webui/www/eslint.config.mjs b/src/webui/www/eslint.config.mjs index ba6f91a0d..6aafb8d64 100644 --- a/src/webui/www/eslint.config.mjs +++ b/src/webui/www/eslint.config.mjs @@ -1,8 +1,9 @@ -import Globals from 'globals'; -import Html from 'eslint-plugin-html'; -import Js from '@eslint/js'; -import Stylistic from '@stylistic/eslint-plugin'; -import * as RegexpPlugin from 'eslint-plugin-regexp'; +import Globals from "globals"; +import Html from "eslint-plugin-html"; +import Js from "@eslint/js"; +import PreferArrowFunctions from "eslint-plugin-prefer-arrow-functions"; +import Stylistic from "@stylistic/eslint-plugin"; +import * as RegexpPlugin from "eslint-plugin-regexp"; export default [ Js.configs.recommended, @@ -22,23 +23,43 @@ export default [ }, plugins: { Html, + PreferArrowFunctions, RegexpPlugin, Stylistic }, rules: { + "curly": ["error", "multi-or-nest", "consistent"], "eqeqeq": "error", + "guard-for-in": "error", "no-undef": "off", "no-unused-vars": "off", + "no-var": "error", + "operator-assignment": "error", + "prefer-arrow-callback": "error", + "prefer-const": "error", + "prefer-template": "error", + "radix": "error", + "PreferArrowFunctions/prefer-arrow-functions": "error", "Stylistic/no-mixed-operators": [ "error", { - "groups": [ + groups: [ ["&", "|", "^", "~", "<<", ">>", ">>>", "==", "!=", "===", "!==", ">", ">=", "<", "<=", "&&", "||", "in", "instanceof"] ] } ], "Stylistic/nonblock-statement-body-position": ["error", "below"], - "Stylistic/semi": "error" + "Stylistic/quotes": [ + "error", + "double", + { + avoidEscape: true, + allowTemplateLiterals: true + } + ], + "Stylistic/quote-props": ["error", "consistent-as-needed"], + "Stylistic/semi": "error", + "Stylistic/spaced-comment": ["error", "always", { exceptions: ["*"] }] } } ]; diff --git a/src/webui/www/package.json b/src/webui/www/package.json index 975a90014..2e0a23b4b 100644 --- a/src/webui/www/package.json +++ b/src/webui/www/package.json @@ -6,21 +6,23 @@ "url": "https://github.com/qbittorrent/qBittorrent.git" }, "scripts": { - "extract_translation": "i18next -c public/i18next-parser.config.mjs public/index.html public/scripts/login.js", - "format": "js-beautify -r private/*.html private/scripts/*.js private/views/*.html public/*.html public/scripts/*.js && prettier --write **.css", - "lint": "eslint private/*.html private/scripts/*.js private/views/*.html public/*.html public/scripts/*.js && stylelint **/*.css && html-validate private public" + "format": "js-beautify -r *.mjs private/*.html private/scripts/*.js private/views/*.html public/*.html public/scripts/*.js test/*/*.js && prettier --write **.css", + "lint": "eslint --cache *.mjs private/*.html private/scripts/*.js private/views/*.html public/*.html public/scripts/*.js test/*/*.js && stylelint --cache **/*.css && html-validate private public", + "test": "vitest run --dom" }, "devDependencies": { "@stylistic/eslint-plugin": "*", "eslint": "*", "eslint-plugin-html": "*", + "eslint-plugin-prefer-arrow-functions": "*", "eslint-plugin-regexp": "*", + "happy-dom": "*", "html-validate": "*", - "i18next-parser": "*", "js-beautify": "*", "prettier": "*", "stylelint": "*", "stylelint-config-standard": "*", - "stylelint-order": "*" + "stylelint-order": "*", + "vitest": "*" } } diff --git a/src/webui/www/private/addpeers.html b/src/webui/www/private/addpeers.html index a86673d14..ad645b3d9 100644 --- a/src/webui/www/private/addpeers.html +++ b/src/webui/www/private/addpeers.html @@ -1,57 +1,56 @@ - + - + QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog] - + + + @@ -59,10 +58,10 @@

-

QBT_TR(List of peers to add (one IP per line):)QBT_TR[CONTEXT=PeersAdditionDialog]

+
- +
diff --git a/src/webui/www/private/addtrackers.html b/src/webui/www/private/addtrackers.html index e22cf078b..818f20f09 100644 --- a/src/webui/www/private/addtrackers.html +++ b/src/webui/www/private/addtrackers.html @@ -1,57 +1,55 @@ - + - + QBT_TR(Add trackers)QBT_TR[CONTEXT=TrackersAdditionDialog] - + + + -
-
-

QBT_TR(List of trackers to add (one per line):)QBT_TR[CONTEXT=TrackersAdditionDialog]

+
+ -
- +
diff --git a/src/webui/www/private/addwebseeds.html b/src/webui/www/private/addwebseeds.html new file mode 100644 index 000000000..c87c17146 --- /dev/null +++ b/src/webui/www/private/addwebseeds.html @@ -0,0 +1,57 @@ + + + + + + QBT_TR(Add web seeds)QBT_TR[CONTEXT=HttpServer] + + + + + + + + + +
+
+ + +
+ +
+ + + diff --git a/src/webui/www/private/confirmdeletion.html b/src/webui/www/private/confirmdeletion.html deleted file mode 100644 index 9c49f2e2d..000000000 --- a/src/webui/www/private/confirmdeletion.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg] - - - - - - - -
- -

  QBT_TR(Are you sure you want to remove the selected torrents from the transfer list?)QBT_TR[CONTEXT=HttpServer]

-      -

-
-      -
- - - diff --git a/src/webui/www/private/confirmfeeddeletion.html b/src/webui/www/private/confirmfeeddeletion.html index a77ecba0a..b0f2abe5c 100644 --- a/src/webui/www/private/confirmfeeddeletion.html +++ b/src/webui/www/private/confirmfeeddeletion.html @@ -1,41 +1,48 @@ - + - + QBT_TR(Deletion confirmation)QBT_TR[CONTEXT=RSSWidget] - + + + @@ -45,8 +52,8 @@

QBT_TR(Are you sure you want to delete the selected RSS feeds?)QBT_TR[CONTEXT=RSSWidget]

- - + +
diff --git a/src/webui/www/private/confirmruleclear.html b/src/webui/www/private/confirmruleclear.html index 6ea5ce63e..9817d3c1d 100644 --- a/src/webui/www/private/confirmruleclear.html +++ b/src/webui/www/private/confirmruleclear.html @@ -1,35 +1,39 @@ - + - + QBT_TR(Clear downloaded episodes)QBT_TR[CONTEXT=AutomatedRssDownloader] - + + + @@ -39,8 +43,8 @@

QBT_TR(Are you sure you want to clear the list of downloaded episodes for the selected rule?)QBT_TR[CONTEXT=AutomatedRssDownloader]

- - + +
diff --git a/src/webui/www/private/confirmruledeletion.html b/src/webui/www/private/confirmruledeletion.html index 7b9614456..cf9f7d874 100644 --- a/src/webui/www/private/confirmruledeletion.html +++ b/src/webui/www/private/confirmruledeletion.html @@ -1,42 +1,48 @@ - + - + QBT_TR(Rule deletion confirmation)QBT_TR[CONTEXT=AutomatedRssDownloader] - + + + @@ -46,8 +52,8 @@

QBT_TR(Are you sure you want to remove the selected download rules?)QBT_TR[CONTEXT=AutomatedRssDownloader]

- - + +
diff --git a/src/webui/www/private/confirmtrackerdeletion.html b/src/webui/www/private/confirmtrackerdeletion.html new file mode 100644 index 000000000..4324f528f --- /dev/null +++ b/src/webui/www/private/confirmtrackerdeletion.html @@ -0,0 +1,57 @@ + + + + + + QBT_TR(Remove tracker)QBT_TR[CONTEXT=confirmDeletionDlg] + + + + + + + + + +
+

+
+ + +
+
+ + + diff --git a/src/webui/www/private/css/Layout.css b/src/webui/www/private/css/Layout.css index 0245cbcbb..fb940cbf1 100644 --- a/src/webui/www/private/css/Layout.css +++ b/src/webui/www/private/css/Layout.css @@ -1,5 +1,3 @@ -@import url("palette.css"); - /* Core.css for Mocha UI @@ -20,10 +18,6 @@ Required by: /* Layout ---------------------------------------------------------------- */ -body { - margin: 0; /* Required */ -} - #desktop { cursor: default; /* Fix for issue in IE7. IE7 wants to use the I-bar text cursor */ height: 100%; @@ -90,15 +84,14 @@ body { #desktopNavbar { background-color: var(--color-background-default); - margin: 0 0px; overflow: hidden; /* Remove this line if you want the menu to be backward compatible with Firefox 2 */ } #desktopNavbar ul { font-size: 12px; - list-style: none; margin: 0; padding: 0; + user-select: none; } #desktopNavbar > ul > li { @@ -120,6 +113,10 @@ body { color: var(--color-text-white); } +#desktopNavbar a:hover img { + filter: var(--color-icon-hover); +} + #desktopNavbar ul li a.arrow-right, #desktopNavbar ul li a:hover.arrow-right { background-image: url("../images/arrow-right.gif"); @@ -161,8 +158,8 @@ body { #desktopNavbar li ul li a { color: var(--color-text-default); font-weight: normal; - min-width: 120px; - padding: 4px 10px 4px 25px; + min-width: 155px; + padding: 4px 10px 4px 23px; position: relative; } @@ -197,14 +194,17 @@ li.divider { border-top: 1px solid var(--color-border-default); overflow: hidden; /* This can be set to hidden or auto */ position: relative; - /*height: 100%;*/ +} + +#propertiesPanel_header { + height: 28px; } /* Footer */ #desktopFooterWrapper { bottom: 0; - height: 30px; + height: 28px; left: 0; overflow: hidden; position: absolute; @@ -214,8 +214,8 @@ li.divider { #desktopFooter { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; - height: 24px; - padding: 6px 8px 0; + height: 28px; + padding: 2px; } /* Panel Layout @@ -246,6 +246,7 @@ li.divider { } .pad { + height: 100%; padding: 8px; } @@ -263,7 +264,6 @@ li.divider { display: inline-block; font-size: 12px; height: 22px; - margin: 0; overflow: hidden; padding: 3px 8px 0; } @@ -299,7 +299,7 @@ li.divider { background: url("../images/handle-icon-horizontal.gif") center center no-repeat; font-size: 1px; - height: 4px; + height: 6px; line-height: 1px; margin: 0 auto; overflow: hidden; @@ -313,7 +313,7 @@ li.divider { float: left; min-height: 10px; overflow: hidden; - width: 4px; + width: 8px; } /* Toolboxes */ @@ -321,7 +321,7 @@ li.divider { .toolbox { float: right; height: 24px; - margin-top: 3px; + margin-top: 1px; overflow: hidden; padding: 0 5px; text-align: right; diff --git a/src/webui/www/private/css/Tabs.css b/src/webui/www/private/css/Tabs.css index e5b4cb199..06a5cebb8 100644 --- a/src/webui/www/private/css/Tabs.css +++ b/src/webui/www/private/css/Tabs.css @@ -1,5 +1,3 @@ -@import url("palette.css"); - /* Tabs.css for Mocha UI @@ -21,13 +19,12 @@ Required by: .toolbarTabs { overflow: visible; + user-select: none; } .tab-menu { font-size: 11px; - line-height: 16px; - list-style: none; - margin: 0; + list-style-type: none; padding: 0; } @@ -36,17 +33,27 @@ Required by: float: left; } +.tab-menu .selected img, +.tab-menu li:hover img { + filter: var(--color-icon-hover); +} + .tab-menu li a { + align-items: center; background-color: var(--color-background-default); - border-radius: 5px 5px 0 0; + border-radius: 3px 3px 0 0; color: var(--color-text-default); - display: block; - font-weight: normal; - margin-left: 8px; - padding: 5px 16px; + display: flex; + gap: 5px; + margin-left: 6px; + padding: 5px 7px 3px; text-align: center; } +.tab-menu li:first-child a { + margin-left: 4px; +} + .tab-menu li:hover a { background-color: var(--color-background-hover); color: var(--color-text-white); @@ -55,5 +62,4 @@ Required by: .tab-menu li.selected a { background-color: var(--color-background-blue); color: var(--color-text-white); - font-weight: bold; } diff --git a/src/webui/www/private/css/Window.css b/src/webui/www/private/css/Window.css index 73cab1219..9aeaf365f 100644 --- a/src/webui/www/private/css/Window.css +++ b/src/webui/www/private/css/Window.css @@ -1,5 +1,3 @@ -@import url("palette.css"); - /* Window.css for Mocha UI @@ -54,11 +52,14 @@ Required by: } .mochaTitlebar h3 { + background-size: 16px !important; /* override mocha titlebar logo inline style */ font-size: 12px; font-weight: bold; line-height: 15px; - margin: 0; + overflow: hidden; padding: 5px 10px 4px 12px; + text-overflow: ellipsis; + white-space: nowrap; } .mochaToolbarWrapper { @@ -98,7 +99,7 @@ div.mochaToolbarWrapper.bottom { } .mocha .handle { - background: #0f0; + background: #00ff00; font-size: 1px; /* For IE6 */ height: 3px; opacity: 0; @@ -110,7 +111,7 @@ div.mochaToolbarWrapper.bottom { /* Corner resize handles */ .mocha .corner { - background: #f00; + background: #ff0000; height: 10px; width: 10px; } @@ -204,7 +205,7 @@ div.mochaToolbarWrapper.bottom { ---------------------------------------------------------------- */ #modalOverlay { - background: #000; + background: hsl(0deg 0% 0% / 30%); display: none; left: 0; opacity: 0; @@ -228,7 +229,7 @@ div.mochaToolbarWrapper.bottom { /* Underlay */ #windowUnderlay { - background: #fff; + background: #ffffff; left: 0; position: fixed; top: 0; @@ -275,18 +276,18 @@ div.mochaToolbarWrapper.bottom { /* Modals */ .modal2 { - border: 8px solid #fff; + border: 8px solid #ffffff; } .modal2 .mochaContentBorder { - border-width: 0px; + border-width: 0; } /* Window Themes */ .mocha.no-canvas { background: #e5e5e5; - border: 1px solid #555; + border: 1px solid #555555; } .mocha.no-canvas .mochaTitlebar { @@ -294,7 +295,7 @@ div.mochaToolbarWrapper.bottom { } .mocha.transparent .mochaTitlebar h3 { - color: #fff; + color: #ffffff; display: none; } @@ -311,7 +312,7 @@ div.mochaToolbarWrapper.bottom { } .mocha.notification .mochaContentBorder { - border-width: 0px; + border-width: 0; } .mocha.notification .mochaContentWrapper { @@ -344,12 +345,12 @@ div.mochaToolbarWrapper.bottom { } .jsonExample .mochaTitlebar h3 { - color: #ddd; + color: #dddddd; } /* This does not work in IE6. */ .isFocused.jsonExample .mochaTitlebar h3 { - color: #fff; + color: #ffffff; } #fxmorpherExample .mochaContentWrapper { @@ -357,7 +358,7 @@ div.mochaToolbarWrapper.bottom { } #clock { - background: #fff; + background: #ffffff; } /* Workaround to make invisible buttons clickable */ diff --git a/src/webui/www/private/css/dynamicTable.css b/src/webui/www/private/css/dynamicTable.css index bf79be70a..525c675ac 100644 --- a/src/webui/www/private/css/dynamicTable.css +++ b/src/webui/www/private/css/dynamicTable.css @@ -1,43 +1,92 @@ -@import url("palette.css"); - /************************************************************** Dynamic Table v 0.4 **************************************************************/ - -.dynamicTable tbody tr:nth-child(even), -.dynamicTable tbody tr.alt { +.altRowColors tbody tr:nth-child(odd of :not(.invisible)) { background-color: var(--color-background-default); } #transferList .dynamicTable td { - padding: 4px 2px; + padding: 2px; } -.dynamicTable tbody tr.selected { +.dynamicTableDiv table.dynamicTable tbody tr.selected { background-color: var(--color-background-blue); color: var(--color-text-white); } -.dynamicTable tbody tr:hover { +.dynamicTableDiv table.dynamicTable tbody tr:hover { background-color: var(--color-background-hover); color: var(--color-text-white); } -#transferList tr:hover { - cursor: pointer; +#transferList .stateIcon, +#torrentCreatorContentView .stateIcon { + background: left center / contain no-repeat; + margin-left: 3px; + padding-left: 1.65em; + + &.stateIconColumn { + height: 14px; + margin: auto; + padding-left: 0; + width: 14px; + } + + &.stateDownloading { + background-image: url("../images/downloading.svg"); + } + + &.stateUploading { + background-image: url("../images/upload.svg"); + } + + &.stateStalledUP { + background-image: url("../images/stalledUP.svg"); + } + + &.stateStalledDL { + background-image: url("../images/stalledDL.svg"); + } + + &.stateStoppedDL { + background-image: url("../images/stopped.svg"); + } + + &.stateStoppedUP { + background-image: url("../images/checked-completed.svg"); + } + + &.stateQueued { + background-image: url("../images/queued.svg"); + } + + &.stateChecking { + background-image: url("../images/force-recheck.svg"); + } + + &.stateMoving { + background-image: url("../images/set-location.svg"); + } + + &.stateError { + background-image: url("../images/error.svg"); + } + + &.stateRunning { + background-image: url("../images/torrent-start.svg"); + } + + &.stateUnknown { + background-image: none; + } } -#transferList img.stateIcon { - height: 1.3em; - margin-bottom: -1px; - vertical-align: middle; -} - -tr.dynamicTableHeader { - cursor: pointer; +#transferList #transferList_pad { + /* override for default mocha inline style */ + display: flex !important; } .dynamicTable { @@ -49,11 +98,18 @@ tr.dynamicTableHeader { .dynamicTable th { border-right: 1px solid var(--color-border-default); - box-sizing: border-box; padding: 4px 2px; white-space: nowrap; } +.dynamicTable tr:hover { + cursor: pointer; +} + +.dynamicTable tr:is(:hover, .selected) img:not(.flags) { + filter: var(--color-icon-hover); +} + .dynamicTable td { padding: 4px 2px; white-space: nowrap; @@ -68,31 +124,68 @@ tr.dynamicTableHeader { .dynamicTable th.sorted { background-image: url("../images/go-up.svg"); - background-position: right; + background-position: right 3px center; background-repeat: no-repeat; - background-size: 15px; + background-size: 12px; } .dynamicTable th.sorted.reverse { background-image: url("../images/go-down.svg"); } -.dynamicTable td img.flags { - height: 1.25em; - vertical-align: middle; +.dynamicTable span.flags { + background: left center / contain no-repeat; + margin-left: 2px; + padding-left: 25px; +} + +div:has(> div.dynamicTableFixedHeaderDiv):not(.invisible) { + display: flex; + flex-direction: column; + height: 100%; } .dynamicTableFixedHeaderDiv { + flex-shrink: 0; overflow: hidden; } +#propertiesPanel .dynamicTableFixedHeaderDiv, +#torrentsTableFixedHeaderDiv { + border-bottom: 1px solid var(--color-border-default); +} + .dynamicTableDiv { + flex-grow: 1; overflow: auto; } .dynamicTableDiv thead th { - height: 0px !important; - line-height: 0px !important; - padding-bottom: 0px !important; - padding-top: 0px !important; + height: 0 !important; + line-height: 0 !important; + padding-bottom: 0 !important; + padding-top: 0 !important; +} + +/* Trackers table */ +#torrentTrackersTableDiv tr:not(.selected, :hover) { + & .trackerDisabled { + color: var(--color-tracker-disabled); + } + + & .trackerNotContacted { + color: var(--color-tracker-not-contacted); + } + + & .trackerWorking { + color: var(--color-tracker-working); + } + + & .trackerUpdating { + color: var(--color-tracker-updating); + } + + & .trackerNotWorking { + color: var(--color-tracker-not-working); + } } diff --git a/src/webui/www/private/css/noscript.css b/src/webui/www/private/css/noscript.css index 090b572b8..cb0063ac5 100644 --- a/src/webui/www/private/css/noscript.css +++ b/src/webui/www/private/css/noscript.css @@ -3,6 +3,6 @@ } #noscript { - color: #f00; + color: #ff0000; text-align: center; } diff --git a/src/webui/www/private/css/palette.css b/src/webui/www/private/css/palette.css deleted file mode 100644 index 10fcd991b..000000000 --- a/src/webui/www/private/css/palette.css +++ /dev/null @@ -1,49 +0,0 @@ -/* Adaptive color palette */ - -/* Default rules */ -* { - --color-accent-blue: hsl(210deg 65% 55%); - --color-text-blue: hsl(210deg 100% 55%); - --color-text-orange: hsl(26deg 100% 45%); - --color-text-red: hsl(0deg 100% 65%); - --color-text-green: hsl(110deg 94% 27%); - --color-text-white: hsl(0deg 0% 100%); - --color-text-disabled: hsl(0deg 0% 60%); - --color-text-default: hsl(0deg 0% 33%); - --color-background-blue: hsl(210deg 65% 55%); - --color-background-popup: hsl(0deg 0% 100%); - --color-background-default: hsl(0deg 0% 94%); - --color-background-hover: hsl(26deg 80% 60%); - --color-border-blue: hsl(210deg 42% 48%); - --color-border-default: hsl(0deg 0% 85%); -} - -:root { - color-scheme: light dark; -} - -/* Light corrections */ -@media (prefers-color-scheme: light) { - :root { - color-scheme: light; - } -} - -/* Dark corrections */ -@media (prefers-color-scheme: dark) { - :root { - color-scheme: dark; - } - - * { - --color-accent-blue: hsl(210deg 42% 48%); - --color-text-blue: hsl(210deg 88.1% 73.5%); - --color-text-orange: hsl(26deg 65% 70%); - --color-text-default: hsl(0deg 0% 90%); - --color-background-blue: hsl(210deg 42% 48%); - --color-background-popup: hsl(0deg 0% 20%); - --color-background-default: hsl(0deg 0% 25%); - --color-background-hover: hsl(26deg 50% 55%); - --color-border-default: hsl(0deg 0% 33%); - } -} diff --git a/src/webui/www/private/css/style.css b/src/webui/www/private/css/style.css index 97e2314a5..46a850315 100644 --- a/src/webui/www/private/css/style.css +++ b/src/webui/www/private/css/style.css @@ -1,45 +1,149 @@ -@import url("palette.css"); +/* Adaptive color palette */ + +/* Default rules */ +:root { + --color-accent-blue: hsl(210deg 65% 55%); + --color-text-blue: hsl(210deg 100% 55%); + --color-text-orange: hsl(26deg 100% 45%); + --color-text-red: hsl(0deg 100% 65%); + --color-text-green: hsl(110deg 94% 27%); + --color-text-white: hsl(0deg 0% 100%); + --color-text-disabled: hsl(0deg 0% 60%); + --color-text-default: hsl(0deg 0% 33%); + --color-background-primary: hsl(0deg 0% 100%); + --color-background-blue: hsl(210deg 65% 55%); + --color-background-popup: hsl(0deg 0% 100%); + --color-background-default: hsl(0deg 0% 94%); + --color-background-hover: hsl(26deg 80% 60%); + --color-border-blue: hsl(210deg 42% 48%); + --color-border-default: hsl(0deg 0% 85%); + --color-icon-hover: brightness(0) invert(100%) sepia(100%) saturate(0%) + hue-rotate(108deg) brightness(104%) contrast(104%); + + & #torrentTrackersTableDiv tr { + --color-tracker-disabled: hsl(240deg 4% 46%); + --color-tracker-not-contacted: hsl(32deg 95% 44%); + --color-tracker-working: hsl(142deg 76% 36%); + --color-tracker-updating: hsl(210deg 100% 55%); + --color-tracker-not-working: hsl(0deg 100% 65%); + } + + &:not(.dark) { + color-scheme: light; + } + + &.dark { + --color-accent-blue: hsl(210deg 42% 48%); + --color-text-blue: hsl(210deg 88.1% 73.5%); + --color-text-orange: hsl(26deg 65% 70%); + --color-text-default: hsl(0deg 0% 90%); + --color-background-primary: hsl(0deg 0% 7%); + --color-background-blue: hsl(210deg 42% 48%); + --color-background-popup: hsl(0deg 0% 20%); + --color-background-default: hsl(0deg 0% 25%); + --color-background-hover: hsl(26deg 50% 55%); + --color-border-default: hsl(0deg 0% 33%); + + & #torrentTrackersTableDiv tr { + --color-tracker-disabled: hsl(240deg 6% 83%); + --color-tracker-not-contacted: hsl(39deg 100% 72%); + --color-tracker-working: hsl(142deg 69% 58%); + --color-tracker-updating: hsl(210deg 88.1% 73.5%); + --color-tracker-not-working: hsl(0deg 100% 71%); + } + + color-scheme: dark; + + #rssButtonBar img, + #startSearchButton img, + #manageSearchPlugins img { + filter: brightness(0) saturate(100%) invert(100%) sepia(0%) + saturate(1%) hue-rotate(156deg) brightness(106%) contrast(101%); + } + } +} /* Reset */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +* { + margin: 0; +} + +input, +button, +textarea, +select { + font: inherit; +} + a img, :link img, :visited img { border: none; } +ul, +ol { + list-style: none; +} + +/* Scrollbars */ + +@supports (scrollbar-width: auto) and (selector(::-webkit-scrollbar)) { + :root[slick-uniqueid], /* targets iframe mocha dialogs */ + .dynamicTableDiv, + .mochaContentWrapper, + .panel, + .scrollableMenu, + #rssDetailsView { + scrollbar-width: thin; + } +} + /* Forms */ +input[type="search"], input[type="text"], input[type="number"], input[type="password"], input[type="button"], button, +textarea, select { border: 1px solid var(--color-border-default); border-radius: 3px; color: var(--color-text-default); + padding: 3px; +} + +select { padding: 4px; } input[type="checkbox"], input[type="radio"] { accent-color: var(--color-accent-blue); + margin: 3px 3px 3px 4px; } input[type="button"], input[type="submit"], button { cursor: pointer; - padding: 4px 16px; + padding-left: 10px; + padding-right: 10px; } button:disabled { cursor: initial; } -/*table { border-collapse: collapse; border-spacing: 0; }*/ - :focus { outline: none; } @@ -47,14 +151,19 @@ button:disabled { /* Structure */ body { + background-color: var(--color-background-primary); color: var(--color-text-default); font-family: Arial, Helvetica, sans-serif; font-size: 12px; - line-height: 18px; - margin: 0; + line-height: 1.5; text-align: left; } +/* targets dialog windows loaded via iframes */ +body:not(:has(#desktop)) { + background-color: var(--color-background-popup); +} + .aside { width: 300px; } @@ -70,7 +179,6 @@ h3, h4 { font-size: 12px; font-weight: bold; - margin: 0; padding: 0 0 5px; } @@ -111,17 +219,11 @@ a:hover { } p { - margin: 0; padding: 0 0 9px; } /* List Elements */ -ul { - list-style: outside; - margin: 0 0 9px 16px; -} - dt { font-weight: bold; } @@ -134,7 +236,8 @@ dd { fieldset { border: 1px solid var(--color-border-default); - border-radius: 5px; + border-radius: 1px; + margin: 0 2px; } /* Code */ @@ -156,9 +259,10 @@ pre { hr { background-color: var(--color-background-default); - border: 0px; + border: 0; color: var(--color-text-default); height: 1px; + margin-bottom: 6px; } .vcenter { @@ -171,34 +275,21 @@ hr { } #trackersUrls { + display: block; height: 100%; + margin: 0 auto 10px; width: 90%; } -#Filters ul { - list-style-type: none; -} - -#Filters ul li { - margin-left: -16px; +#Filters { + overflow-x: hidden !important; /* override for default mocha inline style */ } #Filters ul img { height: 16px; - padding: 0 4px; - vertical-align: middle; width: 16px; } -.selectedFilter { - background-color: var(--color-background-blue) !important; - color: var(--color-text-white) !important; -} - -.selectedFilter a { - color: var(--color-text-white) !important; -} - #properties { background-color: var(--color-background-default); } @@ -207,7 +298,6 @@ a.propButton { border: 1px solid rgb(85 81 91); margin-left: 3px; margin-right: 3px; - /*border-radius: 3px;*/ padding: 2px; } @@ -219,13 +309,20 @@ a.propButton img { overflow: hidden auto; } +.propertiesTabContent { + height: 100%; + + > div { + height: 100%; + } +} + /* context menu specific */ .contextMenu { background-color: var(--color-background-default); border: 1px solid var(--color-border-default); display: none; - list-style-type: none; padding: 0; } @@ -233,16 +330,30 @@ a.propButton img { border-top: 1px solid var(--color-border-default); } +.contextMenu .separatorBottom { + border-bottom: 1px solid var(--color-border-default); +} + .contextMenu li { - margin: 0; padding: 0; + user-select: none; +} + +.contextMenu li.disabled { + background-color: transparent; + cursor: default; + opacity: 0.5; +} + +.contextMenu li.disabled a { + pointer-events: none; } .contextMenu li a { + align-items: center; color: var(--color-text-default); - display: block; - font-family: Tahoma, Arial, sans-serif; - font-size: 12px; + display: flex; + gap: 2px; padding: 5px 20px 5px 5px; text-decoration: none; white-space: nowrap; @@ -253,23 +364,18 @@ a.propButton img { color: var(--color-text-white); } -.contextMenu li a.disabled { - font-style: italic; -} - -.contextMenu li a.disabled:hover { - color: var(--color-text-disabled); +.contextMenu li a:hover img:not(.highlightedCategoryIcon) { + filter: var(--color-icon-hover); } .contextMenu li ul { background: var(--color-background-default); border: 1px solid var(--color-border-default); left: -999em; - list-style-type: none; margin: -29px 0 0 100%; padding: 0; position: absolute; - width: 164px; + width: max-content; z-index: 8000; } @@ -277,33 +383,36 @@ a.propButton img { position: relative; } -.contextMenu li a.arrow-right, -.contextMenu li a:hover.arrow-right { +.contextMenu li:not(.disabled) .arrow-right { background-image: url("../images/arrow-right.gif"); background-position: right center; background-repeat: no-repeat; } -.contextMenu li:hover ul, -.contextMenu li.ieHover ul, -.contextMenu li li.ieHover ul, -.contextMenu li li li.ieHover ul, -.contextMenu li li:hover ul, -.contextMenu li li li:hover ul { +.contextMenu li:not(.disabled):hover > ul { /* lists nested under hovered list items */ left: auto; } .contextMenu li img { height: 16px; - margin-bottom: -4px; - margin-right: 0.5em; /* return missed padding */ + margin-right: 0.5em; width: 16px; } .contextMenu li input[type="checkbox"] { - position: relative; - top: 3px; + margin: 0 0.5em 0 0; + width: 16px; +} + +#contextCategoryList img { + border: 1px solid transparent; + box-sizing: content-box; + padding: 1px; +} + +#contextCategoryList img.highlightedCategoryIcon { + background-color: hsl(213deg 94% 86%); } /* Sliders */ @@ -328,13 +437,12 @@ a.propButton img { .sliderarea { background: #f2f2f2 url("../images/slider-area.gif") repeat-x; border: 1px solid #a3a3a3; - border-bottom: 1px solid #ccc; - border-left: 1px solid #ccc; + border-bottom: 1px solid #cccccc; + border-left: 1px solid #cccccc; font-size: 1px; height: 7px; left: 0; line-height: 1px; - margin: 0; overflow: hidden; padding: 0; position: absolute; @@ -382,9 +490,7 @@ a.propButton img { } .MyMenuIcon { - margin-bottom: -3px; - margin-left: -18px; - padding-right: 5px; + margin: 0 6px -3px -18px; } #mainWindowTabs { @@ -400,13 +506,13 @@ a.propButton img { #torrentsFilterInput { background-color: var(--color-background-default); background-image: url("../images/edit-find.svg"); - background-position: left; + background-position: 2px; background-repeat: no-repeat; background-size: 1.5em; border: 1px solid var(--color-border-default); border-radius: 3px; - min-width: 160px; - padding: 4px 4px 4px 25px; + min-width: 170px; + padding: 2px 2px 2px 25px; } #torrentsFilterRegexBox { @@ -420,6 +526,7 @@ a.propButton img { background-size: 1.5em; border: 1px solid var(--color-border-default); border-radius: 4px; + cursor: pointer; display: inline-block; height: 26px; margin-bottom: -9px; @@ -440,18 +547,25 @@ a.propButton img { width: 26px; } +#torrentsFilterSelect { + padding: 2px 4px; +} + #torrentFilesFilterToolbar { float: right; - margin-right: 30px; + margin-right: 5px; } #torrentFilesFilterInput { background-image: url("../images/edit-find.svg"); - background-position: left; + background-position: 1px; background-repeat: no-repeat; background-size: 1.5em; + margin-top: -1px; + padding-bottom: 1px; padding-left: 2em; - width: 160px; + padding-top: 1px; + width: 190px; } /* Tri-state checkbox */ @@ -461,7 +575,7 @@ label.tristate { display: block; float: left; height: 13px; - margin: 0.15em 8px 5px 0px; + margin: 0.15em 8px 5px 0; overflow: hidden; text-indent: -999em; width: 13px; @@ -477,8 +591,7 @@ label.partial { fieldset.settings { border: 1px solid var(--color-border-default); - border-radius: 8px; - padding: 4px 4px 4px 10px; + padding: 4px 4px 6px 6px; } fieldset.settings legend { @@ -501,52 +614,97 @@ div.formRow { } .filterTitle { - display: block; + cursor: pointer; + display: flex; font-weight: bold; + gap: 4px; overflow: hidden; - padding-left: 5px; - padding-top: 5px; + padding: 4px 0 4px 6px; text-overflow: ellipsis; text-transform: uppercase; + user-select: none; white-space: nowrap; } .filterTitle img { height: 16px; - margin-bottom: -3px; - padding: 0 5px; + padding: 2px; width: 16px; } +.collapsedCategory > ul { + display: none; +} + +.collapsedCategory .categoryToggle, .filterTitle img.rotate { - transform: rotate(270deg); + transform: rotate(-90deg); } ul.filterList { - margin: 0 0 0 16px; + margin: 0; padding-left: 0; } -ul.filterList a, +ul.filterList span.link:hover :is(img, button), +ul.filterList .selectedFilter > .link :is(img, button) { + filter: var(--color-icon-hover); +} + ul.filterList span.link { - color: var(--color-text-default); + align-items: center; cursor: pointer; - display: block; + display: flex; + gap: 5px; overflow: hidden; padding: 4px 6px; - text-overflow: ellipsis; white-space: nowrap; } -ul.filterList li:hover { +ul.filterList span.link:hover { background-color: var(--color-background-hover); color: var(--color-text-white); } -ul.filterList li:hover a { +span.link :last-child { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +span.link :is(img, button) { + flex-shrink: 0; +} + +.selectedFilter > span.link { + background-color: var(--color-background-blue); color: var(--color-text-white); } +.subcategories, +.subcategories ul { + margin: 0; + padding: 0; +} + +.subcategories .categoryToggle { + display: inline-block; + visibility: hidden; +} + +.categoryToggle { + background: url("../images/go-down.svg") center center / 10px no-repeat + transparent; + border: none; + display: none; + height: 16px; + margin-right: -2px; + padding: 2px; + transition: transform 0.3s; + width: 16px; +} + td.generalLabel { text-align: right; vertical-align: top; @@ -554,6 +712,11 @@ td.generalLabel { width: 1px; } +#tristate_cb { + margin-bottom: 0; + margin-top: 0; +} + .filesTableCollapseIcon { cursor: pointer; height: 15px; @@ -572,10 +735,26 @@ td.generalLabel { user-select: none; } -#prop_general { +#propGeneral { padding: 2px; } +#propProgressWrapper { + align-items: center; + display: flex; + height: auto; + margin: 5px 2px; + + & > span:not(:first-child, :empty) { + margin-left: 6px; + min-width: 3.5em; + } + + & #progress { + flex: 1; + } +} + .piecesbarWrapper { position: relative; width: 100%; @@ -600,28 +779,28 @@ td.generalLabel { } .select-watched-folder-editable { - border: solid grey 1px; - height: 20px; + border: 1px solid var(--color-border-default); + height: 22px; position: relative; width: 160px; } .select-watched-folder-editable select { border: none; - bottom: 0px; - left: 0px; - margin: 0; + bottom: 0; + left: 0; + padding: 0; position: absolute; - top: 0px; - width: 160px; + top: 0; + width: 158px; } .select-watched-folder-editable input { border: none; - left: 0px; - padding: 1px; + left: 0; + padding: 0; position: absolute; - top: 0px; + top: 0; width: 140px; } @@ -640,6 +819,7 @@ td.generalLabel { .combo_priority { font-size: 1em; + padding: 2px 6px; } td.statusBarSeparator { @@ -647,12 +827,27 @@ td.statusBarSeparator { background-position: center 1px; background-repeat: no-repeat; background-size: 2px 18px; - width: 22px; + width: 24px; } /* Statistics window */ -.statisticsValue { - text-align: right; +#statisticsContent { + & table { + background-color: var(--color-background-default); + border-radius: 6px; + margin-bottom: 6px; + padding: 6px 10px; + + & .statisticsValue { + text-align: right; + } + } + + & h3 { + color: var(--color-text-default); + margin-bottom: 1px; + padding: 2px; + } } /* Search tab */ @@ -669,15 +864,11 @@ td.statusBarSeparator { } #searchResultsTableContainer { - -moz-height: calc(100% - 177px); - -webkit-height: calc(100% - 177px); height: calc(100% - 177px); overflow: auto; } #searchResultsTableDiv { - -moz-height: calc(100% - 26px) !important; - -webkit-height: calc(100% - 26px) !important; height: calc(100% - 26px) !important; } @@ -697,11 +888,72 @@ td.statusBarSeparator { color: var(--color-text-green); } -.searchPluginsTableRow { - cursor: pointer; -} - #torrentFilesTableDiv .dynamicTable tr.nonAlt:hover { background-color: var(--color-background-hover); color: var(--color-text-white); } + +/* Modals */ +.modalDialog .mochaContent.pad { + display: flex !important; /* override for default mocha inline style */ + flex-direction: column; + height: 100%; +} + +.modalDialog .mochaContent.pad > :last-child { + align-self: flex-end; +} + +.modalDialog .mochaContent.pad > :first-child { + margin: auto 0; +} + +#rememberBtn { + background: url("../images/object-locked.svg") center center / 24px + no-repeat var(--color-background-popup); + height: 38px; + padding: 4px 6px; + width: 38px; +} + +#rememberBtn.disabled { + filter: grayscale(100%); +} + +#deleteFromDiskCB { + margin: 0 2px 0 0; + vertical-align: -1px; +} + +.dialogMessage { + overflow-wrap: anywhere; +} + +.genericConfirmGrid, +.confirmDeletionGrid { + align-items: center; + display: grid; + gap: 3px 4px; + grid-template-columns: max-content 1fr; + margin-bottom: 10px; +} + +.confirmGridItem, +.deletionGridItem { + padding: 3px; +} + +.deletionGridItem:first-child { + justify-self: center; +} + +.confirmWarning, +.confirmDialogWarning { + background: url("../images/dialog-warning.svg") center center no-repeat; + height: 38px; + width: 38px; +} + +.confirmWarning { + background-image: url("../images/help-about.svg"); +} diff --git a/src/webui/www/private/css/vanillaSelectBox.css b/src/webui/www/private/css/vanillaSelectBox.css index 80727e843..63a38c776 100644 --- a/src/webui/www/private/css/vanillaSelectBox.css +++ b/src/webui/www/private/css/vanillaSelectBox.css @@ -1,5 +1,3 @@ -@import url("palette.css"); - .hidden-search { display: none !important; } @@ -57,13 +55,13 @@ li[data-parent].open:not(.hidden-search) { } li.disabled { - background-color: #999; + background-color: #999999; cursor: not-allowed; opacity: 0.3; } li.overflow { - background-color: #999; + background-color: #999999; cursor: not-allowed; opacity: 0.3; } @@ -142,7 +140,7 @@ li.short { height: 11px; margin-left: 22px; margin-right: 2px; - margin-top: 0px; + margin-top: 0; padding: 1px 3px 2px; width: 8px; } @@ -153,7 +151,7 @@ li.short { float: left; font-size: inherit; height: 8px; - margin-left: 0px; + margin-left: 0; transform: rotate(45deg); width: 5px; } @@ -196,7 +194,7 @@ li.short { font-weight: bold; margin-left: -22px; margin-right: 2px; - margin-top: 0px; + margin-top: 0; padding: 7px; } diff --git a/src/webui/www/private/download.html b/src/webui/www/private/download.html index fe5c2acef..ecd1bb6bb 100644 --- a/src/webui/www/private/download.html +++ b/src/webui/www/private/download.html @@ -1,158 +1,156 @@ - + - + QBT_TR(Add Torrent Links)QBT_TR[CONTEXT=downloadFromURL] - - + + + + +
-
-

QBT_TR(Download Torrents from their URLs or Magnet links)QBT_TR[CONTEXT=HttpServer]

+
+

-

QBT_TR(Only one link per line)QBT_TR[CONTEXT=HttpServer]

+

QBT_TR(One link per line (HTTP links, Magnet links and info-hashes are supported))QBT_TR[CONTEXT=AddNewTorrentDialog]

+ QBT_TR(Torrent options)QBT_TR[CONTEXT=AddNewTorrentDialog] - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - -
- - - -
- - - -
- - - -
- - -
-
+ + + - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - - -
- - - - -
+ + + +
+ + + +
+ + +
+ + +
+
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + + +
@@ -163,34 +161,33 @@
diff --git a/src/webui/www/private/downloadlimit.html b/src/webui/www/private/downloadlimit.html index e3398e7e0..d703cf79e 100644 --- a/src/webui/www/private/downloadlimit.html +++ b/src/webui/www/private/downloadlimit.html @@ -1,82 +1,87 @@ - + - + QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget] - + + + -
+
-
QBT_TR(Download limit:)QBT_TR[CONTEXT=PropertiesWidget] QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog]
+
+ + + QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog] +
- +
diff --git a/src/webui/www/private/editfeedurl.html b/src/webui/www/private/editfeedurl.html new file mode 100644 index 000000000..83618a0b5 --- /dev/null +++ b/src/webui/www/private/editfeedurl.html @@ -0,0 +1,89 @@ + + + + + + QBT_TR(Please type a RSS feed URL)QBT_TR[CONTEXT=RSSWidget] + + + + + + + + + + +
+ + +
+ +
+
+ + + diff --git a/src/webui/www/private/edittracker.html b/src/webui/www/private/edittracker.html index feb5f5766..2b4ff2553 100644 --- a/src/webui/www/private/edittracker.html +++ b/src/webui/www/private/edittracker.html @@ -1,56 +1,57 @@ - + - + QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget] - + + + @@ -58,13 +59,13 @@
-
-

QBT_TR(Tracker URL:)QBT_TR[CONTEXT=TrackerListWidget]

+
+
- +
-
- +
+
diff --git a/src/webui/www/private/editwebseed.html b/src/webui/www/private/editwebseed.html new file mode 100644 index 000000000..ef6b70998 --- /dev/null +++ b/src/webui/www/private/editwebseed.html @@ -0,0 +1,68 @@ + + + + + + QBT_TR(Edit web seed)QBT_TR[CONTEXT=HttpServer] + + + + + + + + + +
+
+ +
+ +
+
+ +
+ + + diff --git a/src/webui/www/private/images/browser-cookies.svg b/src/webui/www/private/images/browser-cookies.svg new file mode 100644 index 000000000..0873b0db0 --- /dev/null +++ b/src/webui/www/private/images/browser-cookies.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/flags/ad.svg b/src/webui/www/private/images/flags/ad.svg index 3793d99aa..067ab772f 100644 --- a/src/webui/www/private/images/flags/ad.svg +++ b/src/webui/www/private/images/flags/ad.svg @@ -2,16 +2,16 @@ - + - + - + @@ -96,11 +96,11 @@ - + - + @@ -110,17 +110,17 @@ - - - + + + - + - - - + + + @@ -128,21 +128,21 @@ - + - + - + - + - + diff --git a/src/webui/www/private/images/flags/ae.svg b/src/webui/www/private/images/flags/ae.svg index b7acdbdb3..651ac8523 100644 --- a/src/webui/www/private/images/flags/ae.svg +++ b/src/webui/www/private/images/flags/ae.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/af.svg b/src/webui/www/private/images/flags/af.svg index 417dd0476..521ac4cfd 100644 --- a/src/webui/www/private/images/flags/af.svg +++ b/src/webui/www/private/images/flags/af.svg @@ -1,29 +1,29 @@ - + - + - + - - + + - - + + - + - + - - - - + + + + @@ -59,23 +59,23 @@ - + - + - - - - - - - - - + + + + + + + + + - - + + diff --git a/src/webui/www/private/images/flags/ag.svg b/src/webui/www/private/images/flags/ag.svg index 250b50126..243c3d8f9 100644 --- a/src/webui/www/private/images/flags/ag.svg +++ b/src/webui/www/private/images/flags/ag.svg @@ -4,11 +4,11 @@ - - - - - - + + + + + + diff --git a/src/webui/www/private/images/flags/ai.svg b/src/webui/www/private/images/flags/ai.svg index 81a857d5b..628ad9be9 100644 --- a/src/webui/www/private/images/flags/ai.svg +++ b/src/webui/www/private/images/flags/ai.svg @@ -1,17 +1,17 @@ - + - + - + - - + + @@ -25,5 +25,5 @@ - + diff --git a/src/webui/www/private/images/flags/al.svg b/src/webui/www/private/images/flags/al.svg index b69ae195d..1135b4b80 100644 --- a/src/webui/www/private/images/flags/al.svg +++ b/src/webui/www/private/images/flags/al.svg @@ -1,5 +1,5 @@ - + diff --git a/src/webui/www/private/images/flags/ao.svg b/src/webui/www/private/images/flags/ao.svg index 4dc39f6aa..b1863bd0f 100644 --- a/src/webui/www/private/images/flags/ao.svg +++ b/src/webui/www/private/images/flags/ao.svg @@ -1,12 +1,12 @@ - + - - - - + + + + diff --git a/src/webui/www/private/images/flags/ar.svg b/src/webui/www/private/images/flags/ar.svg index 364fca8ff..d20cbbdcd 100644 --- a/src/webui/www/private/images/flags/ar.svg +++ b/src/webui/www/private/images/flags/ar.svg @@ -1,7 +1,7 @@ - + @@ -20,13 +20,13 @@ - - - - + + + + - + - + diff --git a/src/webui/www/private/images/flags/arab.svg b/src/webui/www/private/images/flags/arab.svg index c45e3d207..96d27157e 100644 --- a/src/webui/www/private/images/flags/arab.svg +++ b/src/webui/www/private/images/flags/arab.svg @@ -14,7 +14,7 @@ - + @@ -60,7 +60,7 @@ - + diff --git a/src/webui/www/private/images/flags/as.svg b/src/webui/www/private/images/flags/as.svg index b974013ac..354355672 100644 --- a/src/webui/www/private/images/flags/as.svg +++ b/src/webui/www/private/images/flags/as.svg @@ -6,67 +6,67 @@ - + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - - - + + + + - + - - + + - - - - - - - + + + + + + + - + diff --git a/src/webui/www/private/images/flags/at.svg b/src/webui/www/private/images/flags/at.svg index c28250887..9d2775c08 100644 --- a/src/webui/www/private/images/flags/at.svg +++ b/src/webui/www/private/images/flags/at.svg @@ -1,6 +1,4 @@ - - - - + + diff --git a/src/webui/www/private/images/flags/au.svg b/src/webui/www/private/images/flags/au.svg index 407fef43d..96e80768b 100644 --- a/src/webui/www/private/images/flags/au.svg +++ b/src/webui/www/private/images/flags/au.svg @@ -2,7 +2,7 @@ - + - + diff --git a/src/webui/www/private/images/flags/aw.svg b/src/webui/www/private/images/flags/aw.svg index 32cabd545..413b7c45b 100644 --- a/src/webui/www/private/images/flags/aw.svg +++ b/src/webui/www/private/images/flags/aw.svg @@ -5,182 +5,182 @@ - - + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webui/www/private/images/flags/az.svg b/src/webui/www/private/images/flags/az.svg index 8e56ef53c..355752211 100644 --- a/src/webui/www/private/images/flags/az.svg +++ b/src/webui/www/private/images/flags/az.svg @@ -4,5 +4,5 @@ - + diff --git a/src/webui/www/private/images/flags/ba.svg b/src/webui/www/private/images/flags/ba.svg index fcd18914a..93bd9cf93 100644 --- a/src/webui/www/private/images/flags/ba.svg +++ b/src/webui/www/private/images/flags/ba.svg @@ -4,9 +4,9 @@ - - - - + + + + diff --git a/src/webui/www/private/images/flags/bb.svg b/src/webui/www/private/images/flags/bb.svg index 263bdec05..cecd5cc33 100644 --- a/src/webui/www/private/images/flags/bb.svg +++ b/src/webui/www/private/images/flags/bb.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/be.svg b/src/webui/www/private/images/flags/be.svg index 327f28fa2..ac706a0b5 100644 --- a/src/webui/www/private/images/flags/be.svg +++ b/src/webui/www/private/images/flags/be.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/bg.svg b/src/webui/www/private/images/flags/bg.svg index b100dd0dc..af2d0d07c 100644 --- a/src/webui/www/private/images/flags/bg.svg +++ b/src/webui/www/private/images/flags/bg.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/webui/www/private/images/flags/bi.svg b/src/webui/www/private/images/flags/bi.svg index 1050838bc..a4434a955 100644 --- a/src/webui/www/private/images/flags/bi.svg +++ b/src/webui/www/private/images/flags/bi.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/bl.svg b/src/webui/www/private/images/flags/bl.svg index 819afc111..f84cbbaeb 100644 --- a/src/webui/www/private/images/flags/bl.svg +++ b/src/webui/www/private/images/flags/bl.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/bm.svg b/src/webui/www/private/images/flags/bm.svg index a4dbc728f..bab3e0abe 100644 --- a/src/webui/www/private/images/flags/bm.svg +++ b/src/webui/www/private/images/flags/bm.svg @@ -8,18 +8,18 @@ - + - + - + @@ -57,38 +57,38 @@ - + - + - + - + - + - + - + - - + + - - + + - + diff --git a/src/webui/www/private/images/flags/bn.svg b/src/webui/www/private/images/flags/bn.svg index f906abfeb..4b416ebb7 100644 --- a/src/webui/www/private/images/flags/bn.svg +++ b/src/webui/www/private/images/flags/bn.svg @@ -1,36 +1,36 @@ - - - + + + - + - - - - + + + + - - - - + + + + - + - + - - - - - - + + + + + + diff --git a/src/webui/www/private/images/flags/bo.svg b/src/webui/www/private/images/flags/bo.svg index 17a0a0c12..46dc76735 100644 --- a/src/webui/www/private/images/flags/bo.svg +++ b/src/webui/www/private/images/flags/bo.svg @@ -73,10 +73,10 @@ - + - + @@ -101,19 +101,19 @@ - + - - - - + + + + - + @@ -139,16 +139,16 @@ - - - - + + + + - + - + @@ -157,21 +157,21 @@ - + - + - + - + @@ -183,24 +183,24 @@ - + - + - + - + - + - + - + @@ -299,28 +299,28 @@ - - - - - - - - + + + + + + + + - - + + - - - - + + + + @@ -330,157 +330,155 @@ - + - + - - - + - + - + - + - - + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - - - - - - + + + + + + + - + - - - + + + - - - - + + + + - - + + - - - + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - + + - - - + + + - - - - - - + + + + + + - - + + @@ -491,18 +489,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -510,41 +508,41 @@ - - + + - + - + - + - - - - + + + + - - - - - - + + + + + + - + @@ -558,7 +556,7 @@ - + @@ -566,33 +564,33 @@ - - - + + + - + - - - - + + + + - + - - - - - + + + + + - - + + @@ -600,19 +598,19 @@ - + - - + + - + @@ -620,54 +618,54 @@ - + - - + + - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - - - + + + - + - + diff --git a/src/webui/www/private/images/flags/br.svg b/src/webui/www/private/images/flags/br.svg index 354a7013f..22c908e7e 100644 --- a/src/webui/www/private/images/flags/br.svg +++ b/src/webui/www/private/images/flags/br.svg @@ -1,45 +1,45 @@ - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + diff --git a/src/webui/www/private/images/flags/bs.svg b/src/webui/www/private/images/flags/bs.svg index 513be43ac..5cc918e5a 100644 --- a/src/webui/www/private/images/flags/bs.svg +++ b/src/webui/www/private/images/flags/bs.svg @@ -8,6 +8,6 @@ - + diff --git a/src/webui/www/private/images/flags/bt.svg b/src/webui/www/private/images/flags/bt.svg index cea6006c1..798c79b38 100644 --- a/src/webui/www/private/images/flags/bt.svg +++ b/src/webui/www/private/images/flags/bt.svg @@ -3,25 +3,25 @@ - - - - - - - - - + + + + + + + + + - - - - + + + + - + @@ -60,7 +60,7 @@ - + @@ -68,7 +68,7 @@ - + diff --git a/src/webui/www/private/images/flags/bw.svg b/src/webui/www/private/images/flags/bw.svg index a1c8db0af..3435608d6 100644 --- a/src/webui/www/private/images/flags/bw.svg +++ b/src/webui/www/private/images/flags/bw.svg @@ -2,6 +2,6 @@ - + diff --git a/src/webui/www/private/images/flags/by.svg b/src/webui/www/private/images/flags/by.svg index 8d25ee3c1..7e90ff255 100644 --- a/src/webui/www/private/images/flags/by.svg +++ b/src/webui/www/private/images/flags/by.svg @@ -1,20 +1,18 @@ - + - + - - - - - - - - - - - + + + + + + + + + diff --git a/src/webui/www/private/images/flags/bz.svg b/src/webui/www/private/images/flags/bz.svg index 08d3579de..25386a51a 100644 --- a/src/webui/www/private/images/flags/bz.svg +++ b/src/webui/www/private/images/flags/bz.svg @@ -17,16 +17,16 @@ - - + + - - + + - + - + @@ -40,7 +40,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -60,9 +60,9 @@ - + - + @@ -70,21 +70,21 @@ - + - + - + - + @@ -92,7 +92,7 @@ - + @@ -104,42 +104,42 @@ - + - + - + - + - + - + - + - + - + diff --git a/src/webui/www/private/images/flags/ca.svg b/src/webui/www/private/images/flags/ca.svg index f1b2c968a..89da5b7b5 100644 --- a/src/webui/www/private/images/flags/ca.svg +++ b/src/webui/www/private/images/flags/ca.svg @@ -1,4 +1,4 @@ - + diff --git a/src/webui/www/private/images/flags/cc.svg b/src/webui/www/private/images/flags/cc.svg index 93025bd2d..ddfd18038 100644 --- a/src/webui/www/private/images/flags/cc.svg +++ b/src/webui/www/private/images/flags/cc.svg @@ -8,8 +8,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/cd.svg b/src/webui/www/private/images/flags/cd.svg index e106ddd53..b9cf52894 100644 --- a/src/webui/www/private/images/flags/cd.svg +++ b/src/webui/www/private/images/flags/cd.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/cg.svg b/src/webui/www/private/images/flags/cg.svg index 9128715f6..f5a0e42d4 100644 --- a/src/webui/www/private/images/flags/cg.svg +++ b/src/webui/www/private/images/flags/cg.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/cl.svg b/src/webui/www/private/images/flags/cl.svg index 01766fefd..5b3c72fa7 100644 --- a/src/webui/www/private/images/flags/cl.svg +++ b/src/webui/www/private/images/flags/cl.svg @@ -7,7 +7,7 @@ - + diff --git a/src/webui/www/private/images/flags/cm.svg b/src/webui/www/private/images/flags/cm.svg index 389b66277..70adc8b68 100644 --- a/src/webui/www/private/images/flags/cm.svg +++ b/src/webui/www/private/images/flags/cm.svg @@ -2,7 +2,7 @@ - + diff --git a/src/webui/www/private/images/flags/cp.svg b/src/webui/www/private/images/flags/cp.svg index b3efb0742..b8aa9cfd6 100644 --- a/src/webui/www/private/images/flags/cp.svg +++ b/src/webui/www/private/images/flags/cp.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/cu.svg b/src/webui/www/private/images/flags/cu.svg index 6464f8eba..053c9ee3a 100644 --- a/src/webui/www/private/images/flags/cu.svg +++ b/src/webui/www/private/images/flags/cu.svg @@ -4,10 +4,10 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/cv.svg b/src/webui/www/private/images/flags/cv.svg index 5c251da2a..aec899490 100644 --- a/src/webui/www/private/images/flags/cv.svg +++ b/src/webui/www/private/images/flags/cv.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/cx.svg b/src/webui/www/private/images/flags/cx.svg index 6803b3b66..374ff2dab 100644 --- a/src/webui/www/private/images/flags/cx.svg +++ b/src/webui/www/private/images/flags/cx.svg @@ -2,11 +2,11 @@ - + - + - + diff --git a/src/webui/www/private/images/flags/cy.svg b/src/webui/www/private/images/flags/cy.svg index 2f69bf79f..7e3d883da 100644 --- a/src/webui/www/private/images/flags/cy.svg +++ b/src/webui/www/private/images/flags/cy.svg @@ -1,6 +1,6 @@ - + - + diff --git a/src/webui/www/private/images/flags/de.svg b/src/webui/www/private/images/flags/de.svg index b08334b62..71aa2d2c3 100644 --- a/src/webui/www/private/images/flags/de.svg +++ b/src/webui/www/private/images/flags/de.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/dg.svg b/src/webui/www/private/images/flags/dg.svg index b9f99a99d..f163caf94 100644 --- a/src/webui/www/private/images/flags/dg.svg +++ b/src/webui/www/private/images/flags/dg.svg @@ -30,7 +30,7 @@ - + @@ -104,8 +104,8 @@ - - + + @@ -120,7 +120,7 @@ - + diff --git a/src/webui/www/private/images/flags/dj.svg b/src/webui/www/private/images/flags/dj.svg index ebf2fc66f..9b00a8205 100644 --- a/src/webui/www/private/images/flags/dj.svg +++ b/src/webui/www/private/images/flags/dj.svg @@ -4,10 +4,10 @@ - + - + diff --git a/src/webui/www/private/images/flags/dm.svg b/src/webui/www/private/images/flags/dm.svg index 60457b796..f692094dd 100644 --- a/src/webui/www/private/images/flags/dm.svg +++ b/src/webui/www/private/images/flags/dm.svg @@ -4,66 +4,66 @@ - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - - + + - + - + - + diff --git a/src/webui/www/private/images/flags/do.svg b/src/webui/www/private/images/flags/do.svg index d83769005..b1be393ed 100644 --- a/src/webui/www/private/images/flags/do.svg +++ b/src/webui/www/private/images/flags/do.svg @@ -2,64 +2,64 @@ - + - - - + + + - - - + + + - - - - - - - - - - + + + + + + + + + + - - + + - + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - + @@ -67,20 +67,20 @@ - - - - - + + + + + - + - + @@ -101,7 +101,7 @@ - + @@ -110,12 +110,12 @@ - + - + - - + + diff --git a/src/webui/www/private/images/flags/eac.svg b/src/webui/www/private/images/flags/eac.svg index 25a09a132..aaf8133f3 100644 --- a/src/webui/www/private/images/flags/eac.svg +++ b/src/webui/www/private/images/flags/eac.svg @@ -4,45 +4,45 @@ - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - + + - - - - - + + + + + - - + + diff --git a/src/webui/www/private/images/flags/ec.svg b/src/webui/www/private/images/flags/ec.svg index 65b78858a..397bfd982 100644 --- a/src/webui/www/private/images/flags/ec.svg +++ b/src/webui/www/private/images/flags/ec.svg @@ -5,15 +5,15 @@ - - - + + + - - - - - + + + + + @@ -40,9 +40,9 @@ - - - + + + @@ -50,15 +50,15 @@ - - - + + + - - - - + + + + @@ -73,10 +73,10 @@ - - - - + + + + @@ -86,53 +86,53 @@ - - - - + + + + - - - - + + + + - + - + - - - + + + - - + + - + - + - + - + - - + + - + diff --git a/src/webui/www/private/images/flags/ee.svg b/src/webui/www/private/images/flags/ee.svg index 36ea288ca..8b98c2c42 100644 --- a/src/webui/www/private/images/flags/ee.svg +++ b/src/webui/www/private/images/flags/ee.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/webui/www/private/images/flags/eg.svg b/src/webui/www/private/images/flags/eg.svg index 58c943c23..00d1fa59e 100644 --- a/src/webui/www/private/images/flags/eg.svg +++ b/src/webui/www/private/images/flags/eg.svg @@ -1,37 +1,37 @@ - + - - - + + + - + - - - - + + + + - - + + - + - + diff --git a/src/webui/www/private/images/flags/eh.svg b/src/webui/www/private/images/flags/eh.svg index 2c9525bd0..6aec72883 100644 --- a/src/webui/www/private/images/flags/eh.svg +++ b/src/webui/www/private/images/flags/eh.svg @@ -4,8 +4,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/er.svg b/src/webui/www/private/images/flags/er.svg index 2705295f2..3f4f3f292 100644 --- a/src/webui/www/private/images/flags/er.svg +++ b/src/webui/www/private/images/flags/er.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/es-ga.svg b/src/webui/www/private/images/flags/es-ga.svg index a91ffed06..31657813e 100644 --- a/src/webui/www/private/images/flags/es-ga.svg +++ b/src/webui/www/private/images/flags/es-ga.svg @@ -1,7 +1,7 @@ - + @@ -10,27 +10,27 @@ - + - + - + - + - + @@ -124,7 +124,7 @@ - + @@ -136,11 +136,11 @@ - + - - + + @@ -150,7 +150,7 @@ - + @@ -181,7 +181,7 @@ - + diff --git a/src/webui/www/private/images/flags/es.svg b/src/webui/www/private/images/flags/es.svg index 815e0f846..acdf927f2 100644 --- a/src/webui/www/private/images/flags/es.svg +++ b/src/webui/www/private/images/flags/es.svg @@ -8,20 +8,20 @@ - + - + - - + + - + - - + + @@ -30,15 +30,15 @@ - + - + - + - + @@ -46,33 +46,33 @@ - - + + - + - + - + - + - + - + - + - + - + - + @@ -82,54 +82,54 @@ - - + + - - + + - - - + + + - + - + - - + + - - + + - + - + - + @@ -153,49 +153,49 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -206,16 +206,16 @@ - - + + - - + + - - + + @@ -232,25 +232,25 @@ - - + + - - + + - + - + - + @@ -276,24 +276,24 @@ - + - + - - + + - + - + - - + + @@ -309,65 +309,65 @@ - + - - + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + - + - - + + - - - - + + + + - - + + @@ -462,78 +462,78 @@ - - - - + + + + - - + + - - + + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - - - + + + - + - + - + - + - + - - - + + + - - + + diff --git a/src/webui/www/private/images/flags/et.svg b/src/webui/www/private/images/flags/et.svg index a3378fd95..3f99be486 100644 --- a/src/webui/www/private/images/flags/et.svg +++ b/src/webui/www/private/images/flags/et.svg @@ -4,11 +4,11 @@ - + - + diff --git a/src/webui/www/private/images/flags/eu.svg b/src/webui/www/private/images/flags/eu.svg index bbfefd6b4..b0874c1ed 100644 --- a/src/webui/www/private/images/flags/eu.svg +++ b/src/webui/www/private/images/flags/eu.svg @@ -13,7 +13,7 @@ - + diff --git a/src/webui/www/private/images/flags/fj.svg b/src/webui/www/private/images/flags/fj.svg index 2d7cd980c..23fbe57a8 100644 --- a/src/webui/www/private/images/flags/fj.svg +++ b/src/webui/www/private/images/flags/fj.svg @@ -1,11 +1,11 @@ - + - + @@ -13,41 +13,41 @@ - - + + - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + - + - + - + @@ -56,17 +56,17 @@ - + - + - + - + @@ -75,25 +75,25 @@ - - - - + + + + - - + + - - - - - + + + + + - + @@ -101,15 +101,15 @@ - + - - - - - + + + + + diff --git a/src/webui/www/private/images/flags/fk.svg b/src/webui/www/private/images/flags/fk.svg index b4935a55e..c65bf96de 100644 --- a/src/webui/www/private/images/flags/fk.svg +++ b/src/webui/www/private/images/flags/fk.svg @@ -21,27 +21,27 @@ - + - + - - - + + + - - + + - + @@ -56,13 +56,13 @@ - + - + diff --git a/src/webui/www/private/images/flags/fm.svg b/src/webui/www/private/images/flags/fm.svg index 85f4f47ec..c1b7c9778 100644 --- a/src/webui/www/private/images/flags/fm.svg +++ b/src/webui/www/private/images/flags/fm.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/fo.svg b/src/webui/www/private/images/flags/fo.svg index 717ee20b8..f802d285a 100644 --- a/src/webui/www/private/images/flags/fo.svg +++ b/src/webui/www/private/images/flags/fo.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/fr.svg b/src/webui/www/private/images/flags/fr.svg index 79689fe94..4110e59e4 100644 --- a/src/webui/www/private/images/flags/fr.svg +++ b/src/webui/www/private/images/flags/fr.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/gb-nir.svg b/src/webui/www/private/images/flags/gb-nir.svg index c9510f30c..e6be8dbc2 100644 --- a/src/webui/www/private/images/flags/gb-nir.svg +++ b/src/webui/www/private/images/flags/gb-nir.svg @@ -5,10 +5,10 @@ - + - + @@ -19,20 +19,20 @@ - + - + - + - + - + @@ -40,30 +40,30 @@ - + - + - + - + - + - + @@ -72,56 +72,56 @@ - + - + - + - + - + - + - - + + - - - + + + - + - + - + - - + + - + - + diff --git a/src/webui/www/private/images/flags/gb.svg b/src/webui/www/private/images/flags/gb.svg index dbac25eae..799138319 100644 --- a/src/webui/www/private/images/flags/gb.svg +++ b/src/webui/www/private/images/flags/gb.svg @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/src/webui/www/private/images/flags/gd.svg b/src/webui/www/private/images/flags/gd.svg index f44e83913..cb51e9618 100644 --- a/src/webui/www/private/images/flags/gd.svg +++ b/src/webui/www/private/images/flags/gd.svg @@ -15,13 +15,13 @@ - + - + - - + + - + diff --git a/src/webui/www/private/images/flags/gf.svg b/src/webui/www/private/images/flags/gf.svg index 734934266..f8fe94c65 100644 --- a/src/webui/www/private/images/flags/gf.svg +++ b/src/webui/www/private/images/flags/gf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/gh.svg b/src/webui/www/private/images/flags/gh.svg index a6497de88..5c3e3e69a 100644 --- a/src/webui/www/private/images/flags/gh.svg +++ b/src/webui/www/private/images/flags/gh.svg @@ -2,5 +2,5 @@ - + diff --git a/src/webui/www/private/images/flags/gi.svg b/src/webui/www/private/images/flags/gi.svg index 92496be6b..e2b590afe 100644 --- a/src/webui/www/private/images/flags/gi.svg +++ b/src/webui/www/private/images/flags/gi.svg @@ -1,18 +1,18 @@ - + - + - + - + @@ -20,10 +20,10 @@ - + - + diff --git a/src/webui/www/private/images/flags/gp.svg b/src/webui/www/private/images/flags/gp.svg index 528e554f0..ee55c4bcd 100644 --- a/src/webui/www/private/images/flags/gp.svg +++ b/src/webui/www/private/images/flags/gp.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/gq.svg b/src/webui/www/private/images/flags/gq.svg index ba2acf28d..134e44217 100644 --- a/src/webui/www/private/images/flags/gq.svg +++ b/src/webui/www/private/images/flags/gq.svg @@ -4,7 +4,7 @@ - + @@ -16,8 +16,8 @@ - + - + diff --git a/src/webui/www/private/images/flags/gs.svg b/src/webui/www/private/images/flags/gs.svg index 2e045dfdd..1536e073e 100644 --- a/src/webui/www/private/images/flags/gs.svg +++ b/src/webui/www/private/images/flags/gs.svg @@ -27,27 +27,27 @@ - + - - + + - + - - + + - + - + @@ -65,7 +65,7 @@ - + @@ -96,14 +96,14 @@ - + - + @@ -113,7 +113,7 @@ - + @@ -124,7 +124,7 @@ - + diff --git a/src/webui/www/private/images/flags/gt.svg b/src/webui/www/private/images/flags/gt.svg index 9b3471244..f7cffbdc7 100644 --- a/src/webui/www/private/images/flags/gt.svg +++ b/src/webui/www/private/images/flags/gt.svg @@ -118,27 +118,27 @@ - - - - - + + + + + - + - + - + - + - + @@ -148,53 +148,53 @@ - + - + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + diff --git a/src/webui/www/private/images/flags/gu.svg b/src/webui/www/private/images/flags/gu.svg index a5584ffd4..0d66e1bfa 100644 --- a/src/webui/www/private/images/flags/gu.svg +++ b/src/webui/www/private/images/flags/gu.svg @@ -2,22 +2,22 @@ - - + + - - - G - U - A - M - + + + G + U + A + M + - - - - - + + + + + diff --git a/src/webui/www/private/images/flags/gw.svg b/src/webui/www/private/images/flags/gw.svg index b8d566a2a..d470bac9f 100644 --- a/src/webui/www/private/images/flags/gw.svg +++ b/src/webui/www/private/images/flags/gw.svg @@ -3,7 +3,7 @@ - + diff --git a/src/webui/www/private/images/flags/gy.svg b/src/webui/www/private/images/flags/gy.svg index f4d9b8ab2..569fb5627 100644 --- a/src/webui/www/private/images/flags/gy.svg +++ b/src/webui/www/private/images/flags/gy.svg @@ -1,9 +1,9 @@ - + - + diff --git a/src/webui/www/private/images/flags/hk.svg b/src/webui/www/private/images/flags/hk.svg index ec40b5fed..4fd55bc14 100644 --- a/src/webui/www/private/images/flags/hk.svg +++ b/src/webui/www/private/images/flags/hk.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/hm.svg b/src/webui/www/private/images/flags/hm.svg index c0748d3be..815c48208 100644 --- a/src/webui/www/private/images/flags/hm.svg +++ b/src/webui/www/private/images/flags/hm.svg @@ -2,7 +2,7 @@ - + - + diff --git a/src/webui/www/private/images/flags/hn.svg b/src/webui/www/private/images/flags/hn.svg index 1c166dc46..11fde67db 100644 --- a/src/webui/www/private/images/flags/hn.svg +++ b/src/webui/www/private/images/flags/hn.svg @@ -1,7 +1,7 @@ - + diff --git a/src/webui/www/private/images/flags/hr.svg b/src/webui/www/private/images/flags/hr.svg index febbc2400..44fed27d5 100644 --- a/src/webui/www/private/images/flags/hr.svg +++ b/src/webui/www/private/images/flags/hr.svg @@ -4,55 +4,55 @@ - - + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - - + + + - + - + - + - - - - + + + + diff --git a/src/webui/www/private/images/flags/ht.svg b/src/webui/www/private/images/flags/ht.svg index 4cd4470f4..5d48eb93b 100644 --- a/src/webui/www/private/images/flags/ht.svg +++ b/src/webui/www/private/images/flags/ht.svg @@ -4,37 +4,37 @@ - + - + - - - + + + - - - + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - + + @@ -44,36 +44,36 @@ - - - - - + + + + + - + - + - - - - - + + + + + - - - - - + + + + + - + @@ -88,29 +88,29 @@ - + - + - + - + - - - + + + - + diff --git a/src/webui/www/private/images/flags/il.svg b/src/webui/www/private/images/flags/il.svg index 724cf8bf3..f43be7e8e 100644 --- a/src/webui/www/private/images/flags/il.svg +++ b/src/webui/www/private/images/flags/il.svg @@ -4,11 +4,11 @@ - + - - - - + + + + diff --git a/src/webui/www/private/images/flags/im.svg b/src/webui/www/private/images/flags/im.svg index 3d597a14b..f06f3d6fe 100644 --- a/src/webui/www/private/images/flags/im.svg +++ b/src/webui/www/private/images/flags/im.svg @@ -4,11 +4,11 @@ - + - + @@ -16,7 +16,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/src/webui/www/private/images/flags/in.svg b/src/webui/www/private/images/flags/in.svg index c634f68ac..bc47d7491 100644 --- a/src/webui/www/private/images/flags/in.svg +++ b/src/webui/www/private/images/flags/in.svg @@ -11,7 +11,7 @@ - + diff --git a/src/webui/www/private/images/flags/io.svg b/src/webui/www/private/images/flags/io.svg index b04c46f5e..77016679e 100644 --- a/src/webui/www/private/images/flags/io.svg +++ b/src/webui/www/private/images/flags/io.svg @@ -30,7 +30,7 @@ - + @@ -104,8 +104,8 @@ - - + + @@ -120,7 +120,7 @@ - + diff --git a/src/webui/www/private/images/flags/iq.svg b/src/webui/www/private/images/flags/iq.svg index 689178537..259da9adc 100644 --- a/src/webui/www/private/images/flags/iq.svg +++ b/src/webui/www/private/images/flags/iq.svg @@ -1,10 +1,10 @@ - - - + + + - + diff --git a/src/webui/www/private/images/flags/ir.svg b/src/webui/www/private/images/flags/ir.svg index 5c9609eff..8c6d51621 100644 --- a/src/webui/www/private/images/flags/ir.svg +++ b/src/webui/www/private/images/flags/ir.svg @@ -4,7 +4,7 @@ - + @@ -209,11 +209,11 @@ - - - - - + + + + + diff --git a/src/webui/www/private/images/flags/is.svg b/src/webui/www/private/images/flags/is.svg index 56cc97787..a6588afae 100644 --- a/src/webui/www/private/images/flags/is.svg +++ b/src/webui/www/private/images/flags/is.svg @@ -6,7 +6,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/je.svg b/src/webui/www/private/images/flags/je.svg index e69e4f465..611180d42 100644 --- a/src/webui/www/private/images/flags/je.svg +++ b/src/webui/www/private/images/flags/je.svg @@ -1,45 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webui/www/private/images/flags/jm.svg b/src/webui/www/private/images/flags/jm.svg index e03a3422a..269df0383 100644 --- a/src/webui/www/private/images/flags/jm.svg +++ b/src/webui/www/private/images/flags/jm.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/jo.svg b/src/webui/www/private/images/flags/jo.svg index 50802915e..d6f927d44 100644 --- a/src/webui/www/private/images/flags/jo.svg +++ b/src/webui/www/private/images/flags/jo.svg @@ -4,12 +4,12 @@ - + - + - + diff --git a/src/webui/www/private/images/flags/jp.svg b/src/webui/www/private/images/flags/jp.svg index cd03a339d..cc1c181ce 100644 --- a/src/webui/www/private/images/flags/jp.svg +++ b/src/webui/www/private/images/flags/jp.svg @@ -6,6 +6,6 @@ - + diff --git a/src/webui/www/private/images/flags/ke.svg b/src/webui/www/private/images/flags/ke.svg index 5b3779370..3a67ca3cc 100644 --- a/src/webui/www/private/images/flags/ke.svg +++ b/src/webui/www/private/images/flags/ke.svg @@ -3,14 +3,14 @@ - + - + diff --git a/src/webui/www/private/images/flags/kg.svg b/src/webui/www/private/images/flags/kg.svg index 626af14da..68c210b1c 100644 --- a/src/webui/www/private/images/flags/kg.svg +++ b/src/webui/www/private/images/flags/kg.svg @@ -4,12 +4,12 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/ki.svg b/src/webui/www/private/images/flags/ki.svg index 1697ffe8b..0c8032807 100644 --- a/src/webui/www/private/images/flags/ki.svg +++ b/src/webui/www/private/images/flags/ki.svg @@ -4,28 +4,28 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + diff --git a/src/webui/www/private/images/flags/km.svg b/src/webui/www/private/images/flags/km.svg index 56d62c32e..414d65e47 100644 --- a/src/webui/www/private/images/flags/km.svg +++ b/src/webui/www/private/images/flags/km.svg @@ -9,7 +9,7 @@ - + diff --git a/src/webui/www/private/images/flags/kn.svg b/src/webui/www/private/images/flags/kn.svg index 01a3a0a2a..47fe64d61 100644 --- a/src/webui/www/private/images/flags/kn.svg +++ b/src/webui/www/private/images/flags/kn.svg @@ -4,11 +4,11 @@ - + - - - + + + diff --git a/src/webui/www/private/images/flags/kp.svg b/src/webui/www/private/images/flags/kp.svg index 94bc8e1ed..4d1dbab24 100644 --- a/src/webui/www/private/images/flags/kp.svg +++ b/src/webui/www/private/images/flags/kp.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/kr.svg b/src/webui/www/private/images/flags/kr.svg index 44b51e251..6947eab2b 100644 --- a/src/webui/www/private/images/flags/kr.svg +++ b/src/webui/www/private/images/flags/kr.svg @@ -4,11 +4,11 @@ - + - + - + @@ -16,7 +16,7 @@ - + diff --git a/src/webui/www/private/images/flags/kw.svg b/src/webui/www/private/images/flags/kw.svg index 7ff91a845..3dd89e996 100644 --- a/src/webui/www/private/images/flags/kw.svg +++ b/src/webui/www/private/images/flags/kw.svg @@ -8,6 +8,6 @@ - + diff --git a/src/webui/www/private/images/flags/ky.svg b/src/webui/www/private/images/flags/ky.svg index d6e567b59..74a2fea2a 100644 --- a/src/webui/www/private/images/flags/ky.svg +++ b/src/webui/www/private/images/flags/ky.svg @@ -5,7 +5,7 @@ - + @@ -14,20 +14,20 @@ - + - - - - + + + + - + @@ -60,22 +60,22 @@ - + - + - + - + @@ -89,8 +89,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/kz.svg b/src/webui/www/private/images/flags/kz.svg index a69ba7a3b..04a47f53e 100644 --- a/src/webui/www/private/images/flags/kz.svg +++ b/src/webui/www/private/images/flags/kz.svg @@ -5,7 +5,7 @@ - + @@ -16,8 +16,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/la.svg b/src/webui/www/private/images/flags/la.svg index 9723a781a..6aea6b72b 100644 --- a/src/webui/www/private/images/flags/la.svg +++ b/src/webui/www/private/images/flags/la.svg @@ -7,6 +7,6 @@ - + diff --git a/src/webui/www/private/images/flags/lb.svg b/src/webui/www/private/images/flags/lb.svg index 49650ad85..8619f2410 100644 --- a/src/webui/www/private/images/flags/lb.svg +++ b/src/webui/www/private/images/flags/lb.svg @@ -4,12 +4,12 @@ - + - + diff --git a/src/webui/www/private/images/flags/lc.svg b/src/webui/www/private/images/flags/lc.svg index 46bbc6cc7..bb256541c 100644 --- a/src/webui/www/private/images/flags/lc.svg +++ b/src/webui/www/private/images/flags/lc.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/li.svg b/src/webui/www/private/images/flags/li.svg index a08a05acd..68ea26fa3 100644 --- a/src/webui/www/private/images/flags/li.svg +++ b/src/webui/www/private/images/flags/li.svg @@ -3,10 +3,10 @@ - + - + @@ -20,23 +20,23 @@ - + - + - + - + - + diff --git a/src/webui/www/private/images/flags/lk.svg b/src/webui/www/private/images/flags/lk.svg index 24c6559b7..2c5cdbe09 100644 --- a/src/webui/www/private/images/flags/lk.svg +++ b/src/webui/www/private/images/flags/lk.svg @@ -11,12 +11,12 @@ - - - - - - + + + + + + diff --git a/src/webui/www/private/images/flags/lr.svg b/src/webui/www/private/images/flags/lr.svg index a31377f97..e482ab9d7 100644 --- a/src/webui/www/private/images/flags/lr.svg +++ b/src/webui/www/private/images/flags/lr.svg @@ -9,6 +9,6 @@ - + diff --git a/src/webui/www/private/images/flags/ls.svg b/src/webui/www/private/images/flags/ls.svg index e70165028..a7c01a98f 100644 --- a/src/webui/www/private/images/flags/ls.svg +++ b/src/webui/www/private/images/flags/ls.svg @@ -4,5 +4,5 @@ - + diff --git a/src/webui/www/private/images/flags/lu.svg b/src/webui/www/private/images/flags/lu.svg index c31d2bfa2..cc1220681 100644 --- a/src/webui/www/private/images/flags/lu.svg +++ b/src/webui/www/private/images/flags/lu.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/ly.svg b/src/webui/www/private/images/flags/ly.svg index 14abcb243..1eaa51e46 100644 --- a/src/webui/www/private/images/flags/ly.svg +++ b/src/webui/www/private/images/flags/ly.svg @@ -6,7 +6,7 @@ - + diff --git a/src/webui/www/private/images/flags/md.svg b/src/webui/www/private/images/flags/md.svg index a806572c2..6dc441e17 100644 --- a/src/webui/www/private/images/flags/md.svg +++ b/src/webui/www/private/images/flags/md.svg @@ -7,7 +7,7 @@ - + @@ -32,17 +32,17 @@ - + - + - - + + @@ -51,19 +51,19 @@ - + - - + + - - + + - + diff --git a/src/webui/www/private/images/flags/me.svg b/src/webui/www/private/images/flags/me.svg index b56cce094..d89189074 100644 --- a/src/webui/www/private/images/flags/me.svg +++ b/src/webui/www/private/images/flags/me.svg @@ -1,28 +1,28 @@ - - + + - - - + + + - + - + - - - - - - + + + + + + @@ -32,43 +32,43 @@ - - - - - + + + + + - - - - + + + + - + - + - + - - + + - - + + - + - - - - - - + + + + + + @@ -81,36 +81,36 @@ - - + + - - + + - - - + + + - + - + - + - + - + - - - + + + - + diff --git a/src/webui/www/private/images/flags/mf.svg b/src/webui/www/private/images/flags/mf.svg index a53ce5012..6305edc1c 100644 --- a/src/webui/www/private/images/flags/mf.svg +++ b/src/webui/www/private/images/flags/mf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/mh.svg b/src/webui/www/private/images/flags/mh.svg index 46351e541..7b9f49075 100644 --- a/src/webui/www/private/images/flags/mh.svg +++ b/src/webui/www/private/images/flags/mh.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/mm.svg b/src/webui/www/private/images/flags/mm.svg index 8ed5e6ac2..42b4dee2b 100644 --- a/src/webui/www/private/images/flags/mm.svg +++ b/src/webui/www/private/images/flags/mm.svg @@ -2,7 +2,7 @@ - + diff --git a/src/webui/www/private/images/flags/mn.svg b/src/webui/www/private/images/flags/mn.svg index 56cb0729b..152c2fcb0 100644 --- a/src/webui/www/private/images/flags/mn.svg +++ b/src/webui/www/private/images/flags/mn.svg @@ -4,9 +4,9 @@ - + - + diff --git a/src/webui/www/private/images/flags/mo.svg b/src/webui/www/private/images/flags/mo.svg index 257faed69..d39985d05 100644 --- a/src/webui/www/private/images/flags/mo.svg +++ b/src/webui/www/private/images/flags/mo.svg @@ -2,7 +2,7 @@ - + diff --git a/src/webui/www/private/images/flags/mp.svg b/src/webui/www/private/images/flags/mp.svg index 6696fdb83..ff59ebf87 100644 --- a/src/webui/www/private/images/flags/mp.svg +++ b/src/webui/www/private/images/flags/mp.svg @@ -7,7 +7,7 @@ - + @@ -52,27 +52,27 @@ - + - - - + + + - + - + - - + + - + diff --git a/src/webui/www/private/images/flags/mr.svg b/src/webui/www/private/images/flags/mr.svg index 3f0a62645..7558234cb 100644 --- a/src/webui/www/private/images/flags/mr.svg +++ b/src/webui/www/private/images/flags/mr.svg @@ -1,6 +1,6 @@ - + diff --git a/src/webui/www/private/images/flags/ms.svg b/src/webui/www/private/images/flags/ms.svg index 58641240c..faf07b07f 100644 --- a/src/webui/www/private/images/flags/ms.svg +++ b/src/webui/www/private/images/flags/ms.svg @@ -1,16 +1,16 @@ - - - + + + - + - + diff --git a/src/webui/www/private/images/flags/mt.svg b/src/webui/www/private/images/flags/mt.svg index 676e801c5..c597266c3 100644 --- a/src/webui/www/private/images/flags/mt.svg +++ b/src/webui/www/private/images/flags/mt.svg @@ -1,49 +1,58 @@ - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + diff --git a/src/webui/www/private/images/flags/mw.svg b/src/webui/www/private/images/flags/mw.svg index 113aae543..d83ddb217 100644 --- a/src/webui/www/private/images/flags/mw.svg +++ b/src/webui/www/private/images/flags/mw.svg @@ -2,9 +2,9 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/mx.svg b/src/webui/www/private/images/flags/mx.svg index bb305b8d1..f98a89e17 100644 --- a/src/webui/www/private/images/flags/mx.svg +++ b/src/webui/www/private/images/flags/mx.svg @@ -39,87 +39,87 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - + + + + - - - - - + + + + + - - - - - - - + + + + + + + @@ -127,88 +127,88 @@ - - - - + + + + - - + + - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - + + - - + + - - - + + + - - + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -216,167 +216,167 @@ - - - - + + + + - + - - + + - - + + - - + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - - + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - + + + - - + + - + - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - - - - + + + + + - - + + - - + + - - + + - - - + + + diff --git a/src/webui/www/private/images/flags/my.svg b/src/webui/www/private/images/flags/my.svg index 264f48aef..89576f69e 100644 --- a/src/webui/www/private/images/flags/my.svg +++ b/src/webui/www/private/images/flags/my.svg @@ -1,6 +1,6 @@ - + @@ -15,8 +15,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/mz.svg b/src/webui/www/private/images/flags/mz.svg index eb020058b..2ee6ec14b 100644 --- a/src/webui/www/private/images/flags/mz.svg +++ b/src/webui/www/private/images/flags/mz.svg @@ -7,15 +7,15 @@ - + - + - + - + diff --git a/src/webui/www/private/images/flags/na.svg b/src/webui/www/private/images/flags/na.svg index 799702e8c..35b9f783e 100644 --- a/src/webui/www/private/images/flags/na.svg +++ b/src/webui/www/private/images/flags/na.svg @@ -6,11 +6,11 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/nc.svg b/src/webui/www/private/images/flags/nc.svg index 96795408c..068f0c69a 100644 --- a/src/webui/www/private/images/flags/nc.svg +++ b/src/webui/www/private/images/flags/nc.svg @@ -4,10 +4,10 @@ - - - - - - + + + + + + diff --git a/src/webui/www/private/images/flags/nf.svg b/src/webui/www/private/images/flags/nf.svg index ecdb4a3bd..c8b30938d 100644 --- a/src/webui/www/private/images/flags/nf.svg +++ b/src/webui/www/private/images/flags/nf.svg @@ -2,8 +2,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/ni.svg b/src/webui/www/private/images/flags/ni.svg index e16e77ae4..6dcdc9a80 100644 --- a/src/webui/www/private/images/flags/ni.svg +++ b/src/webui/www/private/images/flags/ni.svg @@ -38,13 +38,13 @@ - - - + + + - + @@ -59,62 +59,62 @@ - - - + + + - + - - + + - - - + + + - + - + - - - + + + - + - - - - + + + + - + - + - + - + @@ -125,5 +125,5 @@ - + diff --git a/src/webui/www/private/images/flags/nl.svg b/src/webui/www/private/images/flags/nl.svg index 4faaf498e..e90f5b035 100644 --- a/src/webui/www/private/images/flags/nl.svg +++ b/src/webui/www/private/images/flags/nl.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/np.svg b/src/webui/www/private/images/flags/np.svg index fead9402c..8d71d106b 100644 --- a/src/webui/www/private/images/flags/np.svg +++ b/src/webui/www/private/images/flags/np.svg @@ -4,10 +4,10 @@ - + - + diff --git a/src/webui/www/private/images/flags/nr.svg b/src/webui/www/private/images/flags/nr.svg index e71ddcd8d..ff394c411 100644 --- a/src/webui/www/private/images/flags/nr.svg +++ b/src/webui/www/private/images/flags/nr.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/nz.svg b/src/webui/www/private/images/flags/nz.svg index a0028fb2f..935d8a749 100644 --- a/src/webui/www/private/images/flags/nz.svg +++ b/src/webui/www/private/images/flags/nz.svg @@ -8,24 +8,24 @@ - + - - + + - - - + + + - - - + + + - - + + diff --git a/src/webui/www/private/images/flags/om.svg b/src/webui/www/private/images/flags/om.svg index 1c7621799..c003f86e4 100644 --- a/src/webui/www/private/images/flags/om.svg +++ b/src/webui/www/private/images/flags/om.svg @@ -12,14 +12,14 @@ - + - + @@ -34,10 +34,10 @@ - + - - + + @@ -52,10 +52,10 @@ - + - - + + @@ -84,7 +84,7 @@ - + @@ -95,7 +95,7 @@ - + diff --git a/src/webui/www/private/images/flags/pc.svg b/src/webui/www/private/images/flags/pc.svg new file mode 100644 index 000000000..882197da6 --- /dev/null +++ b/src/webui/www/private/images/flags/pc.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/webui/www/private/images/flags/pf.svg b/src/webui/www/private/images/flags/pf.svg index 16374f362..e06b236e8 100644 --- a/src/webui/www/private/images/flags/pf.svg +++ b/src/webui/www/private/images/flags/pf.svg @@ -8,12 +8,12 @@ - + - + - + diff --git a/src/webui/www/private/images/flags/pg.svg b/src/webui/www/private/images/flags/pg.svg index 1080add5b..237cb6eee 100644 --- a/src/webui/www/private/images/flags/pg.svg +++ b/src/webui/www/private/images/flags/pg.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/webui/www/private/images/flags/pk.svg b/src/webui/www/private/images/flags/pk.svg index fa02f6a8f..491e58ab1 100644 --- a/src/webui/www/private/images/flags/pk.svg +++ b/src/webui/www/private/images/flags/pk.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/pm.svg b/src/webui/www/private/images/flags/pm.svg index 401139f7a..19a9330a3 100644 --- a/src/webui/www/private/images/flags/pm.svg +++ b/src/webui/www/private/images/flags/pm.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/pn.svg b/src/webui/www/private/images/flags/pn.svg index 9788c9cc1..07958aca1 100644 --- a/src/webui/www/private/images/flags/pn.svg +++ b/src/webui/www/private/images/flags/pn.svg @@ -46,8 +46,8 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/pr.svg b/src/webui/www/private/images/flags/pr.svg index 3cb403b5c..ec51831dc 100644 --- a/src/webui/www/private/images/flags/pr.svg +++ b/src/webui/www/private/images/flags/pr.svg @@ -4,10 +4,10 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/ps.svg b/src/webui/www/private/images/flags/ps.svg index 82031486a..b33824a5d 100644 --- a/src/webui/www/private/images/flags/ps.svg +++ b/src/webui/www/private/images/flags/ps.svg @@ -4,12 +4,12 @@ - + - + - + diff --git a/src/webui/www/private/images/flags/pt.svg b/src/webui/www/private/images/flags/pt.svg index 2f36b7ee7..445cf7f53 100644 --- a/src/webui/www/private/images/flags/pt.svg +++ b/src/webui/www/private/images/flags/pt.svg @@ -2,38 +2,38 @@ - - + + - - + + - - - + + + - + - - - + + + - + - - - + + + - - - - + + + + - + - - + + @@ -42,7 +42,7 @@ - + diff --git a/src/webui/www/private/images/flags/pw.svg b/src/webui/www/private/images/flags/pw.svg index 089cbceea..9f89c5f14 100644 --- a/src/webui/www/private/images/flags/pw.svg +++ b/src/webui/www/private/images/flags/pw.svg @@ -6,6 +6,6 @@ - + diff --git a/src/webui/www/private/images/flags/py.svg b/src/webui/www/private/images/flags/py.svg index bfbf01f1f..38e2051eb 100644 --- a/src/webui/www/private/images/flags/py.svg +++ b/src/webui/www/private/images/flags/py.svg @@ -2,24 +2,24 @@ - + - + - + - + @@ -146,12 +146,12 @@ - - + + - + - + diff --git a/src/webui/www/private/images/flags/qa.svg b/src/webui/www/private/images/flags/qa.svg index bd493c381..901f3fa76 100644 --- a/src/webui/www/private/images/flags/qa.svg +++ b/src/webui/www/private/images/flags/qa.svg @@ -1,4 +1,4 @@ - + diff --git a/src/webui/www/private/images/flags/re.svg b/src/webui/www/private/images/flags/re.svg index 3225dddf2..64e788e01 100644 --- a/src/webui/www/private/images/flags/re.svg +++ b/src/webui/www/private/images/flags/re.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/rs.svg b/src/webui/www/private/images/flags/rs.svg index 120293ab0..2f971025b 100644 --- a/src/webui/www/private/images/flags/rs.svg +++ b/src/webui/www/private/images/flags/rs.svg @@ -4,146 +4,146 @@ - + - + - + - - + + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - - + + + - + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + @@ -154,23 +154,23 @@ - + - + - + - + - + - + @@ -180,21 +180,21 @@ - + - + - + - - + + - - + + - - + + @@ -205,88 +205,88 @@ - - + + - + - + - - - + + + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - - - + + + - - + + - + - + - + diff --git a/src/webui/www/private/images/flags/ru.svg b/src/webui/www/private/images/flags/ru.svg index f4d27efc9..cf243011a 100644 --- a/src/webui/www/private/images/flags/ru.svg +++ b/src/webui/www/private/images/flags/ru.svg @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/src/webui/www/private/images/flags/rw.svg b/src/webui/www/private/images/flags/rw.svg index 6cc669ed2..06e26ae44 100644 --- a/src/webui/www/private/images/flags/rw.svg +++ b/src/webui/www/private/images/flags/rw.svg @@ -2,7 +2,7 @@ - + diff --git a/src/webui/www/private/images/flags/sa.svg b/src/webui/www/private/images/flags/sa.svg index 660396a70..c0a148663 100644 --- a/src/webui/www/private/images/flags/sa.svg +++ b/src/webui/www/private/images/flags/sa.svg @@ -4,22 +4,22 @@ - + - - - - + + + + - - - - - - - - + + + + + + + + diff --git a/src/webui/www/private/images/flags/sb.svg b/src/webui/www/private/images/flags/sb.svg index a011360d5..6066f94cd 100644 --- a/src/webui/www/private/images/flags/sb.svg +++ b/src/webui/www/private/images/flags/sb.svg @@ -5,9 +5,9 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/sd.svg b/src/webui/www/private/images/flags/sd.svg index b8e4b9735..12818b411 100644 --- a/src/webui/www/private/images/flags/sd.svg +++ b/src/webui/www/private/images/flags/sd.svg @@ -5,9 +5,9 @@ - + - + diff --git a/src/webui/www/private/images/flags/se.svg b/src/webui/www/private/images/flags/se.svg index 0e41780ef..8ba745aca 100644 --- a/src/webui/www/private/images/flags/se.svg +++ b/src/webui/www/private/images/flags/se.svg @@ -1,4 +1,4 @@ - + diff --git a/src/icons/flags/ac.svg b/src/webui/www/private/images/flags/sh-ac.svg similarity index 61% rename from src/icons/flags/ac.svg rename to src/webui/www/private/images/flags/sh-ac.svg index b1ae9ac52..22b365832 100644 --- a/src/icons/flags/ac.svg +++ b/src/webui/www/private/images/flags/sh-ac.svg @@ -1,90 +1,90 @@ - + - + - + - + - + - + - - - - + + + + - - - + + + - + - + - - + + - + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - + - - - - - - - + + + + + + + - + - + @@ -100,68 +100,68 @@ - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - - - - - + + + + + - + - - + + - + - + - - + + - - + + - + @@ -171,51 +171,51 @@ - + - + - + - - + + - + - + - + - + - - + + - - - + + + - - + + - + - - - - + + + + - - - + + + @@ -223,10 +223,10 @@ - + - - + + @@ -251,10 +251,10 @@ - + - + @@ -271,7 +271,7 @@ - + @@ -337,198 +337,198 @@ - + - + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - - - + + + - + - + - + - + - - - - + + + + - - + + - - + + - - + + - + - - + + - - - + + + - + - + - - + + @@ -538,134 +538,134 @@ - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - + - - + + - + - - - + + + - + - - + + - + - + - + - + - - - - + + + + - - + + - - - + + + - - + + - + - - + + - - - + + + - + - + - - + + @@ -675,8 +675,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/sh-hl.svg b/src/webui/www/private/images/flags/sh-hl.svg new file mode 100644 index 000000000..b92e703f2 --- /dev/null +++ b/src/webui/www/private/images/flags/sh-hl.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/flags/ta.svg b/src/webui/www/private/images/flags/sh-ta.svg similarity index 81% rename from src/icons/flags/ta.svg rename to src/webui/www/private/images/flags/sh-ta.svg index b68ad23c6..a103aac05 100644 --- a/src/icons/flags/ta.svg +++ b/src/webui/www/private/images/flags/sh-ta.svg @@ -1,38 +1,38 @@ - - + + - - + + - + - + - + - - + + - - - - + + + + - + - - + + @@ -40,10 +40,10 @@ - - + + - + @@ -51,22 +51,22 @@ - - + + - + - - - + + + - - + + - + - + diff --git a/src/webui/www/private/images/flags/sh.svg b/src/webui/www/private/images/flags/sh.svg index 353915d3e..7aba0aec8 100644 --- a/src/webui/www/private/images/flags/sh.svg +++ b/src/webui/www/private/images/flags/sh.svg @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/src/webui/www/private/images/flags/si.svg b/src/webui/www/private/images/flags/si.svg index f2aea0168..66a390dcd 100644 --- a/src/webui/www/private/images/flags/si.svg +++ b/src/webui/www/private/images/flags/si.svg @@ -4,15 +4,15 @@ - + - + - - - - + + + + diff --git a/src/webui/www/private/images/flags/sk.svg b/src/webui/www/private/images/flags/sk.svg index a1953fa67..81476940e 100644 --- a/src/webui/www/private/images/flags/sk.svg +++ b/src/webui/www/private/images/flags/sk.svg @@ -2,8 +2,8 @@ - - + + - + diff --git a/src/webui/www/private/images/flags/sm.svg b/src/webui/www/private/images/flags/sm.svg index 0892990b2..00e9286c4 100644 --- a/src/webui/www/private/images/flags/sm.svg +++ b/src/webui/www/private/images/flags/sm.svg @@ -5,10 +5,10 @@ - - - - + + + + @@ -23,19 +23,19 @@ - - + + - - + + - - - - + + + + @@ -50,21 +50,21 @@ - - + + - + - + - + diff --git a/src/webui/www/private/images/flags/so.svg b/src/webui/www/private/images/flags/so.svg index ae582f198..a581ac63c 100644 --- a/src/webui/www/private/images/flags/so.svg +++ b/src/webui/www/private/images/flags/so.svg @@ -4,8 +4,8 @@ - + - + diff --git a/src/webui/www/private/images/flags/ss.svg b/src/webui/www/private/images/flags/ss.svg index 73804d80d..b257aa0b3 100644 --- a/src/webui/www/private/images/flags/ss.svg +++ b/src/webui/www/private/images/flags/ss.svg @@ -1,7 +1,7 @@ - + diff --git a/src/webui/www/private/images/flags/st.svg b/src/webui/www/private/images/flags/st.svg index f2e75c141..1294bcb70 100644 --- a/src/webui/www/private/images/flags/st.svg +++ b/src/webui/www/private/images/flags/st.svg @@ -2,9 +2,9 @@ - + - + diff --git a/src/webui/www/private/images/flags/sv.svg b/src/webui/www/private/images/flags/sv.svg index 3a63913d0..c811e912f 100644 --- a/src/webui/www/private/images/flags/sv.svg +++ b/src/webui/www/private/images/flags/sv.svg @@ -1,30 +1,30 @@ - + - + - - - - - + + + + + - + - + - + - + @@ -33,14 +33,14 @@ - + - + - + @@ -48,23 +48,23 @@ - - - + + + - - - - + + + + - + - - - - + + + + @@ -74,11 +74,11 @@ - + - - + + @@ -96,10 +96,10 @@ - - - - + + + + @@ -477,7 +477,7 @@ - + @@ -533,21 +533,21 @@ - + - - - - + + + + - - + + - + @@ -562,33 +562,33 @@ - + - - + + - + - - - - - - + + + + + + - + - + - - - - - + + + + + diff --git a/src/webui/www/private/images/flags/sx.svg b/src/webui/www/private/images/flags/sx.svg index 84844e0f2..18f7a1397 100644 --- a/src/webui/www/private/images/flags/sx.svg +++ b/src/webui/www/private/images/flags/sx.svg @@ -5,36 +5,36 @@ - - - - - - + + + + + + - - + + - + - - + + - + - + @@ -44,7 +44,7 @@ - + diff --git a/src/webui/www/private/images/flags/sy.svg b/src/webui/www/private/images/flags/sy.svg index 29636ae06..522555052 100644 --- a/src/webui/www/private/images/flags/sy.svg +++ b/src/webui/www/private/images/flags/sy.svg @@ -1,5 +1,5 @@ - + diff --git a/src/webui/www/private/images/flags/sz.svg b/src/webui/www/private/images/flags/sz.svg index 5eef69140..294a2cc1a 100644 --- a/src/webui/www/private/images/flags/sz.svg +++ b/src/webui/www/private/images/flags/sz.svg @@ -2,7 +2,7 @@ - + @@ -13,7 +13,7 @@ - + @@ -22,13 +22,13 @@ - + - + - + - + diff --git a/src/webui/www/private/images/flags/tc.svg b/src/webui/www/private/images/flags/tc.svg index 89d29bbf8..63f13c359 100644 --- a/src/webui/www/private/images/flags/tc.svg +++ b/src/webui/www/private/images/flags/tc.svg @@ -1,14 +1,14 @@ - + - - + + - + @@ -27,7 +27,7 @@ - + @@ -35,10 +35,10 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/tf.svg b/src/webui/www/private/images/flags/tf.svg index 88323d2cd..fba233563 100644 --- a/src/webui/www/private/images/flags/tf.svg +++ b/src/webui/www/private/images/flags/tf.svg @@ -6,7 +6,7 @@ - + diff --git a/src/webui/www/private/images/flags/tg.svg b/src/webui/www/private/images/flags/tg.svg index e20f40d8d..c63a6d1a9 100644 --- a/src/webui/www/private/images/flags/tg.svg +++ b/src/webui/www/private/images/flags/tg.svg @@ -8,7 +8,7 @@ - + diff --git a/src/webui/www/private/images/flags/tj.svg b/src/webui/www/private/images/flags/tj.svg index d2ba73338..9fba246cd 100644 --- a/src/webui/www/private/images/flags/tj.svg +++ b/src/webui/www/private/images/flags/tj.svg @@ -10,10 +10,10 @@ - + - + diff --git a/src/webui/www/private/images/flags/tk.svg b/src/webui/www/private/images/flags/tk.svg index 65bab1372..05d3e86ce 100644 --- a/src/webui/www/private/images/flags/tk.svg +++ b/src/webui/www/private/images/flags/tk.svg @@ -1,5 +1,5 @@ - + diff --git a/src/webui/www/private/images/flags/tl.svg b/src/webui/www/private/images/flags/tl.svg index bcfc1612d..3d0701a2c 100644 --- a/src/webui/www/private/images/flags/tl.svg +++ b/src/webui/www/private/images/flags/tl.svg @@ -6,8 +6,8 @@ - - + + diff --git a/src/webui/www/private/images/flags/tm.svg b/src/webui/www/private/images/flags/tm.svg index 07c1a2f6c..8b656cc2b 100644 --- a/src/webui/www/private/images/flags/tm.svg +++ b/src/webui/www/private/images/flags/tm.svg @@ -34,7 +34,7 @@ - + @@ -76,7 +76,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -200,5 +200,5 @@ - + diff --git a/src/webui/www/private/images/flags/tn.svg b/src/webui/www/private/images/flags/tn.svg index 6a1989b4f..5735c1984 100644 --- a/src/webui/www/private/images/flags/tn.svg +++ b/src/webui/www/private/images/flags/tn.svg @@ -1,4 +1,4 @@ - + diff --git a/src/webui/www/private/images/flags/tr.svg b/src/webui/www/private/images/flags/tr.svg index a92804f88..b96da21f0 100644 --- a/src/webui/www/private/images/flags/tr.svg +++ b/src/webui/www/private/images/flags/tr.svg @@ -1,7 +1,7 @@ - + diff --git a/src/webui/www/private/images/flags/tt.svg b/src/webui/www/private/images/flags/tt.svg index 14adbe041..bc24938cf 100644 --- a/src/webui/www/private/images/flags/tt.svg +++ b/src/webui/www/private/images/flags/tt.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/tz.svg b/src/webui/www/private/images/flags/tz.svg index 751c16720..a2cfbca42 100644 --- a/src/webui/www/private/images/flags/tz.svg +++ b/src/webui/www/private/images/flags/tz.svg @@ -6,8 +6,8 @@ - - - + + + diff --git a/src/webui/www/private/images/flags/ug.svg b/src/webui/www/private/images/flags/ug.svg index 78252a42d..737eb2ce1 100644 --- a/src/webui/www/private/images/flags/ug.svg +++ b/src/webui/www/private/images/flags/ug.svg @@ -4,26 +4,26 @@ - + - + - + - - - - + + + + - + - - + + - - + + diff --git a/src/webui/www/private/images/flags/um.svg b/src/webui/www/private/images/flags/um.svg index e04159498..9e9eddaa4 100644 --- a/src/webui/www/private/images/flags/um.svg +++ b/src/webui/www/private/images/flags/um.svg @@ -5,5 +5,5 @@ - + diff --git a/src/webui/www/private/images/flags/un.svg b/src/webui/www/private/images/flags/un.svg index e47533703..e57793bc7 100644 --- a/src/webui/www/private/images/flags/un.svg +++ b/src/webui/www/private/images/flags/un.svg @@ -1,16 +1,16 @@ - - + + - - - - + + + + - - + + diff --git a/src/webui/www/private/images/flags/us.svg b/src/webui/www/private/images/flags/us.svg index 615946d4b..9cfd0c927 100644 --- a/src/webui/www/private/images/flags/us.svg +++ b/src/webui/www/private/images/flags/us.svg @@ -5,5 +5,5 @@ - + diff --git a/src/webui/www/private/images/flags/uy.svg b/src/webui/www/private/images/flags/uy.svg index 4a54b857a..62c36f8e5 100644 --- a/src/webui/www/private/images/flags/uy.svg +++ b/src/webui/www/private/images/flags/uy.svg @@ -1,7 +1,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/src/webui/www/private/images/flags/uz.svg b/src/webui/www/private/images/flags/uz.svg index aaf9382a4..0ccca1b1b 100644 --- a/src/webui/www/private/images/flags/uz.svg +++ b/src/webui/www/private/images/flags/uz.svg @@ -5,7 +5,7 @@ - + diff --git a/src/webui/www/private/images/flags/va.svg b/src/webui/www/private/images/flags/va.svg index 25e6a9756..87e0fbbdc 100644 --- a/src/webui/www/private/images/flags/va.svg +++ b/src/webui/www/private/images/flags/va.svg @@ -2,23 +2,23 @@ - + - - + + - - - - + + + + - + @@ -52,7 +52,7 @@ - + @@ -174,13 +174,13 @@ - + - + diff --git a/src/webui/www/private/images/flags/vc.svg b/src/webui/www/private/images/flags/vc.svg index 450f6f0a2..f26c2d8da 100644 --- a/src/webui/www/private/images/flags/vc.svg +++ b/src/webui/www/private/images/flags/vc.svg @@ -3,6 +3,6 @@ - + diff --git a/src/webui/www/private/images/flags/vg.svg b/src/webui/www/private/images/flags/vg.svg index 4d2c3976e..0ee90fb28 100644 --- a/src/webui/www/private/images/flags/vg.svg +++ b/src/webui/www/private/images/flags/vg.svg @@ -11,15 +11,15 @@ - - - + + + - + @@ -34,10 +34,10 @@ - - + + - + @@ -54,6 +54,6 @@ - + diff --git a/src/webui/www/private/images/flags/vi.svg b/src/webui/www/private/images/flags/vi.svg index 3a64338e8..427025779 100644 --- a/src/webui/www/private/images/flags/vi.svg +++ b/src/webui/www/private/images/flags/vi.svg @@ -8,11 +8,11 @@ - - + + - - + + @@ -21,8 +21,8 @@ - + - - + + diff --git a/src/webui/www/private/images/flags/vn.svg b/src/webui/www/private/images/flags/vn.svg index 24bedc503..7e4bac8f4 100644 --- a/src/webui/www/private/images/flags/vn.svg +++ b/src/webui/www/private/images/flags/vn.svg @@ -4,7 +4,7 @@ - + diff --git a/src/webui/www/private/images/flags/vu.svg b/src/webui/www/private/images/flags/vu.svg index efcff8954..91e1236a0 100644 --- a/src/webui/www/private/images/flags/vu.svg +++ b/src/webui/www/private/images/flags/vu.svg @@ -10,11 +10,11 @@ - + - + diff --git a/src/webui/www/private/images/flags/wf.svg b/src/webui/www/private/images/flags/wf.svg index 57feb3a59..054c57df9 100644 --- a/src/webui/www/private/images/flags/wf.svg +++ b/src/webui/www/private/images/flags/wf.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/xk.svg b/src/webui/www/private/images/flags/xk.svg index de6ef4da2..551e7a414 100644 --- a/src/webui/www/private/images/flags/xk.svg +++ b/src/webui/www/private/images/flags/xk.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/ye.svg b/src/webui/www/private/images/flags/ye.svg index 61f0ed610..1c9e6d639 100644 --- a/src/webui/www/private/images/flags/ye.svg +++ b/src/webui/www/private/images/flags/ye.svg @@ -2,6 +2,6 @@ - + diff --git a/src/webui/www/private/images/flags/yt.svg b/src/webui/www/private/images/flags/yt.svg index 5ea2f648c..e7776b307 100644 --- a/src/webui/www/private/images/flags/yt.svg +++ b/src/webui/www/private/images/flags/yt.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/webui/www/private/images/flags/za.svg b/src/webui/www/private/images/flags/za.svg index aa54beb87..d563adb90 100644 --- a/src/webui/www/private/images/flags/za.svg +++ b/src/webui/www/private/images/flags/za.svg @@ -4,14 +4,14 @@ - + - + - - + + - + diff --git a/src/webui/www/private/images/flags/zm.svg b/src/webui/www/private/images/flags/zm.svg index b8fdd63cb..13239f5e2 100644 --- a/src/webui/www/private/images/flags/zm.svg +++ b/src/webui/www/private/images/flags/zm.svg @@ -4,17 +4,17 @@ - + - + - - + + diff --git a/src/webui/www/private/images/flags/zw.svg b/src/webui/www/private/images/flags/zw.svg index 5c1974693..6399ab4ab 100644 --- a/src/webui/www/private/images/flags/zw.svg +++ b/src/webui/www/private/images/flags/zw.svg @@ -8,14 +8,14 @@ - + - - + + - + diff --git a/src/webui/www/private/images/ip-blocked.svg b/src/webui/www/private/images/ip-blocked.svg new file mode 100644 index 000000000..a79057787 --- /dev/null +++ b/src/webui/www/private/images/ip-blocked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/network-connect.svg b/src/webui/www/private/images/network-connect.svg new file mode 100644 index 000000000..392ee8ab4 --- /dev/null +++ b/src/webui/www/private/images/network-connect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/network-server.svg b/src/webui/www/private/images/network-server.svg new file mode 100644 index 000000000..f302762d4 --- /dev/null +++ b/src/webui/www/private/images/network-server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/peers.svg b/src/webui/www/private/images/peers.svg new file mode 100644 index 000000000..bb4989066 --- /dev/null +++ b/src/webui/www/private/images/peers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/plugins.svg b/src/webui/www/private/images/plugins.svg new file mode 100644 index 000000000..09a0a560e --- /dev/null +++ b/src/webui/www/private/images/plugins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/preferences-advanced.svg b/src/webui/www/private/images/preferences-advanced.svg new file mode 100644 index 000000000..8fedd2e52 --- /dev/null +++ b/src/webui/www/private/images/preferences-advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/preferences-bittorrent.svg b/src/webui/www/private/images/preferences-bittorrent.svg new file mode 100644 index 000000000..18d28e841 --- /dev/null +++ b/src/webui/www/private/images/preferences-bittorrent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/preferences-desktop.svg b/src/webui/www/private/images/preferences-desktop.svg new file mode 100644 index 000000000..c905c01f8 --- /dev/null +++ b/src/webui/www/private/images/preferences-desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/preferences-webui.svg b/src/webui/www/private/images/preferences-webui.svg new file mode 100644 index 000000000..d9619d7db --- /dev/null +++ b/src/webui/www/private/images/preferences-webui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/images/slow.svg b/src/webui/www/private/images/slow.svg index f721bd639..68aa27b32 100644 --- a/src/webui/www/private/images/slow.svg +++ b/src/webui/www/private/images/slow.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/webui/www/private/images/slow_off.svg b/src/webui/www/private/images/slow_off.svg index ce913cd61..fe6ca9b1f 100644 --- a/src/webui/www/private/images/slow_off.svg +++ b/src/webui/www/private/images/slow_off.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/webui/www/private/images/torrent-creator.svg b/src/webui/www/private/images/torrent-creator.svg new file mode 100644 index 000000000..324a1a492 --- /dev/null +++ b/src/webui/www/private/images/torrent-creator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html index 388a509fd..1f11f3aa5 100644 --- a/src/webui/www/private/index.html +++ b/src/webui/www/private/index.html @@ -1,26 +1,26 @@ - + + - - - + + + qBittorrent WebUI - - - - - - - - - + + + + + + + + @@ -28,6 +28,7 @@ + @@ -39,6 +40,7 @@ + @@ -55,83 +57,98 @@
  • QBT_TR(File)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Edit)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(View)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Tools)QBT_TR[CONTEXT=MainWindow]
  • QBT_TR(Help)QBT_TR[CONTEXT=MainWindow]
  •    - QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget] + QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget] - QBT_TR(Top of Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Move Up Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Move Down Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Bottom of Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Top of Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Move Up Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Move Down Queue)QBT_TR[CONTEXT=MainWindow] + QBT_TR(Bottom of Queue)QBT_TR[CONTEXT=MainWindow] - QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog] + QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]
    - + - + + +
    @@ -139,98 +156,110 @@
    + +
      -
    • QBT_TR(Rename...)QBT_TR[CONTEXT=PropertiesWidget] QBT_TR(Rename...)QBT_TR[CONTEXT=PropertiesWidget]
    • +
    • QBT_TR(Rename...)QBT_TR[CONTEXT=PropertiesWidget] QBT_TR(Rename...)QBT_TR[CONTEXT=PropertiesWidget]
    • QBT_TR(Priority)QBT_TR[CONTEXT=PropertiesWidget]
        @@ -242,25 +271,29 @@
      - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +
      QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]
      QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]
      diff --git a/src/webui/www/private/newcategory.html b/src/webui/www/private/newcategory.html index 8fa1986aa..b2ec949fa 100644 --- a/src/webui/www/private/newcategory.html +++ b/src/webui/www/private/newcategory.html @@ -1,64 +1,64 @@ - + - + QBT_TR(New Category)QBT_TR[CONTEXT=TransferListWidget] - + + + +
      -

      QBT_TR(Category)QBT_TR[CONTEXT=TransferListWidget]:

      - -

      QBT_TR(Save path)QBT_TR[CONTEXT=TransferListWidget]:

      - + + + +
      - +
      diff --git a/src/webui/www/private/newfeed.html b/src/webui/www/private/newfeed.html index 37ba92a90..b3815a63e 100644 --- a/src/webui/www/private/newfeed.html +++ b/src/webui/www/private/newfeed.html @@ -1,64 +1,65 @@ - + - + QBT_TR(Please type a RSS feed URL)QBT_TR[CONTEXT=RSSWidget] - + + + @@ -66,10 +67,10 @@
      -

      QBT_TR(Feed URL:)QBT_TR[CONTEXT=RSSWidget]

      - + +
      - +
      diff --git a/src/webui/www/private/newfolder.html b/src/webui/www/private/newfolder.html index aebe054b3..30db4c450 100644 --- a/src/webui/www/private/newfolder.html +++ b/src/webui/www/private/newfolder.html @@ -1,74 +1,78 @@ - + - + QBT_TR(Please choose a folder name)QBT_TR[CONTEXT=RSSWidget] - + + + +
      -

      QBT_TR(Folder name:)QBT_TR[CONTEXT=RSSWidget]

      - + +
      - +
      diff --git a/src/webui/www/private/newrule.html b/src/webui/www/private/newrule.html index a732673fe..18f03a154 100644 --- a/src/webui/www/private/newrule.html +++ b/src/webui/www/private/newrule.html @@ -1,56 +1,59 @@ - + - + QBT_TR(New rule name)QBT_TR[CONTEXT=AutomatedRssDownloader] - + + + @@ -58,10 +61,10 @@
      -

      QBT_TR(Please type the name of the new download rule.)QBT_TR[CONTEXT=AutomatedRssDownloader]

      - + +
      - +
      diff --git a/src/webui/www/private/newtag.html b/src/webui/www/private/newtag.html index 6dbe02bfe..a8067fecc 100644 --- a/src/webui/www/private/newtag.html +++ b/src/webui/www/private/newtag.html @@ -1,49 +1,47 @@ - + - - QBT_TR(Add Tags)QBT_TR[CONTEXT=TransferListWidget] - + + QBT_TR(Add tags)QBT_TR[CONTEXT=TransferListWidget] + + + + + + + @@ -76,10 +76,10 @@
      -

      QBT_TR(New feed name:)QBT_TR[CONTEXT=RSSWidget]

      - + +
      - +
      diff --git a/src/webui/www/private/rename_file.html b/src/webui/www/private/rename_file.html index b9ed1e99c..8cddc935b 100644 --- a/src/webui/www/private/rename_file.html +++ b/src/webui/www/private/rename_file.html @@ -1,82 +1,83 @@ - + - + QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView] - + + + @@ -84,10 +85,10 @@
      -

      QBT_TR(New name:)QBT_TR[CONTEXT=TorrentContentTreeView]

      - + +
      - +
      diff --git a/src/webui/www/private/rename_files.html b/src/webui/www/private/rename_files.html index 241a41a85..37a15b3a7 100644 --- a/src/webui/www/private/rename_files.html +++ b/src/webui/www/private/rename_files.html @@ -2,7 +2,7 @@ - + QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView] @@ -12,23 +12,20 @@ @@ -417,58 +405,58 @@
      - +

      - +
      - +
      - +
      - +

      - - +
      - +
      - +
      - +
      -
      +

      -
      -
      +
      diff --git a/src/webui/www/private/rename_rule.html b/src/webui/www/private/rename_rule.html index 6ce03e4a0..dc0c39b75 100644 --- a/src/webui/www/private/rename_rule.html +++ b/src/webui/www/private/rename_rule.html @@ -1,67 +1,70 @@ - + - + QBT_TR(Rule renaming)QBT_TR[CONTEXT=AutomatedRssDownloader] - + + + @@ -69,10 +72,10 @@
      -

      QBT_TR(Please type the new rule name)QBT_TR[CONTEXT=AutomatedRssDownloader]

      - + +
      - +
      diff --git a/src/webui/www/private/scripts/cache.js b/src/webui/www/private/scripts/cache.js index ad89a26c9..3b93c8757 100644 --- a/src/webui/www/private/scripts/cache.js +++ b/src/webui/www/private/scripts/cache.js @@ -26,12 +26,10 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) - window.qBittorrent = {}; - -window.qBittorrent.Cache = (() => { +window.qBittorrent ??= {}; +window.qBittorrent.Cache ??= (() => { const exports = () => { return { buildInfo: new BuildInfoCache(), @@ -46,7 +44,7 @@ window.qBittorrent.Cache = (() => { const keys = Reflect.ownKeys(obj); for (const key of keys) { const value = obj[key]; - if ((value && (typeof value === 'object')) || (typeof value === 'function')) + if ((value && (typeof value === "object")) || (typeof value === "function")) deepFreeze(value); } Object.freeze(obj); @@ -55,19 +53,19 @@ window.qBittorrent.Cache = (() => { class BuildInfoCache { #m_store = {}; - init() { - new Request.JSON({ - url: 'api/v2/app/buildInfo', - method: 'get', - noCache: true, - onSuccess: (responseJSON) => { - if (!responseJSON) + async init() { + return fetch("api/v2/app/buildInfo", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) return; + const responseJSON = await response.json(); deepFreeze(responseJSON); this.#m_store = responseJSON; - } - }).send(); + }); } get() { @@ -82,26 +80,27 @@ window.qBittorrent.Cache = (() => { // onFailure: () => {}, // onSuccess: () => {} // } - init(obj = {}) { - new Request.JSON({ - url: 'api/v2/app/preferences', - method: 'get', - noCache: true, - onFailure: (xhr) => { - if (typeof obj.onFailure === 'function') - obj.onFailure(xhr); - }, - onSuccess: (responseJSON, responseText) => { - if (!responseJSON) - return; + async init(obj = {}) { + return fetch("api/v2/app/preferences", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; - deepFreeze(responseJSON); - this.#m_store = responseJSON; + const responseText = await response.text(); + const responseJSON = JSON.parse(responseText); + deepFreeze(responseJSON); + this.#m_store = responseJSON; - if (typeof obj.onSuccess === 'function') - obj.onSuccess(responseJSON, responseText); - } - }).send(); + if (typeof obj.onSuccess === "function") + obj.onSuccess(responseJSON, responseText); + }, + (error) => { + if (typeof obj.onFailure === "function") + obj.onFailure(error); + }); } get() { @@ -114,53 +113,58 @@ window.qBittorrent.Cache = (() => { // onSuccess: () => {} // } set(obj) { - if (typeof obj !== 'object') - throw new Error('`obj` is not an object.'); - if (typeof obj.data !== 'object') - throw new Error('`data` is not an object.'); + if (typeof obj !== "object") + throw new Error("`obj` is not an object."); + if (typeof obj.data !== "object") + throw new Error("`data` is not an object."); - new Request({ - url: 'api/v2/app/setPreferences', - method: 'post', - data: { - 'json': JSON.stringify(obj.data) - }, - onFailure: (xhr) => { - if (typeof obj.onFailure === 'function') - obj.onFailure(xhr); - }, - onSuccess: (responseText, responseXML) => { - this.#m_store = structuredClone(this.#m_store); - for (const key in obj.data) { - if (!Object.hasOwn(obj.data, key)) - continue; + fetch("api/v2/app/setPreferences", { + method: "POST", + body: new URLSearchParams({ + json: JSON.stringify(obj.data) + }) + }) + .then(async (response) => { + if (!response.ok) + return; - const value = obj.data[key]; - this.#m_store[key] = value; - } - deepFreeze(this.#m_store); + this.#m_store = structuredClone(this.#m_store); + for (const key in obj.data) { + if (!Object.hasOwn(obj.data, key)) + continue; - if (typeof obj.onSuccess === 'function') - obj.onSuccess(responseText, responseXML); - } - }).send(); + const value = obj.data[key]; + this.#m_store[key] = value; + } + deepFreeze(this.#m_store); + + if (typeof obj.onSuccess === "function") { + const responseText = await response.text(); + obj.onSuccess(responseText); + } + }, + (error) => { + if (typeof obj.onFailure === "function") + obj.onFailure(error); + }); } } class QbtVersionCache { - #m_store = ''; + #m_store = ""; - init() { - new Request({ - url: 'api/v2/app/version', - method: 'get', - noCache: true, - onSuccess: (responseText) => { - if (!responseText) + async init() { + return fetch("api/v2/app/version", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) return; + + const responseText = await response.text(); this.#m_store = responseText; - } - }).send(); + }); } get() { @@ -170,5 +174,4 @@ window.qBittorrent.Cache = (() => { return exports(); })(); - Object.freeze(window.qBittorrent.Cache); diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js index 496ca43da..15e7af365 100644 --- a/src/webui/www/private/scripts/client.js +++ b/src/webui/www/private/scripts/client.js @@ -23,39 +23,56 @@ * THE SOFTWARE. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.Client = (() => { +window.qBittorrent ??= {}; +window.qBittorrent.Client ??= (() => { const exports = () => { return { - closeWindows: closeWindows, - genHash: genHash, + setup: setup, + initializeCaches: initializeCaches, + closeWindow: closeWindow, + closeFrameWindow: closeFrameWindow, getSyncMainDataInterval: getSyncMainDataInterval, isStopped: isStopped, stop: stop, - mainTitle: mainTitle + mainTitle: mainTitle, + showSearchEngine: showSearchEngine, + showRssReader: showRssReader, + showLogViewer: showLogViewer, + isShowSearchEngine: isShowSearchEngine, + isShowRssReader: isShowRssReader, + isShowLogViewer: isShowLogViewer }; }; - const closeWindows = function() { - MochaUI.closeAll(); + let cacheAllSettled; + const setup = () => { + // fetch various data and store it in memory + cacheAllSettled = Promise.allSettled([ + window.qBittorrent.Cache.buildInfo.init(), + window.qBittorrent.Cache.preferences.init(), + window.qBittorrent.Cache.qbtVersion.init() + ]); }; - const genHash = function(string) { - // origins: - // https://stackoverflow.com/a/8831937 - // https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0 - let hash = 0; - for (let i = 0; i < string.length; ++i) - hash = ((Math.imul(hash, 31) + string.charCodeAt(i)) | 0); - return hash; + const initializeCaches = async () => { + const results = await cacheAllSettled; + for (const [idx, result] of results.entries()) { + if (result.status === "rejected") + console.error(`Failed to initialize cache. Index: ${idx}. Reason: "${result.reason}".`); + } }; - const getSyncMainDataInterval = function() { + const closeWindow = (window) => { + MochaUI.closeWindow(window); + }; + + const closeFrameWindow = (window) => { + MochaUI.closeWindow(window.frameElement.closest("div.mocha")); + }; + + const getSyncMainDataInterval = () => { return customSyncMainDataInterval ? customSyncMainDataInterval : serverSyncMainDataInterval; }; @@ -69,200 +86,242 @@ window.qBittorrent.Client = (() => { }; const mainTitle = () => { - const emDash = '\u2014'; + const emDash = "\u2014"; const qbtVersion = window.qBittorrent.Cache.qbtVersion.get(); - const suffix = window.qBittorrent.Cache.preferences.get()['app_instance_name'] || ''; - const title = `qBittorrent ${qbtVersion} QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]` - + ((suffix.length > 0) ? ` ${emDash} ${suffix}` : ''); + let suffix = window.qBittorrent.Cache.preferences.get()["app_instance_name"] || ""; + if (suffix.length > 0) + suffix = ` ${emDash} ${suffix}`; + const title = `qBittorrent ${qbtVersion} QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]${suffix}`; return title; }; + let showingSearchEngine = false; + let showingRssReader = false; + let showingLogViewer = false; + + const showSearchEngine = (bool) => { + showingSearchEngine = bool; + }; + const showRssReader = (bool) => { + showingRssReader = bool; + }; + const showLogViewer = (bool) => { + showingLogViewer = bool; + }; + const isShowSearchEngine = () => { + return showingSearchEngine; + }; + const isShowRssReader = () => { + return showingRssReader; + }; + const isShowLogViewer = () => { + return showingLogViewer; + }; + return exports(); })(); Object.freeze(window.qBittorrent.Client); +window.qBittorrent.Client.setup(); + // TODO: move global functions/variables into some namespace/scope this.torrentsTable = new window.qBittorrent.DynamicTable.TorrentsTable(); -let updatePropertiesPanel = function() {}; +let updatePropertiesPanel = () => {}; -this.updateMainData = function() {}; +this.updateMainData = () => {}; let alternativeSpeedLimits = false; let queueing_enabled = true; let serverSyncMainDataInterval = 1500; let customSyncMainDataInterval = null; let useSubcategories = true; +const useAutoHideZeroStatusFilters = LocalPreferences.get("hide_zero_status_filters", "false") === "true"; +const displayFullURLTrackerColumn = LocalPreferences.get("full_url_tracker_column", "false") === "true"; /* Categories filter */ -const CATEGORIES_ALL = 1; -const CATEGORIES_UNCATEGORIZED = 2; +const CATEGORIES_ALL = "b4af0e4c-e76d-4bac-a392-46cbc18d9655"; +const CATEGORIES_UNCATEGORIZED = "e24bd469-ea22-404c-8e2e-a17c82f37ea0"; -const category_list = new Map(); +// Map +const categoryMap = new Map(); -let selected_category = Number(LocalPreferences.get('selected_category', CATEGORIES_ALL)); -let setCategoryFilter = function() {}; +let selectedCategory = LocalPreferences.get("selected_category", CATEGORIES_ALL); +let setCategoryFilter = () => {}; /* Tags filter */ -const TAGS_ALL = 1; -const TAGS_UNTAGGED = 2; +const TAGS_ALL = "b4af0e4c-e76d-4bac-a392-46cbc18d9655"; +const TAGS_UNTAGGED = "e24bd469-ea22-404c-8e2e-a17c82f37ea0"; -const tagList = new Map(); +// Map +const tagMap = new Map(); -let selectedTag = Number(LocalPreferences.get('selected_tag', TAGS_ALL)); -let setTagFilter = function() {}; +let selectedTag = LocalPreferences.get("selected_tag", TAGS_ALL); +let setTagFilter = () => {}; /* Trackers filter */ -const TRACKERS_ALL = 1; -const TRACKERS_TRACKERLESS = 2; +const TRACKERS_ALL = "b4af0e4c-e76d-4bac-a392-46cbc18d9655"; +const TRACKERS_TRACKERLESS = "e24bd469-ea22-404c-8e2e-a17c82f37ea0"; -/** @type Map}> **/ -const trackerList = new Map(); +// Map> +const trackerMap = new Map(); -let selectedTracker = LocalPreferences.get('selected_tracker', TRACKERS_ALL); -let setTrackerFilter = function() {}; +let selectedTracker = LocalPreferences.get("selected_tracker", TRACKERS_ALL); +let setTrackerFilter = () => {}; /* All filters */ -let selected_filter = LocalPreferences.get('selected_filter', 'all'); -let setFilter = function() {}; -let toggleFilterDisplay = function() {}; +let selectedStatus = LocalPreferences.get("selected_filter", "all"); +let setStatusFilter = () => {}; +let toggleFilterDisplay = () => {}; -window.addEventListener("DOMContentLoaded", function() { - const saveColumnSizes = function() { - const filters_width = $('Filters').getSize().x; - LocalPreferences.set('filters_width', filters_width); - const properties_height_rel = $('propertiesPanel').getSize().y / Window.getSize().y; - LocalPreferences.set('properties_height_rel', properties_height_rel); +window.addEventListener("DOMContentLoaded", () => { + let isSearchPanelLoaded = false; + let isLogPanelLoaded = false; + let isRssPanelLoaded = false; + + const saveColumnSizes = () => { + const filters_width = $("Filters").getSize().x; + LocalPreferences.set("filters_width", filters_width); + const properties_height_rel = $("propertiesPanel").getSize().y / Window.getSize().y; + LocalPreferences.set("properties_height_rel", properties_height_rel); }; - window.addEvent('resize', function() { + window.addEventListener("resize", window.qBittorrent.Misc.createDebounceHandler(500, (e) => { // only save sizes if the columns are visible - if (!$("mainColumn").hasClass("invisible")) - saveColumnSizes.delay(200); // Resizing might takes some time. - }); + if (!$("mainColumn").classList.contains("invisible")) + saveColumnSizes(); + })); - /*MochaUI.Desktop = new MochaUI.Desktop(); - MochaUI.Desktop.desktop.setStyles({ - 'background': '#fff', - 'visibility': 'visible' - });*/ + /* MochaUI.Desktop = new MochaUI.Desktop(); + MochaUI.Desktop.desktop.style.background = "#fff"; + MochaUI.Desktop.desktop.style.visibility = "visible"; */ MochaUI.Desktop.initialize(); - const buildTransfersTab = function() { - const filt_w = Number(LocalPreferences.get('filters_width', 120)); + const buildTransfersTab = () => { new MochaUI.Column({ - id: 'filtersColumn', - placement: 'left', - onResize: saveColumnSizes, - width: filt_w, - resizeLimit: [1, 300] + id: "filtersColumn", + placement: "left", + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { + saveColumnSizes(); + }), + width: Number(LocalPreferences.get("filters_width", 210)), + resizeLimit: [1, 1000] }); new MochaUI.Column({ - id: 'mainColumn', - placement: 'main' + id: "mainColumn", + placement: "main" }); }; - const buildSearchTab = function() { + const buildSearchTab = () => { new MochaUI.Column({ - id: 'searchTabColumn', - placement: 'main', + id: "searchTabColumn", + placement: "main", width: null }); // start off hidden - $("searchTabColumn").addClass("invisible"); + $("searchTabColumn").classList.add("invisible"); }; - const buildRssTab = function() { + const buildRssTab = () => { new MochaUI.Column({ - id: 'rssTabColumn', - placement: 'main', + id: "rssTabColumn", + placement: "main", width: null }); // start off hidden - $("rssTabColumn").addClass("invisible"); + $("rssTabColumn").classList.add("invisible"); }; - const buildLogTab = function() { + const buildLogTab = () => { new MochaUI.Column({ - id: 'logTabColumn', - placement: 'main', + id: "logTabColumn", + placement: "main", width: null }); // start off hidden - $('logTabColumn').addClass('invisible'); + $("logTabColumn").classList.add("invisible"); }; buildTransfersTab(); buildSearchTab(); buildRssTab(); buildLogTab(); - MochaUI.initializeTabs('mainWindowTabsList'); + MochaUI.initializeTabs("mainWindowTabsList"); - setCategoryFilter = function(hash) { - selected_category = hash; - LocalPreferences.set('selected_category', selected_category); + const handleFilterSelectionChange = (prevSelectedTorrent, currSelectedTorrent) => { + // clear properties panels when filter changes (e.g. selected torrent is no longer visible) + if (prevSelectedTorrent !== currSelectedTorrent) { + window.qBittorrent.PropGeneral.clear(); + window.qBittorrent.PropTrackers.clear(); + window.qBittorrent.PropPeers.clear(); + window.qBittorrent.PropWebseeds.clear(); + window.qBittorrent.PropFiles.clear(); + } + }; + + setStatusFilter = (name) => { + const currentHash = torrentsTable.getCurrentTorrentID(); + + LocalPreferences.set("selected_filter", name); + selectedStatus = name; + highlightSelectedStatus(); + updateMainData(); + + const newHash = torrentsTable.getCurrentTorrentID(); + handleFilterSelectionChange(currentHash, newHash); + }; + + setCategoryFilter = (category) => { + const currentHash = torrentsTable.getCurrentTorrentID(); + + LocalPreferences.set("selected_category", category); + selectedCategory = category; highlightSelectedCategory(); - if (typeof torrentsTable.tableBody !== 'undefined') - updateMainData(); + updateMainData(); + + const newHash = torrentsTable.getCurrentTorrentID(); + handleFilterSelectionChange(currentHash, newHash); }; - setTagFilter = function(hash) { - selectedTag = hash; - LocalPreferences.set('selected_tag', selectedTag); + setTagFilter = (tag) => { + const currentHash = torrentsTable.getCurrentTorrentID(); + + LocalPreferences.set("selected_tag", tag); + selectedTag = tag; highlightSelectedTag(); - if (torrentsTable.tableBody !== undefined) - updateMainData(); + updateMainData(); + + const newHash = torrentsTable.getCurrentTorrentID(); + handleFilterSelectionChange(currentHash, newHash); }; - setTrackerFilter = function(hash) { - selectedTracker = hash.toString(); - LocalPreferences.set('selected_tracker', selectedTracker); + setTrackerFilter = (tracker) => { + const currentHash = torrentsTable.getCurrentTorrentID(); + + LocalPreferences.set("selected_tracker", tracker); + selectedTracker = tracker; highlightSelectedTracker(); - if (torrentsTable.tableBody !== undefined) - updateMainData(); + updateMainData(); + + const newHash = torrentsTable.getCurrentTorrentID(); + handleFilterSelectionChange(currentHash, newHash); }; - setFilter = function(f) { - // Visually Select the right filter - $("all_filter").removeClass("selectedFilter"); - $("downloading_filter").removeClass("selectedFilter"); - $("seeding_filter").removeClass("selectedFilter"); - $("completed_filter").removeClass("selectedFilter"); - $("stopped_filter").removeClass("selectedFilter"); - $("running_filter").removeClass("selectedFilter"); - $("active_filter").removeClass("selectedFilter"); - $("inactive_filter").removeClass("selectedFilter"); - $("stalled_filter").removeClass("selectedFilter"); - $("stalled_uploading_filter").removeClass("selectedFilter"); - $("stalled_downloading_filter").removeClass("selectedFilter"); - $("checking_filter").removeClass("selectedFilter"); - $("moving_filter").removeClass("selectedFilter"); - $("errored_filter").removeClass("selectedFilter"); - $(f + "_filter").addClass("selectedFilter"); - selected_filter = f; - LocalPreferences.set('selected_filter', f); - // Reload torrents - if (typeof torrentsTable.tableBody !== 'undefined') - updateMainData(); - }; - - toggleFilterDisplay = function(filter) { - const element = filter + "FilterList"; - LocalPreferences.set('filter_' + filter + "_collapsed", !$(element).hasClass("invisible")); - $(element).toggleClass("invisible"); - const parent = $(element).getParent(".filterWrapper"); - const toggleIcon = $(parent).getChildren(".filterTitle img"); - if (toggleIcon) - toggleIcon[0].toggleClass("rotate"); + toggleFilterDisplay = (filterListID) => { + const filterList = document.getElementById(filterListID); + const filterTitle = filterList.previousElementSibling; + const toggleIcon = filterTitle.firstElementChild; + toggleIcon.classList.toggle("rotate"); + LocalPreferences.set(`filter_${filterListID.replace("FilterList", "")}_collapsed`, filterList.classList.toggle("invisible").toString()); }; new MochaUI.Panel({ - id: 'Filters', - title: 'Panel', + id: "Filters", + title: "Panel", header: false, padding: { top: 0, @@ -270,46 +329,46 @@ window.addEventListener("DOMContentLoaded", function() { bottom: 0, left: 0 }, - loadMethod: 'xhr', - contentURL: 'views/filters.html', - onContentLoaded: function() { - setFilter(selected_filter); + loadMethod: "xhr", + contentURL: "views/filters.html", + onContentLoaded: () => { + highlightSelectedStatus(); }, - column: 'filtersColumn', + column: "filtersColumn", height: 300 }); initializeWindows(); // Show Top Toolbar is enabled by default - let showTopToolbar = LocalPreferences.get('show_top_toolbar', 'true') === "true"; + let showTopToolbar = LocalPreferences.get("show_top_toolbar", "true") === "true"; if (!showTopToolbar) { - $('showTopToolbarLink').firstChild.style.opacity = '0'; - $('mochaToolbar').addClass('invisible'); + $("showTopToolbarLink").firstElementChild.style.opacity = "0"; + $("mochaToolbar").classList.add("invisible"); } // Show Status Bar is enabled by default - let showStatusBar = LocalPreferences.get('show_status_bar', 'true') === "true"; + let showStatusBar = LocalPreferences.get("show_status_bar", "true") === "true"; if (!showStatusBar) { - $('showStatusBarLink').firstChild.style.opacity = '0'; - $('desktopFooterWrapper').addClass('invisible'); + $("showStatusBarLink").firstElementChild.style.opacity = "0"; + $("desktopFooterWrapper").classList.add("invisible"); } // Show Filters Sidebar is enabled by default - let showFiltersSidebar = LocalPreferences.get('show_filters_sidebar', 'true') === "true"; + let showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true"; if (!showFiltersSidebar) { - $('showFiltersSidebarLink').firstChild.style.opacity = '0'; - $('filtersColumn').addClass('invisible'); - $('filtersColumn_handle').addClass('invisible'); + $("showFiltersSidebarLink").firstElementChild.style.opacity = "0"; + $("filtersColumn").classList.add("invisible"); + $("filtersColumn_handle").classList.add("invisible"); } - let speedInTitle = LocalPreferences.get('speed_in_browser_title_bar') === "true"; + let speedInTitle = LocalPreferences.get("speed_in_browser_title_bar") === "true"; if (!speedInTitle) - $('speedInBrowserTitleBarLink').firstChild.style.opacity = '0'; + $("speedInBrowserTitleBarLink").firstElementChild.style.opacity = "0"; // After showing/hiding the toolbar + status bar - let showSearchEngine = LocalPreferences.get('show_search_engine') !== "false"; - let showRssReader = LocalPreferences.get('show_rss_reader') !== "false"; - let showLogViewer = LocalPreferences.get('show_log_viewer') === 'true'; + window.qBittorrent.Client.showSearchEngine(LocalPreferences.get("show_search_engine") !== "false"); + window.qBittorrent.Client.showRssReader(LocalPreferences.get("show_rss_reader") !== "false"); + window.qBittorrent.Client.showLogViewer(LocalPreferences.get("show_log_viewer") === "true"); // After Show Top Toolbar MochaUI.Desktop.setDesktopSize(); @@ -317,159 +376,187 @@ window.addEventListener("DOMContentLoaded", function() { let syncMainDataLastResponseId = 0; const serverState = {}; - const removeTorrentFromCategoryList = function(hash) { - if (!hash) + const removeTorrentFromCategoryList = (hash) => { + if (hash === undefined) return false; let removed = false; - category_list.forEach((category) => { - const deleteResult = category.torrents.delete(hash); + for (const data of categoryMap.values()) { + const deleteResult = data.torrents.delete(hash); removed ||= deleteResult; - }); - + } return removed; }; - const addTorrentToCategoryList = function(torrent) { - const category = torrent['category']; - if (typeof category === 'undefined') + const addTorrentToCategoryList = (torrent) => { + const category = torrent["category"]; + if (category === undefined) return false; - const hash = torrent['hash']; + const hash = torrent["hash"]; if (category.length === 0) { // Empty category removeTorrentFromCategoryList(hash); return true; } - const categoryHash = window.qBittorrent.Client.genHash(category); - if (!category_list.has(categoryHash)) { // This should not happen - category_list.set(categoryHash, { - name: category, + let categoryData = categoryMap.get(category); + if (categoryData === undefined) { // This should not happen + categoryData = { torrents: new Set() - }); + }; + categoryMap.set(category, categoryData); } - const torrents = category_list.get(categoryHash).torrents; - if (!torrents.has(hash)) { - removeTorrentFromCategoryList(hash); - torrents.add(hash); - return true; - } - return false; + if (categoryData.torrents.has(hash)) + return false; + + removeTorrentFromCategoryList(hash); + categoryData.torrents.add(hash); + return true; }; - const removeTorrentFromTagList = function(hash) { - if (!hash) + const removeTorrentFromTagList = (hash) => { + if (hash === undefined) return false; let removed = false; - tagList.forEach((tag) => { - const deleteResult = tag.torrents.delete(hash); + for (const torrents of tagMap.values()) { + const deleteResult = torrents.delete(hash); removed ||= deleteResult; - }); - + } return removed; }; - const addTorrentToTagList = function(torrent) { - if (torrent['tags'] === undefined) // Tags haven't changed + const addTorrentToTagList = (torrent) => { + if (torrent["tags"] === undefined) // Tags haven't changed return false; - const hash = torrent['hash']; + const hash = torrent["hash"]; removeTorrentFromTagList(hash); - if (torrent['tags'].length === 0) // No tags + if (torrent["tags"].length === 0) // No tags return true; - const tags = torrent['tags'].split(','); + const tags = torrent["tags"].split(", "); let added = false; - for (let i = 0; i < tags.length; ++i) { - const tagHash = window.qBittorrent.Client.genHash(tags[i].trim()); - if (!tagList.has(tagHash)) { // This should not happen - tagList.set(tagHash, { - name: tags, - torrents: new Set() - }); + for (const tag of tags) { + let torrents = tagMap.get(tag); + if (torrents === undefined) { // This should not happen + torrents = new Set(); + tagMap.set(tag, torrents); } - const torrents = tagList.get(tagHash).torrents; if (!torrents.has(hash)) { torrents.add(hash); added = true; } } + return added; }; - const updateFilter = function(filter, filterTitle) { - $(filter + '_filter').firstChild.childNodes[1].nodeValue = filterTitle.replace('%1', torrentsTable.getFilteredTorrentsNumber(filter, CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL)); + const updateFilter = (filter, filterTitle) => { + const filterEl = document.getElementById(`${filter}_filter`); + const filterTorrentCount = torrentsTable.getFilteredTorrentsNumber(filter, CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL); + if (useAutoHideZeroStatusFilters) { + const hideFilter = (filterTorrentCount === 0) && (filter !== "all"); + if (filterEl.classList.toggle("invisible", hideFilter)) + return; + } + filterEl.firstElementChild.lastChild.textContent = filterTitle.replace("%1", filterTorrentCount); }; - const updateFiltersList = function() { - updateFilter('all', 'QBT_TR(All (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('downloading', 'QBT_TR(Downloading (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('seeding', 'QBT_TR(Seeding (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('completed', 'QBT_TR(Completed (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('running', 'QBT_TR(Running (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('stopped', 'QBT_TR(Stopped (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('active', 'QBT_TR(Active (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('inactive', 'QBT_TR(Inactive (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('stalled', 'QBT_TR(Stalled (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('stalled_uploading', 'QBT_TR(Stalled Uploading (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('stalled_downloading', 'QBT_TR(Stalled Downloading (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('checking', 'QBT_TR(Checking (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('moving', 'QBT_TR(Moving (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); - updateFilter('errored', 'QBT_TR(Errored (%1))QBT_TR[CONTEXT=StatusFilterWidget]'); + const updateFiltersList = () => { + updateFilter("all", "QBT_TR(All (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("downloading", "QBT_TR(Downloading (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("seeding", "QBT_TR(Seeding (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("completed", "QBT_TR(Completed (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("running", "QBT_TR(Running (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("stopped", "QBT_TR(Stopped (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("active", "QBT_TR(Active (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("inactive", "QBT_TR(Inactive (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("stalled", "QBT_TR(Stalled (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("stalled_uploading", "QBT_TR(Stalled Uploading (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("stalled_downloading", "QBT_TR(Stalled Downloading (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("checking", "QBT_TR(Checking (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("moving", "QBT_TR(Moving (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + updateFilter("errored", "QBT_TR(Errored (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); + if (useAutoHideZeroStatusFilters && document.getElementById(`${selectedStatus}_filter`).classList.contains("invisible")) + setStatusFilter("all"); }; - const updateCategoryList = function() { - const categoryList = $('categoryFilterList'); + const highlightSelectedStatus = () => { + const statusFilter = document.getElementById("statusFilterList"); + const filterID = `${selectedStatus}_filter`; + for (const status of statusFilter.children) + status.classList.toggle("selectedFilter", (status.id === filterID)); + }; + + const updateCategoryList = () => { + const categoryList = document.getElementById("categoryFilterList"); if (!categoryList) return; - categoryList.getChildren().each(c => c.destroy()); - const create_link = function(hash, text, count) { - let display_name = text; - let margin_left = 0; - if (useSubcategories) { - const category_path = text.split("/"); - display_name = category_path[category_path.length - 1]; - margin_left = (category_path.length - 1) * 20; - } + [...categoryList.children].forEach((el) => { el.destroy(); }); - const html = `` - + '' - + window.qBittorrent.Misc.escapeHtml(display_name) + ' (' + count + ')' + ''; - const el = new Element('li', { - id: hash, - html: html - }); - window.qBittorrent.Filters.categoriesFilterContextMenu.addTarget(el); - return el; + const categoryItemTemplate = document.getElementById("categoryFilterItem"); + + const createLink = (category, text, count) => { + const categoryFilterItem = categoryItemTemplate.content.cloneNode(true).firstElementChild; + categoryFilterItem.id = category; + categoryFilterItem.classList.toggle("selectedFilter", (category === selectedCategory)); + + const span = categoryFilterItem.firstElementChild; + span.lastElementChild.textContent = `${text} (${count})`; + + return categoryFilterItem; }; - const all = torrentsTable.getRowIds().length; - let uncategorized = 0; - for (const key in torrentsTable.rows) { - if (!Object.hasOwn(torrentsTable.rows, key)) - continue; + const createCategoryTree = (category) => { + const stack = [{ parent: categoriesFragment, category: category }]; + while (stack.length > 0) { + const { parent, category } = stack.pop(); + const displayName = category.nameSegments.at(-1); + const listItem = createLink(category.categoryName, displayName, category.categoryCount); + listItem.firstElementChild.style.paddingLeft = `${(category.nameSegments.length - 1) * 20 + 6}px`; - const row = torrentsTable.rows[key]; - if (row['full_data'].category.length === 0) + parent.appendChild(listItem); + + if (category.children.length > 0) { + listItem.querySelector(".categoryToggle").style.visibility = "visible"; + const unorderedList = document.createElement("ul"); + listItem.appendChild(unorderedList); + for (const subcategory of category.children.reverse()) + stack.push({ parent: unorderedList, category: subcategory }); + } + const categoryLocalPref = `category_${category.categoryName}_collapsed`; + const isCollapsed = !category.forceExpand && (LocalPreferences.get(categoryLocalPref, "false") === "true"); + LocalPreferences.set(categoryLocalPref, listItem.classList.toggle("collapsedCategory", isCollapsed).toString()); + } + }; + + let uncategorized = 0; + for (const { full_data: { category } } of torrentsTable.getRowValues()) { + if (category.length === 0) uncategorized += 1; } - categoryList.appendChild(create_link(CATEGORIES_ALL, 'QBT_TR(All)QBT_TR[CONTEXT=CategoryFilterModel]', all)); - categoryList.appendChild(create_link(CATEGORIES_UNCATEGORIZED, 'QBT_TR(Uncategorized)QBT_TR[CONTEXT=CategoryFilterModel]', uncategorized)); const sortedCategories = []; - category_list.forEach((category, hash) => sortedCategories.push({ - categoryName: category.name, - categoryHash: hash, - categoryCount: category.torrents.size - })); + for (const [category, categoryData] of categoryMap) { + sortedCategories.push({ + categoryName: category, + categoryCount: categoryData.torrents.size, + nameSegments: category.split("/"), + ...(useSubcategories && { + children: [], + isRoot: true, + forceExpand: LocalPreferences.get(`category_${category}_collapsed`) === null + }) + }); + } sortedCategories.sort((left, right) => { - const leftSegments = left.categoryName.split('/'); - const rightSegments = right.categoryName.split('/'); + const leftSegments = left.nameSegments; + const rightSegments = right.nameSegments; for (let i = 0, iMax = Math.min(leftSegments.length, rightSegments.length); i < iMax; ++i) { const compareResult = window.qBittorrent.Misc.naturalSortCollator.compare( @@ -481,384 +568,390 @@ window.addEventListener("DOMContentLoaded", function() { return leftSegments.length - rightSegments.length; }); - for (let i = 0; i < sortedCategories.length; ++i) { - const { categoryName, categoryHash } = sortedCategories[i]; - let { categoryCount } = sortedCategories[i]; + const categoriesFragment = new DocumentFragment(); + categoriesFragment.appendChild(createLink(CATEGORIES_ALL, "QBT_TR(All)QBT_TR[CONTEXT=CategoryFilterModel]", torrentsTable.getRowSize())); + categoriesFragment.appendChild(createLink(CATEGORIES_UNCATEGORIZED, "QBT_TR(Uncategorized)QBT_TR[CONTEXT=CategoryFilterModel]", uncategorized)); - if (useSubcategories) { + if (useSubcategories) { + categoryList.classList.add("subcategories"); + for (let i = 0; i < sortedCategories.length; ++i) { + const category = sortedCategories[i]; for (let j = (i + 1); - ((j < sortedCategories.length) && sortedCategories[j].categoryName.startsWith(categoryName + "/")); ++j) { - categoryCount += sortedCategories[j].categoryCount; + ((j < sortedCategories.length) && sortedCategories[j].categoryName.startsWith(`${category.categoryName}/`)); ++j) { + const subcategory = sortedCategories[j]; + category.categoryCount += subcategory.categoryCount; + category.forceExpand ||= subcategory.forceExpand; + + const isDirectSubcategory = (subcategory.nameSegments.length - category.nameSegments.length) === 1; + if (isDirectSubcategory) { + subcategory.isRoot = false; + category.children.push(subcategory); + } } } - - categoryList.appendChild(create_link(categoryHash, categoryName, categoryCount)); + for (const category of sortedCategories) { + if (category.isRoot) + createCategoryTree(category); + } + } + else { + categoryList.classList.remove("subcategories"); + for (const { categoryName, categoryCount } of sortedCategories) + categoriesFragment.appendChild(createLink(categoryName, categoryName, categoryCount)); } - highlightSelectedCategory(); + categoryList.appendChild(categoriesFragment); + window.qBittorrent.Filters.categoriesFilterContextMenu.searchAndAddTargets(); }; - const highlightSelectedCategory = function() { - const categoryList = $('categoryFilterList'); + const highlightSelectedCategory = () => { + const categoryList = document.getElementById("categoryFilterList"); if (!categoryList) return; - const children = categoryList.childNodes; - for (let i = 0; i < children.length; ++i) { - if (Number(children[i].id) === selected_category) - children[i].className = "selectedFilter"; - else - children[i].className = ""; - } + + for (const category of categoryList.getElementsByTagName("li")) + category.classList.toggle("selectedFilter", (category.id === selectedCategory)); }; - const updateTagList = function() { - const tagFilterList = $('tagFilterList'); + const updateTagList = () => { + const tagFilterList = $("tagFilterList"); if (tagFilterList === null) return; - tagFilterList.getChildren().each(c => c.destroy()); + [...tagFilterList.children].forEach((el) => { el.destroy(); }); - const createLink = function(hash, text, count) { - const html = `` - + '' - + window.qBittorrent.Misc.escapeHtml(text) + ' (' + count + ')' + ''; - const el = new Element('li', { - id: hash, - html: html - }); - window.qBittorrent.Filters.tagsFilterContextMenu.addTarget(el); - return el; + const tagItemTemplate = document.getElementById("tagFilterItem"); + + const createLink = (tag, text, count) => { + const tagFilterItem = tagItemTemplate.content.cloneNode(true).firstElementChild; + tagFilterItem.id = tag; + tagFilterItem.classList.toggle("selectedFilter", (tag === selectedTag)); + + const span = tagFilterItem.firstElementChild; + span.lastChild.textContent = `${text} (${count})`; + + return tagFilterItem; }; - const torrentsCount = torrentsTable.getRowIds().length; let untagged = 0; - for (const key in torrentsTable.rows) { - if (Object.hasOwn(torrentsTable.rows, key) && (torrentsTable.rows[key]['full_data'].tags.length === 0)) + for (const { full_data: { tags } } of torrentsTable.getRowValues()) { + if (tags.length === 0) untagged += 1; } - tagFilterList.appendChild(createLink(TAGS_ALL, 'QBT_TR(All)QBT_TR[CONTEXT=TagFilterModel]', torrentsCount)); - tagFilterList.appendChild(createLink(TAGS_UNTAGGED, 'QBT_TR(Untagged)QBT_TR[CONTEXT=TagFilterModel]', untagged)); + + tagFilterList.appendChild(createLink(TAGS_ALL, "QBT_TR(All)QBT_TR[CONTEXT=TagFilterModel]", torrentsTable.getRowSize())); + tagFilterList.appendChild(createLink(TAGS_UNTAGGED, "QBT_TR(Untagged)QBT_TR[CONTEXT=TagFilterModel]", untagged)); const sortedTags = []; - tagList.forEach((tag, hash) => sortedTags.push({ - tagName: tag.name, - tagHash: hash, - tagSize: tag.torrents.size - })); + for (const [tag, torrents] of tagMap) { + sortedTags.push({ + tagName: tag, + tagSize: torrents.size + }); + } sortedTags.sort((left, right) => window.qBittorrent.Misc.naturalSortCollator.compare(left.tagName, right.tagName)); - for (const { tagName, tagHash, tagSize } of sortedTags) - tagFilterList.appendChild(createLink(tagHash, tagName, tagSize)); + for (const { tagName, tagSize } of sortedTags) + tagFilterList.appendChild(createLink(tagName, tagName, tagSize)); - highlightSelectedTag(); + window.qBittorrent.Filters.tagsFilterContextMenu.searchAndAddTargets(); }; - const highlightSelectedTag = function() { - const tagFilterList = $('tagFilterList'); + const highlightSelectedTag = () => { + const tagFilterList = document.getElementById("tagFilterList"); if (!tagFilterList) return; - const children = tagFilterList.childNodes; - for (let i = 0; i < children.length; ++i) - children[i].className = (Number(children[i].id) === selectedTag) ? "selectedFilter" : ""; + for (const tag of tagFilterList.children) + tag.classList.toggle("selectedFilter", (tag.id === selectedTag)); }; - // getHost emulate the GUI version `QString getHost(const QString &url)` - const getHost = function(url) { - // We want the hostname. - // If failed to parse the domain, original input should be returned - - if (!/^(?:https?|udp):/i.test(url)) { - return url; - } - - try { - // hack: URL can not get hostname from udp protocol - const parsedUrl = new URL(url.replace(/^udp:/i, 'https:')); - // host: "example.com:8443" - // hostname: "example.com" - const host = parsedUrl.hostname; - if (!host) { - return url; - } - - return host; - } - catch (error) { - return url; - } - }; - - const updateTrackerList = function() { - const trackerFilterList = $('trackerFilterList'); + const updateTrackerList = () => { + const trackerFilterList = $("trackerFilterList"); if (trackerFilterList === null) return; - trackerFilterList.getChildren().each(c => c.destroy()); + [...trackerFilterList.children].forEach((el) => { el.destroy(); }); - const createLink = function(hash, text, count) { - const html = '' - + '' - + window.qBittorrent.Misc.escapeHtml(text.replace("%1", count)) + ''; - const el = new Element('li', { - id: hash, - html: html - }); - window.qBittorrent.Filters.trackersFilterContextMenu.addTarget(el); - return el; + const trackerItemTemplate = document.getElementById("trackerFilterItem"); + + const createLink = (host, text, count) => { + const trackerFilterItem = trackerItemTemplate.content.cloneNode(true).firstElementChild; + trackerFilterItem.id = host; + trackerFilterItem.classList.toggle("selectedFilter", (host === selectedTracker)); + + const span = trackerFilterItem.firstElementChild; + span.lastChild.textContent = `${text} (${count})`; + + return trackerFilterItem; }; - const torrentsCount = torrentsTable.getRowIds().length; - trackerFilterList.appendChild(createLink(TRACKERS_ALL, 'QBT_TR(All (%1))QBT_TR[CONTEXT=TrackerFiltersList]', torrentsCount)); let trackerlessTorrentsCount = 0; - for (const key in torrentsTable.rows) { - if (Object.hasOwn(torrentsTable.rows, key) && (torrentsTable.rows[key]['full_data'].trackers_count === 0)) + for (const { full_data: { trackers_count: trackersCount } } of torrentsTable.getRowValues()) { + if (trackersCount === 0) trackerlessTorrentsCount += 1; } - trackerFilterList.appendChild(createLink(TRACKERS_TRACKERLESS, 'QBT_TR(Trackerless (%1))QBT_TR[CONTEXT=TrackerFiltersList]', trackerlessTorrentsCount)); + + trackerFilterList.appendChild(createLink(TRACKERS_ALL, "QBT_TR(All)QBT_TR[CONTEXT=TrackerFiltersList]", torrentsTable.getRowSize())); + trackerFilterList.appendChild(createLink(TRACKERS_TRACKERLESS, "QBT_TR(Trackerless)QBT_TR[CONTEXT=TrackerFiltersList]", trackerlessTorrentsCount)); // Sort trackers by hostname const sortedList = []; - trackerList.forEach(({ host, trackerTorrentMap }, hash) => { + for (const [host, trackerTorrentMap] of trackerMap) { const uniqueTorrents = new Set(); for (const torrents of trackerTorrentMap.values()) { - for (const torrent of torrents) { + for (const torrent of torrents) uniqueTorrents.add(torrent); - } } sortedList.push({ trackerHost: host, - trackerHash: hash, trackerCount: uniqueTorrents.size, }); - }); + } sortedList.sort((left, right) => window.qBittorrent.Misc.naturalSortCollator.compare(left.trackerHost, right.trackerHost)); - for (const { trackerHost, trackerHash, trackerCount } of sortedList) - trackerFilterList.appendChild(createLink(trackerHash, (trackerHost + ' (%1)'), trackerCount)); + for (const { trackerHost, trackerCount } of sortedList) + trackerFilterList.appendChild(createLink(trackerHost, trackerHost, trackerCount)); - highlightSelectedTracker(); + window.qBittorrent.Filters.trackersFilterContextMenu.searchAndAddTargets(); }; - const highlightSelectedTracker = function() { - const trackerFilterList = $('trackerFilterList'); + const highlightSelectedTracker = () => { + const trackerFilterList = document.getElementById("trackerFilterList"); if (!trackerFilterList) return; - const children = trackerFilterList.childNodes; - for (const child of children) - child.className = (child.id === selectedTracker) ? "selectedFilter" : ""; + for (const tracker of trackerFilterList.children) + tracker.classList.toggle("selectedFilter", (tracker.id === selectedTracker)); }; - const setupCopyEventHandler = (function() { - let clipboardEvent; + const statusSortOrder = Object.freeze({ + unknown: -1, + forcedDL: 0, + downloading: 1, + forcedMetaDL: 2, + metaDL: 3, + stalledDL: 4, + forcedUP: 5, + uploading: 6, + stalledUP: 7, + checkingResumeData: 8, + queuedDL: 9, + queuedUP: 10, + checkingUP: 11, + checkingDL: 12, + stoppedDL: 13, + stoppedUP: 14, + moving: 15, + missingFiles: 16, + error: 17 + }); - return () => { - if (clipboardEvent) - clipboardEvent.destroy(); - - clipboardEvent = new ClipboardJS('.copyToClipboard', { - text: function(trigger) { - switch (trigger.id) { - case "copyName": - return copyNameFN(); - case "copyInfohash1": - return copyInfohashFN(1); - case "copyInfohash2": - return copyInfohashFN(2); - case "copyMagnetLink": - return copyMagnetLinkFN(); - case "copyID": - return copyIdFN(); - case "copyComment": - return copyCommentFN(); - default: - return ""; - } - } - }); - }; - })(); - - let syncMainDataTimeoutID; + let syncMainDataTimeoutID = -1; let syncRequestInProgress = false; - const syncMainData = function() { - const url = new URI('api/v2/sync/maindata'); - url.setData('rid', syncMainDataLastResponseId); - const request = new Request.JSON({ - url: url, - noCache: true, - method: 'get', - onFailure: function() { - const errorDiv = $('error_div'); - if (errorDiv) - errorDiv.set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]'); - syncRequestInProgress = false; - syncData(2000); - }, - onSuccess: function(response) { - $('error_div').set('html', ''); - if (response) { - clearTimeout(torrentsFilterInputTimer); - torrentsFilterInputTimer = -1; - - let torrentsTableSelectedRows; - let update_categories = false; - let updateTags = false; - let updateTrackers = false; - const full_update = (response['full_update'] === true); - if (full_update) { - torrentsTableSelectedRows = torrentsTable.selectedRowsIds(); - torrentsTable.clear(); - category_list.clear(); - tagList.clear(); - } - if (response['rid']) { - syncMainDataLastResponseId = response['rid']; - } - if (response['categories']) { - for (const key in response['categories']) { - if (!Object.hasOwn(response['categories'], key)) - continue; - - const responseCategory = response['categories'][key]; - const categoryHash = window.qBittorrent.Client.genHash(key); - const category = category_list.get(categoryHash); - if (category !== undefined) { - // only the save path can change for existing categories - category.savePath = responseCategory.savePath; - } - else { - category_list.set(categoryHash, { - name: responseCategory.name, - savePath: responseCategory.savePath, - torrents: new Set() - }); - } - } - update_categories = true; - } - if (response['categories_removed']) { - response['categories_removed'].each(function(category) { - const categoryHash = window.qBittorrent.Client.genHash(category); - category_list.delete(categoryHash); - }); - update_categories = true; - } - if (response['tags']) { - for (const tag of response['tags']) { - const tagHash = window.qBittorrent.Client.genHash(tag); - if (!tagList.has(tagHash)) { - tagList.set(tagHash, { - name: tag, - torrents: new Set() - }); - } - } - updateTags = true; - } - if (response['tags_removed']) { - for (let i = 0; i < response['tags_removed'].length; ++i) { - const tagHash = window.qBittorrent.Client.genHash(response['tags_removed'][i]); - tagList.delete(tagHash); - } - updateTags = true; - } - if (response['trackers']) { - for (const [tracker, torrents] of Object.entries(response['trackers'])) { - const host = getHost(tracker); - const hash = window.qBittorrent.Client.genHash(host); - - let trackerListItem = trackerList.get(hash); - if (trackerListItem === undefined) { - trackerListItem = { host: host, trackerTorrentMap: new Map() }; - trackerList.set(hash, trackerListItem); - } - - trackerListItem.trackerTorrentMap.set(tracker, [...torrents]); - } - updateTrackers = true; - } - if (response['trackers_removed']) { - for (let i = 0; i < response['trackers_removed'].length; ++i) { - const tracker = response['trackers_removed'][i]; - const hash = window.qBittorrent.Client.genHash(getHost(tracker)); - const trackerListEntry = trackerList.get(hash); - if (trackerListEntry) { - trackerListEntry.trackerTorrentMap.delete(tracker); - } - } - updateTrackers = true; - } - if (response['torrents']) { - let updateTorrentList = false; - for (const key in response['torrents']) { - response['torrents'][key]['hash'] = key; - response['torrents'][key]['rowId'] = key; - if (response['torrents'][key]['state']) - response['torrents'][key]['status'] = response['torrents'][key]['state']; - torrentsTable.updateRowData(response['torrents'][key]); - if (addTorrentToCategoryList(response['torrents'][key])) - update_categories = true; - if (addTorrentToTagList(response['torrents'][key])) - updateTags = true; - if (response['torrents'][key]['name']) - updateTorrentList = true; - } - - if (updateTorrentList) - setupCopyEventHandler(); - } - if (response['torrents_removed']) - response['torrents_removed'].each(function(hash) { - torrentsTable.removeRow(hash); - removeTorrentFromCategoryList(hash); - update_categories = true; // Always to update All category - removeTorrentFromTagList(hash); - updateTags = true; // Always to update All tag - }); - torrentsTable.updateTable(full_update); - torrentsTable.altRow(); - if (response['server_state']) { - const tmp = response['server_state']; - for (const k in tmp) - serverState[k] = tmp[k]; - processServerState(); - } - updateFiltersList(); - if (update_categories) { - updateCategoryList(); - window.qBittorrent.TransferList.contextMenu.updateCategoriesSubMenu(category_list); - } - if (updateTags) { - updateTagList(); - window.qBittorrent.TransferList.contextMenu.updateTagsSubMenu(tagList); - } - if (updateTrackers) - updateTrackerList(); - - if (full_update) - // re-select previously selected rows - torrentsTable.reselectRows(torrentsTableSelectedRows); - } - syncRequestInProgress = false; - syncData(window.qBittorrent.Client.getSyncMainDataInterval()); - } - }); + const syncMainData = () => { + if (document.hidden) + return; syncRequestInProgress = true; - request.send(); + const url = new URL("api/v2/sync/maindata", window.location); + url.search = new URLSearchParams({ + rid: syncMainDataLastResponseId + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (response.ok) { + $("error_div").textContent = ""; + + const responseJSON = await response.json(); + + clearTimeout(torrentsFilterInputTimer); + torrentsFilterInputTimer = -1; + + let torrentsTableSelectedRows; + let updateStatuses = false; + let updateCategories = false; + let updateTags = false; + let updateTrackers = false; + let updateTorrents = false; + const fullUpdate = (responseJSON["fullUpdate"] === true); + if (fullUpdate) { + torrentsTableSelectedRows = torrentsTable.selectedRowsIds(); + updateStatuses = true; + updateCategories = true; + updateTags = true; + updateTrackers = true; + updateTorrents = true; + torrentsTable.clear(); + categoryMap.clear(); + tagMap.clear(); + trackerMap.clear(); + } + if (responseJSON["rid"]) + syncMainDataLastResponseId = responseJSON["rid"]; + if (responseJSON["categories"]) { + for (const responseName in responseJSON["categories"]) { + if (!Object.hasOwn(responseJSON["categories"], responseName)) + continue; + + const responseData = responseJSON["categories"][responseName]; + const categoryData = categoryMap.get(responseName); + if (categoryData === undefined) { + categoryMap.set(responseName, { + savePath: responseData.savePath, + torrents: new Set() + }); + } + else { + // only the save path can change for existing categories + categoryData.savePath = responseData.savePath; + } + } + updateCategories = true; + } + if (responseJSON["categories_removed"]) { + for (const category of responseJSON["categories_removed"]) + categoryMap.delete(category); + updateCategories = true; + } + if (responseJSON["tags"]) { + for (const tag of responseJSON["tags"]) { + if (!tagMap.has(tag)) + tagMap.set(tag, new Set()); + } + updateTags = true; + } + if (responseJSON["tags_removed"]) { + for (const tag of responseJSON["tags_removed"]) + tagMap.delete(tag); + updateTags = true; + } + if (responseJSON["trackers"]) { + for (const [tracker, torrents] of Object.entries(responseJSON["trackers"])) { + const host = window.qBittorrent.Misc.getHost(tracker); + + let trackerListItem = trackerMap.get(host); + if (trackerListItem === undefined) { + trackerListItem = new Map(); + trackerMap.set(host, trackerListItem); + } + trackerListItem.set(tracker, new Set(torrents)); + } + updateTrackers = true; + } + if (responseJSON["trackers_removed"]) { + for (let i = 0; i < responseJSON["trackers_removed"].length; ++i) { + const tracker = responseJSON["trackers_removed"][i]; + const host = window.qBittorrent.Misc.getHost(tracker); + + const trackerTorrentMap = trackerMap.get(host); + if (trackerTorrentMap !== undefined) { + trackerTorrentMap.delete(tracker); + // Remove unused trackers + if (trackerTorrentMap.size === 0) { + trackerMap.delete(host); + if (selectedTracker === host) { + selectedTracker = TRACKERS_ALL; + LocalPreferences.set("selected_tracker", selectedTracker); + } + } + } + } + updateTrackers = true; + } + if (responseJSON["torrents"]) { + for (const key in responseJSON["torrents"]) { + if (!Object.hasOwn(responseJSON["torrents"], key)) + continue; + + responseJSON["torrents"][key]["hash"] = key; + responseJSON["torrents"][key]["rowId"] = key; + if (responseJSON["torrents"][key]["state"]) { + const state = responseJSON["torrents"][key]["state"]; + responseJSON["torrents"][key]["status"] = state; + responseJSON["torrents"][key]["_statusOrder"] = statusSortOrder[state]; + updateStatuses = true; + } + torrentsTable.updateRowData(responseJSON["torrents"][key]); + if (addTorrentToCategoryList(responseJSON["torrents"][key])) + updateCategories = true; + if (addTorrentToTagList(responseJSON["torrents"][key])) + updateTags = true; + updateTrackers = true; + updateTorrents = true; + } + } + if (responseJSON["torrents_removed"]) { + responseJSON["torrents_removed"].each((hash) => { + torrentsTable.removeRow(hash); + removeTorrentFromCategoryList(hash); + updateCategories = true; // Always to update All category + removeTorrentFromTagList(hash); + updateTags = true; // Always to update All tag + updateTrackers = true; + }); + updateTorrents = true; + updateStatuses = true; + } + + // don't update the table unnecessarily + if (updateTorrents) + torrentsTable.updateTable(fullUpdate); + + if (responseJSON["server_state"]) { + const tmp = responseJSON["server_state"]; + for (const k in tmp) { + if (!Object.hasOwn(tmp, k)) + continue; + serverState[k] = tmp[k]; + } + processServerState(); + } + + if (updateStatuses) + updateFiltersList(); + + if (updateCategories) { + updateCategoryList(); + window.qBittorrent.TransferList.contextMenu.updateCategoriesSubMenu(categoryMap); + } + if (updateTags) { + updateTagList(); + window.qBittorrent.TransferList.contextMenu.updateTagsSubMenu(tagMap); + } + if (updateTrackers) + updateTrackerList(); + + if (fullUpdate) + // re-select previously selected rows + torrentsTable.reselectRows(torrentsTableSelectedRows); + } + + syncRequestInProgress = false; + syncData(window.qBittorrent.Client.getSyncMainDataInterval()); + }, + (error) => { + const errorDiv = $("error_div"); + if (errorDiv) + errorDiv.textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]"; + syncRequestInProgress = false; + syncData(2000); + }); }; - updateMainData = function() { + updateMainData = () => { torrentsTable.updateTable(); syncData(100); }; - const syncData = function(delay) { + const syncData = (delay) => { if (syncRequestInProgress) return; clearTimeout(syncMainDataTimeoutID); + syncMainDataTimeoutID = -1; if (window.qBittorrent.Client.isStopped()) return; @@ -866,81 +959,113 @@ window.addEventListener("DOMContentLoaded", function() { syncMainDataTimeoutID = syncMainData.delay(delay); }; - const processServerState = function() { + const processServerState = () => { let transfer_info = window.qBittorrent.Misc.friendlyUnit(serverState.dl_info_speed, true); if (serverState.dl_rate_limit > 0) - transfer_info += " [" + window.qBittorrent.Misc.friendlyUnit(serverState.dl_rate_limit, true) + "]"; - transfer_info += " (" + window.qBittorrent.Misc.friendlyUnit(serverState.dl_info_data, false) + ")"; - $("DlInfos").set('html', transfer_info); + transfer_info += ` [${window.qBittorrent.Misc.friendlyUnit(serverState.dl_rate_limit, true)}]`; + transfer_info += ` (${window.qBittorrent.Misc.friendlyUnit(serverState.dl_info_data, false)})`; + $("DlInfos").textContent = transfer_info; transfer_info = window.qBittorrent.Misc.friendlyUnit(serverState.up_info_speed, true); if (serverState.up_rate_limit > 0) - transfer_info += " [" + window.qBittorrent.Misc.friendlyUnit(serverState.up_rate_limit, true) + "]"; - transfer_info += " (" + window.qBittorrent.Misc.friendlyUnit(serverState.up_info_data, false) + ")"; - $("UpInfos").set('html', transfer_info); + transfer_info += ` [${window.qBittorrent.Misc.friendlyUnit(serverState.up_rate_limit, true)}]`; + transfer_info += ` (${window.qBittorrent.Misc.friendlyUnit(serverState.up_info_data, false)})`; + $("UpInfos").textContent = transfer_info; document.title = (speedInTitle ? (`QBT_TR([D: %1, U: %2])QBT_TR[CONTEXT=MainWindow] ` .replace("%1", window.qBittorrent.Misc.friendlyUnit(serverState.dl_info_speed, true)) .replace("%2", window.qBittorrent.Misc.friendlyUnit(serverState.up_info_speed, true))) - : '') + : "") + window.qBittorrent.Client.mainTitle(); - $('freeSpaceOnDisk').set('html', 'QBT_TR(Free space: %1)QBT_TR[CONTEXT=HttpServer]'.replace("%1", window.qBittorrent.Misc.friendlyUnit(serverState.free_space_on_disk))); - $('DHTNodes').set('html', 'QBT_TR(DHT: %1 nodes)QBT_TR[CONTEXT=StatusBar]'.replace("%1", serverState.dht_nodes)); + $("freeSpaceOnDisk").textContent = "QBT_TR(Free space: %1)QBT_TR[CONTEXT=HttpServer]".replace("%1", window.qBittorrent.Misc.friendlyUnit(serverState.free_space_on_disk)); + + const externalIPsElement = document.getElementById("externalIPs"); + if (window.qBittorrent.Cache.preferences.get().status_bar_external_ip) { + const lastExternalAddressV4 = serverState.last_external_address_v4; + const lastExternalAddressV6 = serverState.last_external_address_v6; + const hasIPv4Address = lastExternalAddressV4 !== ""; + const hasIPv6Address = lastExternalAddressV6 !== ""; + let lastExternalAddressLabel = "QBT_TR(External IP: N/A)QBT_TR[CONTEXT=HttpServer]"; + if (hasIPv4Address && hasIPv6Address) + lastExternalAddressLabel = "QBT_TR(External IPs: %1, %2)QBT_TR[CONTEXT=HttpServer]"; + else if (hasIPv4Address || hasIPv6Address) + lastExternalAddressLabel = "QBT_TR(External IP: %1%2)QBT_TR[CONTEXT=HttpServer]"; + // replace in reverse order ('%2' before '%1') in case address contains a % character. + // for example, see https://en.wikipedia.org/wiki/IPv6_address#Scoped_literal_IPv6_addresses_(with_zone_index) + externalIPsElement.textContent = lastExternalAddressLabel.replace("%2", lastExternalAddressV6).replace("%1", lastExternalAddressV4); + externalIPsElement.classList.remove("invisible"); + externalIPsElement.previousElementSibling.classList.remove("invisible"); + } + else { + externalIPsElement.classList.add("invisible"); + externalIPsElement.previousElementSibling.classList.add("invisible"); + } + + const dhtElement = document.getElementById("DHTNodes"); + if (window.qBittorrent.Cache.preferences.get().dht) { + dhtElement.textContent = "QBT_TR(DHT: %1 nodes)QBT_TR[CONTEXT=StatusBar]".replace("%1", serverState.dht_nodes); + dhtElement.classList.remove("invisible"); + dhtElement.previousElementSibling.classList.remove("invisible"); + } + else { + dhtElement.classList.add("invisible"); + dhtElement.previousElementSibling.classList.add("invisible"); + } // Statistics dialog if (document.getElementById("statisticsContent")) { - $('AlltimeDL').set('html', window.qBittorrent.Misc.friendlyUnit(serverState.alltime_dl, false)); - $('AlltimeUL').set('html', window.qBittorrent.Misc.friendlyUnit(serverState.alltime_ul, false)); - $('TotalWastedSession').set('html', window.qBittorrent.Misc.friendlyUnit(serverState.total_wasted_session, false)); - $('GlobalRatio').set('html', serverState.global_ratio); - $('TotalPeerConnections').set('html', serverState.total_peer_connections); - $('ReadCacheHits').set('html', serverState.read_cache_hits + "%"); - $('TotalBuffersSize').set('html', window.qBittorrent.Misc.friendlyUnit(serverState.total_buffers_size, false)); - $('WriteCacheOverload').set('html', serverState.write_cache_overload + "%"); - $('ReadCacheOverload').set('html', serverState.read_cache_overload + "%"); - $('QueuedIOJobs').set('html', serverState.queued_io_jobs); - $('AverageTimeInQueue').set('html', serverState.average_time_queue + " ms"); - $('TotalQueuedSize').set('html', window.qBittorrent.Misc.friendlyUnit(serverState.total_queued_size, false)); + $("AlltimeDL").textContent = window.qBittorrent.Misc.friendlyUnit(serverState.alltime_dl, false); + $("AlltimeUL").textContent = window.qBittorrent.Misc.friendlyUnit(serverState.alltime_ul, false); + $("TotalWastedSession").textContent = window.qBittorrent.Misc.friendlyUnit(serverState.total_wasted_session, false); + $("GlobalRatio").textContent = serverState.global_ratio; + $("TotalPeerConnections").textContent = serverState.total_peer_connections; + $("ReadCacheHits").textContent = `${serverState.read_cache_hits}%`; + $("TotalBuffersSize").textContent = window.qBittorrent.Misc.friendlyUnit(serverState.total_buffers_size, false); + $("WriteCacheOverload").textContent = `${serverState.write_cache_overload}%`; + $("ReadCacheOverload").textContent = `${serverState.read_cache_overload}%`; + $("QueuedIOJobs").textContent = serverState.queued_io_jobs; + $("AverageTimeInQueue").textContent = `${serverState.average_time_queue} ms`; + $("TotalQueuedSize").textContent = window.qBittorrent.Misc.friendlyUnit(serverState.total_queued_size, false); } switch (serverState.connection_status) { - case 'connected': - $('connectionStatus').src = 'images/connected.svg'; - $('connectionStatus').alt = 'QBT_TR(Connection status: Connected)QBT_TR[CONTEXT=MainWindow]'; - $('connectionStatus').title = 'QBT_TR(Connection status: Connected)QBT_TR[CONTEXT=MainWindow]'; + case "connected": + $("connectionStatus").src = "images/connected.svg"; + $("connectionStatus").alt = "QBT_TR(Connection status: Connected)QBT_TR[CONTEXT=MainWindow]"; + $("connectionStatus").title = "QBT_TR(Connection status: Connected)QBT_TR[CONTEXT=MainWindow]"; break; - case 'firewalled': - $('connectionStatus').src = 'images/firewalled.svg'; - $('connectionStatus').alt = 'QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]'; - $('connectionStatus').title = 'QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]'; + case "firewalled": + $("connectionStatus").src = "images/firewalled.svg"; + $("connectionStatus").alt = "QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]"; + $("connectionStatus").title = "QBT_TR(Connection status: Firewalled)QBT_TR[CONTEXT=MainWindow]"; break; default: - $('connectionStatus').src = 'images/disconnected.svg'; - $('connectionStatus').alt = 'QBT_TR(Connection status: Disconnected)QBT_TR[CONTEXT=MainWindow]'; - $('connectionStatus').title = 'QBT_TR(Connection status: Disconnected)QBT_TR[CONTEXT=MainWindow]'; + $("connectionStatus").src = "images/disconnected.svg"; + $("connectionStatus").alt = "QBT_TR(Connection status: Disconnected)QBT_TR[CONTEXT=MainWindow]"; + $("connectionStatus").title = "QBT_TR(Connection status: Disconnected)QBT_TR[CONTEXT=MainWindow]"; break; } if (queueing_enabled !== serverState.queueing) { queueing_enabled = serverState.queueing; - torrentsTable.columns['priority'].force_hide = !queueing_enabled; - torrentsTable.updateColumn('priority'); + torrentsTable.columns["priority"].force_hide = !queueing_enabled; + torrentsTable.updateColumn("priority"); if (queueing_enabled) { - $('topQueuePosItem').removeClass('invisible'); - $('increaseQueuePosItem').removeClass('invisible'); - $('decreaseQueuePosItem').removeClass('invisible'); - $('bottomQueuePosItem').removeClass('invisible'); - $('queueingButtons').removeClass('invisible'); - $('queueingMenuItems').removeClass('invisible'); + $("topQueuePosItem").classList.remove("invisible"); + $("increaseQueuePosItem").classList.remove("invisible"); + $("decreaseQueuePosItem").classList.remove("invisible"); + $("bottomQueuePosItem").classList.remove("invisible"); + $("queueingButtons").classList.remove("invisible"); + $("queueingMenuItems").classList.remove("invisible"); } else { - $('topQueuePosItem').addClass('invisible'); - $('increaseQueuePosItem').addClass('invisible'); - $('decreaseQueuePosItem').addClass('invisible'); - $('bottomQueuePosItem').addClass('invisible'); - $('queueingButtons').addClass('invisible'); - $('queueingMenuItems').addClass('invisible'); + $("topQueuePosItem").classList.add("invisible"); + $("increaseQueuePosItem").classList.add("invisible"); + $("decreaseQueuePosItem").classList.add("invisible"); + $("bottomQueuePosItem").classList.add("invisible"); + $("queueingButtons").classList.add("invisible"); + $("queueingMenuItems").classList.add("invisible"); } } @@ -957,196 +1082,196 @@ window.addEventListener("DOMContentLoaded", function() { serverSyncMainDataInterval = Math.max(serverState.refresh_interval, 500); }; - const updateAltSpeedIcon = function(enabled) { + const updateAltSpeedIcon = (enabled) => { if (enabled) { - $('alternativeSpeedLimits').src = 'images/slow.svg'; - $('alternativeSpeedLimits').alt = 'QBT_TR(Alternative speed limits: On)QBT_TR[CONTEXT=MainWindow]'; - $('alternativeSpeedLimits').title = 'QBT_TR(Alternative speed limits: On)QBT_TR[CONTEXT=MainWindow]'; + $("alternativeSpeedLimits").src = "images/slow.svg"; + $("alternativeSpeedLimits").alt = "QBT_TR(Alternative speed limits: On)QBT_TR[CONTEXT=MainWindow]"; + $("alternativeSpeedLimits").title = "QBT_TR(Alternative speed limits: On)QBT_TR[CONTEXT=MainWindow]"; } else { - $('alternativeSpeedLimits').src = 'images/slow_off.svg'; - $('alternativeSpeedLimits').alt = 'QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]'; - $('alternativeSpeedLimits').title = 'QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]'; + $("alternativeSpeedLimits").src = "images/slow_off.svg"; + $("alternativeSpeedLimits").alt = "QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]"; + $("alternativeSpeedLimits").title = "QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]"; } }; - $('alternativeSpeedLimits').addEvent('click', function() { + $("alternativeSpeedLimits").addEventListener("click", () => { // Change icon immediately to give some feedback updateAltSpeedIcon(!alternativeSpeedLimits); - new Request({ - url: 'api/v2/transfer/toggleSpeedLimitsMode', - method: 'post', - onComplete: function() { + fetch("api/v2/transfer/toggleSpeedLimitsMode", { + method: "POST" + }) + .then((response) => { + if (!response.ok) { + // Restore icon in case of failure + updateAltSpeedIcon(alternativeSpeedLimits); + return; + } + alternativeSpeedLimits = !alternativeSpeedLimits; updateMainData(); - }, - onFailure: function() { - // Restore icon in case of failure - updateAltSpeedIcon(alternativeSpeedLimits); - } - }).send(); + }); }); - $('DlInfos').addEvent('click', globalDownloadLimitFN); - $('UpInfos').addEvent('click', globalUploadLimitFN); + $("DlInfos").addEventListener("click", () => { globalDownloadLimitFN(); }); + $("UpInfos").addEventListener("click", () => { globalUploadLimitFN(); }); - $('showTopToolbarLink').addEvent('click', function(e) { + $("showTopToolbarLink").addEventListener("click", (e) => { showTopToolbar = !showTopToolbar; - LocalPreferences.set('show_top_toolbar', showTopToolbar.toString()); + LocalPreferences.set("show_top_toolbar", showTopToolbar.toString()); if (showTopToolbar) { - $('showTopToolbarLink').firstChild.style.opacity = '1'; - $('mochaToolbar').removeClass('invisible'); + $("showTopToolbarLink").firstElementChild.style.opacity = "1"; + $("mochaToolbar").classList.remove("invisible"); } else { - $('showTopToolbarLink').firstChild.style.opacity = '0'; - $('mochaToolbar').addClass('invisible'); + $("showTopToolbarLink").firstElementChild.style.opacity = "0"; + $("mochaToolbar").classList.add("invisible"); } MochaUI.Desktop.setDesktopSize(); }); - $('showStatusBarLink').addEvent('click', function(e) { + $("showStatusBarLink").addEventListener("click", (e) => { showStatusBar = !showStatusBar; - LocalPreferences.set('show_status_bar', showStatusBar.toString()); + LocalPreferences.set("show_status_bar", showStatusBar.toString()); if (showStatusBar) { - $('showStatusBarLink').firstChild.style.opacity = '1'; - $('desktopFooterWrapper').removeClass('invisible'); + $("showStatusBarLink").firstElementChild.style.opacity = "1"; + $("desktopFooterWrapper").classList.remove("invisible"); } else { - $('showStatusBarLink').firstChild.style.opacity = '0'; - $('desktopFooterWrapper').addClass('invisible'); + $("showStatusBarLink").firstElementChild.style.opacity = "0"; + $("desktopFooterWrapper").classList.add("invisible"); } MochaUI.Desktop.setDesktopSize(); }); - const registerMagnetHandler = function() { - if (typeof navigator.registerProtocolHandler !== 'function') { - if (window.location.protocol !== 'https:') + const registerMagnetHandler = () => { + if (typeof navigator.registerProtocolHandler !== "function") { + if (window.location.protocol !== "https:") alert("QBT_TR(To use this feature, the WebUI needs to be accessed over HTTPS)QBT_TR[CONTEXT=MainWindow]"); else alert("QBT_TR(Your browser does not support this feature)QBT_TR[CONTEXT=MainWindow]"); return; } - const hashString = location.hash ? location.hash.replace(/^#/, '') : ''; + const hashString = location.hash ? location.hash.replace(/^#/, "") : ""; const hashParams = new URLSearchParams(hashString); - hashParams.set('download', ''); + hashParams.set("download", ""); - const templateHashString = hashParams.toString().replace('download=', 'download=%s'); - const templateUrl = location.origin + location.pathname - + location.search + '#' + templateHashString; + const templateHashString = hashParams.toString().replace("download=", "download=%s"); + const templateUrl = `${location.origin}${location.pathname}${location.search}#${templateHashString}`; - navigator.registerProtocolHandler('magnet', templateUrl, - 'qBittorrent WebUI magnet handler'); + navigator.registerProtocolHandler("magnet", templateUrl, + "qBittorrent WebUI magnet handler"); }; - $('registerMagnetHandlerLink').addEvent('click', function(e) { + $("registerMagnetHandlerLink").addEventListener("click", (e) => { registerMagnetHandler(); }); - $('showFiltersSidebarLink').addEvent('click', function(e) { + $("showFiltersSidebarLink").addEventListener("click", (e) => { showFiltersSidebar = !showFiltersSidebar; - LocalPreferences.set('show_filters_sidebar', showFiltersSidebar.toString()); + LocalPreferences.set("show_filters_sidebar", showFiltersSidebar.toString()); if (showFiltersSidebar) { - $('showFiltersSidebarLink').firstChild.style.opacity = '1'; - $('filtersColumn').removeClass('invisible'); - $('filtersColumn_handle').removeClass('invisible'); + $("showFiltersSidebarLink").firstElementChild.style.opacity = "1"; + $("filtersColumn").classList.remove("invisible"); + $("filtersColumn_handle").classList.remove("invisible"); } else { - $('showFiltersSidebarLink').firstChild.style.opacity = '0'; - $('filtersColumn').addClass('invisible'); - $('filtersColumn_handle').addClass('invisible'); + $("showFiltersSidebarLink").firstElementChild.style.opacity = "0"; + $("filtersColumn").classList.add("invisible"); + $("filtersColumn_handle").classList.add("invisible"); } MochaUI.Desktop.setDesktopSize(); }); - $('speedInBrowserTitleBarLink').addEvent('click', function(e) { + $("speedInBrowserTitleBarLink").addEventListener("click", (e) => { speedInTitle = !speedInTitle; - LocalPreferences.set('speed_in_browser_title_bar', speedInTitle.toString()); + LocalPreferences.set("speed_in_browser_title_bar", speedInTitle.toString()); if (speedInTitle) - $('speedInBrowserTitleBarLink').firstChild.style.opacity = '1'; + $("speedInBrowserTitleBarLink").firstElementChild.style.opacity = "1"; else - $('speedInBrowserTitleBarLink').firstChild.style.opacity = '0'; + $("speedInBrowserTitleBarLink").firstElementChild.style.opacity = "0"; processServerState(); }); - $('showSearchEngineLink').addEvent('click', function(e) { - showSearchEngine = !showSearchEngine; - LocalPreferences.set('show_search_engine', showSearchEngine.toString()); + $("showSearchEngineLink").addEventListener("click", (e) => { + window.qBittorrent.Client.showSearchEngine(!window.qBittorrent.Client.isShowSearchEngine()); + LocalPreferences.set("show_search_engine", window.qBittorrent.Client.isShowSearchEngine().toString()); updateTabDisplay(); }); - $('showRssReaderLink').addEvent('click', function(e) { - showRssReader = !showRssReader; - LocalPreferences.set('show_rss_reader', showRssReader.toString()); + $("showRssReaderLink").addEventListener("click", (e) => { + window.qBittorrent.Client.showRssReader(!window.qBittorrent.Client.isShowRssReader()); + LocalPreferences.set("show_rss_reader", window.qBittorrent.Client.isShowRssReader().toString()); updateTabDisplay(); }); - $('showLogViewerLink').addEvent('click', function(e) { - showLogViewer = !showLogViewer; - LocalPreferences.set('show_log_viewer', showLogViewer.toString()); + $("showLogViewerLink").addEventListener("click", (e) => { + window.qBittorrent.Client.showLogViewer(!window.qBittorrent.Client.isShowLogViewer()); + LocalPreferences.set("show_log_viewer", window.qBittorrent.Client.isShowLogViewer().toString()); updateTabDisplay(); }); - const updateTabDisplay = function() { - if (showRssReader) { - $('showRssReaderLink').firstChild.style.opacity = '1'; - $('mainWindowTabs').removeClass('invisible'); - $('rssTabLink').removeClass('invisible'); + const updateTabDisplay = () => { + if (window.qBittorrent.Client.isShowRssReader()) { + $("showRssReaderLink").firstElementChild.style.opacity = "1"; + $("mainWindowTabs").classList.remove("invisible"); + $("rssTabLink").classList.remove("invisible"); if (!MochaUI.Panels.instances.RssPanel) addRssPanel(); } else { - $('showRssReaderLink').firstChild.style.opacity = '0'; - $('rssTabLink').addClass('invisible'); - if ($('rssTabLink').hasClass('selected')) + $("showRssReaderLink").firstElementChild.style.opacity = "0"; + $("rssTabLink").classList.add("invisible"); + if ($("rssTabLink").classList.contains("selected")) $("transfersTabLink").click(); } - if (showSearchEngine) { - $('showSearchEngineLink').firstChild.style.opacity = '1'; - $('mainWindowTabs').removeClass('invisible'); - $('searchTabLink').removeClass('invisible'); + if (window.qBittorrent.Client.isShowSearchEngine()) { + $("showSearchEngineLink").firstElementChild.style.opacity = "1"; + $("mainWindowTabs").classList.remove("invisible"); + $("searchTabLink").classList.remove("invisible"); if (!MochaUI.Panels.instances.SearchPanel) addSearchPanel(); } else { - $('showSearchEngineLink').firstChild.style.opacity = '0'; - $('searchTabLink').addClass('invisible'); - if ($('searchTabLink').hasClass('selected')) + $("showSearchEngineLink").firstElementChild.style.opacity = "0"; + $("searchTabLink").classList.add("invisible"); + if ($("searchTabLink").classList.contains("selected")) $("transfersTabLink").click(); } - if (showLogViewer) { - $('showLogViewerLink').firstChild.style.opacity = '1'; - $('mainWindowTabs').removeClass('invisible'); - $('logTabLink').removeClass('invisible'); + if (window.qBittorrent.Client.isShowLogViewer()) { + $("showLogViewerLink").firstElementChild.style.opacity = "1"; + $("mainWindowTabs").classList.remove("invisible"); + $("logTabLink").classList.remove("invisible"); if (!MochaUI.Panels.instances.LogPanel) addLogPanel(); } else { - $('showLogViewerLink').firstChild.style.opacity = '0'; - $('logTabLink').addClass('invisible'); - if ($('logTabLink').hasClass('selected')) + $("showLogViewerLink").firstElementChild.style.opacity = "0"; + $("logTabLink").classList.add("invisible"); + if ($("logTabLink").classList.contains("selected")) $("transfersTabLink").click(); } // display no tabs - if (!showRssReader && !showSearchEngine && !showLogViewer) - $('mainWindowTabs').addClass('invisible'); + if (!window.qBittorrent.Client.isShowRssReader() && !window.qBittorrent.Client.isShowSearchEngine() && !window.qBittorrent.Client.isShowLogViewer()) + $("mainWindowTabs").classList.add("invisible"); }; - $('StatisticsLink').addEvent('click', StatisticsLinkFN); + $("StatisticsLink").addEventListener("click", () => { StatisticsLinkFN(); }); // main window tabs - const showTransfersTab = function() { + const showTransfersTab = () => { const showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true"; if (showFiltersSidebar) { - $("filtersColumn").removeClass("invisible"); - $("filtersColumn_handle").removeClass("invisible"); + $("filtersColumn").classList.remove("invisible"); + $("filtersColumn_handle").classList.remove("invisible"); } - $("mainColumn").removeClass("invisible"); - $('torrentsFilterToolbar').removeClass("invisible"); + $("mainColumn").classList.remove("invisible"); + $("torrentsFilterToolbar").classList.remove("invisible"); customSyncMainDataInterval = null; syncData(100); @@ -1154,42 +1279,66 @@ window.addEventListener("DOMContentLoaded", function() { hideSearchTab(); hideRssTab(); hideLogTab(); + + LocalPreferences.set("selected_window_tab", "transfers"); }; - const hideTransfersTab = function() { - $("filtersColumn").addClass("invisible"); - $("filtersColumn_handle").addClass("invisible"); - $("mainColumn").addClass("invisible"); - $('torrentsFilterToolbar').addClass("invisible"); + const hideTransfersTab = () => { + $("filtersColumn").classList.add("invisible"); + $("filtersColumn_handle").classList.add("invisible"); + $("mainColumn").classList.add("invisible"); + $("torrentsFilterToolbar").classList.add("invisible"); MochaUI.Desktop.resizePanels(); }; - const showSearchTab = (function() { + const showSearchTab = (() => { let searchTabInitialized = false; return () => { + // we must wait until the panel is fully loaded before proceeding. + // this include's the panel's custom js, which is loaded via MochaUI.Panel's 'require' field. + // MochaUI loads these files asynchronously and thus all required libs may not be available immediately + if (!isSearchPanelLoaded) { + setTimeout(() => { + showSearchTab(); + }, 100); + return; + } + if (!searchTabInitialized) { window.qBittorrent.Search.init(); searchTabInitialized = true; } - $("searchTabColumn").removeClass("invisible"); + $("searchTabColumn").classList.remove("invisible"); customSyncMainDataInterval = 30000; hideTransfersTab(); hideRssTab(); hideLogTab(); + + LocalPreferences.set("selected_window_tab", "search"); }; })(); - const hideSearchTab = function() { - $("searchTabColumn").addClass("invisible"); + const hideSearchTab = () => { + $("searchTabColumn").classList.add("invisible"); MochaUI.Desktop.resizePanels(); }; - const showRssTab = (function() { + const showRssTab = (() => { let rssTabInitialized = false; return () => { + // we must wait until the panel is fully loaded before proceeding. + // this include's the panel's custom js, which is loaded via MochaUI.Panel's 'require' field. + // MochaUI loads these files asynchronously and thus all required libs may not be available immediately + if (!isRssPanelLoaded) { + setTimeout(() => { + showRssTab(); + }, 100); + return; + } + if (!rssTabInitialized) { window.qBittorrent.Rss.init(); rssTabInitialized = true; @@ -1198,24 +1347,36 @@ window.addEventListener("DOMContentLoaded", function() { window.qBittorrent.Rss.load(); } - $("rssTabColumn").removeClass("invisible"); + $("rssTabColumn").classList.remove("invisible"); customSyncMainDataInterval = 30000; hideTransfersTab(); hideSearchTab(); hideLogTab(); + + LocalPreferences.set("selected_window_tab", "rss"); }; })(); - const hideRssTab = function() { - $("rssTabColumn").addClass("invisible"); + const hideRssTab = () => { + $("rssTabColumn").classList.add("invisible"); window.qBittorrent.Rss && window.qBittorrent.Rss.unload(); MochaUI.Desktop.resizePanels(); }; - const showLogTab = (function() { + const showLogTab = (() => { let logTabInitialized = false; return () => { + // we must wait until the panel is fully loaded before proceeding. + // this include's the panel's custom js, which is loaded via MochaUI.Panel's 'require' field. + // MochaUI loads these files asynchronously and thus all required libs may not be available immediately + if (!isLogPanelLoaded) { + setTimeout(() => { + showLogTab(); + }, 100); + return; + } + if (!logTabInitialized) { window.qBittorrent.Log.init(); logTabInitialized = true; @@ -1224,24 +1385,26 @@ window.addEventListener("DOMContentLoaded", function() { window.qBittorrent.Log.load(); } - $('logTabColumn').removeClass('invisible'); + $("logTabColumn").classList.remove("invisible"); customSyncMainDataInterval = 30000; hideTransfersTab(); hideSearchTab(); hideRssTab(); + + LocalPreferences.set("selected_window_tab", "log"); }; })(); - const hideLogTab = function() { - $('logTabColumn').addClass('invisible'); + const hideLogTab = () => { + $("logTabColumn").classList.add("invisible"); MochaUI.Desktop.resizePanels(); window.qBittorrent.Log && window.qBittorrent.Log.unload(); }; - const addSearchPanel = function() { + const addSearchPanel = () => { new MochaUI.Panel({ - id: 'SearchPanel', - title: 'Search', + id: "SearchPanel", + title: "Search", header: false, padding: { top: 0, @@ -1249,18 +1412,24 @@ window.addEventListener("DOMContentLoaded", function() { bottom: 0, left: 0 }, - loadMethod: 'xhr', - contentURL: 'views/search.html', - content: '', - column: 'searchTabColumn', + loadMethod: "xhr", + contentURL: "views/search.html", + require: { + js: ["scripts/search.js"], + onload: () => { + isSearchPanelLoaded = true; + }, + }, + content: "", + column: "searchTabColumn", height: null }); }; - const addRssPanel = function() { + const addRssPanel = () => { new MochaUI.Panel({ - id: 'RssPanel', - title: 'Rss', + id: "RssPanel", + title: "Rss", header: false, padding: { top: 0, @@ -1268,18 +1437,21 @@ window.addEventListener("DOMContentLoaded", function() { bottom: 0, left: 0 }, - loadMethod: 'xhr', - contentURL: 'views/rss.html', - content: '', - column: 'rssTabColumn', + loadMethod: "xhr", + contentURL: "views/rss.html", + onContentLoaded: () => { + isRssPanelLoaded = true; + }, + content: "", + column: "rssTabColumn", height: null }); }; - var addLogPanel = function() { + const addLogPanel = () => { new MochaUI.Panel({ - id: 'LogPanel', - title: 'Log', + id: "LogPanel", + title: "Log", header: true, padding: { top: 0, @@ -1287,46 +1459,49 @@ window.addEventListener("DOMContentLoaded", function() { bottom: 0, left: 0 }, - loadMethod: 'xhr', - contentURL: 'views/log.html', + loadMethod: "xhr", + contentURL: "views/log.html", require: { - css: ['css/vanillaSelectBox.css'], - js: ['scripts/lib/vanillaSelectBox.js'], + css: ["css/vanillaSelectBox.css"], + js: ["scripts/lib/vanillaSelectBox.js"], + onload: () => { + isLogPanelLoaded = true; + }, }, - tabsURL: 'views/logTabs.html', - tabsOnload: function() { - MochaUI.initializeTabs('panelTabs'); + tabsURL: "views/logTabs.html", + tabsOnload: () => { + MochaUI.initializeTabs("panelTabs"); - $('logMessageLink').addEvent('click', function(e) { - window.qBittorrent.Log.setCurrentTab('main'); + $("logMessageLink").addEventListener("click", (e) => { + window.qBittorrent.Log.setCurrentTab("main"); }); - $('logPeerLink').addEvent('click', function(e) { - window.qBittorrent.Log.setCurrentTab('peer'); + $("logPeerLink").addEventListener("click", (e) => { + window.qBittorrent.Log.setCurrentTab("peer"); }); }, collapsible: false, - content: '', - column: 'logTabColumn', + content: "", + column: "logTabColumn", height: null }); }; - const handleDownloadParam = function() { + const handleDownloadParam = () => { // Extract torrent URL from download param in WebUI URL hash const downloadHash = "#download="; - if (location.hash.indexOf(downloadHash) !== 0) + if (!location.hash.startsWith(downloadHash)) return; const url = decodeURIComponent(location.hash.substring(downloadHash.length)); // Remove the processed hash from the URL - history.replaceState('', document.title, (location.pathname + location.search)); + history.replaceState("", document.title, (location.pathname + location.search)); showDownloadPage([url]); }; new MochaUI.Panel({ - id: 'transferList', - title: 'Panel', + id: "transferList", + title: "Panel", header: false, padding: { top: 0, @@ -1334,150 +1509,143 @@ window.addEventListener("DOMContentLoaded", function() { bottom: 0, left: 0 }, - loadMethod: 'xhr', - contentURL: 'views/transferlist.html', - onContentLoaded: function() { + loadMethod: "xhr", + contentURL: "views/transferlist.html", + onContentLoaded: () => { handleDownloadParam(); updateMainData(); }, - column: 'mainColumn', - onResize: saveColumnSizes, + column: "mainColumn", + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { + const isHidden = (parseInt(document.getElementById("propertiesPanel").style.height, 10) === 0); + if (!isHidden) + saveColumnSizes(); + }), height: null }); - let prop_h = LocalPreferences.get('properties_height_rel'); + let prop_h = LocalPreferences.get("properties_height_rel"); if (prop_h !== null) - prop_h = prop_h.toFloat() * Window.getSize().y; + prop_h = Number(prop_h) * Window.getSize().y; else prop_h = Window.getSize().y / 2.0; new MochaUI.Panel({ - id: 'propertiesPanel', - title: 'Panel', - header: true, + id: "propertiesPanel", + title: "Panel", padding: { top: 0, right: 0, bottom: 0, left: 0 }, - contentURL: 'views/properties.html', + contentURL: "views/properties.html", require: { - css: ['css/Tabs.css', 'css/dynamicTable.css'], - js: ['scripts/prop-general.js', 'scripts/prop-trackers.js', 'scripts/prop-peers.js', 'scripts/prop-webseeds.js', 'scripts/prop-files.js'], + js: ["scripts/prop-general.js", "scripts/prop-trackers.js", "scripts/prop-peers.js", "scripts/prop-webseeds.js", "scripts/prop-files.js"], + onload: () => { + updatePropertiesPanel = () => { + switch (LocalPreferences.get("selected_properties_tab")) { + case "propGeneralLink": + window.qBittorrent.PropGeneral.updateData(); + break; + case "propTrackersLink": + window.qBittorrent.PropTrackers.updateData(); + break; + case "propPeersLink": + window.qBittorrent.PropPeers.updateData(); + break; + case "propWebSeedsLink": + window.qBittorrent.PropWebseeds.updateData(); + break; + case "propFilesLink": + window.qBittorrent.PropFiles.updateData(); + break; + } + }; + } }, - tabsURL: 'views/propertiesToolbar.html', - tabsOnload: function() { - MochaUI.initializeTabs('propertiesTabs'); + tabsURL: "views/propertiesToolbar.html", + tabsOnload: () => {}, // must be included, otherwise panel won't load properly + onContentLoaded: function() { + this.panelHeaderCollapseBoxEl.classList.add("invisible"); - updatePropertiesPanel = function() { - if (!$('prop_general').hasClass('invisible')) { - if (window.qBittorrent.PropGeneral !== undefined) - window.qBittorrent.PropGeneral.updateData(); - } - else if (!$('prop_trackers').hasClass('invisible')) { - if (window.qBittorrent.PropTrackers !== undefined) - window.qBittorrent.PropTrackers.updateData(); - } - else if (!$('prop_peers').hasClass('invisible')) { - if (window.qBittorrent.PropPeers !== undefined) - window.qBittorrent.PropPeers.updateData(); - } - else if (!$('prop_webseeds').hasClass('invisible')) { - if (window.qBittorrent.PropWebseeds !== undefined) - window.qBittorrent.PropWebseeds.updateData(); - } - else if (!$('prop_files').hasClass('invisible')) { - if (window.qBittorrent.PropFiles !== undefined) - window.qBittorrent.PropFiles.updateData(); - } + const togglePropertiesPanel = () => { + this.collapseToggleEl.click(); + LocalPreferences.set("properties_panel_collapsed", this.isCollapsed.toString()); }; - $('PropGeneralLink').addEvent('click', function(e) { - $$('.propertiesTabContent').addClass('invisible'); - $('prop_general').removeClass("invisible"); - hideFilesFilter(); + const selectTab = (tabID) => { + const isAlreadySelected = this.panelHeaderEl.getElementById(tabID).classList.contains("selected"); + if (!isAlreadySelected) { + for (const tab of this.panelHeaderEl.getElementById("propertiesTabs").children) + tab.classList.toggle("selected", tab.id === tabID); + + const tabContentID = tabID.replace("Link", ""); + for (const tabContent of this.contentEl.children) + tabContent.classList.toggle("invisible", tabContent.id !== tabContentID); + + LocalPreferences.set("selected_properties_tab", tabID); + } + + if (isAlreadySelected || this.isCollapsed) + togglePropertiesPanel(); + }; + + const lastUsedTab = LocalPreferences.get("selected_properties_tab", "propGeneralLink"); + selectTab(lastUsedTab); + + const startCollapsed = LocalPreferences.get("properties_panel_collapsed", "false") === "true"; + if (startCollapsed) + togglePropertiesPanel(); + + this.panelHeaderContentEl.addEventListener("click", (e) => { + const selectedTab = e.target.closest("li"); + if (!selectedTab) + return; + + selectTab(selectedTab.id); updatePropertiesPanel(); - LocalPreferences.set('selected_tab', this.id); + + const showFilesFilter = (selectedTab.id === "propFilesLink") && !this.isCollapsed; + document.getElementById("torrentFilesFilterToolbar").classList.toggle("invisible", !showFilesFilter); }); - $('PropTrackersLink').addEvent('click', function(e) { - $$('.propertiesTabContent').addClass('invisible'); - $('prop_trackers').removeClass("invisible"); - hideFilesFilter(); - updatePropertiesPanel(); - LocalPreferences.set('selected_tab', this.id); - }); - - $('PropPeersLink').addEvent('click', function(e) { - $$('.propertiesTabContent').addClass('invisible'); - $('prop_peers').removeClass("invisible"); - hideFilesFilter(); - updatePropertiesPanel(); - LocalPreferences.set('selected_tab', this.id); - }); - - $('PropWebSeedsLink').addEvent('click', function(e) { - $$('.propertiesTabContent').addClass('invisible'); - $('prop_webseeds').removeClass("invisible"); - hideFilesFilter(); - updatePropertiesPanel(); - LocalPreferences.set('selected_tab', this.id); - }); - - $('PropFilesLink').addEvent('click', function(e) { - $$('.propertiesTabContent').addClass('invisible'); - $('prop_files').removeClass("invisible"); - showFilesFilter(); - updatePropertiesPanel(); - LocalPreferences.set('selected_tab', this.id); - }); - - $('propertiesPanel_collapseToggle').addEvent('click', function(e) { - updatePropertiesPanel(); - }); + const showFilesFilter = (lastUsedTab === "propFilesLink") && !this.isCollapsed; + if (showFilesFilter) + document.getElementById("torrentFilesFilterToolbar").classList.remove("invisible"); }, - column: 'mainColumn', + column: "mainColumn", height: prop_h }); - const showFilesFilter = function() { - $('torrentFilesFilterToolbar').removeClass("invisible"); - }; - - const hideFilesFilter = function() { - $('torrentFilesFilterToolbar').addClass("invisible"); - }; - // listen for changes to torrentsFilterInput let torrentsFilterInputTimer = -1; - $('torrentsFilterInput').addEvent('input', () => { + $("torrentsFilterInput").addEventListener("input", () => { clearTimeout(torrentsFilterInputTimer); torrentsFilterInputTimer = setTimeout(() => { torrentsFilterInputTimer = -1; torrentsTable.updateTable(); }, window.qBittorrent.Misc.FILTER_INPUT_DELAY); }); - $('torrentsFilterRegexBox').addEvent('change', () => { - torrentsTable.updateTable(); - }); - $('transfersTabLink').addEvent('click', showTransfersTab); - $('searchTabLink').addEvent('click', showSearchTab); - $('rssTabLink').addEvent('click', showRssTab); - $('logTabLink').addEvent('click', showLogTab); + document.getElementById("torrentsFilterToolbar").addEventListener("change", (e) => { torrentsTable.updateTable(); }); + + $("transfersTabLink").addEventListener("click", () => { showTransfersTab(); }); + $("searchTabLink").addEventListener("click", () => { showSearchTab(); }); + $("rssTabLink").addEventListener("click", () => { showRssTab(); }); + $("logTabLink").addEventListener("click", () => { showLogTab(); }); updateTabDisplay(); const registerDragAndDrop = () => { - $('desktop').addEventListener('dragover', (ev) => { + $("desktop").addEventListener("dragover", (ev) => { if (ev.preventDefault) ev.preventDefault(); }); - $('desktop').addEventListener('dragenter', (ev) => { + $("desktop").addEventListener("dragenter", (ev) => { if (ev.preventDefault) ev.preventDefault(); }); - $('desktop').addEventListener("drop", (ev) => { + $("desktop").addEventListener("drop", (ev) => { if (ev.preventDefault) ev.preventDefault(); @@ -1493,24 +1661,25 @@ window.addEventListener("DOMContentLoaded", function() { return; } - const id = 'uploadPage'; + const id = "uploadPage"; new MochaUI.Window({ id: id, + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]", - loadMethod: 'iframe', - contentURL: new URI("upload.html").toString(), - addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari + loadMethod: "iframe", + contentURL: "upload.html", + addClass: "windowFrame", // fixes iframe scrolling on iOS Safari scrollbars: true, maximizable: false, paddingVertical: 0, paddingHorizontal: 0, width: loadWindowWidth(id, 500), height: loadWindowHeight(id, 460), - onResize: () => { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - }, + }), onContentLoaded: () => { - const fileInput = $(`${id}_iframe`).contentDocument.getElementById('fileselect'); + const fileInput = $(`${id}_iframe`).contentDocument.getElementById("fileselect"); fileInput.files = droppedFiles; } }); @@ -1520,7 +1689,7 @@ window.addEventListener("DOMContentLoaded", function() { if (droppedText.length > 0) { // dropped text - const urls = droppedText.split('\n') + const urls = droppedText.split("\n") .map((str) => str.trim()) .filter((str) => { const lowercaseStr = str.toLowerCase(); @@ -1534,14 +1703,18 @@ window.addEventListener("DOMContentLoaded", function() { if (urls.length <= 0) return; - const id = 'downloadPage'; - const contentURI = new URI('download.html').setData("urls", urls.map(encodeURIComponent).join("|")); + const id = "downloadPage"; + const contentURL = new URL("download.html", window.location); + contentURL.search = new URLSearchParams({ + urls: urls.map(encodeURIComponent).join("|") + }); new MochaUI.Window({ id: id, + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]", - loadMethod: 'iframe', - contentURL: contentURI.toString(), - addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari + loadMethod: "iframe", + contentURL: contentURL.toString(), + addClass: "windowFrame", // fixes iframe scrolling on iOS Safari scrollbars: true, maximizable: false, closable: true, @@ -1549,49 +1722,101 @@ window.addEventListener("DOMContentLoaded", function() { paddingHorizontal: 0, width: loadWindowWidth(id, 500), height: loadWindowHeight(id, 600), - onResize: () => { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - } + }) }); } }); }; registerDragAndDrop(); - new Keyboard({ - defaultEventType: 'keydown', - events: { - 'ctrl+a': function(event) { + window.addEventListener("keydown", (event) => { + switch (event.key) { + case "a": + case "A": + if (event.ctrlKey) { + if ((event.target.nodeName === "INPUT") || (event.target.nodeName === "TEXTAREA")) + return; + if (event.target.isContentEditable) + return; + event.preventDefault(); + torrentsTable.selectAll(); + } + break; + + case "Delete": if ((event.target.nodeName === "INPUT") || (event.target.nodeName === "TEXTAREA")) return; if (event.target.isContentEditable) return; - torrentsTable.selectAll(); - event.preventDefault(); - }, - 'delete': function(event) { - if ((event.target.nodeName === "INPUT") || (event.target.nodeName === "TEXTAREA")) - return; - if (event.target.isContentEditable) - return; - deleteFN(); - event.preventDefault(); - }, - 'shift+delete': (event) => { - if ((event.target.nodeName === "INPUT") || (event.target.nodeName === "TEXTAREA")) - return; - if (event.target.isContentEditable) - return; - deleteFN(true); event.preventDefault(); + deleteSelectedTorrentsFN(event.shiftKey); + break; + } + }); + + new ClipboardJS(".copyToClipboard", { + text: (trigger) => { + switch (trigger.id) { + case "copyName": + return copyNameFN(); + case "copyInfohash1": + return copyInfohashFN(1); + case "copyInfohash2": + return copyInfohashFN(2); + case "copyMagnetLink": + return copyMagnetLinkFN(); + case "copyID": + return copyIdFN(); + case "copyComment": + return copyCommentFN(); + default: + return ""; } } - }).activate(); + }); + + addEventListener("visibilitychange", (event) => { + if (document.hidden) + return; + + switch (LocalPreferences.get("selected_window_tab")) { + case "log": + window.qBittorrent.Log.load(); + break; + case "transfers": + syncData(100); + updatePropertiesPanel(); + break; + } + }); }); -window.addEventListener("load", () => { - // fetch various data and store it in memory - window.qBittorrent.Cache.buildInfo.init(); - window.qBittorrent.Cache.preferences.init(); - window.qBittorrent.Cache.qbtVersion.init(); +window.addEventListener("load", async () => { + await window.qBittorrent.Client.initializeCaches(); + + // switch to previously used tab + const previouslyUsedTab = LocalPreferences.get("selected_window_tab", "transfers"); + switch (previouslyUsedTab) { + case "search": + if (window.qBittorrent.Client.isShowSearchEngine()) + $("searchTabLink").click(); + break; + case "rss": + if (window.qBittorrent.Client.isShowRssReader()) + $("rssTabLink").click(); + break; + case "log": + if (window.qBittorrent.Client.isShowLogViewer()) + $("logTabLink").click(); + break; + case "transfers": + $("transfersTabLink").click(); + break; + default: + console.error(`Unexpected 'selected_window_tab' value: ${previouslyUsedTab}`); + $("transfersTabLink").click(); + break; + }; }); diff --git a/src/webui/www/private/scripts/color-scheme.js b/src/webui/www/private/scripts/color-scheme.js new file mode 100644 index 000000000..d02fce243 --- /dev/null +++ b/src/webui/www/private/scripts/color-scheme.js @@ -0,0 +1,56 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 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. + */ + +"use strict"; + +window.qBittorrent ??= {}; +window.qBittorrent.ColorScheme ??= (() => { + const exports = () => { + return { + update, + }; + }; + + const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences(); + const colorSchemeQuery = window.matchMedia("(prefers-color-scheme: dark)"); + + const update = () => { + const root = document.documentElement; + const colorScheme = LocalPreferences.get("color_scheme"); + const validScheme = (colorScheme === "light") || (colorScheme === "dark"); + const isDark = colorSchemeQuery.matches; + root.classList.toggle("dark", ((!validScheme && isDark) || (colorScheme === "dark"))); + }; + + colorSchemeQuery.addEventListener("change", update); + + return exports(); +})(); +Object.freeze(window.qBittorrent.ColorScheme); + +window.qBittorrent.ColorScheme.update(); diff --git a/src/webui/www/private/scripts/contextmenu.js b/src/webui/www/private/scripts/contextmenu.js index f6ec8e141..7831461bf 100644 --- a/src/webui/www/private/scripts/contextmenu.js +++ b/src/webui/www/private/scripts/contextmenu.js @@ -26,19 +26,18 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.ContextMenu = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.ContextMenu ??= (() => { + const exports = () => { return { ContextMenu: ContextMenu, TorrentsTableContextMenu: TorrentsTableContextMenu, + StatusesFilterContextMenu: StatusesFilterContextMenu, CategoriesFilterContextMenu: CategoriesFilterContextMenu, TagsFilterContextMenu: TagsFilterContextMenu, + TrackersFilterContextMenu: TrackersFilterContextMenu, SearchPluginsTableContextMenu: SearchPluginsTableContextMenu, RssFeedContextMenu: RssFeedContextMenu, RssArticleContextMenu: RssArticleContextMenu, @@ -47,78 +46,61 @@ window.qBittorrent.ContextMenu = (function() { }; let lastShownContextMenu = null; - const ContextMenu = new Class({ - //implements - Implements: [Options, Events], + class ContextMenu { + constructor(options) { + this.options = { + actions: {}, + menu: "menu_id", + stopEvent: true, + targets: "body", + offsets: { + x: 0, + y: 0 + }, + onShow: () => {}, + onHide: () => {}, + onClick: () => {}, + fadeSpeed: 200, + touchTimer: 600, + ...options + }; - //options - options: { - actions: {}, - menu: 'menu_id', - stopEvent: true, - targets: 'body', - offsets: { - x: 0, - y: 0 - }, - onShow: () => {}, - onHide: () => {}, - onClick: () => {}, - fadeSpeed: 200, - touchTimer: 600 - }, - - //initialization - initialize: function(options) { - //set options - this.setOptions(options); - - //option diffs menu + // option diffs menu this.menu = $(this.options.menu); - this.targets = $$(this.options.targets); - //fx + // fx this.fx = new Fx.Tween(this.menu, { - property: 'opacity', + property: "opacity", duration: this.options.fadeSpeed, - onComplete: function() { - if (this.getStyle('opacity')) { - this.setStyle('visibility', 'visible'); - } - else { - this.setStyle('visibility', 'hidden'); - } - }.bind(this.menu) + onComplete: () => { + this.menu.style.visibility = (getComputedStyle(this.menu).opacity > 0) ? "visible" : "hidden"; + } }); - //hide and begin the listener + // hide and begin the listener this.hide().startListener(); - //hide the menu - this.menu.setStyles({ - 'position': 'absolute', - 'top': '-900000px', - 'display': 'block' - }); - }, + // hide the menu + this.menu.style.position = "absolute"; + this.menu.style.top = "-900000px"; + this.menu.style.display = "block"; + } - adjustMenuPosition: function(e) { + adjustMenuPosition(e) { this.updateMenuItems(); const scrollableMenuMaxHeight = document.documentElement.clientHeight * 0.75; - if (this.menu.hasClass('scrollableMenu')) - this.menu.setStyle('max-height', scrollableMenuMaxHeight); + if (this.menu.classList.contains("scrollableMenu")) + this.menu.style.maxHeight = `${scrollableMenuMaxHeight}px`; // draw the menu off-screen to know the menu dimensions - this.menu.setStyles({ - left: '-999em', - top: '-999em' - }); + this.menu.style.left = "-999em"; + this.menu.style.top = "-999em"; // position the menu - let xPosMenu = e.page.x + this.options.offsets.x; - let yPosMenu = e.page.y + this.options.offsets.y; + let xPosMenu = e.pageX + this.options.offsets.x; + let yPosMenu = e.pageY + this.options.offsets.y; if ((xPosMenu + this.menu.offsetWidth) > document.documentElement.clientWidth) xPosMenu -= this.menu.offsetWidth; if ((yPosMenu + this.menu.offsetHeight) > document.documentElement.clientHeight) @@ -127,19 +109,17 @@ window.qBittorrent.ContextMenu = (function() { xPosMenu = 0; if (yPosMenu < 0) yPosMenu = 0; - this.menu.setStyles({ - left: xPosMenu, - top: yPosMenu, - position: 'absolute', - 'z-index': '2000' - }); + this.menu.style.left = `${xPosMenu}px`; + this.menu.style.top = `${yPosMenu}px`; + this.menu.style.position = "absolute"; + this.menu.style.zIndex = "2000"; // position the sub-menu - const uls = this.menu.getElementsByTagName('ul'); + const uls = this.menu.getElementsByTagName("ul"); for (let i = 0; i < uls.length; ++i) { const ul = uls[i]; - if (ul.hasClass('scrollableMenu')) - ul.setStyle('max-height', scrollableMenuMaxHeight); + if (ul.classList.contains("scrollableMenu")) + ul.style.maxHeight = `${scrollableMenuMaxHeight}px`; const rectParent = ul.parentNode.getBoundingClientRect(); const xPosOrigin = rectParent.left; const yPosOrigin = rectParent.bottom; @@ -153,27 +133,25 @@ window.qBittorrent.ContextMenu = (function() { xPos = 0; if (yPos < 0) yPos = 0; - ul.setStyles({ - 'margin-left': xPos - xPosOrigin, - 'margin-top': yPos - yPosOrigin - }); + ul.style.marginLeft = `${xPos - xPosOrigin}px`; + ul.style.marginTop = `${yPos - yPosOrigin}px`; } - }, + } - setupEventListeners: function(elem) { - elem.addEvent('contextmenu', function(e) { + setupEventListeners(elem) { + elem.addEventListener("contextmenu", (e) => { this.triggerMenu(e, elem); - }.bind(this)); - elem.addEvent('click', function(e) { + }); + elem.addEventListener("click", (e) => { this.hide(); - }.bind(this)); + }); - elem.addEvent('touchstart', function(e) { + elem.addEventListener("touchstart", (e) => { this.hide(); this.touchStartAt = performance.now(); this.touchStartEvent = e; - }.bind(this)); - elem.addEvent('touchend', function(e) { + }, { passive: true }); + elem.addEventListener("touchend", (e) => { const now = performance.now(); const touchStartAt = this.touchStartAt; const touchStartEvent = this.touchStartEvent; @@ -181,130 +159,167 @@ window.qBittorrent.ContextMenu = (function() { this.touchStartAt = null; this.touchStartEvent = null; - const isTargetUnchanged = (Math.abs(e.event.pageX - touchStartEvent.event.pageX) <= 10) && (Math.abs(e.event.pageY - touchStartEvent.event.pageY) <= 10); - if (((now - touchStartAt) >= this.options.touchTimer) && isTargetUnchanged) { + const isTargetUnchanged = (Math.abs(e.changedTouches[0].pageX - touchStartEvent.changedTouches[0].pageX) <= 10) && (Math.abs(e.changedTouches[0].pageY - touchStartEvent.changedTouches[0].pageY) <= 10); + if (((now - touchStartAt) >= this.options.touchTimer) && isTargetUnchanged) this.triggerMenu(touchStartEvent, elem); - } - }.bind(this)); - }, + }, { passive: true }); + } + + addTarget(t) { + if (t.hasEventListeners) + return; - addTarget: function(t) { // prevent long press from selecting this text - t.style.setProperty('user-select', 'none'); - t.style.setProperty('-webkit-user-select', 'none'); - - this.targets[this.targets.length] = t; + t.style.userSelect = "none"; + t.hasEventListeners = true; this.setupEventListeners(t); - }, + } - triggerMenu: function(e, el) { + searchAndAddTargets() { + if (this.options.targets.length > 0) + document.querySelectorAll(this.options.targets).forEach((target) => { this.addTarget(target); }); + } + + triggerMenu(e, el) { if (this.options.disabled) return; - //prevent default, if told to + // prevent default, if told to if (this.options.stopEvent) { - e.stop(); + e.preventDefault(); + e.stopPropagation(); } - //record this as the trigger + // record this as the trigger this.options.element = $(el); this.adjustMenuPosition(e); - //show the menu + // show the menu this.show(); - }, + } - //get things started - startListener: function() { + // get things started + startListener() { /* all elements */ - this.targets.each(function(el) { - this.setupEventListeners(el); - }.bind(this), this); + this.searchAndAddTargets(); /* menu items */ - this.menu.getElements('a').each(function(item) { - item.addEvent('click', function(e) { - e.preventDefault(); - if (!item.hasClass('disabled')) { - this.execute(item.get('href').split('#')[1], $(this.options.element)); - this.fireEvent('click', [item, e]); - } - }.bind(this)); - }, this); + this.menu.addEventListener("click", (e) => { + const menuItem = e.target.closest("li"); + if (!menuItem) + return; - //hide on body click - $(document.body).addEvent('click', function() { + e.preventDefault(); + if (!menuItem.classList.contains("disabled")) { + const anchor = menuItem.firstElementChild; + this.execute(anchor.href.split("#")[1], this.options.element); + this.options.onClick.call(this, anchor, e); + } + else { + e.stopPropagation(); + } + }); + + // hide on body click + $(document.body).addEventListener("click", () => { this.hide(); - }.bind(this)); - }, + this.options.element = null; + }); + } - updateMenuItems: function() {}, + updateMenuItems() {} - //show menu - show: function(trigger) { + // show menu + show(trigger) { if (lastShownContextMenu && (lastShownContextMenu !== this)) lastShownContextMenu.hide(); this.fx.start(1); - this.fireEvent('show'); + this.options.onShow.call(this); lastShownContextMenu = this; return this; - }, + } - //hide the menu - hide: function(trigger) { - if (lastShownContextMenu && (lastShownContextMenu.menu.style.visibility !== 'hidden')) { + // hide the menu + hide(trigger) { + if (lastShownContextMenu && (lastShownContextMenu.menu.style.visibility !== "hidden")) { this.fx.start(0); - //this.menu.fade('out'); - this.fireEvent('hide'); - } - return this; - }, - - setItemChecked: function(item, checked) { - this.menu.getElement('a[href$=' + item + ']').firstChild.style.opacity = - checked ? '1' : '0'; - return this; - }, - - getItemChecked: function(item) { - return this.menu.getElement('a[href$=' + item + ']').firstChild.style.opacity !== '0'; - }, - - //hide an item - hideItem: function(item) { - this.menu.getElement('a[href$=' + item + ']').parentNode.addClass('invisible'); - return this; - }, - - //show an item - showItem: function(item) { - this.menu.getElement('a[href$=' + item + ']').parentNode.removeClass('invisible'); - return this; - }, - - //disable the entire menu - disable: function() { - this.options.disabled = true; - return this; - }, - - //enable the entire menu - enable: function() { - this.options.disabled = false; - return this; - }, - - //execute an action - execute: function(action, element) { - if (this.options.actions[action]) { - this.options.actions[action](element, this, action); + this.options.onHide.call(this); } return this; } - }); - const TorrentsTableContextMenu = new Class({ - Extends: ContextMenu, + setItemChecked(item, checked) { + this.menu.querySelector(`a[href$="${item}"]`).firstElementChild.style.opacity = + checked ? "1" : "0"; + return this; + } - updateMenuItems: function() { + getItemChecked(item) { + return this.menu.querySelector(`a[href$="${item}"]`).firstElementChild.style.opacity !== "0"; + } + + // hide an item + hideItem(item) { + this.menu.querySelector(`a[href$="${item}"]`).parentNode.classList.add("invisible"); + return this; + } + + // show an item + showItem(item) { + this.menu.querySelector(`a[href$="${item}"]`).parentNode.classList.remove("invisible"); + return this; + } + + // enable/disable an item + setEnabled(item, enabled) { + this.menu.querySelector(`:scope a[href$="${item}"]`).parentElement.classList.toggle("disabled", !enabled); + return this; + } + + // disable the entire menu + disable() { + this.options.disabled = true; + return this; + } + + // enable the entire menu + enable() { + this.options.disabled = false; + return this; + } + + // execute an action + execute(action, element) { + if (this.options.actions[action]) + this.options.actions[action](element, this, action); + return this; + } + }; + + class FilterListContextMenu extends ContextMenu { + constructor(options) { + super(options); + this.torrentObserver = new MutationObserver((records, observer) => { + this.updateTorrentActions(); + }); + } + + startTorrentObserver() { + this.torrentObserver.observe(torrentsTable.tableBody, { childList: true }); + } + + stopTorrentObserver() { + this.torrentObserver.disconnect(); + } + + updateTorrentActions() { + const torrentsVisible = torrentsTable.tableBody.children.length > 0; + this.setEnabled("startTorrents", torrentsVisible) + .setEnabled("stopTorrents", torrentsVisible) + .setEnabled("deleteTorrents", torrentsVisible); + } + }; + + class TorrentsTableContextMenu extends ContextMenu { + updateMenuItems() { let all_are_seq_dl = true; let there_are_seq_dl = false; let all_are_f_l_piece_prio = true; @@ -317,334 +332,403 @@ window.qBittorrent.ContextMenu = (function() { let all_are_super_seeding = true; let all_are_auto_tmm = true; let there_are_auto_tmm = false; + let thereAreV1Hashes = false; + let thereAreV2Hashes = false; const tagCount = new Map(); + const categoryCount = new Map(); const selectedRows = torrentsTable.selectedRowsIds(); selectedRows.forEach((item, index) => { - const data = torrentsTable.rows.get(item).full_data; + const data = torrentsTable.getRow(item).full_data; - if (data['seq_dl'] !== true) + if (data["seq_dl"] !== true) all_are_seq_dl = false; else there_are_seq_dl = true; - if (data['f_l_piece_prio'] !== true) + if (data["f_l_piece_prio"] !== true) all_are_f_l_piece_prio = false; else there_are_f_l_piece_prio = true; - if (data['progress'] !== 1.0) // not downloaded + if (data["progress"] !== 1.0) // not downloaded all_are_downloaded = false; - else if (data['super_seeding'] !== true) + else if (data["super_seeding"] !== true) all_are_super_seeding = false; - if ((data['state'] !== 'stoppedUP') && (data['state'] !== 'stoppedDL')) + if ((data["state"] !== "stoppedUP") && (data["state"] !== "stoppedDL")) all_are_stopped = false; else there_are_stopped = true; - if (data['force_start'] !== true) + if (data["force_start"] !== true) all_are_force_start = false; else there_are_force_start = true; - if (data['auto_tmm'] === true) + if (data["auto_tmm"] === true) there_are_auto_tmm = true; else all_are_auto_tmm = false; - const torrentTags = data['tags'].split(', '); + if (data["infohash_v1"] !== "") + thereAreV1Hashes = true; + + if (data["infohash_v2"] !== "") + thereAreV2Hashes = true; + + const torrentTags = data["tags"].split(", "); for (const tag of torrentTags) { const count = tagCount.get(tag); tagCount.set(tag, ((count !== undefined) ? (count + 1) : 1)); } + + const torrentCategory = data["category"]; + const count = categoryCount.get(torrentCategory); + categoryCount.set(torrentCategory, ((count !== undefined) ? (count + 1) : 1)); }); // hide renameFiles when more than 1 torrent is selected if (selectedRows.length === 1) { - const data = torrentsTable.rows.get(selectedRows[0]).full_data; - let metadata_downloaded = !((data['state'] === 'metaDL') || (data['state'] === 'forcedMetaDL') || (data['total_size'] === -1)); + const data = torrentsTable.getRow(selectedRows[0]).full_data; + const metadata_downloaded = !((data["state"] === "metaDL") || (data["state"] === "forcedMetaDL") || (data["total_size"] === -1)); + this.showItem("rename"); // hide renameFiles when metadata hasn't been downloaded yet metadata_downloaded - ? this.showItem('renameFiles') - : this.hideItem('renameFiles'); + ? this.showItem("renameFiles") + : this.hideItem("renameFiles"); } else { - this.hideItem('renameFiles'); + this.hideItem("renameFiles"); + this.hideItem("rename"); } 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'); - this.setItemChecked('superSeeding', all_are_super_seeding); + this.hideItem("downloadLimit"); + this.menu.querySelector("a[href$=uploadLimit]").parentNode.classList.add("separator"); + this.hideItem("sequentialDownload"); + this.hideItem("firstLastPiecePrio"); + this.showItem("superSeeding"); + this.setItemChecked("superSeeding", all_are_super_seeding); } else { const show_seq_dl = (all_are_seq_dl || !there_are_seq_dl); const show_f_l_piece_prio = (all_are_f_l_piece_prio || !there_are_f_l_piece_prio); - if (!show_seq_dl && show_f_l_piece_prio) - this.menu.getElement('a[href$=firstLastPiecePrio]').parentNode.addClass('separator'); - else - this.menu.getElement('a[href$=firstLastPiecePrio]').parentNode.removeClass('separator'); + this.menu.querySelector("a[href$=firstLastPiecePrio]").parentNode.classList.toggle("separator", (!show_seq_dl && show_f_l_piece_prio)); if (show_seq_dl) - this.showItem('sequentialDownload'); + this.showItem("sequentialDownload"); else - this.hideItem('sequentialDownload'); + this.hideItem("sequentialDownload"); if (show_f_l_piece_prio) - this.showItem('firstLastPiecePrio'); + this.showItem("firstLastPiecePrio"); else - this.hideItem('firstLastPiecePrio'); + this.hideItem("firstLastPiecePrio"); - this.setItemChecked('sequentialDownload', all_are_seq_dl); - this.setItemChecked('firstLastPiecePrio', all_are_f_l_piece_prio); + 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'); + this.showItem("downloadLimit"); + this.menu.querySelector("a[href$=uploadLimit]").parentNode.classList.remove("separator"); + this.hideItem("superSeeding"); } - this.showItem('start'); - this.showItem('stop'); - this.showItem('forceStart'); + this.showItem("start"); + this.showItem("stop"); + this.showItem("forceStart"); if (all_are_stopped) - this.hideItem('stop'); + this.hideItem("stop"); else if (all_are_force_start) - this.hideItem('forceStart'); + this.hideItem("forceStart"); else if (!there_are_stopped && !there_are_force_start) - this.hideItem('start'); + this.hideItem("start"); if (!all_are_auto_tmm && there_are_auto_tmm) { - this.hideItem('autoTorrentManagement'); + this.hideItem("autoTorrentManagement"); } else { - this.showItem('autoTorrentManagement'); - this.setItemChecked('autoTorrentManagement', all_are_auto_tmm); + this.showItem("autoTorrentManagement"); + this.setItemChecked("autoTorrentManagement", all_are_auto_tmm); } - const contextTagList = $('contextTagList'); - tagList.forEach((tag, tagHash) => { - const checkbox = contextTagList.getElement(`a[href="#Tag/${tagHash}"] input[type="checkbox"]`); - const count = tagCount.get(tag.name); + this.setEnabled("copyInfohash1", thereAreV1Hashes); + this.setEnabled("copyInfohash2", thereAreV2Hashes); + + const contextTagList = $("contextTagList"); + for (const tag of tagMap.keys()) { + const checkbox = contextTagList.querySelector(`a[href="#Tag/${tag}"] input[type="checkbox"]`); + const count = tagCount.get(tag); const hasCount = (count !== undefined); const isLesser = (count < selectedRows.length); checkbox.indeterminate = (hasCount ? isLesser : false); checkbox.checked = (hasCount ? !isLesser : false); - }); - }, + } - updateCategoriesSubMenu: function(categoryList) { - const contextCategoryList = $('contextCategoryList'); - contextCategoryList.getChildren().each(c => c.destroy()); - contextCategoryList.appendChild(new Element('li', { - html: 'QBT_TR(New...)QBT_TR[CONTEXT=TransferListWidget] QBT_TR(New...)QBT_TR[CONTEXT=TransferListWidget]' - })); - contextCategoryList.appendChild(new Element('li', { - html: 'QBT_TR(Reset)QBT_TR[CONTEXT=TransferListWidget] QBT_TR(Reset)QBT_TR[CONTEXT=TransferListWidget]' - })); + const contextCategoryList = document.getElementById("contextCategoryList"); + for (const category of categoryMap.keys()) { + const categoryIcon = contextCategoryList.querySelector(`a[href$="#Category/${category}"] img`); + const count = categoryCount.get(category); + const isEqual = ((count !== undefined) && (count === selectedRows.length)); + categoryIcon.classList.toggle("highlightedCategoryIcon", isEqual); + } + } - const sortedCategories = []; - categoryList.forEach((category, hash) => sortedCategories.push({ - categoryName: category.name, - categoryHash: hash - })); - sortedCategories.sort((left, right) => window.qBittorrent.Misc.naturalSortCollator.compare( - left.categoryName, right.categoryName)); + updateCategoriesSubMenu(categories) { + const contextCategoryList = $("contextCategoryList"); + [...contextCategoryList.children].forEach((el) => { el.destroy(); }); + + const createMenuItem = (text, imgURL, clickFn) => { + const anchor = document.createElement("a"); + anchor.textContent = text; + anchor.addEventListener("click", () => { clickFn(); }); + + const img = document.createElement("img"); + img.src = imgURL; + img.alt = text; + anchor.prepend(img); + + const item = document.createElement("li"); + item.appendChild(anchor); + + return item; + }; + contextCategoryList.appendChild(createMenuItem("QBT_TR(New...)QBT_TR[CONTEXT=TransferListWidget]", "images/list-add.svg", torrentNewCategoryFN)); + contextCategoryList.appendChild(createMenuItem("QBT_TR(Reset)QBT_TR[CONTEXT=TransferListWidget]", "images/edit-clear.svg", () => { torrentSetCategoryFN(""); })); + + const sortedCategories = [...categories.keys()]; + sortedCategories.sort(window.qBittorrent.Misc.naturalSortCollator.compare); let first = true; - for (const { categoryName, categoryHash } of sortedCategories) { - const el = new Element('li', { - html: `${window.qBittorrent.Misc.escapeHtml(categoryName)}` + for (const categoryName of sortedCategories) { + const anchor = document.createElement("a"); + anchor.href = `#Category/${categoryName}`; + anchor.textContent = categoryName; + anchor.addEventListener("click", (event) => { + event.preventDefault(); + torrentSetCategoryFN(categoryName); }); + + const img = document.createElement("img"); + img.src = "images/view-categories.svg"; + anchor.prepend(img); + + const setCategoryItem = document.createElement("li"); + setCategoryItem.appendChild(anchor); if (first) { - el.addClass('separator'); + setCategoryItem.classList.add("separator"); first = false; } - contextCategoryList.appendChild(el); + + contextCategoryList.appendChild(setCategoryItem); } - }, + } - updateTagsSubMenu: function(tagList) { - const contextTagList = $('contextTagList'); - while (contextTagList.firstChild !== null) - contextTagList.removeChild(contextTagList.firstChild); + updateTagsSubMenu(tags) { + const contextTagList = $("contextTagList"); + contextTagList.replaceChildren(); - contextTagList.appendChild(new Element('li', { - html: '' - + 'QBT_TR(Add...)QBT_TR[CONTEXT=TransferListWidget]' - + ' QBT_TR(Add...)QBT_TR[CONTEXT=TransferListWidget]' - + '' - })); - contextTagList.appendChild(new Element('li', { - html: '' - + 'QBT_TR(Remove All)QBT_TR[CONTEXT=TransferListWidget]' - + ' QBT_TR(Remove All)QBT_TR[CONTEXT=TransferListWidget]' - + '' - })); + const createMenuItem = (text, imgURL, clickFn) => { + const anchor = document.createElement("a"); + anchor.textContent = text; + anchor.addEventListener("click", () => { clickFn(); }); - const sortedTags = []; - tagList.forEach((tag, hash) => sortedTags.push({ - tagName: tag.name, - tagHash: hash - })); - sortedTags.sort((left, right) => window.qBittorrent.Misc.naturalSortCollator.compare(left.tagName, right.tagName)); + const img = document.createElement("img"); + img.src = imgURL; + img.alt = text; + anchor.prepend(img); + + const item = document.createElement("li"); + item.appendChild(anchor); + + return item; + }; + contextTagList.appendChild(createMenuItem("QBT_TR(Add...)QBT_TR[CONTEXT=TransferListWidget]", "images/list-add.svg", torrentAddTagsFN)); + contextTagList.appendChild(createMenuItem("QBT_TR(Remove All)QBT_TR[CONTEXT=TransferListWidget]", "images/edit-clear.svg", torrentRemoveAllTagsFN)); + + const sortedTags = [...tags.keys()]; + sortedTags.sort(window.qBittorrent.Misc.naturalSortCollator.compare); for (let i = 0; i < sortedTags.length; ++i) { - const { tagName, tagHash } = sortedTags[i]; - const el = new Element('li', { - html: `` - + ' ' + window.qBittorrent.Misc.escapeHtml(tagName) - + '' + const tagName = sortedTags[i]; + + const input = document.createElement("input"); + input.type = "checkbox"; + input.addEventListener("click", (event) => { + input.checked = !input.checked; }); + + const anchor = document.createElement("a"); + anchor.href = `#Tag/${tagName}`; + anchor.textContent = tagName; + anchor.addEventListener("click", (event) => { + event.preventDefault(); + torrentSetTagsFN(tagName, !input.checked); + }); + anchor.prepend(input); + + const setTagItem = document.createElement("li"); + setTagItem.appendChild(anchor); if (i === 0) - el.addClass('separator'); - contextTagList.appendChild(el); + setTagItem.classList.add("separator"); + + contextTagList.appendChild(setTagItem); } } - }); + }; - const CategoriesFilterContextMenu = new Class({ - Extends: ContextMenu, - updateMenuItems: function() { - const id = Number(this.options.element.id); + class StatusesFilterContextMenu extends FilterListContextMenu { + updateMenuItems() { + this.updateTorrentActions(); + } + }; + + class CategoriesFilterContextMenu extends FilterListContextMenu { + updateMenuItems() { + const id = this.options.element.id; if ((id !== CATEGORIES_ALL) && (id !== CATEGORIES_UNCATEGORIZED)) { - this.showItem('editCategory'); - this.showItem('deleteCategory'); - if (useSubcategories) { - this.showItem('createSubcategory'); - } - else { - this.hideItem('createSubcategory'); - } + this.showItem("editCategory"); + this.showItem("deleteCategory"); + if (useSubcategories) + this.showItem("createSubcategory"); + else + this.hideItem("createSubcategory"); } else { - this.hideItem('editCategory'); - this.hideItem('deleteCategory'); - this.hideItem('createSubcategory'); + this.hideItem("editCategory"); + this.hideItem("deleteCategory"); + this.hideItem("createSubcategory"); } - } - }); - const TagsFilterContextMenu = new Class({ - Extends: ContextMenu, - updateMenuItems: function() { - const id = Number(this.options.element.id); + this.updateTorrentActions(); + } + }; + + class TagsFilterContextMenu extends FilterListContextMenu { + updateMenuItems() { + const id = this.options.element.id; if ((id !== TAGS_ALL) && (id !== TAGS_UNTAGGED)) - this.showItem('deleteTag'); + this.showItem("deleteTag"); else - this.hideItem('deleteTag'); + this.hideItem("deleteTag"); + + this.updateTorrentActions(); } - }); + }; - const SearchPluginsTableContextMenu = new Class({ - Extends: ContextMenu, + class TrackersFilterContextMenu extends FilterListContextMenu { + updateMenuItems() { + const id = this.options.element.id; + if ((id !== TRACKERS_ALL) && (id !== TRACKERS_TRACKERLESS)) + this.showItem("deleteTracker"); + else + this.hideItem("deleteTracker"); - updateMenuItems: function() { - const enabledColumnIndex = function(text) { - const columns = $("searchPluginsTableFixedHeaderRow").getChildren("th"); - for (let i = 0; i < columns.length; ++i) - if (columns[i].get("html") === "Enabled") - return i; + this.updateTorrentActions(); + } + }; + + class SearchPluginsTableContextMenu extends ContextMenu { + updateMenuItems() { + const enabledColumnIndex = (text) => { + const columns = document.querySelectorAll("#searchPluginsTableFixedHeaderRow th"); + return Array.prototype.findIndex.call(columns, (column => column.textContent === "Enabled")); }; - this.showItem('Enabled'); - this.setItemChecked('Enabled', this.options.element.getChildren("td")[enabledColumnIndex()].get("html") === "Yes"); + this.showItem("Enabled"); + this.setItemChecked("Enabled", (this.options.element.children[enabledColumnIndex()].textContent === "Yes")); - this.showItem('Uninstall'); + this.showItem("Uninstall"); } - }); + }; - const RssFeedContextMenu = new Class({ - Extends: ContextMenu, - updateMenuItems: function() { - let selectedRows = window.qBittorrent.Rss.rssFeedTable.selectedRowsIds(); - this.menu.getElement('a[href$=newSubscription]').parentNode.addClass('separator'); + class RssFeedContextMenu extends ContextMenu { + updateMenuItems() { + const selectedRows = window.qBittorrent.Rss.rssFeedTable.selectedRowsIds(); + this.menu.querySelector("a[href$=newSubscription]").parentNode.classList.add("separator"); switch (selectedRows.length) { case 0: // remove separator on top of newSubscription entry to avoid double line - this.menu.getElement('a[href$=newSubscription]').parentNode.removeClass('separator'); + this.menu.querySelector("a[href$=newSubscription]").parentNode.classList.remove("separator"); // menu when nothing selected - this.hideItem('update'); - this.hideItem('markRead'); - this.hideItem('rename'); - this.hideItem('delete'); - this.showItem('newSubscription'); - this.showItem('newFolder'); - this.showItem('updateAll'); - this.hideItem('copyFeedURL'); + this.hideItem("update"); + this.hideItem("markRead"); + this.hideItem("rename"); + this.hideItem("edit"); + this.hideItem("delete"); + this.showItem("newSubscription"); + this.showItem("newFolder"); + this.showItem("updateAll"); + this.hideItem("copyFeedURL"); break; case 1: - if (selectedRows[0] === 0) { + if (selectedRows[0] === "0") { // menu when "unread" feed selected - this.showItem('update'); - this.showItem('markRead'); - this.hideItem('rename'); - this.hideItem('delete'); - this.showItem('newSubscription'); - this.hideItem('newFolder'); - this.hideItem('updateAll'); - this.hideItem('copyFeedURL'); + this.showItem("update"); + this.showItem("markRead"); + this.hideItem("rename"); + this.hideItem("edit"); + this.hideItem("delete"); + this.showItem("newSubscription"); + this.hideItem("newFolder"); + this.hideItem("updateAll"); + this.hideItem("copyFeedURL"); } - else if (window.qBittorrent.Rss.rssFeedTable.rows[selectedRows[0]].full_data.dataUid === '') { + else if (window.qBittorrent.Rss.rssFeedTable.getRow(selectedRows[0]).full_data.dataUid === "") { // menu when single folder selected - this.showItem('update'); - this.showItem('markRead'); - this.showItem('rename'); - this.showItem('delete'); - this.showItem('newSubscription'); - this.showItem('newFolder'); - this.hideItem('updateAll'); - this.hideItem('copyFeedURL'); + this.showItem("update"); + this.showItem("markRead"); + this.showItem("rename"); + this.hideItem("edit"); + this.showItem("delete"); + this.showItem("newSubscription"); + this.showItem("newFolder"); + this.hideItem("updateAll"); + this.hideItem("copyFeedURL"); } else { // menu when single feed selected - this.showItem('update'); - this.showItem('markRead'); - this.showItem('rename'); - this.showItem('delete'); - this.showItem('newSubscription'); - this.hideItem('newFolder'); - this.hideItem('updateAll'); - this.showItem('copyFeedURL'); + this.showItem("update"); + this.showItem("markRead"); + this.showItem("rename"); + this.showItem("edit"); + this.showItem("delete"); + this.showItem("newSubscription"); + this.hideItem("newFolder"); + this.hideItem("updateAll"); + this.showItem("copyFeedURL"); } break; default: // menu when multiple items selected - this.showItem('update'); - this.showItem('markRead'); - this.hideItem('rename'); - this.showItem('delete'); - this.hideItem('newSubscription'); - this.hideItem('newFolder'); - this.hideItem('updateAll'); - this.showItem('copyFeedURL'); + this.showItem("update"); + this.showItem("markRead"); + this.hideItem("rename"); + this.hideItem("edit"); + this.showItem("delete"); + this.hideItem("newSubscription"); + this.hideItem("newFolder"); + this.hideItem("updateAll"); + this.showItem("copyFeedURL"); break; } } - }); + }; - const RssArticleContextMenu = new Class({ - Extends: ContextMenu - }); + class RssArticleContextMenu extends ContextMenu {}; - const RssDownloaderRuleContextMenu = new Class({ - Extends: ContextMenu, - adjustMenuPosition: function(e) { + class RssDownloaderRuleContextMenu extends ContextMenu { + adjustMenuPosition(e) { this.updateMenuItems(); // draw the menu off-screen to know the menu dimensions - this.menu.setStyles({ - left: '-999em', - top: '-999em' - }); + this.menu.style.left = "-999em"; + this.menu.style.top = "-999em"; // position the menu - let xPosMenu = e.page.x + this.options.offsets.x - $('rssdownloaderpage').offsetLeft; - let yPosMenu = e.page.y + this.options.offsets.y - $('rssdownloaderpage').offsetTop; + let xPosMenu = e.pageX + this.options.offsets.x - $("rssdownloaderpage").offsetLeft; + let yPosMenu = e.pageY + this.options.offsets.y - $("rssdownloaderpage").offsetTop; if ((xPosMenu + this.menu.offsetWidth) > document.documentElement.clientWidth) xPosMenu -= this.menu.offsetWidth; if ((yPosMenu + this.menu.offsetHeight) > document.documentElement.clientHeight) @@ -652,40 +736,37 @@ window.qBittorrent.ContextMenu = (function() { xPosMenu = Math.max(xPosMenu, 0); yPosMenu = Math.max(yPosMenu, 0); - this.menu.setStyles({ - left: xPosMenu, - top: yPosMenu, - position: 'absolute', - 'z-index': '2000' - }); - }, - updateMenuItems: function() { - let selectedRows = window.qBittorrent.RssDownloader.rssDownloaderRulesTable.selectedRowsIds(); - this.showItem('addRule'); + this.menu.style.left = `${xPosMenu}px`; + this.menu.style.top = `${yPosMenu}px`; + this.menu.style.position = "absolute"; + this.menu.style.zIndex = "2000"; + } + updateMenuItems() { + const selectedRows = window.qBittorrent.RssDownloader.rssDownloaderRulesTable.selectedRowsIds(); + this.showItem("addRule"); switch (selectedRows.length) { case 0: // menu when nothing selected - this.hideItem('deleteRule'); - this.hideItem('renameRule'); - this.hideItem('clearDownloadedEpisodes'); + this.hideItem("deleteRule"); + this.hideItem("renameRule"); + this.hideItem("clearDownloadedEpisodes"); break; case 1: // menu when single item selected - this.showItem('deleteRule'); - this.showItem('renameRule'); - this.showItem('clearDownloadedEpisodes'); + this.showItem("deleteRule"); + this.showItem("renameRule"); + this.showItem("clearDownloadedEpisodes"); break; default: // menu when multiple items selected - this.showItem('deleteRule'); - this.hideItem('renameRule'); - this.showItem('clearDownloadedEpisodes'); + this.showItem("deleteRule"); + this.hideItem("renameRule"); + this.showItem("clearDownloadedEpisodes"); break; } } - }); + }; return exports(); })(); - Object.freeze(window.qBittorrent.ContextMenu); diff --git a/src/webui/www/private/scripts/download.js b/src/webui/www/private/scripts/download.js index 5e9b53779..e79d97978 100644 --- a/src/webui/www/private/scripts/download.js +++ b/src/webui/www/private/scripts/download.js @@ -21,14 +21,11 @@ * THE SOFTWARE. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.Download = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.Download ??= (() => { + const exports = () => { return { changeCategorySelect: changeCategorySelect, changeTMM: changeTMM @@ -38,109 +35,111 @@ window.qBittorrent.Download = (function() { let categories = {}; let defaultSavePath = ""; - const getCategories = function() { - new Request.JSON({ - url: 'api/v2/torrents/categories', - method: 'get', - noCache: true, - onSuccess: function(data) { - if (data) { - categories = data; - for (const i in data) { - const category = data[i]; - const option = new Element("option"); - option.set('value', category.name); - option.set('html', category.name); - $('categorySelect').appendChild(option); - } + const getCategories = () => { + fetch("api/v2/torrents/categories", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const data = await response.json(); + + categories = data; + for (const i in data) { + if (!Object.hasOwn(data, i)) + continue; + + const category = data[i]; + const option = document.createElement("option"); + option.value = category.name; + option.textContent = category.name; + $("categorySelect").appendChild(option); } - } - }).send(); + }); }; - const getPreferences = function() { + const getPreferences = () => { const pref = window.parent.qBittorrent.Cache.preferences.get(); defaultSavePath = pref.save_path; - $('savepath').setProperty('value', defaultSavePath); - $('startTorrent').checked = !pref.add_stopped_enabled; - $('addToTopOfQueue').checked = pref.add_to_top_of_queue; + $("savepath").value = defaultSavePath; + $("startTorrent").checked = !pref.add_stopped_enabled; + $("addToTopOfQueue").checked = pref.add_to_top_of_queue; - if (pref.auto_tmm_enabled === 1) { - $('autoTMM').selectedIndex = 1; - $('savepath').disabled = true; + if (pref.auto_tmm_enabled) { + $("autoTMM").selectedIndex = 1; + $("savepath").disabled = true; } else { - $('autoTMM').selectedIndex = 0; + $("autoTMM").selectedIndex = 0; } - if (pref.torrent_stop_condition === "MetadataReceived") { - $('stopCondition').selectedIndex = 1; - } - else if (pref.torrent_stop_condition === "FilesChecked") { - $('stopCondition').selectedIndex = 2; - } - else { - $('stopCondition').selectedIndex = 0; - } + if (pref.torrent_stop_condition === "MetadataReceived") + $("stopCondition").selectedIndex = 1; + else if (pref.torrent_stop_condition === "FilesChecked") + $("stopCondition").selectedIndex = 2; + else + $("stopCondition").selectedIndex = 0; - if (pref.torrent_content_layout === "Subfolder") { - $('contentLayout').selectedIndex = 1; - } - else if (pref.torrent_content_layout === "NoSubfolder") { - $('contentLayout').selectedIndex = 2; - } - else { - $('contentLayout').selectedIndex = 0; - } + if (pref.torrent_content_layout === "Subfolder") + $("contentLayout").selectedIndex = 1; + else if (pref.torrent_content_layout === "NoSubfolder") + $("contentLayout").selectedIndex = 2; + else + $("contentLayout").selectedIndex = 0; }; - const changeCategorySelect = function(item) { + const changeCategorySelect = (item) => { if (item.value === "\\other") { item.nextElementSibling.hidden = false; item.nextElementSibling.value = ""; item.nextElementSibling.select(); - if ($('autoTMM').selectedIndex === 1) - $('savepath').value = defaultSavePath; + if ($("autoTMM").selectedIndex === 1) + $("savepath").value = defaultSavePath; } else { item.nextElementSibling.hidden = true; const text = item.options[item.selectedIndex].textContent; item.nextElementSibling.value = text; - if ($('autoTMM').selectedIndex === 1) { + if ($("autoTMM").selectedIndex === 1) { const categoryName = item.value; const category = categories[categoryName]; let savePath = defaultSavePath; if (category !== undefined) - savePath = (category['savePath'] !== "") ? category['savePath'] : `${defaultSavePath}/${categoryName}`; - $('savepath').value = savePath; + savePath = (category["savePath"] !== "") ? category["savePath"] : `${defaultSavePath}/${categoryName}`; + $("savepath").value = savePath; } } }; - const changeTMM = function(item) { + const changeTMM = (item) => { if (item.selectedIndex === 1) { - $('savepath').disabled = true; + $("savepath").disabled = true; - const categorySelect = $('categorySelect'); + const categorySelect = $("categorySelect"); const categoryName = categorySelect.options[categorySelect.selectedIndex].value; const category = categories[categoryName]; - $('savepath').value = (category === undefined) ? "" : category['savePath']; + $("savepath").value = (category === undefined) ? "" : category["savePath"]; } else { - $('savepath').disabled = false; - $('savepath').value = defaultSavePath; + $("savepath").disabled = false; + $("savepath").value = defaultSavePath; } }; - $(window).addEventListener("load", function() { + $(window).addEventListener("load", async () => { + // user might load this page directly (via browser magnet handler) + // so wait for crucial initialization to complete + await window.parent.qBittorrent.Client.initializeCaches(); + getPreferences(); getCategories(); }); return exports(); })(); - Object.freeze(window.qBittorrent.Download); diff --git a/src/webui/www/private/scripts/dynamicTable.js b/src/webui/www/private/scripts/dynamicTable.js index c1aec6372..d05cd8c53 100644 --- a/src/webui/www/private/scripts/dynamicTable.js +++ b/src/webui/www/private/scripts/dynamicTable.js @@ -31,14 +31,11 @@ **************************************************************/ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.DynamicTable = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.DynamicTable ??= (() => { + const exports = () => { return { TorrentsTable: TorrentsTable, TorrentPeersTable: TorrentPeersTable, @@ -53,7 +50,9 @@ window.qBittorrent.DynamicTable = (function() { RssArticleTable: RssArticleTable, RssDownloaderRulesTable: RssDownloaderRulesTable, RssDownloaderFeedSelectionTable: RssDownloaderFeedSelectionTable, - RssDownloaderArticlesTable: RssDownloaderArticlesTable + RssDownloaderArticlesTable: RssDownloaderArticlesTable, + TorrentWebseedsTable: TorrentWebseedsTable, + TorrentCreationTasksTable: TorrentCreationTasksTable, }; }; @@ -66,241 +65,305 @@ window.qBittorrent.DynamicTable = (function() { }; let DynamicTableHeaderContextMenuClass = null; - let ProgressColumnWidth = -1; + let progressColumnWidth = -1; const DynamicTable = new Class({ - initialize: function() {}, + initialize: () => {}, - setup: function(dynamicTableDivId, dynamicTableFixedHeaderDivId, contextMenu) { + setup: function(dynamicTableDivId, dynamicTableFixedHeaderDivId, contextMenu, useVirtualList = false) { this.dynamicTableDivId = dynamicTableDivId; this.dynamicTableFixedHeaderDivId = dynamicTableFixedHeaderDivId; - this.fixedTableHeader = $(dynamicTableFixedHeaderDivId).getElements('tr')[0]; - this.hiddenTableHeader = $(dynamicTableDivId).getElements('tr')[0]; - this.tableBody = $(dynamicTableDivId).getElements('tbody')[0]; - this.rows = new Hash(); + this.dynamicTableDiv = document.getElementById(dynamicTableDivId); + this.useVirtualList = useVirtualList && (LocalPreferences.get("use_virtual_list", "false") === "true"); + this.fixedTableHeader = document.querySelector(`#${dynamicTableFixedHeaderDivId} thead tr`); + this.hiddenTableHeader = this.dynamicTableDiv.querySelector(`thead tr`); + this.table = this.dynamicTableDiv.querySelector(`table`); + this.tableBody = this.dynamicTableDiv.querySelector(`tbody`); + this.rowHeight = 26; + this.rows = new Map(); + this.cachedElements = []; this.selectedRows = []; this.columns = []; this.contextMenu = contextMenu; - this.sortedColumn = LocalPreferences.get('sorted_column_' + this.dynamicTableDivId, 0); - this.reverseSort = LocalPreferences.get('reverse_sort_' + this.dynamicTableDivId, '0'); + this.sortedColumn = LocalPreferences.get(`sorted_column_${this.dynamicTableDivId}`, 0); + this.reverseSort = LocalPreferences.get(`reverse_sort_${this.dynamicTableDivId}`, "0"); this.initColumns(); this.loadColumnsOrder(); this.updateTableHeaders(); this.setupCommonEvents(); this.setupHeaderEvents(); this.setupHeaderMenu(); - this.setSortedColumnIcon(this.sortedColumn, null, (this.reverseSort === '1')); + this.setupAltRow(); + this.setupVirtualList(); + }, + + setupVirtualList: function() { + if (!this.useVirtualList) + return; + this.table.style.position = "relative"; + + this.renderedHeight = this.dynamicTableDiv.offsetHeight; + const resizeCallback = window.qBittorrent.Misc.createDebounceHandler(100, () => { + const height = this.dynamicTableDiv.offsetHeight; + const needRerender = this.renderedHeight < height; + this.renderedHeight = height; + if (needRerender) + this.rerender(); + }); + new ResizeObserver(resizeCallback).observe(this.dynamicTableDiv); }, setupCommonEvents: function() { - const scrollFn = function() { - $(this.dynamicTableFixedHeaderDivId).getElements('table')[0].style.left = -$(this.dynamicTableDivId).scrollLeft + 'px'; - }.bind(this); + const tableFixedHeaderDiv = document.getElementById(this.dynamicTableFixedHeaderDivId); - $(this.dynamicTableDivId).addEvent('scroll', scrollFn); + const tableElement = tableFixedHeaderDiv.querySelector("table"); + this.dynamicTableDiv.addEventListener("scroll", (e) => { + tableElement.style.left = `${-this.dynamicTableDiv.scrollLeft}px`; + // rerender on scroll + if (this.useVirtualList) + this.rerender(); + }); - // if the table exists within a panel - if ($(this.dynamicTableDivId).getParent('.panel')) { - const resizeFn = function() { - const panel = $(this.dynamicTableDivId).getParent('.panel'); - let h = panel.getBoundingClientRect().height - $(this.dynamicTableFixedHeaderDivId).getBoundingClientRect().height; - $(this.dynamicTableDivId).style.height = h + 'px'; + this.dynamicTableDiv.addEventListener("click", (e) => { + const tr = e.target.closest("tr"); + if (!tr) { + // clicking on the table body deselects all rows + this.deselectAll(); + this.setRowClass(); + return; + } - // Workaround due to inaccurate calculation of elements heights by browser + if (e.ctrlKey || e.metaKey) { + // CTRL/CMD ⌘ key was pressed + if (this.isRowSelected(tr.rowId)) + this.deselectRow(tr.rowId); + else + this.selectRow(tr.rowId); + } + else if (e.shiftKey && (this.selectedRows.length === 1)) { + // Shift key was pressed + this.selectRows(this.getSelectedRowId(), tr.rowId); + } + else { + // Simple selection + this.deselectAll(); + this.selectRow(tr.rowId); + } + }); - let n = 2; + this.dynamicTableDiv.addEventListener("contextmenu", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; - // is panel vertical scrollbar visible or does panel content not fit? - while (((panel.clientWidth !== panel.offsetWidth) || (panel.clientHeight !== panel.scrollHeight)) && (n > 0)) { - --n; - h -= 0.5; - $(this.dynamicTableDivId).style.height = h + 'px'; + if (!this.isRowSelected(tr.rowId)) { + this.deselectAll(); + this.selectRow(tr.rowId); + } + }, true); + + this.dynamicTableDiv.addEventListener("touchstart", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + if (!this.isRowSelected(tr.rowId)) { + this.deselectAll(); + this.selectRow(tr.rowId); + } + }, { passive: true }); + + this.dynamicTableDiv.addEventListener("keydown", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + switch (e.key) { + case "ArrowUp": { + e.preventDefault(); + this.selectPreviousRow(); + this.dynamicTableDiv.querySelector(".selected").scrollIntoView({ block: "nearest" }); + break; } - - this.lastPanelHeight = panel.getBoundingClientRect().height; - }.bind(this); - - $(this.dynamicTableDivId).getParent('.panel').addEvent('resize', resizeFn); - - this.lastPanelHeight = 0; - - // Workaround. Resize event is called not always (for example it isn't called when browser window changes it's size) - - const checkResizeFn = function() { - const tableDiv = $(this.dynamicTableDivId); - - // dynamicTableDivId is not visible on the UI - if (!tableDiv) { - return; + case "ArrowDown": { + e.preventDefault(); + this.selectNextRow(); + this.dynamicTableDiv.querySelector(".selected").scrollIntoView({ block: "nearest" }); + break; } - - const panel = tableDiv.getParent('.panel'); - if (this.lastPanelHeight !== panel.getBoundingClientRect().height) { - this.lastPanelHeight = panel.getBoundingClientRect().height; - panel.fireEvent('resize'); - } - }.bind(this); - - setInterval(checkResizeFn, 500); - } + } + }); }, setupHeaderEvents: function() { - this.currentHeaderAction = ''; + this.currentHeaderAction = ""; this.canResize = false; - const resetElementBorderStyle = function(el, side) { - if ((side === 'left') || (side !== 'right')) { - el.setStyle('border-left-style', ''); - el.setStyle('border-left-color', ''); - el.setStyle('border-left-width', ''); - } - if ((side === 'right') || (side !== 'left')) { - el.setStyle('border-right-style', ''); - el.setStyle('border-right-color', ''); - el.setStyle('border-right-width', ''); - } + const resetElementBorderStyle = (el, side) => { + if ((side === "left") || (side !== "right")) + el.style.borderLeft = ""; + if ((side === "right") || (side !== "left")) + el.style.borderRight = ""; }; const mouseMoveFn = function(e) { const brect = e.target.getBoundingClientRect(); - const mouseXRelative = e.event.clientX - brect.left; - if (this.currentHeaderAction === '') { + const mouseXRelative = e.clientX - brect.left; + if (this.currentHeaderAction === "") { if ((brect.width - mouseXRelative) < 5) { this.resizeTh = e.target; this.canResize = true; - e.target.getParent("tr").style.cursor = 'col-resize'; + e.target.closest("tr").style.cursor = "col-resize"; } else if ((mouseXRelative < 5) && e.target.getPrevious('[class=""]')) { this.resizeTh = e.target.getPrevious('[class=""]'); this.canResize = true; - e.target.getParent("tr").style.cursor = 'col-resize'; + e.target.closest("tr").style.cursor = "col-resize"; } else { this.canResize = false; - e.target.getParent("tr").style.cursor = ''; + e.target.closest("tr").style.cursor = ""; } } - if (this.currentHeaderAction === 'drag') { + if (this.currentHeaderAction === "drag") { const previousVisibleSibling = e.target.getPrevious('[class=""]'); let borderChangeElement = previousVisibleSibling; - let changeBorderSide = 'right'; + let changeBorderSide = "right"; if (mouseXRelative > (brect.width / 2)) { borderChangeElement = e.target; - this.dropSide = 'right'; + this.dropSide = "right"; } else { - this.dropSide = 'left'; + this.dropSide = "left"; } - e.target.getParent("tr").style.cursor = 'move'; + e.target.closest("tr").style.cursor = "move"; if (!previousVisibleSibling) { // right most column borderChangeElement = e.target; if (mouseXRelative <= (brect.width / 2)) - changeBorderSide = 'left'; + changeBorderSide = "left"; } - borderChangeElement.setStyle('border-' + changeBorderSide + '-style', 'solid'); - borderChangeElement.setStyle('border-' + changeBorderSide + '-color', '#e60'); - borderChangeElement.setStyle('border-' + changeBorderSide + '-width', 'initial'); + const borderStyle = "solid #e60"; + if (changeBorderSide === "left") { + borderChangeElement.style.borderLeft = borderStyle; + borderChangeElement.style.borderLeftWidth = "initial"; + } + else { + borderChangeElement.style.borderRight = borderStyle; + borderChangeElement.style.borderRightWidth = "initial"; + } - resetElementBorderStyle(borderChangeElement, changeBorderSide === 'right' ? 'left' : 'right'); + resetElementBorderStyle(borderChangeElement, ((changeBorderSide === "right") ? "left" : "right")); - borderChangeElement.getSiblings('[class=""]').each(function(el) { + borderChangeElement.getSiblings('[class=""]').each((el) => { resetElementBorderStyle(el); }); } this.lastHoverTh = e.target; - this.lastClientX = e.event.clientX; + this.lastClientX = e.clientX; }.bind(this); - const mouseOutFn = function(e) { + const mouseOutFn = (e) => { resetElementBorderStyle(e.target); - }.bind(this); + }; const onBeforeStart = function(el) { this.clickedTh = el; - this.currentHeaderAction = 'start'; + this.currentHeaderAction = "start"; this.dragMovement = false; this.dragStartX = this.lastClientX; }.bind(this); const onStart = function(el, event) { if (this.canResize) { - this.currentHeaderAction = 'resize'; - this.startWidth = this.resizeTh.getStyle('width').toFloat(); + this.currentHeaderAction = "resize"; + this.startWidth = parseInt(this.resizeTh.style.width, 10); } else { - this.currentHeaderAction = 'drag'; - el.setStyle('background-color', '#C1D5E7'); + this.currentHeaderAction = "drag"; + el.style.backgroundColor = "#C1D5E7"; } }.bind(this); const onDrag = function(el, event) { - if (this.currentHeaderAction === 'resize') { - let width = this.startWidth + (event.page.x - this.dragStartX); + if (this.currentHeaderAction === "resize") { + let width = this.startWidth + (event.event.pageX - this.dragStartX); if (width < 16) width = 16; - this.columns[this.resizeTh.columnName].width = width; - this.updateColumn(this.resizeTh.columnName); + + this._setColumnWidth(this.resizeTh.columnName, width); } }.bind(this); const onComplete = function(el, event) { resetElementBorderStyle(this.lastHoverTh); - el.setStyle('background-color', ''); - if (this.currentHeaderAction === 'resize') - LocalPreferences.set('column_' + this.resizeTh.columnName + '_width_' + this.dynamicTableDivId, this.columns[this.resizeTh.columnName].width); - if ((this.currentHeaderAction === 'drag') && (el !== this.lastHoverTh)) { + el.style.backgroundColor = ""; + if (this.currentHeaderAction === "resize") + this.saveColumnWidth(this.resizeTh.columnName); + if ((this.currentHeaderAction === "drag") && (el !== this.lastHoverTh)) { this.saveColumnsOrder(); - const val = LocalPreferences.get('columns_order_' + this.dynamicTableDivId).split(','); + const val = LocalPreferences.get(`columns_order_${this.dynamicTableDivId}`).split(","); val.erase(el.columnName); let pos = val.indexOf(this.lastHoverTh.columnName); - if (this.dropSide === 'right') + if (this.dropSide === "right") ++pos; val.splice(pos, 0, el.columnName); - LocalPreferences.set('columns_order_' + this.dynamicTableDivId, val.join(',')); + LocalPreferences.set(`columns_order_${this.dynamicTableDivId}`, val.join(",")); this.loadColumnsOrder(); this.updateTableHeaders(); - while (this.tableBody.firstChild) - this.tableBody.removeChild(this.tableBody.firstChild); + this.tableBody.replaceChildren(); this.updateTable(true); + this.reselectRows(this.selectedRowsIds()); } - if (this.currentHeaderAction === 'drag') { + if (this.currentHeaderAction === "drag") { resetElementBorderStyle(el); - el.getSiblings('[class=""]').each(function(el) { + el.getSiblings('[class=""]').each((el) => { resetElementBorderStyle(el); }); } - this.currentHeaderAction = ''; + this.currentHeaderAction = ""; }.bind(this); const onCancel = function(el) { - this.currentHeaderAction = ''; - this.setSortedColumn(el.columnName); + this.currentHeaderAction = ""; + + // ignore click/touch events performed when on the column's resize area + if (!this.canResize) + this.setSortedColumn(el.columnName); }.bind(this); const onTouch = function(e) { const column = e.target.columnName; - this.currentHeaderAction = ''; + this.currentHeaderAction = ""; this.setSortedColumn(column); }.bind(this); - const ths = this.fixedTableHeader.getElements('th'); + const onDoubleClick = function(e) { + e.preventDefault(); + this.currentHeaderAction = ""; - for (let i = 0; i < ths.length; ++i) { - const th = ths[i]; - th.addEvent('mousemove', mouseMoveFn); - th.addEvent('mouseout', mouseOutFn); - th.addEvent('touchend', onTouch); + // only resize when hovering on the column's resize area + if (this.canResize) { + this.currentHeaderAction = "resize"; + this.autoResizeColumn(e.target.columnName); + onComplete(e.target); + } + }.bind(this); + + for (const th of this.getRowCells(this.fixedTableHeader)) { + th.addEventListener("mousemove", mouseMoveFn); + th.addEventListener("mouseout", mouseOutFn); + th.addEventListener("touchend", onTouch, { passive: true }); + th.addEventListener("dblclick", onDoubleClick); th.makeResizable({ modifiers: { - x: '', - y: '' + x: "", + y: "" }, onBeforeStart: onBeforeStart, onStart: onStart, @@ -312,76 +375,177 @@ window.qBittorrent.DynamicTable = (function() { }, setupDynamicTableHeaderContextMenuClass: function() { - if (!DynamicTableHeaderContextMenuClass) { - DynamicTableHeaderContextMenuClass = new Class({ - Extends: window.qBittorrent.ContextMenu.ContextMenu, - updateMenuItems: function() { - for (let i = 0; i < this.dynamicTable.columns.length; ++i) { - if (this.dynamicTable.columns[i].caption === '') - continue; - if (this.dynamicTable.columns[i].visible !== '0') - this.setItemChecked(this.dynamicTable.columns[i].name, true); - else - this.setItemChecked(this.dynamicTable.columns[i].name, false); - } + DynamicTableHeaderContextMenuClass ??= class extends window.qBittorrent.ContextMenu.ContextMenu { + updateMenuItems() { + for (let i = 0; i < this.dynamicTable.columns.length; ++i) { + if (this.dynamicTable.columns[i].caption === "") + continue; + if (this.dynamicTable.columns[i].visible !== "0") + this.setItemChecked(this.dynamicTable.columns[i].name, true); + else + this.setItemChecked(this.dynamicTable.columns[i].name, false); } - }); - } + } + }; }, showColumn: function(columnName, show) { - this.columns[columnName].visible = show ? '1' : '0'; - LocalPreferences.set('column_' + columnName + '_visible_' + this.dynamicTableDivId, show ? '1' : '0'); + this.columns[columnName].visible = show ? "1" : "0"; + LocalPreferences.set(`column_${columnName}_visible_${this.dynamicTableDivId}`, show ? "1" : "0"); this.updateColumn(columnName); + this.columns[columnName].onVisibilityChange?.(columnName); + }, + + _calculateColumnBodyWidth: function(column) { + const columnIndex = this.getColumnPos(column.name); + const bodyColumn = document.getElementById(this.dynamicTableDivId).querySelectorAll("tr>th")[columnIndex]; + const canvas = document.createElement("canvas"); + const context = canvas.getContext("2d"); + context.font = window.getComputedStyle(bodyColumn, null).getPropertyValue("font"); + + const longestTd = { value: "", width: 0 }; + for (const tr of this.getTrs()) { + const tds = this.getRowCells(tr); + const td = tds[columnIndex]; + + const buffer = column.calculateBuffer(tr.rowId); + const valueWidth = context.measureText(td.textContent).width; + if ((valueWidth + buffer) > (longestTd.width)) { + longestTd.value = td.textContent; + longestTd.width = valueWidth + buffer; + } + } + + // slight buffer to prevent clipping + return longestTd.width + 10; + }, + + _setColumnWidth: function(columnName, width) { + const column = this.columns[columnName]; + column.width = width; + + const pos = this.getColumnPos(column.name); + const style = `width: ${column.width}px; ${column.style}`; + this.getRowCells(this.hiddenTableHeader)[pos].style.cssText = style; + this.getRowCells(this.fixedTableHeader)[pos].style.cssText = style; + // rerender on column resize + if (this.useVirtualList) + this.rerender(); + + column.onResize?.(column.name); + }, + + autoResizeColumn: function(columnName) { + const column = this.columns[columnName]; + + let width = column.staticWidth ?? 0; + if (column.staticWidth === null) { + // check required min body width + const bodyTextWidth = this._calculateColumnBodyWidth(column); + + // check required min header width + const columnIndex = this.getColumnPos(column.name); + const headColumn = document.getElementById(this.dynamicTableFixedHeaderDivId).querySelectorAll("tr>th")[columnIndex]; + const canvas = document.createElement("canvas"); + const context = canvas.getContext("2d"); + context.font = window.getComputedStyle(headColumn, null).getPropertyValue("font"); + const columnTitle = column.caption; + const sortedIconWidth = 20; + const headTextWidth = context.measureText(columnTitle).width + sortedIconWidth; + + width = Math.max(headTextWidth, bodyTextWidth); + } + + this._setColumnWidth(column.name, width); + this.saveColumnWidth(column.name); + }, + + saveColumnWidth: function(columnName) { + LocalPreferences.set(`column_${columnName}_width_${this.dynamicTableDivId}`, this.columns[columnName].width); }, setupHeaderMenu: function() { this.setupDynamicTableHeaderContextMenuClass(); - const menuId = this.dynamicTableDivId + '_headerMenu'; + const menuId = `${this.dynamicTableDivId}_headerMenu`; // reuse menu if already exists - const ul = $(menuId) ?? new Element('ul', { - id: menuId, - class: 'contextMenu scrollableMenu' - }); + let ul = document.getElementById(menuId); + if (ul === null) { + ul = document.createElement("ul"); + ul.id = menuId; + ul.className = "contextMenu scrollableMenu"; + } - const createLi = function(columnName, text) { - const html = '' + window.qBittorrent.Misc.escapeHtml(text) + ''; - return new Element('li', { - html: html - }); + const createLi = (columnName, text) => { + const anchor = document.createElement("a"); + anchor.href = `#${columnName}`; + anchor.textContent = text; + + const img = document.createElement("img"); + img.src = "images/checked-completed.svg"; + anchor.prepend(img); + + const listItem = document.createElement("li"); + listItem.appendChild(anchor); + + return listItem; }; - const actions = {}; + const actions = { + autoResizeAction: function(element, ref, action) { + this.autoResizeColumn(element.columnName); + }.bind(this), + + autoResizeAllAction: function(element, ref, action) { + for (const { name } of this.columns) + this.autoResizeColumn(name); + }.bind(this), + }; const onMenuItemClicked = function(element, ref, action) { - this.showColumn(action, this.columns[action].visible === '0'); + this.showColumn(action, this.columns[action].visible === "0"); }.bind(this); - // recreate child nodes when reusing (enables the context menu to work correctly) - if (ul.hasChildNodes()) { - while (ul.firstChild) { - ul.removeChild(ul.lastChild); - } - } + // recreate child elements when reusing (enables the context menu to work correctly) + ul.replaceChildren(); for (let i = 0; i < this.columns.length; ++i) { const text = this.columns[i].caption; - if (text === '') + if (text === "") continue; ul.appendChild(createLi(this.columns[i].name, text)); actions[this.columns[i].name] = onMenuItemClicked; } - ul.inject(document.body); + const createResizeElement = (text, href) => { + const anchor = document.createElement("a"); + anchor.href = href; + anchor.textContent = text; + + const spacer = document.createElement("span"); + spacer.style = "display: inline-block; width: calc(.5em + 16px);"; + anchor.prepend(spacer); + + const li = document.createElement("li"); + li.appendChild(anchor); + return li; + }; + + const autoResizeAllElement = createResizeElement("Resize All", "#autoResizeAllAction"); + const autoResizeElement = createResizeElement("Resize", "#autoResizeAction"); + + ul.firstElementChild.classList.add("separator"); + ul.insertBefore(autoResizeAllElement, ul.firstElementChild); + ul.insertBefore(autoResizeElement, ul.firstElementChild); + document.body.append(ul); this.headerContextMenu = new DynamicTableHeaderContextMenuClass({ - targets: '#' + this.dynamicTableFixedHeaderDivId + ' tr', + targets: `#${this.dynamicTableFixedHeaderDivId} tr th`, actions: actions, menu: menuId, offsets: { - x: -15, + x: 0, y: 2 } }); @@ -389,131 +553,126 @@ window.qBittorrent.DynamicTable = (function() { this.headerContextMenu.dynamicTable = this; }, - initColumns: function() {}, + initColumns: () => {}, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = LocalPreferences.get('column_' + name + '_visible_' + this.dynamicTableDivId, defaultVisible ? '1' : '0'); - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - column['width'] = LocalPreferences.get('column_' + name + '_width_' + this.dynamicTableDivId, defaultWidth); - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["name"] = name; + column["title"] = name; + column["visible"] = LocalPreferences.get(`column_${name}_visible_${this.dynamicTableDivId}`, (defaultVisible ? "1" : "0")); + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + column["width"] = LocalPreferences.get(`column_${name}_width_${this.dynamicTableDivId}`, defaultWidth); + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["isVisible"] = function() { + return (this.visible === "1") && !this.force_hide; + }; + column["onResize"] = null; + column["onVisibilityChange"] = null; + column["staticWidth"] = null; + column["calculateBuffer"] = () => 0; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); }, loadColumnsOrder: function() { const columnsOrder = []; - const val = LocalPreferences.get('columns_order_' + this.dynamicTableDivId); + const val = LocalPreferences.get(`columns_order_${this.dynamicTableDivId}`); if ((val === null) || (val === undefined)) return; - val.split(',').forEach(function(v) { + val.split(",").forEach((v) => { if ((v in this.columns) && (!columnsOrder.contains(v))) columnsOrder.push(v); - }.bind(this)); + }); - for (let i = 0; i < this.columns.length; ++i) + for (let i = 0; i < this.columns.length; ++i) { if (!columnsOrder.contains(this.columns[i].name)) columnsOrder.push(this.columns[i].name); + } for (let i = 0; i < this.columns.length; ++i) this.columns[i] = this.columns[columnsOrder[i]]; }, saveColumnsOrder: function() { - let val = ''; + let val = ""; for (let i = 0; i < this.columns.length; ++i) { if (i > 0) - val += ','; + val += ","; val += this.columns[i].name; } - LocalPreferences.set('columns_order_' + this.dynamicTableDivId, val); + LocalPreferences.set(`columns_order_${this.dynamicTableDivId}`, val); }, updateTableHeaders: function() { this.updateHeader(this.hiddenTableHeader); this.updateHeader(this.fixedTableHeader); + this.setSortedColumnIcon(this.sortedColumn, null, (this.reverseSort === "1")); }, updateHeader: function(header) { - const ths = header.getElements('th'); - + const ths = this.getRowCells(header); for (let i = 0; i < ths.length; ++i) { const th = ths[i]; - th._this = this; - th.setAttribute('title', this.columns[i].caption); - th.set('text', this.columns[i].caption); - th.setAttribute('style', 'width: ' + this.columns[i].width + 'px;' + this.columns[i].style); - th.columnName = this.columns[i].name; - th.addClass('column_' + th.columnName); - if ((this.columns[i].visible === '0') || this.columns[i].force_hide) - th.addClass('invisible'); - else - th.removeClass('invisible'); + if (th.columnName !== this.columns[i].name) { + th.title = this.columns[i].caption; + th.textContent = this.columns[i].caption; + th.style.cssText = `width: ${this.columns[i].width}px; ${this.columns[i].style}`; + th.columnName = this.columns[i].name; + th.className = `column_${th.columnName}`; + th.classList.toggle("invisible", ((this.columns[i].visible === "0") || this.columns[i].force_hide)); + } } }, getColumnPos: function(columnName) { - for (let i = 0; i < this.columns.length; ++i) + for (let i = 0; i < this.columns.length; ++i) { if (this.columns[i].name === columnName) return i; + } return -1; }, - updateColumn: function(columnName) { + updateColumn: function(columnName, updateCellData = false) { + const column = this.columns[columnName]; const pos = this.getColumnPos(columnName); - const visible = ((this.columns[pos].visible !== '0') && !this.columns[pos].force_hide); - const ths = this.hiddenTableHeader.getElements('th'); - const fths = this.fixedTableHeader.getElements('th'); - const trs = this.tableBody.getElements('tr'); - const style = 'width: ' + this.columns[pos].width + 'px;' + this.columns[pos].style; + const ths = this.getRowCells(this.hiddenTableHeader); + const fths = this.getRowCells(this.fixedTableHeader); + const action = column.isVisible() ? "remove" : "add"; + ths[pos].classList[action]("invisible"); + fths[pos].classList[action]("invisible"); - ths[pos].setAttribute('style', style); - fths[pos].setAttribute('style', style); - - if (visible) { - ths[pos].removeClass('invisible'); - fths[pos].removeClass('invisible'); - for (let i = 0; i < trs.length; ++i) - trs[i].getElements('td')[pos].removeClass('invisible'); - } - else { - ths[pos].addClass('invisible'); - fths[pos].addClass('invisible'); - for (let j = 0; j < trs.length; ++j) - trs[j].getElements('td')[pos].addClass('invisible'); - } - if (this.columns[pos].onResize !== null) { - this.columns[pos].onResize(columnName); + for (const tr of this.getTrs()) { + const td = this.getRowCells(tr)[pos]; + td.classList[action]("invisible"); + if (updateCellData) + column.updateTd(td, this.rows.get(tr.rowId)); } }, getSortedColumn: function() { - return LocalPreferences.get('sorted_column_' + this.dynamicTableDivId); + return LocalPreferences.get(`sorted_column_${this.dynamicTableDivId}`); }, /** @@ -524,22 +683,22 @@ window.qBittorrent.DynamicTable = (function() { if (column !== this.sortedColumn) { const oldColumn = this.sortedColumn; this.sortedColumn = column; - this.reverseSort = reverse ?? '0'; + this.reverseSort = reverse ?? "0"; this.setSortedColumnIcon(column, oldColumn, false); } else { // Toggle sort order - this.reverseSort = reverse ?? (this.reverseSort === '0' ? '1' : '0'); - this.setSortedColumnIcon(column, null, (this.reverseSort === '1')); + this.reverseSort = reverse ?? (this.reverseSort === "0" ? "1" : "0"); + this.setSortedColumnIcon(column, null, (this.reverseSort === "1")); } - LocalPreferences.set('sorted_column_' + this.dynamicTableDivId, column); - LocalPreferences.set('reverse_sort_' + this.dynamicTableDivId, this.reverseSort); + LocalPreferences.set(`sorted_column_${this.dynamicTableDivId}`, column); + LocalPreferences.set(`reverse_sort_${this.dynamicTableDivId}`, this.reverseSort); this.updateTable(false); }, setSortedColumnIcon: function(newColumn, oldColumn, isReverse) { - const getCol = function(headerDivId, colName) { - const colElem = $$("#" + headerDivId + " .column_" + colName); + const getCol = (headerDivId, colName) => { + const colElem = document.querySelectorAll(`#${headerDivId} .column_${colName}`); if (colElem.length === 1) return colElem[0]; return null; @@ -547,54 +706,37 @@ window.qBittorrent.DynamicTable = (function() { const colElem = getCol(this.dynamicTableFixedHeaderDivId, newColumn); if (colElem !== null) { - colElem.addClass('sorted'); - if (isReverse) - colElem.addClass('reverse'); - else - colElem.removeClass('reverse'); + colElem.classList.add("sorted"); + colElem.classList.toggle("reverse", isReverse); } const oldColElem = getCol(this.dynamicTableFixedHeaderDivId, oldColumn); if (oldColElem !== null) { - oldColElem.removeClass('sorted'); - oldColElem.removeClass('reverse'); + oldColElem.classList.remove("sorted"); + oldColElem.classList.remove("reverse"); } }, getSelectedRowId: function() { if (this.selectedRows.length > 0) return this.selectedRows[0]; - return ''; + return ""; }, isRowSelected: function(rowId) { return this.selectedRows.contains(rowId); }, - altRow: function() { - if (!MUI.ieLegacySupport) - return; - - const trs = this.tableBody.getElements('tr'); - trs.each(function(el, i) { - if (i % 2) { - el.addClass('alt'); - } - else { - el.removeClass('alt'); - } - }.bind(this)); + setupAltRow: function() { + const useAltRowColors = (LocalPreferences.get("use_alt_row_colors", "true") === "true"); + if (useAltRowColors) + document.getElementById(this.dynamicTableDivId).classList.add("altRowColors"); }, selectAll: function() { this.deselectAll(); - - const trs = this.tableBody.getElements('tr'); - for (let i = 0; i < trs.length; ++i) { - const tr = trs[i]; - this.selectedRows.push(tr.rowId); - if (!tr.hasClass('selected')) - tr.addClass('selected'); - } + for (const row of this.getFilteredAndSortedRows()) + this.selectedRows.push(row.rowId); + this.setRowClass(); }, deselectAll: function() { @@ -621,16 +763,15 @@ window.qBittorrent.DynamicTable = (function() { } let select = false; - const that = this; - this.tableBody.getElements('tr').each(function(tr) { + for (const tr of this.getTrs()) { if ((tr.rowId === rowId1) || (tr.rowId === rowId2)) { select = !select; - that.selectedRows.push(tr.rowId); + this.selectedRows.push(tr.rowId); } else if (select) { - that.selectedRows.push(tr.rowId); + this.selectedRows.push(tr.rowId); } - }); + } this.setRowClass(); this.onSelectedRowChanged(); }, @@ -638,220 +779,257 @@ window.qBittorrent.DynamicTable = (function() { reselectRows: function(rowIds) { this.deselectAll(); this.selectedRows = rowIds.slice(); - this.tableBody.getElements('tr').each(function(tr) { - if (rowIds.includes(tr.rowId)) - tr.addClass('selected'); - }); + this.setRowClass(); }, setRowClass: function() { - const that = this; - this.tableBody.getElements('tr').each(function(tr) { - if (that.isRowSelected(tr.rowId)) - tr.addClass('selected'); - else - tr.removeClass('selected'); - }); + for (const tr of this.getTrs()) + tr.classList.toggle("selected", this.isRowSelected(tr.rowId)); }, - onSelectedRowChanged: function() {}, + onSelectedRowChanged: () => {}, updateRowData: function(data) { // ensure rowId is a string - const rowId = `${data['rowId']}`; + const rowId = `${data["rowId"]}`; let row; if (!this.rows.has(rowId)) { row = { - 'full_data': {}, - 'rowId': rowId + full_data: {}, + rowId: rowId }; this.rows.set(rowId, row); } - else + else { row = this.rows.get(rowId); + } - row['data'] = data; - for (const x in data) - row['full_data'][x] = data[x]; + row["data"] = data; + for (const x in data) { + if (!Object.hasOwn(data, x)) + continue; + row["full_data"][x] = data[x]; + } + }, + + getTrs: function() { + return this.tableBody.querySelectorAll("tr"); + }, + + getRowCells: (tr) => { + return tr.querySelectorAll("td, th"); + }, + + getRow: function(rowId) { + return this.rows.get(rowId); }, getFilteredAndSortedRows: function() { const filteredRows = []; - const rows = this.rows.getValues(); - - for (let i = 0; i < rows.length; ++i) { - filteredRows.push(rows[i]); - filteredRows[rows[i].rowId] = rows[i]; + for (const row of this.getRowValues()) { + filteredRows.push(row); + filteredRows[row.rowId] = row; } - filteredRows.sort(function(row1, row2) { + filteredRows.sort((row1, row2) => { const column = this.columns[this.sortedColumn]; const res = column.compareRows(row1, row2); - if (this.reverseSort === '0') + if (this.reverseSort === "0") return res; else return -res; - }.bind(this)); + }); return filteredRows; }, getTrByRowId: function(rowId) { - const trs = this.tableBody.getElements('tr'); - for (let i = 0; i < trs.length; ++i) - if (trs[i].rowId === rowId) - return trs[i]; - return null; + return Array.prototype.find.call(this.getTrs(), (tr => tr.rowId === rowId)); }, updateTable: function(fullUpdate = false) { const rows = this.getFilteredAndSortedRows(); - for (let i = 0; i < this.selectedRows.length; ++i) + for (let i = 0; i < this.selectedRows.length; ++i) { if (!(this.selectedRows[i] in rows)) { this.selectedRows.splice(i, 1); --i; } - - const trs = this.tableBody.getElements('tr'); - - for (let rowPos = 0; rowPos < rows.length; ++rowPos) { - const rowId = rows[rowPos]['rowId']; - let tr_found = false; - for (let j = rowPos; j < trs.length; ++j) - if (trs[j]['rowId'] === rowId) { - tr_found = true; - if (rowPos === j) - break; - trs[j].inject(trs[rowPos], 'before'); - const tmpTr = trs[j]; - trs.splice(j, 1); - trs.splice(rowPos, 0, tmpTr); - break; - } - if (tr_found) // row already exists in the table - this.updateRow(trs[rowPos], fullUpdate); - else { // else create a new row in the table - const tr = new Element('tr'); - // set tabindex so element receives keydown events - // more info: https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event - tr.setProperty("tabindex", "-1"); - - const rowId = rows[rowPos]['rowId']; - tr.setProperty("data-row-id", rowId); - tr['rowId'] = rowId; - - tr._this = this; - tr.addEvent('contextmenu', function(e) { - if (!this._this.isRowSelected(this.rowId)) { - this._this.deselectAll(); - this._this.selectRow(this.rowId); - } - return true; - }); - tr.addEvent('click', function(e) { - e.stop(); - if (e.control || e.meta) { - // CTRL/CMD ⌘ key was pressed - if (this._this.isRowSelected(this.rowId)) - this._this.deselectRow(this.rowId); - else - this._this.selectRow(this.rowId); - } - else if (e.shift && (this._this.selectedRows.length === 1)) { - // Shift key was pressed - this._this.selectRows(this._this.getSelectedRowId(), this.rowId); - } - else { - // Simple selection - this._this.deselectAll(); - this._this.selectRow(this.rowId); - } - return false; - }); - tr.addEvent('touchstart', function(e) { - if (!this._this.isRowSelected(this.rowId)) { - this._this.deselectAll(); - this._this.selectRow(this.rowId); - } - }); - tr.addEvent('keydown', function(event) { - switch (event.key) { - case "up": - this._this.selectPreviousRow(); - return false; - case "down": - this._this.selectNextRow(); - return false; - } - }); - - this.setupTr(tr); - - for (let k = 0; k < this.columns.length; ++k) { - const td = new Element('td'); - if ((this.columns[k].visible === '0') || this.columns[k].force_hide) - td.addClass('invisible'); - td.injectInside(tr); - } - - // Insert - if (rowPos >= trs.length) { - tr.inject(this.tableBody); - trs.push(tr); - } - else { - tr.inject(trs[rowPos], 'before'); - trs.splice(rowPos, 0, tr); - } - - // Update context menu - if (this.contextMenu) - this.contextMenu.addTarget(tr); - - this.updateRow(tr, true); - } } - let rowPos = rows.length; + if (this.useVirtualList) { + // rerender on table update + this.rerender(rows); + } + else { + const trs = [...this.getTrs()]; - while ((rowPos < trs.length) && (trs.length > 0)) { - trs.pop().destroy(); + for (let rowPos = 0; rowPos < rows.length; ++rowPos) { + const rowId = rows[rowPos].rowId; + let tr_found = false; + for (let j = rowPos; j < trs.length; ++j) { + if (trs[j].rowId === rowId) { + tr_found = true; + if (rowPos === j) + break; + trs[j].inject(trs[rowPos], "before"); + const tmpTr = trs[j]; + trs.splice(j, 1); + trs.splice(rowPos, 0, tmpTr); + break; + } + } + if (tr_found) { // row already exists in the table + this.updateRow(trs[rowPos], fullUpdate); + } + else { // else create a new row in the table + const tr = this.createRowElement(rows[rowPos]); + + // Insert + if (rowPos >= trs.length) { + tr.inject(this.tableBody); + trs.push(tr); + } + else { + tr.inject(trs[rowPos], "before"); + trs.splice(rowPos, 0, tr); + } + + this.updateRow(tr, true); + } + } + + const rowPos = rows.length; + + while ((rowPos < trs.length) && (trs.length > 0)) + trs.pop().destroy(); } }, - setupTr: function(tr) {}, + rerender: function(rows = this.getFilteredAndSortedRows()) { + // set the scrollable height + this.table.style.height = `${rows.length * this.rowHeight}px`; + + // show extra 6 rows at top/bottom to reduce flickering + const extraRowCount = 6; + // how many rows can be shown in the visible area + const visibleRowCount = Math.ceil(this.renderedHeight / this.rowHeight) + (extraRowCount * 2); + // start position of visible rows, offsetted by scrollTop + let startRow = Math.max((Math.trunc(this.dynamicTableDiv.scrollTop / this.rowHeight) - extraRowCount), 0); + // ensure startRow is even + if ((startRow % 2) === 1) + startRow = Math.max(0, startRow - 1); + const endRow = Math.min((startRow + visibleRowCount), rows.length); + + const elements = []; + for (let i = startRow; i < endRow; ++i) { + const row = rows[i]; + if (row === undefined) + continue; + const offset = i * this.rowHeight; + const position = i - startRow; + // reuse existing elements + let element = this.cachedElements[position]; + if (element !== undefined) + this.updateRowElement(element, row.rowId, offset); + else + element = this.cachedElements[position] = this.createRowElement(row, offset); + elements.push(element); + } + this.tableBody.replaceChildren(...elements); + + // update row classes + this.setRowClass(); + + // update visible rows + for (const row of this.tableBody.children) + this.updateRow(row, true); + + // refresh row height based on first row + setTimeout(() => { + if (this.tableBody.firstChild === null) + return; + const tr = this.tableBody.firstChild; + if (this.rowHeight !== tr.offsetHeight) { + this.rowHeight = tr.offsetHeight; + // rerender on row height change + this.rerender(); + } + + }); + }, + + createRowElement: function(row, top = -1) { + const tr = document.createElement("tr"); + // set tabindex so element receives keydown events + // more info: https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event + tr.tabIndex = -1; + + for (let k = 0; k < this.columns.length; ++k) { + const td = document.createElement("td"); + if ((this.columns[k].visible === "0") || this.columns[k].force_hide) + td.classList.add("invisible"); + tr.append(td); + } + + this.updateRowElement(tr, row.rowId, top); + + // update context menu + this.contextMenu?.addTarget(tr); + return tr; + }, + + updateRowElement: function(tr, rowId, top) { + tr.dataset.rowId = rowId; + tr.rowId = rowId; + + tr.className = ""; + + if (this.useVirtualList) { + tr.style.position = "absolute"; + tr.style.top = `${top}px`; + } + }, updateRow: function(tr, fullUpdate) { const row = this.rows.get(tr.rowId); - const data = row[fullUpdate ? 'full_data' : 'data']; + const data = row[fullUpdate ? "full_data" : "data"]; - const tds = tr.getElements('td'); + const tds = this.getRowCells(tr); for (let i = 0; i < this.columns.length; ++i) { - if (Object.hasOwn(data, this.columns[i].dataProperties[0])) + // required due to position: absolute breaks table layout + if (this.useVirtualList) { + tds[i].style.width = `${this.columns[i].width}px`; + tds[i].style.maxWidth = `${this.columns[i].width}px`; + } + if (this.columns[i].dataProperties.some(prop => Object.hasOwn(data, prop))) this.columns[i].updateTd(tds[i], row); } - row['data'] = {}; + row["data"] = {}; }, removeRow: function(rowId) { this.selectedRows.erase(rowId); - const tr = this.getTrByRowId(rowId); - if (tr !== null) { - tr.destroy(); - this.rows.erase(rowId); - return true; + this.rows.delete(rowId); + if (this.useVirtualList) { + this.rerender(); + } + else { + const tr = this.getTrByRowId(rowId); + tr?.destroy(); } - return false; }, clear: function() { this.deselectAll(); - this.rows.empty(); - const trs = this.tableBody.getElements('tr'); - while (trs.length > 0) { - trs.pop().destroy(); + this.rows.clear(); + if (this.useVirtualList) { + this.rerender(); + } + else { + for (const tr of this.getTrs()) + tr.destroy(); } }, @@ -860,17 +1038,29 @@ window.qBittorrent.DynamicTable = (function() { }, getRowIds: function() { - return this.rows.getKeys(); + return this.rows.keys(); + }, + + getRowValues: function() { + return this.rows.values(); + }, + + getRowItems: function() { + return this.rows.entries(); + }, + + getRowSize: function() { + return this.rows.size; }, selectNextRow: function() { - const visibleRows = $(this.dynamicTableDivId).getElements("tbody tr").filter(e => e.getStyle("display") !== "none"); + const visibleRows = Array.prototype.filter.call(this.getTrs(), (tr => !tr.classList.contains("invisible") && (tr.style.display !== "none"))); const selectedRowId = this.getSelectedRowId(); let selectedIndex = -1; for (let i = 0; i < visibleRows.length; ++i) { const row = visibleRows[i]; - if (row.getProperty("data-row-id") === selectedRowId) { + if (row.getAttribute("data-row-id") === selectedRowId) { selectedIndex = i; break; } @@ -881,18 +1071,18 @@ window.qBittorrent.DynamicTable = (function() { this.deselectAll(); const newRow = visibleRows[selectedIndex + 1]; - this.selectRow(newRow.getProperty("data-row-id")); + this.selectRow(newRow.getAttribute("data-row-id")); } }, selectPreviousRow: function() { - const visibleRows = $(this.dynamicTableDivId).getElements("tbody tr").filter(e => e.getStyle("display") !== "none"); + const visibleRows = Array.prototype.filter.call(this.getTrs(), (tr => !tr.classList.contains("invisible") && (tr.style.display !== "none"))); const selectedRowId = this.getSelectedRowId(); let selectedIndex = -1; for (let i = 0; i < visibleRows.length; ++i) { const row = visibleRows[i]; - if (row.getProperty("data-row-id") === selectedRowId) { + if (row.getAttribute("data-row-id") === selectedRowId) { selectedIndex = i; break; } @@ -903,7 +1093,7 @@ window.qBittorrent.DynamicTable = (function() { this.deselectAll(); const newRow = visibleRows[selectedIndex - 1]; - this.selectRow(newRow.getProperty("data-row-id")); + this.selectRow(newRow.getAttribute("data-row-id")); } }, }); @@ -911,132 +1101,150 @@ window.qBittorrent.DynamicTable = (function() { const TorrentsTable = new Class({ Extends: DynamicTable, + setupVirtualList: function() { + this.parent(); + + this.rowHeight = 22; + }, + initColumns: function() { - this.newColumn('priority', '', '#', 30, true); - this.newColumn('state_icon', 'cursor: default', '', 22, true); - this.newColumn('name', '', 'QBT_TR(Name)QBT_TR[CONTEXT=TransferListModel]', 200, true); - this.newColumn('size', '', 'QBT_TR(Size)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('total_size', '', 'QBT_TR(Total Size)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('progress', '', 'QBT_TR(Progress)QBT_TR[CONTEXT=TransferListModel]', 85, true); - this.newColumn('status', '', 'QBT_TR(Status)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('num_seeds', '', 'QBT_TR(Seeds)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('num_leechs', '', 'QBT_TR(Peers)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('dlspeed', '', 'QBT_TR(Down Speed)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('upspeed', '', 'QBT_TR(Up Speed)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('eta', '', 'QBT_TR(ETA)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('ratio', '', 'QBT_TR(Ratio)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('popularity', '', 'QBT_TR(Popularity)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('category', '', 'QBT_TR(Category)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('tags', '', 'QBT_TR(Tags)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('added_on', '', 'QBT_TR(Added On)QBT_TR[CONTEXT=TransferListModel]', 100, true); - this.newColumn('completion_on', '', 'QBT_TR(Completed On)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('tracker', '', 'QBT_TR(Tracker)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('dl_limit', '', 'QBT_TR(Down Limit)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('up_limit', '', 'QBT_TR(Up Limit)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('downloaded', '', 'QBT_TR(Downloaded)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('uploaded', '', 'QBT_TR(Uploaded)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('downloaded_session', '', 'QBT_TR(Session Download)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('uploaded_session', '', 'QBT_TR(Session Upload)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('amount_left', '', 'QBT_TR(Remaining)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('time_active', '', 'QBT_TR(Time Active)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('save_path', '', 'QBT_TR(Save path)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('completed', '', 'QBT_TR(Completed)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('max_ratio', '', 'QBT_TR(Ratio Limit)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('seen_complete', '', 'QBT_TR(Last Seen Complete)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('last_activity', '', 'QBT_TR(Last Activity)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('availability', '', 'QBT_TR(Availability)QBT_TR[CONTEXT=TransferListModel]', 100, false); - this.newColumn('reannounce', '', 'QBT_TR(Reannounce In)QBT_TR[CONTEXT=TransferListModel]', 100, false); + this.newColumn("priority", "", "#", 30, true); + this.newColumn("state_icon", "", "QBT_TR(Status Icon)QBT_TR[CONTEXT=TransferListModel]", 30, false); + this.newColumn("name", "", "QBT_TR(Name)QBT_TR[CONTEXT=TransferListModel]", 200, true); + this.newColumn("size", "", "QBT_TR(Size)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("total_size", "", "QBT_TR(Total Size)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("progress", "", "QBT_TR(Progress)QBT_TR[CONTEXT=TransferListModel]", 85, true); + this.newColumn("status", "", "QBT_TR(Status)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("num_seeds", "", "QBT_TR(Seeds)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("num_leechs", "", "QBT_TR(Peers)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("dlspeed", "", "QBT_TR(Down Speed)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("upspeed", "", "QBT_TR(Up Speed)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("eta", "", "QBT_TR(ETA)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("ratio", "", "QBT_TR(Ratio)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("popularity", "", "QBT_TR(Popularity)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("category", "", "QBT_TR(Category)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("tags", "", "QBT_TR(Tags)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("added_on", "", "QBT_TR(Added On)QBT_TR[CONTEXT=TransferListModel]", 100, true); + this.newColumn("completion_on", "", "QBT_TR(Completed On)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("tracker", "", "QBT_TR(Tracker)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("dl_limit", "", "QBT_TR(Down Limit)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("up_limit", "", "QBT_TR(Up Limit)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("downloaded", "", "QBT_TR(Downloaded)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("uploaded", "", "QBT_TR(Uploaded)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("downloaded_session", "", "QBT_TR(Session Download)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("uploaded_session", "", "QBT_TR(Session Upload)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("amount_left", "", "QBT_TR(Remaining)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("time_active", "", "QBT_TR(Time Active)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("save_path", "", "QBT_TR(Save path)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("completed", "", "QBT_TR(Completed)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("max_ratio", "", "QBT_TR(Ratio Limit)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("seen_complete", "", "QBT_TR(Last Seen Complete)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("last_activity", "", "QBT_TR(Last Activity)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("availability", "", "QBT_TR(Availability)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("download_path", "", "QBT_TR(Incomplete Save Path)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("infohash_v1", "", "QBT_TR(Info Hash v1)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("infohash_v2", "", "QBT_TR(Info Hash v2)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("reannounce", "", "QBT_TR(Reannounce In)QBT_TR[CONTEXT=TransferListModel]", 100, false); + this.newColumn("private", "", "QBT_TR(Private)QBT_TR[CONTEXT=TransferListModel]", 100, false); - this.columns['state_icon'].onclick = ''; - this.columns['state_icon'].dataProperties[0] = 'state'; - - this.columns['num_seeds'].dataProperties.push('num_complete'); - this.columns['num_leechs'].dataProperties.push('num_incomplete'); - this.columns['time_active'].dataProperties.push('seeding_time'); + this.columns["state_icon"].dataProperties[0] = "state"; + this.columns["name"].dataProperties.push("state"); + this.columns["num_seeds"].dataProperties.push("num_complete"); + this.columns["num_leechs"].dataProperties.push("num_incomplete"); + this.columns["time_active"].dataProperties.push("seeding_time"); this.initColumnsFunctions(); }, initColumnsFunctions: function() { - - // state_icon - this.columns['state_icon'].updateTd = function(td, row) { - let state = this.getRowValue(row); - let img_path; + const getStateIconClasses = (state) => { + let stateClass = "stateUnknown"; // normalize states switch (state) { case "forcedDL": case "metaDL": case "forcedMetaDL": case "downloading": - state = "downloading"; - img_path = "images/downloading.svg"; + stateClass = "stateDownloading"; break; case "forcedUP": case "uploading": - state = "uploading"; - img_path = "images/upload.svg"; + stateClass = "stateUploading"; break; case "stalledUP": - state = "stalledUP"; - img_path = "images/stalledUP.svg"; + stateClass = "stateStalledUP"; break; case "stalledDL": - state = "stalledDL"; - img_path = "images/stalledDL.svg"; + stateClass = "stateStalledDL"; break; case "stoppedDL": - state = "torrent-stop"; - img_path = "images/stopped.svg"; + stateClass = "stateStoppedDL"; break; case "stoppedUP": - state = "checked-completed"; - img_path = "images/checked-completed.svg"; + stateClass = "stateStoppedUP"; break; case "queuedDL": case "queuedUP": - state = "queued"; - img_path = "images/queued.svg"; + stateClass = "stateQueued"; break; case "checkingDL": case "checkingUP": case "queuedForChecking": case "checkingResumeData": - state = "force-recheck"; - img_path = "images/force-recheck.svg"; + stateClass = "stateChecking"; break; case "moving": - state = "moving"; - img_path = "images/set-location.svg"; + stateClass = "stateMoving"; break; case "error": case "unknown": case "missingFiles": - state = "error"; - img_path = "images/error.svg"; + stateClass = "stateError"; break; default: break; // do nothing } - if (td.getChildren('img').length > 0) { - const img = td.getChildren('img')[0]; - if (!img.src.includes(img_path)) { - img.set('src', img_path); - img.set('title', state); - } - } - else { - td.adopt(new Element('img', { - 'src': img_path, - 'class': 'stateIcon', - 'title': state - })); - } + return `stateIcon ${stateClass}`; }; + // state_icon + this.columns["state_icon"].updateTd = function(td, row) { + const state = this.getRowValue(row); + let div = td.firstElementChild; + if (div === null) { + div = document.createElement("div"); + td.append(div); + } + + div.className = `${getStateIconClasses(state)} stateIconColumn`; + }; + + this.columns["state_icon"].onVisibilityChange = (columnName) => { + // show state icon in name column only when standalone + // state icon column is hidden + this.updateColumn("name", true); + }; + + // name + this.columns["name"].updateTd = function(td, row) { + const name = this.getRowValue(row, 0); + const state = this.getRowValue(row, 1); + let span = td.firstElementChild; + if (span === null) { + span = document.createElement("span"); + td.append(span); + } + + span.className = this.isStateIconShown() ? `${getStateIconClasses(state)}` : ""; + span.textContent = name; + td.title = name; + }; + + this.columns["name"].isStateIconShown = () => !this.columns["state_icon"].isVisible(); + // status - this.columns['status'].updateTd = function(td, row) { + this.columns["status"].updateTd = function(td, row) { const state = this.getRowValue(row); if (!state) return; @@ -1098,19 +1306,23 @@ window.qBittorrent.DynamicTable = (function() { status = "QBT_TR(Unknown)QBT_TR[CONTEXT=HttpServer]"; } - td.set('text', status); - td.set('title', status); + td.textContent = status; + td.title = status; + }; + + this.columns["status"].compareRows = (row1, row2) => { + return compareNumbers(row1.full_data._statusOrder, row2.full_data._statusOrder); }; // priority - this.columns['priority'].updateTd = function(td, row) { + this.columns["priority"].updateTd = function(td, row) { const queuePos = this.getRowValue(row); - const formattedQueuePos = (queuePos < 1) ? '*' : queuePos; - td.set('text', formattedQueuePos); - td.set('title', formattedQueuePos); + const formattedQueuePos = (queuePos < 1) ? "*" : queuePos; + td.textContent = formattedQueuePos; + td.title = formattedQueuePos; }; - this.columns['priority'].compareRows = function(row1, row2) { + this.columns["priority"].compareRows = function(row1, row2) { let row1_val = this.getRowValue(row1); let row2_val = this.getRowValue(row2); if (row1_val < 1) @@ -1121,72 +1333,69 @@ window.qBittorrent.DynamicTable = (function() { }; // name, category, tags - this.columns['name'].compareRows = function(row1, row2) { + this.columns["name"].compareRows = function(row1, row2) { const row1Val = this.getRowValue(row1); const row2Val = this.getRowValue(row2); - return row1Val.localeCompare(row2Val, undefined, { numeric: true, sensitivity: 'base' }); + return row1Val.localeCompare(row2Val, undefined, { numeric: true, sensitivity: "base" }); }; - this.columns['category'].compareRows = this.columns['name'].compareRows; - this.columns['tags'].compareRows = this.columns['name'].compareRows; + this.columns["category"].compareRows = this.columns["name"].compareRows; + this.columns["tags"].compareRows = this.columns["name"].compareRows; // size, total_size - this.columns['size'].updateTd = function(td, row) { + this.columns["size"].updateTd = function(td, row) { const size = window.qBittorrent.Misc.friendlyUnit(this.getRowValue(row), false); - td.set('text', size); - td.set('title', size); + td.textContent = size; + td.title = size; }; - this.columns['total_size'].updateTd = this.columns['size'].updateTd; + this.columns["total_size"].updateTd = this.columns["size"].updateTd; // progress - this.columns['progress'].updateTd = function(td, row) { + this.columns["progress"].updateTd = function(td, row) { const progress = this.getRowValue(row); - let progressFormatted = (progress * 100).round(1); - if ((progressFormatted === 100.0) && (progress !== 1.0)) - progressFormatted = 99.9; + const progressFormatted = window.qBittorrent.Misc.toFixedPointString((progress * 100), 1); - if (td.getChildren('div').length > 0) { - const div = td.getChildren('div')[0]; + const div = td.firstElementChild; + if (div !== null) { if (td.resized) { td.resized = false; - div.setWidth(ProgressColumnWidth - 5); + div.setWidth(progressColumnWidth - 5); } if (div.getValue() !== progressFormatted) div.setValue(progressFormatted); } else { - if (ProgressColumnWidth < 0) - ProgressColumnWidth = td.offsetWidth; - td.adopt(new window.qBittorrent.ProgressBar.ProgressBar(progressFormatted.toFloat(), { - 'width': ProgressColumnWidth - 5 + if (progressColumnWidth < 0) + progressColumnWidth = td.offsetWidth; + td.append(new window.qBittorrent.ProgressBar.ProgressBar(progressFormatted, { + width: progressColumnWidth - 5 })); td.resized = false; } }; - - this.columns['progress'].onResize = function(columnName) { + this.columns["progress"].staticWidth = 100; + this.columns["progress"].onResize = function(columnName) { const pos = this.getColumnPos(columnName); - const trs = this.tableBody.getElements('tr'); - ProgressColumnWidth = -1; - for (let i = 0; i < trs.length; ++i) { - const td = trs[i].getElements('td')[pos]; - if (ProgressColumnWidth < 0) - ProgressColumnWidth = td.offsetWidth; + progressColumnWidth = -1; + for (const tr of this.getTrs()) { + const td = this.getRowCells(tr)[pos]; + if (progressColumnWidth < 0) + progressColumnWidth = td.offsetWidth; td.resized = true; - this.columns[columnName].updateTd(td, this.rows.get(trs[i].rowId)); + this.columns[columnName].updateTd(td, this.getRow(tr.rowId)); } }.bind(this); // num_seeds - this.columns['num_seeds'].updateTd = function(td, row) { + this.columns["num_seeds"].updateTd = function(td, row) { const num_seeds = this.getRowValue(row, 0); const num_complete = this.getRowValue(row, 1); let value = num_seeds; if (num_complete !== -1) - value += ' (' + num_complete + ')'; - td.set('text', value); - td.set('title', value); + value += ` (${num_complete})`; + td.textContent = value; + td.title = value; }; - this.columns['num_seeds'].compareRows = function(row1, row2) { + this.columns["num_seeds"].compareRows = function(row1, row2) { const num_seeds1 = this.getRowValue(row1, 0); const num_complete1 = this.getRowValue(row1, 1); @@ -1200,257 +1409,297 @@ window.qBittorrent.DynamicTable = (function() { }; // num_leechs - this.columns['num_leechs'].updateTd = this.columns['num_seeds'].updateTd; - this.columns['num_leechs'].compareRows = this.columns['num_seeds'].compareRows; + this.columns["num_leechs"].updateTd = this.columns["num_seeds"].updateTd; + this.columns["num_leechs"].compareRows = this.columns["num_seeds"].compareRows; // dlspeed - this.columns['dlspeed'].updateTd = function(td, row) { + this.columns["dlspeed"].updateTd = function(td, row) { const speed = window.qBittorrent.Misc.friendlyUnit(this.getRowValue(row), true); - td.set('text', speed); - td.set('title', speed); + td.textContent = speed; + td.title = speed; }; // upspeed - this.columns['upspeed'].updateTd = this.columns['dlspeed'].updateTd; + this.columns["upspeed"].updateTd = this.columns["dlspeed"].updateTd; // eta - this.columns['eta'].updateTd = function(td, row) { + this.columns["eta"].updateTd = function(td, row) { const eta = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row), window.qBittorrent.Misc.MAX_ETA); - td.set('text', eta); - td.set('title', eta); + td.textContent = eta; + td.title = eta; }; // ratio - this.columns['ratio'].updateTd = function(td, row) { + this.columns["ratio"].updateTd = function(td, row) { const ratio = this.getRowValue(row); - const string = (ratio === -1) ? '∞' : window.qBittorrent.Misc.toFixedPointString(ratio, 2); - td.set('text', string); - td.set('title', string); + const string = (ratio === -1) ? "∞" : window.qBittorrent.Misc.toFixedPointString(ratio, 2); + td.textContent = string; + td.title = string; }; // popularity - this.columns['popularity'].updateTd = function(td, row) { + this.columns["popularity"].updateTd = function(td, row) { const value = this.getRowValue(row); - const popularity = (value === -1) ? '∞' : window.qBittorrent.Misc.toFixedPointString(value, 2); - td.set('text', popularity); - td.set('title', popularity); + const popularity = (value === -1) ? "∞" : window.qBittorrent.Misc.toFixedPointString(value, 2); + td.textContent = popularity; + td.title = popularity; }; // added on - this.columns['added_on'].updateTd = function(td, row) { + this.columns["added_on"].updateTd = function(td, row) { const date = new Date(this.getRowValue(row) * 1000).toLocaleString(); - td.set('text', date); - td.set('title', date); + td.textContent = date; + td.title = date; }; // completion_on - this.columns['completion_on'].updateTd = function(td, row) { + this.columns["completion_on"].updateTd = function(td, row) { const val = this.getRowValue(row); if ((val === 0xffffffff) || (val < 0)) { - td.set('text', ''); - td.set('title', ''); + td.textContent = ""; + td.title = ""; } else { const date = new Date(this.getRowValue(row) * 1000).toLocaleString(); - td.set('text', date); - td.set('title', date); + td.textContent = date; + td.title = date; } }; + // tracker + this.columns["tracker"].updateTd = function(td, row) { + const value = this.getRowValue(row); + const tracker = displayFullURLTrackerColumn ? value : window.qBittorrent.Misc.getHost(value); + td.textContent = tracker; + td.title = value; + }; + // dl_limit, up_limit - this.columns['dl_limit'].updateTd = function(td, row) { + this.columns["dl_limit"].updateTd = function(td, row) { const speed = this.getRowValue(row); if (speed === 0) { - td.set('text', '∞'); - td.set('title', '∞'); + td.textContent = "∞"; + td.title = "∞"; } else { const formattedSpeed = window.qBittorrent.Misc.friendlyUnit(speed, true); - td.set('text', formattedSpeed); - td.set('title', formattedSpeed); + td.textContent = formattedSpeed; + td.title = formattedSpeed; } }; - this.columns['up_limit'].updateTd = this.columns['dl_limit'].updateTd; + this.columns["up_limit"].updateTd = this.columns["dl_limit"].updateTd; // downloaded, uploaded, downloaded_session, uploaded_session, amount_left - this.columns['downloaded'].updateTd = this.columns['size'].updateTd; - this.columns['uploaded'].updateTd = this.columns['size'].updateTd; - this.columns['downloaded_session'].updateTd = this.columns['size'].updateTd; - this.columns['uploaded_session'].updateTd = this.columns['size'].updateTd; - this.columns['amount_left'].updateTd = this.columns['size'].updateTd; + this.columns["downloaded"].updateTd = this.columns["size"].updateTd; + this.columns["uploaded"].updateTd = this.columns["size"].updateTd; + this.columns["downloaded_session"].updateTd = this.columns["size"].updateTd; + this.columns["uploaded_session"].updateTd = this.columns["size"].updateTd; + this.columns["amount_left"].updateTd = this.columns["size"].updateTd; // time active - this.columns['time_active'].updateTd = function(td, row) { + this.columns["time_active"].updateTd = function(td, row) { const activeTime = this.getRowValue(row, 0); const seedingTime = this.getRowValue(row, 1); const time = (seedingTime > 0) - ? ('QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=TransferListDelegate]' - .replace('%1', window.qBittorrent.Misc.friendlyDuration(activeTime)) - .replace('%2', window.qBittorrent.Misc.friendlyDuration(seedingTime))) + ? ("QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=TransferListDelegate]" + .replace("%1", window.qBittorrent.Misc.friendlyDuration(activeTime)) + .replace("%2", window.qBittorrent.Misc.friendlyDuration(seedingTime))) : window.qBittorrent.Misc.friendlyDuration(activeTime); - td.set('text', time); - td.set('title', time); + td.textContent = time; + td.title = time; }; // completed - this.columns['completed'].updateTd = this.columns['size'].updateTd; + this.columns["completed"].updateTd = this.columns["size"].updateTd; // max_ratio - this.columns['max_ratio'].updateTd = this.columns['ratio'].updateTd; + this.columns["max_ratio"].updateTd = this.columns["ratio"].updateTd; // seen_complete - this.columns['seen_complete'].updateTd = this.columns['completion_on'].updateTd; + this.columns["seen_complete"].updateTd = this.columns["completion_on"].updateTd; // last_activity - this.columns['last_activity'].updateTd = function(td, row) { + this.columns["last_activity"].updateTd = function(td, row) { const val = this.getRowValue(row); if (val < 1) { - td.set('text', '∞'); - td.set('title', '∞'); + td.textContent = "∞"; + td.title = "∞"; } else { - const formattedVal = 'QBT_TR(%1 ago)QBT_TR[CONTEXT=TransferListDelegate]'.replace('%1', window.qBittorrent.Misc.friendlyDuration((new Date() / 1000) - val)); - td.set('text', formattedVal); - td.set('title', formattedVal); + const formattedVal = "QBT_TR(%1 ago)QBT_TR[CONTEXT=TransferListDelegate]".replace("%1", window.qBittorrent.Misc.friendlyDuration((new Date() / 1000) - val)); + td.textContent = formattedVal; + td.title = formattedVal; } }; // availability - this.columns['availability'].updateTd = function(td, row) { + this.columns["availability"].updateTd = function(td, row) { const value = window.qBittorrent.Misc.toFixedPointString(this.getRowValue(row), 3); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; + }; + + // infohash_v1 + this.columns["infohash_v1"].updateTd = function(td, row) { + const sourceInfohashV1 = this.getRowValue(row); + const infohashV1 = (sourceInfohashV1 !== "") ? sourceInfohashV1 : "QBT_TR(N/A)QBT_TR[CONTEXT=TransferListDelegate]"; + td.textContent = infohashV1; + td.title = infohashV1; + }; + + // infohash_v2 + this.columns["infohash_v2"].updateTd = function(td, row) { + const sourceInfohashV2 = this.getRowValue(row); + const infohashV2 = (sourceInfohashV2 !== "") ? sourceInfohashV2 : "QBT_TR(N/A)QBT_TR[CONTEXT=TransferListDelegate]"; + td.textContent = infohashV2; + td.title = infohashV2; }; // reannounce - this.columns['reannounce'].updateTd = function(td, row) { + this.columns["reannounce"].updateTd = function(td, row) { const time = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row)); - td.set('text', time); - td.set('title', time); + td.textContent = time; + td.title = time; + }; + + // private + this.columns["private"].updateTd = function(td, row) { + const hasMetadata = row["full_data"].has_metadata; + const isPrivate = this.getRowValue(row); + const string = hasMetadata + ? (isPrivate + ? "QBT_TR(Yes)QBT_TR[CONTEXT=PropertiesWidget]" + : "QBT_TR(No)QBT_TR[CONTEXT=PropertiesWidget]") + : "QBT_TR(N/A)QBT_TR[CONTEXT=PropertiesWidget]"; + td.textContent = string; + td.title = string; }; }, - applyFilter: function(row, filterName, categoryHash, tagHash, trackerHash, filterTerms) { - const state = row['full_data'].state; - const name = row['full_data'].name.toLowerCase(); + applyFilter: (row, filterName, category, tag, tracker, filterTerms) => { + const state = row["full_data"].state; let inactive = false; switch (filterName) { - case 'downloading': - if ((state !== 'downloading') && !state.includes('DL')) + case "downloading": + if ((state !== "downloading") && !state.includes("DL")) return false; break; - case 'seeding': - if ((state !== 'uploading') && (state !== 'forcedUP') && (state !== 'stalledUP') && (state !== 'queuedUP') && (state !== 'checkingUP')) + case "seeding": + if ((state !== "uploading") && (state !== "forcedUP") && (state !== "stalledUP") && (state !== "queuedUP") && (state !== "checkingUP")) return false; break; - case 'completed': - if ((state !== 'uploading') && !state.includes('UP')) + case "completed": + if ((state !== "uploading") && !state.includes("UP")) return false; break; - case 'stopped': - if (!state.includes('stopped')) + case "stopped": + if (!state.includes("stopped")) return false; break; - case 'running': - if (state.includes('stopped')) + case "running": + if (state.includes("stopped")) return false; break; - case 'stalled': - if ((state !== 'stalledUP') && (state !== 'stalledDL')) + case "stalled": + if ((state !== "stalledUP") && (state !== "stalledDL")) return false; break; - case 'stalled_uploading': - if (state !== 'stalledUP') + case "stalled_uploading": + if (state !== "stalledUP") return false; break; - case 'stalled_downloading': - if (state !== 'stalledDL') + case "stalled_downloading": + if (state !== "stalledDL") return false; break; - case 'inactive': + case "inactive": inactive = true; // fallthrough - case 'active': { + case "active": { let r; - if (state === 'stalledDL') - r = (row['full_data'].upspeed > 0); + if (state === "stalledDL") + r = (row["full_data"].upspeed > 0); else - r = (state === 'metaDL') || (state === 'forcedMetaDL') || (state === 'downloading') || (state === 'forcedDL') || (state === 'uploading') || (state === 'forcedUP'); + r = (state === "metaDL") || (state === "forcedMetaDL") || (state === "downloading") || (state === "forcedDL") || (state === "uploading") || (state === "forcedUP"); if (r === inactive) return false; break; } - case 'checking': - if ((state !== 'checkingUP') && (state !== 'checkingDL') && (state !== 'checkingResumeData')) + case "checking": + if ((state !== "checkingUP") && (state !== "checkingDL") && (state !== "checkingResumeData")) return false; break; - case 'moving': - if (state !== 'moving') + case "moving": + if (state !== "moving") return false; break; - case 'errored': - if ((state !== 'error') && (state !== 'unknown') && (state !== 'missingFiles')) + case "errored": + if ((state !== "error") && (state !== "unknown") && (state !== "missingFiles")) return false; break; } - switch (categoryHash) { + switch (category) { case CATEGORIES_ALL: break; // do nothing + case CATEGORIES_UNCATEGORIZED: - if (row['full_data'].category.length !== 0) + if (row["full_data"].category.length > 0) return false; break; // do nothing - default: + + default: { if (!useSubcategories) { - if (categoryHash !== window.qBittorrent.Client.genHash(row['full_data'].category)) + if (category !== row["full_data"].category) return false; } else { - const selectedCategory = category_list.get(categoryHash); + const selectedCategory = categoryMap.get(category); if (selectedCategory !== undefined) { - const selectedCategoryName = selectedCategory.name + "/"; - const torrentCategoryName = row['full_data'].category + "/"; + const selectedCategoryName = `${category}/`; + const torrentCategoryName = `${row["full_data"].category}/`; if (!torrentCategoryName.startsWith(selectedCategoryName)) return false; } } break; + } } - switch (tagHash) { + switch (tag) { case TAGS_ALL: break; // do nothing case TAGS_UNTAGGED: - if (row['full_data'].tags.length !== 0) + if (row["full_data"].tags.length > 0) return false; break; // do nothing default: { - const tagHashes = row['full_data'].tags.split(', ').map(tag => window.qBittorrent.Client.genHash(tag)); - if (!tagHashes.contains(tagHash)) + const tags = row["full_data"].tags.split(", "); + if (!tags.contains(tag)) return false; break; } } - const trackerHashInt = Number.parseInt(trackerHash, 10); - switch (trackerHashInt) { + switch (tracker) { case TRACKERS_ALL: break; // do nothing + case TRACKERS_TRACKERLESS: - if (row['full_data'].trackers_count !== 0) + if (row["full_data"].trackers_count > 0) return false; break; + default: { - const tracker = trackerList.get(trackerHashInt); - if (tracker) { + const trackerTorrentMap = trackerMap.get(tracker); + if (trackerTorrentMap !== undefined) { let found = false; - for (const torrents of tracker.trackerTorrentMap.values()) { - if (torrents.includes(row['full_data'].rowId)) { + for (const torrents of trackerTorrentMap.values()) { + if (torrents.has(row["full_data"].rowId)) { found = true; break; } @@ -1463,12 +1712,14 @@ window.qBittorrent.DynamicTable = (function() { } if ((filterTerms !== undefined) && (filterTerms !== null)) { + const filterBy = document.getElementById("torrentsFilterSelect").value; + const textToSearch = row["full_data"][filterBy].toLowerCase(); if (filterTerms instanceof RegExp) { - if (!filterTerms.test(name)) + if (!filterTerms.test(textToSearch)) return false; } else { - if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(name, filterTerms)) + if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(textToSearch, filterTerms)) return false; } } @@ -1476,24 +1727,33 @@ window.qBittorrent.DynamicTable = (function() { return true; }, - getFilteredTorrentsNumber: function(filterName, categoryHash, tagHash, trackerHash) { + getFilteredTorrentsNumber: function(filterName, category, tag, tracker) { let cnt = 0; - const rows = this.rows.getValues(); - for (let i = 0; i < rows.length; ++i) { - if (this.applyFilter(rows[i], filterName, categoryHash, tagHash, trackerHash, null)) + for (const row of this.rows.values()) { + if (this.applyFilter(row, filterName, category, tag, tracker, null)) ++cnt; } return cnt; }, - getFilteredTorrentsHashes: function(filterName, categoryHash, tagHash, trackerHash) { + getFilteredTorrentsHashes: function(filterName, category, tag, tracker) { const rowsHashes = []; - const rows = this.rows.getValues(); + const useRegex = document.getElementById("torrentsFilterRegexBox").checked; + const filterText = document.getElementById("torrentsFilterInput").value.trim().toLowerCase(); + let filterTerms; + try { + filterTerms = (filterText.length > 0) + ? (useRegex ? new RegExp(filterText) : filterText.split(" ")) + : null; + } + catch (e) { // SyntaxError: Invalid regex pattern + return filteredRows; + } - for (let i = 0; i < rows.length; ++i) { - if (this.applyFilter(rows[i], filterName, categoryHash, tagHash, trackerHash, null)) - rowsHashes.push(rows[i]['rowId']); + for (const row of this.rows.values()) { + if (this.applyFilter(row, filterName, category, tag, tracker, filterTerms)) + rowsHashes.push(row["rowId"]); } return rowsHashes; @@ -1502,52 +1762,73 @@ window.qBittorrent.DynamicTable = (function() { getFilteredAndSortedRows: function() { const filteredRows = []; - const rows = this.rows.getValues(); - const useRegex = $('torrentsFilterRegexBox').checked; - const filterText = $('torrentsFilterInput').value.trim().toLowerCase(); - const filterTerms = (filterText.length > 0) - ? (useRegex ? new RegExp(filterText) : filterText.split(" ")) - : null; + const useRegex = $("torrentsFilterRegexBox").checked; + const filterText = $("torrentsFilterInput").value.trim().toLowerCase(); + let filterTerms; + try { + filterTerms = (filterText.length > 0) + ? (useRegex ? new RegExp(filterText) : filterText.split(" ")) + : null; + } + catch (e) { // SyntaxError: Invalid regex pattern + return filteredRows; + } - for (let i = 0; i < rows.length; ++i) { - if (this.applyFilter(rows[i], selected_filter, selected_category, selectedTag, selectedTracker, filterTerms)) { - filteredRows.push(rows[i]); - filteredRows[rows[i].rowId] = rows[i]; + for (const row of this.rows.values()) { + if (this.applyFilter(row, selectedStatus, selectedCategory, selectedTag, selectedTracker, filterTerms)) { + filteredRows.push(row); + filteredRows[row.rowId] = row; } } - filteredRows.sort(function(row1, row2) { + filteredRows.sort((row1, row2) => { const column = this.columns[this.sortedColumn]; const res = column.compareRows(row1, row2); - if (this.reverseSort === '0') + if (this.reverseSort === "0") return res; else return -res; - }.bind(this)); + }); return filteredRows; }, - setupTr: function(tr) { - tr.addEvent('dblclick', function(e) { - e.stop(); - this._this.deselectAll(); - this._this.selectRow(this.rowId); - const row = this._this.rows.get(this.rowId); - const state = row['full_data'].state; - if (state.includes('stopped')) + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("dblclick", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + this.deselectAll(); + this.selectRow(tr.rowId); + const row = this.getRow(tr.rowId); + const state = row["full_data"].state; + + const prefKey = + (state !== "uploading") + && (state !== "stoppedUP") + && (state !== "forcedUP") + && (state !== "stalledUP") + && (state !== "queuedUP") + && (state !== "checkingUP") + ? "dblclick_download" + : "dblclick_complete"; + + if (LocalPreferences.get(prefKey, "1") !== "1") + return true; + + if (state.includes("stopped")) startFN(); else stopFN(); - return true; }); - tr.addClass("torrentsTableContextMenuTarget"); }, getCurrentTorrentID: function() { return this.getSelectedRowId(); }, - onSelectedRowChanged: function() { + onSelectedRowChanged: () => { updatePropertiesPanel(); } }); @@ -1556,59 +1837,47 @@ window.qBittorrent.DynamicTable = (function() { Extends: DynamicTable, initColumns: function() { - this.newColumn('country', '', 'QBT_TR(Country/Region)QBT_TR[CONTEXT=PeerListWidget]', 22, true); - this.newColumn('ip', '', 'QBT_TR(IP)QBT_TR[CONTEXT=PeerListWidget]', 80, true); - this.newColumn('port', '', 'QBT_TR(Port)QBT_TR[CONTEXT=PeerListWidget]', 35, true); - this.newColumn('connection', '', 'QBT_TR(Connection)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('flags', '', 'QBT_TR(Flags)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('client', '', 'QBT_TR(Client)QBT_TR[CONTEXT=PeerListWidget]', 140, true); - this.newColumn('peer_id_client', '', 'QBT_TR(Peer ID Client)QBT_TR[CONTEXT=PeerListWidget]', 60, false); - this.newColumn('progress', '', 'QBT_TR(Progress)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('dl_speed', '', 'QBT_TR(Down Speed)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('up_speed', '', 'QBT_TR(Up Speed)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('downloaded', '', 'QBT_TR(Downloaded)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('uploaded', '', 'QBT_TR(Uploaded)QBT_TR[CONTEXT=PeerListWidget]', 50, true); - this.newColumn('relevance', '', 'QBT_TR(Relevance)QBT_TR[CONTEXT=PeerListWidget]', 30, true); - this.newColumn('files', '', 'QBT_TR(Files)QBT_TR[CONTEXT=PeerListWidget]', 100, true); + this.newColumn("country", "", "QBT_TR(Country/Region)QBT_TR[CONTEXT=PeerListWidget]", 22, true); + this.newColumn("ip", "", "QBT_TR(IP)QBT_TR[CONTEXT=PeerListWidget]", 80, true); + this.newColumn("port", "", "QBT_TR(Port)QBT_TR[CONTEXT=PeerListWidget]", 35, true); + this.newColumn("connection", "", "QBT_TR(Connection)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("flags", "", "QBT_TR(Flags)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("client", "", "QBT_TR(Client)QBT_TR[CONTEXT=PeerListWidget]", 140, true); + this.newColumn("peer_id_client", "", "QBT_TR(Peer ID Client)QBT_TR[CONTEXT=PeerListWidget]", 60, false); + this.newColumn("progress", "", "QBT_TR(Progress)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("dl_speed", "", "QBT_TR(Down Speed)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("up_speed", "", "QBT_TR(Up Speed)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("downloaded", "", "QBT_TR(Downloaded)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("uploaded", "", "QBT_TR(Uploaded)QBT_TR[CONTEXT=PeerListWidget]", 50, true); + this.newColumn("relevance", "", "QBT_TR(Relevance)QBT_TR[CONTEXT=PeerListWidget]", 30, true); + this.newColumn("files", "", "QBT_TR(Files)QBT_TR[CONTEXT=PeerListWidget]", 100, true); - this.columns['country'].dataProperties.push('country_code'); - this.columns['flags'].dataProperties.push('flags_desc'); + 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) { + this.columns["country"].updateTd = function(td, row) { const country = this.getRowValue(row, 0); const country_code = this.getRowValue(row, 1); - if (!country_code) { - if (td.getChildren('img').length > 0) - td.getChildren('img')[0].destroy(); - return; + let span = td.firstElementChild; + if (span === null) { + span = document.createElement("span"); + span.classList.add("flags"); + td.append(span); } - const img_path = 'images/flags/' + country_code + '.svg'; - - if (td.getChildren('img').length > 0) { - const img = td.getChildren('img')[0]; - img.set('src', img_path); - img.set('class', 'flags'); - img.set('alt', country); - img.set('title', country); - } - else - td.adopt(new Element('img', { - 'src': img_path, - 'class': 'flags', - 'alt': country, - 'title': country - })); + span.style.backgroundImage = `url('images/flags/${country_code || "xx"}.svg')`; + span.textContent = country; + td.title = country; }; // ip - this.columns['ip'].compareRows = function(row1, row2) { + this.columns["ip"].compareRows = function(row1, row2) { const ip1 = this.getRowValue(row1); const ip2 = this.getRowValue(row2); @@ -1624,53 +1893,51 @@ window.qBittorrent.DynamicTable = (function() { }; // flags - this.columns['flags'].updateTd = function(td, row) { - td.set('text', this.getRowValue(row, 0)); - td.set('title', this.getRowValue(row, 1)); + this.columns["flags"].updateTd = function(td, row) { + td.textContent = this.getRowValue(row, 0); + td.title = this.getRowValue(row, 1); }; // progress - this.columns['progress'].updateTd = function(td, row) { + this.columns["progress"].updateTd = function(td, row) { const progress = this.getRowValue(row); - let progressFormatted = (progress * 100).round(1); - if ((progressFormatted === 100.0) && (progress !== 1.0)) - progressFormatted = 99.9; - progressFormatted += "%"; - td.set('text', progressFormatted); - td.set('title', progressFormatted); + const progressFormatted = `${window.qBittorrent.Misc.toFixedPointString((progress * 100), 1)}%`; + td.textContent = progressFormatted; + td.title = progressFormatted; }; // dl_speed, up_speed - this.columns['dl_speed'].updateTd = function(td, row) { + this.columns["dl_speed"].updateTd = function(td, row) { const speed = this.getRowValue(row); if (speed === 0) { - td.set('text', ''); - td.set('title', ''); + td.textContent = ""; + td.title = ""; } else { const formattedSpeed = window.qBittorrent.Misc.friendlyUnit(speed, true); - td.set('text', formattedSpeed); - td.set('title', formattedSpeed); + td.textContent = formattedSpeed; + td.title = formattedSpeed; } }; - this.columns['up_speed'].updateTd = this.columns['dl_speed'].updateTd; + this.columns["up_speed"].updateTd = this.columns["dl_speed"].updateTd; // downloaded, uploaded - this.columns['downloaded'].updateTd = function(td, row) { + this.columns["downloaded"].updateTd = function(td, row) { const downloaded = window.qBittorrent.Misc.friendlyUnit(this.getRowValue(row), false); - td.set('text', downloaded); - td.set('title', downloaded); + td.textContent = downloaded; + td.title = downloaded; }; - this.columns['uploaded'].updateTd = this.columns['downloaded'].updateTd; + this.columns["uploaded"].updateTd = this.columns["downloaded"].updateTd; // relevance - this.columns['relevance'].updateTd = this.columns['progress'].updateTd; + this.columns["relevance"].updateTd = this.columns["progress"].updateTd; + this.columns["relevance"].staticWidth = 100; // files - this.columns['files'].updateTd = function(td, row) { + this.columns["files"].updateTd = function(td, row) { const value = this.getRowValue(row, 0); - td.set('text', value.replace(/\n/g, ';')); - td.set('title', value); + td.textContent = value.replace(/\n/g, ";"); + td.title = value; }; } @@ -1680,12 +1947,13 @@ window.qBittorrent.DynamicTable = (function() { Extends: DynamicTable, initColumns: function() { - this.newColumn('fileName', '', 'QBT_TR(Name)QBT_TR[CONTEXT=SearchResultsTable]', 500, true); - this.newColumn('fileSize', '', 'QBT_TR(Size)QBT_TR[CONTEXT=SearchResultsTable]', 100, true); - this.newColumn('nbSeeders', '', 'QBT_TR(Seeders)QBT_TR[CONTEXT=SearchResultsTable]', 100, true); - this.newColumn('nbLeechers', '', 'QBT_TR(Leechers)QBT_TR[CONTEXT=SearchResultsTable]', 100, true); - this.newColumn('siteUrl', '', 'QBT_TR(Search engine)QBT_TR[CONTEXT=SearchResultsTable]', 250, true); - this.newColumn('pubDate', '', 'QBT_TR(Published On)QBT_TR[CONTEXT=SearchResultsTable]', 200, true); + this.newColumn("fileName", "", "QBT_TR(Name)QBT_TR[CONTEXT=SearchResultsTable]", 500, true); + this.newColumn("fileSize", "", "QBT_TR(Size)QBT_TR[CONTEXT=SearchResultsTable]", 100, true); + this.newColumn("nbSeeders", "", "QBT_TR(Seeders)QBT_TR[CONTEXT=SearchResultsTable]", 100, true); + this.newColumn("nbLeechers", "", "QBT_TR(Leechers)QBT_TR[CONTEXT=SearchResultsTable]", 100, true); + this.newColumn("engineName", "", "QBT_TR(Engine)QBT_TR[CONTEXT=SearchResultsTable]", 100, true); + this.newColumn("siteUrl", "", "QBT_TR(Engine URL)QBT_TR[CONTEXT=SearchResultsTable]", 250, true); + this.newColumn("pubDate", "", "QBT_TR(Published On)QBT_TR[CONTEXT=SearchResultsTable]", 200, true); this.initColumnsFunctions(); }, @@ -1693,30 +1961,30 @@ window.qBittorrent.DynamicTable = (function() { initColumnsFunctions: function() { const displaySize = function(td, row) { const size = window.qBittorrent.Misc.friendlyUnit(this.getRowValue(row), false); - td.set('text', size); - td.set('title', size); + td.textContent = size; + td.title = size; }; const displayNum = function(td, row) { const value = this.getRowValue(row); const formattedValue = (value === "-1") ? "Unknown" : value; - td.set('text', formattedValue); - td.set('title', formattedValue); + td.textContent = formattedValue; + td.title = formattedValue; }; const displayDate = function(td, row) { const value = this.getRowValue(row) * 1000; - const formattedValue = (isNaN(value) || (value <= 0)) ? "" : (new Date(value).toLocaleString()); - td.set('text', formattedValue); - td.set('title', formattedValue); + const formattedValue = (Number.isNaN(value) || (value <= 0)) ? "" : (new Date(value).toLocaleString()); + td.textContent = formattedValue; + td.title = formattedValue; }; - this.columns['fileSize'].updateTd = displaySize; - this.columns['nbSeeders'].updateTd = displayNum; - this.columns['nbLeechers'].updateTd = displayNum; - this.columns['pubDate'].updateTd = displayDate; + this.columns["fileSize"].updateTd = displaySize; + this.columns["nbSeeders"].updateTd = displayNum; + this.columns["nbLeechers"].updateTd = displayNum; + this.columns["pubDate"].updateTd = displayDate; }, getFilteredAndSortedRows: function() { - const getSizeFilters = function() { + const getSizeFilters = () => { let minSize = (window.qBittorrent.Search.searchSizeFilter.min > 0.00) ? (window.qBittorrent.Search.searchSizeFilter.min * Math.pow(1024, window.qBittorrent.Search.searchSizeFilter.minUnit)) : 0.00; let maxSize = (window.qBittorrent.Search.searchSizeFilter.max > 0.00) ? (window.qBittorrent.Search.searchSizeFilter.max * Math.pow(1024, window.qBittorrent.Search.searchSizeFilter.maxUnit)) : 0.00; @@ -1732,7 +2000,7 @@ window.qBittorrent.DynamicTable = (function() { }; }; - const getSeedsFilters = function() { + const getSeedsFilters = () => { let minSeeds = (window.qBittorrent.Search.searchSeedsFilter.min > 0) ? window.qBittorrent.Search.searchSeedsFilter.min : 0; let maxSeeds = (window.qBittorrent.Search.searchSeedsFilter.max > 0) ? window.qBittorrent.Search.searchSeedsFilter.max : 0; @@ -1749,16 +2017,14 @@ window.qBittorrent.DynamicTable = (function() { }; let filteredRows = []; - const rows = this.rows.getValues(); const searchTerms = window.qBittorrent.Search.searchText.pattern.toLowerCase().split(" "); const filterTerms = window.qBittorrent.Search.searchText.filterPattern.toLowerCase().split(" "); const sizeFilters = getSizeFilters(); const seedsFilters = getSeedsFilters(); - const searchInTorrentName = $('searchInTorrentName').get('value') === "names"; + const searchInTorrentName = $("searchInTorrentName").value === "names"; if (searchInTorrentName || (filterTerms.length > 0) || (window.qBittorrent.Search.searchSizeFilter.min > 0.00) || (window.qBittorrent.Search.searchSizeFilter.max > 0.00)) { - for (let i = 0; i < rows.length; ++i) { - const row = rows[i]; + for (const row of this.getRowValues()) { if (searchInTorrentName && !window.qBittorrent.Misc.containsAllTerms(row.full_data.fileName, searchTerms)) continue; @@ -1777,74 +2043,146 @@ window.qBittorrent.DynamicTable = (function() { } } else { - filteredRows = rows; + filteredRows = [...this.getRowValues()]; } - filteredRows.sort(function(row1, row2) { + filteredRows.sort((row1, row2) => { const column = this.columns[this.sortedColumn]; const res = column.compareRows(row1, row2); - if (this.reverseSort === '0') + if (this.reverseSort === "0") return res; else return -res; - }.bind(this)); + }); return filteredRows; }, - - setupTr: function(tr) { - tr.addClass("searchTableRow"); - } }); const SearchPluginsTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('fullName', '', 'QBT_TR(Name)QBT_TR[CONTEXT=SearchPluginsTable]', 175, true); - this.newColumn('version', '', 'QBT_TR(Version)QBT_TR[CONTEXT=SearchPluginsTable]', 100, true); - this.newColumn('url', '', 'QBT_TR(Url)QBT_TR[CONTEXT=SearchPluginsTable]', 175, true); - this.newColumn('enabled', '', 'QBT_TR(Enabled)QBT_TR[CONTEXT=SearchPluginsTable]', 100, true); + this.newColumn("fullName", "", "QBT_TR(Name)QBT_TR[CONTEXT=SearchPluginsTable]", 175, true); + this.newColumn("version", "", "QBT_TR(Version)QBT_TR[CONTEXT=SearchPluginsTable]", 100, true); + this.newColumn("url", "", "QBT_TR(Url)QBT_TR[CONTEXT=SearchPluginsTable]", 175, true); + this.newColumn("enabled", "", "QBT_TR(Enabled)QBT_TR[CONTEXT=SearchPluginsTable]", 100, true); this.initColumnsFunctions(); }, initColumnsFunctions: function() { - this.columns['enabled'].updateTd = function(td, row) { + this.columns["enabled"].updateTd = function(td, row) { const value = this.getRowValue(row); if (value) { - td.set('text', 'QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]'); - td.set('title', 'QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]'); - td.getParent("tr").addClass("green"); - td.getParent("tr").removeClass("red"); + td.textContent = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]"; + td.title = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]"; + td.closest("tr").classList.add("green"); + td.closest("tr").classList.remove("red"); } else { - td.set('text', 'QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]'); - td.set('title', 'QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]'); - td.getParent("tr").addClass("red"); - td.getParent("tr").removeClass("green"); + td.textContent = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]"; + td.title = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]"; + td.closest("tr").classList.add("red"); + td.closest("tr").classList.remove("green"); } }; }, - - setupTr: function(tr) { - tr.addClass("searchPluginsTableRow"); - } }); const TorrentTrackersTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('tier', '', 'QBT_TR(Tier)QBT_TR[CONTEXT=TrackerListWidget]', 35, true); - this.newColumn('url', '', 'QBT_TR(URL)QBT_TR[CONTEXT=TrackerListWidget]', 250, true); - this.newColumn('status', '', 'QBT_TR(Status)QBT_TR[CONTEXT=TrackerListWidget]', 125, true); - this.newColumn('peers', '', 'QBT_TR(Peers)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); - this.newColumn('seeds', '', 'QBT_TR(Seeds)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); - this.newColumn('leeches', '', 'QBT_TR(Leeches)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); - this.newColumn('downloaded', '', 'QBT_TR(Times Downloaded)QBT_TR[CONTEXT=TrackerListWidget]', 100, true); - this.newColumn('message', '', 'QBT_TR(Message)QBT_TR[CONTEXT=TrackerListWidget]', 250, true); + this.newColumn("tier", "", "QBT_TR(Tier)QBT_TR[CONTEXT=TrackerListWidget]", 35, true); + this.newColumn("url", "", "QBT_TR(URL)QBT_TR[CONTEXT=TrackerListWidget]", 250, true); + this.newColumn("status", "", "QBT_TR(Status)QBT_TR[CONTEXT=TrackerListWidget]", 125, true); + this.newColumn("peers", "", "QBT_TR(Peers)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); + this.newColumn("seeds", "", "QBT_TR(Seeds)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); + this.newColumn("leeches", "", "QBT_TR(Leeches)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); + this.newColumn("downloaded", "", "QBT_TR(Times Downloaded)QBT_TR[CONTEXT=TrackerListWidget]", 100, true); + this.newColumn("message", "", "QBT_TR(Message)QBT_TR[CONTEXT=TrackerListWidget]", 250, true); + + this.initColumnsFunctions(); }, + + initColumnsFunctions: function() { + const naturalSort = function(row1, row2) { + if (!row1.full_data._sortable || !row2.full_data._sortable) + return 0; + + const value1 = this.getRowValue(row1); + const value2 = this.getRowValue(row2); + return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); + }; + + this.columns["url"].compareRows = naturalSort; + this.columns["status"].compareRows = naturalSort; + this.columns["message"].compareRows = naturalSort; + + const sortNumbers = function(row1, row2) { + if (!row1.full_data._sortable || !row2.full_data._sortable) + return 0; + + const value1 = this.getRowValue(row1); + const value2 = this.getRowValue(row2); + if (value1 === "") + return -1; + if (value2 === "") + return 1; + return compareNumbers(value1, value2); + }; + + this.columns["tier"].compareRows = sortNumbers; + + const sortMixed = function(row1, row2) { + if (!row1.full_data._sortable || !row2.full_data._sortable) + return 0; + + const value1 = this.getRowValue(row1); + const value2 = this.getRowValue(row2); + if (value1 === "QBT_TR(N/A)QBT_TR[CONTEXT=TrackerListWidget]") + return -1; + if (value2 === "QBT_TR(N/A)QBT_TR[CONTEXT=TrackerListWidget]") + return 1; + return compareNumbers(value1, value2); + }; + + this.columns["peers"].compareRows = sortMixed; + this.columns["seeds"].compareRows = sortMixed; + this.columns["leeches"].compareRows = sortMixed; + this.columns["downloaded"].compareRows = sortMixed; + + this.columns["status"].updateTd = function(td, row) { + let statusClass = "trackerUnknown"; + const status = this.getRowValue(row); + switch (status) { + case "QBT_TR(Disabled)QBT_TR[CONTEXT=TrackerListWidget]": + statusClass = "trackerDisabled"; + break; + case "QBT_TR(Not contacted yet)QBT_TR[CONTEXT=TrackerListWidget]": + statusClass = "trackerNotContacted"; + break; + case "QBT_TR(Working)QBT_TR[CONTEXT=TrackerListWidget]": + statusClass = "trackerWorking"; + break; + case "QBT_TR(Updating...)QBT_TR[CONTEXT=TrackerListWidget]": + statusClass = "trackerUpdating"; + break; + case "QBT_TR(Not working)QBT_TR[CONTEXT=TrackerListWidget]": + statusClass = "trackerNotWorking"; + break; + } + + for (const c of [...td.classList]) { + if (c.startsWith("tracker")) + td.classList.remove(c); + } + td.classList.add(statusClass); + td.textContent = status; + td.title = status; + }; + } }); const BulkRenameTorrentFilesTable = new Class({ @@ -1858,11 +2196,17 @@ window.qBittorrent.DynamicTable = (function() { prevReverseSort: null, fileTree: new window.qBittorrent.FileTree.FileTree(), + setupVirtualList: function() { + this.parent(); + + this.rowHeight = 29; + }, + populateTable: function(root) { this.fileTree.setRoot(root); - root.children.each(function(node) { + root.children.each((node) => { this._addNodeToTable(node, 0); - }.bind(this)); + }); }, _addNodeToTable: function(node, depth) { @@ -1888,9 +2232,9 @@ window.qBittorrent.DynamicTable = (function() { this.updateRowData(node.data); } - node.children.each(function(child) { + node.children.each((child) => { this._addNodeToTable(child, depth + 1); - }.bind(this)); + }); }, getRoot: function() { @@ -1902,7 +2246,7 @@ window.qBittorrent.DynamicTable = (function() { }, getRow: function(node) { - const rowId = this.fileTree.getRowId(node); + const rowId = this.fileTree.getRowId(node).toString(); return this.rows.get(rowId); }, @@ -1914,12 +2258,12 @@ window.qBittorrent.DynamicTable = (function() { initColumns: function() { // Blocks saving header width (because window width isn't saved) - LocalPreferences.remove('column_' + "checked" + '_width_' + this.dynamicTableDivId); - LocalPreferences.remove('column_' + "original" + '_width_' + this.dynamicTableDivId); - LocalPreferences.remove('column_' + "renamed" + '_width_' + this.dynamicTableDivId); - this.newColumn('checked', '', '', 50, true); - this.newColumn('original', '', 'QBT_TR(Original)QBT_TR[CONTEXT=TrackerListWidget]', 270, true); - this.newColumn('renamed', '', 'QBT_TR(Renamed)QBT_TR[CONTEXT=TrackerListWidget]', 220, true); + LocalPreferences.remove(`column_checked_width_${this.dynamicTableDivId}`); + LocalPreferences.remove(`column_original_width_${this.dynamicTableDivId}`); + LocalPreferences.remove(`column_renamed_width_${this.dynamicTableDivId}`); + this.newColumn("checked", "", "", 50, true); + this.newColumn("original", "", "QBT_TR(Original)QBT_TR[CONTEXT=TrackerListWidget]", 270, true); + this.newColumn("renamed", "", "QBT_TR(Renamed)QBT_TR[CONTEXT=TrackerListWidget]", 220, true); this.initColumnsFunctions(); }, @@ -1928,30 +2272,30 @@ window.qBittorrent.DynamicTable = (function() { * Toggles the global checkbox and all checkboxes underneath */ toggleGlobalCheckbox: function() { - const checkbox = $('rootMultiRename_cb'); - const checkboxes = $$('input.RenamingCB'); + const checkbox = document.getElementById("rootMultiRename_cb"); + const checkboxes = document.querySelectorAll("input.RenamingCB"); for (let i = 0; i < checkboxes.length; ++i) { - const node = this.getNode(i); - if (checkbox.checked || checkbox.indeterminate) { - let cb = checkboxes[i]; + const cb = checkboxes[i]; cb.checked = true; cb.indeterminate = false; cb.state = "checked"; - node.checked = 0; - node.full_data.checked = node.checked; } else { - let cb = checkboxes[i]; + const cb = checkboxes[i]; cb.checked = false; cb.indeterminate = false; cb.state = "unchecked"; - node.checked = 1; - node.full_data.checked = node.checked; } } + const nodes = this.fileTree.toArray(); + for (const node of nodes) { + node.checked = (checkbox.checked || checkbox.indeterminate) ? 0 : 1; + node.full_data.checked = node.checked; + } + this.updateGlobalCheckbox(); }, @@ -1959,33 +2303,20 @@ window.qBittorrent.DynamicTable = (function() { const node = this.getNode(rowId); node.checked = checkState; node.full_data.checked = checkState; - const checkbox = $(`cbRename${rowId}`); + const checkbox = document.getElementById(`cbRename${rowId}`); checkbox.checked = node.checked === 0; checkbox.state = checkbox.checked ? "checked" : "unchecked"; - for (let i = 0; i < node.children.length; ++i) { + for (let i = 0; i < node.children.length; ++i) this.toggleNodeTreeCheckbox(node.children[i].rowId, checkState); - } }, updateGlobalCheckbox: function() { - const checkbox = $('rootMultiRename_cb'); - const checkboxes = $$('input.RenamingCB'); - const isAllChecked = function() { - for (let i = 0; i < checkboxes.length; ++i) { - if (!checkboxes[i].checked) - return false; - } - return true; - }; - const isAllUnchecked = function() { - for (let i = 0; i < checkboxes.length; ++i) { - if (checkboxes[i].checked) - return false; - } - return true; - }; - if (isAllChecked()) { + const checkbox = document.getElementById("rootMultiRename_cb"); + const nodes = this.fileTree.toArray(); + const isAllChecked = nodes.every((node) => node.checked === 0); + const isAllUnchecked = (() => nodes.every((node) => node.checked !== 0)); + if (isAllChecked) { checkbox.state = "checked"; checkbox.indeterminate = false; checkbox.checked = true; @@ -2006,140 +2337,114 @@ window.qBittorrent.DynamicTable = (function() { const that = this; // checked - this.columns['checked'].updateTd = function(td, row) { + this.columns["checked"].updateTd = (td, row) => { const id = row.rowId; - const value = this.getRowValue(row); - - const treeImg = new Element('img', { - src: 'images/L.gif', - styles: { - 'margin-bottom': -2 - } - }); - const checkbox = new Element('input'); - checkbox.set('type', 'checkbox'); - checkbox.set('id', 'cbRename' + id); - checkbox.set('data-id', id); - checkbox.set('class', 'RenamingCB'); - checkbox.addEvent('click', function(e) { - const node = that.getNode(id); - node.checked = e.target.checked ? 0 : 1; - node.full_data.checked = node.checked; - that.updateGlobalCheckbox(); - that.onRowSelectionChange(node); - e.stopPropagation(); - }); - checkbox.checked = (value === 0); - checkbox.state = checkbox.checked ? "checked" : "unchecked"; - checkbox.indeterminate = false; - td.adopt(treeImg, checkbox); - }; - - // original - this.columns['original'].updateTd = function(td, row) { - const id = row.rowId; - const fileNameId = 'filesTablefileName' + id; const node = that.getNode(id); - if (node.isFolder) { - const value = this.getRowValue(row); - const dirImgId = 'renameTableDirImg' + id; - if ($(dirImgId)) { - // just update file name - $(fileNameId).set('text', value); - } - else { - const span = new Element('span', { - text: value, - id: fileNameId - }); - const dirImg = new Element('img', { - src: 'images/directory.svg', - styles: { - 'width': 15, - 'padding-right': 5, - 'margin-bottom': -3, - 'margin-left': (node.depth * 20) - }, - id: dirImgId - }); - const html = dirImg.outerHTML + span.outerHTML; - td.set('html', html); - } + if (td.firstElementChild === null) { + const treeImg = document.createElement("img"); + treeImg.src = "images/L.gif"; + treeImg.style.marginBottom = "-2px"; + td.append(treeImg); } - else { // is file - const value = this.getRowValue(row); - const span = new Element('span', { - text: value, - id: fileNameId, - styles: { - 'margin-left': ((node.depth + 1) * 20) - } + + let checkbox = td.children[1]; + if (checkbox === undefined) { + checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.className = "RenamingCB"; + checkbox.addEventListener("click", (e) => { + const id = e.target.dataset.id; + const node = that.getNode(id); + node.checked = e.target.checked ? 0 : 1; + node.full_data.checked = node.checked; + that.updateGlobalCheckbox(); + that.onRowSelectionChange(node); + e.stopPropagation(); }); - td.set('html', span.outerHTML); + checkbox.indeterminate = false; + td.append(checkbox); } + checkbox.id = `cbRename${id}`; + checkbox.dataset.id = id; + checkbox.checked = (node.checked === 0); + checkbox.state = checkbox.checked ? "checked" : "unchecked"; + }; + this.columns["checked"].staticWidth = 50; + + // original + this.columns["original"].updateTd = function(td, row) { + const id = row.rowId; + const node = that.getNode(id); + const value = this.getRowValue(row); + + let dirImg = td.children[0]; + if (dirImg === undefined) { + dirImg = document.createElement("img"); + dirImg.src = "images/directory.svg"; + dirImg.style.width = "20px"; + dirImg.style.paddingRight = "5px"; + dirImg.style.marginBottom = "-3px"; + td.append(dirImg); + } + if (node.isFolder) { + dirImg.style.display = "inline"; + dirImg.style.marginLeft = `${node.depth * 20}px`; + } + else { + dirImg.style.display = "none"; + } + + let span = td.children[1]; + if (span === undefined) { + span = document.createElement("span"); + td.append(span); + } + span.textContent = value; + span.style.marginLeft = node.isFolder ? "0" : `${(node.depth + 1) * 20}px`; }; // renamed - this.columns['renamed'].updateTd = function(td, row) { + this.columns["renamed"].updateTd = (td, row) => { const id = row.rowId; - const fileNameRenamedId = 'filesTablefileRenamed' + id; - const value = this.getRowValue(row); + const fileNameRenamedId = `filesTablefileRenamed${id}`; + const node = that.getNode(id); - const span = new Element('span', { - text: value, - id: fileNameRenamedId, - }); - td.set('html', span.outerHTML); + let span = td.firstElementChild; + if (span === null) { + span = document.createElement("span"); + td.append(span); + } + span.id = fileNameRenamedId; + span.textContent = node.renamed; }; }, - onRowSelectionChange: function(row) {}, + onRowSelectionChange: (row) => {}, - selectRow: function() { + selectRow: () => { return; }, reselectRows: function(rowIds) { - const that = this; this.deselectAll(); - this.tableBody.getElements('tr').each(function(tr) { + for (const tr of this.getTrs()) { if (rowIds.includes(tr.rowId)) { - const node = that.getNode(tr.rowId); + const node = this.getNode(tr.rowId); node.checked = 0; node.full_data.checked = 0; - const checkbox = tr.children[0].getElement('input'); + const checkbox = tr.querySelector(".RenamingCB"); checkbox.state = "checked"; checkbox.indeterminate = false; checkbox.checked = true; } - }); - + } this.updateGlobalCheckbox(); }, - altRow: function() { - let addClass = false; - const trs = this.tableBody.getElements('tr'); - trs.each(function(tr) { - if (tr.hasClass("invisible")) - return; - - if (addClass) { - tr.addClass("alt"); - tr.removeClass("nonAlt"); - } - else { - tr.removeClass("alt"); - tr.addClass("nonAlt"); - } - addClass = !addClass; - }.bind(this)); - }, - _sortNodesByColumn: function(nodes, column) { - nodes.sort(function(row1, row2) { + nodes.sort((row1, row2) => { // list folders before files when sorting by name if (column.name === "original") { const node1 = this.getNode(row1.data.rowId); @@ -2151,21 +2456,21 @@ window.qBittorrent.DynamicTable = (function() { } const res = column.compareRows(row1, row2); - return (this.reverseSort === '0') ? res : -res; - }.bind(this)); + return (this.reverseSort === "0") ? res : -res; + }); - nodes.each(function(node) { + nodes.each((node) => { if (node.children.length > 0) this._sortNodesByColumn(node.children, column); - }.bind(this)); + }); }, _filterNodes: function(node, filterTerms, filteredRows) { if (node.isFolder) { - const childAdded = node.children.reduce(function(acc, child) { + const childAdded = node.children.reduce((acc, child) => { // we must execute the function before ORing w/ acc or we'll stop checking child nodes after the first successful match return (this._filterNodes(child, filterTerms, filteredRows) || acc); - }.bind(this), false); + }, false); if (childAdded) { const row = this.getRow(node); @@ -2184,8 +2489,8 @@ window.qBittorrent.DynamicTable = (function() { }, setFilter: function(text) { - const filterTerms = text.trim().toLowerCase().split(' '); - if ((filterTerms.length === 1) && (filterTerms[0] === '')) + const filterTerms = text.trim().toLowerCase().split(" "); + if ((filterTerms.length === 1) && (filterTerms[0] === "")) this.filterTerms = []; else this.filterTerms = filterTerms; @@ -2195,35 +2500,35 @@ window.qBittorrent.DynamicTable = (function() { if (this.getRoot() === null) return []; - const generateRowsSignature = function(rows) { - const rowsData = rows.map(function(row) { - return row.full_data; - }); + const generateRowsSignature = () => { + const rowsData = []; + for (const { full_data } of this.getRowValues()) + rowsData.push(full_data); return JSON.stringify(rowsData); }; const getFilteredRows = function() { if (this.filterTerms.length === 0) { const nodeArray = this.fileTree.toArray(); - const filteredRows = nodeArray.map(function(node) { + const filteredRows = nodeArray.map((node) => { return this.getRow(node); - }.bind(this)); + }); return filteredRows; } const filteredRows = []; - this.getRoot().children.each(function(child) { + this.getRoot().children.each((child) => { this._filterNodes(child, this.filterTerms, filteredRows); - }.bind(this)); + }); filteredRows.reverse(); return filteredRows; }.bind(this); const hasRowsChanged = function(rowsString, prevRowsStringString) { const rowsChanged = (rowsString !== prevRowsStringString); - const isFilterTermsChanged = this.filterTerms.reduce(function(acc, term, index) { + const isFilterTermsChanged = this.filterTerms.reduce((acc, term, index) => { return (acc || (term !== this.prevFilterTerms[index])); - }.bind(this), false); + }, false); const isFilterChanged = ((this.filterTerms.length !== this.prevFilterTerms.length) || ((this.filterTerms.length > 0) && isFilterTermsChanged)); const isSortedColumnChanged = (this.prevSortedColumn !== this.sortedColumn); @@ -2232,10 +2537,9 @@ window.qBittorrent.DynamicTable = (function() { return (rowsChanged || isFilterChanged || isSortedColumnChanged || isReverseSortChanged); }.bind(this); - const rowsString = generateRowsSignature(this.rows); - if (!hasRowsChanged(rowsString, this.prevRowsString)) { + const rowsString = generateRowsSignature(); + if (!hasRowsChanged(rowsString, this.prevRowsString)) return this.prevFilteredRows; - } // sort, then filter const column = this.columns[this.sortedColumn]; @@ -2258,16 +2562,13 @@ window.qBittorrent.DynamicTable = (function() { row.full_data.remaining = (row.full_data.size * (1.0 - (row.full_data.progress / 100))); }, - setupTr: function(tr) { - tr.addEvent('keydown', function(event) { - switch (event.key) { - case "left": - qBittorrent.PropFiles.collapseFolder(this._this.getSelectedRowId()); - return false; - case "right": - qBittorrent.PropFiles.expandFolder(this._this.getSelectedRowId()); - return false; - } + setupCommonEvents: function() { + const headerDiv = document.getElementById("bulkRenameFilesTableFixedHeaderDiv"); + this.dynamicTableDiv.addEventListener("scroll", (e) => { + headerDiv.scrollLeft = this.dynamicTableDiv.scrollLeft; + // rerender on scroll + if (this.useVirtualList) + this.rerender(); }); } }); @@ -2283,17 +2584,121 @@ window.qBittorrent.DynamicTable = (function() { prevReverseSort: null, fileTree: new window.qBittorrent.FileTree.FileTree(), + initialize: function() { + this.collapseState = new Map(); + }, + + isCollapsed: function(id) { + return this.collapseState.get(id)?.collapsed ?? false; + }, + + expandNode: function(id) { + const state = this.collapseState.get(id); + if (state !== undefined) + state.collapsed = false; + this._updateNodeState(id, false); + }, + + collapseNode: function(id) { + const state = this.collapseState.get(id); + if (state !== undefined) + state.collapsed = true; + this._updateNodeState(id, true); + }, + + expandAllNodes: function() { + for (const [key, _] of this.collapseState) + this.expandNode(key); + }, + + collapseAllNodes: function() { + for (const [key, state] of this.collapseState) { + // collapse all nodes except root + if (state.depth >= 1) + this.collapseNode(key); + } + }, + + _updateNodeVisibility: (node, shouldHide) => { + const span = document.getElementById(`filesTablefileName${node.rowId}`); + // span won't exist if row has been filtered out + if (span === null) + return; + const tr = span.parentElement.parentElement; + tr.classList.toggle("invisible", shouldHide); + }, + + _updateNodeCollapseIcon: (node, isCollapsed) => { + const span = document.getElementById(`filesTablefileName${node.rowId}`); + // span won't exist if row has been filtered out + if (span === null) + return; + const td = span.parentElement; + + // rotate the collapse icon + const collapseIcon = td.firstElementChild; + collapseIcon.classList.toggle("rotate", isCollapsed); + }, + + _updateNodeState: function(id, shouldCollapse) { + // collapsed rows will be filtered out when using virtual list + if (this.useVirtualList) + return; + const node = this.getNode(id); + if (!node.isFolder) + return; + + this._updateNodeCollapseIcon(node, shouldCollapse); + + for (const child of node.children) + this._updateNodeVisibility(child, shouldCollapse); + }, + + clear: function() { + this.parent(); + + this.collapseState.clear(); + }, + + setupVirtualList: function() { + this.parent(); + + this.rowHeight = 29.5; + }, + + expandFolder: function(id) { + const node = this.getNode(id); + if (node.isFolder) + this.expandNode(node); + }, + + collapseFolder: function(id) { + const node = this.getNode(id); + if (node.isFolder) + this.collapseNode(node); + }, + + isAllCheckboxesChecked: function() { + return this.fileTree.toArray().every((node) => node.checked === 1); + }, + + isAllCheckboxesUnchecked: function() { + return this.fileTree.toArray().every((node) => node.checked !== 1); + }, + populateTable: function(root) { this.fileTree.setRoot(root); - root.children.each(function(node) { + root.children.each((node) => { this._addNodeToTable(node, 0); - }.bind(this)); + }); }, _addNodeToTable: function(node, depth) { node.depth = depth; if (node.isFolder) { + if (!this.collapseState.has(node.rowId)) + this.collapseState.set(node.rowId, { depth: depth, collapsed: depth > 0 }); const data = { rowId: node.rowId, size: node.size, @@ -2308,7 +2713,7 @@ window.qBittorrent.DynamicTable = (function() { node.data = data; node.full_data = data; - this.updateRowData(data); + this.updateRowData(data, depth); } else { node.data.rowId = node.rowId; @@ -2316,9 +2721,9 @@ window.qBittorrent.DynamicTable = (function() { this.updateRowData(node.data); } - node.children.each(function(child) { + node.children.each((child) => { this._addNodeToTable(child, depth + 1); - }.bind(this)); + }); }, getRoot: function() { @@ -2330,18 +2735,23 @@ window.qBittorrent.DynamicTable = (function() { }, getRow: function(node) { - const rowId = this.fileTree.getRowId(node); + const rowId = this.fileTree.getRowId(node).toString(); return this.rows.get(rowId); }, + getRowFileId: function(rowId) { + const row = this.rows.get(rowId); + return row?.full_data.fileId; + }, + initColumns: function() { - this.newColumn('checked', '', '', 50, true); - this.newColumn('name', '', 'QBT_TR(Name)QBT_TR[CONTEXT=TrackerListWidget]', 300, true); - this.newColumn('size', '', 'QBT_TR(Total Size)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); - this.newColumn('progress', '', 'QBT_TR(Progress)QBT_TR[CONTEXT=TrackerListWidget]', 100, true); - this.newColumn('priority', '', 'QBT_TR(Download Priority)QBT_TR[CONTEXT=TrackerListWidget]', 150, true); - this.newColumn('remaining', '', 'QBT_TR(Remaining)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); - this.newColumn('availability', '', 'QBT_TR(Availability)QBT_TR[CONTEXT=TrackerListWidget]', 75, true); + this.newColumn("checked", "", "", 50, true); + this.newColumn("name", "", "QBT_TR(Name)QBT_TR[CONTEXT=TrackerListWidget]", 300, true); + this.newColumn("size", "", "QBT_TR(Total Size)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); + this.newColumn("progress", "", "QBT_TR(Progress)QBT_TR[CONTEXT=TrackerListWidget]", 100, true); + this.newColumn("priority", "", "QBT_TR(Download Priority)QBT_TR[CONTEXT=TrackerListWidget]", 150, true); + this.newColumn("remaining", "", "QBT_TR(Remaining)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); + this.newColumn("availability", "", "QBT_TR(Availability)QBT_TR[CONTEXT=TrackerListWidget]", 75, true); this.initColumnsFunctions(); }, @@ -2350,146 +2760,139 @@ window.qBittorrent.DynamicTable = (function() { const that = this; const displaySize = function(td, row) { const size = window.qBittorrent.Misc.friendlyUnit(this.getRowValue(row), false); - td.set('text', size); - td.set('title', size); + td.textContent = size; + td.title = size; }; const displayPercentage = function(td, row) { const value = window.qBittorrent.Misc.friendlyPercentage(this.getRowValue(row)); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; // checked - this.columns['checked'].updateTd = function(td, row) { + this.columns["checked"].updateTd = function(td, row) { const id = row.rowId; const value = this.getRowValue(row); - if (window.qBittorrent.PropFiles.isDownloadCheckboxExists(id)) { - window.qBittorrent.PropFiles.updateDownloadCheckbox(id, value); - } - else { - const treeImg = new Element('img', { - src: 'images/L.gif', - styles: { - 'margin-bottom': -2 - } - }); - td.adopt(treeImg, window.qBittorrent.PropFiles.createDownloadCheckbox(id, row.full_data.fileId, value)); + if (td.firstElementChild === null) { + const treeImg = document.createElement("img"); + treeImg.src = "images/L.gif"; + treeImg.style.marginBottom = "-2px"; + td.append(treeImg); } + + const downloadCheckbox = td.children[1]; + if (downloadCheckbox === undefined) + td.append(window.qBittorrent.PropFiles.createDownloadCheckbox(id, row.full_data.fileId, value)); + else + window.qBittorrent.PropFiles.updateDownloadCheckbox(downloadCheckbox, id, row.full_data.fileId, value); + }; + this.columns["checked"].staticWidth = 50; // name - this.columns['name'].updateTd = function(td, row) { + this.columns["name"].updateTd = function(td, row) { const id = row.rowId; - const fileNameId = 'filesTablefileName' + id; + const fileNameId = `filesTablefileName${id}`; const node = that.getNode(id); + const value = this.getRowValue(row); - if (node.isFolder) { - const value = this.getRowValue(row); - const collapseIconId = 'filesTableCollapseIcon' + id; - const dirImgId = 'filesTableDirImg' + id; - if ($(dirImgId)) { - // just update file name - $(fileNameId).set('text', value); - } - else { - const collapseIcon = new Element('img', { - src: 'images/go-down.svg', - styles: { - 'margin-left': (node.depth * 20) - }, - class: "filesTableCollapseIcon", - id: collapseIconId, - "data-id": id, - onclick: "qBittorrent.PropFiles.collapseIconClicked(this)" - }); - const span = new Element('span', { - text: value, - id: fileNameId - }); - const dirImg = new Element('img', { - src: 'images/directory.svg', - styles: { - 'width': 15, - 'padding-right': 5, - 'margin-bottom': -3 - }, - id: dirImgId - }); - const html = collapseIcon.outerHTML + dirImg.outerHTML + span.outerHTML; - td.set('html', html); - } - } - else { - const value = this.getRowValue(row); - const span = new Element('span', { - text: value, - id: fileNameId, - styles: { - 'margin-left': ((node.depth + 1) * 20) + let collapseIcon = td.firstElementChild; + if (collapseIcon === null) { + collapseIcon = document.createElement("img"); + collapseIcon.src = "images/go-down.svg"; + collapseIcon.className = "filesTableCollapseIcon"; + collapseIcon.addEventListener("click", (e) => { + const id = collapseIcon.dataset.id; + const node = that.getNode(id); + if (node !== null) { + if (that.isCollapsed(node.rowId)) + that.expandNode(node.rowId); + else + that.collapseNode(node.rowId); + if (that.useVirtualList) + that.rerender(); } }); - td.set('html', span.outerHTML); + td.append(collapseIcon); } + if (node.isFolder) { + collapseIcon.style.marginLeft = `${node.depth * 20}px`; + collapseIcon.style.display = "inline"; + collapseIcon.dataset.id = id; + collapseIcon.classList.toggle("rotate", that.isCollapsed(node.rowId)); + } + else { + collapseIcon.style.display = "none"; + } + + let dirImg = td.children[1]; + if (dirImg === undefined) { + dirImg = document.createElement("img"); + dirImg.src = "images/directory.svg"; + dirImg.style.width = "20px"; + dirImg.style.paddingRight = "5px"; + dirImg.style.marginBottom = "-3px"; + td.append(dirImg); + } + dirImg.style.display = node.isFolder ? "inline" : "none"; + + let span = td.children[2]; + if (span === undefined) { + span = document.createElement("span"); + td.append(span); + } + span.id = fileNameId; + span.textContent = value; + span.style.marginLeft = node.isFolder ? "0" : `${(node.depth + 1) * 20}px`; + }; + this.columns["name"].calculateBuffer = (rowId) => { + const node = that.getNode(rowId); + // folders add 20px for folder icon and 15px for collapse icon + const folderBuffer = node.isFolder ? 35 : 0; + return (node.depth * 20) + folderBuffer; }; // size - this.columns['size'].updateTd = displaySize; + this.columns["size"].updateTd = displaySize; // progress - this.columns['progress'].updateTd = function(td, row) { + this.columns["progress"].updateTd = function(td, row) { const id = row.rowId; - const value = this.getRowValue(row); + const value = Number(this.getRowValue(row)); - const progressBar = $('pbf_' + id); + const progressBar = td.firstElementChild; if (progressBar === null) { - td.adopt(new window.qBittorrent.ProgressBar.ProgressBar(value.toFloat(), { - id: 'pbf_' + id, + td.append(new window.qBittorrent.ProgressBar.ProgressBar(value, { width: 80 })); } else { - progressBar.setValue(value.toFloat()); + progressBar.setValue(value); } }; + this.columns["progress"].staticWidth = 100; // priority - this.columns['priority'].updateTd = function(td, row) { + this.columns["priority"].updateTd = function(td, row) { const id = row.rowId; const value = this.getRowValue(row); - if (window.qBittorrent.PropFiles.isPriorityComboExists(id)) - window.qBittorrent.PropFiles.updatePriorityCombo(id, value); + const priorityCombo = td.firstElementChild; + if (priorityCombo === null) + td.append(window.qBittorrent.PropFiles.createPriorityCombo(id, row.full_data.fileId, value)); else - td.adopt(window.qBittorrent.PropFiles.createPriorityCombo(id, row.full_data.fileId, value)); + window.qBittorrent.PropFiles.updatePriorityCombo(priorityCombo, id, row.full_data.fileId, value); }; + this.columns["priority"].staticWidth = 140; // remaining, availability - this.columns['remaining'].updateTd = displaySize; - this.columns['availability'].updateTd = displayPercentage; - }, - - altRow: function() { - let addClass = false; - const trs = this.tableBody.getElements('tr'); - trs.each(function(tr) { - if (tr.hasClass("invisible")) - return; - - if (addClass) { - tr.addClass("alt"); - tr.removeClass("nonAlt"); - } - else { - tr.removeClass("alt"); - tr.addClass("nonAlt"); - } - addClass = !addClass; - }.bind(this)); + this.columns["remaining"].updateTd = displaySize; + this.columns["availability"].updateTd = displayPercentage; }, _sortNodesByColumn: function(nodes, column) { - nodes.sort(function(row1, row2) { + nodes.sort((row1, row2) => { // list folders before files when sorting by name if (column.name === "name") { const node1 = this.getNode(row1.data.rowId); @@ -2501,21 +2904,21 @@ window.qBittorrent.DynamicTable = (function() { } const res = column.compareRows(row1, row2); - return (this.reverseSort === '0') ? res : -res; - }.bind(this)); + return (this.reverseSort === "0") ? res : -res; + }); - nodes.each(function(node) { + nodes.each((node) => { if (node.children.length > 0) this._sortNodesByColumn(node.children, column); - }.bind(this)); + }); }, _filterNodes: function(node, filterTerms, filteredRows) { - if (node.isFolder) { - const childAdded = node.children.reduce(function(acc, child) { + if (node.isFolder && (!this.useVirtualList || !this.isCollapsed(node.rowId))) { + const childAdded = node.children.reduce((acc, child) => { // we must execute the function before ORing w/ acc or we'll stop checking child nodes after the first successful match return (this._filterNodes(child, filterTerms, filteredRows) || acc); - }.bind(this), false); + }, false); if (childAdded) { const row = this.getRow(node); @@ -2534,8 +2937,8 @@ window.qBittorrent.DynamicTable = (function() { }, setFilter: function(text) { - const filterTerms = text.trim().toLowerCase().split(' '); - if ((filterTerms.length === 1) && (filterTerms[0] === '')) + const filterTerms = text.trim().toLowerCase().split(" "); + if ((filterTerms.length === 1) && (filterTerms[0] === "")) this.filterTerms = []; else this.filterTerms = filterTerms; @@ -2545,35 +2948,27 @@ window.qBittorrent.DynamicTable = (function() { if (this.getRoot() === null) return []; - const generateRowsSignature = function(rows) { - const rowsData = rows.map(function(row) { - return row.full_data; - }); + const generateRowsSignature = () => { + const rowsData = []; + for (const { full_data } of this.getRowValues()) + rowsData.push({ ...full_data, collapsed: this.isCollapsed(full_data.rowId) }); return JSON.stringify(rowsData); }; const getFilteredRows = function() { - if (this.filterTerms.length === 0) { - const nodeArray = this.fileTree.toArray(); - const filteredRows = nodeArray.map(function(node) { - return this.getRow(node); - }.bind(this)); - return filteredRows; - } - const filteredRows = []; - this.getRoot().children.each(function(child) { + this.getRoot().children.each((child) => { this._filterNodes(child, this.filterTerms, filteredRows); - }.bind(this)); + }); filteredRows.reverse(); return filteredRows; }.bind(this); const hasRowsChanged = function(rowsString, prevRowsStringString) { const rowsChanged = (rowsString !== prevRowsStringString); - const isFilterTermsChanged = this.filterTerms.reduce(function(acc, term, index) { + const isFilterTermsChanged = this.filterTerms.reduce((acc, term, index) => { return (acc || (term !== this.prevFilterTerms[index])); - }.bind(this), false); + }, false); const isFilterChanged = ((this.filterTerms.length !== this.prevFilterTerms.length) || ((this.filterTerms.length > 0) && isFilterTermsChanged)); const isSortedColumnChanged = (this.prevSortedColumn !== this.sortedColumn); @@ -2582,10 +2977,9 @@ window.qBittorrent.DynamicTable = (function() { return (rowsChanged || isFilterChanged || isSortedColumnChanged || isReverseSortChanged); }.bind(this); - const rowsString = generateRowsSignature(this.rows); - if (!hasRowsChanged(rowsString, this.prevRowsString)) { + const rowsString = generateRowsSignature(); + if (!hasRowsChanged(rowsString, this.prevRowsString)) return this.prevFilteredRows; - } // sort, then filter const column = this.columns[this.sortedColumn]; @@ -2601,22 +2995,29 @@ window.qBittorrent.DynamicTable = (function() { }, setIgnored: function(rowId, ignore) { - const row = this.rows.get(rowId); + const row = this.rows.get(rowId.toString()); if (ignore) row.full_data.remaining = 0; else row.full_data.remaining = (row.full_data.size * (1.0 - (row.full_data.progress / 100))); }, - setupTr: function(tr) { - tr.addEvent('keydown', function(event) { - switch (event.key) { - case "left": - qBittorrent.PropFiles.collapseFolder(this._this.getSelectedRowId()); - return false; - case "right": - qBittorrent.PropFiles.expandFolder(this._this.getSelectedRowId()); - return false; + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("keydown", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + switch (e.key) { + case "ArrowLeft": + e.preventDefault(); + this.collapseFolder(this.getSelectedRowId()); + break; + case "ArrowRight": + e.preventDefault(); + this.expandFolder(this.getSelectedRowId()); + break; } }); } @@ -2625,83 +3026,84 @@ window.qBittorrent.DynamicTable = (function() { const RssFeedTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('state_icon', '', '', 30, true); - this.newColumn('name', '', 'QBT_TR(RSS feeds)QBT_TR[CONTEXT=FeedListWidget]', -1, true); + this.newColumn("state_icon", "", "", 30, true); + this.newColumn("name", "", "QBT_TR(RSS feeds)QBT_TR[CONTEXT=FeedListWidget]", -1, true); - this.columns['state_icon'].dataProperties[0] = ''; + this.columns["state_icon"].dataProperties[0] = ""; // map name row to "[name] ([unread])" - this.columns['name'].dataProperties.push('unread'); - this.columns['name'].updateTd = function(td, row) { + this.columns["name"].dataProperties.push("unread"); + this.columns["name"].updateTd = function(td, row) { const name = this.getRowValue(row, 0); const unreadCount = this.getRowValue(row, 1); - let value = name + ' (' + unreadCount + ')'; - td.set('text', value); - td.set('title', value); + const value = `${name} (${unreadCount})`; + td.textContent = value; + td.title = value; }; }, - setupHeaderMenu: function() {}, - setupHeaderEvents: function() {}, + setupHeaderMenu: () => {}, + setupHeaderEvents: () => {}, getFilteredAndSortedRows: function() { - return this.rows.getValues(); + return [...this.getRowValues()]; }, selectRow: function(rowId) { this.selectedRows.push(rowId); this.setRowClass(); this.onSelectedRowChanged(); - const rows = this.rows.getValues(); - let path = ''; - for (let i = 0; i < rows.length; ++i) { - if (rows[i].rowId === rowId) { - path = rows[i].full_data.dataPath; + let path = ""; + for (const row of this.getRowValues()) { + if (row.rowId === rowId) { + path = row.full_data.dataPath; break; } } window.qBittorrent.Rss.showRssFeed(path); }, - setupTr: function(tr) { - tr.addEvent('dblclick', function(e) { - if (this.rowId !== 0) { - window.qBittorrent.Rss.moveItem(this._this.rows.get(this.rowId).full_data.dataPath); - return true; - } + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("dblclick", (e) => { + const tr = e.target.closest("tr"); + if (!tr || (tr.rowId === "0")) + return; + + window.qBittorrent.Rss.moveItem(this.getRow(tr.rowId).full_data.dataPath); }); }, updateRow: function(tr, fullUpdate) { const row = this.rows.get(tr.rowId); - const data = row[fullUpdate ? 'full_data' : 'data']; + const data = row[fullUpdate ? "full_data" : "data"]; - const tds = tr.getElements('td'); + const tds = this.getRowCells(tr); for (let i = 0; i < this.columns.length; ++i) { if (Object.hasOwn(data, this.columns[i].dataProperties[0])) this.columns[i].updateTd(tds[i], row); } - row['data'] = {}; - tds[0].style.overflow = 'visible'; - let indentation = row.full_data.indentation; - tds[0].style.paddingLeft = (indentation * 32 + 4) + 'px'; - tds[1].style.paddingLeft = (indentation * 32 + 4) + 'px'; + row["data"] = {}; + tds[0].style.overflow = "visible"; + const indentation = row.full_data.indentation; + tds[0].style.paddingLeft = `${indentation * 32 + 4}px`; + tds[1].style.paddingLeft = `${indentation * 32 + 4}px`; }, updateIcons: function() { // state_icon - this.rows.each(row => { + for (const row of this.getRowValues()) { let img_path; switch (row.full_data.status) { - case 'default': - img_path = 'images/application-rss.svg'; + case "default": + img_path = "images/application-rss.svg"; break; - case 'hasError': - img_path = 'images/task-reject.svg'; + case "hasError": + img_path = "images/task-reject.svg"; break; - case 'isLoading': - img_path = 'images/spinner.gif'; + case "isLoading": + img_path = "images/spinner.gif"; break; - case 'unread': - img_path = 'images/mail-inbox.svg'; + case "unread": + img_path = "images/mail-inbox.svg"; break; - case 'isFolder': - img_path = 'images/folder-documents.svg'; + case "isFolder": + img_path = "images/folder-documents.svg"; break; } let td; @@ -2711,252 +3113,240 @@ window.qBittorrent.DynamicTable = (function() { break; } } - if (td.getChildren('img').length > 0) { - const img = td.getChildren('img')[0]; + if (td.getChildren("img").length > 0) { + const img = td.getChildren("img")[0]; if (!img.src.includes(img_path)) { - img.set('src', img_path); - img.set('title', status); + img.src = img_path; + img.title = status; } } else { - td.adopt(new Element('img', { - 'src': img_path, - 'class': 'stateIcon', - 'height': '22px', - 'width': '22px' - })); + const img = document.createElement("img"); + img.src = img_path; + img.className = "stateIcon"; + img.width = "22"; + img.height = "22"; + td.append(img); } - }); + }; }, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = defaultVisible; - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - if (defaultWidth !== -1) { - column['width'] = defaultWidth; - } + column["name"] = name; + column["title"] = name; + column["visible"] = defaultVisible; + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + if (defaultWidth !== -1) + column["width"] = defaultWidth; - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["onResize"] = null; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); - }, - setupCommonEvents: function() { - const scrollFn = function() { - $(this.dynamicTableFixedHeaderDivId).getElements('table')[0].style.left = -$(this.dynamicTableDivId).scrollLeft + 'px'; - }.bind(this); - - $(this.dynamicTableDivId).addEvent('scroll', scrollFn); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); } }); const RssArticleTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('name', '', 'QBT_TR(Torrents: (double-click to download))QBT_TR[CONTEXT=RSSWidget]', -1, true); + this.newColumn("name", "", "QBT_TR(Torrents: (double-click to download))QBT_TR[CONTEXT=RSSWidget]", -1, true); }, - setupHeaderMenu: function() {}, - setupHeaderEvents: function() {}, + setupHeaderMenu: () => {}, + setupHeaderEvents: () => {}, getFilteredAndSortedRows: function() { - return this.rows.getValues(); + return [...this.getRowValues()]; }, selectRow: function(rowId) { this.selectedRows.push(rowId); this.setRowClass(); this.onSelectedRowChanged(); - const rows = this.rows.getValues(); - let articleId = ''; - let feedUid = ''; - for (let i = 0; i < rows.length; ++i) { - if (rows[i].rowId === rowId) { - articleId = rows[i].full_data.dataId; - feedUid = rows[i].full_data.feedUid; - this.tableBody.rows[rows[i].rowId].removeClass('unreadArticle'); + let articleId = ""; + let feedUid = ""; + for (const row of this.getRowValues()) { + if (row.rowId === rowId) { + articleId = row.full_data.dataId; + feedUid = row.full_data.feedUid; + this.tableBody.rows[row.rowId].classList.remove("unreadArticle"); break; } } window.qBittorrent.Rss.showDetails(feedUid, articleId); }, - setupTr: function(tr) { - tr.addEvent('dblclick', function(e) { - showDownloadPage([this._this.rows.get(this.rowId).full_data.torrentURL]); - return true; + + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("dblclick", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + showDownloadPage([this.getRow(tr.rowId).full_data.torrentURL]); }); - tr.addClass('torrentsTableContextMenuTarget'); }, updateRow: function(tr, fullUpdate) { const row = this.rows.get(tr.rowId); - const data = row[fullUpdate ? 'full_data' : 'data']; - if (!row.full_data.isRead) - tr.addClass('unreadArticle'); - else - tr.removeClass('unreadArticle'); + const data = row[fullUpdate ? "full_data" : "data"]; + tr.classList.toggle("unreadArticle", !row.full_data.isRead); - const tds = tr.getElements('td'); + const tds = this.getRowCells(tr); for (let i = 0; i < this.columns.length; ++i) { if (Object.hasOwn(data, this.columns[i].dataProperties[0])) this.columns[i].updateTd(tds[i], row); } - row['data'] = {}; + row["data"] = {}; }, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = defaultVisible; - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - if (defaultWidth !== -1) { - column['width'] = defaultWidth; - } + column["name"] = name; + column["title"] = name; + column["visible"] = defaultVisible; + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + if (defaultWidth !== -1) + column["width"] = defaultWidth; - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["onResize"] = null; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); - }, - setupCommonEvents: function() { - const scrollFn = function() { - $(this.dynamicTableFixedHeaderDivId).getElements('table')[0].style.left = -$(this.dynamicTableDivId).scrollLeft + 'px'; - }.bind(this); - - $(this.dynamicTableDivId).addEvent('scroll', scrollFn); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); } }); const RssDownloaderRulesTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('checked', '', '', 30, true); - this.newColumn('name', '', '', -1, true); + this.newColumn("checked", "", "", 30, true); + this.newColumn("name", "", "", -1, true); - this.columns['checked'].updateTd = function(td, row) { - if ($('cbRssDlRule' + row.rowId) === null) { - const checkbox = new Element('input'); - checkbox.set('type', 'checkbox'); - checkbox.set('id', 'cbRssDlRule' + row.rowId); + this.columns["checked"].updateTd = function(td, row) { + if ($(`cbRssDlRule${row.rowId}`) === null) { + const checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.id = `cbRssDlRule${row.rowId}`; checkbox.checked = row.full_data.checked; - checkbox.addEvent('click', function(e) { + checkbox.addEventListener("click", function(e) { window.qBittorrent.RssDownloader.rssDownloaderRulesTable.updateRowData({ rowId: row.rowId, checked: this.checked }); - window.qBittorrent.RssDownloader.modifyRuleState(row.full_data.name, 'enabled', this.checked); + window.qBittorrent.RssDownloader.modifyRuleState(row.full_data.name, "enabled", this.checked); e.stopPropagation(); }); td.append(checkbox); } else { - $('cbRssDlRule' + row.rowId).checked = row.full_data.checked; + $(`cbRssDlRule${row.rowId}`).checked = row.full_data.checked; } }; + this.columns["checked"].staticWidth = 50; }, - setupHeaderMenu: function() {}, - setupHeaderEvents: function() {}, + setupHeaderMenu: () => {}, + setupHeaderEvents: () => {}, getFilteredAndSortedRows: function() { - return this.rows.getValues(); + return [...this.getRowValues()]; }, - setupTr: function(tr) { - tr.addEvent('dblclick', function(e) { - window.qBittorrent.RssDownloader.renameRule(this._this.rows.get(this.rowId).full_data.name); - return true; + + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("dblclick", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + window.qBittorrent.RssDownloader.renameRule(this.getRow(tr.rowId).full_data.name); }); }, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = defaultVisible; - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - if (defaultWidth !== -1) { - column['width'] = defaultWidth; - } + column["name"] = name; + column["title"] = name; + column["visible"] = defaultVisible; + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + if (defaultWidth !== -1) + column["width"] = defaultWidth; - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["onResize"] = null; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); }, selectRow: function(rowId) { this.selectedRows.push(rowId); this.setRowClass(); this.onSelectedRowChanged(); - const rows = this.rows.getValues(); - let name = ''; - for (let i = 0; i < rows.length; ++i) { - if (rows[i].rowId === rowId) { - name = rows[i].full_data.name; + let name = ""; + for (const row of this.getRowValues()) { + if (row.rowId === rowId) { + name = row.full_data.name; break; } } @@ -2967,17 +3357,17 @@ window.qBittorrent.DynamicTable = (function() { const RssDownloaderFeedSelectionTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('checked', '', '', 30, true); - this.newColumn('name', '', '', -1, true); + this.newColumn("checked", "", "", 30, true); + this.newColumn("name", "", "", -1, true); - this.columns['checked'].updateTd = function(td, row) { - if ($('cbRssDlFeed' + row.rowId) === null) { - const checkbox = new Element('input'); - checkbox.set('type', 'checkbox'); - checkbox.set('id', 'cbRssDlFeed' + row.rowId); + this.columns["checked"].updateTd = function(td, row) { + if ($(`cbRssDlFeed${row.rowId}`) === null) { + const checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.id = `cbRssDlFeed${row.rowId}`; checkbox.checked = row.full_data.checked; - checkbox.addEvent('click', function(e) { + checkbox.addEventListener("click", function(e) { window.qBittorrent.RssDownloader.rssDownloaderFeedSelectionTable.updateRowData({ rowId: row.rowId, checked: this.checked @@ -2988,275 +3378,494 @@ window.qBittorrent.DynamicTable = (function() { td.append(checkbox); } else { - $('cbRssDlFeed' + row.rowId).checked = row.full_data.checked; + $(`cbRssDlFeed${row.rowId}`).checked = row.full_data.checked; } }; + this.columns["checked"].staticWidth = 50; }, - setupHeaderMenu: function() {}, - setupHeaderEvents: function() {}, + setupHeaderMenu: () => {}, + setupHeaderEvents: () => {}, getFilteredAndSortedRows: function() { - return this.rows.getValues(); + return [...this.getRowValues()]; }, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = defaultVisible; - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - if (defaultWidth !== -1) { - column['width'] = defaultWidth; - } + column["name"] = name; + column["title"] = name; + column["visible"] = defaultVisible; + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + if (defaultWidth !== -1) + column["width"] = defaultWidth; - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["onResize"] = null; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); }, - selectRow: function() {} + selectRow: () => {} }); const RssDownloaderArticlesTable = new Class({ Extends: DynamicTable, initColumns: function() { - this.newColumn('name', '', '', -1, true); + this.newColumn("name", "", "", -1, true); }, - setupHeaderMenu: function() {}, - setupHeaderEvents: function() {}, + setupHeaderMenu: () => {}, + setupHeaderEvents: () => {}, getFilteredAndSortedRows: function() { - return this.rows.getValues(); + return [...this.getRowValues()]; }, newColumn: function(name, style, caption, defaultWidth, defaultVisible) { const column = {}; - column['name'] = name; - column['title'] = name; - column['visible'] = defaultVisible; - column['force_hide'] = false; - column['caption'] = caption; - column['style'] = style; - if (defaultWidth !== -1) { - column['width'] = defaultWidth; - } + column["name"] = name; + column["title"] = name; + column["visible"] = defaultVisible; + column["force_hide"] = false; + column["caption"] = caption; + column["style"] = style; + if (defaultWidth !== -1) + column["width"] = defaultWidth; - column['dataProperties'] = [name]; - column['getRowValue'] = function(row, pos) { + column["dataProperties"] = [name]; + column["getRowValue"] = function(row, pos) { if (pos === undefined) pos = 0; - return row['full_data'][this.dataProperties[pos]]; + return row["full_data"][this.dataProperties[pos]]; }; - column['compareRows'] = function(row1, row2) { + column["compareRows"] = function(row1, row2) { const value1 = this.getRowValue(row1); const value2 = this.getRowValue(row2); - if ((typeof(value1) === 'number') && (typeof(value2) === 'number')) + if ((typeof(value1) === "number") && (typeof(value2) === "number")) return compareNumbers(value1, value2); return window.qBittorrent.Misc.naturalSortCollator.compare(value1, value2); }; - column['updateTd'] = function(td, row) { + column["updateTd"] = function(td, row) { const value = this.getRowValue(row); - td.set('text', value); - td.set('title', value); + td.textContent = value; + td.title = value; }; - column['onResize'] = null; + column["onResize"] = null; this.columns.push(column); this.columns[name] = column; - this.hiddenTableHeader.appendChild(new Element('th')); - this.fixedTableHeader.appendChild(new Element('th')); + this.hiddenTableHeader.append(document.createElement("th")); + this.fixedTableHeader.append(document.createElement("th")); }, - selectRow: function() {}, + selectRow: () => {}, updateRow: function(tr, fullUpdate) { const row = this.rows.get(tr.rowId); - const data = row[fullUpdate ? 'full_data' : 'data']; + const data = row[fullUpdate ? "full_data" : "data"]; if (row.full_data.isFeed) { - tr.addClass('articleTableFeed'); - tr.removeClass('articleTableArticle'); + tr.classList.add("articleTableFeed"); + tr.classList.remove("articleTableArticle"); } else { - tr.removeClass('articleTableFeed'); - tr.addClass('articleTableArticle'); + tr.classList.remove("articleTableFeed"); + tr.classList.add("articleTableArticle"); } - const tds = tr.getElements('td'); + const tds = this.getRowCells(tr); for (let i = 0; i < this.columns.length; ++i) { if (Object.hasOwn(data, this.columns[i].dataProperties[0])) this.columns[i].updateTd(tds[i], row); } - row['data'] = {}; + row["data"] = {}; } }); const LogMessageTable = new Class({ Extends: DynamicTable, - filterText: '', - - filteredLength: function() { - return this.tableBody.getElements('tr').length; - }, + filterText: "", initColumns: function() { - this.newColumn('rowId', '', 'QBT_TR(ID)QBT_TR[CONTEXT=ExecutionLogWidget]', 50, true); - this.newColumn('message', '', 'QBT_TR(Message)QBT_TR[CONTEXT=ExecutionLogWidget]', 350, true); - this.newColumn('timestamp', '', 'QBT_TR(Timestamp)QBT_TR[CONTEXT=ExecutionLogWidget]', 150, true); - this.newColumn('type', '', 'QBT_TR(Log Type)QBT_TR[CONTEXT=ExecutionLogWidget]', 100, true); + this.newColumn("rowId", "", "QBT_TR(ID)QBT_TR[CONTEXT=ExecutionLogWidget]", 50, true); + this.newColumn("message", "", "QBT_TR(Message)QBT_TR[CONTEXT=ExecutionLogWidget]", 350, true); + this.newColumn("timestamp", "", "QBT_TR(Timestamp)QBT_TR[CONTEXT=ExecutionLogWidget]", 150, true); + this.newColumn("type", "", "QBT_TR(Log Type)QBT_TR[CONTEXT=ExecutionLogWidget]", 100, true); this.initColumnsFunctions(); }, initColumnsFunctions: function() { - this.columns['timestamp'].updateTd = function(td, row) { + this.columns["timestamp"].updateTd = function(td, row) { const date = new Date(this.getRowValue(row) * 1000).toLocaleString(); - td.set({ 'text': date, 'title': date }); + td.textContent = date; + td.title = date; }; - this.columns['type'].updateTd = function(td, row) { - //Type of the message: Log::NORMAL: 1, Log::INFO: 2, Log::WARNING: 4, Log::CRITICAL: 8 + this.columns["type"].updateTd = function(td, row) { + // Type of the message: Log::NORMAL: 1, Log::INFO: 2, Log::WARNING: 4, Log::CRITICAL: 8 let logLevel, addClass; - switch (this.getRowValue(row).toInt()) { + switch (Number(this.getRowValue(row))) { case 1: - logLevel = 'QBT_TR(Normal)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'logNormal'; + logLevel = "QBT_TR(Normal)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "logNormal"; break; case 2: - logLevel = 'QBT_TR(Info)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'logInfo'; + logLevel = "QBT_TR(Info)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "logInfo"; break; case 4: - logLevel = 'QBT_TR(Warning)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'logWarning'; + logLevel = "QBT_TR(Warning)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "logWarning"; break; case 8: - logLevel = 'QBT_TR(Critical)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'logCritical'; + logLevel = "QBT_TR(Critical)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "logCritical"; break; default: - logLevel = 'QBT_TR(Unknown)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'logUnknown'; + logLevel = "QBT_TR(Unknown)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "logUnknown"; break; } - td.set({ 'text': logLevel, 'title': logLevel }); - td.getParent('tr').set('class', 'logTableRow ' + addClass); + td.textContent = logLevel; + td.title = logLevel; + td.closest("tr").classList.add(`logTableRow${addClass}`); }; }, getFilteredAndSortedRows: function() { let filteredRows = []; - const rows = this.rows.getValues(); this.filterText = window.qBittorrent.Log.getFilterText(); - const filterTerms = (this.filterText.length > 0) ? this.filterText.toLowerCase().split(' ') : []; + const filterTerms = (this.filterText.length > 0) ? this.filterText.toLowerCase().split(" ") : []; const logLevels = window.qBittorrent.Log.getSelectedLevels(); if ((filterTerms.length > 0) || (logLevels.length < 4)) { - for (let i = 0; i < rows.length; ++i) { - if (!logLevels.includes(rows[i].full_data.type.toString())) + for (const row of this.getRowValues()) { + if (!logLevels.includes(row.full_data.type.toString())) continue; - if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(rows[i].full_data.message, filterTerms)) + if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(row.full_data.message, filterTerms)) continue; - filteredRows.push(rows[i]); + filteredRows.push(row); } } else { - filteredRows = rows; + filteredRows = [...this.getRowValues()]; } - filteredRows.sort(function(row1, row2) { + filteredRows.sort((row1, row2) => { const column = this.columns[this.sortedColumn]; const res = column.compareRows(row1, row2); - return (this.reverseSort === '0') ? res : -res; - }.bind(this)); + return (this.reverseSort === "0") ? res : -res; + }); + + this.filteredLength = filteredRows.length; return filteredRows; }, - - setupCommonEvents: function() {}, - - setupTr: function(tr) { - tr.addClass('logTableRow'); - } }); const LogPeerTable = new Class({ Extends: LogMessageTable, initColumns: function() { - this.newColumn('rowId', '', 'QBT_TR(ID)QBT_TR[CONTEXT=ExecutionLogWidget]', 50, true); - this.newColumn('ip', '', 'QBT_TR(IP)QBT_TR[CONTEXT=ExecutionLogWidget]', 150, true); - this.newColumn('timestamp', '', 'QBT_TR(Timestamp)QBT_TR[CONTEXT=ExecutionLogWidget]', 150, true); - this.newColumn('blocked', '', 'QBT_TR(Status)QBT_TR[CONTEXT=ExecutionLogWidget]', 150, true); - this.newColumn('reason', '', 'QBT_TR(Reason)QBT_TR[CONTEXT=ExecutionLogWidget]', 150, true); + this.newColumn("rowId", "", "QBT_TR(ID)QBT_TR[CONTEXT=ExecutionLogWidget]", 50, true); + this.newColumn("ip", "", "QBT_TR(IP)QBT_TR[CONTEXT=ExecutionLogWidget]", 150, true); + this.newColumn("timestamp", "", "QBT_TR(Timestamp)QBT_TR[CONTEXT=ExecutionLogWidget]", 150, true); + this.newColumn("blocked", "", "QBT_TR(Status)QBT_TR[CONTEXT=ExecutionLogWidget]", 150, true); + this.newColumn("reason", "", "QBT_TR(Reason)QBT_TR[CONTEXT=ExecutionLogWidget]", 150, true); - this.columns['timestamp'].updateTd = function(td, row) { + this.columns["timestamp"].updateTd = function(td, row) { const date = new Date(this.getRowValue(row) * 1000).toLocaleString(); - td.set({ 'text': date, 'title': date }); + td.textContent = date; + td.title = date; }; - this.columns['blocked'].updateTd = function(td, row) { + this.columns["blocked"].updateTd = function(td, row) { let status, addClass; if (this.getRowValue(row)) { - status = 'QBT_TR(Blocked)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'peerBlocked'; + status = "QBT_TR(Blocked)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "peerBlocked"; } else { - status = 'QBT_TR(Banned)QBT_TR[CONTEXT=ExecutionLogWidget]'; - addClass = 'peerBanned'; + status = "QBT_TR(Banned)QBT_TR[CONTEXT=ExecutionLogWidget]"; + addClass = "peerBanned"; } - td.set({ 'text': status, 'title': status }); - td.getParent('tr').set('class', 'logTableRow ' + addClass); + td.textContent = status; + td.title = status; + td.closest("tr").classList.add(`logTableRow${addClass}`); }; }, getFilteredAndSortedRows: function() { let filteredRows = []; - const rows = this.rows.getValues(); this.filterText = window.qBittorrent.Log.getFilterText(); - const filterTerms = (this.filterText.length > 0) ? this.filterText.toLowerCase().split(' ') : []; + const filterTerms = (this.filterText.length > 0) ? this.filterText.toLowerCase().split(" ") : []; if (filterTerms.length > 0) { - for (let i = 0; i < rows.length; ++i) { - if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(rows[i].full_data.ip, filterTerms)) + for (const row of this.getRowValues()) { + if ((filterTerms.length > 0) && !window.qBittorrent.Misc.containsAllTerms(row.full_data.ip, filterTerms)) continue; - filteredRows.push(rows[i]); + filteredRows.push(row); } } else { - filteredRows = rows; + filteredRows = [...this.getRowValues()]; } - filteredRows.sort(function(row1, row2) { + filteredRows.sort((row1, row2) => { const column = this.columns[this.sortedColumn]; const res = column.compareRows(row1, row2); - return (this.reverseSort === '0') ? res : -res; - }.bind(this)); + return (this.reverseSort === "0") ? res : -res; + }); return filteredRows; } }); + const TorrentWebseedsTable = new Class({ + Extends: DynamicTable, + + initColumns: function() { + this.newColumn("url", "", "QBT_TR(URL)QBT_TR[CONTEXT=HttpServer]", 500, true); + }, + }); + + const TorrentCreationTasksTable = new Class({ + Extends: DynamicTable, + + initColumns: function() { + this.newColumn("state_icon", "", "QBT_TR(Status Icon)QBT_TR[CONTEXT=TorrentCreator]", 30, false); + this.newColumn("source_path", "", "QBT_TR(Source Path)QBT_TR[CONTEXT=TorrentCreator]", 200, true); + this.newColumn("progress", "", "QBT_TR(Progress)QBT_TR[CONTEXT=TorrentCreator]", 85, true); + this.newColumn("status", "", "QBT_TR(Status)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("torrent_format", "", "QBT_TR(Format)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("piece_size", "", "QBT_TR(Piece Size)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("private", "", "QBT_TR(Private)QBT_TR[CONTEXT=TorrentCreator]", 30, true); + this.newColumn("added_on", "", "QBT_TR(Added On)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("start_on", "", "QBT_TR(Started On)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("completion_on", "", "QBT_TR(Completed On)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("trackers", "", "QBT_TR(Trackers)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("web_seeds", "", "QBT_TR(Web Seeds)QBT_TR[CONTEXT=TorrentCreator]", 100, false); + this.newColumn("comment", "", "QBT_TR(Comment)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + this.newColumn("source", "", "QBT_TR(Source)QBT_TR[CONTEXT=TorrentCreator]", 100, false); + this.newColumn("error_message", "", "QBT_TR(Error Message)QBT_TR[CONTEXT=TorrentCreator]", 100, true); + + this.columns["state_icon"].dataProperties[0] = "status"; + this.columns["source_path"].dataProperties.push("status"); + + this.initColumnsFunctions(); + }, + + initColumnsFunctions: function() { + const getStateIconClasses = (state) => { + let stateClass = "stateUnknown"; + // normalize states + switch (state) { + case "Running": + stateClass = "stateRunning"; + break; + case "Queued": + stateClass = "stateQueued"; + break; + case "Finished": + stateClass = "stateStoppedUP"; + break; + case "Failed": + stateClass = "stateError"; + break; + } + + return `stateIcon ${stateClass}`; + }; + + // state_icon + this.columns["state_icon"].updateTd = function(td, row) { + const state = this.getRowValue(row); + let div = td.firstElementChild; + if (div === null) { + div = document.createElement("div"); + td.append(div); + } + + div.className = `${getStateIconClasses(state)} stateIconColumn`; + }; + + this.columns["state_icon"].onVisibilityChange = (columnName) => { + // show state icon in name column only when standalone + // state icon column is hidden + this.updateColumn("name", true); + }; + + // source_path + this.columns["source_path"].updateTd = function(td, row) { + const name = this.getRowValue(row, 0); + const state = this.getRowValue(row, 1); + let span = td.firstElementChild; + if (span === null) { + span = document.createElement("span"); + td.append(span); + } + + span.className = this.isStateIconShown() ? getStateIconClasses(state) : ""; + span.textContent = name; + td.title = name; + }; + + this.columns["source_path"].isStateIconShown = () => !this.columns["state_icon"].isVisible(); + + // status + this.columns["status"].updateTd = function(td, row) { + const state = this.getRowValue(row); + if (!state) + return; + + let status = "QBT_TR(Unknown)QBT_TR[CONTEXT=HttpServer]"; + switch (state) { + case "Queued": + status = "QBT_TR(Queued)QBT_TR[CONTEXT=TorrentCreator]"; + break; + case "Running": + status = "QBT_TR(Running)QBT_TR[CONTEXT=TorrentCreator]"; + break; + case "Finished": + status = "QBT_TR(Finished)QBT_TR[CONTEXT=TorrentCreator]"; + break; + case "Failed": + status = "QBT_TR(Failed)QBT_TR[CONTEXT=TorrentCreator]"; + break; + } + + td.textContent = status; + td.title = status; + }; + + // torrent_format + this.columns["torrent_format"].updateTd = function(td, row) { + const torrentFormat = this.getRowValue(row); + if (!torrentFormat) + return; + + let format = "QBT_TR(Unknown)QBT_TR[CONTEXT=HttpServer]"; + switch (torrentFormat) { + case "v1": + format = "V1"; + break; + case "v2": + format = "V2"; + break; + case "hybrid": + format = "QBT_TR(Hybrid)QBT_TR[CONTEXT=TorrentCreator]"; + break; + } + + td.textContent = format; + td.title = format; + }; + + // progress + this.columns["progress"].updateTd = function(td, row) { + const progress = this.getRowValue(row); + + const div = td.firstElementChild; + if (div !== null) { + if (td.resized) { + td.resized = false; + div.setWidth(progressColumnWidth - 5); + } + if (div.getValue() !== progress) + div.setValue(progress); + } + else { + if (progressColumnWidth < 0) + progressColumnWidth = td.offsetWidth; + td.append(new window.qBittorrent.ProgressBar.ProgressBar(progress, { + width: progressColumnWidth - 5 + })); + td.resized = false; + } + }; + this.columns["progress"].staticWidth = 100; + this.columns["progress"].onResize = function(columnName) { + const pos = this.getColumnPos(columnName); + progressColumnWidth = -1; + for (const tr of this.getTrs()) { + const td = this.getRowCells(tr)[pos]; + if (progressColumnWidth < 0) + progressColumnWidth = td.offsetWidth; + td.resized = true; + this.columns[columnName].updateTd(td, this.getRow(tr.rowId)); + } + }.bind(this); + + // piece_size + this.columns["piece_size"].updateTd = function(td, row) { + const pieceSize = this.getRowValue(row); + const size = (pieceSize === 0) ? "QBT_TR(N/A)QBT_TR[CONTEXT=TorrentCreator]" : window.qBittorrent.Misc.friendlyUnit(pieceSize, false); + td.textContent = size; + td.title = size; + }; + + // private + this.columns["private"].updateTd = function(td, row) { + const isPrivate = this.getRowValue(row); + const string = isPrivate + ? "QBT_TR(Yes)QBT_TR[CONTEXT=PropertiesWidget]" + : "QBT_TR(No)QBT_TR[CONTEXT=PropertiesWidget]"; + td.textContent = string; + td.title = string; + }; + + const displayDate = function(td, row) { + const val = this.getRowValue(row); + if (!val) { + td.textContent = ""; + td.title = ""; + } + else { + const date = new Date(val).toLocaleString(); + td.textContent = date; + td.title = date; + } + }; + + // added_on, start_on, completion_on + this.columns["added_on"].updateTd = displayDate; + this.columns["start_on"].updateTd = displayDate; + this.columns["completion_on"].updateTd = displayDate; + }, + + setupCommonEvents: function() { + this.parent(); + this.dynamicTableDiv.addEventListener("dblclick", (e) => { + const tr = e.target.closest("tr"); + if (!tr) + return; + + this.deselectAll(); + this.selectRow(tr.rowId); + + window.qBittorrent.TorrentCreator.exportTorrents(); + }); + }, + }); + return exports(); })(); - Object.freeze(window.qBittorrent.DynamicTable); /*************************************************************/ diff --git a/src/webui/www/private/scripts/file-tree.js b/src/webui/www/private/scripts/file-tree.js index 3457dd0f9..328806988 100644 --- a/src/webui/www/private/scripts/file-tree.js +++ b/src/webui/www/private/scripts/file-tree.js @@ -26,14 +26,11 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.FileTree = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.FileTree ??= (() => { + const exports = () => { return { FilePriority: FilePriority, TriState: TriState, @@ -44,18 +41,18 @@ window.qBittorrent.FileTree = (function() { }; const FilePriority = { - "Ignored": 0, - "Normal": 1, - "High": 6, - "Maximum": 7, - "Mixed": -1 + Ignored: 0, + Normal: 1, + High: 6, + Maximum: 7, + Mixed: -1 }; Object.freeze(FilePriority); const TriState = { - "Unchecked": 0, - "Checked": 1, - "Partial": 2 + Unchecked: 0, + Checked: 1, + Partial: 2 }; Object.freeze(TriState); @@ -75,15 +72,17 @@ window.qBittorrent.FileTree = (function() { return this.root; }, - generateNodeMap: function(node) { - // don't store root node in map - if (node.root !== null) { - this.nodeMap[node.rowId] = node; - } + generateNodeMap: function(root) { + const stack = [root]; + while (stack.length > 0) { + const node = stack.pop(); - node.children.each(function(child) { - this.generateNodeMap(child); - }.bind(this)); + // don't store root node in map + if (node.root !== null) + this.nodeMap[node.rowId] = node; + + stack.push(...node.children); + } }, getNode: function(rowId) { @@ -92,26 +91,22 @@ window.qBittorrent.FileTree = (function() { : this.nodeMap[rowId]; }, - getRowId: function(node) { + getRowId: (node) => { return node.rowId; }, /** - * Returns the nodes in dfs order + * Returns the nodes in DFS in-order */ toArray: function() { - const nodes = []; - this.root.children.each(function(node) { - this._getArrayOfNodes(node, nodes); - }.bind(this)); - return nodes; - }, - - _getArrayOfNodes: function(node, array) { - array.push(node); - node.children.each(function(child) { - this._getArrayOfNodes(child, array); - }.bind(this)); + const ret = []; + const stack = this.root.children.toReversed(); + while (stack.length > 0) { + const node = stack.pop(); + ret.push(node); + stack.push(...node.children.toReversed()); + } + return ret; } }); @@ -144,59 +139,71 @@ window.qBittorrent.FileTree = (function() { this.isFolder = true; }, - addChild(node) { + addChild: function(node) { this.children.push(node); }, /** - * Recursively calculate size of node and its children + * Calculate size of node and its children */ calculateSize: function() { - let size = 0; - let remaining = 0; - let progress = 0; - let availability = 0; - let checked = TriState.Unchecked; - let priority = FilePriority.Normal; + const stack = [this]; + const visited = []; - let isFirstFile = true; + while (stack.length > 0) { + const root = stack.at(-1); - this.children.each(function(node) { - if (node.isFolder) - node.calculateSize(); + if (root.isFolder) { + if (visited.at(-1) !== root) { + visited.push(root); + stack.push(...root.children); + continue; + } - size += node.size; + visited.pop(); - if (isFirstFile) { - priority = node.priority; - checked = node.checked; - isFirstFile = false; - } - else { - if (priority !== node.priority) - priority = FilePriority.Mixed; - if (checked !== node.checked) - checked = TriState.Partial; + // process children + root.size = 0; + root.remaining = 0; + root.progress = 0; + root.availability = 0; + root.checked = TriState.Unchecked; + root.priority = FilePriority.Normal; + let isFirstFile = true; + + for (const child of root.children) { + root.size += child.size; + + if (isFirstFile) { + root.priority = child.priority; + root.checked = child.checked; + isFirstFile = false; + } + else { + if (root.priority !== child.priority) + root.priority = FilePriority.Mixed; + if (root.checked !== child.checked) + root.checked = TriState.Partial; + } + + const isIgnored = (child.priority === FilePriority.Ignored); + if (!isIgnored) { + root.remaining += child.remaining; + root.progress += (child.progress * child.size); + root.availability += (child.availability * child.size); + } + } + + root.checked = root.autoCheckFolders ? root.checked : TriState.Checked; + root.progress /= root.size; + root.availability /= root.size; } - const isIgnored = (node.priority === FilePriority.Ignored); - if (!isIgnored) { - remaining += node.remaining; - progress += (node.progress * node.size); - availability += (node.availability * node.size); - } - }.bind(this)); - - this.size = size; - this.remaining = remaining; - this.checked = this.autoCheckFolders ? checked : TriState.Checked; - this.progress = (progress / size); - this.priority = priority; - this.availability = (availability / size); + stack.pop(); + } } }); return exports(); })(); - Object.freeze(window.qBittorrent.FileTree); diff --git a/src/webui/www/private/scripts/filesystem.js b/src/webui/www/private/scripts/filesystem.js index 8c151416c..311ad906d 100644 --- a/src/webui/www/private/scripts/filesystem.js +++ b/src/webui/www/private/scripts/filesystem.js @@ -26,16 +26,13 @@ * exception statement from your version. */ -'use strict'; +"use strict"; // This file is the JavaScript implementation of base/utils/fs.cpp -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.Filesystem = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.Filesystem ??= (() => { + const exports = () => { return { PathSeparator: PathSeparator, fileExtension: fileExtension, @@ -44,33 +41,32 @@ window.qBittorrent.Filesystem = (function() { }; }; - const PathSeparator = '/'; + const PathSeparator = "/"; /** * Returns the file extension part of a file name. */ - const fileExtension = function(filename) { - const pointIndex = filename.lastIndexOf('.'); + const fileExtension = (filename) => { + const pointIndex = filename.lastIndexOf("."); if (pointIndex === -1) - return ''; + return ""; return filename.substring(pointIndex + 1); }; - const fileName = function(filepath) { + const fileName = (filepath) => { const slashIndex = filepath.lastIndexOf(PathSeparator); if (slashIndex === -1) return filepath; return filepath.substring(slashIndex + 1); }; - const folderName = function(filepath) { + const folderName = (filepath) => { const slashIndex = filepath.lastIndexOf(PathSeparator); if (slashIndex === -1) - return ''; + return ""; return filepath.substring(0, slashIndex); }; return exports(); })(); - Object.freeze(window.qBittorrent.Filesystem); diff --git a/src/webui/www/private/scripts/lib/mocha-0.9.6.js b/src/webui/www/private/scripts/lib/mocha-0.9.6.js index 8d4c433fa..6c8ec465c 100644 --- a/src/webui/www/private/scripts/lib/mocha-0.9.6.js +++ b/src/webui/www/private/scripts/lib/mocha-0.9.6.js @@ -550,7 +550,7 @@ Element.implement({ morph.cancel(); var oldOptions = morph.options; } - var morph = this.get('morph',{ + var morph = this.retrieve('morph',{ duration:50, link:'chain' }); diff --git a/src/webui/www/private/scripts/lib/mocha.min.js b/src/webui/www/private/scripts/lib/mocha.min.js index f9cc30192..5654f5260 100644 --- a/src/webui/www/private/scripts/lib/mocha.min.js +++ b/src/webui/www/private/scripts/lib/mocha.min.js @@ -23,4 +23,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -var MUI=MochaUI=new Hash({version:"0.9.7",options:new Hash({theme:"default",advancedEffects:false,standardEffects:true}),path:{source:"scripts/source/",themes:"themes/",plugins:"plugins/"},themePath:function(){return MUI.path.themes+MUI.options.theme+"/"},files:new Hash()});MUI.files[MUI.path.source+"Core/Core.js"]="loaded";MUI.extend({Windows:{instances:new Hash()},ieSupport:"excanvas",updateContent:function(options){var options=$extend({element:null,childElement:null,method:null,data:null,title:null,content:null,loadMethod:null,url:null,scrollbars:null,padding:null,require:{},onContentLoaded:$empty},options);options.require=$extend({css:[],images:[],js:[],onload:null},options.require);var args={};if(!options.element){return}var element=options.element;if(MUI.Windows.instances.get(element.id)){args.recipient="window"}else{args.recipient="panel"}var instance=element.retrieve("instance");if(options.title){instance.titleEl.set("html",options.title)}var contentEl=instance.contentEl;args.contentContainer=options.childElement!=null?options.childElement:instance.contentEl;var contentWrapperEl=instance.contentWrapperEl;if(!options.loadMethod){if(!instance.options.loadMethod){if(!options.url){options.loadMethod="html"}else{options.loadMethod="xhr"}}else{options.loadMethod=instance.options.loadMethod}}var scrollbars=options.scrollbars||instance.options.scrollbars;if(args.contentContainer==instance.contentEl){contentWrapperEl.setStyles({overflow:scrollbars!=false&&options.loadMethod!="iframe"?"auto":"hidden"})}if(options.padding!=null){contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right})}if(args.contentContainer==contentEl){contentEl.empty().show();contentEl.getAllNext(".column").destroy();contentEl.getAllNext(".columnHandle").destroy()}args.onContentLoaded=function(){if(options.require.js.length||typeof options.require.onload=="function"){new MUI.Require({js:options.require.js,onload:function(){if(Browser.Engine.presto){options.require.onload.delay(100)}else{if (!$defined(options.require.onload)) return; options.require.onload()}(options.onContentLoaded&&options.onContentLoaded!=$empty)?options.onContentLoaded():instance.fireEvent("contentLoaded",element)}.bind(this)})}else{(options.onContentLoaded&&options.onContentLoaded!=$empty)?options.onContentLoaded():instance.fireEvent("contentLoaded",element)}};if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.loadSelect(instance,options,args)}.bind(this)})}else{this.loadSelect(instance,options,args)}},loadSelect:function(instance,options,args){switch(options.loadMethod){case"xhr":this.updateContentXHR(instance,options,args);break;case"iframe":this.updateContentIframe(instance,options,args);break;case"json":this.updateContentJSON(instance,options,args);break;case"html":default:this.updateContentHTML(instance,options,args);break}},updateContentJSON:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;new Request({url:options.url,update:contentContainer,method:options.method!=null?options.method:"get",data:options.data!=null?new Hash(options.data).toQueryString():"",evalScripts:false,evalResponse:false,headers:{"Content-Type":"application/json"},onRequest:function(){if(args.recipient=="window"&&contentContainer==contentEl){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}}.bind(this),onFailure:function(){if(contentContainer==contentEl){contentContainer.set("html","

      Error Loading XMLHttpRequest

      ");if(recipient=="window"){instance.hideSpinner()}else{if(recipient=="panel"&&$("spinner")){$("spinner").hide()}}}if(contentContainer==contentEl){contentContainer.set("html","

      Error Loading XMLHttpRequest

      ");if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}}.bind(this),onException:function(){}.bind(this),onSuccess:function(json){if(contentContainer==contentEl){if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}var json=JSON.decode(json);instance.fireEvent("loaded",$A([options.element,json,instance]))}}.bind(this),onComplete:function(){}.bind(this)}).get()},updateContentXHR:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var onContentLoaded=args.onContentLoaded;new Request.HTML({url:options.url,update:contentContainer,method:options.method!=null?options.method:"get",data:options.data!=null?new Hash(options.data).toQueryString():"",evalScripts:instance.options.evalScripts,evalResponse:instance.options.evalResponse,onRequest:function(){if(args.recipient=="window"&&contentContainer==contentEl){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}}.bind(this),onFailure:function(response){if(contentContainer==contentEl){var getTitle=new RegExp("[\n\rs]*(.*)[\n\rs]*","gmi");var error=getTitle.exec(response.responseText);if(!error){error="Unknown"}contentContainer.set("html","

      Error: "+error[1]+"

      ");if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}}.bind(this),onSuccess:function(){contentEl.addClass("pad");if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}Browser.Engine.trident4?onContentLoaded.delay(750):onContentLoaded()}.bind(this),onComplete:function(){}.bind(this)}).send()},updateContentIframe:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var contentWrapperEl=instance.contentWrapperEl;var onContentLoaded=args.onContentLoaded;if(instance.options.contentURL==""||contentContainer!=contentEl){return}contentEl.removeClass("pad");contentEl.setStyle("padding","0px");instance.iframeEl=new Element("iframe",{id:instance.options.id+"_iframe",name:instance.options.id+"_iframe","class":"mochaIframe",src:options.url,marginwidth:0,marginheight:0,frameBorder:0,scrolling:"auto",styles:{height:contentWrapperEl.offsetHeight-contentWrapperEl.getStyle("border-top").toInt()-contentWrapperEl.getStyle("border-bottom").toInt(),width:instance.panelEl?contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt():"100%"}}).injectInside(contentEl);instance.iframeEl.addEvent("load",function(e){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").hide()}}Browser.Engine.trident4?onContentLoaded.delay(50):onContentLoaded()}.bind(this));if(args.recipient=="window"){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}},updateContentHTML:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var onContentLoaded=args.onContentLoaded;var elementTypes=new Array("element","textnode","whitespace","collection");contentEl.addClass("pad");if(elementTypes.contains($type(options.content))){options.content.inject(contentContainer)}else{contentContainer.set("html",options.content)}if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}Browser.Engine.trident4?onContentLoaded.delay(50):onContentLoaded()},reloadIframe:function(iframe){Browser.Engine.gecko?$(iframe).src=$(iframe).src:top.frames[iframe].location.reload(true)},roundedRect:function(ctx,x,y,width,height,radius,rgb,a){ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},triangle:function(ctx,x,y,width,height,rgb,a){ctx.beginPath();ctx.moveTo(x+width,y);ctx.lineTo(x,y+height);ctx.lineTo(x+width,y+height);ctx.closePath();ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.fill()},circle:function(ctx,x,y,diameter,rgb,a){ctx.beginPath();ctx.arc(x,y,diameter,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.fill()},notification:function(message){new MUI.Window({loadMethod:"html",closeAfter:1500,type:"notification",addClass:"notification",content:message,width:220,height:40,y:53,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5})},toggleAdvancedEffects:function(link){if(MUI.options.advancedEffects==false){MUI.options.advancedEffects=true;if(link){this.toggleAdvancedEffectsLink=new Element("div",{"class":"check",id:"toggleAdvancedEffects_check"}).inject(link)}}else{MUI.options.advancedEffects=false;if(this.toggleAdvancedEffectsLink){this.toggleAdvancedEffectsLink.destroy()}}},toggleStandardEffects:function(link){if(MUI.options.standardEffects==false){MUI.options.standardEffects=true;if(link){this.toggleStandardEffectsLink=new Element("div",{"class":"check",id:"toggleStandardEffects_check"}).inject(link)}}else{MUI.options.standardEffects=false;if(this.toggleStandardEffectsLink){this.toggleStandardEffectsLink.destroy()}}},underlayInitialize:function(){var windowUnderlay=new Element("div",{id:"windowUnderlay",styles:{height:parent.getCoordinates().height,opacity:0.01,display:"none"}}).inject(document.body)},setUnderlaySize:function(){$("windowUnderlay").setStyle("height",parent.getCoordinates().height)}});function fixPNG(myImage){if(Browser.Engine.trident4&&document.body.filters){var imgID=(myImage.id)?"id='"+myImage.id+"' ":"";var imgClass=(myImage.className)?"class='"+myImage.className+"' ":"";var imgTitle=(myImage.title)?"title='"+myImage.title+"' ":"title='"+myImage.alt+"' ";var imgStyle="display:inline-block;"+myImage.style.cssText;var strNewHTML="";myImage.outerHTML=strNewHTML}}document.addEvent("mousedown",function(event){MUI.blurAll.delay(50)});window.addEvent("domready",function(){MUI.underlayInitialize()});window.addEvent("resize",function(){if($("windowUnderlay")){MUI.setUnderlaySize()}else{MUI.underlayInitialize()}});Element.implement({hide:function(){this.setStyle("display","none");return this},show:function(){this.setStyle("display","block");return this}});Element.implement({shake:function(radius,duration){radius=radius||3;duration=duration||500;duration=(duration/50).toInt()-1;var parent=this.getParent();if(parent!=$(document.body)&&parent.getStyle("position")=="static"){parent.setStyle("position","relative")}var position=this.getStyle("position");if(position=="static"){this.setStyle("position","relative");position="relative"}if(Browser.Engine.trident){parent.setStyle("height",parent.getStyle("height"))}var coords=this.getPosition(parent);if(position=="relative"&&!Browser.Engine.presto){coords.x-=parent.getStyle("paddingLeft").toInt();coords.y-=parent.getStyle("paddingTop").toInt()}var morph=this.retrieve("morph");if(morph){morph.cancel();var oldOptions=morph.options}var morph=this.get("morph",{duration:50,link:"chain"});for(var i=0;i]*>([\s\S]*?)<\/body>/i);text=(match)?match[1]:text;var container=new Element("div");return container.set("html",text)}});MUI.getCSSRule=function(selector){for(var ii=0;ii=200)&&(status<300))}});Browser.Request=function(){return $try(function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new XMLHttpRequest()})}}MUI.Require=new Class({Implements:[Options],options:{css:[],images:[],js:[],onload:$empty},initialize:function(options){this.setOptions(options);var options=this.options;this.assetsToLoad=options.css.length+options.images.length+options.js.length;this.assetsLoaded=0;var cssLoaded=0;if(options.css.length){options.css.each(function(sheet){this.getAsset(sheet,function(){if(cssLoaded==options.css.length-1){if(this.assetsLoaded==this.assetsToLoad-1){this.requireOnload()}else{this.assetsLoaded++;this.requireContinue.delay(50,this)}}else{cssLoaded++;this.assetsLoaded++}}.bind(this))}.bind(this))}else{if(!options.js.length&&!options.images.length){this.options.onload();return true}else{this.requireContinue.delay(50,this)}}},requireOnload:function(){this.assetsLoaded++;if(this.assetsLoaded==this.assetsToLoad){this.options.onload();return true}},requireContinue:function(){var options=this.options;if(options.images.length){options.images.each(function(image){this.getAsset(image,this.requireOnload.bind(this))}.bind(this))}if(options.js.length){options.js.each(function(script){this.getAsset(script,this.requireOnload.bind(this))}.bind(this))}},getAsset:function(source,onload){if(MUI.files[source]=="loaded"){if(typeof onload=="function"){onload()}return true}else{if(MUI.files[source]=="loading"){var tries=0;var checker=(function(){tries++;if(MUI.files[source]=="loading"&&tries<"100"){return}$clear(checker);if(typeof onload=="function"){onload()}}).periodical(50)}else{MUI.files[source]="loading";properties={onload:onload!="undefined"?onload:$empty};var oldonload=properties.onload;properties.onload=function(){MUI.files[source]="loaded";if(oldonload){oldonload()}}.bind(this);switch(source.match(/\.\w+$/)[0]){case".js":return Asset.javascript(source,properties);case".css":return Asset.css(source,properties);case".jpg":case".png":case".gif":return Asset.image(source,properties)}alert('The required file "'+source+'" could not be loaded')}}}});$extend(Asset,{javascript:function(source,properties){properties=$extend({onload:$empty,document:document,check:$lambda(true)},properties);if($(properties.id)){properties.onload();return $(properties.id)}var script=new Element("script",{src:source,type:"text/javascript"});var load=properties.onload.bind(script),check=properties.check,doc=properties.document;delete properties.onload;delete properties.check;delete properties.document;if(!Browser.Engine.webkit419&&!Browser.Engine.presto){script.addEvents({load:load,readystatechange:function(){if(Browser.Engine.trident&&["loaded","complete"].contains(this.readyState)){load()}}}).setProperties(properties)}else{var checker=(function(){if(!$try(check)){return}$clear(checker);Browser.Engine.presto?load.delay(500):load()}).periodical(50)}return script.inject(doc.head)},css:function(source,properties){properties=$extend({id:null,media:"screen",onload:$empty},properties);new Request({method:"get",url:source,onComplete:function(response){var newSheet=new Element("link",{id:properties.id,rel:"stylesheet",media:properties.media,type:"text/css",href:source}).inject(document.head);properties.onload()}.bind(this),onFailure:function(response){},onSuccess:function(){}.bind(this)}).send()}});MUI.extend({newWindowsFromHTML:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Windows-from-html.js"],onload:function(){new MUI.newWindowsFromHTML(arg)}})},newWindowsFromJSON:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Windows-from-json.js"],onload:function(){new MUI.newWindowsFromJSON(arg)}})},arrangeCascade:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Arrange-cascade.js"],onload:function(){new MUI.arrangeCascade()}})},arrangeTile:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Arrange-tile.js"],onload:function(){new MUI.arrangeTile()}})},saveWorkspace:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Layout/Workspaces.js"],onload:function(){new MUI.saveWorkspace()}})},loadWorkspace:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Layout/Workspaces.js"],onload:function(){new MUI.loadWorkspace()}})},Themes:{init:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Utilities/Themes.js"],onload:function(){MUI.Themes.init(arg)}})}}});MUI.files[MUI.path.source+"Window/Window.js"]="loading";MUI.extend({Windows:{instances:new Hash(),indexLevel:100,windowIDCount:0,windowsVisible:true,focusingWindow:false}});MUI.Windows.windowOptions={id:null,title:"New Window",icon:false,type:"window",require:{css:[],images:[],js:[],onload:null},loadMethod:null,method:"get",contentURL:null,data:null,closeAfter:false,evalScripts:true,evalResponse:false,content:"Window content",toolbar:false,toolbarPosition:"top",toolbarHeight:29,toolbarURL:"pages/lipsum.html",toolbarData:null,toolbarContent:"",toolbarOnload:$empty,toolbar2:false,toolbar2Position:"bottom",toolbar2Height:29,toolbar2URL:"pages/lipsum.html",toolbar2Data:null,toolbar2Content:"",toolbar2Onload:$empty,container:null,restrict:true,shape:"box",collapsible:true,minimizable:true,maximizable:true,closable:true,storeOnClose:false,modalOverlayClose:true,draggable:null,draggableGrid:false,draggableLimit:false,draggableSnap:false,resizable:null,resizeLimit:{x:[250,2500],y:[125,2000]},addClass:"",width:300,height:125,headerHeight:25,footerHeight:25,cornerRadius:8,x:null,y:null,scrollbars:true,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,shadowOffset:{x:0,y:1},controlsOffset:{right:6,top:6},useCanvas:true,useCanvasControls:true,useSpinner:true,headerStartColor:[250,250,250],headerStopColor:[229,229,229],bodyBgColor:[229,229,229],minimizeBgColor:[255,255,255],minimizeColor:[0,0,0],maximizeBgColor:[255,255,255],maximizeColor:[0,0,0],closeBgColor:[255,255,255],closeColor:[0,0,0],resizableColor:[254,254,254],onBeforeBuild:$empty,onContentLoaded:$empty,onFocus:$empty,onBlur:$empty,onResize:$empty,onMinimize:$empty,onMaximize:$empty,onRestore:$empty,onClose:$empty,onCloseComplete:$empty};MUI.Windows.windowOptionsOriginal=$merge(MUI.Windows.windowOptions);MUI.Window=new Class({Implements:[Events,Options],options:MUI.Windows.windowOptions,initialize:function(options){this.setOptions(options);var options=this.options;$extend(this,{mochaControlsWidth:0,minimizebuttonX:0,maximizebuttonX:0,closebuttonX:0,headerFooterShadow:options.headerHeight+options.footerHeight+(options.shadowBlur*2),oldTop:0,oldLeft:0,isMaximized:false,isMinimized:false,isCollapsed:false,timestamp:$time()});if(options.type!="window"){options.container=document.body;options.minimizable=false}if(!options.container){options.container=MUI.Desktop&&MUI.Desktop.desktop?MUI.Desktop.desktop:document.body}if(options.resizable==null){if(options.type!="window"||options.shape=="gauge"){options.resizable=false}else{options.resizable=true}}if(options.draggable==null){options.draggable=options.type!="window"?false:true}if(options.shape=="gauge"||options.type=="notification"){options.collapsible=false;options.maximizable=false;options.contentBgColor="transparent";options.scrollbars=false;options.footerHeight=0}if(options.type=="notification"){options.closable=false;options.headerHeight=0}if(MUI.Dock&&$(MUI.options.dock)){if(MUI.Dock.dock&&options.type!="modal"&&options.type!="modal2"){options.minimizable=options.minimizable}}else{options.minimizable=false}options.maximizable=MUI.Desktop&&MUI.Desktop.desktop&&options.maximizable&&options.type!="modal"&&options.type!="modal2";if(this.options.type=="modal2"){this.options.shadowBlur=0;this.options.shadowOffset={x:0,y:0};this.options.useSpinner=false;this.options.useCanvas=false;this.options.footerHeight=0;this.options.headerHeight=0}options.id=options.id||"win"+(++MUI.Windows.windowIDCount);this.windowEl=$(options.id);if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.newWindow()}.bind(this)})}else{this.newWindow()}return this},saveValues:function(){var coordinates=this.windowEl.getCoordinates();this.options.x=coordinates.left.toInt();this.options.y=coordinates.top.toInt()},newWindow:function(properties){var instances=MUI.Windows.instances;var instanceID=MUI.Windows.instances.get(this.options.id);var options=this.options;if(instanceID){var instance=instanceID}if(this.windowEl&&!this.isClosing){if(instance.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}else{if(instance.isCollapsed){MUI.collapseToggle(this.windowEl);setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}else{if(this.windowEl.hasClass("windowClosed")){if(instance.check){instance.check.show()}this.windowEl.removeClass("windowClosed");this.windowEl.setStyle("opacity",0);this.windowEl.addClass("mocha");if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.show()}MUI.Desktop.setDesktopSize()}instance.displayNewWindow()}else{var coordinates=document.getCoordinates();if(this.windowEl.getStyle("left").toInt()>coordinates.width||this.windowEl.getStyle("top").toInt()>coordinates.height){MUI.centerWindow(this.windowEl)}setTimeout(MUI.focusWindow.pass(this.windowEl,this),10);if(MUI.options.standardEffects==true){this.windowEl.shake()}}}}return}else{instances.set(options.id,this)}this.isClosing=false;this.fireEvent("onBeforeBuild");MUI.Windows.indexLevel++;this.windowEl=new Element("div",{"class":"mocha",id:options.id,styles:{position:"absolute",width:options.width,height:options.height,display:"block",opacity:0,zIndex:MUI.Windows.indexLevel+=2}});this.windowEl.store("instance",this);this.windowEl.addClass(options.addClass);if(options.type=="modal2"){this.windowEl.addClass("modal2")}if(Browser.Engine.trident&&options.shape=="gauge"){this.windowEl.setStyle("backgroundImage","url(../images/spacer.gif)")}if((this.options.type=="modal"||options.type=="modal2")&&Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){this.windowEl.setStyle("position","fixed")}}}if(options.loadMethod=="iframe"){options.padding={top:0,right:0,bottom:0,left:0}}this.insertWindowElements();this.titleEl.set("html",options.title);this.contentWrapperEl.setStyle("overflow","hidden");this.contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right});if(options.shape=="gauge"){if(options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","hidden")}else{this.controlsEl.setStyle("visibility","hidden")}this.windowEl.addEvent("mouseover",function(){this.mouseover=true;var showControls=function(){if(this.mouseover!=false){if(options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","visible")}else{this.controlsEl.setStyle("visibility","visible")}this.canvasHeaderEl.setStyle("visibility","visible");this.titleEl.show()}};showControls.delay(0,this)}.bind(this));this.windowEl.addEvent("mouseleave",function(){this.mouseover=false;if(this.options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","hidden")}else{this.controlsEl.setStyle("visibility","hidden")}this.canvasHeaderEl.setStyle("visibility","hidden");this.titleEl.hide()}.bind(this))}this.windowEl.inject(options.container);this.setColors();if(options.type!="notification"){this.setMochaControlsWidth()}MUI.updateContent({element:this.windowEl,content:options.content,method:options.method,url:options.contentURL,data:options.data,onContentLoaded:null,require:{js:options.require.js,onload:options.require.onload}});if(this.options.toolbar==true){MUI.updateContent({element:this.windowEl,childElement:this.toolbarEl,content:options.toolbarContent,loadMethod:"xhr",method:options.method,url:options.toolbarURL,data:options.toolbarData,onContentLoaded:options.toolbarOnload})}if(this.options.toolbar2==true){MUI.updateContent({element:this.windowEl,childElement:this.toolbar2El,content:options.toolbar2Content,loadMethod:"xhr",method:options.method,url:options.toolbar2URL,data:options.toolbar2Data,onContentLoaded:options.toolbar2Onload})}this.drawWindow();this.attachDraggable();this.attachResizable();this.setupEvents();if(options.resizable){this.adjustHandles()}if(options.container==document.body||options.container==MUI.Desktop.desktop){var dimensions=window.getSize()}else{var dimensions=$(this.options.container).getSize()}var x,y;if(!options.y){if(MUI.Desktop&&MUI.Desktop.desktop){y=(dimensions.y*0.5)-(this.windowEl.offsetHeight*0.5);if(y<-options.shadowBlur){y=-options.shadowBlur}}else{y=window.getScroll().y+(window.getSize().y*0.5)-(this.windowEl.offsetHeight*0.5);if(y<-options.shadowBlur){y=-options.shadowBlur}}}else{y=options.y-options.shadowBlur}if(this.options.x==null){x=(dimensions.x*0.5)-(this.windowEl.offsetWidth*0.5);if(x<-options.shadowBlur){x=-options.shadowBlur}}else{x=options.x-options.shadowBlur}this.windowEl.setStyles({top:y,left:x});this.opacityMorph=new Fx.Morph(this.windowEl,{duration:350,transition:Fx.Transitions.Sine.easeInOut,onComplete:function(){if(Browser.Engine.trident){this.drawWindow()}}.bind(this)});this.displayNewWindow();this.morph=new Fx.Morph(this.windowEl,{duration:200});this.windowEl.store("morph",this.morph);this.resizeMorph=new Fx.Elements([this.contentWrapperEl,this.windowEl],{duration:400,transition:Fx.Transitions.Sine.easeInOut,onStart:function(){this.resizeAnimation=this.drawWindow.periodical(20,this)}.bind(this),onComplete:function(){$clear(this.resizeAnimation);this.drawWindow();if(this.iframeEl){this.iframeEl.setStyle("visibility","visible")}}.bind(this)});this.windowEl.store("resizeMorph",this.resizeMorph);if($(this.windowEl.id+"LinkCheck")){this.check=new Element("div",{"class":"check",id:this.options.id+"_check"}).inject(this.windowEl.id+"LinkCheck")}if(this.options.closeAfter!=false){MUI.closeWindow.delay(this.options.closeAfter,this,this.windowEl)}if(MUI.Dock&&$(MUI.options.dock)&&this.options.type=="window"){MUI.Dock.createDockTab(this.windowEl)}},displayNewWindow:function(){options=this.options;if(options.type=="modal"||options.type=="modal2"){MUI.currentModal=this.windowEl;if(Browser.Engine.trident4){$("modalFix").show()}$("modalOverlay").show();if(MUI.options.advancedEffects==false){$("modalOverlay").setStyle("opacity",0.6);this.windowEl.setStyles({zIndex:11000,opacity:1})}else{MUI.Modal.modalOverlayCloseMorph.cancel();MUI.Modal.modalOverlayOpenMorph.start({opacity:0.6});this.windowEl.setStyles({zIndex:11000});this.opacityMorph.start({opacity:1})}$$(".dockTab").removeClass("activeDockTab");$$(".mocha").removeClass("isFocused");this.windowEl.addClass("isFocused")}else{if(MUI.options.advancedEffects==false){this.windowEl.setStyle("opacity",1);setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}else{if(Browser.Engine.trident){this.drawWindow(false)}this.opacityMorph.start({opacity:1});setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}}},setupEvents:function(){var windowEl=this.windowEl;if(this.closeButtonEl){this.closeButtonEl.addEvent("click",function(e){new Event(e).stop();MUI.closeWindow(windowEl)}.bind(this))}if(this.options.type=="window"){windowEl.addEvent("mousedown",function(e){if(Browser.Engine.trident){new Event(e).stop()}MUI.focusWindow(windowEl);if(windowEl.getStyle("top").toInt()<-this.options.shadowBlur){windowEl.setStyle("top",-this.options.shadowBlur)}}.bind(this))}if(this.minimizeButtonEl){this.minimizeButtonEl.addEvent("click",function(e){new Event(e).stop();MUI.Dock.minimizeWindow(windowEl)}.bind(this))}if(this.maximizeButtonEl){this.maximizeButtonEl.addEvent("click",function(e){new Event(e).stop();if(this.isMaximized){MUI.Desktop.restoreWindow(windowEl)}else{MUI.Desktop.maximizeWindow(windowEl)}}.bind(this))}if(this.options.collapsible==true){this.titleEl.addEvent("selectstart",function(e){e=new Event(e).stop()}.bind(this));if(Browser.Engine.trident){this.titleBarEl.addEvent("mousedown",function(e){this.titleEl.setCapture()}.bind(this));this.titleBarEl.addEvent("mouseup",function(e){this.titleEl.releaseCapture()}.bind(this))}this.titleBarEl.addEvent("dblclick",function(e){e=new Event(e).stop();MUI.collapseToggle(this.windowEl)}.bind(this))}},attachDraggable:function(){var windowEl=this.windowEl;if(!this.options.draggable){return}this.windowDrag=new Drag.Move(windowEl,{handle:this.titleBarEl,container:this.options.restrict==true?$(this.options.container):false,grid:this.options.draggableGrid,limit:this.options.draggableLimit,snap:this.options.draggableSnap,onStart:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){MUI.focusWindow(windowEl);$("windowUnderlay").show()}if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","hidden")}else{this.iframeEl.hide()}}}.bind(this),onComplete:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){$("windowUnderlay").hide()}if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","visible")}else{this.iframeEl.show()}}this.saveValues()}.bind(this)})},attachResizable:function(){var windowEl=this.windowEl;if(!this.options.resizable){return}this.resizable1=this.windowEl.makeResizable({handle:[this.n,this.ne,this.nw],limit:{y:[function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[1]}.bind(this),function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[0]}.bind(this)]},modifiers:{x:false,y:"top"},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.y2=this.coords.top.toInt()+this.contentWrapperEl.offsetHeight}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("height",this.y2-this.coords.top.toInt());this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable2=this.contentWrapperEl.makeResizable({handle:[this.e,this.ne],limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)]},modifiers:{x:"width",y:false},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable3=this.contentWrapperEl.makeResizable({container:this.options.restrict==true?$(this.options.container):false,handle:this.se,limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)],y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:"width",y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable4=this.contentWrapperEl.makeResizable({handle:[this.s,this.sw],limit:{y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:false,y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable5=this.windowEl.makeResizable({handle:[this.w,this.sw,this.nw],limit:{x:[function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[1]}.bind(this),function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[0]}.bind(this)]},modifiers:{x:"left",y:false},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.x2=this.coords.left.toInt()+this.contentWrapperEl.offsetWidth}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("width",this.x2-this.coords.left.toInt());this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)})},resizeOnStart:function(){$("windowUnderlay").show();if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","hidden")}else{this.iframeEl.hide()}}},resizeOnDrag:function(){if(Browser.Engine.gecko){this.windowEl.getElements(".panel").each(function(panel){panel.store("oldOverflow",panel.getStyle("overflow"));panel.setStyle("overflow","visible")})}this.drawWindow();this.adjustHandles();if(Browser.Engine.gecko){this.windowEl.getElements(".panel").each(function(panel){panel.setStyle("overflow",panel.retrieve("oldOverflow"))})}},resizeOnComplete:function(){$("windowUnderlay").hide();if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","visible")}else{this.iframeEl.show();this.iframeEl.setStyle("width","99%");this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight);this.iframeEl.setStyle("width","100%");this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight)}}if(this.contentWrapperEl.getChildren(".column")!=null){MUI.rWidth(this.contentWrapperEl);this.contentWrapperEl.getChildren(".column").each(function(column){MUI.panelHeight(column)})}this.fireEvent("onResize",this.windowEl)},adjustHandles:function(){var shadowBlur=this.options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=this.options.shadowOffset;var top=shadowBlur-shadowOffset.y-1;var right=shadowBlur+shadowOffset.x-1;var bottom=shadowBlur+shadowOffset.y-1;var left=shadowBlur-shadowOffset.x-1;var coordinates=this.windowEl.getCoordinates();var width=coordinates.width-shadowBlur2x+2;var height=coordinates.height-shadowBlur2x+2;this.n.setStyles({top:top,left:left+10,width:width-20});this.e.setStyles({top:top+10,right:right,height:height-30});this.s.setStyles({bottom:bottom,left:left+10,width:width-30});this.w.setStyles({top:top+10,left:left,height:height-20});this.ne.setStyles({top:top,right:right});this.se.setStyles({bottom:bottom,right:right});this.sw.setStyles({bottom:bottom,left:left});this.nw.setStyles({top:top,left:left})},detachResizable:function(){this.resizable1.detach();this.resizable2.detach();this.resizable3.detach();this.resizable4.detach();this.resizable5.detach();this.windowEl.getElements(".handle").hide()},reattachResizable:function(){this.resizable1.attach();this.resizable2.attach();this.resizable3.attach();this.resizable4.attach();this.resizable5.attach();this.windowEl.getElements(".handle").show()},insertWindowElements:function(){var options=this.options;var height=options.height;var width=options.width;var id=options.id;var cache={};if(Browser.Engine.trident4){cache.zIndexFixEl=new Element("iframe",{id:id+"_zIndexFix","class":"zIndexFix",scrolling:"no",marginWidth:0,marginHeight:0,src:"",styles:{position:"absolute"}}).inject(this.windowEl)}cache.overlayEl=new Element("div",{id:id+"_overlay","class":"mochaOverlay",styles:{position:"absolute",top:0,left:0}}).inject(this.windowEl);cache.titleBarEl=new Element("div",{id:id+"_titleBar","class":"mochaTitlebar",styles:{cursor:options.draggable?"move":"default"}}).inject(cache.overlayEl,"top");cache.titleEl=new Element("h3",{id:id+"_title","class":"mochaTitle"}).inject(cache.titleBarEl);if(options.icon!=false){cache.titleEl.setStyles({"padding-left":28,background:"url("+options.icon+") 5px 4px no-repeat"})}cache.contentBorderEl=new Element("div",{id:id+"_contentBorder","class":"mochaContentBorder"}).inject(cache.overlayEl);if(options.toolbar){cache.toolbarWrapperEl=new Element("div",{id:id+"_toolbarWrapper","class":"mochaToolbarWrapper",styles:{height:options.toolbarHeight}}).inject(cache.contentBorderEl,options.toolbarPosition=="bottom"?"after":"before");if(options.toolbarPosition=="bottom"){cache.toolbarWrapperEl.addClass("bottom")}cache.toolbarEl=new Element("div",{id:id+"_toolbar","class":"mochaToolbar",styles:{height:options.toolbarHeight}}).inject(cache.toolbarWrapperEl)}if(options.toolbar2){cache.toolbar2WrapperEl=new Element("div",{id:id+"_toolbar2Wrapper","class":"mochaToolbarWrapper",styles:{height:options.toolbar2Height}}).inject(cache.contentBorderEl,options.toolbar2Position=="bottom"?"after":"before");if(options.toolbar2Position=="bottom"){cache.toolbar2WrapperEl.addClass("bottom")}cache.toolbar2El=new Element("div",{id:id+"_toolbar2","class":"mochaToolbar",styles:{height:options.toolbar2Height}}).inject(cache.toolbar2WrapperEl)}cache.contentWrapperEl=new Element("div",{id:id+"_contentWrapper","class":"mochaContentWrapper",styles:{width:width+"px",height:height+"px"}}).inject(cache.contentBorderEl);if(this.options.shape=="gauge"){cache.contentBorderEl.setStyle("borderWidth",0)}cache.contentEl=new Element("div",{id:id+"_content","class":"mochaContent"}).inject(cache.contentWrapperEl);if(this.options.useCanvas==true&&Browser.Engine.trident!=true){cache.canvasEl=new Element("canvas",{id:id+"_canvas","class":"mochaCanvas",width:10,height:10}).inject(this.windowEl)}if(this.options.useCanvas==true&&Browser.Engine.trident){cache.canvasEl=new Element("canvas",{id:id+"_canvas","class":"mochaCanvas",width:50000,height:20000,styles:{position:"absolute",top:0,left:0}}).inject(this.windowEl);if(MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasEl);cache.canvasEl=this.windowEl.getElement(".mochaCanvas")}}cache.controlsEl=new Element("div",{id:id+"_controls","class":"mochaControls"}).inject(cache.overlayEl,"after");if(options.useCanvasControls==true){cache.canvasControlsEl=new Element("canvas",{id:id+"_canvasControls","class":"mochaCanvasControls",width:14,height:14}).inject(this.windowEl);if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasControlsEl);cache.canvasControlsEl=this.windowEl.getElement(".mochaCanvasControls")}}if(options.closable){cache.closeButtonEl=new Element("div",{id:id+"_closeButton","class":"mochaCloseButton mochaWindowButton",title:"Close"}).inject(cache.controlsEl)}if(options.maximizable){cache.maximizeButtonEl=new Element("div",{id:id+"_maximizeButton","class":"mochaMaximizeButton mochaWindowButton",title:"Maximize"}).inject(cache.controlsEl)}if(options.minimizable){cache.minimizeButtonEl=new Element("div",{id:id+"_minimizeButton","class":"mochaMinimizeButton mochaWindowButton",title:"Minimize"}).inject(cache.controlsEl)}if(options.useSpinner==true&&options.shape!="gauge"&&options.type!="notification"){cache.spinnerEl=new Element("div",{id:id+"_spinner","class":"mochaSpinner",width:16,height:16}).inject(this.windowEl,"bottom")}if(this.options.shape=="gauge"){cache.canvasHeaderEl=new Element("canvas",{id:id+"_canvasHeader","class":"mochaCanvasHeader",width:this.options.width,height:26}).inject(this.windowEl,"bottom");if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasHeaderEl);cache.canvasHeaderEl=this.windowEl.getElement(".mochaCanvasHeader")}}if(Browser.Engine.trident){cache.overlayEl.setStyle("zIndex",2)}if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){cache.overlayEl.setStyle("overflow","auto")}}}if(options.resizable){cache.n=new Element("div",{id:id+"_resizeHandle_n","class":"handle",styles:{top:0,left:10,cursor:"n-resize"}}).inject(cache.overlayEl,"after");cache.ne=new Element("div",{id:id+"_resizeHandle_ne","class":"handle corner",styles:{top:0,right:0,cursor:"ne-resize"}}).inject(cache.overlayEl,"after");cache.e=new Element("div",{id:id+"_resizeHandle_e","class":"handle",styles:{top:10,right:0,cursor:"e-resize"}}).inject(cache.overlayEl,"after");cache.se=new Element("div",{id:id+"_resizeHandle_se","class":"handle cornerSE",styles:{bottom:0,right:0,cursor:"se-resize"}}).inject(cache.overlayEl,"after");cache.s=new Element("div",{id:id+"_resizeHandle_s","class":"handle",styles:{bottom:0,left:10,cursor:"s-resize"}}).inject(cache.overlayEl,"after");cache.sw=new Element("div",{id:id+"_resizeHandle_sw","class":"handle corner",styles:{bottom:0,left:0,cursor:"sw-resize"}}).inject(cache.overlayEl,"after");cache.w=new Element("div",{id:id+"_resizeHandle_w","class":"handle",styles:{top:10,left:0,cursor:"w-resize"}}).inject(cache.overlayEl,"after");cache.nw=new Element("div",{id:id+"_resizeHandle_nw","class":"handle corner",styles:{top:0,left:0,cursor:"nw-resize"}}).inject(cache.overlayEl,"after")}$extend(this,cache)},setColors:function(){if(this.options.useCanvas==true){var pattern=/\?(.*?)\)/;if(this.titleBarEl.getStyle("backgroundImage")!="none"){var gradient=this.titleBarEl.getStyle("backgroundImage");gradient=gradient.match(pattern)[1];gradient=gradient.parseQueryString();var gradientFrom=gradient.from;var gradientTo=gradient.to.replace(/\"/,"");this.options.headerStartColor=new Color(gradientFrom);this.options.headerStopColor=new Color(gradientTo);this.titleBarEl.addClass("replaced")}else{if(this.titleBarEl.getStyle("background-color")!==""&&this.titleBarEl.getStyle("background-color")!=="transparent"){this.options.headerStartColor=new Color(this.titleBarEl.getStyle("background-color")).mix("#fff",20);this.options.headerStopColor=new Color(this.titleBarEl.getStyle("background-color")).mix("#000",20);this.titleBarEl.addClass("replaced")}}if(this.windowEl.getStyle("background-color")!==""&&this.windowEl.getStyle("background-color")!=="transparent"){this.options.bodyBgColor=new Color(this.windowEl.getStyle("background-color"));this.windowEl.addClass("replaced")}if(this.options.resizable&&this.se.getStyle("background-color")!==""&&this.se.getStyle("background-color")!=="transparent"){this.options.resizableColor=new Color(this.se.getStyle("background-color"));this.se.addClass("replaced")}}if(this.options.useCanvasControls==true){if(this.minimizeButtonEl){if(this.minimizeButtonEl.getStyle("color")!==""&&this.minimizeButtonEl.getStyle("color")!=="transparent"){this.options.minimizeColor=new Color(this.minimizeButtonEl.getStyle("color"))}if(this.minimizeButtonEl.getStyle("background-color")!==""&&this.minimizeButtonEl.getStyle("background-color")!=="transparent"){this.options.minimizeBgColor=new Color(this.minimizeButtonEl.getStyle("background-color"));this.minimizeButtonEl.addClass("replaced")}}if(this.maximizeButtonEl){if(this.maximizeButtonEl.getStyle("color")!==""&&this.maximizeButtonEl.getStyle("color")!=="transparent"){this.options.maximizeColor=new Color(this.maximizeButtonEl.getStyle("color"))}if(this.maximizeButtonEl.getStyle("background-color")!==""&&this.maximizeButtonEl.getStyle("background-color")!=="transparent"){this.options.maximizeBgColor=new Color(this.maximizeButtonEl.getStyle("background-color"));this.maximizeButtonEl.addClass("replaced")}}if(this.closeButtonEl){if(this.closeButtonEl.getStyle("color")!==""&&this.closeButtonEl.getStyle("color")!=="transparent"){this.options.closeColor=new Color(this.closeButtonEl.getStyle("color"))}if(this.closeButtonEl.getStyle("background-color")!==""&&this.closeButtonEl.getStyle("background-color")!=="transparent"){this.options.closeBgColor=new Color(this.closeButtonEl.getStyle("background-color"));this.closeButtonEl.addClass("replaced")}}}},drawWindow:function(shadows){if(this.drawingWindow==true){return}this.drawingWindow=true;if(this.isCollapsed){this.drawWindowCollapsed(shadows);return}var windowEl=this.windowEl;var options=this.options;var shadowBlur=options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=this.options.shadowOffset;this.overlayEl.setStyles({width:this.contentWrapperEl.offsetWidth});if(this.iframeEl){this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight)}var borderHeight=this.contentBorderEl.getStyle("border-top").toInt()+this.contentBorderEl.getStyle("border-bottom").toInt();var toolbarHeight=this.toolbarWrapperEl?this.toolbarWrapperEl.getStyle("height").toInt()+this.toolbarWrapperEl.getStyle("border-top").toInt():0;var toolbar2Height=this.toolbar2WrapperEl?this.toolbar2WrapperEl.getStyle("height").toInt()+this.toolbar2WrapperEl.getStyle("border-top").toInt():0;this.headerFooterShadow=options.headerHeight+options.footerHeight+shadowBlur2x;var height=this.contentWrapperEl.getStyle("height").toInt()+this.headerFooterShadow+toolbarHeight+toolbar2Height+borderHeight;var width=this.contentWrapperEl.getStyle("width").toInt()+shadowBlur2x;this.windowEl.setStyles({height:height,width:width});this.overlayEl.setStyles({height:height,top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});if(this.options.useCanvas==true){if(Browser.Engine.trident){this.canvasEl.height=20000;this.canvasEl.width=50000}this.canvasEl.height=height;this.canvasEl.width=width}if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:width,height:height})}this.titleBarEl.setStyles({width:width-shadowBlur2x,height:options.headerHeight});if(options.useSpinner==true&&options.shape!="gauge"&&options.type!="notification"){this.spinnerEl.setStyles({left:shadowBlur-shadowOffset.x+3,bottom:shadowBlur+shadowOffset.y+4})}if(this.options.useCanvas!=false){var ctx=this.canvasEl.getContext("2d");ctx.clearRect(0,0,width,height);switch(options.shape){case"box":this.drawBox(ctx,width,height,shadowBlur,shadowOffset,shadows);break;case"gauge":this.drawGauge(ctx,width,height,shadowBlur,shadowOffset,shadows);break}if(options.resizable){MUI.triangle(ctx,width-(shadowBlur+shadowOffset.x+17),height-(shadowBlur+shadowOffset.y+18),11,11,options.resizableColor,1)}if(Browser.Engine.trident){MUI.triangle(ctx,0,0,10,10,options.resizableColor,0)}}if(options.type!="notification"&&options.useCanvasControls==true){this.drawControls(width,height,shadows)}if(MUI.Desktop&&this.contentWrapperEl.getChildren(".column").length!=0){MUI.rWidth(this.contentWrapperEl);this.contentWrapperEl.getChildren(".column").each(function(column){MUI.panelHeight(column)})}this.drawingWindow=false;return this},drawWindowCollapsed:function(shadows){var windowEl=this.windowEl;var options=this.options;var shadowBlur=options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=options.shadowOffset;var headerShadow=options.headerHeight+shadowBlur2x+2;var height=headerShadow;var width=this.contentWrapperEl.getStyle("width").toInt()+shadowBlur2x;this.windowEl.setStyle("height",height);this.overlayEl.setStyles({height:height,top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:width,height:height})}this.windowEl.setStyle("width",width);this.overlayEl.setStyle("width",width);this.titleBarEl.setStyles({width:width-shadowBlur2x,height:options.headerHeight});if(this.options.useCanvas!=false){this.canvasEl.height=height;this.canvasEl.width=width;var ctx=this.canvasEl.getContext("2d");ctx.clearRect(0,0,width,height);this.drawBoxCollapsed(ctx,width,height,shadowBlur,shadowOffset,shadows);if(options.useCanvasControls==true){this.drawControls(width,height,shadows)}if(Browser.Engine.trident){MUI.triangle(ctx,0,0,10,10,options.resizableColor,0)}}this.drawingWindow=false;return this},drawControls:function(width,height,shadows){var options=this.options;var shadowBlur=options.shadowBlur;var shadowOffset=options.shadowOffset;var controlsOffset=options.controlsOffset;this.controlsEl.setStyles({right:shadowBlur+shadowOffset.x+controlsOffset.right,top:shadowBlur-shadowOffset.y+controlsOffset.top});this.canvasControlsEl.setStyles({right:shadowBlur+shadowOffset.x+controlsOffset.right,top:shadowBlur-shadowOffset.y+controlsOffset.top});this.closebuttonX=options.closable?this.mochaControlsWidth-7:this.mochaControlsWidth+12;this.maximizebuttonX=this.closebuttonX-(options.maximizable?19:0);this.minimizebuttonX=this.maximizebuttonX-(options.minimizable?19:0);var ctx2=this.canvasControlsEl.getContext("2d");ctx2.clearRect(0,0,100,100);if(this.options.closable){this.closebutton(ctx2,this.closebuttonX,7,options.closeBgColor,1,options.closeColor,1)}if(this.options.maximizable){this.maximizebutton(ctx2,this.maximizebuttonX,7,options.maximizeBgColor,1,options.maximizeColor,1)}if(this.options.minimizable){this.minimizebutton(ctx2,this.minimizebuttonX,7,options.minimizeBgColor,1,options.minimizeColor,1)}if(Browser.Engine.trident){MUI.circle(ctx2,0,0,3,this.options.resizableColor,0)}},drawBox:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var shadowBlur2x=shadowBlur*2;var cornerRadius=this.options.cornerRadius;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.roundedRect(ctx,shadowOffset.x+x,shadowOffset.y+x,width-(x*2)-shadowOffset.x,height-(x*2)-shadowOffset.y,cornerRadius+(shadowBlur-x),[0,0,0],x==shadowBlur?0.29:0.065+(x*0.01))}}this.bodyRoundedRect(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,height-shadowBlur2x,cornerRadius,options.bodyBgColor);if(this.options.type!="notification"){this.topRoundedRect(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,options.headerHeight,cornerRadius,options.headerStartColor,options.headerStopColor)}},drawBoxCollapsed:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var shadowBlur2x=shadowBlur*2;var cornerRadius=options.cornerRadius;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.roundedRect(ctx,shadowOffset.x+x,shadowOffset.y+x,width-(x*2)-shadowOffset.x,height-(x*2)-shadowOffset.y,cornerRadius+(shadowBlur-x),[0,0,0],x==shadowBlur?0.3:0.06+(x*0.01))}}this.topRoundedRect2(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,options.headerHeight+2,cornerRadius,options.headerStartColor,options.headerStopColor)},drawGauge:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var radius=(width*0.5)-(shadowBlur)+16;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.circle(ctx,width*0.5+shadowOffset.x,(height+options.headerHeight)*0.5+shadowOffset.x,(width*0.5)-(x*2)-shadowOffset.x,[0,0,0],x==shadowBlur?0.75:0.075+(x*0.04))}}MUI.circle(ctx,width*0.5-shadowOffset.x,(height+options.headerHeight)*0.5-shadowOffset.y,(width*0.5)-shadowBlur,options.bodyBgColor,1);this.canvasHeaderEl.setStyles({top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});var ctx=this.canvasHeaderEl.getContext("2d");ctx.clearRect(0,0,width,100);ctx.beginPath();ctx.lineWidth=24;ctx.lineCap="round";ctx.moveTo(13,13);ctx.lineTo(width-(shadowBlur*2)-13,13);ctx.strokeStyle="rgba(0, 0, 0, .65)";ctx.stroke()},bodyRoundedRect:function(ctx,x,y,width,height,radius,rgb){ctx.fillStyle="rgba("+rgb.join(",")+", 1)";ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},topRoundedRect:function(ctx,x,y,width,height,radius,headerStartColor,headerStopColor){var lingrad=ctx.createLinearGradient(0,0,0,height);lingrad.addColorStop(0,"rgb("+headerStartColor.join(",")+")");lingrad.addColorStop(1,"rgb("+headerStopColor.join(",")+")");ctx.fillStyle=lingrad;ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(x,y+height);ctx.lineTo(x+width,y+height);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},topRoundedRect2:function(ctx,x,y,width,height,radius,headerStartColor,headerStopColor){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){ctx.fillStyle="rgba("+headerStopColor.join(",")+", 1)"}else{var lingrad=ctx.createLinearGradient(0,this.options.shadowBlur-1,0,height+this.options.shadowBlur+3);lingrad.addColorStop(0,"rgb("+headerStartColor.join(",")+")");lingrad.addColorStop(1,"rgb("+headerStopColor.join(",")+")");ctx.fillStyle=lingrad}ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},maximizebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x,y-3.5);ctx.lineTo(x,y+3.5);ctx.moveTo(x-3.5,y);ctx.lineTo(x+3.5,y);ctx.stroke()},closebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x-3,y-3);ctx.lineTo(x+3,y+3);ctx.moveTo(x+3,y-3);ctx.lineTo(x-3,y+3);ctx.stroke()},minimizebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x-3.5,y);ctx.lineTo(x+3.5,y);ctx.stroke()},setMochaControlsWidth:function(){this.mochaControlsWidth=0;var options=this.options;if(options.minimizable){this.mochaControlsWidth+=(this.minimizeButtonEl.getStyle("margin-left").toInt()+this.minimizeButtonEl.getStyle("width").toInt())}if(options.maximizable){this.mochaControlsWidth+=(this.maximizeButtonEl.getStyle("margin-left").toInt()+this.maximizeButtonEl.getStyle("width").toInt())}if(options.closable){this.mochaControlsWidth+=(this.closeButtonEl.getStyle("margin-left").toInt()+this.closeButtonEl.getStyle("width").toInt())}this.controlsEl.setStyle("width",this.mochaControlsWidth);if(options.useCanvasControls==true){this.canvasControlsEl.setProperty("width",this.mochaControlsWidth)}},hideSpinner:function(){if(this.spinnerEl){this.spinnerEl.hide()}return this},showSpinner:function(){if(this.spinnerEl){this.spinnerEl.show()}return this},close:function(){if(!this.isClosing){MUI.closeWindow(this.windowEl)}return this},minimize:function(){MUI.Dock.minimizeWindow(this.windowEl);return this},maximize:function(){if(this.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}MUI.Desktop.maximizeWindow(this.windowEl);return this},restore:function(){if(this.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}else{if(this.isMaximized){MUI.Desktop.restoreWindow(this.windowEl)}}return this},resize:function(options){MUI.resizeWindow(this.windowEl,options);return this},center:function(){MUI.centerWindow(this.windowEl);return this},hide:function(){this.windowEl.setStyle("display","none");return this},show:function(){this.windowEl.setStyle("display","block");return this}});MUI.extend({closeWindow:function(windowEl){var instance=windowEl.retrieve("instance");if(windowEl!=$(windowEl)||instance.isClosing){return}instance.isClosing=true;instance.fireEvent("onClose",windowEl);if(instance.options.storeOnClose){this.storeOnClose(instance,windowEl);return}if(instance.check){instance.check.destroy()}if((instance.options.type=="modal"||instance.options.type=="modal2")&&Browser.Engine.trident4){$("modalFix").hide()}if(MUI.options.advancedEffects==false){if(instance.options.type=="modal"||instance.options.type=="modal2"){$("modalOverlay").setStyle("opacity",0)}MUI.closingJobs(windowEl);return true}else{if(Browser.Engine.trident){instance.drawWindow(false)}if(instance.options.type=="modal"||instance.options.type=="modal2"){MUI.Modal.modalOverlayCloseMorph.start({opacity:0})}var closeMorph=new Fx.Morph(windowEl,{duration:120,onComplete:function(){MUI.closingJobs(windowEl);return true}.bind(this)});closeMorph.start({opacity:0.4})}},closingJobs:function(windowEl){var instances=MUI.Windows.instances;var instance=instances.get(windowEl.id);windowEl.setStyle("visibility","hidden");if(Browser.Engine.trident){windowEl.dispose()}else{windowEl.destroy()}instance.fireEvent("onCloseComplete");if(instance.options.type!="notification"){var newFocus=this.getWindowWithHighestZindex();this.focusWindow(newFocus)}instances.erase(instance.options.id);if(this.loadingWorkspace==true){this.windowUnload()}if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){MUI.Dock.dockSortables.removeItems(currentButton).destroy()}MUI.Desktop.setDesktopSize()}},storeOnClose:function(instance,windowEl){if(instance.check){instance.check.hide()}windowEl.setStyles({zIndex:-1});windowEl.addClass("windowClosed");windowEl.removeClass("mocha");if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.hide()}MUI.Desktop.setDesktopSize()}instance.fireEvent("onCloseComplete");if(instance.options.type!="notification"){var newFocus=this.getWindowWithHighestZindex();this.focusWindow(newFocus)}instance.isClosing=false},closeAll:function(){$$(".mocha").each(function(windowEl){this.closeWindow(windowEl)}.bind(this))},collapseToggle:function(windowEl){var instance=windowEl.retrieve("instance");var handles=windowEl.getElements(".handle");if(instance.isMaximized==true){return}if(instance.isCollapsed==false){instance.isCollapsed=true;handles.hide();if(instance.iframeEl){instance.iframeEl.setStyle("visibility","hidden")}instance.contentBorderEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000});if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000})}instance.drawWindowCollapsed()}else{instance.isCollapsed=false;instance.drawWindow();instance.contentBorderEl.setStyles({visibility:"visible",position:null,top:null,left:null});if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.setStyles({visibility:"visible",position:null,top:null,left:null})}if(instance.iframeEl){instance.iframeEl.setStyle("visibility","visible")}handles.show()}},toggleWindowVisibility:function(){MUI.Windows.instances.each(function(instance){if(instance.options.type=="modal"||instance.options.type=="modal2"||instance.isMinimized==true){return}var id=$(instance.options.id);if(id.getStyle("visibility")=="visible"){if(instance.iframe){instance.iframeEl.setStyle("visibility","hidden")}if(instance.toolbarEl){instance.toolbarWrapperEl.setStyle("visibility","hidden")}instance.contentBorderEl.setStyle("visibility","hidden");id.setStyle("visibility","hidden");MUI.Windows.windowsVisible=false}else{id.setStyle("visibility","visible");instance.contentBorderEl.setStyle("visibility","visible");if(instance.iframe){instance.iframeEl.setStyle("visibility","visible")}if(instance.toolbarEl){instance.toolbarWrapperEl.setStyle("visibility","visible")}MUI.Windows.windowsVisible=true}}.bind(this))},focusWindow:function(windowEl,fireEvent){MUI.Windows.focusingWindow=true;var windowClicked=function(){MUI.Windows.focusingWindow=false};windowClicked.delay(170,this);if($$(".mocha").length==0){return}if(windowEl!=$(windowEl)||windowEl.hasClass("isFocused")){return}var instances=MUI.Windows.instances;var instance=instances.get(windowEl.id);if(instance.options.type=="notification"){windowEl.setStyle("zIndex",11001);return}MUI.Windows.indexLevel+=2;windowEl.setStyle("zIndex",MUI.Windows.indexLevel);$("windowUnderlay").setStyle("zIndex",MUI.Windows.indexLevel-1).inject($(windowEl),"after");instances.each(function(instance){if(instance.windowEl.hasClass("isFocused")){instance.fireEvent("onBlur",instance.windowEl)}instance.windowEl.removeClass("isFocused")});if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){MUI.Dock.makeActiveTab()}windowEl.addClass("isFocused");if(fireEvent!=false){instance.fireEvent("onFocus",windowEl)}},getWindowWithHighestZindex:function(){this.highestZindex=0;$$(".mocha").each(function(element){this.zIndex=element.getStyle("zIndex");if(this.zIndex>=this.highestZindex){this.highestZindex=this.zIndex}}.bind(this));$$(".mocha").each(function(element){if(element.getStyle("zIndex")==this.highestZindex){this.windowWithHighestZindex=element}}.bind(this));return this.windowWithHighestZindex},blurAll:function(){if(MUI.Windows.focusingWindow==false){$$(".mocha").each(function(windowEl){var instance=windowEl.retrieve("instance");if(instance.options.type!="modal"&&instance.options.type!="modal2"){windowEl.removeClass("isFocused")}});$$(".dockTab").removeClass("activeDockTab")}},centerWindow:function(windowEl){if(!windowEl){MUI.Windows.instances.each(function(instance){if(instance.windowEl.hasClass("isFocused")){windowEl=instance.windowEl}})}var instance=windowEl.retrieve("instance");var options=instance.options;var dimensions=options.container.getCoordinates();var windowPosTop=window.getScroll().y+(window.getSize().y*0.5)-(windowEl.offsetHeight*0.5);if(windowPosTop<-instance.options.shadowBlur){windowPosTop=-instance.options.shadowBlur}var windowPosLeft=(dimensions.width*0.5)-(windowEl.offsetWidth*0.5);if(windowPosLeft<-instance.options.shadowBlur){windowPosLeft=-instance.options.shadowBlur}if(MUI.options.advancedEffects==true){instance.morph.start({top:windowPosTop,left:windowPosLeft})}else{windowEl.setStyles({top:windowPosTop,left:windowPosLeft})}},resizeWindow:function(windowEl,options){var instance=windowEl.retrieve("instance");$extend({width:null,height:null,top:null,left:null,centered:true},options);var oldWidth=windowEl.getStyle("width").toInt();var oldHeight=windowEl.getStyle("height").toInt();var oldTop=windowEl.getStyle("top").toInt();var oldLeft=windowEl.getStyle("left").toInt();if(options.centered){var top=typeof(options.top)!="undefined"?options.top:oldTop-((options.height-oldHeight)*0.5);var left=typeof(options.left)!="undefined"?options.left:oldLeft-((options.width-oldWidth)*0.5)}else{var top=typeof(options.top)!="undefined"?options.top:oldTop;var left=typeof(options.left)!="undefined"?options.left:oldLeft}if(MUI.options.advancedEffects==false){windowEl.setStyles({top:top,left:left});instance.contentWrapperEl.setStyles({height:options.height,width:options.width});instance.drawWindow();if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible")}else{instance.iframeEl.show()}}}else{windowEl.retrieve("resizeMorph").start({"0":{height:options.height,width:options.width},"1":{top:top,left:left}})}return instance},dynamicResize:function(windowEl){var instance=windowEl.retrieve("instance");var contentWrapperEl=instance.contentWrapperEl;var contentEl=instance.contentEl;contentWrapperEl.setStyles({height:contentEl.offsetHeight,width:contentEl.offsetWidth});instance.drawWindow()}});document.addEvent("keydown",function(event){if(event.key=="q"&&event.control&&event.alt){MUI.toggleWindowVisibility()}});MUI.files[MUI.path.source+"Window/Modal.js"]="loaded";MUI.Modal=new Class({Extends:MUI.Window,options:{type:"modal"},initialize:function(options){if(!$("modalOverlay")){this.modalInitialize();window.addEvent("resize",function(){this.setModalSize()}.bind(this))}this.parent(options)},modalInitialize:function(){var modalOverlay=new Element("div",{id:"modalOverlay",styles:{height:document.getCoordinates().height,opacity:0.6}}).inject(document.body);modalOverlay.setStyles({position:Browser.Engine.trident4?"absolute":"fixed"});modalOverlay.addEvent("click",function(e){var instance=MUI.Windows.instances.get(MUI.currentModal.id);if(instance.options.modalOverlayClose==true){MUI.closeWindow(MUI.currentModal)}});if(Browser.Engine.trident4){var modalFix=new Element("iframe",{id:"modalFix",scrolling:"no",marginWidth:0,marginHeight:0,src:"",styles:{height:document.getCoordinates().height}}).inject(document.body)}MUI.Modal.modalOverlayOpenMorph=new Fx.Morph($("modalOverlay"),{duration:150});MUI.Modal.modalOverlayCloseMorph=new Fx.Morph($("modalOverlay"),{duration:150,onComplete:function(){$("modalOverlay").hide();if(Browser.Engine.trident4){$("modalFix").hide()}}.bind(this)})},setModalSize:function(){$("modalOverlay").setStyle("height",document.getCoordinates().height);if(Browser.Engine.trident4){$("modalFix").setStyle("height",document.getCoordinates().height)}}});MUI.extend({initializeTabs:function(el,target){$(el).setStyle("list-style","none");$(el).getElements("li").each(function(listitem){var link=listitem.getFirst("a").addEvent("click",function(e){e.preventDefault()});listitem.addEvent("click",function(e){MUI.updateContent({element:$(target),url:link.get("href")});MUI.selected(this,el)})})},selected:function(el,parent){$(parent).getChildren().each(function(listitem){listitem.removeClass("selected")});el.addClass("selected")}});MUI.files[MUI.path.source+"Layout/Layout.js"]="loaded";MUI.extend({Columns:{instances:new Hash(),columnIDCount:0},Panels:{instances:new Hash(),panelIDCount:0}});MUI.Desktop={options:{desktop:"desktop",desktopHeader:"desktopHeader",desktopFooter:"desktopFooter",desktopNavBar:"desktopNavbar",pageWrapper:"pageWrapper",page:"page",desktopFooter:"desktopFooterWrapper"},initialize:function(){this.desktop=$(this.options.desktop);this.desktopHeader=$(this.options.desktopHeader);this.desktopNavBar=$(this.options.desktopNavBar);this.pageWrapper=$(this.options.pageWrapper);this.page=$(this.options.page);this.desktopFooter=$(this.options.desktopFooter);if(this.desktop){($$("body")).setStyles({overflow:"hidden",height:"100%",margin:0});($$("html")).setStyles({overflow:"hidden",height:"100%"})}if(!MUI.Dock){this.setDesktopSize()}this.menuInitialize();window.addEvent("resize",function(e){this.onBrowserResize()}.bind(this));if(MUI.myChain){MUI.myChain.callChain()}},menuInitialize:function(){if(Browser.Engine.trident4&&this.desktopNavBar){this.desktopNavBar.getElements("li").each(function(element){element.addEvent("mouseenter",function(){this.addClass("ieHover")});element.addEvent("mouseleave",function(){this.removeClass("ieHover")})})}},onBrowserResize:function(){this.setDesktopSize();setTimeout(function(){MUI.Windows.instances.each(function(instance){if(instance.isMaximized){if(instance.iframeEl){instance.iframeEl.setStyle("visibility","hidden")}var coordinates=document.getCoordinates();var borderHeight=instance.contentBorderEl.getStyle("border-top").toInt()+instance.contentBorderEl.getStyle("border-bottom").toInt();var toolbarHeight=instance.toolbarWrapperEl?instance.toolbarWrapperEl.getStyle("height").toInt()+instance.toolbarWrapperEl.getStyle("border-top").toInt():0;instance.contentWrapperEl.setStyles({height:coordinates.height-instance.options.headerHeight-instance.options.footerHeight-borderHeight-toolbarHeight,width:coordinates.width});instance.drawWindow();if(instance.iframeEl){instance.iframeEl.setStyles({height:instance.contentWrapperEl.getStyle("height")});instance.iframeEl.setStyle("visibility","visible")}}}.bind(this))}.bind(this),100)},setDesktopSize:function(){var windowDimensions=window.getCoordinates();var dockWrapper=$(MUI.options.dockWrapper);if(this.desktop){this.desktop.setStyle("height",windowDimensions.height)}if(this.pageWrapper){var dockOffset=MUI.dockVisible?dockWrapper.offsetHeight:0;var pageWrapperHeight=windowDimensions.height;pageWrapperHeight-=this.pageWrapper.getStyle("border-top").toInt();pageWrapperHeight-=this.pageWrapper.getStyle("border-bottom").toInt();if(this.desktopHeader){pageWrapperHeight-=this.desktopHeader.offsetHeight}if(this.desktopFooter){pageWrapperHeight-=this.desktopFooter.offsetHeight}pageWrapperHeight-=dockOffset;if(pageWrapperHeight<0){pageWrapperHeight=0}this.pageWrapper.setStyle("height",pageWrapperHeight)}if(MUI.Columns.instances.getKeys().length>0){MUI.Desktop.resizePanels()}},resizePanels:function(){MUI.panelHeight();MUI.rWidth()},maximizeWindow:function(windowEl){var instance=MUI.Windows.instances.get(windowEl.id);var options=instance.options;var windowDrag=instance.windowDrag;if(windowEl!=$(windowEl)||instance.isMaximized){return}if(instance.isCollapsed){MUI.collapseToggle(windowEl)}instance.isMaximized=true;if(instance.options.restrict){windowDrag.detach();if(options.resizable){instance.detachResizable()}instance.titleBarEl.setStyle("cursor","default")}if(options.container!=this.desktop){this.desktop.grab(windowEl);if(this.options.restrict){windowDrag.container=this.desktop}}instance.oldTop=windowEl.getStyle("top");instance.oldLeft=windowEl.getStyle("left");var contentWrapperEl=instance.contentWrapperEl;contentWrapperEl.oldWidth=contentWrapperEl.getStyle("width");contentWrapperEl.oldHeight=contentWrapperEl.getStyle("height");if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}var windowDimensions=document.getCoordinates();var options=instance.options;var shadowBlur=options.shadowBlur;var shadowOffset=options.shadowOffset;var newHeight=windowDimensions.height-options.headerHeight-options.footerHeight;newHeight-=instance.contentBorderEl.getStyle("border-top").toInt();newHeight-=instance.contentBorderEl.getStyle("border-bottom").toInt();newHeight-=(instance.toolbarWrapperEl?instance.toolbarWrapperEl.getStyle("height").toInt()+instance.toolbarWrapperEl.getStyle("border-top").toInt():0);MUI.resizeWindow(windowEl,{width:windowDimensions.width,height:newHeight,top:shadowOffset.y-shadowBlur,left:shadowOffset.x-shadowBlur});instance.fireEvent("onMaximize",windowEl);if(instance.maximizeButtonEl){instance.maximizeButtonEl.setProperty("title","Restore")}MUI.focusWindow(windowEl)},restoreWindow:function(windowEl){var instance=windowEl.retrieve("instance");if(windowEl!=$(windowEl)||!instance.isMaximized){return}var options=instance.options;instance.isMaximized=false;if(options.restrict){instance.windowDrag.attach();if(options.resizable){instance.reattachResizable()}instance.titleBarEl.setStyle("cursor","move")}if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}var contentWrapperEl=instance.contentWrapperEl;MUI.resizeWindow(windowEl,{width:contentWrapperEl.oldWidth,height:contentWrapperEl.oldHeight,top:instance.oldTop,left:instance.oldLeft});instance.fireEvent("onRestore",windowEl);if(instance.maximizeButtonEl){instance.maximizeButtonEl.setProperty("title","Maximize")}}};MUI.Column=new Class({Implements:[Events,Options],options:{id:null,container:null,placement:null,width:null,resizeLimit:[],sortable:true,isCollapsed:false,onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(options){this.setOptions(options);$extend(this,{timestamp:$time(),isCollapsed:false,oldWidth:0});if(this.options.id==null){this.options.id="column"+(++MUI.Columns.columnIDCount)}var options=this.options;var instances=MUI.Columns.instances;var instanceID=instances.get(options.id);if(options.container==null){options.container=MUI.Desktop.pageWrapper}else{$(options.container).setStyle("overflow","hidden")}if(typeof this.options.container=="string"){this.options.container=$(this.options.container)}if(instanceID){var instance=instanceID}if(this.columnEl){return}else{instances.set(options.id,this)}if($(options.container).getElement(".pad")!=null){$(options.container).getElement(".pad").hide()}if($(options.container).getElement(".mochaContent")!=null){$(options.container).getElement(".mochaContent").hide()}this.columnEl=new Element("div",{id:this.options.id,"class":"column expanded",styles:{width:options.placement=="main"?null:options.width}}).inject($(options.container));this.columnEl.store("instance",this);var parent=this.columnEl.getParent();var columnHeight=parent.getStyle("height").toInt();this.columnEl.setStyle("height",columnHeight);if(this.options.sortable){if(!this.options.container.retrieve("sortables")){var sortables=new Sortables(this.columnEl,{opacity:1,handle:".panel-header",constrain:false,revert:false,onSort:function(){$$(".column").each(function(column){column.getChildren(".panelWrapper").each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});if(column.getChildren(".panelWrapper").getLast()){column.getChildren(".panelWrapper").getLast().getElement(".panel").addClass("bottomPanel")}column.getChildren(".panelWrapper").each(function(panelWrapper){var panel=panelWrapper.getElement(".panel");var column=panelWrapper.getParent().id;instance=MUI.Panels.instances.get(panel.id);instance.options.column=column;if(instance){var nextpanel=panel.getParent().getNext(".expanded");if(nextpanel){nextpanel=nextpanel.getElement(".panel")}instance.partner=nextpanel}});MUI.panelHeight()}.bind(this))}.bind(this)});this.options.container.store("sortables",sortables)}else{this.options.container.retrieve("sortables").addLists(this.columnEl)}}if(options.placement=="main"){this.columnEl.addClass("rWidth")}switch(this.options.placement){case"left":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"after");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeRight(this.columnEl,options.resizeLimit[0],options.resizeLimit[1]);break;case"right":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"before");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeLeft(this.columnEl,options.resizeLimit[0],options.resizeLimit[1]);break}if(this.options.isCollapsed&&this.options.placement!="main"){this.columnToggle()}if(this.handleEl!=null){this.handleEl.addEvent("dblclick",function(){this.columnToggle()}.bind(this))}MUI.rWidth()},columnCollapse:function(){var column=this.columnEl;this.oldWidth=column.getStyle("width").toInt();this.resize.detach();this.handleEl.removeEvents("dblclick");this.handleEl.addEvent("click",function(){this.columnExpand()}.bind(this));this.handleEl.setStyle("cursor","pointer").addClass("detached");column.setStyle("width",0);this.isCollapsed=true;column.addClass("collapsed");column.removeClass("expanded");MUI.rWidth();this.fireEvent("onCollapse");return true},columnExpand:function(){var column=this.columnEl;column.setStyle("width",this.oldWidth);this.isCollapsed=false;column.addClass("expanded");column.removeClass("collapsed");this.handleEl.removeEvents("click");this.handleEl.addEvent("dblclick",function(){this.columnCollapse()}.bind(this));this.resize.attach();this.handleEl.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize").addClass("attached");MUI.rWidth();this.fireEvent("onExpand");return true},columnToggle:function(){if(this.isCollapsed==false){this.columnCollapse()}else{this.columnExpand()}}});MUI.Column.implement(new Options,new Events);MUI.Panel=new Class({Implements:[Events,Options],options:{id:null,title:"New Panel",column:null,require:{css:[],images:[],js:[],onload:null},loadMethod:null,contentURL:null,method:"get",data:null,evalScripts:true,evalResponse:false,content:"Panel content",tabsURL:null,tabsData:null,tabsOnload:$empty,header:true,headerToolbox:false,headerToolboxURL:"pages/lipsum.html",headerToolboxOnload:$empty,height:125,addClass:"",scrollbars:true,padding:{top:8,right:8,bottom:8,left:8},collapsible:true,onBeforeBuild:$empty,onContentLoaded:$empty,onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(options){this.setOptions(options);$extend(this,{timestamp:$time(),isCollapsed:false,oldHeight:0,partner:null});if(this.options.id==null){this.options.id="panel"+(++MUI.Panels.panelIDCount)}var instances=MUI.Panels.instances;var instanceID=instances.get(this.options.id);var options=this.options;if(instanceID){var instance=instanceID}if(this.panelEl){return}else{instances.set(this.options.id,this)}this.fireEvent("onBeforeBuild");if(options.loadMethod=="iframe"){options.padding={top:0,right:0,bottom:0,left:0}}this.showHandle=true;if($(options.column).getChildren().length==0){this.showHandle=false}this.panelWrapperEl=new Element("div",{id:this.options.id+"_wrapper","class":"panelWrapper expanded"}).inject($(options.column));this.panelEl=new Element("div",{id:this.options.id,"class":"panel expanded",styles:{height:options.height}}).inject(this.panelWrapperEl);this.panelEl.store("instance",this);this.panelEl.addClass(options.addClass);this.contentEl=new Element("div",{id:options.id+"_pad","class":"pad"}).inject(this.panelEl);this.contentWrapperEl=this.panelEl;this.contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right});this.panelHeaderEl=new Element("div",{id:this.options.id+"_header","class":"panel-header",styles:{display:options.header?"block":"none"}}).inject(this.panelEl,"before");var columnInstances=MUI.Columns.instances;var columnInstance=columnInstances.get(this.options.column);if(this.options.collapsible){this.collapseToggleInit()}if(this.options.headerToolbox){this.panelHeaderToolboxEl=new Element("div",{id:options.id+"_headerToolbox","class":"panel-header-toolbox"}).inject(this.panelHeaderEl)}this.panelHeaderContentEl=new Element("div",{id:options.id+"_headerContent","class":"panel-headerContent"}).inject(this.panelHeaderEl);if(columnInstance.options.sortable){this.panelHeaderEl.setStyle("cursor","move");columnInstance.options.container.retrieve("sortables").addItems(this.panelWrapperEl);if(this.panelHeaderToolboxEl){this.panelHeaderToolboxEl.addEvent("mousedown",function(e){e=new Event(e).stop();e.target.focus()});this.panelHeaderToolboxEl.setStyle("cursor","default")}}this.titleEl=new Element("h2",{id:options.id+"_title"}).inject(this.panelHeaderContentEl);this.handleEl=new Element("div",{id:options.id+"_handle","class":"horizontalHandle",styles:{display:this.showHandle==true?"block":"none"}}).inject(this.panelEl,"after");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeBottom(options.id);if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.newPanel()}.bind(this)})}else{this.newPanel()}},newPanel:function(){options=this.options;if(this.options.headerToolbox){MUI.updateContent({element:this.panelEl,childElement:this.panelHeaderToolboxEl,loadMethod:"xhr",url:options.headerToolboxURL,onContentLoaded:options.headerToolboxOnload})}if(options.tabsURL==null){this.titleEl.set("html",options.title)}else{this.panelHeaderContentEl.addClass("tabs");MUI.updateContent({element:this.panelEl,childElement:this.panelHeaderContentEl,loadMethod:"xhr",url:options.tabsURL,data:options.tabsData,onContentLoaded:options.tabsOnload})}MUI.updateContent({element:this.panelEl,content:options.content,method:options.method,data:options.data,url:options.contentURL,onContentLoaded:null,require:{js:options.require.js,onload:options.require.onload}});$(options.column).getChildren(".panelWrapper").each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});$(options.column).getChildren(".panelWrapper").getLast().getElement(".panel").addClass("bottomPanel");MUI.panelHeight(options.column,this.panelEl,"new")},collapseToggleInit:function(options){var options=this.options;this.panelHeaderCollapseBoxEl=new Element("div",{id:options.id+"_headerCollapseBox","class":"toolbox"}).inject(this.panelHeaderEl);if(options.headerToolbox){this.panelHeaderCollapseBoxEl.addClass("divider")}this.collapseToggleEl=new Element("div",{id:options.id+"_collapseToggle","class":"panel-collapse icon16",styles:{width:16,height:16},title:"Collapse Panel"}).inject(this.panelHeaderCollapseBoxEl);this.collapseToggleEl.addEvent("click",function(event){var panel=this.panelEl;var panelWrapper=this.panelWrapperEl;var instances=MUI.Panels.instances;var expandedSiblings=[];panelWrapper.getAllPrevious(".panelWrapper").each(function(sibling){var instance=instances.get(sibling.getElement(".panel").id);if(instance.isCollapsed==false){expandedSiblings.push(sibling.getElement(".panel").id)}});panelWrapper.getAllNext(".panelWrapper").each(function(sibling){var instance=instances.get(sibling.getElement(".panel").id);if(instance.isCollapsed==false){expandedSiblings.push(sibling.getElement(".panel").id)}});if(this.isCollapsed==false){var currentColumn=MUI.Columns.instances.get($(options.column).id);if(expandedSiblings.length==0&¤tColumn.options.placement!="main"){var currentColumn=MUI.Columns.instances.get($(options.column).id);currentColumn.columnToggle();return}else{if(expandedSiblings.length==0&¤tColumn.options.placement=="main"){return}}this.oldHeight=panel.getStyle("height").toInt();if(this.oldHeight<10){this.oldHeight=20}this.contentEl.setStyle("position","absolute");panel.setStyle("height",0);this.isCollapsed=true;panelWrapper.addClass("collapsed");panelWrapper.removeClass("expanded");MUI.panelHeight(options.column,panel,"collapsing");MUI.panelHeight();this.collapseToggleEl.removeClass("panel-collapsed");this.collapseToggleEl.addClass("panel-expand");this.collapseToggleEl.setProperty("title","Expand Panel");this.fireEvent("onCollapse")}else{this.contentEl.setStyle("position",null);panel.setStyle("height",this.oldHeight);this.isCollapsed=false;panelWrapper.addClass("expanded");panelWrapper.removeClass("collapsed");MUI.panelHeight(this.options.column,panel,"expanding");MUI.panelHeight();this.collapseToggleEl.removeClass("panel-expand");this.collapseToggleEl.addClass("panel-collapsed");this.collapseToggleEl.setProperty("title","Collapse Panel");this.fireEvent("onExpand")}}.bind(this))}});MUI.Panel.implement(new Options,new Events);MUI.extend({panelHeight:function(column,changing,action){if(column!=null){MUI.panelHeight2($(column),changing,action)}else{$$(".column").each(function(column){MUI.panelHeight2(column)}.bind(this))}},panelHeight2:function(column,changing,action){var instances=MUI.Panels.instances;var parent=column.getParent();var columnHeight=parent.getStyle("height").toInt();if(Browser.Engine.trident4&&parent==MUI.Desktop.pageWrapper){columnHeight-=1}column.setStyle("height",columnHeight);var panels=[];column.getChildren(".panelWrapper").each(function(panelWrapper){panels.push(panelWrapper.getElement(".panel"))}.bind(this));var panelsExpanded=[];column.getChildren(".expanded").each(function(panelWrapper){panelsExpanded.push(panelWrapper.getElement(".panel"))}.bind(this));var panelsToResize=[];var tallestPanel;var tallestPanelHeight=0;this.panelsTotalHeight=0;this.height=0;panels.each(function(panel){instance=instances.get(panel.id);if(panel.getParent().hasClass("expanded")&&panel.getParent().getNext(".expanded")){instance.partner=panel.getParent().getNext(".expanded").getElement(".panel");instance.resize.attach();instance.handleEl.setStyles({display:"block",cursor:Browser.Engine.webkit?"row-resize":"n-resize"}).removeClass("detached")}else{instance.resize.detach();instance.handleEl.setStyles({display:"none",cursor:null}).addClass("detached")}if(panel.getParent().getNext(".panelWrapper")==null){instance.handleEl.hide()}}.bind(this));column.getChildren().each(function(panelWrapper){panelWrapper.getChildren().each(function(el){if(el.hasClass("panel")){var instance=instances.get(el.id);anyNextSiblingsExpanded=function(el){var test;el.getParent().getAllNext(".panelWrapper").each(function(sibling){var siblingInstance=instances.get(sibling.getElement(".panel").id);if(siblingInstance.isCollapsed==false){test=true}}.bind(this));return test}.bind(this);anyExpandingNextSiblingsExpanded=function(el){var test;changing.getParent().getAllNext(".panelWrapper").each(function(sibling){var siblingInstance=instances.get(sibling.getElement(".panel").id);if(siblingInstance.isCollapsed==false){test=true}}.bind(this));return test}.bind(this);anyNextContainsChanging=function(el){var allNext=[];el.getParent().getAllNext(".panelWrapper").each(function(panelWrapper){allNext.push(panelWrapper.getElement(".panel"))}.bind(this));var test=allNext.contains(changing);return test}.bind(this);nextExpandedChanging=function(el){var test;if(el.getParent().getNext(".expanded")){if(el.getParent().getNext(".expanded").getElement(".panel")==changing){test=true}}return test};if(action=="new"){if(!instance.isCollapsed&&el!=changing){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}else{if(action==null||action=="collapsing"){if(!instance.isCollapsed&&(!anyNextContainsChanging(el)||!anyNextSiblingsExpanded(el))){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}else{if(action=="expanding"&&!instance.isCollapsed&&el!=changing){if(!anyNextContainsChanging(el)||(!anyExpandingNextSiblingsExpanded(el)&&nextExpandedChanging(el))){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}}}if(el.style.height){this.height+=el.getStyle("height").toInt()}}else{this.height+=el.offsetHeight.toInt()}}.bind(this))}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;this.height=0;column.getChildren().each(function(el){this.height+=el.offsetHeight.toInt()}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;panelsToResize.each(function(panel){var ratio=this.panelsTotalHeight/panel.offsetHeight.toInt();var newPanelHeight=panel.getStyle("height").toInt()+(remainingHeight/ratio);if(newPanelHeight<1){newPanelHeight=0}panel.setStyle("height",newPanelHeight)}.bind(this));this.height=0;column.getChildren().each(function(panelWrapper){panelWrapper.getChildren().each(function(el){this.height+=el.offsetHeight.toInt();if(el.hasClass("panel")&&el.getStyle("height").toInt()>tallestPanelHeight){tallestPanel=el;tallestPanelHeight=el.getStyle("height").toInt()}}.bind(this))}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;if(remainingHeight!=0&&tallestPanelHeight>0){tallestPanel.setStyle("height",tallestPanel.getStyle("height").toInt()+remainingHeight);if(tallestPanel.getStyle("height")<1){tallestPanel.setStyle("height",0)}}parent.getChildren(".columnHandle").each(function(handle){var parent=handle.getParent();if(parent.getStyle("height").toInt()<1){return}var handleHeight=parent.getStyle("height").toInt()-handle.getStyle("border-top").toInt()-handle.getStyle("border-bottom").toInt();if(Browser.Engine.trident4&&parent==MUI.Desktop.pageWrapper){handleHeight-=1}handle.setStyle("height",handleHeight)});panelsExpanded.each(function(panel){MUI.resizeChildren(panel)}.bind(this))},resizeChildren:function(panel){var instances=MUI.Panels.instances;var instance=instances.get(panel.id);var contentWrapperEl=instance.contentWrapperEl;if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyles({height:contentWrapperEl.getStyle("height"),width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()})}else{instance.iframeEl.setStyles({height:contentWrapperEl.getStyle("height"),width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()-1});instance.iframeEl.setStyles({width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()})}}},rWidth:function(container){if(container==null){var container=MUI.Desktop.desktop}container.getElements(".rWidth").each(function(column){var currentWidth=column.offsetWidth.toInt();currentWidth-=column.getStyle("border-left").toInt();currentWidth-=column.getStyle("border-right").toInt();var parent=column.getParent();this.width=0;parent.getChildren().each(function(el){if(el.hasClass("mocha")!=true){this.width+=el.offsetWidth.toInt()}}.bind(this));var remainingWidth=parent.offsetWidth.toInt()-this.width;var newWidth=currentWidth+remainingWidth;if(newWidth<1){newWidth=0}column.setStyle("width",newWidth);column.getChildren(".panel").each(function(panel){panel.setStyle("width",newWidth-panel.getStyle("border-left").toInt()-panel.getStyle("border-right").toInt());MUI.resizeChildren(panel)}.bind(this))})}});function addResizeRight(element,min,max){if(!$(element)){return}element=$(element);var instances=MUI.Columns.instances;var instance=instances.get(element.id);var handle=element.getNext(".columnHandle");handle.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize");if(!min){min=50}if(!max){max=250}if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:"width",y:false},limit:{x:[min,max]},onStart:function(){element.getElements("iframe").setStyle("visibility","hidden");element.getNext(".column").getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){if(Browser.Engine.gecko){$$(".panel").each(function(panel){if(panel.getElements(".mochaIframe").length==0){panel.hide()}})}MUI.rWidth(element.getParent());if(Browser.Engine.gecko){$$(".panel").show()}if(Browser.Engine.trident4){element.getChildren().each(function(el){var width=$(element).getStyle("width").toInt();width-=el.getStyle("border-right").toInt();width-=el.getStyle("border-left").toInt();width-=el.getStyle("padding-right").toInt();width-=el.getStyle("padding-left").toInt();el.setStyle("width",width)}.bind(this))}}.bind(this),onComplete:function(){MUI.rWidth(element.getParent());element.getElements("iframe").setStyle("visibility","visible");element.getNext(".column").getElements("iframe").setStyle("visibility","visible");instance.fireEvent("onResize")}.bind(this)})}function addResizeLeft(element,min,max){if(!$(element)){return}element=$(element);var instances=MUI.Columns.instances;var instance=instances.get(element.id);var handle=element.getPrevious(".columnHandle");handle.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize");var partner=element.getPrevious(".column");if(!min){min=50}if(!max){max=250}if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:"width",y:false},invert:true,limit:{x:[min,max]},onStart:function(){$(element).getElements("iframe").setStyle("visibility","hidden");partner.getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){MUI.rWidth(element.getParent())}.bind(this),onComplete:function(){MUI.rWidth(element.getParent());$(element).getElements("iframe").setStyle("visibility","visible");partner.getElements("iframe").setStyle("visibility","visible");instance.fireEvent("onResize")}.bind(this)})}function addResizeBottom(element){if(!$(element)){return}var element=$(element);var instances=MUI.Panels.instances;var instance=instances.get(element.id);var handle=instance.handleEl;handle.setStyle("cursor",Browser.Engine.webkit?"row-resize":"n-resize");partner=instance.partner;min=0;max=function(){return element.getStyle("height").toInt()+partner.getStyle("height").toInt()}.bind(this);if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:false,y:"height"},limit:{y:[min,max]},invert:false,onBeforeStart:function(){partner=instance.partner;this.originalHeight=element.getStyle("height").toInt();this.partnerOriginalHeight=partner.getStyle("height").toInt()}.bind(this),onStart:function(){if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden");partner.getElements("iframe").setStyle("visibility","hidden")}else{instance.iframeEl.hide();partner.getElements("iframe").hide()}}}.bind(this),onDrag:function(){partnerHeight=partnerOriginalHeight;partnerHeight+=(this.originalHeight-element.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MUI.resizeChildren(element,element.getStyle("height").toInt());MUI.resizeChildren(partner,partnerHeight);element.getChildren(".column").each(function(column){MUI.panelHeight(column)});partner.getChildren(".column").each(function(column){MUI.panelHeight(column)})}.bind(this),onComplete:function(){partnerHeight=partnerOriginalHeight;partnerHeight+=(this.originalHeight-element.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MUI.resizeChildren(element,element.getStyle("height").toInt());MUI.resizeChildren(partner,partnerHeight);element.getChildren(".column").each(function(column){MUI.panelHeight(column)});partner.getChildren(".column").each(function(column){MUI.panelHeight(column)});if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible");partner.getElements("iframe").setStyle("visibility","visible")}else{instance.iframeEl.show();partner.getElements("iframe").show();var width=instance.iframeEl.getStyle("width").toInt();instance.iframeEl.setStyle("width",width-1);MUI.rWidth();instance.iframeEl.setStyle("width",width)}}instance.fireEvent("onResize")}.bind(this)})}MUI.extend({closeColumn:function(columnEl){columnEl=$(columnEl);if(columnEl==null){return}var instances=MUI.Columns.instances;var instance=instances.get(columnEl.id);if(instance==null||instance.isClosing){return}instance.isClosing=true;var panels=$(columnEl).getElements(".panel");panels.each(function(panel){MUI.closePanel(panel.id)}.bind(this));if(Browser.Engine.trident){columnEl.dispose();if(instance.handleEl!=null){instance.handleEl.dispose()}}else{columnEl.destroy();if(instance.handleEl!=null){instance.handleEl.destroy()}}if(MUI.Desktop){MUI.Desktop.resizePanels()}var sortables=instance.options.container.retrieve("sortables");if(sortables){sortables.removeLists(columnEl)}instances.erase(instance.options.id);return true},closePanel:function(panelEl){panelEl=$(panelEl);if(panelEl==null){return}var instances=MUI.Panels.instances;var instance=instances.get(panelEl.id);if(panelEl!=$(panelEl)||instance.isClosing){return}var column=instance.options.column;instance.isClosing=true;var columnInstances=MUI.Columns.instances;var columnInstance=columnInstances.get(column);if(columnInstance.options.sortable){columnInstance.options.container.retrieve("sortables").removeItems(instance.panelWrapperEl)}instance.panelWrapperEl.destroy();if(MUI.Desktop){MUI.Desktop.resizePanels()}var panels=$(column).getElements(".panelWrapper");panels.each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});if(panels.length>0){panels.getLast().getElement(".panel").addClass("bottomPanel")}instances.erase(instance.options.id);return true}});MUI.files[MUI.path.source+"Layout/Dock.js"]="loaded";MUI.options.extend({dockWrapper:"dockWrapper",dockVisible:"true",dock:"dock"});MUI.extend({minimizeAll:function(){$$(".mocha").each(function(windowEl){var instance=windowEl.retrieve("instance");if(!instance.isMinimized&&instance.options.minimizable==true){MUI.Dock.minimizeWindow(windowEl)}}.bind(this))}});MUI.Dock={options:{useControls:true,dockPosition:"bottom",dockVisible:true,trueButtonColor:[70,245,70],enabledButtonColor:[115,153,191],disabledButtonColor:[170,170,170]},initialize:function(options){if(!MUI.Desktop){return}MUI.dockVisible=this.options.dockVisible;this.dockWrapper=$(MUI.options.dockWrapper);this.dock=$(MUI.options.dock);this.autoHideEvent=null;this.dockAutoHide=false;if(!this.dockWrapper){return}if(!this.options.useControls){if($("dockPlacement")){$("dockPlacement").setStyle("cursor","default")}if($("dockAutoHide")){$("dockAutoHide").setStyle("cursor","default")}}this.dockWrapper.setStyles({display:"block",position:"absolute",top:null,bottom:MUI.Desktop.desktopFooter?MUI.Desktop.desktopFooter.offsetHeight:0,left:0});if(this.options.useControls){this.initializeDockControls()}if($("dockLinkCheck")){this.sidebarCheck=new Element("div",{"class":"check",id:"dock_check"}).inject($("dockLinkCheck"))}this.dockSortables=new Sortables("#dockSort",{opacity:1,constrain:true,clone:false,revert:false});if(!(MUI.dockVisible)){this.dockWrapper.hide()}MUI.Desktop.setDesktopSize();if(MUI.myChain){MUI.myChain.callChain()}},initializeDockControls:function(){this.setDockColors();if(this.options.useControls){var canvas=new Element("canvas",{id:"dockCanvas",width:"15",height:"18"}).inject(this.dock);if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(canvas)}}var dockPlacement=$("dockPlacement");var dockAutoHide=$("dockAutoHide");dockPlacement.setProperty("title","Position Dock Top");dockPlacement.addEvent("click",function(){this.moveDock()}.bind(this));dockAutoHide.setProperty("title","Turn Auto Hide On");dockAutoHide.addEvent("click",function(event){if(this.dockWrapper.getProperty("dockPosition")=="top"){return false}var ctx=$("dockCanvas").getContext("2d");this.dockAutoHide=!this.dockAutoHide;if(this.dockAutoHide){$("dockAutoHide").setProperty("title","Turn Auto Hide Off");MUI.circle(ctx,5,14,3,this.options.trueButtonColor,1);this.autoHideEvent=function(event){if(!this.dockAutoHide){return}if(!MUI.Desktop.desktopFooter){var dockHotspotHeight=this.dockWrapper.offsetHeight;if(dockHotspotHeight<25){dockHotspotHeight=25}}else{if(MUI.Desktop.desktopFooter){var dockHotspotHeight=this.dockWrapper.offsetHeight+MUI.Desktop.desktopFooter.offsetHeight;if(dockHotspotHeight<25){dockHotspotHeight=25}}}if(!MUI.Desktop.desktopFooter&&event.client.y>(document.getCoordinates().height-dockHotspotHeight)){if(!MUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}}else{if(MUI.Desktop.desktopFooter&&event.client.y>(document.getCoordinates().height-dockHotspotHeight)){if(!MUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}}else{if(MUI.dockVisible){this.dockWrapper.hide();MUI.dockVisible=false;MUI.Desktop.setDesktopSize()}}}}.bind(this);document.addEvent("mousemove",this.autoHideEvent)}else{$("dockAutoHide").setProperty("title","Turn Auto Hide On");MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1);document.removeEvent("mousemove",this.autoHideEvent)}}.bind(this));this.renderDockControls();if(this.options.dockPosition=="top"){this.moveDock()}},setDockColors:function(){var dockButtonEnabled=MUI.getCSSRule(".dockButtonEnabled");if(dockButtonEnabled&&dockButtonEnabled.style.backgroundColor){this.options.enabledButtonColor=new Color(dockButtonEnabled.style.backgroundColor)}var dockButtonDisabled=MUI.getCSSRule(".dockButtonDisabled");if(dockButtonDisabled&&dockButtonDisabled.style.backgroundColor){this.options.disabledButtonColor=new Color(dockButtonDisabled.style.backgroundColor)}var trueButtonColor=MUI.getCSSRule(".dockButtonTrue");if(trueButtonColor&&trueButtonColor.style.backgroundColor){this.options.trueButtonColor=new Color(trueButtonColor.style.backgroundColor)}},renderDockControls:function(){var ctx=$("dockCanvas").getContext("2d");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);if(this.dockWrapper.getProperty("dockPosition")=="top"){MUI.circle(ctx,5,14,3,this.options.disabledButtonColor,1)}else{if(this.dockAutoHide){MUI.circle(ctx,5,14,3,this.options.trueButtonColor,1)}else{MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1)}}},moveDock:function(){var ctx=$("dockCanvas").getContext("2d");if(this.dockWrapper.getStyle("position")!="relative"){this.dockWrapper.setStyles({position:"relative",bottom:null});this.dockWrapper.addClass("top");MUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","top");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);MUI.circle(ctx,5,14,3,this.options.disabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Bottom");$("dockAutoHide").setProperty("title","Auto Hide Disabled in Top Dock Position");this.dockAutoHide=false}else{this.dockWrapper.setStyles({position:"absolute",bottom:MUI.Desktop.desktopFooter?MUI.Desktop.desktopFooter.offsetHeight:0});this.dockWrapper.removeClass("top");MUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","bottom");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Top");$("dockAutoHide").setProperty("title","Turn Auto Hide On")}},createDockTab:function(windowEl){var instance=windowEl.retrieve("instance");var dockTab=new Element("div",{id:instance.options.id+"_dockTab","class":"dockTab",title:titleText}).inject($("dockClear"),"before");dockTab.addEvent("mousedown",function(e){new Event(e).stop();this.timeDown=$time()});dockTab.addEvent("mouseup",function(e){this.timeUp=$time();if((this.timeUp-this.timeDown)<275){if(MUI.Windows.windowsVisible==false){MUI.toggleWindowVisibility();if(instance.isMinimized==true){MUI.Dock.restoreMinimized.delay(25,MUI.Dock,windowEl)}else{MUI.focusWindow(windowEl)}return}if(instance.isMinimized==true){MUI.Dock.restoreMinimized.delay(25,MUI.Dock,windowEl)}else{if(instance.windowEl.hasClass("isFocused")&&instance.options.minimizable==true){MUI.Dock.minimizeWindow(windowEl)}else{MUI.focusWindow(windowEl)}var coordinates=document.getCoordinates();if(windowEl.getStyle("left").toInt()>coordinates.width||windowEl.getStyle("top").toInt()>coordinates.height){MUI.centerWindow(windowEl)}}}});this.dockSortables.addItems(dockTab);var titleText=instance.titleEl.innerHTML;var dockTabText=new Element("div",{id:instance.options.id+"_dockTabText","class":"dockText"}).set("html",titleText.substring(0,19)+(titleText.length>19?"...":"")).inject($(dockTab));if(instance.options.icon!=false){}MUI.Desktop.setDesktopSize()},makeActiveTab:function(){var windowEl=MUI.getWindowWithHighestZindex();var instance=windowEl.retrieve("instance");$$(".dockTab").removeClass("activeDockTab");if(instance.isMinimized!=true){instance.windowEl.addClass("isFocused");var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.addClass("activeDockTab")}}else{instance.windowEl.removeClass("isFocused")}},minimizeWindow:function(windowEl){if(windowEl!=$(windowEl)){return}var instance=windowEl.retrieve("instance");instance.isMinimized=true;if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}instance.contentBorderEl.setStyle("visibility","hidden");if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.hide()}windowEl.setStyle("visibility","hidden");if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){instance.contentWrapperEl.setStyle("overflow","hidden")}}}MUI.Desktop.setDesktopSize();setTimeout(function(){windowEl.setStyle("zIndex",1);windowEl.removeClass("isFocused");this.makeActiveTab()}.bind(this),100);instance.fireEvent("onMinimize",windowEl)},restoreMinimized:function(windowEl){var instance=windowEl.retrieve("instance");if(instance.isMinimized==false){return}if(MUI.Windows.windowsVisible==false){MUI.toggleWindowVisibility()}MUI.Desktop.setDesktopSize();if(instance.options.scrollbars==true&&!instance.iframeEl){instance.contentWrapperEl.setStyle("overflow","auto")}if(instance.isCollapsed){MUI.collapseToggle(windowEl)}windowEl.setStyle("visibility","visible");instance.contentBorderEl.setStyle("visibility","visible");if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.show()}if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible")}else{instance.iframeEl.show()}}instance.isMinimized=false;MUI.focusWindow(windowEl);instance.fireEvent("onRestore",windowEl)},toggle:function(){if(!MochaUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}else{this.dockWrapper.hide();MUI.dockVisible=false;MUI.Desktop.setDesktopSize()}}}; +var MUI=MochaUI=new Hash({version:"0.9.7",options:new Hash({theme:"default",advancedEffects:false,standardEffects:true}),path:{source:"scripts/source/",themes:"themes/",plugins:"plugins/"},themePath:function(){return MUI.path.themes+MUI.options.theme+"/"},files:new Hash()});MUI.files[MUI.path.source+"Core/Core.js"]="loaded";MUI.extend({Windows:{instances:new Hash()},ieSupport:"excanvas",updateContent:function(options){var options=$extend({element:null,childElement:null,method:null,data:null,title:null,content:null,loadMethod:null,url:null,scrollbars:null,padding:null,require:{},onContentLoaded:$empty},options);options.require=$extend({css:[],images:[],js:[],onload:null},options.require);var args={};if(!options.element){return}var element=options.element;if(MUI.Windows.instances.get(element.id)){args.recipient="window"}else{args.recipient="panel"}var instance=element.retrieve("instance");if(options.title){instance.titleEl.set("html",options.title)}var contentEl=instance.contentEl;args.contentContainer=options.childElement!=null?options.childElement:instance.contentEl;var contentWrapperEl=instance.contentWrapperEl;if(!options.loadMethod){if(!instance.options.loadMethod){if(!options.url){options.loadMethod="html"}else{options.loadMethod="xhr"}}else{options.loadMethod=instance.options.loadMethod}}var scrollbars=options.scrollbars||instance.options.scrollbars;if(args.contentContainer==instance.contentEl){contentWrapperEl.setStyles({overflow:scrollbars!=false&&options.loadMethod!="iframe"?"auto":"hidden"})}if(options.padding!=null){contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right})}if(args.contentContainer==contentEl){contentEl.empty().show();contentEl.getAllNext(".column").destroy();contentEl.getAllNext(".columnHandle").destroy()}args.onContentLoaded=function(){if(options.require.js.length||typeof options.require.onload=="function"){new MUI.Require({js:options.require.js,onload:function(){if(Browser.Engine.presto){options.require.onload.delay(100)}else{if (!$defined(options.require.onload)) return; options.require.onload()}(options.onContentLoaded&&options.onContentLoaded!=$empty)?options.onContentLoaded():instance.fireEvent("contentLoaded",element)}.bind(this)})}else{(options.onContentLoaded&&options.onContentLoaded!=$empty)?options.onContentLoaded():instance.fireEvent("contentLoaded",element)}};if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.loadSelect(instance,options,args)}.bind(this)})}else{this.loadSelect(instance,options,args)}},loadSelect:function(instance,options,args){switch(options.loadMethod){case"xhr":this.updateContentXHR(instance,options,args);break;case"iframe":this.updateContentIframe(instance,options,args);break;case"json":this.updateContentJSON(instance,options,args);break;case"html":default:this.updateContentHTML(instance,options,args);break}},updateContentJSON:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;new Request({url:options.url,update:contentContainer,method:options.method!=null?options.method:"get",data:options.data!=null?new Hash(options.data).toQueryString():"",evalScripts:false,evalResponse:false,headers:{"Content-Type":"application/json"},onRequest:function(){if(args.recipient=="window"&&contentContainer==contentEl){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}}.bind(this),onFailure:function(){if(contentContainer==contentEl){contentContainer.set("html","

      Error Loading XMLHttpRequest

      ");if(recipient=="window"){instance.hideSpinner()}else{if(recipient=="panel"&&$("spinner")){$("spinner").hide()}}}if(contentContainer==contentEl){contentContainer.set("html","

      Error Loading XMLHttpRequest

      ");if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}}.bind(this),onException:function(){}.bind(this),onSuccess:function(json){if(contentContainer==contentEl){if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}var json=JSON.decode(json);instance.fireEvent("loaded",$A([options.element,json,instance]))}}.bind(this),onComplete:function(){}.bind(this)}).get()},updateContentXHR:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var onContentLoaded=args.onContentLoaded;new Request.HTML({url:options.url,update:contentContainer,method:options.method!=null?options.method:"get",data:options.data!=null?new Hash(options.data).toQueryString():"",evalScripts:instance.options.evalScripts,evalResponse:instance.options.evalResponse,onRequest:function(){if(args.recipient=="window"&&contentContainer==contentEl){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}}.bind(this),onFailure:function(response){if(contentContainer==contentEl){var getTitle=new RegExp("[\n\rs]*(.*)[\n\rs]*","gmi");var error=getTitle.exec(response.responseText);if(!error){error="Unknown"}contentContainer.set("html","

      Error: "+error[1]+"

      ");if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}}.bind(this),onSuccess:function(){contentEl.addClass("pad");if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}Browser.Engine.trident4?onContentLoaded.delay(750):onContentLoaded()}.bind(this),onComplete:function(){}.bind(this)}).send()},updateContentIframe:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var contentWrapperEl=instance.contentWrapperEl;var onContentLoaded=args.onContentLoaded;if(instance.options.contentURL==""||contentContainer!=contentEl){return}contentEl.removeClass("pad");contentEl.setStyle("padding","0px");instance.iframeEl=new Element("iframe",{id:instance.options.id+"_iframe",name:instance.options.id+"_iframe","class":"mochaIframe",src:options.url,marginwidth:0,marginheight:0,frameBorder:0,scrolling:"auto",styles:{height:contentWrapperEl.offsetHeight-contentWrapperEl.getStyle("border-top").toInt()-contentWrapperEl.getStyle("border-bottom").toInt(),width:instance.panelEl?contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt():"100%"}}).injectInside(contentEl);instance.iframeEl.addEvent("load",function(e){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").hide()}}Browser.Engine.trident4?onContentLoaded.delay(50):onContentLoaded()}.bind(this));if(args.recipient=="window"){instance.showSpinner()}else{if(args.recipient=="panel"&&contentContainer==contentEl&&$("spinner")){$("spinner").show()}}},updateContentHTML:function(instance,options,args){var contentEl=instance.contentEl;var contentContainer=args.contentContainer;var onContentLoaded=args.onContentLoaded;var elementTypes=new Array("element","textnode","whitespace","collection");contentEl.addClass("pad");if(elementTypes.contains($type(options.content))){options.content.inject(contentContainer)}else{contentContainer.set("html",options.content)}if(contentContainer==contentEl){if(args.recipient=="window"){instance.hideSpinner()}else{if(args.recipient=="panel"&&$("spinner")){$("spinner").hide()}}}Browser.Engine.trident4?onContentLoaded.delay(50):onContentLoaded()},reloadIframe:function(iframe){Browser.Engine.gecko?$(iframe).src=$(iframe).src:top.frames[iframe].location.reload(true)},roundedRect:function(ctx,x,y,width,height,radius,rgb,a){ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},triangle:function(ctx,x,y,width,height,rgb,a){ctx.beginPath();ctx.moveTo(x+width,y);ctx.lineTo(x,y+height);ctx.lineTo(x+width,y+height);ctx.closePath();ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.fill()},circle:function(ctx,x,y,diameter,rgb,a){ctx.beginPath();ctx.arc(x,y,diameter,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgb.join(",")+","+a+")";ctx.fill()},notification:function(message){new MUI.Window({loadMethod:"html",closeAfter:1500,type:"notification",addClass:"notification",content:message,width:220,height:40,y:53,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5})},toggleAdvancedEffects:function(link){if(MUI.options.advancedEffects==false){MUI.options.advancedEffects=true;if(link){this.toggleAdvancedEffectsLink=new Element("div",{"class":"check",id:"toggleAdvancedEffects_check"}).inject(link)}}else{MUI.options.advancedEffects=false;if(this.toggleAdvancedEffectsLink){this.toggleAdvancedEffectsLink.destroy()}}},toggleStandardEffects:function(link){if(MUI.options.standardEffects==false){MUI.options.standardEffects=true;if(link){this.toggleStandardEffectsLink=new Element("div",{"class":"check",id:"toggleStandardEffects_check"}).inject(link)}}else{MUI.options.standardEffects=false;if(this.toggleStandardEffectsLink){this.toggleStandardEffectsLink.destroy()}}},underlayInitialize:function(){var windowUnderlay=new Element("div",{id:"windowUnderlay",styles:{height:parent.getCoordinates().height,opacity:0.01,display:"none"}}).inject(document.body)},setUnderlaySize:function(){$("windowUnderlay").setStyle("height",parent.getCoordinates().height)}});function fixPNG(myImage){if(Browser.Engine.trident4&&document.body.filters){var imgID=(myImage.id)?"id='"+myImage.id+"' ":"";var imgClass=(myImage.className)?"class='"+myImage.className+"' ":"";var imgTitle=(myImage.title)?"title='"+myImage.title+"' ":"title='"+myImage.alt+"' ";var imgStyle="display:inline-block;"+myImage.style.cssText;var strNewHTML="";myImage.outerHTML=strNewHTML}}document.addEvent("mousedown",function(event){MUI.blurAll.delay(50)});window.addEvent("domready",function(){MUI.underlayInitialize()});window.addEvent("resize",function(){if($("windowUnderlay")){MUI.setUnderlaySize()}else{MUI.underlayInitialize()}});Element.implement({hide:function(){this.setStyle("display","none");return this},show:function(){this.setStyle("display","block");return this}});Element.implement({shake:function(radius,duration){radius=radius||3;duration=duration||500;duration=(duration/50).toInt()-1;var parent=this.getParent();if(parent!=$(document.body)&&parent.getStyle("position")=="static"){parent.setStyle("position","relative")}var position=this.getStyle("position");if(position=="static"){this.setStyle("position","relative");position="relative"}if(Browser.Engine.trident){parent.setStyle("height",parent.getStyle("height"))}var coords=this.getPosition(parent);if(position=="relative"&&!Browser.Engine.presto){coords.x-=parent.getStyle("paddingLeft").toInt();coords.y-=parent.getStyle("paddingTop").toInt()}var morph=this.retrieve("morph");if(morph){morph.cancel();var oldOptions=morph.options}var morph=this.retrieve("morph",{duration:50,link:"chain"});for(var i=0;i]*>([\s\S]*?)<\/body>/i);text=(match)?match[1]:text;var container=new Element("div");return container.set("html",text)}});MUI.getCSSRule=function(selector){for(var ii=0;ii=200)&&(status<300))}});Browser.Request=function(){return $try(function(){return new ActiveXObject("MSXML2.XMLHTTP")},function(){return new XMLHttpRequest()})}}MUI.Require=new Class({Implements:[Options],options:{css:[],images:[],js:[],onload:$empty},initialize:function(options){this.setOptions(options);var options=this.options;this.assetsToLoad=options.css.length+options.images.length+options.js.length;this.assetsLoaded=0;var cssLoaded=0;if(options.css.length){options.css.each(function(sheet){this.getAsset(sheet,function(){if(cssLoaded==options.css.length-1){if(this.assetsLoaded==this.assetsToLoad-1){this.requireOnload()}else{this.assetsLoaded++;this.requireContinue.delay(50,this)}}else{cssLoaded++;this.assetsLoaded++}}.bind(this))}.bind(this))}else{if(!options.js.length&&!options.images.length){this.options.onload();return true}else{this.requireContinue.delay(50,this)}}},requireOnload:function(){this.assetsLoaded++;if(this.assetsLoaded==this.assetsToLoad){this.options.onload();return true}},requireContinue:function(){var options=this.options;if(options.images.length){options.images.each(function(image){this.getAsset(image,this.requireOnload.bind(this))}.bind(this))}if(options.js.length){options.js.each(function(script){this.getAsset(script,this.requireOnload.bind(this))}.bind(this))}},getAsset:function(source,onload){if(MUI.files[source]=="loaded"){if(typeof onload=="function"){onload()}return true}else{if(MUI.files[source]=="loading"){var tries=0;var checker=(function(){tries++;if(MUI.files[source]=="loading"&&tries<"100"){return}$clear(checker);if(typeof onload=="function"){onload()}}).periodical(50)}else{MUI.files[source]="loading";properties={onload:onload!="undefined"?onload:$empty};var oldonload=properties.onload;properties.onload=function(){MUI.files[source]="loaded";if(oldonload){oldonload()}}.bind(this);switch(source.match(/\.\w+$/)[0]){case".js":return Asset.javascript(source,properties);case".css":return Asset.css(source,properties);case".jpg":case".png":case".gif":return Asset.image(source,properties)}alert('The required file "'+source+'" could not be loaded')}}}});$extend(Asset,{javascript:function(source,properties){properties=$extend({onload:$empty,document:document,check:$lambda(true)},properties);if($(properties.id)){properties.onload();return $(properties.id)}var script=new Element("script",{src:source,type:"text/javascript"});var load=properties.onload.bind(script),check=properties.check,doc=properties.document;delete properties.onload;delete properties.check;delete properties.document;if(!Browser.Engine.webkit419&&!Browser.Engine.presto){script.addEvents({load:load,readystatechange:function(){if(Browser.Engine.trident&&["loaded","complete"].contains(this.readyState)){load()}}}).setProperties(properties)}else{var checker=(function(){if(!$try(check)){return}$clear(checker);Browser.Engine.presto?load.delay(500):load()}).periodical(50)}return script.inject(doc.head)},css:function(source,properties){properties=$extend({id:null,media:"screen",onload:$empty},properties);new Request({method:"get",url:source,onComplete:function(response){var newSheet=new Element("link",{id:properties.id,rel:"stylesheet",media:properties.media,type:"text/css",href:source}).inject(document.head);properties.onload()}.bind(this),onFailure:function(response){},onSuccess:function(){}.bind(this)}).send()}});MUI.extend({newWindowsFromHTML:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Windows-from-html.js"],onload:function(){new MUI.newWindowsFromHTML(arg)}})},newWindowsFromJSON:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Windows-from-json.js"],onload:function(){new MUI.newWindowsFromJSON(arg)}})},arrangeCascade:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Arrange-cascade.js"],onload:function(){new MUI.arrangeCascade()}})},arrangeTile:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Window/Arrange-tile.js"],onload:function(){new MUI.arrangeTile()}})},saveWorkspace:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Layout/Workspaces.js"],onload:function(){new MUI.saveWorkspace()}})},loadWorkspace:function(){new MUI.Require({js:[MUI.path.plugins+"mochaui/Layout/Workspaces.js"],onload:function(){new MUI.loadWorkspace()}})},Themes:{init:function(arg){new MUI.Require({js:[MUI.path.plugins+"mochaui/Utilities/Themes.js"],onload:function(){MUI.Themes.init(arg)}})}}});MUI.files[MUI.path.source+"Window/Window.js"]="loading";MUI.extend({Windows:{instances:new Hash(),indexLevel:100,windowIDCount:0,windowsVisible:true,focusingWindow:false}});MUI.Windows.windowOptions={id:null,title:"New Window",icon:false,type:"window",require:{css:[],images:[],js:[],onload:null},loadMethod:null,method:"get",contentURL:null,data:null,closeAfter:false,evalScripts:true,evalResponse:false,content:"Window content",toolbar:false,toolbarPosition:"top",toolbarHeight:29,toolbarURL:"pages/lipsum.html",toolbarData:null,toolbarContent:"",toolbarOnload:$empty,toolbar2:false,toolbar2Position:"bottom",toolbar2Height:29,toolbar2URL:"pages/lipsum.html",toolbar2Data:null,toolbar2Content:"",toolbar2Onload:$empty,container:null,restrict:true,shape:"box",collapsible:true,minimizable:true,maximizable:true,closable:true,storeOnClose:false,modalOverlayClose:true,draggable:null,draggableGrid:false,draggableLimit:false,draggableSnap:false,resizable:null,resizeLimit:{x:[250,2500],y:[125,2000]},addClass:"",width:300,height:125,headerHeight:25,footerHeight:25,cornerRadius:8,x:null,y:null,scrollbars:true,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,shadowOffset:{x:0,y:1},controlsOffset:{right:6,top:6},useCanvas:true,useCanvasControls:true,useSpinner:true,headerStartColor:[250,250,250],headerStopColor:[229,229,229],bodyBgColor:[229,229,229],minimizeBgColor:[255,255,255],minimizeColor:[0,0,0],maximizeBgColor:[255,255,255],maximizeColor:[0,0,0],closeBgColor:[255,255,255],closeColor:[0,0,0],resizableColor:[254,254,254],onBeforeBuild:$empty,onContentLoaded:$empty,onFocus:$empty,onBlur:$empty,onResize:$empty,onMinimize:$empty,onMaximize:$empty,onRestore:$empty,onClose:$empty,onCloseComplete:$empty};MUI.Windows.windowOptionsOriginal=$merge(MUI.Windows.windowOptions);MUI.Window=new Class({Implements:[Events,Options],options:MUI.Windows.windowOptions,initialize:function(options){this.setOptions(options);var options=this.options;$extend(this,{mochaControlsWidth:0,minimizebuttonX:0,maximizebuttonX:0,closebuttonX:0,headerFooterShadow:options.headerHeight+options.footerHeight+(options.shadowBlur*2),oldTop:0,oldLeft:0,isMaximized:false,isMinimized:false,isCollapsed:false,timestamp:$time()});if(options.type!="window"){options.container=document.body;options.minimizable=false}if(!options.container){options.container=MUI.Desktop&&MUI.Desktop.desktop?MUI.Desktop.desktop:document.body}if(options.resizable==null){if(options.type!="window"||options.shape=="gauge"){options.resizable=false}else{options.resizable=true}}if(options.draggable==null){options.draggable=options.type!="window"?false:true}if(options.shape=="gauge"||options.type=="notification"){options.collapsible=false;options.maximizable=false;options.contentBgColor="transparent";options.scrollbars=false;options.footerHeight=0}if(options.type=="notification"){options.closable=false;options.headerHeight=0}if(MUI.Dock&&$(MUI.options.dock)){if(MUI.Dock.dock&&options.type!="modal"&&options.type!="modal2"){options.minimizable=options.minimizable}}else{options.minimizable=false}options.maximizable=MUI.Desktop&&MUI.Desktop.desktop&&options.maximizable&&options.type!="modal"&&options.type!="modal2";if(this.options.type=="modal2"){this.options.shadowBlur=0;this.options.shadowOffset={x:0,y:0};this.options.useSpinner=false;this.options.useCanvas=false;this.options.footerHeight=0;this.options.headerHeight=0}options.id=options.id||"win"+(++MUI.Windows.windowIDCount);this.windowEl=$(options.id);if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.newWindow()}.bind(this)})}else{this.newWindow()}return this},saveValues:function(){var coordinates=this.windowEl.getCoordinates();this.options.x=coordinates.left.toInt();this.options.y=coordinates.top.toInt()},newWindow:function(properties){var instances=MUI.Windows.instances;var instanceID=MUI.Windows.instances.get(this.options.id);var options=this.options;if(instanceID){var instance=instanceID}if(this.windowEl&&!this.isClosing){if(instance.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}else{if(instance.isCollapsed){MUI.collapseToggle(this.windowEl);setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}else{if(this.windowEl.hasClass("windowClosed")){if(instance.check){instance.check.show()}this.windowEl.removeClass("windowClosed");this.windowEl.setStyle("opacity",0);this.windowEl.addClass("mocha");if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.show()}MUI.Desktop.setDesktopSize()}instance.displayNewWindow()}else{var coordinates=document.getCoordinates();if(this.windowEl.getStyle("left").toInt()>coordinates.width||this.windowEl.getStyle("top").toInt()>coordinates.height){MUI.centerWindow(this.windowEl)}setTimeout(MUI.focusWindow.pass(this.windowEl,this),10);if(MUI.options.standardEffects==true){this.windowEl.shake()}}}}return}else{instances.set(options.id,this)}this.isClosing=false;this.fireEvent("onBeforeBuild");MUI.Windows.indexLevel++;this.windowEl=new Element("div",{"class":"mocha",id:options.id,styles:{position:"absolute",width:options.width,height:options.height,display:"block",opacity:0,zIndex:MUI.Windows.indexLevel+=2}});this.windowEl.store("instance",this);this.windowEl.addClass(options.addClass);if(options.type=="modal2"){this.windowEl.addClass("modal2")}if(Browser.Engine.trident&&options.shape=="gauge"){this.windowEl.setStyle("backgroundImage","url(../images/spacer.gif)")}if((this.options.type=="modal"||options.type=="modal2")&&Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){this.windowEl.setStyle("position","fixed")}}}if(options.loadMethod=="iframe"){options.padding={top:0,right:0,bottom:0,left:0}}this.insertWindowElements();this.titleEl.set("html",options.title);this.contentWrapperEl.setStyle("overflow","hidden");this.contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right});if(options.shape=="gauge"){if(options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","hidden")}else{this.controlsEl.setStyle("visibility","hidden")}this.windowEl.addEvent("mouseover",function(){this.mouseover=true;var showControls=function(){if(this.mouseover!=false){if(options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","visible")}else{this.controlsEl.setStyle("visibility","visible")}this.canvasHeaderEl.setStyle("visibility","visible");this.titleEl.show()}};showControls.delay(0,this)}.bind(this));this.windowEl.addEvent("mouseleave",function(){this.mouseover=false;if(this.options.useCanvasControls){this.canvasControlsEl.setStyle("visibility","hidden")}else{this.controlsEl.setStyle("visibility","hidden")}this.canvasHeaderEl.setStyle("visibility","hidden");this.titleEl.hide()}.bind(this))}this.windowEl.inject(options.container);this.setColors();if(options.type!="notification"){this.setMochaControlsWidth()}MUI.updateContent({element:this.windowEl,content:options.content,method:options.method,url:options.contentURL,data:options.data,onContentLoaded:null,require:{js:options.require.js,onload:options.require.onload}});if(this.options.toolbar==true){MUI.updateContent({element:this.windowEl,childElement:this.toolbarEl,content:options.toolbarContent,loadMethod:"xhr",method:options.method,url:options.toolbarURL,data:options.toolbarData,onContentLoaded:options.toolbarOnload})}if(this.options.toolbar2==true){MUI.updateContent({element:this.windowEl,childElement:this.toolbar2El,content:options.toolbar2Content,loadMethod:"xhr",method:options.method,url:options.toolbar2URL,data:options.toolbar2Data,onContentLoaded:options.toolbar2Onload})}this.drawWindow();this.attachDraggable();this.attachResizable();this.setupEvents();if(options.resizable){this.adjustHandles()}if(options.container==document.body||options.container==MUI.Desktop.desktop){var dimensions=window.getSize()}else{var dimensions=$(this.options.container).getSize()}var x,y;if(!options.y){if(MUI.Desktop&&MUI.Desktop.desktop){y=(dimensions.y*0.5)-(this.windowEl.offsetHeight*0.5);if(y<-options.shadowBlur){y=-options.shadowBlur}}else{y=window.getScroll().y+(window.getSize().y*0.5)-(this.windowEl.offsetHeight*0.5);if(y<-options.shadowBlur){y=-options.shadowBlur}}}else{y=options.y-options.shadowBlur}if(this.options.x==null){x=(dimensions.x*0.5)-(this.windowEl.offsetWidth*0.5);if(x<-options.shadowBlur){x=-options.shadowBlur}}else{x=options.x-options.shadowBlur}this.windowEl.setStyles({top:y,left:x});this.opacityMorph=new Fx.Morph(this.windowEl,{duration:350,transition:Fx.Transitions.Sine.easeInOut,onComplete:function(){if(Browser.Engine.trident){this.drawWindow()}}.bind(this)});this.displayNewWindow();this.morph=new Fx.Morph(this.windowEl,{duration:200});this.windowEl.store("morph",this.morph);this.resizeMorph=new Fx.Elements([this.contentWrapperEl,this.windowEl],{duration:400,transition:Fx.Transitions.Sine.easeInOut,onStart:function(){this.resizeAnimation=this.drawWindow.periodical(20,this)}.bind(this),onComplete:function(){$clear(this.resizeAnimation);this.drawWindow();if(this.iframeEl){this.iframeEl.setStyle("visibility","visible")}}.bind(this)});this.windowEl.store("resizeMorph",this.resizeMorph);if($(this.windowEl.id+"LinkCheck")){this.check=new Element("div",{"class":"check",id:this.options.id+"_check"}).inject(this.windowEl.id+"LinkCheck")}if(this.options.closeAfter!=false){MUI.closeWindow.delay(this.options.closeAfter,this,this.windowEl)}if(MUI.Dock&&$(MUI.options.dock)&&this.options.type=="window"){MUI.Dock.createDockTab(this.windowEl)}},displayNewWindow:function(){options=this.options;if(options.type=="modal"||options.type=="modal2"){MUI.currentModal=this.windowEl;if(Browser.Engine.trident4){$("modalFix").show()}$("modalOverlay").show();if(MUI.options.advancedEffects==false){$("modalOverlay").setStyle("opacity",0.6);this.windowEl.setStyles({zIndex:11000,opacity:1})}else{MUI.Modal.modalOverlayCloseMorph.cancel();MUI.Modal.modalOverlayOpenMorph.start({opacity:0.6});this.windowEl.setStyles({zIndex:11000});this.opacityMorph.start({opacity:1})}$$(".dockTab").removeClass("activeDockTab");$$(".mocha").removeClass("isFocused");this.windowEl.addClass("isFocused")}else{if(MUI.options.advancedEffects==false){this.windowEl.setStyle("opacity",1);setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}else{if(Browser.Engine.trident){this.drawWindow(false)}this.opacityMorph.start({opacity:1});setTimeout(MUI.focusWindow.pass(this.windowEl,this),10)}}},setupEvents:function(){var windowEl=this.windowEl;if(this.closeButtonEl){this.closeButtonEl.addEvent("click",function(e){new Event(e).stop();MUI.closeWindow(windowEl)}.bind(this))}if(this.options.type=="window"){windowEl.addEvent("mousedown",function(e){if(Browser.Engine.trident){new Event(e).stop()}MUI.focusWindow(windowEl);if(windowEl.getStyle("top").toInt()<-this.options.shadowBlur){windowEl.setStyle("top",-this.options.shadowBlur)}}.bind(this))}if(this.minimizeButtonEl){this.minimizeButtonEl.addEvent("click",function(e){new Event(e).stop();MUI.Dock.minimizeWindow(windowEl)}.bind(this))}if(this.maximizeButtonEl){this.maximizeButtonEl.addEvent("click",function(e){new Event(e).stop();if(this.isMaximized){MUI.Desktop.restoreWindow(windowEl)}else{MUI.Desktop.maximizeWindow(windowEl)}}.bind(this))}if(this.options.collapsible==true){this.titleEl.addEvent("selectstart",function(e){e=new Event(e).stop()}.bind(this));if(Browser.Engine.trident){this.titleBarEl.addEvent("mousedown",function(e){this.titleEl.setCapture()}.bind(this));this.titleBarEl.addEvent("mouseup",function(e){this.titleEl.releaseCapture()}.bind(this))}this.titleBarEl.addEvent("dblclick",function(e){e=new Event(e).stop();MUI.collapseToggle(this.windowEl)}.bind(this))}},attachDraggable:function(){var windowEl=this.windowEl;if(!this.options.draggable){return}this.windowDrag=new Drag.Move(windowEl,{handle:this.titleBarEl,container:this.options.restrict==true?$(this.options.container):false,grid:this.options.draggableGrid,limit:this.options.draggableLimit,snap:this.options.draggableSnap,onStart:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){MUI.focusWindow(windowEl);$("windowUnderlay").show()}if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","hidden")}else{this.iframeEl.hide()}}}.bind(this),onComplete:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){$("windowUnderlay").hide()}if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","visible")}else{this.iframeEl.show()}}this.saveValues()}.bind(this)})},attachResizable:function(){var windowEl=this.windowEl;if(!this.options.resizable){return}this.resizable1=this.windowEl.makeResizable({handle:[this.n,this.ne,this.nw],limit:{y:[function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[1]}.bind(this),function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[0]}.bind(this)]},modifiers:{x:false,y:"top"},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.y2=this.coords.top.toInt()+this.contentWrapperEl.offsetHeight}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("height",this.y2-this.coords.top.toInt());this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable2=this.contentWrapperEl.makeResizable({handle:[this.e,this.ne],limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)]},modifiers:{x:"width",y:false},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable3=this.contentWrapperEl.makeResizable({container:this.options.restrict==true?$(this.options.container):false,handle:this.se,limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)],y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:"width",y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable4=this.contentWrapperEl.makeResizable({handle:[this.s,this.sw],limit:{y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:false,y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable5=this.windowEl.makeResizable({handle:[this.w,this.sw,this.nw],limit:{x:[function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[1]}.bind(this),function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[0]}.bind(this)]},modifiers:{x:"left",y:false},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.x2=this.coords.left.toInt()+this.contentWrapperEl.offsetWidth}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("width",this.x2-this.coords.left.toInt());this.resizeOnDrag()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)})},resizeOnStart:function(){$("windowUnderlay").show();if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","hidden")}else{this.iframeEl.hide()}}},resizeOnDrag:function(){if(Browser.Engine.gecko){this.windowEl.getElements(".panel").each(function(panel){panel.store("oldOverflow",panel.getStyle("overflow"));panel.setStyle("overflow","visible")})}this.drawWindow();this.adjustHandles();if(Browser.Engine.gecko){this.windowEl.getElements(".panel").each(function(panel){panel.setStyle("overflow",panel.retrieve("oldOverflow"))})}},resizeOnComplete:function(){$("windowUnderlay").hide();if(this.iframeEl){if(!Browser.Engine.trident){this.iframeEl.setStyle("visibility","visible")}else{this.iframeEl.show();this.iframeEl.setStyle("width","99%");this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight);this.iframeEl.setStyle("width","100%");this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight)}}if(this.contentWrapperEl.getChildren(".column")!=null){MUI.rWidth(this.contentWrapperEl);this.contentWrapperEl.getChildren(".column").each(function(column){MUI.panelHeight(column)})}this.fireEvent("onResize",this.windowEl)},adjustHandles:function(){var shadowBlur=this.options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=this.options.shadowOffset;var top=shadowBlur-shadowOffset.y-1;var right=shadowBlur+shadowOffset.x-1;var bottom=shadowBlur+shadowOffset.y-1;var left=shadowBlur-shadowOffset.x-1;var coordinates=this.windowEl.getCoordinates();var width=coordinates.width-shadowBlur2x+2;var height=coordinates.height-shadowBlur2x+2;this.n.setStyles({top:top,left:left+10,width:width-20});this.e.setStyles({top:top+10,right:right,height:height-30});this.s.setStyles({bottom:bottom,left:left+10,width:width-30});this.w.setStyles({top:top+10,left:left,height:height-20});this.ne.setStyles({top:top,right:right});this.se.setStyles({bottom:bottom,right:right});this.sw.setStyles({bottom:bottom,left:left});this.nw.setStyles({top:top,left:left})},detachResizable:function(){this.resizable1.detach();this.resizable2.detach();this.resizable3.detach();this.resizable4.detach();this.resizable5.detach();this.windowEl.getElements(".handle").hide()},reattachResizable:function(){this.resizable1.attach();this.resizable2.attach();this.resizable3.attach();this.resizable4.attach();this.resizable5.attach();this.windowEl.getElements(".handle").show()},insertWindowElements:function(){var options=this.options;var height=options.height;var width=options.width;var id=options.id;var cache={};if(Browser.Engine.trident4){cache.zIndexFixEl=new Element("iframe",{id:id+"_zIndexFix","class":"zIndexFix",scrolling:"no",marginWidth:0,marginHeight:0,src:"",styles:{position:"absolute"}}).inject(this.windowEl)}cache.overlayEl=new Element("div",{id:id+"_overlay","class":"mochaOverlay",styles:{position:"absolute",top:0,left:0}}).inject(this.windowEl);cache.titleBarEl=new Element("div",{id:id+"_titleBar","class":"mochaTitlebar",styles:{cursor:options.draggable?"move":"default"}}).inject(cache.overlayEl,"top");cache.titleEl=new Element("h3",{id:id+"_title","class":"mochaTitle"}).inject(cache.titleBarEl);if(options.icon!=false){cache.titleEl.setStyles({"padding-left":28,background:"url("+options.icon+") 5px 4px no-repeat"})}cache.contentBorderEl=new Element("div",{id:id+"_contentBorder","class":"mochaContentBorder"}).inject(cache.overlayEl);if(options.toolbar){cache.toolbarWrapperEl=new Element("div",{id:id+"_toolbarWrapper","class":"mochaToolbarWrapper",styles:{height:options.toolbarHeight}}).inject(cache.contentBorderEl,options.toolbarPosition=="bottom"?"after":"before");if(options.toolbarPosition=="bottom"){cache.toolbarWrapperEl.addClass("bottom")}cache.toolbarEl=new Element("div",{id:id+"_toolbar","class":"mochaToolbar",styles:{height:options.toolbarHeight}}).inject(cache.toolbarWrapperEl)}if(options.toolbar2){cache.toolbar2WrapperEl=new Element("div",{id:id+"_toolbar2Wrapper","class":"mochaToolbarWrapper",styles:{height:options.toolbar2Height}}).inject(cache.contentBorderEl,options.toolbar2Position=="bottom"?"after":"before");if(options.toolbar2Position=="bottom"){cache.toolbar2WrapperEl.addClass("bottom")}cache.toolbar2El=new Element("div",{id:id+"_toolbar2","class":"mochaToolbar",styles:{height:options.toolbar2Height}}).inject(cache.toolbar2WrapperEl)}cache.contentWrapperEl=new Element("div",{id:id+"_contentWrapper","class":"mochaContentWrapper",styles:{width:width+"px",height:height+"px"}}).inject(cache.contentBorderEl);if(this.options.shape=="gauge"){cache.contentBorderEl.setStyle("borderWidth",0)}cache.contentEl=new Element("div",{id:id+"_content","class":"mochaContent"}).inject(cache.contentWrapperEl);if(this.options.useCanvas==true&&Browser.Engine.trident!=true){cache.canvasEl=new Element("canvas",{id:id+"_canvas","class":"mochaCanvas",width:10,height:10}).inject(this.windowEl)}if(this.options.useCanvas==true&&Browser.Engine.trident){cache.canvasEl=new Element("canvas",{id:id+"_canvas","class":"mochaCanvas",width:50000,height:20000,styles:{position:"absolute",top:0,left:0}}).inject(this.windowEl);if(MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasEl);cache.canvasEl=this.windowEl.getElement(".mochaCanvas")}}cache.controlsEl=new Element("div",{id:id+"_controls","class":"mochaControls"}).inject(cache.overlayEl,"after");if(options.useCanvasControls==true){cache.canvasControlsEl=new Element("canvas",{id:id+"_canvasControls","class":"mochaCanvasControls",width:14,height:14}).inject(this.windowEl);if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasControlsEl);cache.canvasControlsEl=this.windowEl.getElement(".mochaCanvasControls")}}if(options.closable){cache.closeButtonEl=new Element("div",{id:id+"_closeButton","class":"mochaCloseButton mochaWindowButton",title:"Close"}).inject(cache.controlsEl)}if(options.maximizable){cache.maximizeButtonEl=new Element("div",{id:id+"_maximizeButton","class":"mochaMaximizeButton mochaWindowButton",title:"Maximize"}).inject(cache.controlsEl)}if(options.minimizable){cache.minimizeButtonEl=new Element("div",{id:id+"_minimizeButton","class":"mochaMinimizeButton mochaWindowButton",title:"Minimize"}).inject(cache.controlsEl)}if(options.useSpinner==true&&options.shape!="gauge"&&options.type!="notification"){cache.spinnerEl=new Element("div",{id:id+"_spinner","class":"mochaSpinner",width:16,height:16}).inject(this.windowEl,"bottom")}if(this.options.shape=="gauge"){cache.canvasHeaderEl=new Element("canvas",{id:id+"_canvasHeader","class":"mochaCanvasHeader",width:this.options.width,height:26}).inject(this.windowEl,"bottom");if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(cache.canvasHeaderEl);cache.canvasHeaderEl=this.windowEl.getElement(".mochaCanvasHeader")}}if(Browser.Engine.trident){cache.overlayEl.setStyle("zIndex",2)}if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){cache.overlayEl.setStyle("overflow","auto")}}}if(options.resizable){cache.n=new Element("div",{id:id+"_resizeHandle_n","class":"handle",styles:{top:0,left:10,cursor:"n-resize"}}).inject(cache.overlayEl,"after");cache.ne=new Element("div",{id:id+"_resizeHandle_ne","class":"handle corner",styles:{top:0,right:0,cursor:"ne-resize"}}).inject(cache.overlayEl,"after");cache.e=new Element("div",{id:id+"_resizeHandle_e","class":"handle",styles:{top:10,right:0,cursor:"e-resize"}}).inject(cache.overlayEl,"after");cache.se=new Element("div",{id:id+"_resizeHandle_se","class":"handle cornerSE",styles:{bottom:0,right:0,cursor:"se-resize"}}).inject(cache.overlayEl,"after");cache.s=new Element("div",{id:id+"_resizeHandle_s","class":"handle",styles:{bottom:0,left:10,cursor:"s-resize"}}).inject(cache.overlayEl,"after");cache.sw=new Element("div",{id:id+"_resizeHandle_sw","class":"handle corner",styles:{bottom:0,left:0,cursor:"sw-resize"}}).inject(cache.overlayEl,"after");cache.w=new Element("div",{id:id+"_resizeHandle_w","class":"handle",styles:{top:10,left:0,cursor:"w-resize"}}).inject(cache.overlayEl,"after");cache.nw=new Element("div",{id:id+"_resizeHandle_nw","class":"handle corner",styles:{top:0,left:0,cursor:"nw-resize"}}).inject(cache.overlayEl,"after")}$extend(this,cache)},setColors:function(){if(this.options.useCanvas==true){var pattern=/\?(.*?)\)/;if(this.titleBarEl.getStyle("backgroundImage")!="none"){var gradient=this.titleBarEl.getStyle("backgroundImage");gradient=gradient.match(pattern)[1];gradient=gradient.parseQueryString();var gradientFrom=gradient.from;var gradientTo=gradient.to.replace(/\"/,"");this.options.headerStartColor=new Color(gradientFrom);this.options.headerStopColor=new Color(gradientTo);this.titleBarEl.addClass("replaced")}else{if(this.titleBarEl.getStyle("background-color")!==""&&this.titleBarEl.getStyle("background-color")!=="transparent"){this.options.headerStartColor=new Color(this.titleBarEl.getStyle("background-color")).mix("#fff",20);this.options.headerStopColor=new Color(this.titleBarEl.getStyle("background-color")).mix("#000",20);this.titleBarEl.addClass("replaced")}}if(this.windowEl.getStyle("background-color")!==""&&this.windowEl.getStyle("background-color")!=="transparent"){this.options.bodyBgColor=new Color(this.windowEl.getStyle("background-color"));this.windowEl.addClass("replaced")}if(this.options.resizable&&this.se.getStyle("background-color")!==""&&this.se.getStyle("background-color")!=="transparent"){this.options.resizableColor=new Color(this.se.getStyle("background-color"));this.se.addClass("replaced")}}if(this.options.useCanvasControls==true){if(this.minimizeButtonEl){if(this.minimizeButtonEl.getStyle("color")!==""&&this.minimizeButtonEl.getStyle("color")!=="transparent"){this.options.minimizeColor=new Color(this.minimizeButtonEl.getStyle("color"))}if(this.minimizeButtonEl.getStyle("background-color")!==""&&this.minimizeButtonEl.getStyle("background-color")!=="transparent"){this.options.minimizeBgColor=new Color(this.minimizeButtonEl.getStyle("background-color"));this.minimizeButtonEl.addClass("replaced")}}if(this.maximizeButtonEl){if(this.maximizeButtonEl.getStyle("color")!==""&&this.maximizeButtonEl.getStyle("color")!=="transparent"){this.options.maximizeColor=new Color(this.maximizeButtonEl.getStyle("color"))}if(this.maximizeButtonEl.getStyle("background-color")!==""&&this.maximizeButtonEl.getStyle("background-color")!=="transparent"){this.options.maximizeBgColor=new Color(this.maximizeButtonEl.getStyle("background-color"));this.maximizeButtonEl.addClass("replaced")}}if(this.closeButtonEl){if(this.closeButtonEl.getStyle("color")!==""&&this.closeButtonEl.getStyle("color")!=="transparent"){this.options.closeColor=new Color(this.closeButtonEl.getStyle("color"))}if(this.closeButtonEl.getStyle("background-color")!==""&&this.closeButtonEl.getStyle("background-color")!=="transparent"){this.options.closeBgColor=new Color(this.closeButtonEl.getStyle("background-color"));this.closeButtonEl.addClass("replaced")}}}},drawWindow:function(shadows){if(this.drawingWindow==true){return}this.drawingWindow=true;if(this.isCollapsed){this.drawWindowCollapsed(shadows);return}var windowEl=this.windowEl;var options=this.options;var shadowBlur=options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=this.options.shadowOffset;this.overlayEl.setStyles({width:this.contentWrapperEl.offsetWidth});if(this.iframeEl){this.iframeEl.setStyle("height",this.contentWrapperEl.offsetHeight)}var borderHeight=this.contentBorderEl.getStyle("border-top").toInt()+this.contentBorderEl.getStyle("border-bottom").toInt();var toolbarHeight=this.toolbarWrapperEl?this.toolbarWrapperEl.getStyle("height").toInt()+this.toolbarWrapperEl.getStyle("border-top").toInt():0;var toolbar2Height=this.toolbar2WrapperEl?this.toolbar2WrapperEl.getStyle("height").toInt()+this.toolbar2WrapperEl.getStyle("border-top").toInt():0;this.headerFooterShadow=options.headerHeight+options.footerHeight+shadowBlur2x;var height=this.contentWrapperEl.getStyle("height").toInt()+this.headerFooterShadow+toolbarHeight+toolbar2Height+borderHeight;var width=this.contentWrapperEl.getStyle("width").toInt()+shadowBlur2x;this.windowEl.setStyles({height:height,width:width});this.overlayEl.setStyles({height:height,top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});if(this.options.useCanvas==true){if(Browser.Engine.trident){this.canvasEl.height=20000;this.canvasEl.width=50000}this.canvasEl.height=height;this.canvasEl.width=width}if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:width,height:height})}this.titleBarEl.setStyles({width:width-shadowBlur2x,height:options.headerHeight});if(options.useSpinner==true&&options.shape!="gauge"&&options.type!="notification"){this.spinnerEl.setStyles({left:shadowBlur-shadowOffset.x+3,bottom:shadowBlur+shadowOffset.y+4})}if(this.options.useCanvas!=false){var ctx=this.canvasEl.getContext("2d");ctx.clearRect(0,0,width,height);switch(options.shape){case"box":this.drawBox(ctx,width,height,shadowBlur,shadowOffset,shadows);break;case"gauge":this.drawGauge(ctx,width,height,shadowBlur,shadowOffset,shadows);break}if(options.resizable){MUI.triangle(ctx,width-(shadowBlur+shadowOffset.x+17),height-(shadowBlur+shadowOffset.y+18),11,11,options.resizableColor,1)}if(Browser.Engine.trident){MUI.triangle(ctx,0,0,10,10,options.resizableColor,0)}}if(options.type!="notification"&&options.useCanvasControls==true){this.drawControls(width,height,shadows)}if(MUI.Desktop&&this.contentWrapperEl.getChildren(".column").length!=0){MUI.rWidth(this.contentWrapperEl);this.contentWrapperEl.getChildren(".column").each(function(column){MUI.panelHeight(column)})}this.drawingWindow=false;return this},drawWindowCollapsed:function(shadows){var windowEl=this.windowEl;var options=this.options;var shadowBlur=options.shadowBlur;var shadowBlur2x=shadowBlur*2;var shadowOffset=options.shadowOffset;var headerShadow=options.headerHeight+shadowBlur2x+2;var height=headerShadow;var width=this.contentWrapperEl.getStyle("width").toInt()+shadowBlur2x;this.windowEl.setStyle("height",height);this.overlayEl.setStyles({height:height,top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:width,height:height})}this.windowEl.setStyle("width",width);this.overlayEl.setStyle("width",width);this.titleBarEl.setStyles({width:width-shadowBlur2x,height:options.headerHeight});if(this.options.useCanvas!=false){this.canvasEl.height=height;this.canvasEl.width=width;var ctx=this.canvasEl.getContext("2d");ctx.clearRect(0,0,width,height);this.drawBoxCollapsed(ctx,width,height,shadowBlur,shadowOffset,shadows);if(options.useCanvasControls==true){this.drawControls(width,height,shadows)}if(Browser.Engine.trident){MUI.triangle(ctx,0,0,10,10,options.resizableColor,0)}}this.drawingWindow=false;return this},drawControls:function(width,height,shadows){var options=this.options;var shadowBlur=options.shadowBlur;var shadowOffset=options.shadowOffset;var controlsOffset=options.controlsOffset;this.controlsEl.setStyles({right:shadowBlur+shadowOffset.x+controlsOffset.right,top:shadowBlur-shadowOffset.y+controlsOffset.top});this.canvasControlsEl.setStyles({right:shadowBlur+shadowOffset.x+controlsOffset.right,top:shadowBlur-shadowOffset.y+controlsOffset.top});this.closebuttonX=options.closable?this.mochaControlsWidth-7:this.mochaControlsWidth+12;this.maximizebuttonX=this.closebuttonX-(options.maximizable?19:0);this.minimizebuttonX=this.maximizebuttonX-(options.minimizable?19:0);var ctx2=this.canvasControlsEl.getContext("2d");ctx2.clearRect(0,0,100,100);if(this.options.closable){this.closebutton(ctx2,this.closebuttonX,7,options.closeBgColor,1,options.closeColor,1)}if(this.options.maximizable){this.maximizebutton(ctx2,this.maximizebuttonX,7,options.maximizeBgColor,1,options.maximizeColor,1)}if(this.options.minimizable){this.minimizebutton(ctx2,this.minimizebuttonX,7,options.minimizeBgColor,1,options.minimizeColor,1)}if(Browser.Engine.trident){MUI.circle(ctx2,0,0,3,this.options.resizableColor,0)}},drawBox:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var shadowBlur2x=shadowBlur*2;var cornerRadius=this.options.cornerRadius;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.roundedRect(ctx,shadowOffset.x+x,shadowOffset.y+x,width-(x*2)-shadowOffset.x,height-(x*2)-shadowOffset.y,cornerRadius+(shadowBlur-x),[0,0,0],x==shadowBlur?0.29:0.065+(x*0.01))}}this.bodyRoundedRect(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,height-shadowBlur2x,cornerRadius,options.bodyBgColor);if(this.options.type!="notification"){this.topRoundedRect(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,options.headerHeight,cornerRadius,options.headerStartColor,options.headerStopColor)}},drawBoxCollapsed:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var shadowBlur2x=shadowBlur*2;var cornerRadius=options.cornerRadius;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.roundedRect(ctx,shadowOffset.x+x,shadowOffset.y+x,width-(x*2)-shadowOffset.x,height-(x*2)-shadowOffset.y,cornerRadius+(shadowBlur-x),[0,0,0],x==shadowBlur?0.3:0.06+(x*0.01))}}this.topRoundedRect2(ctx,shadowBlur-shadowOffset.x,shadowBlur-shadowOffset.y,width-shadowBlur2x,options.headerHeight+2,cornerRadius,options.headerStartColor,options.headerStopColor)},drawGauge:function(ctx,width,height,shadowBlur,shadowOffset,shadows){var options=this.options;var radius=(width*0.5)-(shadowBlur)+16;if(shadows!=false){for(var x=0;x<=shadowBlur;x++){MUI.circle(ctx,width*0.5+shadowOffset.x,(height+options.headerHeight)*0.5+shadowOffset.x,(width*0.5)-(x*2)-shadowOffset.x,[0,0,0],x==shadowBlur?0.75:0.075+(x*0.04))}}MUI.circle(ctx,width*0.5-shadowOffset.x,(height+options.headerHeight)*0.5-shadowOffset.y,(width*0.5)-shadowBlur,options.bodyBgColor,1);this.canvasHeaderEl.setStyles({top:shadowBlur-shadowOffset.y,left:shadowBlur-shadowOffset.x});var ctx=this.canvasHeaderEl.getContext("2d");ctx.clearRect(0,0,width,100);ctx.beginPath();ctx.lineWidth=24;ctx.lineCap="round";ctx.moveTo(13,13);ctx.lineTo(width-(shadowBlur*2)-13,13);ctx.strokeStyle="rgba(0, 0, 0, .65)";ctx.stroke()},bodyRoundedRect:function(ctx,x,y,width,height,radius,rgb){ctx.fillStyle="rgba("+rgb.join(",")+", 1)";ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},topRoundedRect:function(ctx,x,y,width,height,radius,headerStartColor,headerStopColor){var lingrad=ctx.createLinearGradient(0,0,0,height);lingrad.addColorStop(0,"rgb("+headerStartColor.join(",")+")");lingrad.addColorStop(1,"rgb("+headerStopColor.join(",")+")");ctx.fillStyle=lingrad;ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(x,y+height);ctx.lineTo(x+width,y+height);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},topRoundedRect2:function(ctx,x,y,width,height,radius,headerStartColor,headerStopColor){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){ctx.fillStyle="rgba("+headerStopColor.join(",")+", 1)"}else{var lingrad=ctx.createLinearGradient(0,this.options.shadowBlur-1,0,height+this.options.shadowBlur+3);lingrad.addColorStop(0,"rgb("+headerStartColor.join(",")+")");lingrad.addColorStop(1,"rgb("+headerStopColor.join(",")+")");ctx.fillStyle=lingrad}ctx.beginPath();ctx.moveTo(x,y+radius);ctx.lineTo(x,y+height-radius);ctx.quadraticCurveTo(x,y+height,x+radius,y+height);ctx.lineTo(x+width-radius,y+height);ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);ctx.lineTo(x+width,y+radius);ctx.quadraticCurveTo(x+width,y,x+width-radius,y);ctx.lineTo(x+radius,y);ctx.quadraticCurveTo(x,y,x,y+radius);ctx.fill()},maximizebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x,y-3.5);ctx.lineTo(x,y+3.5);ctx.moveTo(x-3.5,y);ctx.lineTo(x+3.5,y);ctx.stroke()},closebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x-3,y-3);ctx.lineTo(x+3,y+3);ctx.moveTo(x+3,y-3);ctx.lineTo(x-3,y+3);ctx.stroke()},minimizebutton:function(ctx,x,y,rgbBg,aBg,rgb,a){ctx.beginPath();ctx.arc(x,y,7,0,Math.PI*2,true);ctx.fillStyle="rgba("+rgbBg.join(",")+","+aBg+")";ctx.fill();ctx.strokeStyle="rgba("+rgb.join(",")+","+a+")";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(x-3.5,y);ctx.lineTo(x+3.5,y);ctx.stroke()},setMochaControlsWidth:function(){this.mochaControlsWidth=0;var options=this.options;if(options.minimizable){this.mochaControlsWidth+=(this.minimizeButtonEl.getStyle("margin-left").toInt()+this.minimizeButtonEl.getStyle("width").toInt())}if(options.maximizable){this.mochaControlsWidth+=(this.maximizeButtonEl.getStyle("margin-left").toInt()+this.maximizeButtonEl.getStyle("width").toInt())}if(options.closable){this.mochaControlsWidth+=(this.closeButtonEl.getStyle("margin-left").toInt()+this.closeButtonEl.getStyle("width").toInt())}this.controlsEl.setStyle("width",this.mochaControlsWidth);if(options.useCanvasControls==true){this.canvasControlsEl.setProperty("width",this.mochaControlsWidth)}},hideSpinner:function(){if(this.spinnerEl){this.spinnerEl.hide()}return this},showSpinner:function(){if(this.spinnerEl){this.spinnerEl.show()}return this},close:function(){if(!this.isClosing){MUI.closeWindow(this.windowEl)}return this},minimize:function(){MUI.Dock.minimizeWindow(this.windowEl);return this},maximize:function(){if(this.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}MUI.Desktop.maximizeWindow(this.windowEl);return this},restore:function(){if(this.isMinimized){MUI.Dock.restoreMinimized(this.windowEl)}else{if(this.isMaximized){MUI.Desktop.restoreWindow(this.windowEl)}}return this},resize:function(options){MUI.resizeWindow(this.windowEl,options);return this},center:function(){MUI.centerWindow(this.windowEl);return this},hide:function(){this.windowEl.setStyle("display","none");return this},show:function(){this.windowEl.setStyle("display","block");return this}});MUI.extend({closeWindow:function(windowEl){var instance=windowEl.retrieve("instance");if(windowEl!=$(windowEl)||instance.isClosing){return}instance.isClosing=true;instance.fireEvent("onClose",windowEl);if(instance.options.storeOnClose){this.storeOnClose(instance,windowEl);return}if(instance.check){instance.check.destroy()}if((instance.options.type=="modal"||instance.options.type=="modal2")&&Browser.Engine.trident4){$("modalFix").hide()}if(MUI.options.advancedEffects==false){if(instance.options.type=="modal"||instance.options.type=="modal2"){$("modalOverlay").setStyle("opacity",0)}MUI.closingJobs(windowEl);return true}else{if(Browser.Engine.trident){instance.drawWindow(false)}if(instance.options.type=="modal"||instance.options.type=="modal2"){MUI.Modal.modalOverlayCloseMorph.start({opacity:0})}var closeMorph=new Fx.Morph(windowEl,{duration:120,onComplete:function(){MUI.closingJobs(windowEl);return true}.bind(this)});closeMorph.start({opacity:0.4})}},closingJobs:function(windowEl){var instances=MUI.Windows.instances;var instance=instances.get(windowEl.id);windowEl.setStyle("visibility","hidden");if(Browser.Engine.trident){windowEl.dispose()}else{windowEl.destroy()}instance.fireEvent("onCloseComplete");if(instance.options.type!="notification"){var newFocus=this.getWindowWithHighestZindex();this.focusWindow(newFocus)}instances.erase(instance.options.id);if(this.loadingWorkspace==true){this.windowUnload()}if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){MUI.Dock.dockSortables.removeItems(currentButton).destroy()}MUI.Desktop.setDesktopSize()}},storeOnClose:function(instance,windowEl){if(instance.check){instance.check.hide()}windowEl.setStyles({zIndex:-1});windowEl.addClass("windowClosed");windowEl.removeClass("mocha");if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.hide()}MUI.Desktop.setDesktopSize()}instance.fireEvent("onCloseComplete");if(instance.options.type!="notification"){var newFocus=this.getWindowWithHighestZindex();this.focusWindow(newFocus)}instance.isClosing=false},closeAll:function(){$$(".mocha").each(function(windowEl){this.closeWindow(windowEl)}.bind(this))},collapseToggle:function(windowEl){var instance=windowEl.retrieve("instance");var handles=windowEl.getElements(".handle");if(instance.isMaximized==true){return}if(instance.isCollapsed==false){instance.isCollapsed=true;handles.hide();if(instance.iframeEl){instance.iframeEl.setStyle("visibility","hidden")}instance.contentBorderEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000});if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000})}instance.drawWindowCollapsed()}else{instance.isCollapsed=false;instance.drawWindow();instance.contentBorderEl.setStyles({visibility:"visible",position:null,top:null,left:null});if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.setStyles({visibility:"visible",position:null,top:null,left:null})}if(instance.iframeEl){instance.iframeEl.setStyle("visibility","visible")}handles.show()}},toggleWindowVisibility:function(){MUI.Windows.instances.each(function(instance){if(instance.options.type=="modal"||instance.options.type=="modal2"||instance.isMinimized==true){return}var id=$(instance.options.id);if(id.getStyle("visibility")=="visible"){if(instance.iframe){instance.iframeEl.setStyle("visibility","hidden")}if(instance.toolbarEl){instance.toolbarWrapperEl.setStyle("visibility","hidden")}instance.contentBorderEl.setStyle("visibility","hidden");id.setStyle("visibility","hidden");MUI.Windows.windowsVisible=false}else{id.setStyle("visibility","visible");instance.contentBorderEl.setStyle("visibility","visible");if(instance.iframe){instance.iframeEl.setStyle("visibility","visible")}if(instance.toolbarEl){instance.toolbarWrapperEl.setStyle("visibility","visible")}MUI.Windows.windowsVisible=true}}.bind(this))},focusWindow:function(windowEl,fireEvent){MUI.Windows.focusingWindow=true;var windowClicked=function(){MUI.Windows.focusingWindow=false};windowClicked.delay(170,this);if($$(".mocha").length==0){return}if(windowEl!=$(windowEl)||windowEl.hasClass("isFocused")){return}var instances=MUI.Windows.instances;var instance=instances.get(windowEl.id);if(instance.options.type=="notification"){windowEl.setStyle("zIndex",11001);return}MUI.Windows.indexLevel+=2;windowEl.setStyle("zIndex",MUI.Windows.indexLevel);$("windowUnderlay").setStyle("zIndex",MUI.Windows.indexLevel-1).inject($(windowEl),"after");instances.each(function(instance){if(instance.windowEl.hasClass("isFocused")){instance.fireEvent("onBlur",instance.windowEl)}instance.windowEl.removeClass("isFocused")});if(MUI.Dock&&$(MUI.options.dock)&&instance.options.type=="window"){MUI.Dock.makeActiveTab()}windowEl.addClass("isFocused");if(fireEvent!=false){instance.fireEvent("onFocus",windowEl)}},getWindowWithHighestZindex:function(){this.highestZindex=0;$$(".mocha").each(function(element){this.zIndex=element.getStyle("zIndex");if(this.zIndex>=this.highestZindex){this.highestZindex=this.zIndex}}.bind(this));$$(".mocha").each(function(element){if(element.getStyle("zIndex")==this.highestZindex){this.windowWithHighestZindex=element}}.bind(this));return this.windowWithHighestZindex},blurAll:function(){if(MUI.Windows.focusingWindow==false){$$(".mocha").each(function(windowEl){var instance=windowEl.retrieve("instance");if(instance.options.type!="modal"&&instance.options.type!="modal2"){windowEl.removeClass("isFocused")}});$$(".dockTab").removeClass("activeDockTab")}},centerWindow:function(windowEl){if(!windowEl){MUI.Windows.instances.each(function(instance){if(instance.windowEl.hasClass("isFocused")){windowEl=instance.windowEl}})}var instance=windowEl.retrieve("instance");var options=instance.options;var dimensions=options.container.getCoordinates();var windowPosTop=window.getScroll().y+(window.getSize().y*0.5)-(windowEl.offsetHeight*0.5);if(windowPosTop<-instance.options.shadowBlur){windowPosTop=-instance.options.shadowBlur}var windowPosLeft=(dimensions.width*0.5)-(windowEl.offsetWidth*0.5);if(windowPosLeft<-instance.options.shadowBlur){windowPosLeft=-instance.options.shadowBlur}if(MUI.options.advancedEffects==true){instance.morph.start({top:windowPosTop,left:windowPosLeft})}else{windowEl.setStyles({top:windowPosTop,left:windowPosLeft})}},resizeWindow:function(windowEl,options){var instance=windowEl.retrieve("instance");$extend({width:null,height:null,top:null,left:null,centered:true},options);var oldWidth=windowEl.getStyle("width").toInt();var oldHeight=windowEl.getStyle("height").toInt();var oldTop=windowEl.getStyle("top").toInt();var oldLeft=windowEl.getStyle("left").toInt();if(options.centered){var top=typeof(options.top)!="undefined"?options.top:oldTop-((options.height-oldHeight)*0.5);var left=typeof(options.left)!="undefined"?options.left:oldLeft-((options.width-oldWidth)*0.5)}else{var top=typeof(options.top)!="undefined"?options.top:oldTop;var left=typeof(options.left)!="undefined"?options.left:oldLeft}if(MUI.options.advancedEffects==false){windowEl.setStyles({top:top,left:left});instance.contentWrapperEl.setStyles({height:options.height,width:options.width});instance.drawWindow();if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible")}else{instance.iframeEl.show()}}}else{windowEl.retrieve("resizeMorph").start({"0":{height:options.height,width:options.width},"1":{top:top,left:left}})}return instance},dynamicResize:function(windowEl){var instance=windowEl.retrieve("instance");var contentWrapperEl=instance.contentWrapperEl;var contentEl=instance.contentEl;contentWrapperEl.setStyles({height:contentEl.offsetHeight,width:contentEl.offsetWidth});instance.drawWindow()}});document.addEvent("keydown",function(event){if(event.key=="q"&&event.control&&event.alt){MUI.toggleWindowVisibility()}});MUI.files[MUI.path.source+"Window/Modal.js"]="loaded";MUI.Modal=new Class({Extends:MUI.Window,options:{type:"modal"},initialize:function(options){if(!$("modalOverlay")){this.modalInitialize();window.addEvent("resize",function(){this.setModalSize()}.bind(this))}this.parent(options)},modalInitialize:function(){var modalOverlay=new Element("div",{id:"modalOverlay",styles:{height:document.getCoordinates().height,opacity:0.6}}).inject(document.body);modalOverlay.setStyles({position:Browser.Engine.trident4?"absolute":"fixed"});modalOverlay.addEvent("click",function(e){var instance=MUI.Windows.instances.get(MUI.currentModal.id);if(instance.options.modalOverlayClose==true){MUI.closeWindow(MUI.currentModal)}});if(Browser.Engine.trident4){var modalFix=new Element("iframe",{id:"modalFix",scrolling:"no",marginWidth:0,marginHeight:0,src:"",styles:{height:document.getCoordinates().height}}).inject(document.body)}MUI.Modal.modalOverlayOpenMorph=new Fx.Morph($("modalOverlay"),{duration:150});MUI.Modal.modalOverlayCloseMorph=new Fx.Morph($("modalOverlay"),{duration:150,onComplete:function(){$("modalOverlay").hide();if(Browser.Engine.trident4){$("modalFix").hide()}}.bind(this)})},setModalSize:function(){$("modalOverlay").setStyle("height",document.getCoordinates().height);if(Browser.Engine.trident4){$("modalFix").setStyle("height",document.getCoordinates().height)}}});MUI.extend({initializeTabs:function(el,target){$(el).setStyle("list-style","none");$(el).getElements("li").each(function(listitem){var link=listitem.getFirst("a").addEvent("click",function(e){e.preventDefault()});listitem.addEvent("click",function(e){MUI.updateContent({element:$(target),url:link.get("href")});MUI.selected(this,el)})})},selected:function(el,parent){$(parent).getChildren().each(function(listitem){listitem.removeClass("selected")});el.addClass("selected")}});MUI.files[MUI.path.source+"Layout/Layout.js"]="loaded";MUI.extend({Columns:{instances:new Hash(),columnIDCount:0},Panels:{instances:new Hash(),panelIDCount:0}});MUI.Desktop={options:{desktop:"desktop",desktopHeader:"desktopHeader",desktopFooter:"desktopFooter",desktopNavBar:"desktopNavbar",pageWrapper:"pageWrapper",page:"page",desktopFooter:"desktopFooterWrapper"},initialize:function(){this.desktop=$(this.options.desktop);this.desktopHeader=$(this.options.desktopHeader);this.desktopNavBar=$(this.options.desktopNavBar);this.pageWrapper=$(this.options.pageWrapper);this.page=$(this.options.page);this.desktopFooter=$(this.options.desktopFooter);if(this.desktop){($$("body")).setStyles({overflow:"hidden",height:"100%",margin:0});($$("html")).setStyles({overflow:"hidden",height:"100%"})}if(!MUI.Dock){this.setDesktopSize()}this.menuInitialize();window.addEvent("resize",function(e){this.onBrowserResize()}.bind(this));if(MUI.myChain){MUI.myChain.callChain()}},menuInitialize:function(){if(Browser.Engine.trident4&&this.desktopNavBar){this.desktopNavBar.getElements("li").each(function(element){element.addEvent("mouseenter",function(){this.addClass("ieHover")});element.addEvent("mouseleave",function(){this.removeClass("ieHover")})})}},onBrowserResize:function(){this.setDesktopSize();setTimeout(function(){MUI.Windows.instances.each(function(instance){if(instance.isMaximized){if(instance.iframeEl){instance.iframeEl.setStyle("visibility","hidden")}var coordinates=document.getCoordinates();var borderHeight=instance.contentBorderEl.getStyle("border-top").toInt()+instance.contentBorderEl.getStyle("border-bottom").toInt();var toolbarHeight=instance.toolbarWrapperEl?instance.toolbarWrapperEl.getStyle("height").toInt()+instance.toolbarWrapperEl.getStyle("border-top").toInt():0;instance.contentWrapperEl.setStyles({height:coordinates.height-instance.options.headerHeight-instance.options.footerHeight-borderHeight-toolbarHeight,width:coordinates.width});instance.drawWindow();if(instance.iframeEl){instance.iframeEl.setStyles({height:instance.contentWrapperEl.getStyle("height")});instance.iframeEl.setStyle("visibility","visible")}}}.bind(this))}.bind(this),100)},setDesktopSize:function(){var windowDimensions=window.getCoordinates();var dockWrapper=$(MUI.options.dockWrapper);if(this.desktop){this.desktop.setStyle("height",windowDimensions.height)}if(this.pageWrapper){var dockOffset=MUI.dockVisible?dockWrapper.offsetHeight:0;var pageWrapperHeight=windowDimensions.height;pageWrapperHeight-=this.pageWrapper.getStyle("border-top").toInt();pageWrapperHeight-=this.pageWrapper.getStyle("border-bottom").toInt();if(this.desktopHeader){pageWrapperHeight-=this.desktopHeader.offsetHeight}if(this.desktopFooter){pageWrapperHeight-=this.desktopFooter.offsetHeight}pageWrapperHeight-=dockOffset;if(pageWrapperHeight<0){pageWrapperHeight=0}this.pageWrapper.setStyle("height",pageWrapperHeight)}if(MUI.Columns.instances.getKeys().length>0){MUI.Desktop.resizePanels()}},resizePanels:function(){MUI.panelHeight();MUI.rWidth()},maximizeWindow:function(windowEl){var instance=MUI.Windows.instances.get(windowEl.id);var options=instance.options;var windowDrag=instance.windowDrag;if(windowEl!=$(windowEl)||instance.isMaximized){return}if(instance.isCollapsed){MUI.collapseToggle(windowEl)}instance.isMaximized=true;if(instance.options.restrict){windowDrag.detach();if(options.resizable){instance.detachResizable()}instance.titleBarEl.setStyle("cursor","default")}if(options.container!=this.desktop){this.desktop.grab(windowEl);if(this.options.restrict){windowDrag.container=this.desktop}}instance.oldTop=windowEl.getStyle("top");instance.oldLeft=windowEl.getStyle("left");var contentWrapperEl=instance.contentWrapperEl;contentWrapperEl.oldWidth=contentWrapperEl.getStyle("width");contentWrapperEl.oldHeight=contentWrapperEl.getStyle("height");if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}var windowDimensions=document.getCoordinates();var options=instance.options;var shadowBlur=options.shadowBlur;var shadowOffset=options.shadowOffset;var newHeight=windowDimensions.height-options.headerHeight-options.footerHeight;newHeight-=instance.contentBorderEl.getStyle("border-top").toInt();newHeight-=instance.contentBorderEl.getStyle("border-bottom").toInt();newHeight-=(instance.toolbarWrapperEl?instance.toolbarWrapperEl.getStyle("height").toInt()+instance.toolbarWrapperEl.getStyle("border-top").toInt():0);MUI.resizeWindow(windowEl,{width:windowDimensions.width,height:newHeight,top:shadowOffset.y-shadowBlur,left:shadowOffset.x-shadowBlur});instance.fireEvent("onMaximize",windowEl);if(instance.maximizeButtonEl){instance.maximizeButtonEl.setProperty("title","Restore")}MUI.focusWindow(windowEl)},restoreWindow:function(windowEl){var instance=windowEl.retrieve("instance");if(windowEl!=$(windowEl)||!instance.isMaximized){return}var options=instance.options;instance.isMaximized=false;if(options.restrict){instance.windowDrag.attach();if(options.resizable){instance.reattachResizable()}instance.titleBarEl.setStyle("cursor","move")}if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}var contentWrapperEl=instance.contentWrapperEl;MUI.resizeWindow(windowEl,{width:contentWrapperEl.oldWidth,height:contentWrapperEl.oldHeight,top:instance.oldTop,left:instance.oldLeft});instance.fireEvent("onRestore",windowEl);if(instance.maximizeButtonEl){instance.maximizeButtonEl.setProperty("title","Maximize")}}};MUI.Column=new Class({Implements:[Events,Options],options:{id:null,container:null,placement:null,width:null,resizeLimit:[],sortable:true,isCollapsed:false,onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(options){this.setOptions(options);$extend(this,{timestamp:$time(),isCollapsed:false,oldWidth:0});if(this.options.id==null){this.options.id="column"+(++MUI.Columns.columnIDCount)}var options=this.options;var instances=MUI.Columns.instances;var instanceID=instances.get(options.id);if(options.container==null){options.container=MUI.Desktop.pageWrapper}else{$(options.container).setStyle("overflow","hidden")}if(typeof this.options.container=="string"){this.options.container=$(this.options.container)}if(instanceID){var instance=instanceID}if(this.columnEl){return}else{instances.set(options.id,this)}if($(options.container).getElement(".pad")!=null){$(options.container).getElement(".pad").hide()}if($(options.container).getElement(".mochaContent")!=null){$(options.container).getElement(".mochaContent").hide()}this.columnEl=new Element("div",{id:this.options.id,"class":"column expanded",styles:{width:options.placement=="main"?null:options.width}}).inject($(options.container));this.columnEl.store("instance",this);var parent=this.columnEl.getParent();var columnHeight=parent.getStyle("height").toInt();this.columnEl.setStyle("height",columnHeight);if(this.options.sortable){if(!this.options.container.retrieve("sortables")){var sortables=new Sortables(this.columnEl,{opacity:1,handle:".panel-header",constrain:false,revert:false,onSort:function(){$$(".column").each(function(column){column.getChildren(".panelWrapper").each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});if(column.getChildren(".panelWrapper").getLast()){column.getChildren(".panelWrapper").getLast().getElement(".panel").addClass("bottomPanel")}column.getChildren(".panelWrapper").each(function(panelWrapper){var panel=panelWrapper.getElement(".panel");var column=panelWrapper.getParent().id;instance=MUI.Panels.instances.get(panel.id);instance.options.column=column;if(instance){var nextpanel=panel.getParent().getNext(".expanded");if(nextpanel){nextpanel=nextpanel.getElement(".panel")}instance.partner=nextpanel}});MUI.panelHeight()}.bind(this))}.bind(this)});this.options.container.store("sortables",sortables)}else{this.options.container.retrieve("sortables").addLists(this.columnEl)}}if(options.placement=="main"){this.columnEl.addClass("rWidth")}switch(this.options.placement){case"left":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"after");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeRight(this.columnEl,options.resizeLimit[0],options.resizeLimit[1]);break;case"right":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"before");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeLeft(this.columnEl,options.resizeLimit[0],options.resizeLimit[1]);break}if(this.options.isCollapsed&&this.options.placement!="main"){this.columnToggle()}if(this.handleEl!=null){this.handleEl.addEvent("dblclick",function(){this.columnToggle()}.bind(this))}MUI.rWidth()},columnCollapse:function(){var column=this.columnEl;this.oldWidth=column.getStyle("width").toInt();this.resize.detach();this.handleEl.removeEvents("dblclick");this.handleEl.addEvent("click",function(){this.columnExpand()}.bind(this));this.handleEl.setStyle("cursor","pointer").addClass("detached");column.setStyle("width",0);this.isCollapsed=true;column.addClass("collapsed");column.removeClass("expanded");MUI.rWidth();this.fireEvent("onCollapse");return true},columnExpand:function(){var column=this.columnEl;column.setStyle("width",this.oldWidth);this.isCollapsed=false;column.addClass("expanded");column.removeClass("collapsed");this.handleEl.removeEvents("click");this.handleEl.addEvent("dblclick",function(){this.columnCollapse()}.bind(this));this.resize.attach();this.handleEl.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize").addClass("attached");MUI.rWidth();this.fireEvent("onExpand");return true},columnToggle:function(){if(this.isCollapsed==false){this.columnCollapse()}else{this.columnExpand()}}});MUI.Column.implement(new Options,new Events);MUI.Panel=new Class({Implements:[Events,Options],options:{id:null,title:"New Panel",column:null,require:{css:[],images:[],js:[],onload:null},loadMethod:null,contentURL:null,method:"get",data:null,evalScripts:true,evalResponse:false,content:"Panel content",tabsURL:null,tabsData:null,tabsOnload:$empty,header:true,headerToolbox:false,headerToolboxURL:"pages/lipsum.html",headerToolboxOnload:$empty,height:125,addClass:"",scrollbars:true,padding:{top:8,right:8,bottom:8,left:8},collapsible:true,onBeforeBuild:$empty,onContentLoaded:$empty,onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(options){this.setOptions(options);$extend(this,{timestamp:$time(),isCollapsed:false,oldHeight:0,partner:null});if(this.options.id==null){this.options.id="panel"+(++MUI.Panels.panelIDCount)}var instances=MUI.Panels.instances;var instanceID=instances.get(this.options.id);var options=this.options;if(instanceID){var instance=instanceID}if(this.panelEl){return}else{instances.set(this.options.id,this)}this.fireEvent("onBeforeBuild");if(options.loadMethod=="iframe"){options.padding={top:0,right:0,bottom:0,left:0}}this.showHandle=true;if($(options.column).getChildren().length==0){this.showHandle=false}this.panelWrapperEl=new Element("div",{id:this.options.id+"_wrapper","class":"panelWrapper expanded"}).inject($(options.column));this.panelEl=new Element("div",{id:this.options.id,"class":"panel expanded",styles:{height:options.height}}).inject(this.panelWrapperEl);this.panelEl.store("instance",this);this.panelEl.addClass(options.addClass);this.contentEl=new Element("div",{id:options.id+"_pad","class":"pad"}).inject(this.panelEl);this.contentWrapperEl=this.panelEl;this.contentEl.setStyles({"padding-top":options.padding.top,"padding-bottom":options.padding.bottom,"padding-left":options.padding.left,"padding-right":options.padding.right});this.panelHeaderEl=new Element("div",{id:this.options.id+"_header","class":"panel-header",styles:{display:options.header?"block":"none"}}).inject(this.panelEl,"before");var columnInstances=MUI.Columns.instances;var columnInstance=columnInstances.get(this.options.column);if(this.options.collapsible){this.collapseToggleInit()}if(this.options.headerToolbox){this.panelHeaderToolboxEl=new Element("div",{id:options.id+"_headerToolbox","class":"panel-header-toolbox"}).inject(this.panelHeaderEl)}this.panelHeaderContentEl=new Element("div",{id:options.id+"_headerContent","class":"panel-headerContent"}).inject(this.panelHeaderEl);if(columnInstance.options.sortable){this.panelHeaderEl.setStyle("cursor","move");columnInstance.options.container.retrieve("sortables").addItems(this.panelWrapperEl);if(this.panelHeaderToolboxEl){this.panelHeaderToolboxEl.addEvent("mousedown",function(e){e=new Event(e).stop();e.target.focus()});this.panelHeaderToolboxEl.setStyle("cursor","default")}}this.titleEl=new Element("h2",{id:options.id+"_title"}).inject(this.panelHeaderContentEl);this.handleEl=new Element("div",{id:options.id+"_handle","class":"horizontalHandle",styles:{display:this.showHandle==true?"block":"none"}}).inject(this.panelEl,"after");this.handleIconEl=new Element("div",{id:options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeBottom(options.id);if(options.require.css.length||options.require.images.length){new MUI.Require({css:options.require.css,images:options.require.images,onload:function(){this.newPanel()}.bind(this)})}else{this.newPanel()}},newPanel:function(){options=this.options;if(this.options.headerToolbox){MUI.updateContent({element:this.panelEl,childElement:this.panelHeaderToolboxEl,loadMethod:"xhr",url:options.headerToolboxURL,onContentLoaded:options.headerToolboxOnload})}if(options.tabsURL==null){this.titleEl.set("html",options.title)}else{this.panelHeaderContentEl.addClass("tabs");MUI.updateContent({element:this.panelEl,childElement:this.panelHeaderContentEl,loadMethod:"xhr",url:options.tabsURL,data:options.tabsData,onContentLoaded:options.tabsOnload})}MUI.updateContent({element:this.panelEl,content:options.content,method:options.method,data:options.data,url:options.contentURL,onContentLoaded:null,require:{js:options.require.js,onload:options.require.onload}});$(options.column).getChildren(".panelWrapper").each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});$(options.column).getChildren(".panelWrapper").getLast().getElement(".panel").addClass("bottomPanel");MUI.panelHeight(options.column,this.panelEl,"new")},collapseToggleInit:function(options){var options=this.options;this.panelHeaderCollapseBoxEl=new Element("div",{id:options.id+"_headerCollapseBox","class":"toolbox"}).inject(this.panelHeaderEl);if(options.headerToolbox){this.panelHeaderCollapseBoxEl.addClass("divider")}this.collapseToggleEl=new Element("div",{id:options.id+"_collapseToggle","class":"panel-collapse icon16",styles:{width:16,height:16},title:"Collapse Panel"}).inject(this.panelHeaderCollapseBoxEl);this.collapseToggleEl.addEvent("click",function(event){var panel=this.panelEl;var panelWrapper=this.panelWrapperEl;var instances=MUI.Panels.instances;var expandedSiblings=[];panelWrapper.getAllPrevious(".panelWrapper").each(function(sibling){var instance=instances.get(sibling.getElement(".panel").id);if(instance.isCollapsed==false){expandedSiblings.push(sibling.getElement(".panel").id)}});panelWrapper.getAllNext(".panelWrapper").each(function(sibling){var instance=instances.get(sibling.getElement(".panel").id);if(instance.isCollapsed==false){expandedSiblings.push(sibling.getElement(".panel").id)}});if(this.isCollapsed==false){var currentColumn=MUI.Columns.instances.get($(options.column).id);if(expandedSiblings.length==0&¤tColumn.options.placement!="main"){var currentColumn=MUI.Columns.instances.get($(options.column).id);currentColumn.columnToggle();return}else{if(expandedSiblings.length==0&¤tColumn.options.placement=="main"){return}}this.oldHeight=panel.getStyle("height").toInt();if(this.oldHeight<10){this.oldHeight=20}this.contentEl.setStyle("position","absolute");panel.setStyle("height",0);this.isCollapsed=true;panelWrapper.addClass("collapsed");panelWrapper.removeClass("expanded");MUI.panelHeight(options.column,panel,"collapsing");MUI.panelHeight();this.collapseToggleEl.removeClass("panel-collapsed");this.collapseToggleEl.addClass("panel-expand");this.collapseToggleEl.setProperty("title","Expand Panel");this.fireEvent("onCollapse")}else{this.contentEl.setStyle("position",null);panel.setStyle("height",this.oldHeight);this.isCollapsed=false;panelWrapper.addClass("expanded");panelWrapper.removeClass("collapsed");MUI.panelHeight(this.options.column,panel,"expanding");MUI.panelHeight();this.collapseToggleEl.removeClass("panel-expand");this.collapseToggleEl.addClass("panel-collapsed");this.collapseToggleEl.setProperty("title","Collapse Panel");this.fireEvent("onExpand")}}.bind(this))}});MUI.Panel.implement(new Options,new Events);MUI.extend({panelHeight:function(column,changing,action){if(column!=null){MUI.panelHeight2($(column),changing,action)}else{$$(".column").each(function(column){MUI.panelHeight2(column)}.bind(this))}},panelHeight2:function(column,changing,action){var instances=MUI.Panels.instances;var parent=column.getParent();var columnHeight=parent.getStyle("height").toInt();if(Browser.Engine.trident4&&parent==MUI.Desktop.pageWrapper){columnHeight-=1}column.setStyle("height",columnHeight);var panels=[];column.getChildren(".panelWrapper").each(function(panelWrapper){panels.push(panelWrapper.getElement(".panel"))}.bind(this));var panelsExpanded=[];column.getChildren(".expanded").each(function(panelWrapper){panelsExpanded.push(panelWrapper.getElement(".panel"))}.bind(this));var panelsToResize=[];var tallestPanel;var tallestPanelHeight=0;this.panelsTotalHeight=0;this.height=0;panels.each(function(panel){instance=instances.get(panel.id);if(panel.getParent().hasClass("expanded")&&panel.getParent().getNext(".expanded")){instance.partner=panel.getParent().getNext(".expanded").getElement(".panel");instance.resize.attach();instance.handleEl.setStyles({display:"block",cursor:Browser.Engine.webkit?"row-resize":"n-resize"}).removeClass("detached")}else{instance.resize.detach();instance.handleEl.setStyles({display:"none",cursor:null}).addClass("detached")}if(panel.getParent().getNext(".panelWrapper")==null){instance.handleEl.hide()}}.bind(this));column.getChildren().each(function(panelWrapper){panelWrapper.getChildren().each(function(el){if(el.hasClass("panel")){var instance=instances.get(el.id);anyNextSiblingsExpanded=function(el){var test;el.getParent().getAllNext(".panelWrapper").each(function(sibling){var siblingInstance=instances.get(sibling.getElement(".panel").id);if(siblingInstance.isCollapsed==false){test=true}}.bind(this));return test}.bind(this);anyExpandingNextSiblingsExpanded=function(el){var test;changing.getParent().getAllNext(".panelWrapper").each(function(sibling){var siblingInstance=instances.get(sibling.getElement(".panel").id);if(siblingInstance.isCollapsed==false){test=true}}.bind(this));return test}.bind(this);anyNextContainsChanging=function(el){var allNext=[];el.getParent().getAllNext(".panelWrapper").each(function(panelWrapper){allNext.push(panelWrapper.getElement(".panel"))}.bind(this));var test=allNext.contains(changing);return test}.bind(this);nextExpandedChanging=function(el){var test;if(el.getParent().getNext(".expanded")){if(el.getParent().getNext(".expanded").getElement(".panel")==changing){test=true}}return test};if(action=="new"){if(!instance.isCollapsed&&el!=changing){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}else{if(action==null||action=="collapsing"){if(!instance.isCollapsed&&(!anyNextContainsChanging(el)||!anyNextSiblingsExpanded(el))){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}else{if(action=="expanding"&&!instance.isCollapsed&&el!=changing){if(!anyNextContainsChanging(el)||(!anyExpandingNextSiblingsExpanded(el)&&nextExpandedChanging(el))){panelsToResize.push(el);this.panelsTotalHeight+=el.offsetHeight.toInt()}}}}if(el.style.height){this.height+=el.getStyle("height").toInt()}}else{this.height+=el.offsetHeight.toInt()}}.bind(this))}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;this.height=0;column.getChildren().each(function(el){this.height+=el.offsetHeight.toInt()}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;panelsToResize.each(function(panel){var ratio=this.panelsTotalHeight/panel.offsetHeight.toInt();var newPanelHeight=panel.getStyle("height").toInt()+(remainingHeight/ratio);if(newPanelHeight<1){newPanelHeight=0}panel.setStyle("height",newPanelHeight)}.bind(this));this.height=0;column.getChildren().each(function(panelWrapper){panelWrapper.getChildren().each(function(el){this.height+=el.offsetHeight.toInt();if(el.hasClass("panel")&&el.getStyle("height").toInt()>tallestPanelHeight){tallestPanel=el;tallestPanelHeight=el.getStyle("height").toInt()}}.bind(this))}.bind(this));var remainingHeight=column.offsetHeight.toInt()-this.height;if(remainingHeight!=0&&tallestPanelHeight>0){tallestPanel.setStyle("height",tallestPanel.getStyle("height").toInt()+remainingHeight);if(tallestPanel.getStyle("height")<1){tallestPanel.setStyle("height",0)}}parent.getChildren(".columnHandle").each(function(handle){var parent=handle.getParent();if(parent.getStyle("height").toInt()<1){return}var handleHeight=parent.getStyle("height").toInt()-handle.getStyle("border-top").toInt()-handle.getStyle("border-bottom").toInt();if(Browser.Engine.trident4&&parent==MUI.Desktop.pageWrapper){handleHeight-=1}handle.setStyle("height",handleHeight)});panelsExpanded.each(function(panel){MUI.resizeChildren(panel)}.bind(this))},resizeChildren:function(panel){var instances=MUI.Panels.instances;var instance=instances.get(panel.id);var contentWrapperEl=instance.contentWrapperEl;if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyles({height:contentWrapperEl.getStyle("height"),width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()})}else{instance.iframeEl.setStyles({height:contentWrapperEl.getStyle("height"),width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()-1});instance.iframeEl.setStyles({width:contentWrapperEl.offsetWidth-contentWrapperEl.getStyle("border-left").toInt()-contentWrapperEl.getStyle("border-right").toInt()})}}},rWidth:function(container){if(container==null){var container=MUI.Desktop.desktop}container.getElements(".rWidth").each(function(column){var currentWidth=column.offsetWidth.toInt();currentWidth-=column.getStyle("border-left").toInt();currentWidth-=column.getStyle("border-right").toInt();var parent=column.getParent();this.width=0;parent.getChildren().each(function(el){if(el.hasClass("mocha")!=true){this.width+=el.offsetWidth.toInt()}}.bind(this));var remainingWidth=parent.offsetWidth.toInt()-this.width;var newWidth=currentWidth+remainingWidth;if(newWidth<1){newWidth=0}column.setStyle("width",newWidth);column.getChildren(".panel").each(function(panel){panel.setStyle("width",newWidth-panel.getStyle("border-left").toInt()-panel.getStyle("border-right").toInt());MUI.resizeChildren(panel)}.bind(this))})}});function addResizeRight(element,min,max){if(!$(element)){return}element=$(element);var instances=MUI.Columns.instances;var instance=instances.get(element.id);var handle=element.getNext(".columnHandle");handle.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize");if(!min){min=50}if(!max){max=250}if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:"width",y:false},limit:{x:[min,max]},onStart:function(){element.getElements("iframe").setStyle("visibility","hidden");element.getNext(".column").getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){if(Browser.Engine.gecko){$$(".panel").each(function(panel){if(panel.getElements(".mochaIframe").length==0){panel.hide()}})}MUI.rWidth(element.getParent());if(Browser.Engine.gecko){$$(".panel").show()}if(Browser.Engine.trident4){element.getChildren().each(function(el){var width=$(element).getStyle("width").toInt();width-=el.getStyle("border-right").toInt();width-=el.getStyle("border-left").toInt();width-=el.getStyle("padding-right").toInt();width-=el.getStyle("padding-left").toInt();el.setStyle("width",width)}.bind(this))}}.bind(this),onComplete:function(){MUI.rWidth(element.getParent());element.getElements("iframe").setStyle("visibility","visible");element.getNext(".column").getElements("iframe").setStyle("visibility","visible");instance.fireEvent("onResize")}.bind(this)})}function addResizeLeft(element,min,max){if(!$(element)){return}element=$(element);var instances=MUI.Columns.instances;var instance=instances.get(element.id);var handle=element.getPrevious(".columnHandle");handle.setStyle("cursor",Browser.Engine.webkit?"col-resize":"e-resize");var partner=element.getPrevious(".column");if(!min){min=50}if(!max){max=250}if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:"width",y:false},invert:true,limit:{x:[min,max]},onStart:function(){$(element).getElements("iframe").setStyle("visibility","hidden");partner.getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){MUI.rWidth(element.getParent())}.bind(this),onComplete:function(){MUI.rWidth(element.getParent());$(element).getElements("iframe").setStyle("visibility","visible");partner.getElements("iframe").setStyle("visibility","visible");instance.fireEvent("onResize")}.bind(this)})}function addResizeBottom(element){if(!$(element)){return}var element=$(element);var instances=MUI.Panels.instances;var instance=instances.get(element.id);var handle=instance.handleEl;handle.setStyle("cursor",Browser.Engine.webkit?"row-resize":"n-resize");partner=instance.partner;min=0;max=function(){return element.getStyle("height").toInt()+partner.getStyle("height").toInt()}.bind(this);if(Browser.Engine.trident){handle.addEvents({mousedown:function(){handle.setCapture()},mouseup:function(){handle.releaseCapture()}})}instance.resize=element.makeResizable({handle:handle,modifiers:{x:false,y:"height"},limit:{y:[min,max]},invert:false,onBeforeStart:function(){partner=instance.partner;this.originalHeight=element.getStyle("height").toInt();this.partnerOriginalHeight=partner.getStyle("height").toInt()}.bind(this),onStart:function(){if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden");partner.getElements("iframe").setStyle("visibility","hidden")}else{instance.iframeEl.hide();partner.getElements("iframe").hide()}}}.bind(this),onDrag:function(){partnerHeight=partnerOriginalHeight;partnerHeight+=(this.originalHeight-element.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MUI.resizeChildren(element,element.getStyle("height").toInt());MUI.resizeChildren(partner,partnerHeight);element.getChildren(".column").each(function(column){MUI.panelHeight(column)});partner.getChildren(".column").each(function(column){MUI.panelHeight(column)})}.bind(this),onComplete:function(){partnerHeight=partnerOriginalHeight;partnerHeight+=(this.originalHeight-element.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MUI.resizeChildren(element,element.getStyle("height").toInt());MUI.resizeChildren(partner,partnerHeight);element.getChildren(".column").each(function(column){MUI.panelHeight(column)});partner.getChildren(".column").each(function(column){MUI.panelHeight(column)});if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible");partner.getElements("iframe").setStyle("visibility","visible")}else{instance.iframeEl.show();partner.getElements("iframe").show();var width=instance.iframeEl.getStyle("width").toInt();instance.iframeEl.setStyle("width",width-1);MUI.rWidth();instance.iframeEl.setStyle("width",width)}}instance.fireEvent("onResize")}.bind(this)})}MUI.extend({closeColumn:function(columnEl){columnEl=$(columnEl);if(columnEl==null){return}var instances=MUI.Columns.instances;var instance=instances.get(columnEl.id);if(instance==null||instance.isClosing){return}instance.isClosing=true;var panels=$(columnEl).getElements(".panel");panels.each(function(panel){MUI.closePanel(panel.id)}.bind(this));if(Browser.Engine.trident){columnEl.dispose();if(instance.handleEl!=null){instance.handleEl.dispose()}}else{columnEl.destroy();if(instance.handleEl!=null){instance.handleEl.destroy()}}if(MUI.Desktop){MUI.Desktop.resizePanels()}var sortables=instance.options.container.retrieve("sortables");if(sortables){sortables.removeLists(columnEl)}instances.erase(instance.options.id);return true},closePanel:function(panelEl){panelEl=$(panelEl);if(panelEl==null){return}var instances=MUI.Panels.instances;var instance=instances.get(panelEl.id);if(panelEl!=$(panelEl)||instance.isClosing){return}var column=instance.options.column;instance.isClosing=true;var columnInstances=MUI.Columns.instances;var columnInstance=columnInstances.get(column);if(columnInstance.options.sortable){columnInstance.options.container.retrieve("sortables").removeItems(instance.panelWrapperEl)}instance.panelWrapperEl.destroy();if(MUI.Desktop){MUI.Desktop.resizePanels()}var panels=$(column).getElements(".panelWrapper");panels.each(function(panelWrapper){panelWrapper.getElement(".panel").removeClass("bottomPanel")});if(panels.length>0){panels.getLast().getElement(".panel").addClass("bottomPanel")}instances.erase(instance.options.id);return true}});MUI.files[MUI.path.source+"Layout/Dock.js"]="loaded";MUI.options.extend({dockWrapper:"dockWrapper",dockVisible:"true",dock:"dock"});MUI.extend({minimizeAll:function(){$$(".mocha").each(function(windowEl){var instance=windowEl.retrieve("instance");if(!instance.isMinimized&&instance.options.minimizable==true){MUI.Dock.minimizeWindow(windowEl)}}.bind(this))}});MUI.Dock={options:{useControls:true,dockPosition:"bottom",dockVisible:true,trueButtonColor:[70,245,70],enabledButtonColor:[115,153,191],disabledButtonColor:[170,170,170]},initialize:function(options){if(!MUI.Desktop){return}MUI.dockVisible=this.options.dockVisible;this.dockWrapper=$(MUI.options.dockWrapper);this.dock=$(MUI.options.dock);this.autoHideEvent=null;this.dockAutoHide=false;if(!this.dockWrapper){return}if(!this.options.useControls){if($("dockPlacement")){$("dockPlacement").setStyle("cursor","default")}if($("dockAutoHide")){$("dockAutoHide").setStyle("cursor","default")}}this.dockWrapper.setStyles({display:"block",position:"absolute",top:null,bottom:MUI.Desktop.desktopFooter?MUI.Desktop.desktopFooter.offsetHeight:0,left:0});if(this.options.useControls){this.initializeDockControls()}if($("dockLinkCheck")){this.sidebarCheck=new Element("div",{"class":"check",id:"dock_check"}).inject($("dockLinkCheck"))}this.dockSortables=new Sortables("#dockSort",{opacity:1,constrain:true,clone:false,revert:false});if(!(MUI.dockVisible)){this.dockWrapper.hide()}MUI.Desktop.setDesktopSize();if(MUI.myChain){MUI.myChain.callChain()}},initializeDockControls:function(){this.setDockColors();if(this.options.useControls){var canvas=new Element("canvas",{id:"dockCanvas",width:"15",height:"18"}).inject(this.dock);if(Browser.Engine.trident&&MUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(canvas)}}var dockPlacement=$("dockPlacement");var dockAutoHide=$("dockAutoHide");dockPlacement.setProperty("title","Position Dock Top");dockPlacement.addEvent("click",function(){this.moveDock()}.bind(this));dockAutoHide.setProperty("title","Turn Auto Hide On");dockAutoHide.addEvent("click",function(event){if(this.dockWrapper.getProperty("dockPosition")=="top"){return false}var ctx=$("dockCanvas").getContext("2d");this.dockAutoHide=!this.dockAutoHide;if(this.dockAutoHide){$("dockAutoHide").setProperty("title","Turn Auto Hide Off");MUI.circle(ctx,5,14,3,this.options.trueButtonColor,1);this.autoHideEvent=function(event){if(!this.dockAutoHide){return}if(!MUI.Desktop.desktopFooter){var dockHotspotHeight=this.dockWrapper.offsetHeight;if(dockHotspotHeight<25){dockHotspotHeight=25}}else{if(MUI.Desktop.desktopFooter){var dockHotspotHeight=this.dockWrapper.offsetHeight+MUI.Desktop.desktopFooter.offsetHeight;if(dockHotspotHeight<25){dockHotspotHeight=25}}}if(!MUI.Desktop.desktopFooter&&event.client.y>(document.getCoordinates().height-dockHotspotHeight)){if(!MUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}}else{if(MUI.Desktop.desktopFooter&&event.client.y>(document.getCoordinates().height-dockHotspotHeight)){if(!MUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}}else{if(MUI.dockVisible){this.dockWrapper.hide();MUI.dockVisible=false;MUI.Desktop.setDesktopSize()}}}}.bind(this);document.addEvent("mousemove",this.autoHideEvent)}else{$("dockAutoHide").setProperty("title","Turn Auto Hide On");MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1);document.removeEvent("mousemove",this.autoHideEvent)}}.bind(this));this.renderDockControls();if(this.options.dockPosition=="top"){this.moveDock()}},setDockColors:function(){var dockButtonEnabled=MUI.getCSSRule(".dockButtonEnabled");if(dockButtonEnabled&&dockButtonEnabled.style.backgroundColor){this.options.enabledButtonColor=new Color(dockButtonEnabled.style.backgroundColor)}var dockButtonDisabled=MUI.getCSSRule(".dockButtonDisabled");if(dockButtonDisabled&&dockButtonDisabled.style.backgroundColor){this.options.disabledButtonColor=new Color(dockButtonDisabled.style.backgroundColor)}var trueButtonColor=MUI.getCSSRule(".dockButtonTrue");if(trueButtonColor&&trueButtonColor.style.backgroundColor){this.options.trueButtonColor=new Color(trueButtonColor.style.backgroundColor)}},renderDockControls:function(){var ctx=$("dockCanvas").getContext("2d");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);if(this.dockWrapper.getProperty("dockPosition")=="top"){MUI.circle(ctx,5,14,3,this.options.disabledButtonColor,1)}else{if(this.dockAutoHide){MUI.circle(ctx,5,14,3,this.options.trueButtonColor,1)}else{MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1)}}},moveDock:function(){var ctx=$("dockCanvas").getContext("2d");if(this.dockWrapper.getStyle("position")!="relative"){this.dockWrapper.setStyles({position:"relative",bottom:null});this.dockWrapper.addClass("top");MUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","top");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);MUI.circle(ctx,5,14,3,this.options.disabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Bottom");$("dockAutoHide").setProperty("title","Auto Hide Disabled in Top Dock Position");this.dockAutoHide=false}else{this.dockWrapper.setStyles({position:"absolute",bottom:MUI.Desktop.desktopFooter?MUI.Desktop.desktopFooter.offsetHeight:0});this.dockWrapper.removeClass("top");MUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","bottom");ctx.clearRect(0,0,100,100);MUI.circle(ctx,5,4,3,this.options.enabledButtonColor,1);MUI.circle(ctx,5,14,3,this.options.enabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Top");$("dockAutoHide").setProperty("title","Turn Auto Hide On")}},createDockTab:function(windowEl){var instance=windowEl.retrieve("instance");var dockTab=new Element("div",{id:instance.options.id+"_dockTab","class":"dockTab",title:titleText}).inject($("dockClear"),"before");dockTab.addEvent("mousedown",function(e){new Event(e).stop();this.timeDown=$time()});dockTab.addEvent("mouseup",function(e){this.timeUp=$time();if((this.timeUp-this.timeDown)<275){if(MUI.Windows.windowsVisible==false){MUI.toggleWindowVisibility();if(instance.isMinimized==true){MUI.Dock.restoreMinimized.delay(25,MUI.Dock,windowEl)}else{MUI.focusWindow(windowEl)}return}if(instance.isMinimized==true){MUI.Dock.restoreMinimized.delay(25,MUI.Dock,windowEl)}else{if(instance.windowEl.hasClass("isFocused")&&instance.options.minimizable==true){MUI.Dock.minimizeWindow(windowEl)}else{MUI.focusWindow(windowEl)}var coordinates=document.getCoordinates();if(windowEl.getStyle("left").toInt()>coordinates.width||windowEl.getStyle("top").toInt()>coordinates.height){MUI.centerWindow(windowEl)}}}});this.dockSortables.addItems(dockTab);var titleText=instance.titleEl.innerHTML;var dockTabText=new Element("div",{id:instance.options.id+"_dockTabText","class":"dockText"}).set("html",titleText.substring(0,19)+(titleText.length>19?"...":"")).inject($(dockTab));if(instance.options.icon!=false){}MUI.Desktop.setDesktopSize()},makeActiveTab:function(){var windowEl=MUI.getWindowWithHighestZindex();var instance=windowEl.retrieve("instance");$$(".dockTab").removeClass("activeDockTab");if(instance.isMinimized!=true){instance.windowEl.addClass("isFocused");var currentButton=$(instance.options.id+"_dockTab");if(currentButton!=null){currentButton.addClass("activeDockTab")}}else{instance.windowEl.removeClass("isFocused")}},minimizeWindow:function(windowEl){if(windowEl!=$(windowEl)){return}var instance=windowEl.retrieve("instance");instance.isMinimized=true;if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","hidden")}else{instance.iframeEl.hide()}}instance.contentBorderEl.setStyle("visibility","hidden");if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.hide()}windowEl.setStyle("visibility","hidden");if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var ffversion=new Number(RegExp.$1);if(ffversion<3){instance.contentWrapperEl.setStyle("overflow","hidden")}}}MUI.Desktop.setDesktopSize();setTimeout(function(){windowEl.setStyle("zIndex",1);windowEl.removeClass("isFocused");this.makeActiveTab()}.bind(this),100);instance.fireEvent("onMinimize",windowEl)},restoreMinimized:function(windowEl){var instance=windowEl.retrieve("instance");if(instance.isMinimized==false){return}if(MUI.Windows.windowsVisible==false){MUI.toggleWindowVisibility()}MUI.Desktop.setDesktopSize();if(instance.options.scrollbars==true&&!instance.iframeEl){instance.contentWrapperEl.setStyle("overflow","auto")}if(instance.isCollapsed){MUI.collapseToggle(windowEl)}windowEl.setStyle("visibility","visible");instance.contentBorderEl.setStyle("visibility","visible");if(instance.toolbarWrapperEl){instance.toolbarWrapperEl.show()}if(instance.iframeEl){if(!Browser.Engine.trident){instance.iframeEl.setStyle("visibility","visible")}else{instance.iframeEl.show()}}instance.isMinimized=false;MUI.focusWindow(windowEl);instance.fireEvent("onRestore",windowEl)},toggle:function(){if(!MochaUI.dockVisible){this.dockWrapper.show();MUI.dockVisible=true;MUI.Desktop.setDesktopSize()}else{this.dockWrapper.hide();MUI.dockVisible=false;MUI.Desktop.setDesktopSize()}}}; diff --git a/src/webui/www/private/scripts/localpreferences.js b/src/webui/www/private/scripts/localpreferences.js index c704b9f89..deb0c159f 100644 --- a/src/webui/www/private/scripts/localpreferences.js +++ b/src/webui/www/private/scripts/localpreferences.js @@ -26,37 +26,34 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.LocalPreferences = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.LocalPreferences ??= (() => { + const exports = () => { return { - LocalPreferencesClass: LocalPreferencesClass + LocalPreferences: LocalPreferences }; }; - const LocalPreferencesClass = new Class({ - get: function(key, defaultValue) { + class LocalPreferences { + get(key, defaultValue) { const value = localStorage.getItem(key); return ((value === null) && (defaultValue !== undefined)) ? defaultValue : value; - }, + } - set: function(key, value) { + set(key, value) { try { localStorage.setItem(key, value); } catch (err) { console.error(err); } - }, + } - remove: function(key) { + remove(key) { try { localStorage.removeItem(key); } @@ -64,9 +61,8 @@ window.qBittorrent.LocalPreferences = (function() { console.error(err); } } - }); + }; return exports(); })(); - Object.freeze(window.qBittorrent.LocalPreferences); diff --git a/src/webui/www/private/scripts/misc.js b/src/webui/www/private/scripts/misc.js index 529d19e70..c1bad9e3e 100644 --- a/src/webui/www/private/scripts/misc.js +++ b/src/webui/www/private/scripts/misc.js @@ -26,19 +26,17 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.Misc = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.Misc ??= (() => { + const exports = () => { return { + getHost: getHost, + createDebounceHandler: createDebounceHandler, friendlyUnit: friendlyUnit, friendlyDuration: friendlyDuration, friendlyPercentage: friendlyPercentage, - friendlyFloat: friendlyFloat, parseHtmlLinks: parseHtmlLinks, parseVersion: parseVersion, escapeHtml: escapeHtml, @@ -47,16 +45,56 @@ window.qBittorrent.Misc = (function() { toFixedPointString: toFixedPointString, containsAllTerms: containsAllTerms, sleep: sleep, + downloadFile: downloadFile, // variables FILTER_INPUT_DELAY: 400, MAX_ETA: 8640000 }; }; + // getHost emulate the GUI version `QString getHost(const QString &url)` + const getHost = (url) => { + // We want the hostname. + // If failed to parse the domain, original input should be returned + + if (!/^(?:https?|udp):/i.test(url)) + return url; + + try { + // hack: URL can not get hostname from udp protocol + const parsedUrl = new URL(url.replace(/^udp:/i, "https:")); + // host: "example.com:8443" + // hostname: "example.com" + const host = parsedUrl.hostname; + if (!host) + return url; + + return host; + } + catch (error) { + return url; + } + }; + + const createDebounceHandler = (delay, func) => { + let timer = -1; + return (...params) => { + clearTimeout(timer); + timer = setTimeout(() => { + func(...params); + + timer = -1; + }, delay); + }; + }; + /* * JS counterpart of the function in src/misc.cpp */ - const friendlyUnit = function(value, isSpeed) { + const friendlyUnit = (value, isSpeed) => { + if ((value === undefined) || (value === null) || Number.isNaN(value) || (value < 0)) + return "QBT_TR(Unknown)QBT_TR[CONTEXT=misc]"; + const units = [ "QBT_TR(B)QBT_TR[CONTEXT=misc]", "QBT_TR(KiB)QBT_TR[CONTEXT=misc]", @@ -67,32 +105,29 @@ window.qBittorrent.Misc = (function() { "QBT_TR(EiB)QBT_TR[CONTEXT=misc]" ]; - if ((value === undefined) || (value === null) || (value < 0)) - return "QBT_TR(Unknown)QBT_TR[CONTEXT=misc]"; - - let i = 0; - while ((value >= 1024.0) && (i < 6)) { - value /= 1024.0; - ++i; - } - - function friendlyUnitPrecision(sizeUnit) { + const friendlyUnitPrecision = (sizeUnit) => { if (sizeUnit <= 2) // KiB, MiB return 1; else if (sizeUnit === 3) // GiB return 2; else // TiB, PiB, EiB return 3; + }; + + let i = 0; + while ((value >= 1024) && (i < 6)) { + value /= 1024; + ++i; } let ret; - if (i === 0) - ret = value + " " + units[i]; + if (i === 0) { + ret = `${value} ${units[i]}`; + } else { const precision = friendlyUnitPrecision(i); - const offset = Math.pow(10, precision); // Don't round up - ret = (Math.floor(offset * value) / offset).toFixed(precision) + " " + units[i]; + ret = `${toFixedPointString(value, precision)} ${units[i]}`; } if (isSpeed) @@ -103,7 +138,7 @@ window.qBittorrent.Misc = (function() { /* * JS counterpart of the function in src/misc.cpp */ - const friendlyDuration = function(seconds, maxCap = -1) { + const friendlyDuration = (seconds, maxCap = -1) => { if ((seconds < 0) || ((seconds >= maxCap) && (maxCap >= 0))) return "∞"; if (seconds === 0) @@ -112,55 +147,51 @@ window.qBittorrent.Misc = (function() { return "QBT_TR(< 1m)QBT_TR[CONTEXT=misc]"; let minutes = seconds / 60; if (minutes < 60) - return "QBT_TR(%1m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(minutes)); + return "QBT_TR(%1m)QBT_TR[CONTEXT=misc]".replace("%1", Math.floor(minutes)); let hours = minutes / 60; - minutes = minutes % 60; + minutes %= 60; if (hours < 24) - return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes)); + return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", Math.floor(hours)).replace("%2", Math.floor(minutes)); let days = hours / 24; - hours = hours % 24; + hours %= 24; if (days < 365) - return "QBT_TR(%1d %2h)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(days)).replace("%2", parseInt(hours)); + return "QBT_TR(%1d %2h)QBT_TR[CONTEXT=misc]".replace("%1", Math.floor(days)).replace("%2", Math.floor(hours)); const years = days / 365; - days = days % 365; - return "QBT_TR(%1y %2d)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(years)).replace("%2", parseInt(days)); + days %= 365; + return "QBT_TR(%1y %2d)QBT_TR[CONTEXT=misc]".replace("%1", Math.floor(years)).replace("%2", Math.floor(days)); }; - const friendlyPercentage = function(value) { - let percentage = (value * 100).round(1); - if (isNaN(percentage) || (percentage < 0)) + const friendlyPercentage = (value) => { + let percentage = value * 100; + if (Number.isNaN(percentage) || (percentage < 0)) percentage = 0; if (percentage > 100) percentage = 100; - return percentage.toFixed(1) + "%"; - }; - - const friendlyFloat = function(value, precision) { - return parseFloat(value).toFixed(precision); + return `${toFixedPointString(percentage, 1)}%`; }; /* * JS counterpart of the function in src/misc.cpp */ - const parseHtmlLinks = function(text) { + const parseHtmlLinks = (text) => { const exp = /(\b(https?|ftp|file):\/\/[-\w+&@#/%?=~|!:,.;]*[-\w+&@#/%=~|])/gi; return text.replace(exp, "$1"); }; - const parseVersion = function(versionString) { + const parseVersion = (versionString) => { const failure = { valid: false }; - if (typeof versionString !== 'string') + if (typeof versionString !== "string") return failure; const tryToNumber = (str) => { const num = Number(str); - return (isNaN(num) ? str : num); + return (Number.isNaN(num) ? str : num); }; - const ver = versionString.split('.', 4).map(val => tryToNumber(val)); + const ver = versionString.split(".", 4).map(val => tryToNumber(val)); return { valid: true, major: ver[0], @@ -170,18 +201,18 @@ window.qBittorrent.Misc = (function() { }; }; - const escapeHtml = function(str) { - const div = document.createElement('div'); - div.appendChild(document.createTextNode(str)); - const escapedString = div.innerHTML; - div.remove(); - return escapedString; - }; + const escapeHtml = (() => { + const div = document.createElement("div"); + return (str) => { + div.textContent = str; + return div.innerHTML; + }; + })(); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/Collator#parameters - const naturalSortCollator = new Intl.Collator(undefined, { numeric: true, usage: 'sort' }); + const naturalSortCollator = new Intl.Collator(undefined, { numeric: true, usage: "sort" }); - const safeTrim = function(value) { + const safeTrim = (value) => { try { return value.trim(); } @@ -192,23 +223,37 @@ window.qBittorrent.Misc = (function() { } }; - const toFixedPointString = function(number, digits) { - // Do not round up number - const power = Math.pow(10, digits); - return (Math.floor(power * number) / power).toFixed(digits); + const toFixedPointString = (number, digits) => { + if (Number.isNaN(number)) + return number.toString(); + + const sign = (number < 0) ? "-" : ""; + // Do not round up `number` + // Small floating point numbers are imprecise, thus process as a String + const tmp = Math.trunc(`${Math.abs(number)}e${digits}`).toString(); + if (digits <= 0) { + return (tmp === "0") ? tmp : `${sign}${tmp}`; + } + else if (digits < tmp.length) { + const idx = tmp.length - digits; + return `${sign}${tmp.slice(0, idx)}.${tmp.slice(idx)}`; + } + else { + const zeros = "0".repeat(digits - tmp.length); + return `${sign}0.${zeros}${tmp}`; + } }; /** - * * @param {String} text the text to search * @param {Array} terms terms to search for within the text * @returns {Boolean} true if all terms match the text, false otherwise */ - const containsAllTerms = function(text, terms) { + const containsAllTerms = (text, terms) => { const textToSearch = text.toLowerCase(); - return terms.every(function(term) { - const isTermRequired = (term[0] === '+'); - const isTermExcluded = (term[0] === '-'); + return terms.every((term) => { + const isTermRequired = term.startsWith("+"); + const isTermExcluded = term.startsWith("-"); if (isTermRequired || isTermExcluded) { // ignore lonely +/- if (term.length === 1) @@ -217,7 +262,7 @@ window.qBittorrent.Misc = (function() { term = term.substring(1); } - const textContainsTerm = (textToSearch.indexOf(term) !== -1); + const textContainsTerm = textToSearch.includes(term); return isTermExcluded ? !textContainsTerm : textContainsTerm; }); }; @@ -228,7 +273,35 @@ window.qBittorrent.Misc = (function() { }); }; + const downloadFile = async (url, defaultFileName, errorMessage = "QBT_TR(Unable to download file)QBT_TR[CONTEXT=HttpServer]") => { + try { + const response = await fetch(url, { method: "GET" }); + if (!response.ok) { + alert(errorMessage); + return; + } + + const blob = await response.blob(); + const fileNamePrefix = "attachment; filename="; + const fileNameHeader = response.headers.get("content-disposition"); + let fileName = defaultFileName; + if (fileNameHeader.startsWith(fileNamePrefix)) { + fileName = fileNameHeader.substring(fileNamePrefix.length); + if (fileName.startsWith("\"") && fileName.endsWith("\"")) + fileName = fileName.slice(1, -1); + } + + const link = document.createElement("a"); + link.href = window.URL.createObjectURL(blob); + link.download = fileName; + link.click(); + link.remove(); + } + catch (error) { + alert(errorMessage); + } + }; + return exports(); })(); - Object.freeze(window.qBittorrent.Misc); diff --git a/src/webui/www/private/scripts/mocha-init.js b/src/webui/www/private/scripts/mocha-init.js index e010250e1..52bba2d4d 100644 --- a/src/webui/www/private/scripts/mocha-init.js +++ b/src/webui/www/private/scripts/mocha-init.js @@ -36,105 +36,164 @@ it in the onContentLoaded function of the new window. ----------------------------------------------------------------- */ -'use strict'; +"use strict"; -const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferencesClass(); - -let saveWindowSize = function() {}; -let loadWindowWidth = function() {}; -let loadWindowHeight = function() {}; -let showDownloadPage = function() {}; -let globalUploadLimitFN = function() {}; -let uploadLimitFN = function() {}; -let shareRatioFN = function() {}; -let toggleSequentialDownloadFN = function() {}; -let toggleFirstLastPiecePrioFN = function() {}; -let setSuperSeedingFN = function() {}; -let setForceStartFN = function() {}; -let globalDownloadLimitFN = function() {}; -let StatisticsLinkFN = function() {}; -let downloadLimitFN = function() {}; -let deleteFN = function() {}; -let stopFN = function() {}; -let startFN = function() {}; -let autoTorrentManagementFN = function() {}; -let recheckFN = function() {}; -let reannounceFN = function() {}; -let setLocationFN = function() {}; -let renameFN = function() {}; -let renameFilesFN = function() {}; -let torrentNewCategoryFN = function() {}; -let torrentSetCategoryFN = function() {}; -let createCategoryFN = function() {}; -let createSubcategoryFN = function() {}; -let editCategoryFN = function() {}; -let removeCategoryFN = function() {}; -let deleteUnusedCategoriesFN = function() {}; -let startTorrentsByCategoryFN = function() {}; -let stopTorrentsByCategoryFN = function() {}; -let deleteTorrentsByCategoryFN = function() {}; -let torrentAddTagsFN = function() {}; -let torrentSetTagsFN = function() {}; -let torrentRemoveAllTagsFN = function() {}; -let createTagFN = function() {}; -let removeTagFN = function() {}; -let deleteUnusedTagsFN = function() {}; -let startTorrentsByTagFN = function() {}; -let stopTorrentsByTagFN = function() {}; -let deleteTorrentsByTagFN = function() {}; -let startTorrentsByTrackerFN = function() {}; -let stopTorrentsByTrackerFN = function() {}; -let deleteTorrentsByTrackerFN = function() {}; -let copyNameFN = function() {}; -let copyInfohashFN = function(policy) {}; -let copyMagnetLinkFN = function() {}; -let copyIdFN = function() {}; -let copyCommentFN = function() {}; -let setQueuePositionFN = function() {}; -let exportTorrentFN = function() {}; - -const initializeWindows = function() { - saveWindowSize = function(windowId) { - const size = $(windowId).getSize(); - LocalPreferences.set('window_' + windowId + '_width', size.x); - LocalPreferences.set('window_' + windowId + '_height', size.y); +window.qBittorrent ??= {}; +window.qBittorrent.Dialog ??= (() => { + const exports = () => { + return { + baseModalOptions: baseModalOptions + }; }; - loadWindowWidth = function(windowId, defaultValue) { - return LocalPreferences.get('window_' + windowId + '_width', defaultValue); - }; + const deepFreeze = (obj) => { + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#examples + // accounts for circular refs + const frozen = new WeakSet(); + const deepFreezeSafe = (obj) => { + if (frozen.has(obj)) + return; - loadWindowHeight = function(windowId, defaultValue) { - return LocalPreferences.get('window_' + windowId + '_height', defaultValue); - }; + frozen.add(obj); - function addClickEvent(el, fn) { - ['Link', 'Button'].each(function(item) { - if ($(el + item)) { - $(el + item).addEvent('click', fn); + const keys = Reflect.ownKeys(obj); + for (const key of keys) { + const value = obj[key]; + if ((value && (typeof value === "object")) || (typeof value === "function")) + deepFreezeSafe(value); } - }); - } + Object.freeze(obj); + }; - addClickEvent('download', function(e) { - new Event(e).stop(); + deepFreezeSafe(obj); + }; + + const baseModalOptions = Object.assign(Object.create(null), { + addClass: "modalDialog", + collapsible: false, + cornerRadius: 5, + draggable: true, + footerHeight: 20, + icon: "images/qbittorrent-tray.svg", + loadMethod: "xhr", + maximizable: false, + method: "post", + minimizable: false, + padding: { + top: 15, + right: 10, + bottom: 15, + left: 5 + }, + resizable: true, + width: 480, + onCloseComplete: () => { + // make sure overlay is properly hidden upon modal closing + document.getElementById("modalOverlay").style.display = "none"; + } + }); + + deepFreeze(baseModalOptions); + + return exports(); +})(); +Object.freeze(window.qBittorrent.Dialog); + +const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences(); + +let saveWindowSize = () => {}; +let loadWindowWidth = () => {}; +let loadWindowHeight = () => {}; +let showDownloadPage = () => {}; +let globalUploadLimitFN = () => {}; +let uploadLimitFN = () => {}; +let shareRatioFN = () => {}; +let toggleSequentialDownloadFN = () => {}; +let toggleFirstLastPiecePrioFN = () => {}; +let setSuperSeedingFN = () => {}; +let setForceStartFN = () => {}; +let globalDownloadLimitFN = () => {}; +let StatisticsLinkFN = () => {}; +let downloadLimitFN = () => {}; +let deleteSelectedTorrentsFN = () => {}; +let stopFN = () => {}; +let startFN = () => {}; +let autoTorrentManagementFN = () => {}; +let recheckFN = () => {}; +let reannounceFN = () => {}; +let setLocationFN = () => {}; +let renameFN = () => {}; +let renameFilesFN = () => {}; +let startVisibleTorrentsFN = () => {}; +let stopVisibleTorrentsFN = () => {}; +let deleteVisibleTorrentsFN = () => {}; +let torrentNewCategoryFN = () => {}; +let torrentSetCategoryFN = () => {}; +let createCategoryFN = () => {}; +let createSubcategoryFN = () => {}; +let editCategoryFN = () => {}; +let removeCategoryFN = () => {}; +let deleteUnusedCategoriesFN = () => {}; +let torrentAddTagsFN = () => {}; +let torrentSetTagsFN = () => {}; +let torrentRemoveAllTagsFN = () => {}; +let createTagFN = () => {}; +let removeTagFN = () => {}; +let deleteUnusedTagsFN = () => {}; +let deleteTrackerFN = () => {}; +let copyNameFN = () => {}; +let copyInfohashFN = (policy) => {}; +let copyMagnetLinkFN = () => {}; +let copyIdFN = () => {}; +let copyCommentFN = () => {}; +let setQueuePositionFN = () => {}; +let exportTorrentFN = () => {}; + +const initializeWindows = () => { + saveWindowSize = (windowId) => { + const size = $(windowId).getSize(); + LocalPreferences.set(`window_${windowId}_width`, size.x); + LocalPreferences.set(`window_${windowId}_height`, size.y); + }; + + loadWindowWidth = (windowId, defaultValue) => { + return LocalPreferences.get(`window_${windowId}_width`, defaultValue); + }; + + loadWindowHeight = (windowId, defaultValue) => { + return LocalPreferences.get(`window_${windowId}_height`, defaultValue); + }; + + const addClickEvent = (el, fn) => { + ["Link", "Button"].each((item) => { + if ($(el + item)) + $(el + item).addEventListener("click", fn); + }); + }; + + addClickEvent("download", (e) => { + e.preventDefault(); + e.stopPropagation(); showDownloadPage(); }); - showDownloadPage = function(urls) { - const id = 'downloadPage'; - let contentUri = new URI('download.html'); + showDownloadPage = (urls) => { + const id = "downloadPage"; + const contentURL = new URL("download.html", window.location); if (urls && (urls.length > 0)) { - contentUri.setData("urls", urls.map(encodeURIComponent).join("|")); + contentURL.search = new URLSearchParams({ + urls: urls.map(encodeURIComponent).join("|") + }); } new MochaUI.Window({ id: id, + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]", - loadMethod: 'iframe', - contentURL: contentUri.toString(), - addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari + loadMethod: "iframe", + contentURL: contentURL.toString(), + addClass: "windowFrame", // fixes iframe scrolling on iOS Safari scrollbars: true, maximizable: false, closable: true, @@ -142,403 +201,549 @@ const initializeWindows = function() { paddingHorizontal: 0, width: loadWindowWidth(id, 500), height: loadWindowHeight(id, 600), - onResize: function() { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - } + }) }); updateMainData(); }; - addClickEvent('preferences', function(e) { - new Event(e).stop(); - const id = 'preferencesPage'; + addClickEvent("torrentCreator", (e) => { + e.preventDefault(); + e.stopPropagation(); + + const id = "torrentCreatorPage"; new MochaUI.Window({ id: id, - title: "QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]", - loadMethod: 'xhr', - toolbar: true, - contentURL: new URI("views/preferences.html").toString(), - require: { - css: ['css/Tabs.css'] + icon: "images/torrent-creator.svg", + title: "QBT_TR(Torrent Creator)QBT_TR[CONTEXT=TorrentCreator]", + loadMethod: "xhr", + contentURL: "views/torrentcreator.html", + scrollbars: true, + maximizable: true, + paddingVertical: 0, + paddingHorizontal: 0, + width: loadWindowWidth(id, 900), + height: loadWindowHeight(id, 400), + onResize: () => { + saveWindowSize(id); }, - toolbarURL: 'views/preferencesToolbar.html', + onClose: () => { + window.qBittorrent.TorrentCreator.unload(); + } + }); + }); + + addClickEvent("preferences", (e) => { + e.preventDefault(); + e.stopPropagation(); + + const id = "preferencesPage"; + new MochaUI.Window({ + id: id, + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]", + loadMethod: "xhr", + toolbar: true, + contentURL: "views/preferences.html", + require: { + css: ["css/Tabs.css"] + }, + toolbarURL: "views/preferencesToolbar.html", maximizable: false, closable: true, paddingVertical: 0, paddingHorizontal: 0, - width: loadWindowWidth(id, 700), + width: loadWindowWidth(id, 730), height: loadWindowHeight(id, 600), - onResize: function() { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { + saveWindowSize(id); + }) + }); + }); + + addClickEvent("manageCookies", (e) => { + e.preventDefault(); + e.stopPropagation(); + + const id = "cookiesPage"; + new MochaUI.Window({ + id: id, + title: "QBT_TR(Manage Cookies)QBT_TR[CONTEXT=CookiesDialog]", + loadMethod: "xhr", + contentURL: "views/cookies.html", + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: loadWindowWidth(id, 900), + height: loadWindowHeight(id, 400), + onResize: () => { saveWindowSize(id); } }); }); - addClickEvent('upload', function(e) { - new Event(e).stop(); - const id = 'uploadPage'; + addClickEvent("upload", (e) => { + e.preventDefault(); + e.stopPropagation(); + + const id = "uploadPage"; new MochaUI.Window({ id: id, + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]", - loadMethod: 'iframe', - contentURL: new URI("upload.html").toString(), - addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari + loadMethod: "iframe", + contentURL: "upload.html", + addClass: "windowFrame", // fixes iframe scrolling on iOS Safari scrollbars: true, maximizable: false, paddingVertical: 0, paddingHorizontal: 0, width: loadWindowWidth(id, 500), height: loadWindowHeight(id, 460), - onResize: function() { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - } + }) }); updateMainData(); }); - globalUploadLimitFN = function() { + globalUploadLimitFN = () => { + const contentURL = new URL("uploadlimit.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: "global" + }); new MochaUI.Window({ - id: 'uploadLimitPage', + id: "uploadLimitPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Global Upload Speed Limit)QBT_TR[CONTEXT=MainWindow]", - loadMethod: 'iframe', - contentURL: new URI("uploadlimit.html").setData("hashes", "global").toString(), + loadMethod: "iframe", + contentURL: contentURL.toString(), scrollbars: false, resizable: false, maximizable: false, paddingVertical: 0, paddingHorizontal: 0, width: 424, - height: 80 + height: 100 }); }; - uploadLimitFN = function() { + uploadLimitFN = () => { const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new MochaUI.Window({ - id: 'uploadLimitPage', - title: "QBT_TR(Torrent Upload Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("uploadlimit.html").setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: false, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 424, - height: 80 - }); - } - }; + if (hashes.length <= 0) + return; - shareRatioFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - let shareRatio = null; - let torrentsHaveSameShareRatio = true; - - // check if all selected torrents have same share ratio - for (let i = 0; i < hashes.length; ++i) { - const hash = hashes[i]; - const row = torrentsTable.rows[hash].full_data; - const origValues = row.ratio_limit + "|" + row.seeding_time_limit + "|" + row.inactive_seeding_time_limit + "|" - + row.max_ratio + "|" + row.max_seeding_time + "|" + row.max_inactive_seeding_time; - - // initialize value - if (shareRatio === null) - shareRatio = origValues; - - if (origValues !== shareRatio) { - torrentsHaveSameShareRatio = false; - break; - } - } - - // if all torrents have same share ratio, display that share ratio. else use the default - const orig = torrentsHaveSameShareRatio ? shareRatio : ""; - new MochaUI.Window({ - id: 'shareRatioPage', - title: "QBT_TR(Torrent Upload/Download Ratio Limiting)QBT_TR[CONTEXT=UpDownRatioDialog]", - loadMethod: 'iframe', - contentURL: new URI("shareratio.html").setData("hashes", hashes.join("|")).setData("orig", orig).toString(), - scrollbars: false, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 424, - height: 175 - }); - } - }; - - toggleSequentialDownloadFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/toggleSequentialDownload', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - toggleFirstLastPiecePrioFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/toggleFirstLastPiecePrio', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - setSuperSeedingFN = function(val) { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/setSuperSeeding', - method: 'post', - data: { - value: val, - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - setForceStartFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/setForceStart', - method: 'post', - data: { - value: 'true', - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - globalDownloadLimitFN = function() { + const contentURL = new URL("uploadlimit.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: hashes.join("|") + }); new MochaUI.Window({ - id: 'downloadLimitPage', - title: "QBT_TR(Global Download Speed Limit)QBT_TR[CONTEXT=MainWindow]", - loadMethod: 'iframe', - contentURL: new URI("downloadlimit.html").setData("hashes", "global").toString(), + id: "uploadLimitPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Torrent Upload Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), scrollbars: false, resizable: false, maximizable: false, paddingVertical: 0, paddingHorizontal: 0, width: 424, - height: 80 + height: 100 }); }; - StatisticsLinkFN = function() { - const id = 'statisticspage'; + shareRatioFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length <= 0) + return; + + let shareRatio = null; + let torrentsHaveSameShareRatio = true; + + // check if all selected torrents have same share ratio + for (let i = 0; i < hashes.length; ++i) { + const hash = hashes[i]; + const row = torrentsTable.getRow(hash).full_data; + const origValues = `${row.ratio_limit}|${row.seeding_time_limit}|${row.inactive_seeding_time_limit}|${row.max_ratio}` + + `|${row.max_seeding_time}|${row.max_inactive_seeding_time}`; + + // initialize value + if (shareRatio === null) + shareRatio = origValues; + + if (origValues !== shareRatio) { + torrentsHaveSameShareRatio = false; + break; + } + } + + const contentURL = new URL("shareratio.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: hashes.join("|"), + // if all torrents have same share ratio, display that share ratio. else use the default + orig: torrentsHaveSameShareRatio ? shareRatio : "" + }); + new MochaUI.Window({ + id: "shareRatioPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Torrent Upload/Download Ratio Limiting)QBT_TR[CONTEXT=UpDownRatioDialog]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 424, + height: 220 + }); + }; + + toggleSequentialDownloadFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/toggleSequentialDownload", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); + updateMainData(); + } + }; + + toggleFirstLastPiecePrioFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/toggleFirstLastPiecePrio", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); + updateMainData(); + } + }; + + setSuperSeedingFN = (val) => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/setSuperSeeding", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + value: val + }) + }); + updateMainData(); + } + }; + + setForceStartFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/setForceStart", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + value: "true" + }) + }); + updateMainData(); + } + }; + + globalDownloadLimitFN = () => { + const contentURL = new URL("downloadlimit.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: "global" + }); + new MochaUI.Window({ + id: "downloadLimitPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Global Download Speed Limit)QBT_TR[CONTEXT=MainWindow]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: false, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 424, + height: 100 + }); + }; + + StatisticsLinkFN = () => { + const id = "statisticspage"; new MochaUI.Window({ id: id, - title: 'QBT_TR(Statistics)QBT_TR[CONTEXT=StatsDialog]', - loadMethod: 'xhr', - contentURL: new URI("views/statistics.html").toString(), + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Statistics)QBT_TR[CONTEXT=StatsDialog]", + loadMethod: "xhr", + contentURL: "views/statistics.html", maximizable: false, padding: 10, - width: loadWindowWidth(id, 275), - height: loadWindowHeight(id, 370), - onResize: function() { + width: loadWindowWidth(id, 285), + height: loadWindowHeight(id, 415), + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - } + }) }); }; - downloadLimitFN = function() { + downloadLimitFN = () => { const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new MochaUI.Window({ - id: 'downloadLimitPage', - title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("downloadlimit.html").setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: false, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 424, - height: 80 - }); - } + if (hashes.length <= 0) + return; + + const contentURL = new URL("downloadlimit.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: hashes.join("|") + }); + new MochaUI.Window({ + id: "downloadLimitPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: false, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 424, + height: 100 + }); }; - deleteFN = function(deleteFiles = false) { + deleteSelectedTorrentsFN = (forceDeleteFiles = false) => { const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new MochaUI.Window({ - id: 'confirmDeletionPage', - title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", - loadMethod: 'iframe', - contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).setData("deleteFiles", deleteFiles).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - padding: 10, - width: 424, - height: 160 - }); - updateMainData(); - } - }; - - addClickEvent('delete', function(e) { - new Event(e).stop(); - deleteFN(); - }); - - stopFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/stop', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - startFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/start', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - autoTorrentManagementFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - let enable = false; - hashes.each(function(hash, index) { - const row = torrentsTable.rows[hash]; - if (!row.full_data.auto_tmm) - enable = true; - }); - new Request({ - url: 'api/v2/torrents/setAutoManagement', - method: 'post', - data: { - hashes: hashes.join("|"), - enable: enable - } - }).send(); - updateMainData(); - } - }; - - recheckFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/recheck', - method: 'post', - data: { - hashes: hashes.join("|"), - } - }).send(); - updateMainData(); - } - }; - - reannounceFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/reannounce', - method: 'post', - data: { - hashes: hashes.join("|"), - } - }).send(); - updateMainData(); - } - }; - - setLocationFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - const hash = hashes[0]; - const row = torrentsTable.rows[hash]; - - new MochaUI.Window({ - id: 'setLocationPage', - title: "QBT_TR(Set location)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("setlocation.html").setData("hashes", hashes.join('|')).setData("path", encodeURIComponent(row.full_data.save_path)).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 400, - height: 130 - }); - } - }; - - renameFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length === 1) { - const hash = hashes[0]; - const row = torrentsTable.rows[hash]; - if (row) { - new MochaUI.Window({ - id: 'renamePage', - title: "QBT_TR(Rename)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("rename.html").setData("hash", hash).setData("name", row.full_data.name).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 400, - height: 100 + if (hashes.length > 0) { + if (window.qBittorrent.Cache.preferences.get().confirm_torrent_deletion) { + new MochaUI.Modal({ + ...window.qBittorrent.Dialog.baseModalOptions, + id: "confirmDeletionPage", + title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", + data: { + hashes: hashes, + forceDeleteFiles: forceDeleteFiles + }, + contentURL: "views/confirmdeletion.html", + onContentLoaded: (w) => { + MochaUI.resizeWindow(w, { centered: true }); + MochaUI.centerWindow(w); + }, + onCloseComplete: () => { + // make sure overlay is properly hidden upon modal closing + document.getElementById("modalOverlay").style.display = "none"; + } }); } + else { + fetch("api/v2/torrents/delete", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + deleteFiles: forceDeleteFiles + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to delete torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + torrentsTable.deselectAll(); + updateMainData(); + updatePropertiesPanel(); + }); + } } }; - renameFilesFN = function() { + addClickEvent("delete", (e) => { + e.preventDefault(); + e.stopPropagation(); + deleteSelectedTorrentsFN(); + }); + + stopFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/stop", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); + updateMainData(); + } + }; + + startFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/start", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); + updateMainData(); + } + }; + + autoTorrentManagementFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length > 0) { + const enableAutoTMM = hashes.some((hash) => !(torrentsTable.getRow(hash).full_data.auto_tmm)); + if (enableAutoTMM) { + new MochaUI.Modal({ + ...window.qBittorrent.Dialog.baseModalOptions, + id: "confirmAutoTMMDialog", + title: "QBT_TR(Enable automatic torrent management)QBT_TR[CONTEXT=confirmAutoTMMDialog]", + data: { + hashes: hashes, + enable: enableAutoTMM + }, + contentURL: "views/confirmAutoTMM.html" + }); + } + else { + fetch("api/v2/torrents/setAutoManagement", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + enable: enableAutoTMM + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to set Auto Torrent Management for the selected torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + updateMainData(); + }); + } + } + }; + + recheckFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length > 0) { + if (window.qBittorrent.Cache.preferences.get().confirm_torrent_recheck) { + new MochaUI.Modal({ + ...window.qBittorrent.Dialog.baseModalOptions, + id: "confirmRecheckDialog", + title: "QBT_TR(Recheck confirmation)QBT_TR[CONTEXT=confirmRecheckDialog]", + data: { hashes: hashes }, + contentURL: "views/confirmRecheck.html" + }); + } + else { + fetch("api/v2/torrents/recheck", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to recheck torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + updateMainData(); + }); + } + } + }; + + reannounceFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/reannounce", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); + updateMainData(); + } + }; + + setLocationFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length <= 0) + return; + + const contentURL = new URL("setlocation.html", window.location); + contentURL.search = new URLSearchParams({ + hashes: hashes.join("|"), + path: encodeURIComponent(torrentsTable.getRow(hashes[0]).full_data.save_path) + }); + new MochaUI.Window({ + id: "setLocationPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Set location)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 400, + height: 130 + }); + }; + + renameFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length !== 1) + return; + + const row = torrentsTable.getRow(hashes[0]); + if (!row) + return; + + const contentURL = new URL("rename.html", window.location); + contentURL.search = new URLSearchParams({ + hash: hashes[0], + name: row.full_data.name + }); + new MochaUI.Window({ + id: "renamePage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Rename)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 400, + height: 100 + }); + }; + + renameFilesFN = () => { const hashes = torrentsTable.selectedRowsIds(); if (hashes.length === 1) { const hash = hashes[0]; - const row = torrentsTable.rows[hash]; + const row = torrentsTable.getRow(hash); if (row) { new MochaUI.Window({ - id: 'multiRenamePage', + id: "multiRenamePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TransferListWidget]", data: { hash: hash, selectedRows: [] }, - loadMethod: 'xhr', - contentURL: 'rename_files.html', + loadMethod: "xhr", + contentURL: "rename_files.html", scrollbars: false, resizable: true, maximizable: false, @@ -546,57 +751,111 @@ const initializeWindows = function() { paddingHorizontal: 0, width: 800, height: 420, - resizeLimit: { 'x': [800], 'y': [420] } + resizeLimit: { x: [800], y: [420] } }); } } }; - torrentNewCategoryFN = function() { - const action = "set"; - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new MochaUI.Window({ - id: 'newCategoryPage', - title: "QBT_TR(New Category)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("newcategory.html").setData("action", action).setData("hashes", hashes.join('|')).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 400, - height: 150 - }); + startVisibleTorrentsFN = () => { + const hashes = torrentsTable.getFilteredTorrentsHashes(selectedStatus, selectedCategory, selectedTag, selectedTracker); + if (hashes.length > 0) { + fetch("api/v2/torrents/start", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to start torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + updateMainData(); + updatePropertiesPanel(); + }); } }; - torrentSetCategoryFN = function(categoryHash) { + stopVisibleTorrentsFN = () => { + const hashes = torrentsTable.getFilteredTorrentsHashes(selectedStatus, selectedCategory, selectedTag, selectedTracker); + if (hashes.length > 0) { + fetch("api/v2/torrents/stop", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to stop torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + updateMainData(); + updatePropertiesPanel(); + }); + } + }; + + deleteVisibleTorrentsFN = () => { + const hashes = torrentsTable.getFilteredTorrentsHashes(selectedStatus, selectedCategory, selectedTag, selectedTracker); + if (hashes.length > 0) { + if (window.qBittorrent.Cache.preferences.get().confirm_torrent_deletion) { + new MochaUI.Modal({ + ...window.qBittorrent.Dialog.baseModalOptions, + id: "confirmDeletionPage", + title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", + data: { + hashes: hashes, + isDeletingVisibleTorrents: true + }, + contentURL: "views/confirmdeletion.html", + onContentLoaded: (w) => { + MochaUI.resizeWindow(w, { centered: true }); + MochaUI.centerWindow(w); + } + }); + } + else { + fetch("api/v2/torrents/delete", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + deleteFiles: false, + }) + }) + .then((response) => { + if (!response.ok) { + alert("QBT_TR(Unable to delete torrents.)QBT_TR[CONTEXT=HttpServer]"); + return; + } + + torrentsTable.deselectAll(); + updateMainData(); + updatePropertiesPanel(); + }); + } + } + }; + + torrentNewCategoryFN = () => { const hashes = torrentsTable.selectedRowsIds(); if (hashes.length <= 0) return; - const categoryName = category_list.has(categoryHash) - ? category_list.get(categoryHash).name - : ''; - new Request({ - url: 'api/v2/torrents/setCategory', - method: 'post', - data: { - hashes: hashes.join("|"), - category: categoryName - } - }).send(); - }; - - createCategoryFN = function() { - const action = "create"; + const contentURL = new URL("newcategory.html", window.location); + contentURL.search = new URLSearchParams({ + action: "set", + hashes: hashes.join("|") + }); new MochaUI.Window({ - id: 'newCategoryPage', - title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]", - loadMethod: 'iframe', - contentURL: new URI("newcategory.html").setData("action", action).toString(), + id: "newCategoryPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(New Category)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), scrollbars: false, resizable: true, maximizable: false, @@ -605,179 +864,194 @@ const initializeWindows = function() { width: 400, height: 150 }); - updateMainData(); }; - createSubcategoryFN = function(categoryHash) { - const action = "createSubcategory"; - const categoryName = category_list.get(categoryHash).name + "/"; - new MochaUI.Window({ - id: 'newSubcategoryPage', - title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]", - loadMethod: 'iframe', - contentURL: new URI("newcategory.html").setData("action", action).setData("categoryName", categoryName).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 400, - height: 150 - }); - updateMainData(); - }; - - editCategoryFN = function(categoryHash) { - const action = "edit"; - const category = category_list.get(categoryHash); - new MochaUI.Window({ - id: 'editCategoryPage', - title: "QBT_TR(Edit Category)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI('newcategory.html').setData("action", action).setData("categoryName", category.name).setData("savePath", category.savePath).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 400, - height: 150 - }); - updateMainData(); - }; - - removeCategoryFN = function(categoryHash) { - const categoryName = category_list.get(categoryHash).name; - new Request({ - url: 'api/v2/torrents/removeCategories', - method: 'post', - data: { - categories: categoryName - } - }).send(); - setCategoryFilter(CATEGORIES_ALL); - }; - - deleteUnusedCategoriesFN = function() { - const categories = []; - category_list.forEach((category, hash) => { - if (torrentsTable.getFilteredTorrentsNumber('all', hash, TAGS_ALL, TRACKERS_ALL) === 0) - categories.push(category.name); - }); - - new Request({ - url: 'api/v2/torrents/removeCategories', - method: 'post', - data: { - categories: categories.join('\n') - } - }).send(); - setCategoryFilter(CATEGORIES_ALL); - }; - - startTorrentsByCategoryFN = function(categoryHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', categoryHash, TAGS_ALL, TRACKERS_ALL); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/start', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - stopTorrentsByCategoryFN = function(categoryHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', categoryHash, TAGS_ALL, TRACKERS_ALL); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/stop', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - deleteTorrentsByCategoryFN = function(categoryHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', categoryHash, TAGS_ALL, TRACKERS_ALL); - if (hashes.length) { - new MochaUI.Window({ - id: 'confirmDeletionPage', - title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", - loadMethod: 'iframe', - contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - padding: 10, - width: 424, - height: 160 - }); - updateMainData(); - } - }; - - torrentAddTagsFN = function() { - const action = "set"; - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new MochaUI.Window({ - id: 'newTagPage', - title: "QBT_TR(Add Tags)QBT_TR[CONTEXT=TransferListWidget]", - loadMethod: 'iframe', - contentURL: new URI("newtag.html").setData("action", action).setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - paddingVertical: 0, - paddingHorizontal: 0, - width: 250, - height: 100 - }); - } - }; - - torrentSetTagsFN = function(tagHash, isSet) { + torrentSetCategoryFN = (category) => { const hashes = torrentsTable.selectedRowsIds(); if (hashes.length <= 0) return; - const tagName = tagList.has(tagHash) ? tagList.get(tagHash).name : ''; - new Request({ - url: (isSet ? 'api/v2/torrents/addTags' : 'api/v2/torrents/removeTags'), - method: 'post', - data: { - hashes: hashes.join("|"), - tags: tagName, - } - }).send(); - }; - - torrentRemoveAllTagsFN = function() { - const hashes = torrentsTable.selectedRowsIds(); - if (hashes.length) { - new Request({ - url: ('api/v2/torrents/removeTags'), - method: 'post', - data: { + fetch("api/v2/torrents/setCategory", { + method: "POST", + body: new URLSearchParams({ hashes: hashes.join("|"), - } - }).send(); + category: category + }) + }) + .then((response) => { + if (!response.ok) + return; + + updateMainData(); + }); + }; + + createCategoryFN = () => { + const contentURL = new URL("newcategory.html", window.location); + contentURL.search = new URLSearchParams({ + action: "create" + }); + new MochaUI.Window({ + id: "newCategoryPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 400, + height: 150 + }); + }; + + createSubcategoryFN = (category) => { + const contentURL = new URL("newcategory.html", window.location); + contentURL.search = new URLSearchParams({ + action: "createSubcategory", + categoryName: `${category}/` + }); + new MochaUI.Window({ + id: "newSubcategoryPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 400, + height: 150 + }); + }; + + editCategoryFN = (category) => { + const contentURL = new URL("newcategory.html", window.location); + contentURL.search = new URLSearchParams({ + action: "edit", + categoryName: category, + savePath: categoryMap.get(category).savePath + }); + new MochaUI.Window({ + id: "editCategoryPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Edit Category)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 400, + height: 150 + }); + }; + + removeCategoryFN = (category) => { + fetch("api/v2/torrents/removeCategories", { + method: "POST", + body: new URLSearchParams({ + categories: category + }) + }) + .then((response) => { + if (!response.ok) + return; + + setCategoryFilter(CATEGORIES_ALL); + updateMainData(); + }); + }; + + deleteUnusedCategoriesFN = () => { + const categories = []; + for (const category of categoryMap.keys()) { + if (torrentsTable.getFilteredTorrentsNumber("all", category, TAGS_ALL, TRACKERS_ALL) === 0) + categories.push(category); + } + fetch("api/v2/torrents/removeCategories", { + method: "POST", + body: new URLSearchParams({ + categories: categories.join("\n") + }) + }) + .then((response) => { + if (!response.ok) + return; + + setCategoryFilter(CATEGORIES_ALL); + updateMainData(); + }); + }; + + torrentAddTagsFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length <= 0) + return; + + const contentURL = new URL("newtag.html", window.location); + contentURL.search = new URLSearchParams({ + action: "set", + hashes: hashes.join("|") + }); + new MochaUI.Window({ + id: "newTagPage", + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(Add tags)QBT_TR[CONTEXT=TransferListWidget]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: 250, + height: 100 + }); + }; + + torrentSetTagsFN = (tag, isSet) => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length <= 0) + return; + + fetch((isSet ? "api/v2/torrents/addTags" : "api/v2/torrents/removeTags"), { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|"), + tags: tag + }) + }); + }; + + torrentRemoveAllTagsFN = () => { + const hashes = torrentsTable.selectedRowsIds(); + if (hashes.length) { + fetch("api/v2/torrents/removeTags", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }); } }; - createTagFN = function() { - const action = "create"; + createTagFN = () => { + const contentURL = new URL("newtag.html", window.location); + contentURL.search = new URLSearchParams({ + action: "create" + }); new MochaUI.Window({ - id: 'newTagPage', + id: "newTagPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(New Tag)QBT_TR[CONTEXT=TagFilterWidget]", - loadMethod: 'iframe', - contentURL: new URI("newtag.html").setData("action", action).toString(), + loadMethod: "iframe", + contentURL: contentURL.toString(), scrollbars: false, resizable: true, maximizable: false, @@ -789,192 +1063,59 @@ const initializeWindows = function() { updateMainData(); }; - removeTagFN = function(tagHash) { - const tagName = tagList.get(tagHash).name; - new Request({ - url: 'api/v2/torrents/deleteTags', - method: 'post', - data: { - tags: tagName - } - }).send(); - setTagFilter(TAGS_ALL); - }; - - deleteUnusedTagsFN = function() { - const tags = []; - tagList.forEach((tag, hash) => { - if (torrentsTable.getFilteredTorrentsNumber('all', CATEGORIES_ALL, hash, TRACKERS_ALL) === 0) - tags.push(tag.name); + removeTagFN = (tag) => { + fetch("api/v2/torrents/deleteTags", { + method: "POST", + body: new URLSearchParams({ + tags: tag + }) }); - new Request({ - url: 'api/v2/torrents/deleteTags', - method: 'post', - data: { - tags: tags.join(',') - } - }).send(); setTagFilter(TAGS_ALL); }; - startTorrentsByTagFN = function(tagHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, tagHash, TRACKERS_ALL); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/start', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); + deleteUnusedTagsFN = () => { + const tags = []; + for (const tag of tagMap.keys()) { + if (torrentsTable.getFilteredTorrentsNumber("all", CATEGORIES_ALL, tag, TRACKERS_ALL) === 0) + tags.push(tag); } + fetch("api/v2/torrents/deleteTags", { + method: "POST", + body: new URLSearchParams({ + tags: tags.join(",") + }) + }); + setTagFilter(TAGS_ALL); }; - stopTorrentsByTagFN = function(tagHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, tagHash, TRACKERS_ALL); - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/stop', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; + deleteTrackerFN = (trackerHost) => { + if ((trackerHost === TRACKERS_ALL) || (trackerHost === TRACKERS_TRACKERLESS)) + return; - deleteTorrentsByTagFN = function(tagHash) { - const hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, tagHash, TRACKERS_ALL); - if (hashes.length) { - new MochaUI.Window({ - id: 'confirmDeletionPage', - title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", - loadMethod: 'iframe', - contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - padding: 10, - width: 424, - height: 160 - }); - updateMainData(); - } - }; - - startTorrentsByTrackerFN = function(trackerHash) { - const trackerHashInt = Number.parseInt(trackerHash, 10); - let hashes = []; - switch (trackerHashInt) { - case TRACKERS_ALL: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL); - break; - case TRACKERS_TRACKERLESS: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_TRACKERLESS); - break; - default: { - const uniqueTorrents = new Set(); - for (const torrents of trackerList.get(trackerHashInt).trackerTorrentMap.values()) { - for (const torrent of torrents) { - uniqueTorrents.add(torrent); - } - } - hashes = [...uniqueTorrents]; - break; + const contentURL = new URL("confirmtrackerdeletion.html", window.location); + contentURL.search = new URLSearchParams({ + host: trackerHost, + urls: [...trackerMap.get(trackerHost).keys()].map(encodeURIComponent).join("|") + }); + new MochaUI.Window({ + id: "confirmDeletionPage", + title: "QBT_TR(Remove tracker)QBT_TR[CONTEXT=confirmDeletionDlg]", + loadMethod: "iframe", + contentURL: contentURL.toString(), + scrollbars: false, + resizable: true, + maximizable: false, + padding: 10, + width: 424, + height: 100, + onCloseComplete: () => { + updateMainData(); + setTrackerFilter(TRACKERS_ALL); } - } - - if (hashes.length > 0) { - new Request({ - url: 'api/v2/torrents/start', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } + }); }; - stopTorrentsByTrackerFN = function(trackerHash) { - const trackerHashInt = Number.parseInt(trackerHash, 10); - let hashes = []; - switch (trackerHashInt) { - case TRACKERS_ALL: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL); - break; - case TRACKERS_TRACKERLESS: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_TRACKERLESS); - break; - default: { - const uniqueTorrents = new Set(); - for (const torrents of trackerList.get(trackerHashInt).trackerTorrentMap.values()) { - for (const torrent of torrents) { - uniqueTorrents.add(torrent); - } - } - hashes = [...uniqueTorrents]; - break; - } - } - - if (hashes.length) { - new Request({ - url: 'api/v2/torrents/stop', - method: 'post', - data: { - hashes: hashes.join("|") - } - }).send(); - updateMainData(); - } - }; - - deleteTorrentsByTrackerFN = function(trackerHash) { - const trackerHashInt = Number.parseInt(trackerHash, 10); - let hashes = []; - switch (trackerHashInt) { - case TRACKERS_ALL: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL); - break; - case TRACKERS_TRACKERLESS: - hashes = torrentsTable.getFilteredTorrentsHashes('all', CATEGORIES_ALL, TAGS_ALL, TRACKERS_TRACKERLESS); - break; - default: { - const uniqueTorrents = new Set(); - for (const torrents of trackerList.get(trackerHashInt).trackerTorrentMap.values()) { - for (const torrent of torrents) { - uniqueTorrents.add(torrent); - } - } - hashes = [...uniqueTorrents]; - break; - } - } - - if (hashes.length) { - new MochaUI.Window({ - id: 'confirmDeletionPage', - title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]", - loadMethod: 'iframe', - contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(), - scrollbars: false, - resizable: true, - maximizable: false, - padding: 10, - width: 424, - height: 160, - onCloseComplete: function() { - updateMainData(); - setTrackerFilter(TRACKERS_ALL); - } - }); - } - }; - - copyNameFN = function() { + copyNameFN = () => { const selectedRows = torrentsTable.selectedRowsIds(); const names = []; if (selectedRows.length > 0) { @@ -987,7 +1128,7 @@ const initializeWindows = function() { return names.join("\n"); }; - copyInfohashFN = function(policy) { + copyInfohashFN = (policy) => { const selectedRows = torrentsTable.selectedRowsIds(); const infohashes = []; if (selectedRows.length > 0) { @@ -1012,7 +1153,7 @@ const initializeWindows = function() { return infohashes.join("\n"); }; - copyMagnetLinkFN = function() { + copyMagnetLinkFN = () => { const selectedRows = torrentsTable.selectedRowsIds(); const magnets = []; if (selectedRows.length > 0) { @@ -1025,11 +1166,11 @@ const initializeWindows = function() { return magnets.join("\n"); }; - copyIdFN = function() { + copyIdFN = () => { return torrentsTable.selectedRowsIds().join("\n"); }; - copyCommentFN = function() { + copyCommentFN = () => { const selectedRows = torrentsTable.selectedRowsIds(); const comments = []; if (selectedRows.length > 0) { @@ -1044,154 +1185,164 @@ const initializeWindows = function() { return comments.join("\n---------\n"); }; - exportTorrentFN = async function() { + exportTorrentFN = async () => { const hashes = torrentsTable.selectedRowsIds(); for (const hash of hashes) { - const row = torrentsTable.rows.get(hash); + const row = torrentsTable.getRow(hash); if (!row) continue; const name = row.full_data.name; - const url = new URI("api/v2/torrents/export"); - url.setData("hash", hash); + const url = new URL("api/v2/torrents/export", window.location); + url.search = new URLSearchParams({ + hash: hash + }); // download response to file - const element = document.createElement("a"); - element.setAttribute("href", url); - element.setAttribute("download", (name + ".torrent")); - document.body.appendChild(element); - element.click(); - document.body.removeChild(element); + await window.qBittorrent.Misc.downloadFile(url, `${name}.torrent`, "QBT_TR(Unable to export torrent file)QBT_TR[CONTEXT=MainWindow]"); // https://stackoverflow.com/questions/53560991/automatic-file-downloads-limited-to-10-files-on-chrome-browser await window.qBittorrent.Misc.sleep(200); } }; - addClickEvent('stopAll', (e) => { - new Event(e).stop(); + addClickEvent("stopAll", (e) => { + e.preventDefault(); + e.stopPropagation(); - if (confirm('QBT_TR(Would you like to stop all torrents?)QBT_TR[CONTEXT=MainWindow]')) { - new Request({ - url: 'api/v2/torrents/stop', - method: 'post', - data: { + if (confirm("QBT_TR(Would you like to stop all torrents?)QBT_TR[CONTEXT=MainWindow]")) { + fetch("api/v2/torrents/stop", { + method: "POST", + body: new URLSearchParams({ hashes: "all" - } - }).send(); + }) + }); updateMainData(); } }); - addClickEvent('startAll', (e) => { - new Event(e).stop(); + addClickEvent("startAll", (e) => { + e.preventDefault(); + e.stopPropagation(); - if (confirm('QBT_TR(Would you like to start all torrents?)QBT_TR[CONTEXT=MainWindow]')) { - new Request({ - url: 'api/v2/torrents/start', - method: 'post', - data: { + if (confirm("QBT_TR(Would you like to start all torrents?)QBT_TR[CONTEXT=MainWindow]")) { + fetch("api/v2/torrents/start", { + method: "POST", + body: new URLSearchParams({ hashes: "all" - } - }).send(); + }) + }); updateMainData(); } }); - ['stop', 'start', 'recheck'].each(function(item) { - addClickEvent(item, function(e) { - new Event(e).stop(); + ["stop", "start", "recheck"].each((item) => { + addClickEvent(item, (e) => { + e.preventDefault(); + e.stopPropagation(); + const hashes = torrentsTable.selectedRowsIds(); if (hashes.length) { - hashes.each(function(hash, index) { - new Request({ - url: 'api/v2/torrents/' + item, - method: 'post', - data: { + hashes.each((hash, index) => { + fetch(`api/v2/torrents/${item}`, { + method: "POST", + body: new URLSearchParams({ hashes: hash - } - }).send(); + }) + }); }); updateMainData(); } }); }); - ['decreasePrio', 'increasePrio', 'topPrio', 'bottomPrio'].each(function(item) { - addClickEvent(item, function(e) { - new Event(e).stop(); + ["decreasePrio", "increasePrio", "topPrio", "bottomPrio"].each((item) => { + addClickEvent(item, (e) => { + e.preventDefault(); + e.stopPropagation(); setQueuePositionFN(item); }); }); - setQueuePositionFN = function(cmd) { + setQueuePositionFN = (cmd) => { const hashes = torrentsTable.selectedRowsIds(); if (hashes.length) { - new Request({ - url: 'api/v2/torrents/' + cmd, - method: 'post', - data: { + fetch(`api/v2/torrents/${cmd}`, { + method: "POST", + body: new URLSearchParams({ hashes: hashes.join("|") - } - }).send(); + }) + }); updateMainData(); } }; - addClickEvent('about', function(e) { - new Event(e).stop(); - const id = 'aboutpage'; + addClickEvent("about", (e) => { + e.preventDefault(); + e.stopPropagation(); + + const id = "aboutpage"; new MochaUI.Window({ id: id, - title: 'QBT_TR(About qBittorrent)QBT_TR[CONTEXT=AboutDialog]', - loadMethod: 'xhr', - contentURL: new URI("views/about.html").toString(), + icon: "images/qbittorrent-tray.svg", + title: "QBT_TR(About qBittorrent)QBT_TR[CONTEXT=AboutDialog]", + loadMethod: "xhr", + contentURL: "views/about.html", require: { - css: ['css/Tabs.css'] + css: ["css/Tabs.css"] }, toolbar: true, - toolbarURL: 'views/aboutToolbar.html', + toolbarURL: "views/aboutToolbar.html", padding: 10, - width: loadWindowWidth(id, 550), + width: loadWindowWidth(id, 570), height: loadWindowHeight(id, 360), - onResize: function() { + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { saveWindowSize(id); - } + }) }); }); - addClickEvent('logout', function(e) { - new Event(e).stop(); - new Request({ - url: 'api/v2/auth/logout', - method: 'post', - onSuccess: function() { + addClickEvent("logout", (e) => { + e.preventDefault(); + e.stopPropagation(); + + fetch("api/v2/auth/logout", { + method: "POST" + }) + .then((response) => { + if (!response.ok) + return; + window.location.reload(true); - } - }).send(); + }); }); - addClickEvent('shutdown', function(e) { - new Event(e).stop(); - if (confirm('QBT_TR(Are you sure you want to quit qBittorrent?)QBT_TR[CONTEXT=MainWindow]')) { - new Request({ - url: 'api/v2/app/shutdown', - method: 'post', - onSuccess: function() { - const shutdownMessage = 'QBT_TR(%1 has been shutdown)QBT_TR[CONTEXT=HttpServer]'.replace("%1", window.qBittorrent.Client.mainTitle()); + addClickEvent("shutdown", (e) => { + e.preventDefault(); + e.stopPropagation(); + + if (confirm("QBT_TR(Are you sure you want to quit qBittorrent?)QBT_TR[CONTEXT=MainWindow]")) { + fetch("api/v2/app/shutdown", { + method: "POST" + }) + .then((response) => { + if (!response.ok) + return; + + const shutdownMessage = "QBT_TR(%1 has been shutdown)QBT_TR[CONTEXT=HttpServer]".replace("%1", window.qBittorrent.Client.mainTitle()); document.write(` ${shutdownMessage}

      ${shutdownMessage}

      `); document.close(); window.stop(); window.qBittorrent.Client.stop(); - } - }).send(); + }); } }); // Deactivate menu header links - $$('a.returnFalse').each(function(el) { - el.addEvent('click', function(e) { - new Event(e).stop(); + for (const el of document.querySelectorAll("a.returnFalse")) { + el.addEventListener("click", (e) => { + e.preventDefault(); + e.stopPropagation(); }); - }); + } }; diff --git a/src/webui/www/private/scripts/pathAutofill.js b/src/webui/www/private/scripts/pathAutofill.js new file mode 100644 index 000000000..2e260f145 --- /dev/null +++ b/src/webui/www/private/scripts/pathAutofill.js @@ -0,0 +1,92 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2024 Paweł Kotiuk + * + * 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. + */ + +"use strict"; + +/* +File implementing auto-fill for the path input field in the path dialogs. +*/ + +window.qBittorrent ??= {}; +window.qBittorrent.pathAutofill ??= (() => { + const exports = () => { + return { + attachPathAutofill: attachPathAutofill + }; + }; + + const showInputSuggestions = (inputElement, names) => { + const datalist = document.createElement("datalist"); + datalist.id = `${inputElement.id}Suggestions`; + for (const name of names) { + const option = document.createElement("option"); + option.value = name; + datalist.appendChild(option); + } + + const oldDatalist = document.getElementById(`${inputElement.id}Suggestions`); + if (oldDatalist !== null) { + oldDatalist.replaceWith(datalist); + } + else { + inputElement.appendChild(datalist); + inputElement.setAttribute("list", datalist.id); + } + }; + + const showPathSuggestions = (element, mode) => { + const partialPath = element.value; + if (partialPath === "") + return; + + fetch(`api/v2/app/getDirectoryContent?dirPath=${partialPath}&mode=${mode}`, { + method: "GET", + cache: "no-store" + }) + .then(response => response.json()) + .then(filesList => { showInputSuggestions(element, filesList); }) + .catch(error => {}); + }; + + function attachPathAutofill() { + const directoryInputs = document.querySelectorAll(".pathDirectory:not(.pathAutoFillInitialized)"); + for (const input of directoryInputs) { + input.addEventListener("input", function() { showPathSuggestions(this, "dirs"); }); + input.classList.add("pathAutoFillInitialized"); + } + + const fileInputs = document.querySelectorAll(".pathFile:not(.pathAutoFillInitialized)"); + for (const input of fileInputs) { + input.addEventListener("input", function() { showPathSuggestions(this, "all"); }); + input.classList.add("pathAutoFillInitialized"); + } + }; + + return exports(); +})(); +Object.freeze(window.qBittorrent.pathAutofill); diff --git a/src/webui/www/private/scripts/piecesbar.js b/src/webui/www/private/scripts/piecesbar.js index d5835217c..49d159cb1 100644 --- a/src/webui/www/private/scripts/piecesbar.js +++ b/src/webui/www/private/scripts/piecesbar.js @@ -26,13 +26,10 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PiecesBar = (() => { +window.qBittorrent ??= {}; +window.qBittorrent.PiecesBar ??= (() => { const exports = () => { return { PiecesBar: PiecesBar @@ -49,38 +46,35 @@ window.qBittorrent.PiecesBar = (() => { let piecesBarUniqueId = 0; const PiecesBar = new Class({ - initialize(pieces, parameters) { + initialize: (pieces, parameters) => { const vals = { - 'id': 'piecesbar_' + (piecesBarUniqueId++), - 'width': 0, - 'height': 0, - 'downloadingColor': 'hsl(110deg 94% 27%)', // @TODO palette vars not supported for this value, apply average - 'haveColor': 'hsl(210deg 55% 55%)', // @TODO palette vars not supported for this value, apply average - 'borderSize': 1, - 'borderColor': 'var(--color-border-default)' + id: `piecesbar_${piecesBarUniqueId++}`, + width: 0, + height: 0, + downloadingColor: "hsl(110deg 94% 27%)", // @TODO palette vars not supported for this value, apply average + haveColor: "hsl(210deg 55% 55%)", // @TODO palette vars not supported for this value, apply average + borderSize: 1, + borderColor: "var(--color-border-default)" }; - if (parameters && (typeOf(parameters) === 'object')) + if (parameters && (typeOf(parameters) === "object")) Object.append(vals, parameters); vals.height = Math.max(vals.height, 12); - const obj = new Element('div', { - 'id': vals.id, - 'class': 'piecesbarWrapper', - 'styles': { - 'border': vals.borderSize.toString() + 'px solid ' + vals.borderColor, - 'height': vals.height.toString() + 'px', - } - }); + const obj = document.createElement("div"); + obj.id = vals.id; + obj.className = "piecesbarWrapper"; + obj.style.border = `${vals.borderSize}px solid ${vals.borderColor}`; + obj.style.height = `${vals.height}px`; obj.vals = vals; obj.vals.pieces = [pieces, []].pick(); - obj.vals.canvas = new Element('canvas', { - 'id': vals.id + '_canvas', - 'class': 'piecesbarCanvas', - 'width': (vals.width - (2 * vals.borderSize)).toString(), - 'height': '1' // will stretch vertically to take up the height of the parent - }); + const canvas = document.createElement("canvas"); + canvas.id = `${vals.id}_canvas`; + canvas.className = "piecesbarCanvas"; + canvas.width = `${vals.width - (2 * vals.borderSize)}`; + canvas.height = "1"; // will stretch vertically to take up the height of the parent + obj.vals.canvas = canvas; obj.appendChild(obj.vals.canvas); obj.setPieces = setPieces; @@ -91,7 +85,7 @@ window.qBittorrent.PiecesBar = (() => { if (vals.width > 0) obj.setPieces(vals.pieces); else - setTimeout(() => { checkForParent(obj.id); }, 1); + setTimeout(() => { checkForParent(obj.id); }); return obj; } @@ -124,7 +118,7 @@ window.qBittorrent.PiecesBar = (() => { this.vals.canvas.width = width - (2 * this.vals.borderSize); const canvas = this.vals.canvas; - const ctx = canvas.getContext('2d'); + const ctx = canvas.getContext("2d"); ctx.clearRect(0, 0, canvas.width, canvas.height); const imageWidth = canvas.width; @@ -136,13 +130,10 @@ window.qBittorrent.PiecesBar = (() => { let maxStatus = 0; for (const status of pieces) { - if (status > maxStatus) { + if (status > maxStatus) maxStatus = status; - } - - if (status < minStatus) { + if (status < minStatus) minStatus = status; - } } // if no progress then don't do anything @@ -220,15 +211,13 @@ window.qBittorrent.PiecesBar = (() => { statusValues[STATUS_DOWNLOADING] = Math.min(statusValues[STATUS_DOWNLOADING], 1); statusValues[STATUS_DOWNLOADED] = Math.min(statusValues[STATUS_DOWNLOADED], 1); - if (!lastValue) { + if (!lastValue) lastValue = statusValues; - } // group contiguous colors together and draw as a single rectangle if ((lastValue[STATUS_DOWNLOADING] === statusValues[STATUS_DOWNLOADING]) - && (lastValue[STATUS_DOWNLOADED] === statusValues[STATUS_DOWNLOADED])) { + && (lastValue[STATUS_DOWNLOADED] === statusValues[STATUS_DOWNLOADED])) continue; - } const rectangleWidth = x - rectangleStart; this._drawStatus(ctx, rectangleStart, rectangleWidth, lastValue); @@ -246,7 +235,7 @@ window.qBittorrent.PiecesBar = (() => { function drawStatus(ctx, start, width, statusValues) { // mix the colors by using transparency and a composite mode - ctx.globalCompositeOperation = 'lighten'; + ctx.globalCompositeOperation = "lighten"; if (statusValues[STATUS_DOWNLOADING]) { ctx.globalAlpha = statusValues[STATUS_DOWNLOADING]; @@ -261,17 +250,16 @@ window.qBittorrent.PiecesBar = (() => { } } - function checkForParent(id) { + const checkForParent = (id) => { const obj = $(id); if (!obj) return; if (!obj.parentNode) - return setTimeout(function() { checkForParent(id); }, 1); + return setTimeout(() => { checkForParent(id); }, 100); obj.refresh(); - } + }; return exports(); })(); - Object.freeze(window.qBittorrent.PiecesBar); diff --git a/src/webui/www/private/scripts/progressbar.js b/src/webui/www/private/scripts/progressbar.js index 676ba435a..5489b8877 100644 --- a/src/webui/www/private/scripts/progressbar.js +++ b/src/webui/www/private/scripts/progressbar.js @@ -26,79 +26,78 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.ProgressBar = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.ProgressBar ??= (() => { + const exports = () => { return { ProgressBar: ProgressBar }; }; - let ProgressBars = 0; + let progressBars = 0; const ProgressBar = new Class({ - initialize: function(value, parameters) { + initialize: (value, parameters) => { const vals = { - 'id': 'progressbar_' + (ProgressBars++), - 'value': [value, 0].pick(), - 'width': 0, - 'height': 0, - 'darkbg': 'var(--color-background-blue)', - 'darkfg': 'var(--color-text-white)', - 'lightbg': 'var(--color-background-default)', - 'lightfg': 'var(--color-text-default)' + id: `progressbar_${progressBars++}`, + value: [value, 0].pick(), + width: 0, + height: 0, + darkbg: "var(--color-background-blue)", + darkfg: "var(--color-text-white)", + lightbg: "var(--color-background-default)", + lightfg: "var(--color-text-default)" }; - if (parameters && (typeOf(parameters) === 'object')) + if (parameters && (typeOf(parameters) === "object")) Object.append(vals, parameters); if (vals.height < 12) vals.height = 12; - const obj = new Element('div', { - 'id': vals.id, - 'class': 'progressbar_wrapper', - 'styles': { - 'border': '1px solid var(--color-border-default)', - 'width': vals.width, - 'height': vals.height, - 'position': 'relative', - 'margin': '0 auto' - } - }); + + const obj = document.createElement("div"); + obj.id = vals.id; + obj.className = "progressbar_wrapper"; + obj.style.border = "1px solid var(--color-border-default)"; + obj.style.boxSizing = "content-box"; + obj.style.width = `${vals.width}px`; + obj.style.height = `${vals.height}px`; + obj.style.position = "relative"; + obj.style.margin = "0 auto"; obj.vals = vals; obj.vals.value = [value, 0].pick(); - obj.vals.dark = new Element('div', { - 'id': vals.id + '_dark', - 'class': 'progressbar_dark', - 'styles': { - 'width': vals.width, - 'height': vals.height, - 'background': vals.darkbg, - 'color': vals.darkfg, - 'position': 'absolute', - 'text-align': 'center', - 'left': 0, - 'top': 0, - 'line-height': vals.height - } - }); - obj.vals.light = new Element('div', { - 'id': vals.id + '_light', - 'class': 'progressbar_light', - 'styles': { - 'width': vals.width, - 'height': vals.height, - 'background': vals.lightbg, - 'color': vals.lightfg, - 'position': 'absolute', - 'text-align': 'center', - 'left': 0, - 'top': 0, - 'line-height': vals.height - } - }); + + const dark = document.createElement("div"); + dark.id = `${vals.id}_dark`; + dark.className = "progressbar_dark"; + dark.style.width = `${vals.width}px`; + dark.style.height = `${vals.height}px`; + dark.style.background = vals.darkbg; + dark.style.boxSizing = "content-box"; + dark.style.color = vals.darkfg; + dark.style.position = "absolute"; + dark.style.textAlign = "center"; + dark.style.left = "0"; + dark.style.top = "0"; + dark.style.lineHeight = `${vals.height}px`; + + obj.vals.dark = dark; + + const light = document.createElement("div"); + light.id = `${vals.id}_light`; + light.className = "progressbar_light"; + light.style.width = `${vals.width}px`; + light.style.height = `${vals.height}px`; + light.style.background = vals.lightbg; + light.style.boxSizing = "content-box"; + light.style.color = vals.lightfg; + light.style.position = "absolute"; + light.style.textAlign = "center"; + light.style.left = "0"; + light.style.top = "0"; + light.style.lineHeight = `${vals.height}px`; + + obj.vals.light = light; + obj.appendChild(obj.vals.dark); obj.appendChild(obj.vals.light); obj.getValue = ProgressBar_getValue; @@ -107,7 +106,7 @@ window.qBittorrent.ProgressBar = (function() { if (vals.width) obj.setValue(vals.value); else - setTimeout('ProgressBar_checkForParent("' + obj.id + '")', 1); + setTimeout(ProgressBar_checkForParent, 0, obj.id); return obj; } }); @@ -117,48 +116,45 @@ window.qBittorrent.ProgressBar = (function() { } function ProgressBar_setValue(value) { - value = parseFloat(value); - if (isNaN(value)) - value = 0; - if (value > 100) - value = 100; - if (value < 0) + value = Number(value); + if (Number.isNaN(value)) value = 0; + value = Math.min(Math.max(value, 0), 100); this.vals.value = value; - this.vals.dark.empty(); - this.vals.light.empty(); - this.vals.dark.appendText(value.round(1).toFixed(1) + '%'); - this.vals.light.appendText(value.round(1).toFixed(1) + '%'); - const r = parseInt(this.vals.width * (value / 100)); - this.vals.dark.setStyle('clip', 'rect(0,' + r + 'px,' + this.vals.height + 'px,0)'); - this.vals.light.setStyle('clip', 'rect(0,' + this.vals.width + 'px,' + this.vals.height + 'px,' + r + 'px)'); + + const displayedValue = `${window.qBittorrent.Misc.toFixedPointString(value, 1)}%`; + this.vals.dark.textContent = displayedValue; + this.vals.light.textContent = displayedValue; + + const r = Number(this.vals.width * (value / 100)); + this.vals.dark.style.clipPath = `inset(0 calc(100% - ${r}px) 0 0)`; + this.vals.light.style.clipPath = `inset(0 0 0 ${r}px)`; } function ProgressBar_setWidth(value) { if (this.vals.width !== value) { this.vals.width = value; - this.setStyle('width', value); - this.vals.dark.setStyle('width', value); - this.vals.light.setStyle('width', value); + this.style.width = `${value}px`; + this.vals.dark.style.width = `${value}px`; + this.vals.light.style.width = `${value}px`; this.setValue(this.vals.value); } } - function ProgressBar_checkForParent(id) { + const ProgressBar_checkForParent = (id) => { const obj = $(id); if (!obj) return; if (!obj.parentNode) - return setTimeout('ProgressBar_checkForParent("' + id + '")', 1); - obj.setStyle('width', '100%'); + return setTimeout(ProgressBar_checkForParent, 100, id); + obj.style.width = "100%"; const w = obj.offsetWidth; - obj.vals.dark.setStyle('width', w); - obj.vals.light.setStyle('width', w); + obj.vals.dark.style.width = `${w}px`; + obj.vals.light.style.width = `${w}px`; obj.vals.width = w; obj.setValue(obj.vals.value); - } + }; return exports(); })(); - Object.freeze(window.qBittorrent.ProgressBar); diff --git a/src/webui/www/private/scripts/prop-files.js b/src/webui/www/private/scripts/prop-files.js index 7be42525b..1aa2665b9 100644 --- a/src/webui/www/private/scripts/prop-files.js +++ b/src/webui/www/private/scripts/prop-files.js @@ -26,26 +26,19 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PropFiles = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.PropFiles ??= (() => { + const exports = () => { return { normalizePriority: normalizePriority, - isDownloadCheckboxExists: isDownloadCheckboxExists, createDownloadCheckbox: createDownloadCheckbox, updateDownloadCheckbox: updateDownloadCheckbox, - isPriorityComboExists: isPriorityComboExists, createPriorityCombo: createPriorityCombo, updatePriorityCombo: updatePriorityCombo, updateData: updateData, - collapseIconClicked: collapseIconClicked, - expandFolder: expandFolder, - collapseFolder: collapseFolder + clear: clear }; }; @@ -55,7 +48,7 @@ window.qBittorrent.PropFiles = (function() { let is_seed = true; let current_hash = ""; - const normalizePriority = function(priority) { + const normalizePriority = (priority) => { switch (priority) { case FilePriority.Ignored: case FilePriority.Normal: @@ -68,7 +61,7 @@ window.qBittorrent.PropFiles = (function() { } }; - const getAllChildren = function(id, fileId) { + const getAllChildren = (id, fileId) => { const node = torrentFilesTable.getNode(id); if (!node.isFolder) { return { @@ -80,9 +73,9 @@ window.qBittorrent.PropFiles = (function() { const rowIds = []; const fileIds = []; - const getChildFiles = function(node) { + const getChildFiles = (node) => { if (node.isFolder) { - node.children.each(function(child) { + node.children.each((child) => { getChildFiles(child); }); } @@ -92,7 +85,7 @@ window.qBittorrent.PropFiles = (function() { } }; - node.children.each(function(child) { + node.children.each((child) => { getChildFiles(child); }); @@ -102,13 +95,13 @@ window.qBittorrent.PropFiles = (function() { }; }; - const fileCheckboxClicked = function(e) { + const fileCheckboxClicked = (e) => { e.stopPropagation(); const checkbox = e.target; const priority = checkbox.checked ? FilePriority.Normal : FilePriority.Ignored; - const id = checkbox.get('data-id'); - const fileId = checkbox.get('data-file-id'); + const id = checkbox.getAttribute("data-id"); + const fileId = checkbox.getAttribute("data-file-id"); const rows = getAllChildren(id, fileId); @@ -116,11 +109,11 @@ window.qBittorrent.PropFiles = (function() { updateGlobalCheckbox(); }; - const fileComboboxChanged = function(e) { + const fileComboboxChanged = (e) => { const combobox = e.target; const priority = combobox.value; - const id = combobox.get('data-id'); - const fileId = combobox.get('data-file-id'); + const id = combobox.getAttribute("data-id"); + const fileId = combobox.getAttribute("data-file-id"); const rows = getAllChildren(id, fileId); @@ -128,29 +121,24 @@ window.qBittorrent.PropFiles = (function() { updateGlobalCheckbox(); }; - const isDownloadCheckboxExists = function(id) { - return ($('cbPrio' + id) !== null); - }; - - const createDownloadCheckbox = function(id, fileId, checked) { - const checkbox = new Element('input'); - checkbox.set('type', 'checkbox'); - checkbox.set('id', 'cbPrio' + id); - checkbox.set('data-id', id); - checkbox.set('data-file-id', fileId); - checkbox.set('class', 'DownloadedCB'); - checkbox.addEvent('click', fileCheckboxClicked); + const createDownloadCheckbox = (id, fileId, checked) => { + const checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.setAttribute("data-id", id); + checkbox.setAttribute("data-file-id", fileId); + checkbox.addEventListener("click", fileCheckboxClicked); updateCheckbox(checkbox, checked); return checkbox; }; - const updateDownloadCheckbox = function(id, checked) { - const checkbox = $('cbPrio' + id); + const updateDownloadCheckbox = (checkbox, id, fileId, checked) => { + checkbox.setAttribute("data-id", id); + checkbox.setAttribute("data-file-id", fileId); updateCheckbox(checkbox, checked); }; - const updateCheckbox = function(checkbox, checked) { + const updateCheckbox = (checkbox, checked) => { switch (checked) { case TriState.Checked: setCheckboxChecked(checkbox); @@ -164,52 +152,48 @@ window.qBittorrent.PropFiles = (function() { } }; - const isPriorityComboExists = function(id) { - return ($('comboPrio' + id) !== null); - }; + const createPriorityCombo = (id, fileId, selectedPriority) => { + const createOption = (priority, isSelected, text) => { + const option = document.createElement("option"); + option.value = priority.toString(); + option.selected = isSelected; + option.textContent = text; + return option; + }; - const createPriorityOptionElement = function(priority, selected, html) { - const elem = new Element('option'); - elem.set('value', priority.toString()); - elem.set('html', html); - if (selected) - elem.selected = true; - return elem; - }; + const select = document.createElement("select"); + select.id = `comboPrio${id}`; + select.setAttribute("data-id", id); + select.setAttribute("data-file-id", fileId); + select.classList.add("combo_priority"); + select.addEventListener("change", fileComboboxChanged); - const createPriorityCombo = function(id, fileId, selectedPriority) { - const select = new Element('select'); - select.set('id', 'comboPrio' + id); - select.set('data-id', id); - select.set('data-file-id', fileId); - select.addClass('combo_priority'); - select.addEvent('change', fileComboboxChanged); - - createPriorityOptionElement(FilePriority.Ignored, (FilePriority.Ignored === selectedPriority), 'QBT_TR(Do not download)QBT_TR[CONTEXT=PropListDelegate]').injectInside(select); - createPriorityOptionElement(FilePriority.Normal, (FilePriority.Normal === selectedPriority), 'QBT_TR(Normal)QBT_TR[CONTEXT=PropListDelegate]').injectInside(select); - createPriorityOptionElement(FilePriority.High, (FilePriority.High === selectedPriority), 'QBT_TR(High)QBT_TR[CONTEXT=PropListDelegate]').injectInside(select); - createPriorityOptionElement(FilePriority.Maximum, (FilePriority.Maximum === selectedPriority), 'QBT_TR(Maximum)QBT_TR[CONTEXT=PropListDelegate]').injectInside(select); + select.appendChild(createOption(FilePriority.Ignored, (FilePriority.Ignored === selectedPriority), "QBT_TR(Do not download)QBT_TR[CONTEXT=PropListDelegate]")); + select.appendChild(createOption(FilePriority.Normal, (FilePriority.Normal === selectedPriority), "QBT_TR(Normal)QBT_TR[CONTEXT=PropListDelegate]")); + select.appendChild(createOption(FilePriority.High, (FilePriority.High === selectedPriority), "QBT_TR(High)QBT_TR[CONTEXT=PropListDelegate]")); + select.appendChild(createOption(FilePriority.Maximum, (FilePriority.Maximum === selectedPriority), "QBT_TR(Maximum)QBT_TR[CONTEXT=PropListDelegate]")); // "Mixed" priority is for display only; it shouldn't be selectable - const mixedPriorityOption = createPriorityOptionElement(FilePriority.Mixed, (FilePriority.Mixed === selectedPriority), 'QBT_TR(Mixed)QBT_TR[CONTEXT=PropListDelegate]'); - mixedPriorityOption.set('disabled', true); - mixedPriorityOption.injectInside(select); + const mixedPriorityOption = createOption(FilePriority.Mixed, (FilePriority.Mixed === selectedPriority), "QBT_TR(Mixed)QBT_TR[CONTEXT=PropListDelegate]"); + mixedPriorityOption.disabled = true; + select.appendChild(mixedPriorityOption); return select; }; - const updatePriorityCombo = function(id, selectedPriority) { - const combobox = $('comboPrio' + id); - - if (parseInt(combobox.value) !== selectedPriority) + const updatePriorityCombo = (combobox, id, fileId, selectedPriority) => { + combobox.id = `comboPrio${id}`; + combobox.setAttribute("data-id", id); + combobox.setAttribute("data-file-id", fileId); + if (Number(combobox.value) !== selectedPriority) selectComboboxPriority(combobox, selectedPriority); }; - const selectComboboxPriority = function(combobox, priority) { + const selectComboboxPriority = (combobox, priority) => { const options = combobox.options; for (let i = 0; i < options.length; ++i) { const option = options[i]; - if (parseInt(option.value) === priority) + if (Number(option.value) === priority) option.selected = true; else option.selected = false; @@ -218,18 +202,18 @@ window.qBittorrent.PropFiles = (function() { combobox.value = priority; }; - const switchCheckboxState = function(e) { + const switchCheckboxState = (e) => { e.stopPropagation(); const rowIds = []; const fileIds = []; let priority = FilePriority.Ignored; - const checkbox = $('tristate_cb'); + const checkbox = $("tristate_cb"); if (checkbox.state === "checked") { setCheckboxUnchecked(checkbox); // set file priority for all checked to Ignored - torrentFilesTable.getFilteredAndSortedRows().forEach(function(row) { + torrentFilesTable.getFilteredAndSortedRows().forEach((row) => { const rowId = row.rowId; const fileId = row.full_data.fileId; const isChecked = (row.full_data.checked === TriState.Checked); @@ -244,7 +228,7 @@ window.qBittorrent.PropFiles = (function() { setCheckboxChecked(checkbox); priority = FilePriority.Normal; // set file priority for all unchecked to Normal - torrentFilesTable.getFilteredAndSortedRows().forEach(function(row) { + torrentFilesTable.getFilteredAndSortedRows().forEach((row) => { const rowId = row.rowId; const fileId = row.full_data.fileId; const isUnchecked = (row.full_data.checked === TriState.Unchecked); @@ -260,85 +244,71 @@ window.qBittorrent.PropFiles = (function() { setFilePriority(rowIds, fileIds, priority); }; - const updateGlobalCheckbox = function() { - const checkbox = $('tristate_cb'); - if (isAllCheckboxesChecked()) + const updateGlobalCheckbox = () => { + const checkbox = $("tristate_cb"); + if (torrentFilesTable.isAllCheckboxesChecked()) setCheckboxChecked(checkbox); - else if (isAllCheckboxesUnchecked()) + else if (torrentFilesTable.isAllCheckboxesUnchecked()) setCheckboxUnchecked(checkbox); else setCheckboxPartial(checkbox); }; - const setCheckboxChecked = function(checkbox) { + const setCheckboxChecked = (checkbox) => { checkbox.state = "checked"; checkbox.indeterminate = false; checkbox.checked = true; }; - const setCheckboxUnchecked = function(checkbox) { + const setCheckboxUnchecked = (checkbox) => { checkbox.state = "unchecked"; checkbox.indeterminate = false; checkbox.checked = false; }; - const setCheckboxPartial = function(checkbox) { + const setCheckboxPartial = (checkbox) => { checkbox.state = "partial"; checkbox.indeterminate = true; }; - const isAllCheckboxesChecked = function() { - const checkboxes = $$('input.DownloadedCB'); - for (let i = 0; i < checkboxes.length; ++i) { - if (!checkboxes[i].checked) - return false; - } - return true; - }; - - const isAllCheckboxesUnchecked = function() { - const checkboxes = $$('input.DownloadedCB'); - for (let i = 0; i < checkboxes.length; ++i) { - if (checkboxes[i].checked) - return false; - } - return true; - }; - - const setFilePriority = function(ids, fileIds, priority) { + const setFilePriority = (ids, fileIds, priority) => { if (current_hash === "") return; clearTimeout(loadTorrentFilesDataTimer); - new Request({ - url: 'api/v2/torrents/filePrio', - method: 'post', - data: { - 'hash': current_hash, - 'id': fileIds.join('|'), - 'priority': priority - }, - onComplete: function() { + loadTorrentFilesDataTimer = -1; + + fetch("api/v2/torrents/filePrio", { + method: "POST", + body: new URLSearchParams({ + hash: current_hash, + id: fileIds.join("|"), + priority: priority + }) + }) + .then((response) => { + if (!response.ok) + return; + loadTorrentFilesDataTimer = loadTorrentFilesData.delay(1000); - } - }).send(); + }); const ignore = (priority === FilePriority.Ignored); - ids.forEach(function(_id) { - torrentFilesTable.setIgnored(_id, ignore); + ids.forEach((id) => { + torrentFilesTable.setIgnored(id, ignore); - const combobox = $('comboPrio' + _id); + const combobox = $(`comboPrio${id}`); if (combobox !== null) selectComboboxPriority(combobox, priority); }); - - torrentFilesTable.updateTable(false); }; - let loadTorrentFilesDataTimer; - const loadTorrentFilesData = function() { - if ($('prop_files').hasClass('invisible') - || $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + let loadTorrentFilesDataTimer = -1; + const loadTorrentFilesData = () => { + if (document.hidden) + return; + if ($("propFiles").classList.contains("invisible") + || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) { // Tab changed, don't do anything return; } @@ -346,7 +316,6 @@ window.qBittorrent.PropFiles = (function() { if (new_hash === "") { torrentFilesTable.clear(); clearTimeout(loadTorrentFilesDataTimer); - loadTorrentFilesDataTimer = loadTorrentFilesData.delay(5000); return; } let loadedNewTorrent = false; @@ -355,16 +324,21 @@ window.qBittorrent.PropFiles = (function() { current_hash = new_hash; loadedNewTorrent = true; } - const url = new URI('api/v2/torrents/files?hash=' + current_hash); - new Request.JSON({ - url: url, - method: 'get', - noCache: true, - onComplete: function() { - clearTimeout(loadTorrentFilesDataTimer); - loadTorrentFilesDataTimer = loadTorrentFilesData.delay(5000); - }, - onSuccess: function(files) { + + const url = new URL("api/v2/torrents/files", window.location); + url.search = new URLSearchParams({ + hash: current_hash + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const files = await response.json(); + clearTimeout(torrentFilesFilterInputTimer); torrentFilesFilterInputTimer = -1; @@ -374,40 +348,37 @@ window.qBittorrent.PropFiles = (function() { else { handleNewTorrentFiles(files); if (loadedNewTorrent) - collapseAllNodes(); + torrentFilesTable.collapseAllNodes(); } - } - }).send(); + }) + .finally(() => { + clearTimeout(loadTorrentFilesDataTimer); + loadTorrentFilesDataTimer = loadTorrentFilesData.delay(5000); + }); }; - const updateData = function() { + const updateData = () => { clearTimeout(loadTorrentFilesDataTimer); + loadTorrentFilesDataTimer = -1; loadTorrentFilesData(); }; - const handleNewTorrentFiles = function(files) { + const handleNewTorrentFiles = (files) => { is_seed = (files.length > 0) ? files[0].is_seed : true; - const rows = files.map(function(file, index) { - let progress = (file.progress * 100).round(1); - if ((progress === 100) && (file.progress < 1)) - progress = 99.9; - + const rows = files.map((file, index) => { const ignore = (file.priority === FilePriority.Ignored); - const checked = (ignore ? TriState.Unchecked : TriState.Checked); - const remaining = (ignore ? 0 : (file.size * (1.0 - file.progress))); const row = { fileId: index, - checked: checked, + checked: (ignore ? TriState.Unchecked : TriState.Checked), fileName: file.name, name: window.qBittorrent.Filesystem.fileName(file.name), size: file.size, - progress: progress, + progress: window.qBittorrent.Misc.toFixedPointString((file.progress * 100), 1), priority: normalizePriority(file.priority), - remaining: remaining, + remaining: (ignore ? 0 : (file.size * (1 - file.progress))), availability: file.availability }; - return row; }); @@ -415,19 +386,19 @@ window.qBittorrent.PropFiles = (function() { updateGlobalCheckbox(); }; - const addRowsToTable = function(rows) { + const addRowsToTable = (rows) => { const selectedFiles = torrentFilesTable.selectedRowsIds(); let rowId = 0; const rootNode = new window.qBittorrent.FileTree.FolderNode(); - rows.forEach(function(row) { + rows.forEach((row) => { const pathItems = row.fileName.split(window.qBittorrent.Filesystem.PathSeparator); pathItems.pop(); // remove last item (i.e. file name) let parent = rootNode; - pathItems.forEach(function(folderName) { - if (folderName === '.unwanted') + pathItems.forEach((folderName) => { + if (folderName === ".unwanted") return; let folderNode = null; @@ -474,62 +445,35 @@ window.qBittorrent.PropFiles = (function() { parent.addChild(childNode); ++rowId; - }.bind(this)); + }); torrentFilesTable.populateTable(rootNode); torrentFilesTable.updateTable(false); - torrentFilesTable.altRow(); if (selectedFiles.length > 0) torrentFilesTable.reselectRows(selectedFiles); }; - const collapseIconClicked = function(event) { - const id = event.get("data-id"); - const node = torrentFilesTable.getNode(id); - const isCollapsed = (event.parentElement.get("data-collapsed") === "true"); - - if (isCollapsed) - expandNode(node); - else - collapseNode(node); - }; - - const expandFolder = function(id) { - const node = torrentFilesTable.getNode(id); - if (node.isFolder) { - expandNode(node); - } - }; - - const collapseFolder = function(id) { - const node = torrentFilesTable.getNode(id); - if (node.isFolder) { - collapseNode(node); - } - }; - - const filesPriorityMenuClicked = function(priority) { + const filesPriorityMenuClicked = (priority) => { const selectedRows = torrentFilesTable.selectedRowsIds(); if (selectedRows.length === 0) return; const rowIds = []; const fileIds = []; - selectedRows.forEach(function(rowId) { - const elem = $('comboPrio' + rowId); + selectedRows.forEach((rowId) => { rowIds.push(rowId); - fileIds.push(elem.get("data-file-id")); + fileIds.push(torrentFilesTable.getRowFileId(rowId)); }); const uniqueRowIds = {}; const uniqueFileIds = {}; for (let i = 0; i < rowIds.length; ++i) { const rows = getAllChildren(rowIds[i], fileIds[i]); - rows.rowIds.forEach(function(rowId) { + rows.rowIds.forEach((rowId) => { uniqueRowIds[rowId] = true; }); - rows.fileIds.forEach(function(fileId) { + rows.fileIds.forEach((fileId) => { uniqueFileIds[fileId] = true; }); } @@ -537,11 +481,11 @@ window.qBittorrent.PropFiles = (function() { setFilePriority(Object.keys(uniqueRowIds), Object.keys(uniqueFileIds), priority); }; - const singleFileRename = function(hash) { + const singleFileRename = (hash) => { const rowId = torrentFilesTable.selectedRowsIds()[0]; if (rowId === undefined) return; - const row = torrentFilesTable.rows[rowId]; + const row = torrentFilesTable.rows.get(rowId); if (!row) return; @@ -549,11 +493,11 @@ window.qBittorrent.PropFiles = (function() { const path = node.path; new MochaUI.Window({ - id: 'renamePage', + id: "renamePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]", - loadMethod: 'iframe', - contentURL: 'rename_file.html?hash=' + hash + '&isFolder=' + node.isFolder - + '&path=' + encodeURIComponent(path), + loadMethod: "iframe", + contentURL: `rename_file.html?hash=${hash}&isFolder=${node.isFolder}&path=${encodeURIComponent(path)}`, scrollbars: false, resizable: true, maximizable: false, @@ -564,13 +508,14 @@ window.qBittorrent.PropFiles = (function() { }); }; - const multiFileRename = function(hash) { + const multiFileRename = (hash) => { new MochaUI.Window({ - id: 'multiRenamePage', + id: "multiRenamePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]", data: { hash: hash, selectedRows: torrentFilesTable.selectedRows }, - loadMethod: 'xhr', - contentURL: 'rename_files.html', + loadMethod: "xhr", + contentURL: "rename_files.html", scrollbars: false, resizable: true, maximizable: false, @@ -578,75 +523,73 @@ window.qBittorrent.PropFiles = (function() { paddingHorizontal: 0, width: 800, height: 420, - resizeLimit: { 'x': [800], 'y': [420] } + resizeLimit: { x: [800], y: [420] } }); }; const torrentFilesContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ - targets: '#torrentFilesTableDiv tr', - menu: 'torrentFilesMenu', + targets: "#torrentFilesTableDiv tbody tr", + menu: "torrentFilesMenu", actions: { - Rename: function(element, ref) { + Rename: (element, ref) => { const hash = torrentsTable.getCurrentTorrentID(); if (!hash) return; - if (torrentFilesTable.selectedRowsIds().length > 1) { + if (torrentFilesTable.selectedRowsIds().length > 1) multiFileRename(hash); - } - else { + else singleFileRename(hash); - } }, - FilePrioIgnore: function(element, ref) { + FilePrioIgnore: (element, ref) => { filesPriorityMenuClicked(FilePriority.Ignored); }, - FilePrioNormal: function(element, ref) { + FilePrioNormal: (element, ref) => { filesPriorityMenuClicked(FilePriority.Normal); }, - FilePrioHigh: function(element, ref) { + FilePrioHigh: (element, ref) => { filesPriorityMenuClicked(FilePriority.High); }, - FilePrioMaximum: function(element, ref) { + FilePrioMaximum: (element, ref) => { filesPriorityMenuClicked(FilePriority.Maximum); } }, offsets: { - x: -15, + x: 0, y: 2 }, onShow: function() { if (is_seed) - this.hideItem('FilePrio'); + this.hideItem("FilePrio"); else - this.showItem('FilePrio'); + this.showItem("FilePrio"); } }); - torrentFilesTable.setup('torrentFilesTableDiv', 'torrentFilesTableFixedHeaderDiv', torrentFilesContextMenu); + torrentFilesTable.setup("torrentFilesTableDiv", "torrentFilesTableFixedHeaderDiv", torrentFilesContextMenu, true); // inject checkbox into table header - const tableHeaders = $$('#torrentFilesTableFixedHeaderDiv .dynamicTableHeader th'); + const tableHeaders = document.querySelectorAll("#torrentFilesTableFixedHeaderDiv .dynamicTableHeader th"); if (tableHeaders.length > 0) { - const checkbox = new Element('input'); - checkbox.set('type', 'checkbox'); - checkbox.set('id', 'tristate_cb'); - checkbox.addEvent('click', switchCheckboxState); + const checkbox = document.createElement("input"); + checkbox.type = "checkbox"; + checkbox.id = "tristate_cb"; + checkbox.addEventListener("click", switchCheckboxState); const checkboxTH = tableHeaders[0]; - checkbox.injectInside(checkboxTH); + checkboxTH.append(checkbox); } // default sort by name column if (torrentFilesTable.getSortedColumn() === null) - torrentFilesTable.setSortedColumn('name'); + torrentFilesTable.setSortedColumn("name"); // listen for changes to torrentFilesFilterInput let torrentFilesFilterInputTimer = -1; - $('torrentFilesFilterInput').addEvent('input', () => { + $("torrentFilesFilterInput").addEventListener("input", () => { clearTimeout(torrentFilesFilterInputTimer); - const value = $('torrentFilesFilterInput').get("value"); + const value = $("torrentFilesFilterInput").value; torrentFilesTable.setFilter(value); torrentFilesFilterInputTimer = setTimeout(() => { @@ -658,122 +601,16 @@ window.qBittorrent.PropFiles = (function() { torrentFilesTable.updateTable(); if (value.trim() === "") - collapseAllNodes(); + torrentFilesTable.collapseAllNodes(); else - expandAllNodes(); + torrentFilesTable.expandAllNodes(); }, window.qBittorrent.Misc.FILTER_INPUT_DELAY); }); - /** - * Show/hide a node's row - */ - const _hideNode = function(node, shouldHide) { - const span = $('filesTablefileName' + node.rowId); - // span won't exist if row has been filtered out - if (span === null) - return; - const rowElem = span.parentElement.parentElement; - if (shouldHide) - rowElem.addClass("invisible"); - else - rowElem.removeClass("invisible"); - }; - - /** - * Update a node's collapsed state and icon - */ - const _updateNodeState = function(node, isCollapsed) { - const span = $('filesTablefileName' + node.rowId); - // span won't exist if row has been filtered out - if (span === null) - return; - const td = span.parentElement; - - // store collapsed state - td.set("data-collapsed", isCollapsed); - - // rotate the collapse icon - const collapseIcon = td.getElementsByClassName("filesTableCollapseIcon")[0]; - if (isCollapsed) - collapseIcon.addClass("rotate"); - else - collapseIcon.removeClass("rotate"); - }; - - const _isCollapsed = function(node) { - const span = $('filesTablefileName' + node.rowId); - if (span === null) - return true; - - const td = span.parentElement; - return (td.get("data-collapsed") === "true"); - }; - - const expandNode = function(node) { - _collapseNode(node, false, false, false); - torrentFilesTable.altRow(); - }; - - const collapseNode = function(node) { - _collapseNode(node, true, false, false); - torrentFilesTable.altRow(); - }; - - const expandAllNodes = function() { - const root = torrentFilesTable.getRoot(); - root.children.each(function(node) { - node.children.each(function(child) { - _collapseNode(child, false, true, false); - }); - }); - torrentFilesTable.altRow(); - }; - - const collapseAllNodes = function() { - const root = torrentFilesTable.getRoot(); - root.children.each(function(node) { - node.children.each(function(child) { - _collapseNode(child, true, true, false); - }); - }); - torrentFilesTable.altRow(); - }; - - /** - * Collapses a folder node with the option to recursively collapse all children - * @param {FolderNode} node the node to collapse/expand - * @param {boolean} shouldCollapse true if the node should be collapsed, false if it should be expanded - * @param {boolean} applyToChildren true if the node's children should also be collapsed, recursively - * @param {boolean} isChildNode true if the current node is a child of the original node we collapsed/expanded - */ - const _collapseNode = function(node, shouldCollapse, applyToChildren, isChildNode) { - if (!node.isFolder) - return; - - const shouldExpand = !shouldCollapse; - const isNodeCollapsed = _isCollapsed(node); - const nodeInCorrectState = ((shouldCollapse && isNodeCollapsed) || (shouldExpand && !isNodeCollapsed)); - const canSkipNode = (isChildNode && (!applyToChildren || nodeInCorrectState)); - if (!isChildNode || applyToChildren || !canSkipNode) - _updateNodeState(node, shouldCollapse); - - node.children.each(function(child) { - _hideNode(child, shouldCollapse); - - if (!child.isFolder) - return; - - // don't expand children that have been independently collapsed, unless applyToChildren is true - const shouldExpandChildren = (shouldExpand && applyToChildren); - const isChildCollapsed = _isCollapsed(child); - if (!shouldExpandChildren && isChildCollapsed) - return; - - _collapseNode(child, shouldCollapse, applyToChildren, true); - }); + const clear = () => { + torrentFilesTable.clear(); }; return exports(); })(); - Object.freeze(window.qBittorrent.PropFiles); diff --git a/src/webui/www/private/scripts/prop-general.js b/src/webui/www/private/scripts/prop-general.js index 82d1c9b8a..d93c9b746 100644 --- a/src/webui/www/private/scripts/prop-general.js +++ b/src/webui/www/private/scripts/prop-general.js @@ -26,58 +26,60 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PropGeneral = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.PropGeneral ??= (() => { + const exports = () => { return { - updateData: updateData + updateData: updateData, + clear: clear }; }; const piecesBar = new window.qBittorrent.PiecesBar.PiecesBar([], { - height: 16 + height: 18 }); - $('progress').appendChild(piecesBar); + $("progress").appendChild(piecesBar); - const clearData = function() { - $('time_elapsed').set('html', ''); - $('eta').set('html', ''); - $('nb_connections').set('html', ''); - $('total_downloaded').set('html', ''); - $('total_uploaded').set('html', ''); - $('dl_speed').set('html', ''); - $('up_speed').set('html', ''); - $('dl_limit').set('html', ''); - $('up_limit').set('html', ''); - $('total_wasted').set('html', ''); - $('seeds').set('html', ''); - $('peers').set('html', ''); - $('share_ratio').set('html', ''); - $('popularity').set('html', ''); - $('reannounce').set('html', ''); - $('last_seen').set('html', ''); - $('total_size').set('html', ''); - $('pieces').set('html', ''); - $('created_by').set('html', ''); - $('addition_date').set('html', ''); - $('completion_date').set('html', ''); - $('creation_date').set('html', ''); - $('torrent_hash_v1').set('html', ''); - $('torrent_hash_v2').set('html', ''); - $('save_path').set('html', ''); - $('comment').set('html', ''); + const clearData = () => { + document.getElementById("progressPercentage").textContent = ""; + $("time_elapsed").textContent = ""; + $("eta").textContent = ""; + $("nb_connections").textContent = ""; + $("total_downloaded").textContent = ""; + $("total_uploaded").textContent = ""; + $("dl_speed").textContent = ""; + $("up_speed").textContent = ""; + $("dl_limit").textContent = ""; + $("up_limit").textContent = ""; + $("total_wasted").textContent = ""; + $("seeds").textContent = ""; + $("peers").textContent = ""; + $("share_ratio").textContent = ""; + $("popularity").textContent = ""; + $("reannounce").textContent = ""; + $("last_seen").textContent = ""; + $("total_size").textContent = ""; + $("pieces").textContent = ""; + $("created_by").textContent = ""; + $("addition_date").textContent = ""; + $("completion_date").textContent = ""; + $("creation_date").textContent = ""; + $("torrent_hash_v1").textContent = ""; + $("torrent_hash_v2").textContent = ""; + $("save_path").textContent = ""; + $("comment").textContent = ""; + $("private").textContent = ""; piecesBar.clear(); }; - let loadTorrentDataTimer; - const loadTorrentData = function() { - if ($('prop_general').hasClass('invisible') - || $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + let loadTorrentDataTimer = -1; + const loadTorrentData = () => { + if (document.hidden) + return; + if ($("propGeneral").classList.contains("invisible") + || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) { // Tab changed, don't do anything return; } @@ -85,172 +87,194 @@ window.qBittorrent.PropGeneral = (function() { if (current_id === "") { clearData(); clearTimeout(loadTorrentDataTimer); - loadTorrentDataTimer = loadTorrentData.delay(5000); return; } - const url = new URI('api/v2/torrents/properties?hash=' + current_id); - new Request.JSON({ - url: url, - method: 'get', - noCache: true, - onFailure: function() { - $('error_div').set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]'); - clearTimeout(loadTorrentDataTimer); - loadTorrentDataTimer = loadTorrentData.delay(10000); - }, - onSuccess: function(data) { - $('error_div').set('html', ''); + + const propertiesURL = new URL("api/v2/torrents/properties", window.location); + propertiesURL.search = new URLSearchParams({ + hash: current_id + }); + fetch(propertiesURL, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) { + $("error_div").textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]"; + clearTimeout(loadTorrentDataTimer); + loadTorrentDataTimer = loadTorrentData.delay(10000); + return; + } + + $("error_div").textContent = ""; + + const data = await response.json(); if (data) { // Update Torrent data + document.getElementById("progressPercentage").textContent = window.qBittorrent.Misc.friendlyPercentage(data.progress); + const timeElapsed = (data.seeding_time > 0) ? "QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", window.qBittorrent.Misc.friendlyDuration(data.time_elapsed)) .replace("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time)) : window.qBittorrent.Misc.friendlyDuration(data.time_elapsed); - $('time_elapsed').set('html', timeElapsed); + $("time_elapsed").textContent = timeElapsed; - $('eta').set('html', window.qBittorrent.Misc.friendlyDuration(data.eta, window.qBittorrent.Misc.MAX_ETA)); + $("eta").textContent = window.qBittorrent.Misc.friendlyDuration(data.eta, window.qBittorrent.Misc.MAX_ETA); const nbConnections = "QBT_TR(%1 (%2 max))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", data.nb_connections) .replace("%2", ((data.nb_connections_limit < 0) ? "∞" : data.nb_connections_limit)); - $('nb_connections').set('html', nbConnections); + $("nb_connections").textContent = nbConnections; const totalDownloaded = "QBT_TR(%1 (%2 this session))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", window.qBittorrent.Misc.friendlyUnit(data.total_downloaded)) .replace("%2", window.qBittorrent.Misc.friendlyUnit(data.total_downloaded_session)); - $('total_downloaded').set('html', totalDownloaded); + $("total_downloaded").textContent = totalDownloaded; const totalUploaded = "QBT_TR(%1 (%2 this session))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", window.qBittorrent.Misc.friendlyUnit(data.total_uploaded)) .replace("%2", window.qBittorrent.Misc.friendlyUnit(data.total_uploaded_session)); - $('total_uploaded').set('html', totalUploaded); + $("total_uploaded").textContent = totalUploaded; const dlSpeed = "QBT_TR(%1 (%2 avg.))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", window.qBittorrent.Misc.friendlyUnit(data.dl_speed, true)) .replace("%2", window.qBittorrent.Misc.friendlyUnit(data.dl_speed_avg, true)); - $('dl_speed').set('html', dlSpeed); + $("dl_speed").textContent = dlSpeed; const upSpeed = "QBT_TR(%1 (%2 avg.))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", window.qBittorrent.Misc.friendlyUnit(data.up_speed, true)) .replace("%2", window.qBittorrent.Misc.friendlyUnit(data.up_speed_avg, true)); - $('up_speed').set('html', upSpeed); + $("up_speed").textContent = upSpeed; const dlLimit = (data.dl_limit === -1) ? "∞" : window.qBittorrent.Misc.friendlyUnit(data.dl_limit, true); - $('dl_limit').set('html', dlLimit); + $("dl_limit").textContent = dlLimit; const upLimit = (data.up_limit === -1) ? "∞" : window.qBittorrent.Misc.friendlyUnit(data.up_limit, true); - $('up_limit').set('html', upLimit); + $("up_limit").textContent = upLimit; - $('total_wasted').set('html', window.qBittorrent.Misc.friendlyUnit(data.total_wasted)); + $("total_wasted").textContent = window.qBittorrent.Misc.friendlyUnit(data.total_wasted); const seeds = "QBT_TR(%1 (%2 total))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", data.seeds) .replace("%2", data.seeds_total); - $('seeds').set('html', seeds); + $("seeds").textContent = seeds; const peers = "QBT_TR(%1 (%2 total))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", data.peers) .replace("%2", data.peers_total); - $('peers').set('html', peers); + $("peers").textContent = peers; - $('share_ratio').set('html', data.share_ratio.toFixed(2)); + $("share_ratio").textContent = data.share_ratio.toFixed(2); - $('popularity').set('html', data.popularity.toFixed(2)); + $("popularity").textContent = data.popularity.toFixed(2); - $('reannounce').set('html', window.qBittorrent.Misc.friendlyDuration(data.reannounce)); + $("reannounce").textContent = window.qBittorrent.Misc.friendlyDuration(data.reannounce); const lastSeen = (data.last_seen >= 0) ? new Date(data.last_seen * 1000).toLocaleString() : "QBT_TR(Never)QBT_TR[CONTEXT=PropertiesWidget]"; - $('last_seen').set('html', lastSeen); + $("last_seen").textContent = lastSeen; const totalSize = (data.total_size >= 0) ? window.qBittorrent.Misc.friendlyUnit(data.total_size) : ""; - $('total_size').set('html', totalSize); + $("total_size").textContent = totalSize; const pieces = (data.pieces_num >= 0) ? "QBT_TR(%1 x %2 (have %3))QBT_TR[CONTEXT=PropertiesWidget]" .replace("%1", data.pieces_num) .replace("%2", window.qBittorrent.Misc.friendlyUnit(data.piece_size)) .replace("%3", data.pieces_have) - : ''; - $('pieces').set('html', pieces); + : ""; + $("pieces").textContent = pieces; - $('created_by').set('text', data.created_by); + $("created_by").textContent = data.created_by; const additionDate = (data.addition_date >= 0) ? new Date(data.addition_date * 1000).toLocaleString() : "QBT_TR(Unknown)QBT_TR[CONTEXT=HttpServer]"; - $('addition_date').set('html', additionDate); + $("addition_date").textContent = additionDate; const completionDate = (data.completion_date >= 0) ? new Date(data.completion_date * 1000).toLocaleString() : ""; - $('completion_date').set('html', completionDate); + $("completion_date").textContent = completionDate; const creationDate = (data.creation_date >= 0) ? new Date(data.creation_date * 1000).toLocaleString() : ""; - $('creation_date').set('html', creationDate); + $("creation_date").textContent = creationDate; const torrentHashV1 = (data.infohash_v1 !== "") ? data.infohash_v1 : "QBT_TR(N/A)QBT_TR[CONTEXT=PropertiesWidget]"; - $('torrent_hash_v1').set('html', torrentHashV1); + $("torrent_hash_v1").textContent = torrentHashV1; const torrentHashV2 = (data.infohash_v2 !== "") ? data.infohash_v2 : "QBT_TR(N/A)QBT_TR[CONTEXT=PropertiesWidget]"; - $('torrent_hash_v2').set('html', torrentHashV2); + $("torrent_hash_v2").textContent = torrentHashV2; - $('save_path').set('html', data.save_path); + $("save_path").textContent = data.save_path; - $('comment').set('html', window.qBittorrent.Misc.parseHtmlLinks(window.qBittorrent.Misc.escapeHtml(data.comment))); + $("comment").innerHTML = window.qBittorrent.Misc.parseHtmlLinks(window.qBittorrent.Misc.escapeHtml(data.comment)); + + $("private").textContent = (data.has_metadata + ? (data.private + ? "QBT_TR(Yes)QBT_TR[CONTEXT=PropertiesWidget]" + : "QBT_TR(No)QBT_TR[CONTEXT=PropertiesWidget]") + : "QBT_TR(N/A)QBT_TR[CONTEXT=PropertiesWidget]"); } else { clearData(); } clearTimeout(loadTorrentDataTimer); loadTorrentDataTimer = loadTorrentData.delay(5000); - } - }).send(); + }); - const piecesUrl = new URI('api/v2/torrents/pieceStates?hash=' + current_id); - new Request.JSON({ - url: piecesUrl, - method: 'get', - noCache: true, - onFailure: function() { - $('error_div').set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]'); - clearTimeout(loadTorrentDataTimer); - loadTorrentDataTimer = loadTorrentData.delay(10000); - }, - onSuccess: function(data) { - $('error_div').set('html', ''); + const pieceStatesURL = new URL("api/v2/torrents/pieceStates", window.location); + pieceStatesURL.search = new URLSearchParams({ + hash: current_id + }); + fetch(pieceStatesURL, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) { + $("error_div").textContent = "QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]"; + clearTimeout(loadTorrentDataTimer); + loadTorrentDataTimer = loadTorrentData.delay(10000); + return; + } - if (data) { + $("error_div").textContent = ""; + + const data = await response.json(); + if (data) piecesBar.setPieces(data); - } - else { + else clearData(); - } + clearTimeout(loadTorrentDataTimer); loadTorrentDataTimer = loadTorrentData.delay(5000); - } - }).send(); + }); }; - const updateData = function() { + const updateData = () => { clearTimeout(loadTorrentDataTimer); + loadTorrentDataTimer = -1; loadTorrentData(); }; + const clear = () => { + clearData(); + }; + return exports(); })(); - Object.freeze(window.qBittorrent.PropGeneral); diff --git a/src/webui/www/private/scripts/prop-peers.js b/src/webui/www/private/scripts/prop-peers.js index f9679783b..8ccb2cbd1 100644 --- a/src/webui/www/private/scripts/prop-peers.js +++ b/src/webui/www/private/scripts/prop-peers.js @@ -26,27 +26,27 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PropPeers = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.PropPeers ??= (() => { + const exports = () => { return { - updateData: updateData + updateData: updateData, + clear: clear }; }; const torrentPeersTable = new window.qBittorrent.DynamicTable.TorrentPeersTable(); - let loadTorrentPeersTimer; + let loadTorrentPeersTimer = -1; let syncTorrentPeersLastResponseId = 0; let show_flags = true; - const loadTorrentPeersData = function() { - if ($('prop_peers').hasClass('invisible') - || $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + const loadTorrentPeersData = () => { + if (document.hidden) + return; + if ($("propPeers").classList.contains("invisible") + || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) { syncTorrentPeersLastResponseId = 0; torrentPeersTable.clear(); return; @@ -56,130 +56,141 @@ window.qBittorrent.PropPeers = (function() { syncTorrentPeersLastResponseId = 0; torrentPeersTable.clear(); clearTimeout(loadTorrentPeersTimer); - loadTorrentPeersTimer = loadTorrentPeersData.delay(window.qBittorrent.Client.getSyncMainDataInterval()); return; } - const url = new URI('api/v2/sync/torrentPeers'); - url.setData('rid', syncTorrentPeersLastResponseId); - url.setData('hash', current_hash); - new Request.JSON({ - url: url, - method: 'get', - noCache: true, - onComplete: function() { - clearTimeout(loadTorrentPeersTimer); - loadTorrentPeersTimer = loadTorrentPeersData.delay(window.qBittorrent.Client.getSyncMainDataInterval()); - }, - onSuccess: function(response) { - $('error_div').set('html', ''); - if (response) { - const full_update = (response['full_update'] === true); + const url = new URL("api/v2/sync/torrentPeers", window.location); + url.search = new URLSearchParams({ + hash: current_hash, + rid: syncTorrentPeersLastResponseId, + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const responseJSON = await response.json(); + + $("error_div").textContent = ""; + if (responseJSON) { + const full_update = (responseJSON["full_update"] === true); if (full_update) torrentPeersTable.clear(); - if (response['rid']) - syncTorrentPeersLastResponseId = response['rid']; - if (response['peers']) { - for (const key in response['peers']) { - response['peers'][key]['rowId'] = key; + if (responseJSON["rid"]) + syncTorrentPeersLastResponseId = responseJSON["rid"]; + if (responseJSON["peers"]) { + for (const key in responseJSON["peers"]) { + if (!Object.hasOwn(responseJSON["peers"], key)) + continue; - torrentPeersTable.updateRowData(response['peers'][key]); + responseJSON["peers"][key]["rowId"] = key; + torrentPeersTable.updateRowData(responseJSON["peers"][key]); } } - if (response['peers_removed']) { - response['peers_removed'].each(function(hash) { + if (responseJSON["peers_removed"]) { + responseJSON["peers_removed"].each((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'); + if (responseJSON["show_flags"]) { + if (show_flags !== responseJSON["show_flags"]) { + show_flags = responseJSON["show_flags"]; + torrentPeersTable.columns["country"].force_hide = !show_flags; + torrentPeersTable.updateColumn("country"); } } } else { torrentPeersTable.clear(); } - } - }).send(); + + }) + .finally(() => { + clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersTimer = loadTorrentPeersData.delay(window.qBittorrent.Client.getSyncMainDataInterval()); + }); }; - const updateData = function() { + const updateData = () => { clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersTimer = -1; loadTorrentPeersData(); }; + const clear = () => { + torrentPeersTable.clear(); + }; + const torrentPeersContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ - targets: '#torrentPeersTableDiv', - menu: 'torrentPeersMenu', + targets: "#torrentPeersTableDiv", + menu: "torrentPeersMenu", actions: { - addPeer: function(element, ref) { + addPeer: (element, ref) => { const hash = torrentsTable.getCurrentTorrentID(); if (!hash) return; new MochaUI.Window({ - id: 'addPeersPage', + id: "addPeersPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog]", - loadMethod: 'iframe', - contentURL: 'addpeers.html?hash=' + hash, + loadMethod: "iframe", + contentURL: `addpeers.html?hash=${hash}`, scrollbars: false, resizable: false, maximizable: false, paddingVertical: 0, paddingHorizontal: 0, width: 350, - height: 240 + height: 260 }); }, - banPeer: function(element, ref) { + banPeer: (element, ref) => { const selectedPeers = torrentPeersTable.selectedRowsIds(); if (selectedPeers.length === 0) return; - if (confirm('QBT_TR(Are you sure you want to permanently ban the selected peers?)QBT_TR[CONTEXT=PeerListWidget]')) { - new Request({ - url: 'api/v2/transfer/banPeers', - method: 'post', - data: { + if (confirm("QBT_TR(Are you sure you want to permanently ban the selected peers?)QBT_TR[CONTEXT=PeerListWidget]")) { + fetch("api/v2/transfer/banPeers", { + method: "POST", + body: new URLSearchParams({ hash: torrentsTable.getCurrentTorrentID(), - peers: selectedPeers.join('|') - } - }).send(); + peers: selectedPeers.join("|") + }) + }); } } }, offsets: { - x: -15, + x: 0, y: 2 }, onShow: function() { const selectedPeers = torrentPeersTable.selectedRowsIds(); if (selectedPeers.length >= 1) { - this.showItem('copyPeer'); - this.showItem('banPeer'); + this.showItem("copyPeer"); + this.showItem("banPeer"); } else { - this.hideItem('copyPeer'); - this.hideItem('banPeer'); + this.hideItem("copyPeer"); + this.hideItem("banPeer"); } } }); - new ClipboardJS('#CopyPeerInfo', { - text: function(trigger) { + new ClipboardJS("#CopyPeerInfo", { + text: (trigger) => { return torrentPeersTable.selectedRowsIds().join("\n"); } }); - torrentPeersTable.setup('torrentPeersTableDiv', 'torrentPeersTableFixedHeaderDiv', torrentPeersContextMenu); + torrentPeersTable.setup("torrentPeersTableDiv", "torrentPeersTableFixedHeaderDiv", torrentPeersContextMenu, true); return exports(); })(); - Object.freeze(window.qBittorrent.PropPeers); diff --git a/src/webui/www/private/scripts/prop-trackers.js b/src/webui/www/private/scripts/prop-trackers.js index e27857ffd..e75709724 100644 --- a/src/webui/www/private/scripts/prop-trackers.js +++ b/src/webui/www/private/scripts/prop-trackers.js @@ -26,27 +26,27 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PropTrackers = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.PropTrackers ??= (() => { + const exports = () => { return { - updateData: updateData + updateData: updateData, + clear: clear }; }; let current_hash = ""; const torrentTrackersTable = new window.qBittorrent.DynamicTable.TorrentTrackersTable(); - let loadTrackersDataTimer; + let loadTrackersDataTimer = -1; - const loadTrackersData = function() { - if ($('prop_trackers').hasClass('invisible') - || $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + const loadTrackersData = () => { + if (document.hidden) + return; + if ($("propTrackers").classList.contains("invisible") + || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) { // Tab changed, don't do anything return; } @@ -54,28 +54,31 @@ window.qBittorrent.PropTrackers = (function() { if (new_hash === "") { torrentTrackersTable.clear(); clearTimeout(loadTrackersDataTimer); - loadTrackersDataTimer = loadTrackersData.delay(10000); return; } if (new_hash !== current_hash) { torrentTrackersTable.clear(); current_hash = new_hash; } - const url = new URI('api/v2/torrents/trackers?hash=' + current_hash); - new Request.JSON({ - url: url, - method: 'get', - noCache: true, - onComplete: function() { - clearTimeout(loadTrackersDataTimer); - loadTrackersDataTimer = loadTrackersData.delay(10000); - }, - onSuccess: function(trackers) { + + const url = new URL("api/v2/torrents/trackers", window.location); + url.search = new URLSearchParams({ + hash: current_hash + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + const selectedTrackers = torrentTrackersTable.selectedRowsIds(); torrentTrackersTable.clear(); + const trackers = await response.json(); if (trackers) { - trackers.each(function(tracker) { + trackers.each((tracker) => { let status; switch (tracker.status) { case 0: @@ -104,74 +107,81 @@ window.qBittorrent.PropTrackers = (function() { seeds: (tracker.num_seeds >= 0) ? tracker.num_seeds : "QBT_TR(N/A)QBT_TR[CONTEXT=TrackerListWidget]", leeches: (tracker.num_leeches >= 0) ? tracker.num_leeches : "QBT_TR(N/A)QBT_TR[CONTEXT=TrackerListWidget]", downloaded: (tracker.num_downloaded >= 0) ? tracker.num_downloaded : "QBT_TR(N/A)QBT_TR[CONTEXT=TrackerListWidget]", - message: tracker.msg + message: tracker.msg, + _sortable: !tracker.url.startsWith("** [") }; torrentTrackersTable.updateRowData(row); }); torrentTrackersTable.updateTable(false); - torrentTrackersTable.altRow(); if (selectedTrackers.length > 0) torrentTrackersTable.reselectRows(selectedTrackers); } - } - }).send(); + }) + .finally(() => { + clearTimeout(loadTrackersDataTimer); + loadTrackersDataTimer = loadTrackersData.delay(10000); + }); }; - const updateData = function() { + const updateData = () => { clearTimeout(loadTrackersDataTimer); + loadTrackersDataTimer = -1; loadTrackersData(); }; const torrentTrackersContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ - targets: '#torrentTrackersTableDiv', - menu: 'torrentTrackersMenu', + targets: "#torrentTrackersTableDiv", + menu: "torrentTrackersMenu", actions: { - AddTracker: function(element, ref) { + AddTracker: (element, ref) => { addTrackerFN(); }, - EditTracker: function(element, ref) { - // only allow editing of one row - element.firstChild.click(); + EditTracker: (element, ref) => { editTrackerFN(element); }, - RemoveTracker: function(element, ref) { + RemoveTracker: (element, ref) => { removeTrackerFN(element); } }, offsets: { - x: -15, + x: 0, y: 2 }, onShow: function() { const selectedTrackers = torrentTrackersTable.selectedRowsIds(); - const containsStaticTracker = selectedTrackers.some(function(tracker) { - return (tracker.indexOf("** [") === 0); + const containsStaticTracker = selectedTrackers.some((tracker) => { + return tracker.startsWith("** ["); }); if (containsStaticTracker || (selectedTrackers.length === 0)) { - this.hideItem('EditTracker'); - this.hideItem('RemoveTracker'); - this.hideItem('CopyTrackerUrl'); + this.hideItem("EditTracker"); + this.hideItem("RemoveTracker"); + this.hideItem("CopyTrackerUrl"); } else { - this.showItem('EditTracker'); - this.showItem('RemoveTracker'); - this.showItem('CopyTrackerUrl'); + if (selectedTrackers.length === 1) + this.showItem("EditTracker"); + else + this.hideItem("EditTracker"); + + this.showItem("RemoveTracker"); + this.showItem("CopyTrackerUrl"); } } }); - const addTrackerFN = function() { + const addTrackerFN = () => { if (current_hash.length === 0) return; new MochaUI.Window({ - id: 'trackersPage', + id: "trackersPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Add trackers)QBT_TR[CONTEXT=TrackersAdditionDialog]", - loadMethod: 'iframe', - contentURL: 'addtrackers.html?hash=' + current_hash, + loadMethod: "iframe", + contentURL: `addtrackers.html?hash=${current_hash}`, scrollbars: true, resizable: false, maximizable: false, @@ -179,23 +189,24 @@ window.qBittorrent.PropTrackers = (function() { paddingVertical: 0, paddingHorizontal: 0, width: 500, - height: 250, - onCloseComplete: function() { + height: 260, + onCloseComplete: () => { updateData(); } }); }; - const editTrackerFN = function(element) { + const editTrackerFN = (element) => { if (current_hash.length === 0) return; - const trackerUrl = encodeURIComponent(element.childNodes[1].innerText); + const trackerUrl = encodeURIComponent(torrentTrackersTable.selectedRowsIds()[0]); new MochaUI.Window({ - id: 'trackersPage', + id: "trackersPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]", - loadMethod: 'iframe', - contentURL: 'edittracker.html?hash=' + current_hash + '&url=' + trackerUrl, + loadMethod: "iframe", + contentURL: `edittracker.html?hash=${current_hash}&url=${trackerUrl}`, scrollbars: true, resizable: false, maximizable: false, @@ -204,39 +215,43 @@ window.qBittorrent.PropTrackers = (function() { paddingHorizontal: 0, width: 500, height: 150, - onCloseComplete: function() { + onCloseComplete: () => { updateData(); } }); }; - const removeTrackerFN = function(element) { + const removeTrackerFN = (element) => { if (current_hash.length === 0) return; - const selectedTrackers = torrentTrackersTable.selectedRowsIds(); - new Request({ - url: 'api/v2/torrents/removeTrackers', - method: 'post', - data: { - hash: current_hash, - urls: selectedTrackers.join("|") - }, - onSuccess: function() { + fetch("api/v2/torrents/removeTrackers", { + method: "POST", + body: new URLSearchParams({ + hash: current_hash, + urls: torrentTrackersTable.selectedRowsIds().map(encodeURIComponent).join("|") + }) + }) + .then((response) => { + if (!response.ok) + return; + updateData(); - } - }).send(); + }); }; - new ClipboardJS('#CopyTrackerUrl', { - text: function(trigger) { + const clear = () => { + torrentTrackersTable.clear(); + }; + + new ClipboardJS("#CopyTrackerUrl", { + text: (trigger) => { return torrentTrackersTable.selectedRowsIds().join("\n"); } }); - torrentTrackersTable.setup('torrentTrackersTableDiv', 'torrentTrackersTableFixedHeaderDiv', torrentTrackersContextMenu); + torrentTrackersTable.setup("torrentTrackersTableDiv", "torrentTrackersTableFixedHeaderDiv", torrentTrackersContextMenu, true); return exports(); })(); - Object.freeze(window.qBittorrent.PropTrackers); diff --git a/src/webui/www/private/scripts/prop-webseeds.js b/src/webui/www/private/scripts/prop-webseeds.js index d2bacaef9..7fd517597 100644 --- a/src/webui/www/private/scripts/prop-webseeds.js +++ b/src/webui/www/private/scripts/prop-webseeds.js @@ -26,129 +26,207 @@ * exception statement from your version. */ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.PropWebseeds = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.PropWebseeds ??= (() => { + const exports = () => { return { - updateData: updateData + updateData: updateData, + clear: clear }; }; - const webseedsDynTable = new Class({ - - initialize: function() {}, - - setup: function(table) { - this.table = $(table); - this.rows = new Hash(); - }, - - removeRow: function(url) { - if (this.rows.has(url)) { - this.rows.get(url).destroy(); - this.rows.erase(url); - return true; - } - return false; - }, - - removeAllRows: function() { - this.rows.each(function(tr, url) { - this.removeRow(url); - }.bind(this)); - }, - - updateRow: function(tr, row) { - const tds = tr.getElements('td'); - for (let i = 0; i < row.length; ++i) { - tds[i].set('html', row[i]); - } - return true; - }, - - insertRow: function(row) { - const url = row[0]; - if (this.rows.has(url)) { - const tableRow = this.rows.get(url); - this.updateRow(tableRow, row); - return; - } - //this.removeRow(id); - const tr = new Element('tr'); - this.rows.set(url, tr); - for (let i = 0; i < row.length; ++i) { - const td = new Element('td'); - td.set('html', row[i]); - td.injectInside(tr); - } - tr.injectInside(this.table); - }, - }); + const torrentWebseedsTable = new window.qBittorrent.DynamicTable.TorrentWebseedsTable(); let current_hash = ""; - let loadWebSeedsDataTimer; - const loadWebSeedsData = function() { - if ($('prop_webseeds').hasClass('invisible') - || $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + let loadWebSeedsDataTimer = -1; + const loadWebSeedsData = () => { + if (document.hidden) + return; + if ($("propWebSeeds").classList.contains("invisible") + || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) { // Tab changed, don't do anything return; } const new_hash = torrentsTable.getCurrentTorrentID(); if (new_hash === "") { - wsTable.removeAllRows(); + torrentWebseedsTable.clear(); clearTimeout(loadWebSeedsDataTimer); - loadWebSeedsDataTimer = loadWebSeedsData.delay(10000); return; } if (new_hash !== current_hash) { - wsTable.removeAllRows(); + torrentWebseedsTable.clear(); current_hash = new_hash; } - const url = new URI('api/v2/torrents/webseeds?hash=' + current_hash); - new Request.JSON({ - url: url, - method: 'get', - noCache: true, - onFailure: function() { - $('error_div').set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR[CONTEXT=HttpServer]'); - clearTimeout(loadWebSeedsDataTimer); - loadWebSeedsDataTimer = loadWebSeedsData.delay(20000); - }, - onSuccess: function(webseeds) { - $('error_div').set('html', ''); + + const url = new URL("api/v2/torrents/webseeds", window.location); + url.search = new URLSearchParams({ + hash: current_hash + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const selectedWebseeds = torrentWebseedsTable.selectedRowsIds(); + torrentWebseedsTable.clear(); + + const webseeds = await response.json(); if (webseeds) { // Update WebSeeds data - webseeds.each(function(webseed) { - const row = []; - row.length = 1; - row[0] = webseed.url; - wsTable.insertRow(row); + webseeds.each((webseed) => { + torrentWebseedsTable.updateRowData({ + rowId: webseed.url, + url: webseed.url, + }); }); } - else { - wsTable.removeAllRows(); - } + + torrentWebseedsTable.updateTable(false); + + if (selectedWebseeds.length > 0) + torrentWebseedsTable.reselectRows(selectedWebseeds); + }) + .finally(() => { clearTimeout(loadWebSeedsDataTimer); loadWebSeedsDataTimer = loadWebSeedsData.delay(10000); - } - }).send(); + }); }; - const updateData = function() { + const updateData = () => { clearTimeout(loadWebSeedsDataTimer); + loadWebSeedsDataTimer = -1; loadWebSeedsData(); }; - const wsTable = new webseedsDynTable(); - wsTable.setup($('webseedsTable')); + const torrentWebseedsContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ + targets: "#torrentWebseedsTableDiv", + menu: "torrentWebseedsMenu", + actions: { + AddWebSeeds: (element, ref) => { + addWebseedFN(); + }, + EditWebSeed: (element, ref) => { + // only allow editing of one row + element.firstElementChild.click(); + editWebSeedFN(element); + }, + RemoveWebSeed: (element, ref) => { + removeWebSeedFN(element); + } + }, + offsets: { + x: 0, + y: 2 + }, + onShow: function() { + const selectedWebseeds = torrentWebseedsTable.selectedRowsIds(); + + if (selectedWebseeds.length === 0) { + this.hideItem("EditWebSeed"); + this.hideItem("RemoveWebSeed"); + this.hideItem("CopyWebseedUrl"); + } + else { + if (selectedWebseeds.length === 1) + this.showItem("EditWebSeed"); + else + this.hideItem("EditWebSeed"); + + this.showItem("RemoveWebSeed"); + this.showItem("CopyWebseedUrl"); + } + } + }); + + const addWebseedFN = () => { + if (current_hash.length === 0) + return; + + new MochaUI.Window({ + id: "webseedsPage", + title: "QBT_TR(Add web seeds)QBT_TR[CONTEXT=HttpServer]", + loadMethod: "iframe", + contentURL: `addwebseeds.html?hash=${current_hash}`, + scrollbars: true, + resizable: false, + maximizable: false, + closable: true, + paddingVertical: 0, + paddingHorizontal: 0, + width: 500, + height: 260, + onCloseComplete: () => { + updateData(); + } + }); + }; + + const editWebSeedFN = (element) => { + if (current_hash.length === 0) + return; + + const selectedWebseeds = torrentWebseedsTable.selectedRowsIds(); + if (selectedWebseeds.length > 1) + return; + + const webseedUrl = selectedWebseeds[0]; + + new MochaUI.Window({ + id: "webseedsPage", + title: "QBT_TR(Web seed editing)QBT_TR[CONTEXT=PropertiesWidget]", + loadMethod: "iframe", + contentURL: `editwebseed.html?hash=${current_hash}&url=${encodeURIComponent(webseedUrl)}`, + scrollbars: true, + resizable: false, + maximizable: false, + closable: true, + paddingVertical: 0, + paddingHorizontal: 0, + width: 500, + height: 150, + onCloseComplete: () => { + updateData(); + } + }); + }; + + const removeWebSeedFN = (element) => { + if (current_hash.length === 0) + return; + + fetch("api/v2/torrents/removeWebSeeds", { + method: "POST", + body: new URLSearchParams({ + hash: current_hash, + urls: torrentWebseedsTable.selectedRowsIds().map(webseed => encodeURIComponent(webseed)).join("|") + }) + }) + .then((response) => { + if (!response.ok) + return; + + updateData(); + }); + }; + + const clear = () => { + torrentWebseedsTable.clear(); + }; + + new ClipboardJS("#CopyWebseedUrl", { + text: (trigger) => { + return torrentWebseedsTable.selectedRowsIds().join("\n"); + } + }); + + torrentWebseedsTable.setup("torrentWebseedsTableDiv", "torrentWebseedsTableFixedHeaderDiv", torrentWebseedsContextMenu, true); return exports(); })(); - Object.freeze(window.qBittorrent.PropWebseeds); diff --git a/src/webui/www/private/scripts/rename-files.js b/src/webui/www/private/scripts/rename-files.js index a1d5493c2..5087f793e 100644 --- a/src/webui/www/private/scripts/rename-files.js +++ b/src/webui/www/private/scripts/rename-files.js @@ -1,11 +1,8 @@ -'use strict'; +"use strict"; -if (window.qBittorrent === undefined) { - window.qBittorrent = {}; -} - -window.qBittorrent.MultiRename = (function() { - const exports = function() { +window.qBittorrent ??= {}; +window.qBittorrent.MultiRename ??= (() => { + const exports = () => { return { AppliesTo: AppliesTo, RenameFiles: RenameFiles @@ -13,13 +10,13 @@ window.qBittorrent.MultiRename = (function() { }; const AppliesTo = { - "FilenameExtension": "FilenameExtension", - "Filename": "Filename", - "Extension": "Extension" + FilenameExtension: "FilenameExtension", + Filename: "Filename", + Extension: "Extension" }; const RenameFiles = new Class({ - hash: '', + hash: "", selectedFiles: [], matchedFiles: [], @@ -47,10 +44,10 @@ window.qBittorrent.MultiRename = (function() { replaceAll: false, fileEnumerationStart: 0, - onChanged: function(rows) {}, - onInvalidRegex: function(err) {}, - onRenamed: function(rows) {}, - onRenameError: function(err) {}, + onChanged: (rows) => {}, + onInvalidRegex: (err) => {}, + onRenamed: (rows) => {}, + onRenameError: (response) => {}, _inner_update: function() { const findMatches = (regex, str) => { @@ -58,7 +55,7 @@ window.qBittorrent.MultiRename = (function() { let count = 0; let lastIndex = 0; regex.lastIndex = 0; - let matches = []; + const matches = []; do { result = regex.exec(str); if (result === null) @@ -68,12 +65,10 @@ window.qBittorrent.MultiRename = (function() { // regex assertions don't modify lastIndex, // so we need to explicitly break out to prevent infinite loop - if (lastIndex === regex.lastIndex) { + if (lastIndex === regex.lastIndex) break; - } - else { + else lastIndex = regex.lastIndex; - } // Maximum of 250 matches per file ++count; @@ -86,7 +81,7 @@ window.qBittorrent.MultiRename = (function() { return input.substring(0, start) + replacement + input.substring(end); }; const replaceGroup = (input, search, replacement, escape, stripEscape = true) => { - let result = ''; + let result = ""; let i = 0; while (i < input.length) { // Check if the current index contains the escape string @@ -124,18 +119,19 @@ window.qBittorrent.MultiRename = (function() { this.matchedFiles = []; // Ignore empty searches - if (!this._inner_search) { + if (!this._inner_search) return; - } // Setup regex flags let regexFlags = ""; - if (this.matchAllOccurrences) { regexFlags += "g"; } - if (!this.caseSensitive) { regexFlags += "i"; } + if (this.matchAllOccurrences) + regexFlags += "g"; + if (!this.caseSensitive) + regexFlags += "i"; // Setup regex search - const regexEscapeExp = new RegExp(/[/\-\\^$*+?.()|[\]{}]/g); - const standardSearch = new RegExp(this._inner_search.replace(regexEscapeExp, '\\$&'), regexFlags); + const regexEscapeExp = /[/\-\\^$*+?.()|[\]{}]/g; + const standardSearch = new RegExp(this._inner_search.replace(regexEscapeExp, "\\$&"), regexFlags); let regexSearch; try { regexSearch = new RegExp(this._inner_search, regexFlags); @@ -153,17 +149,17 @@ window.qBittorrent.MultiRename = (function() { const row = this.selectedFiles[i]; // Ignore files - if (!row.isFolder && !this.includeFiles) { + if (!row.isFolder && !this.includeFiles) continue; - } + // Ignore folders - else if (row.isFolder && !this.includeFolders) { + else if (row.isFolder && !this.includeFolders) continue; - } // Get file extension and reappend the "." (only when the file has an extension) let fileExtension = window.qBittorrent.Filesystem.fileExtension(row.original); - if (fileExtension) { fileExtension = "." + fileExtension; } + if (fileExtension) + fileExtension = `.${fileExtension}`; const fileNameWithoutExt = row.original.slice(0, row.original.lastIndexOf(fileExtension)); @@ -183,9 +179,8 @@ window.qBittorrent.MultiRename = (function() { break; } // Ignore rows without a match - if (!matches || (matches.length === 0)) { + if (!matches || (matches.length === 0)) continue; - } let renamed = row.original; for (let i = matches.length - 1; i >= 0; --i) { @@ -193,23 +188,26 @@ window.qBittorrent.MultiRename = (function() { let replacement = this._inner_replacement; // Replace numerical groups for (let g = 0; g < match.length; ++g) { - let group = match[g]; - if (!group) { continue; } - replacement = replaceGroup(replacement, `$${g}`, group, '\\', false); + const group = match[g]; + if (!group) + continue; + replacement = replaceGroup(replacement, `$${g}`, group, "\\", false); } // Replace named groups - for (let namedGroup in match.groups) { - replacement = replaceGroup(replacement, `$${namedGroup}`, match.groups[namedGroup], '\\', false); + for (const namedGroup in match.groups) { + if (!Object.hasOwn(match.groups, namedGroup)) + continue; + replacement = replaceGroup(replacement, `$${namedGroup}`, match.groups[namedGroup], "\\", false); } // Replace auxiliary variables - for (let v = 'dddddddd'; v !== ''; v = v.substring(1)) { - let fileCount = fileEnumeration.toString().padStart(v.length, '0'); - replacement = replaceGroup(replacement, `$${v}`, fileCount, '\\', false); + for (let v = "dddddddd"; v !== ""; v = v.substring(1)) { + const fileCount = fileEnumeration.toString().padStart(v.length, "0"); + replacement = replaceGroup(replacement, `$${v}`, fileCount, "\\", false); } // Remove empty $ variable - replacement = replaceGroup(replacement, '$', '', '\\'); + replacement = replaceGroup(replacement, "$", "", "\\"); const wholeMatch = match[0]; - const index = match['index']; + const index = match["index"]; renamed = replaceBetween(renamed, index + offset, index + offset + wholeMatch.length, replacement); } @@ -225,7 +223,7 @@ window.qBittorrent.MultiRename = (function() { return; } - let replaced = []; + const replaced = []; const _inner_rename = async function(i) { const match = this.matchedFiles[i]; const newName = match.renamed; @@ -242,21 +240,19 @@ window.qBittorrent.MultiRename = (function() { const newPath = parentPath ? parentPath + window.qBittorrent.Filesystem.PathSeparator + newName : newName; - let renameRequest = new Request({ - url: isFolder ? 'api/v2/torrents/renameFolder' : 'api/v2/torrents/renameFile', - method: 'post', - data: { - hash: this.hash, - oldPath: oldPath, - newPath: newPath - } - }); try { - await renameRequest.send(); + await fetch((isFolder ? "api/v2/torrents/renameFolder" : "api/v2/torrents/renameFile"), { + method: "POST", + body: new URLSearchParams({ + hash: this.hash, + oldPath: oldPath, + newPath: newPath + }) + }); replaced.push(match); } - catch (err) { - this.onRenameError(err, match); + catch (response) { + this.onRenameError(response, match); } }.bind(this); @@ -264,9 +260,8 @@ window.qBittorrent.MultiRename = (function() { if (this.replaceAll) { // matchedFiles are in DFS order so we rename in reverse // in order to prevent unwanted folder creation - for (let i = replacements - 1; i >= 0; --i) { + for (let i = replacements - 1; i >= 0; --i) await _inner_rename(i); - } } else { // single replacements go linearly top-down because the @@ -283,5 +278,4 @@ window.qBittorrent.MultiRename = (function() { return exports(); })(); - Object.freeze(window.qBittorrent.MultiRename); diff --git a/src/webui/www/private/scripts/search.js b/src/webui/www/private/scripts/search.js new file mode 100644 index 000000000..3dc0b454b --- /dev/null +++ b/src/webui/www/private/scripts/search.js @@ -0,0 +1,886 @@ +/* + * MIT License + * Copyright (C) 2024 Thomas Piccirello + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +"use strict"; + +window.qBittorrent ??= {}; +window.qBittorrent.Search ??= (() => { + const exports = () => { + return { + startStopSearch: startStopSearch, + manageSearchPlugins: manageSearchPlugins, + searchPlugins: searchPlugins, + searchText: searchText, + searchSeedsFilter: searchSeedsFilter, + searchSizeFilter: searchSizeFilter, + init: init, + getPlugin: getPlugin, + searchInTorrentName: searchInTorrentName, + onSearchPatternChanged: onSearchPatternChanged, + categorySelected: categorySelected, + pluginSelected: pluginSelected, + searchSeedsFilterChanged: searchSeedsFilterChanged, + searchSizeFilterChanged: searchSizeFilterChanged, + searchSizeFilterPrefixChanged: searchSizeFilterPrefixChanged, + closeSearchTab: closeSearchTab, + }; + }; + + const searchTabIdPrefix = "Search-"; + let loadSearchPluginsTimer = -1; + const searchPlugins = []; + let prevSearchPluginsResponse; + let selectedCategory = "QBT_TR(All categories)QBT_TR[CONTEXT=SearchEngineWidget]"; + let selectedPlugin = "enabled"; + let prevSelectedPlugin; + // whether the current search pattern differs from the pattern that the active search was performed with + let searchPatternChanged = false; + + let searchResultsTable; + /** @type Map **/ + const searchState = new Map(); + const searchText = { + pattern: "", + filterPattern: "" + }; + const searchSeedsFilter = { + min: 0, + max: 0 + }; + const searchSizeFilter = { + min: 0.00, + minUnit: 2, // B = 0, KiB = 1, MiB = 2, GiB = 3, TiB = 4, PiB = 5, EiB = 6 + max: 0.00, + maxUnit: 3 + }; + + const searchResultsTabsContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ + targets: ".searchTab", + menu: "searchResultsTabsMenu", + actions: { + closeTab: (tab) => { closeSearchTab(tab); }, + closeAllTabs: () => { + for (const tab of document.querySelectorAll("#searchTabs .searchTab")) + closeSearchTab(tab); + } + }, + offsets: { + x: 2, + y: -60 + }, + onShow: function() { + setActiveTab(this.options.element); + } + }); + + const init = () => { + // load "Search in" preference from local storage + $("searchInTorrentName").value = (LocalPreferences.get("search_in_filter") === "names") ? "names" : "everywhere"; + const searchResultsTableContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({ + targets: "#searchResultsTableDiv tbody tr", + menu: "searchResultsTableMenu", + actions: { + Download: downloadSearchTorrent, + OpenDescriptionUrl: openSearchTorrentDescriptionUrl + }, + offsets: { + x: 0, + y: -60 + } + }); + searchResultsTable = new window.qBittorrent.DynamicTable.SearchResultsTable(); + searchResultsTable.setup("searchResultsTableDiv", "searchResultsTableFixedHeaderDiv", searchResultsTableContextMenu); + getPlugins(); + + searchResultsTable.dynamicTableDiv.addEventListener("dblclick", (e) => { downloadSearchTorrent(); }); + + // listen for changes to searchInNameFilter + let searchInNameFilterTimer = -1; + $("searchInNameFilter").addEventListener("input", () => { + clearTimeout(searchInNameFilterTimer); + searchInNameFilterTimer = setTimeout(() => { + searchInNameFilterTimer = -1; + + const value = $("searchInNameFilter").value; + searchText.filterPattern = value; + searchFilterChanged(); + }, window.qBittorrent.Misc.FILTER_INPUT_DELAY); + }); + + document.getElementById("SearchPanel").addEventListener("keydown", (event) => { + switch (event.key) { + case "Enter": { + event.preventDefault(); + event.stopPropagation(); + + switch (event.target.id) { + case "manageSearchPlugins": + manageSearchPlugins(); + break; + case "searchPattern": + document.getElementById("startSearchButton").click(); + break; + } + + break; + } + } + }); + + // restore search tabs + const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]")); + for (const { id, pattern } of searchJobs) + createSearchTab(id, pattern); + }; + + const numSearchTabs = () => { + return document.querySelectorAll("#searchTabs li").length; + }; + + const getSearchIdFromTab = (tab) => { + return Number(tab.id.substring(searchTabIdPrefix.length)); + }; + + const createSearchTab = (searchId, pattern) => { + const newTabId = `${searchTabIdPrefix}${searchId}`; + const tabElem = document.createElement("a"); + tabElem.textContent = pattern; + + const closeTabElem = document.createElement("img"); + closeTabElem.alt = "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]"; + closeTabElem.title = "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]"; + closeTabElem.src = "images/application-exit.svg"; + closeTabElem.width = "10"; + closeTabElem.height = "10"; + closeTabElem.addEventListener("click", function(e) { + e.stopPropagation(); + closeSearchTab(this); + }); + + tabElem.prepend(closeTabElem); + tabElem.appendChild(getStatusIconElement("QBT_TR(Searching...)QBT_TR[CONTEXT=SearchJobWidget]", "images/queued.svg")); + + const listItem = document.createElement("li"); + listItem.id = newTabId; + listItem.classList.add("selected", "searchTab"); + listItem.addEventListener("click", (e) => { + setActiveTab(listItem); + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]"; + }); + listItem.appendChild(tabElem); + $("searchTabs").appendChild(listItem); + searchResultsTabsContextMenu.addTarget(listItem); + + // unhide the results elements + if (numSearchTabs() >= 1) { + $("searchResultsNoSearches").classList.add("invisible"); + $("searchResultsFilters").classList.remove("invisible"); + $("searchResultsTableContainer").classList.remove("invisible"); + $("searchTabsToolbar").classList.remove("invisible"); + } + + // select new tab + setActiveTab(listItem); + + searchResultsTable.clear(); + resetFilters(); + + searchState.set(searchId, { + searchPattern: pattern, + filterPattern: searchText.filterPattern, + seedsFilter: { min: searchSeedsFilter.min, max: searchSeedsFilter.max }, + sizeFilter: { min: searchSizeFilter.min, minUnit: searchSizeFilter.minUnit, max: searchSizeFilter.max, maxUnit: searchSizeFilter.maxUnit }, + searchIn: getSearchInTorrentName(), + rows: [], + rowId: 0, + selectedRowIds: [], + running: true, + loadResultsTimer: -1, + sort: { column: searchResultsTable.sortedColumn, reverse: searchResultsTable.reverseSort }, + }); + updateSearchResultsData(searchId); + }; + + const closeSearchTab = (el) => { + const tab = el.closest("li.searchTab"); + if (!tab) + return; + + const searchId = getSearchIdFromTab(tab); + const isTabSelected = tab.classList.contains("selected"); + const newTabToSelect = isTabSelected ? (tab.nextSibling || tab.previousSibling) : null; + + const currentSearchId = getSelectedSearchId(); + const state = searchState.get(currentSearchId); + // don't bother sending a stop request if already stopped + if (state && state.running) + stopSearch(searchId); + + tab.destroy(); + + fetch("api/v2/search/delete", { + method: "POST", + body: new URLSearchParams({ + id: searchId + }) + }); + + const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]")); + const jobIndex = searchJobs.findIndex((job) => job.id === searchId); + if (jobIndex >= 0) { + searchJobs.splice(jobIndex, 1); + LocalPreferences.set("search_jobs", JSON.stringify(searchJobs)); + } + + if (numSearchTabs() === 0) { + resetSearchState(); + resetFilters(); + + $("numSearchResultsVisible").textContent = 0; + $("numSearchResultsTotal").textContent = 0; + $("searchResultsNoSearches").classList.remove("invisible"); + $("searchResultsFilters").classList.add("invisible"); + $("searchResultsTableContainer").classList.add("invisible"); + $("searchTabsToolbar").classList.add("invisible"); + } + else if (isTabSelected && newTabToSelect) { + setActiveTab(newTabToSelect); + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]"; + } + }; + + const saveCurrentTabState = () => { + const currentSearchId = getSelectedSearchId(); + if (!currentSearchId) + return; + + const state = searchState.get(currentSearchId); + if (!state) + return; + + state.filterPattern = searchText.filterPattern; + state.seedsFilter = { + min: searchSeedsFilter.min, + max: searchSeedsFilter.max, + }; + state.sizeFilter = { + min: searchSizeFilter.min, + minUnit: searchSizeFilter.minUnit, + max: searchSizeFilter.max, + maxUnit: searchSizeFilter.maxUnit, + }; + state.searchIn = getSearchInTorrentName(); + + state.sort = { + column: searchResultsTable.sortedColumn, + reverse: searchResultsTable.reverseSort, + }; + + // we must copy the array to avoid taking a reference to it + state.selectedRowIds = [...searchResultsTable.selectedRows]; + }; + + const setActiveTab = (tab) => { + const searchId = getSearchIdFromTab(tab); + if (searchId === getSelectedSearchId()) + return; + + saveCurrentTabState(); + + MochaUI.selected(tab, "searchTabs"); + + const state = searchState.get(searchId); + let rowsToSelect = []; + + // restore table rows + searchResultsTable.clear(); + if (state) { + for (const row of state.rows) + searchResultsTable.updateRowData(row); + + rowsToSelect = state.selectedRowIds; + + // restore filters + searchText.pattern = state.searchPattern; + searchText.filterPattern = state.filterPattern; + $("searchInNameFilter").value = state.filterPattern; + + searchSeedsFilter.min = state.seedsFilter.min; + searchSeedsFilter.max = state.seedsFilter.max; + $("searchMinSeedsFilter").value = state.seedsFilter.min; + $("searchMaxSeedsFilter").value = state.seedsFilter.max; + + searchSizeFilter.min = state.sizeFilter.min; + searchSizeFilter.minUnit = state.sizeFilter.minUnit; + searchSizeFilter.max = state.sizeFilter.max; + searchSizeFilter.maxUnit = state.sizeFilter.maxUnit; + $("searchMinSizeFilter").value = state.sizeFilter.min; + $("searchMinSizePrefix").value = state.sizeFilter.minUnit; + $("searchMaxSizeFilter").value = state.sizeFilter.max; + $("searchMaxSizePrefix").value = state.sizeFilter.maxUnit; + + const currentSearchPattern = $("searchPattern").value.trim(); + if (state.running && (state.searchPattern === currentSearchPattern)) { + // allow search to be stopped + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]"; + searchPatternChanged = false; + } + + searchResultsTable.setSortedColumn(state.sort.column, state.sort.reverse); + + $("searchInTorrentName").value = state.searchIn; + } + + // must restore all filters before calling updateTable + searchResultsTable.updateTable(); + + // must reselect rows after calling updateTable + if (rowsToSelect.length > 0) + searchResultsTable.reselectRows(rowsToSelect); + + $("numSearchResultsVisible").textContent = searchResultsTable.getFilteredAndSortedRows().length; + $("numSearchResultsTotal").textContent = searchResultsTable.getRowSize(); + }; + + const getStatusIconElement = (text, image) => { + const statusIcon = document.createElement("img"); + statusIcon.alt = text; + statusIcon.title = text; + statusIcon.src = image; + statusIcon.className = "statusIcon"; + statusIcon.width = "12"; + statusIcon.height = "12"; + return statusIcon; + }; + + const updateStatusIconElement = (searchId, text, image) => { + const searchTab = $(`${searchTabIdPrefix}${searchId}`); + if (searchTab) { + const statusIcon = searchTab.querySelector(".statusIcon"); + statusIcon.alt = text; + statusIcon.title = text; + statusIcon.src = image; + } + }; + + const startSearch = (pattern, category, plugins) => { + searchPatternChanged = false; + fetch("api/v2/search/start", { + method: "POST", + body: new URLSearchParams({ + pattern: pattern, + category: category, + plugins: plugins + }) + }) + .then(async (response) => { + if (!response.ok) + return; + + const responseJSON = await response.json(); + + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]"; + const searchId = responseJSON.id; + createSearchTab(searchId, pattern); + + const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]")); + searchJobs.push({ id: searchId, pattern: pattern }); + LocalPreferences.set("search_jobs", JSON.stringify(searchJobs)); + }); + }; + + const stopSearch = (searchId) => { + fetch("api/v2/search/stop", { + method: "POST", + body: new URLSearchParams({ + id: searchId + }) + }) + .then((response) => { + if (!response.ok) + return; + + resetSearchState(searchId); + // not strictly necessary to do this when the tab is being closed, but there's no harm in it + updateStatusIconElement(searchId, "QBT_TR(Search aborted)QBT_TR[CONTEXT=SearchJobWidget]", "images/task-reject.svg"); + }); + }; + + const getSelectedSearchId = () => { + const selectedTab = $("searchTabs").querySelector("li.selected"); + return selectedTab ? getSearchIdFromTab(selectedTab) : null; + }; + + const startStopSearch = () => { + const currentSearchId = getSelectedSearchId(); + const state = searchState.get(currentSearchId); + const isSearchRunning = state && state.running; + if (!isSearchRunning || searchPatternChanged) { + const pattern = $("searchPattern").value.trim(); + const category = $("categorySelect").value; + const plugins = $("pluginsSelect").value; + + if (!pattern || !category || !plugins) + return; + + searchText.pattern = pattern; + startSearch(pattern, category, plugins); + } + else { + stopSearch(currentSearchId); + } + }; + + const openSearchTorrentDescriptionUrl = () => { + for (const rowID of searchResultsTable.selectedRowsIds()) + window.open(searchResultsTable.getRow(rowID).full_data.descrLink, "_blank"); + }; + + const copySearchTorrentName = () => { + const names = []; + searchResultsTable.selectedRowsIds().each((rowId) => { + names.push(searchResultsTable.getRow(rowId).full_data.fileName); + }); + return names.join("\n"); + }; + + const copySearchTorrentDownloadLink = () => { + const urls = []; + searchResultsTable.selectedRowsIds().each((rowId) => { + urls.push(searchResultsTable.getRow(rowId).full_data.fileUrl); + }); + return urls.join("\n"); + }; + + const copySearchTorrentDescriptionUrl = () => { + const urls = []; + searchResultsTable.selectedRowsIds().each((rowId) => { + urls.push(searchResultsTable.getRow(rowId).full_data.descrLink); + }); + return urls.join("\n"); + }; + + const downloadSearchTorrent = () => { + const urls = []; + for (const rowID of searchResultsTable.selectedRowsIds()) + urls.push(searchResultsTable.getRow(rowID).full_data.fileUrl); + + // only proceed if at least 1 row was selected + if (!urls.length) + return; + + showDownloadPage(urls); + }; + + const manageSearchPlugins = () => { + const id = "searchPlugins"; + if (!$(id)) { + new MochaUI.Window({ + id: id, + title: "QBT_TR(Search plugins)QBT_TR[CONTEXT=PluginSelectDlg]", + icon: "images/qbittorrent-tray.svg", + loadMethod: "xhr", + contentURL: "views/searchplugins.html", + scrollbars: false, + maximizable: false, + paddingVertical: 0, + paddingHorizontal: 0, + width: loadWindowWidth(id, 600), + height: loadWindowHeight(id, 360), + onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { + saveWindowSize(id); + }), + onBeforeBuild: () => { + loadSearchPlugins(); + }, + onClose: () => { + clearTimeout(loadSearchPluginsTimer); + loadSearchPluginsTimer = -1; + } + }); + } + }; + + const loadSearchPlugins = () => { + getPlugins(); + loadSearchPluginsTimer = loadSearchPlugins.delay(2000); + }; + + const onSearchPatternChanged = () => { + const currentSearchId = getSelectedSearchId(); + const state = searchState.get(currentSearchId); + const currentSearchPattern = $("searchPattern").value.trim(); + // start a new search if pattern has changed, otherwise allow the search to be stopped + if (state && (state.searchPattern === currentSearchPattern)) { + searchPatternChanged = false; + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]"; + } + else { + searchPatternChanged = true; + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]"; + } + }; + + const categorySelected = () => { + selectedCategory = $("categorySelect").value; + }; + + const pluginSelected = () => { + selectedPlugin = $("pluginsSelect").value; + + if (selectedPlugin !== prevSelectedPlugin) { + prevSelectedPlugin = selectedPlugin; + getSearchCategories(); + } + }; + + const reselectCategory = () => { + for (let i = 0; i < $("categorySelect").options.length; ++i) { + if ($("categorySelect").options[i].get("value") === selectedCategory) + $("categorySelect").options[i].selected = true; + } + + categorySelected(); + }; + + const reselectPlugin = () => { + for (let i = 0; i < $("pluginsSelect").options.length; ++i) { + if ($("pluginsSelect").options[i].get("value") === selectedPlugin) + $("pluginsSelect").options[i].selected = true; + } + + pluginSelected(); + }; + + const resetSearchState = (searchId) => { + document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]"; + const state = searchState.get(searchId); + if (state) { + state.running = false; + clearTimeout(state.loadResultsTimer); + state.loadResultsTimer = -1; + } + }; + + const getSearchCategories = () => { + const populateCategorySelect = (categories) => { + const categoryOptions = []; + + for (const category of categories) { + const option = document.createElement("option"); + option.value = category.id; + option.textContent = category.name; + categoryOptions.push(option); + }; + + // first category is "All Categories" + if (categoryOptions.length > 1) { + // add separator + const option = document.createElement("option"); + option.disabled = true; + option.textContent = "──────────"; + categoryOptions.splice(1, 0, option); + } + + $("categorySelect").replaceChildren(...categoryOptions); + }; + + const selectedPlugin = $("pluginsSelect").value; + + if ((selectedPlugin === "all") || (selectedPlugin === "enabled")) { + const uniqueCategories = {}; + for (const plugin of searchPlugins) { + if ((selectedPlugin === "enabled") && !plugin.enabled) + continue; + for (const category of plugin.supportedCategories) { + if (uniqueCategories[category.id] === undefined) + uniqueCategories[category.id] = category; + } + } + // we must sort the ids to maintain consistent order. + const categories = Object.keys(uniqueCategories).sort().map(id => uniqueCategories[id]); + populateCategorySelect(categories); + } + else { + const plugin = getPlugin(selectedPlugin); + const plugins = (plugin === null) ? [] : plugin.supportedCategories; + populateCategorySelect(plugins); + } + + reselectCategory(); + }; + + const getPlugins = () => { + fetch("api/v2/search/plugins", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const responseJSON = await response.json(); + + const createOption = (text, value, disabled = false) => { + const option = document.createElement("option"); + if (value !== undefined) + option.value = value; + option.textContent = text; + option.disabled = disabled; + return option; + }; + + if (prevSearchPluginsResponse !== responseJSON) { + prevSearchPluginsResponse = responseJSON; + searchPlugins.length = 0; + responseJSON.forEach((plugin) => { + searchPlugins.push(plugin); + }); + + const pluginOptions = []; + pluginOptions.push(createOption("QBT_TR(Only enabled)QBT_TR[CONTEXT=SearchEngineWidget]", "enabled")); + pluginOptions.push(createOption("QBT_TR(All plugins)QBT_TR[CONTEXT=SearchEngineWidget]", "all")); + + const searchPluginsEmpty = (searchPlugins.length === 0); + if (!searchPluginsEmpty) { + $("searchResultsNoPlugins").classList.add("invisible"); + if (numSearchTabs() === 0) + $("searchResultsNoSearches").classList.remove("invisible"); + + // sort plugins alphabetically + const allPlugins = searchPlugins.sort((left, right) => { + const leftName = left.fullName; + const rightName = right.fullName; + return window.qBittorrent.Misc.naturalSortCollator.compare(leftName, rightName); + }); + + allPlugins.each((plugin) => { + if (plugin.enabled === true) + pluginOptions.push(createOption(plugin.fullName, plugin.name)); + }); + + if (pluginOptions.length > 2) + pluginOptions.splice(2, 0, createOption("──────────", undefined, true)); + } + + $("pluginsSelect").replaceChildren(...pluginOptions); + + $("searchPattern").disabled = searchPluginsEmpty; + $("categorySelect").disabled = searchPluginsEmpty; + $("pluginsSelect").disabled = searchPluginsEmpty; + document.getElementById("startSearchButton").disabled = searchPluginsEmpty; + + if (window.qBittorrent.SearchPlugins !== undefined) + window.qBittorrent.SearchPlugins.updateTable(); + + reselectPlugin(); + } + }); + }; + + const getPlugin = (name) => { + for (let i = 0; i < searchPlugins.length; ++i) { + if (searchPlugins[i].name === name) + return searchPlugins[i]; + } + + return null; + }; + + const resetFilters = () => { + searchText.filterPattern = ""; + $("searchInNameFilter").value = ""; + + searchSeedsFilter.min = 0; + searchSeedsFilter.max = 0; + $("searchMinSeedsFilter").value = searchSeedsFilter.min; + $("searchMaxSeedsFilter").value = searchSeedsFilter.max; + + searchSizeFilter.min = 0.00; + searchSizeFilter.minUnit = 2; // B = 0, KiB = 1, MiB = 2, GiB = 3, TiB = 4, PiB = 5, EiB = 6 + searchSizeFilter.max = 0.00; + searchSizeFilter.maxUnit = 3; + $("searchMinSizeFilter").value = searchSizeFilter.min; + $("searchMinSizePrefix").value = searchSizeFilter.minUnit; + $("searchMaxSizeFilter").value = searchSizeFilter.max; + $("searchMaxSizePrefix").value = searchSizeFilter.maxUnit; + }; + + const getSearchInTorrentName = () => { + return ($("searchInTorrentName").value === "names") ? "names" : "everywhere"; + }; + + const searchInTorrentName = () => { + LocalPreferences.set("search_in_filter", getSearchInTorrentName()); + searchFilterChanged(); + }; + + const searchSeedsFilterChanged = () => { + searchSeedsFilter.min = $("searchMinSeedsFilter").value; + searchSeedsFilter.max = $("searchMaxSeedsFilter").value; + + searchFilterChanged(); + }; + + const searchSizeFilterChanged = () => { + searchSizeFilter.min = $("searchMinSizeFilter").value; + searchSizeFilter.minUnit = $("searchMinSizePrefix").value; + searchSizeFilter.max = $("searchMaxSizeFilter").value; + searchSizeFilter.maxUnit = $("searchMaxSizePrefix").value; + + searchFilterChanged(); + }; + + const searchSizeFilterPrefixChanged = () => { + if ((Number($("searchMinSizeFilter").value) !== 0) || (Number($("searchMaxSizeFilter").value) !== 0)) + searchSizeFilterChanged(); + }; + + const searchFilterChanged = () => { + searchResultsTable.updateTable(); + $("numSearchResultsVisible").textContent = searchResultsTable.getFilteredAndSortedRows().length; + }; + + const loadSearchResultsData = function(searchId) { + const state = searchState.get(searchId); + const url = new URL("api/v2/search/results", window.location); + url.search = new URLSearchParams({ + id: searchId, + limit: 500, + offset: state.rowId + }); + fetch(url, { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) { + if ((response.status === 400) || (response.status === 404)) { + // bad params. search id is invalid + resetSearchState(searchId); + updateStatusIconElement(searchId, "QBT_TR(An error occurred during search...)QBT_TR[CONTEXT=SearchJobWidget]", "images/error.svg"); + } + else { + clearTimeout(state.loadResultsTimer); + state.loadResultsTimer = loadSearchResultsData.delay(3000, this, searchId); + } + return; + } + + $("error_div").textContent = ""; + + const state = searchState.get(searchId); + // check if user stopped the search prior to receiving the response + if (!state.running) { + clearTimeout(state.loadResultsTimer); + updateStatusIconElement(searchId, "QBT_TR(Search aborted)QBT_TR[CONTEXT=SearchJobWidget]", "images/task-reject.svg"); + return; + } + + const responseJSON = await response.json(); + if (responseJSON) { + const state = searchState.get(searchId); + const newRows = []; + + if (responseJSON.results) { + const results = responseJSON.results; + for (let i = 0; i < results.length; ++i) { + const result = results[i]; + const row = { + rowId: state.rowId, + descrLink: result.descrLink, + fileName: result.fileName, + fileSize: result.fileSize, + fileUrl: result.fileUrl, + nbLeechers: result.nbLeechers, + nbSeeders: result.nbSeeders, + engineName: result.engineName, + siteUrl: result.siteUrl, + pubDate: result.pubDate, + }; + + newRows.push(row); + state.rows.push(row); + state.rowId += 1; + } + } + + // only update table if this search is currently being displayed + if (searchId === getSelectedSearchId()) { + for (const row of newRows) + searchResultsTable.updateRowData(row); + + $("numSearchResultsVisible").textContent = searchResultsTable.getFilteredAndSortedRows().length; + $("numSearchResultsTotal").textContent = searchResultsTable.getRowSize(); + + searchResultsTable.updateTable(); + } + + if ((responseJSON.status === "Stopped") && (state.rowId >= responseJSON.total)) { + resetSearchState(searchId); + updateStatusIconElement(searchId, "QBT_TR(Search has finished)QBT_TR[CONTEXT=SearchJobWidget]", "images/task-complete.svg"); + return; + } + } + + clearTimeout(state.loadResultsTimer); + state.loadResultsTimer = loadSearchResultsData.delay(2000, this, searchId); + }); + }; + + const updateSearchResultsData = function(searchId) { + const state = searchState.get(searchId); + clearTimeout(state.loadResultsTimer); + state.loadResultsTimer = loadSearchResultsData.delay(500, this, searchId); + }; + + new ClipboardJS(".copySearchDataToClipboard", { + text: (trigger) => { + switch (trigger.id) { + case "copySearchTorrentName": + return copySearchTorrentName(); + case "copySearchTorrentDownloadLink": + return copySearchTorrentDownloadLink(); + case "copySearchTorrentDescriptionUrl": + return copySearchTorrentDescriptionUrl(); + default: + return ""; + } + } + }); + + return exports(); +})(); +Object.freeze(window.qBittorrent.Search); diff --git a/src/webui/www/private/scripts/speedslider.js b/src/webui/www/private/scripts/speedslider.js index d93f3ef24..24544a8d1 100644 --- a/src/webui/www/private/scripts/speedslider.js +++ b/src/webui/www/private/scripts/speedslider.js @@ -26,212 +26,224 @@ * exception statement from your version. */ -'use strict'; +"use strict"; MochaUI.extend({ - addUpLimitSlider: function(hashes) { - if ($('uplimitSliderarea')) { + addUpLimitSlider: (hashes) => { + if ($("uplimitSliderarea")) { // Get global upload limit - let maximum = 500; - new Request({ - url: 'api/v2/transfer/uploadLimit', - method: 'get', - data: {}, - onSuccess: function(data) { - if (data) { - const tmp = data.toInt(); - if (tmp > 0) { - maximum = tmp / 1024.0; - } - else { - if (hashes[0] === "global") - maximum = 10000; - else - maximum = 1000; - } + fetch("api/v2/transfer/uploadLimit", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const data = await response.text(); + + let maximum = 500; + const tmp = Number(data); + if (tmp > 0) { + maximum = tmp / 1024.0; } + else { + if (hashes[0] === "global") + maximum = 10000; + else + maximum = 1000; + } + // Get torrents upload limit // And create slider - if (hashes[0] === 'global') { + if (hashes[0] === "global") { let up_limit = maximum; if (up_limit < 0) up_limit = 0; maximum = 10000; - new Slider($('uplimitSliderarea'), $('uplimitSliderknob'), { + new Slider($("uplimitSliderarea"), $("uplimitSliderknob"), { steps: maximum, offset: 0, - initialStep: up_limit.round(), - onChange: function(pos) { + initialStep: Math.round(up_limit), + onChange: (pos) => { if (pos > 0) { - $('uplimitUpdatevalue').value = pos; - $('upLimitUnit').style.visibility = "visible"; + $("uplimitUpdatevalue").value = pos; + $("upLimitUnit").style.visibility = "visible"; } else { - $('uplimitUpdatevalue').value = '∞'; - $('upLimitUnit').style.visibility = "hidden"; + $("uplimitUpdatevalue").value = "∞"; + $("upLimitUnit").style.visibility = "hidden"; } - }.bind(this) + } }); // Set default value if (up_limit === 0) { - $('uplimitUpdatevalue').value = '∞'; - $('upLimitUnit').style.visibility = "hidden"; + $("uplimitUpdatevalue").value = "∞"; + $("upLimitUnit").style.visibility = "hidden"; } else { - $('uplimitUpdatevalue').value = up_limit.round(); - $('upLimitUnit').style.visibility = "visible"; + $("uplimitUpdatevalue").value = Math.round(up_limit); + $("upLimitUnit").style.visibility = "visible"; } } else { - new Request.JSON({ - url: 'api/v2/torrents/uploadLimit', - method: 'post', - data: { - hashes: hashes.join('|') - }, - onSuccess: function(data) { - if (data) { - let up_limit = data[hashes[0]]; - for (const key in data) - if (up_limit !== data[key]) { - up_limit = 0; - break; - } - if (up_limit < 0) + fetch("api/v2/torrents/uploadLimit", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }) + .then(async (response) => { + if (!response.ok) + return; + + const data = await response.json(); + + let up_limit = data[hashes[0]]; + for (const key in data) { + if (up_limit !== data[key]) { up_limit = 0; - new Slider($('uplimitSliderarea'), $('uplimitSliderknob'), { - steps: maximum, - offset: 0, - initialStep: (up_limit / 1024.0).round(), - onChange: function(pos) { - if (pos > 0) { - $('uplimitUpdatevalue').value = pos; - $('upLimitUnit').style.visibility = "visible"; - } - else { - $('uplimitUpdatevalue').value = '∞'; - $('upLimitUnit').style.visibility = "hidden"; - } - }.bind(this) - }); - // Set default value - if (up_limit === 0) { - $('uplimitUpdatevalue').value = '∞'; - $('upLimitUnit').style.visibility = "hidden"; - } - else { - $('uplimitUpdatevalue').value = (up_limit / 1024.0).round(); - $('upLimitUnit').style.visibility = "visible"; + break; } } - } - }).send(); + if (up_limit < 0) + up_limit = 0; + new Slider($("uplimitSliderarea"), $("uplimitSliderknob"), { + steps: maximum, + offset: 0, + initialStep: Math.round(up_limit / 1024), + onChange: (pos) => { + if (pos > 0) { + $("uplimitUpdatevalue").value = pos; + $("upLimitUnit").style.visibility = "visible"; + } + else { + $("uplimitUpdatevalue").value = "∞"; + $("upLimitUnit").style.visibility = "hidden"; + } + } + }); + // Set default value + if (up_limit === 0) { + $("uplimitUpdatevalue").value = "∞"; + $("upLimitUnit").style.visibility = "hidden"; + } + else { + $("uplimitUpdatevalue").value = Math.round(up_limit / 1024); + $("upLimitUnit").style.visibility = "visible"; + } + }); } - } - }).send(); + }); } }, - addDlLimitSlider: function(hashes) { - if ($('dllimitSliderarea')) { + addDlLimitSlider: (hashes) => { + if ($("dllimitSliderarea")) { // Get global upload limit - let maximum = 500; - new Request({ - url: 'api/v2/transfer/downloadLimit', - method: 'get', - data: {}, - onSuccess: function(data) { - if (data) { - const tmp = data.toInt(); - if (tmp > 0) { - maximum = tmp / 1024.0; - } - else { - if (hashes[0] === "global") - maximum = 10000; - else - maximum = 1000; - } + fetch("api/v2/transfer/downloadLimit", { + method: "GET", + cache: "no-store" + }) + .then(async (response) => { + if (!response.ok) + return; + + const data = await response.text(); + + let maximum = 500; + const tmp = Number(data); + if (tmp > 0) { + maximum = tmp / 1024.0; } + else { + if (hashes[0] === "global") + maximum = 10000; + else + maximum = 1000; + } + // Get torrents download limit // And create slider - if (hashes[0] === 'global') { + if (hashes[0] === "global") { let dl_limit = maximum; if (dl_limit < 0) dl_limit = 0; maximum = 10000; - new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), { + new Slider($("dllimitSliderarea"), $("dllimitSliderknob"), { steps: maximum, offset: 0, - initialStep: dl_limit.round(), - onChange: function(pos) { + initialStep: Math.round(dl_limit), + onChange: (pos) => { if (pos > 0) { - $('dllimitUpdatevalue').value = pos; - $('dlLimitUnit').style.visibility = "visible"; + $("dllimitUpdatevalue").value = pos; + $("dlLimitUnit").style.visibility = "visible"; } else { - $('dllimitUpdatevalue').value = '∞'; - $('dlLimitUnit').style.visibility = "hidden"; + $("dllimitUpdatevalue").value = "∞"; + $("dlLimitUnit").style.visibility = "hidden"; } - }.bind(this) + } }); // Set default value if (dl_limit === 0) { - $('dllimitUpdatevalue').value = '∞'; - $('dlLimitUnit').style.visibility = "hidden"; + $("dllimitUpdatevalue").value = "∞"; + $("dlLimitUnit").style.visibility = "hidden"; } else { - $('dllimitUpdatevalue').value = dl_limit.round(); - $('dlLimitUnit').style.visibility = "visible"; + $("dllimitUpdatevalue").value = Math.round(dl_limit); + $("dlLimitUnit").style.visibility = "visible"; } } else { - new Request.JSON({ - url: 'api/v2/torrents/downloadLimit', - method: 'post', - data: { - hashes: hashes.join('|') - }, - onSuccess: function(data) { - if (data) { - let dl_limit = data[hashes[0]]; - for (const key in data) - if (dl_limit !== data[key]) { - dl_limit = 0; - break; - } - if (dl_limit < 0) + fetch("api/v2/torrents/downloadLimit", { + method: "POST", + body: new URLSearchParams({ + hashes: hashes.join("|") + }) + }) + .then(async (response) => { + if (!response.ok) + return; + + const data = await response.json(); + + let dl_limit = data[hashes[0]]; + for (const key in data) { + if (dl_limit !== data[key]) { dl_limit = 0; - new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), { - steps: maximum, - offset: 0, - initialStep: (dl_limit / 1024.0).round(), - onChange: function(pos) { - if (pos > 0) { - $('dllimitUpdatevalue').value = pos; - $('dlLimitUnit').style.visibility = "visible"; - } - else { - $('dllimitUpdatevalue').value = '∞'; - $('dlLimitUnit').style.visibility = "hidden"; - } - }.bind(this) - }); - // Set default value - if (dl_limit === 0) { - $('dllimitUpdatevalue').value = '∞'; - $('dlLimitUnit').style.visibility = "hidden"; - } - else { - $('dllimitUpdatevalue').value = (dl_limit / 1024.0).round(); - $('dlLimitUnit').style.visibility = "visible"; + break; } } - } - }).send(); + if (dl_limit < 0) + dl_limit = 0; + new Slider($("dllimitSliderarea"), $("dllimitSliderknob"), { + steps: maximum, + offset: 0, + initialStep: Math.round(dl_limit / 1024), + onChange: (pos) => { + if (pos > 0) { + $("dllimitUpdatevalue").value = pos; + $("dlLimitUnit").style.visibility = "visible"; + } + else { + $("dllimitUpdatevalue").value = "∞"; + $("dlLimitUnit").style.visibility = "hidden"; + } + } + }); + // Set default value + if (dl_limit === 0) { + $("dllimitUpdatevalue").value = "∞"; + $("dlLimitUnit").style.visibility = "hidden"; + } + else { + $("dllimitUpdatevalue").value = Math.round(dl_limit / 1024); + $("dlLimitUnit").style.visibility = "visible"; + } + }); } - } - }).send(); + }); } } }); diff --git a/src/webui/www/private/setlocation.html b/src/webui/www/private/setlocation.html index 2f21fe7b3..1455340df 100644 --- a/src/webui/www/private/setlocation.html +++ b/src/webui/www/private/setlocation.html @@ -1,66 +1,66 @@ - + - + QBT_TR(Set location)QBT_TR[CONTEXT=HttpServer] - + + + @@ -68,11 +68,11 @@
      -

      QBT_TR(Location)QBT_TR[CONTEXT=TransferListWidget]:

      - + +
       
      - +
      diff --git a/src/webui/www/private/shareratio.html b/src/webui/www/private/shareratio.html index c42515d1c..b106e72b8 100644 --- a/src/webui/www/private/shareratio.html +++ b/src/webui/www/private/shareratio.html @@ -1,48 +1,44 @@ - + - + QBT_TR(Torrent Upload/Download Ratio Limiting)QBT_TR[CONTEXT=UpDownRatioDialog] - + - + +
      - QBT_TR(Use global share limit)QBT_TR[CONTEXT=UpDownRatioDialog]
      - QBT_TR(Set no share limit)QBT_TR[CONTEXT=UpDownRatioDialog]
      - QBT_TR(Set share limit to)QBT_TR[CONTEXT=UpDownRatioDialog]
      +
      +
      +
      - - - + + +
      - - - + + +
      - - - + + +
      - +
      diff --git a/src/webui/www/private/upload.html b/src/webui/www/private/upload.html index ccdbc1124..d7a065a26 100644 --- a/src/webui/www/private/upload.html +++ b/src/webui/www/private/upload.html @@ -1,146 +1,152 @@ - + - + QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer] - - + + + + +
      - +
      + QBT_TR(Torrent options)QBT_TR[CONTEXT=AddNewTorrentDialog]
      - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      - - - -
      - - - -
      - - - -
      - - -
      -
      + + + - - -
      - - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - - -
      - - - - -
      + + + +
      + + + +
      + + +
      + + +
      +
      + + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + + +
      + + + + +
      @@ -150,28 +156,29 @@
      diff --git a/src/webui/www/private/uploadlimit.html b/src/webui/www/private/uploadlimit.html index 87d0db7b6..ed672cd47 100644 --- a/src/webui/www/private/uploadlimit.html +++ b/src/webui/www/private/uploadlimit.html @@ -1,82 +1,87 @@ - + - + QBT_TR(Torrent Upload Speed Limiting)QBT_TR[CONTEXT=TransferListWidget] - + + + -
      +
      -
      QBT_TR(Upload limit:)QBT_TR[CONTEXT=PropertiesWidget] QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog]
      +
      + + + QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog] +
      - +
      diff --git a/src/webui/www/private/views/about.html b/src/webui/www/private/views/about.html index 450a0a46e..cf265f585 100644 --- a/src/webui/www/private/views/about.html +++ b/src/webui/www/private/views/about.html @@ -1,58 +1,64 @@
      - QBT_TR(qBittorrent Mascot)QBT_TR[CONTEXT=AboutDialog] + QBT_TR(qBittorrent Mascot)QBT_TR[CONTEXT=AboutDialog]
      - QBT_TR(qBittorrent icon)QBT_TR[CONTEXT=AboutDialog] -

      + QBT_TR(qBittorrent icon)QBT_TR[CONTEXT=AboutDialog] +

      qBittorrent

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

      -

      Copyright © 2006-2024 The qBittorrent project

      +

      Copyright © 2006-2025 The qBittorrent project

      - - - - - - - - - - - - + + + + + + + + + + + + + +
      QBT_TR(Home Page:)QBT_TR[CONTEXT=AboutDialog]https://www.qbittorrent.org
      QBT_TR(Bug Tracker:)QBT_TR[CONTEXT=AboutDialog]https://bugs.qbittorrent.org
      QBT_TR(Forum:)QBT_TR[CONTEXT=AboutDialog]https://forum.qbittorrent.org
      QBT_TR(Home Page:)QBT_TR[CONTEXT=AboutDialog]https://www.qbittorrent.org
      QBT_TR(Bug Tracker:)QBT_TR[CONTEXT=AboutDialog]https://bugs.qbittorrent.org
      QBT_TR(Forum:)QBT_TR[CONTEXT=AboutDialog]https://forum.qbittorrent.org
      @@ -816,43 +822,45 @@ diff --git a/src/webui/www/private/views/aboutToolbar.html b/src/webui/www/private/views/aboutToolbar.html index 3d9afd0e6..3557a11e5 100644 --- a/src/webui/www/private/views/aboutToolbar.html +++ b/src/webui/www/private/views/aboutToolbar.html @@ -11,39 +11,39 @@
      diff --git a/src/webui/www/private/views/confirmAutoTMM.html b/src/webui/www/private/views/confirmAutoTMM.html new file mode 100644 index 000000000..627de10d3 --- /dev/null +++ b/src/webui/www/private/views/confirmAutoTMM.html @@ -0,0 +1,61 @@ +
      +
      + + +
      +
      +
      + + +
      + + diff --git a/src/webui/www/private/views/confirmRecheck.html b/src/webui/www/private/views/confirmRecheck.html new file mode 100644 index 000000000..d743113c1 --- /dev/null +++ b/src/webui/www/private/views/confirmRecheck.html @@ -0,0 +1,62 @@ +
      +
      + + +
      +
      +
      + + +
      + + diff --git a/src/webui/www/private/views/confirmdeletion.html b/src/webui/www/private/views/confirmdeletion.html new file mode 100644 index 000000000..80f976682 --- /dev/null +++ b/src/webui/www/private/views/confirmdeletion.html @@ -0,0 +1,100 @@ +
      +
      + + + + + + + + + +
      +
      +
      + + +
      + + diff --git a/src/webui/www/private/views/cookies.html b/src/webui/www/private/views/cookies.html new file mode 100644 index 000000000..e7e301057 --- /dev/null +++ b/src/webui/www/private/views/cookies.html @@ -0,0 +1,195 @@ + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      QBT_TR(Domain)QBT_TR[CONTEXT=CookiesDialog]QBT_TR(Path)QBT_TR[CONTEXT=CookiesDialog]QBT_TR(Name)QBT_TR[CONTEXT=CookiesDialog]QBT_TR(Value)QBT_TR[CONTEXT=CookiesDialog]QBT_TR(Expiration Date)QBT_TR[CONTEXT=CookiesDialog]
      QBT_TR(Add Cookie)QBT_TR[CONTEXT=CookiesDialog]
      + +
      + +
      +
      + + diff --git a/src/webui/www/private/views/createtorrent.html b/src/webui/www/private/views/createtorrent.html new file mode 100644 index 000000000..a85e5a57d --- /dev/null +++ b/src/webui/www/private/views/createtorrent.html @@ -0,0 +1,233 @@ + + +
      + QBT_TR(Select file/folder to share:)QBT_TR[CONTEXT=TorrentCreator] +
      + + +
      +
      +
      + QBT_TR(Settings)QBT_TR[CONTEXT=TorrentCreator] +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      +
      + + + QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      +
      +
      + QBT_TR(Fields)QBT_TR[CONTEXT=TorrentCreator] + + + + + + + + + + + + + + + + + + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      +
      + + +
      + + diff --git a/src/webui/www/private/views/filters.html b/src/webui/www/private/views/filters.html index 9b65dfa40..ef7bc88dc 100644 --- a/src/webui/www/private/views/filters.html +++ b/src/webui/www/private/views/filters.html @@ -1,55 +1,76 @@
      - + QBT_TR(Collapse/expand)QBT_TR[CONTEXT=TransferListFiltersWidget]QBT_TR(Status)QBT_TR[CONTEXT=TransferListFiltersWidget]
      - + QBT_TR(Collapse/expand)QBT_TR[CONTEXT=TransferListFiltersWidget]QBT_TR(Categories)QBT_TR[CONTEXT=TransferListFiltersWidget]
      - + QBT_TR(Collapse/expand)QBT_TR[CONTEXT=TransferListFiltersWidget]QBT_TR(Tags)QBT_TR[CONTEXT=TransferListFiltersWidget]
      - + QBT_TR(Collapse/expand)QBT_TR[CONTEXT=TransferListFiltersWidget]QBT_TR(Trackers)QBT_TR[CONTEXT=TransferListFiltersWidget]
      + + + + diff --git a/src/webui/www/private/views/installsearchplugin.html b/src/webui/www/private/views/installsearchplugin.html index 4d9ee70c0..de77a46e1 100644 --- a/src/webui/www/private/views/installsearchplugin.html +++ b/src/webui/www/private/views/installsearchplugin.html @@ -9,76 +9,82 @@ #newPluginPath { width: 100%; - line-height: 2em; }
      -

      QBT_TR(Plugin path:)QBT_TR[CONTEXT=PluginSourceDlg]

      +
      - +
      - +
      diff --git a/src/webui/www/private/views/log.html b/src/webui/www/private/views/log.html index 3442cf939..bbafca8cc 100644 --- a/src/webui/www/private/views/log.html +++ b/src/webui/www/private/views/log.html @@ -1,10 +1,15 @@ @@ -93,8 +96,8 @@ - - + +
      @@ -141,18 +144,15 @@
      diff --git a/src/webui/www/private/views/logTabs.html b/src/webui/www/private/views/logTabs.html index 7f10519e6..58b8c5544 100644 --- a/src/webui/www/private/views/logTabs.html +++ b/src/webui/www/private/views/logTabs.html @@ -1,7 +1,11 @@ diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index 17a5c77e2..07109e68e 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -1,46 +1,116 @@
      QBT_TR(Language)QBT_TR[CONTEXT=OptionsDialog] - +
      +
      + QBT_TR(Interface)QBT_TR[CONTEXT=OptionsDialog] + + +
      + +
      + QBT_TR(Transfer list)QBT_TR[CONTEXT=OptionsDialog] +
      + + +
      +
      + + +
      +
      + QBT_TR(Action on double-click)QBT_TR[CONTEXT=OptionsDialog] + + + + + + + + + + + +
      + +
      + +
      +
      +
      + + +
      +
      +
      - - + +
      - +
      - - - - - - - - - - + + + + + + + + + + + +
      QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog]
      - - -
      QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog]
      + + +
      -
      - +
      + + +
      + +
      +
      + +
      + QBT_TR(Custom WebUI settings)QBT_TR[CONTEXT=OptionsDialog] +
      + + +
      +
      + + +
      +
      - +
      - +
      @@ -70,25 +140,32 @@
      +
      + QBT_TR(When duplicate torrent is being added)QBT_TR[CONTEXT=OptionsDialog] +
      + + +
      +
      - +
      - +
      - +
      - +
      @@ -96,91 +173,99 @@
      QBT_TR(Saving Management)QBT_TR[CONTEXT=HttpServer] - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
      - - - -
      - - - -
      - - - -
      - - - -
      + + + +
      + + + +
      + + + +
      + + + +
      - +
      +
      + + +
      - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
      - - - -
      - - - - -
      - - - - -
      - - - - -
      + + + +
      + + + + +
      + + + + +
      + + + + +
      @@ -189,8 +274,8 @@ - - + + @@ -199,72 +284,76 @@
      - - + + - +
      - +
      QBT_TR(Monitored Folder)QBT_TR[CONTEXT=ScanFoldersModel]QBT_TR(Override Save Location)QBT_TR[CONTEXT=ScanFoldersModel]QBT_TR(Monitored Folder)QBT_TR[CONTEXT=ScanFoldersModel]QBT_TR(Override Save Location)QBT_TR[CONTEXT=ScanFoldersModel]
      - - - - - - - - - - - - + + + + + + + + + + + + + +
      - - - -
      - - - -
      - - - -
      + + + +
      + + + +
      + + + +
      - +
      - + - - - - - - - - + + + + + + + + + +
      - - - -
      - - - -
      + + + +
      + + + +
      - +
      @@ -273,14 +362,14 @@ QBT_TR(Run external program)QBT_TR[CONTEXT=OptionsDialog]
      - - - + + +
      - - - + + +
      QBT_TR(Supported parameters (case sensitive):)QBT_TR[CONTEXT=OptionsDialog]
        @@ -304,7 +393,7 @@ @@ -728,41 +852,43 @@
        QBT_TR(RSS Reader)QBT_TR[CONTEXT=OptionsDialog]
        - +
        - - - - - - - - - - - - + + + + + + + + + + + + + +
        - - -   QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog] -
        - - -   QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog] -
        - - - -
        + + +   QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog] +
        + + +   QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog] +
        + + + +
        QBT_TR(RSS Torrent Auto Downloader)QBT_TR[CONTEXT=OptionsDialog]
        - +
        @@ -771,7 +897,7 @@
        QBT_TR(RSS Smart Episode Filter)QBT_TR[CONTEXT=OptionsDialog]
        - +
        @@ -784,43 +910,47 @@
        QBT_TR(Web User Interface (Remote control))QBT_TR[CONTEXT=OptionsDialog] - - - - + + + + + +
        - - - - - -
        + + + + + +
        - - + +
        - + - - - - - - - - + + + + + + + + + +
        - - - -
        - - - -
        + + + +
        + + + +
        @@ -828,115 +958,129 @@
        QBT_TR(Authentication)QBT_TR[CONTEXT=OptionsDialog] - - - - - - - - + + + + + + + + + +
        - - - -
        - - - -
        + + + +
        + + + +
        - +
        - - + +
        - +
        - - - - - - - - + + + + + + + + + +
        QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
        QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog]
        - - - - + + + + + +
          QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
          QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog]
        - +
        - + +
        +
        QBT_TR(Security)QBT_TR[CONTEXT=OptionsDialog]
        - +
        - +
        - - + +
        - + - - - - + + +
        - - - -
        - - + + - +
        - +
        - + +
        +
        @@ -944,39 +1088,41 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
        - - + + - - + - - - - - - - - - - - - + + + + + + + + + + + + + +
        - - - -
        - - - -
        - - - -
        + + + +
        + + + +
        + + + +
      @@ -985,565 +1131,619 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
      QBT_TR(qBittorrent Section)QBT_TR[CONTEXT=OptionsDialog] (QBT_TR(Open documentation)QBT_TR[CONTEXT=HttpServer]) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      - - - -
      - - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - - -
      - - - -
      - - -   QBT_TR(min)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - - -
      - - - -
      - - -   QBT_TR(ms)QBT_TR[CONTEXT=OptionsDialog] -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      + + + +
      + + + +
      + + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + +   QBT_TR(min)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(min)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + +   QBT_TR(ms)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      QBT_TR(libtorrent Section)QBT_TR[CONTEXT=OptionsDialog] (QBT_TR(Open documentation)QBT_TR[CONTEXT=HttpServer]) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(s)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   % -
      - - - -
      - - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - -   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - -   % -
      - - -   % -
      - - -   s -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      - - - -
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(MiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   % +
      + + + +
      + + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   QBT_TR(KiB)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + +   QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + +   QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + +   QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog] +
      + + +   % +
      + + +   % +
      + + +   QBT_TR(sec)QBT_TR[CONTEXT=OptionsDialog] +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      + + + +
      -
      +
      diff --git a/src/webui/www/private/views/preferencesToolbar.html b/src/webui/www/private/views/preferencesToolbar.html index 84f9af312..c2ff79993 100644 --- a/src/webui/www/private/views/preferencesToolbar.html +++ b/src/webui/www/private/views/preferencesToolbar.html @@ -1,56 +1,72 @@ diff --git a/src/webui/www/private/views/properties.html b/src/webui/www/private/views/properties.html index 473221ed1..e3cb42b1b 100644 --- a/src/webui/www/private/views/properties.html +++ b/src/webui/www/private/views/properties.html @@ -1,100 +1,107 @@ -
      - - - - - -
      QBT_TR(Progress:)QBT_TR[CONTEXT=PropertiesWidget]
      + -