mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-03 21:20:24 -05:00
Compare commits
133 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41de13388c | ||
|
|
f1e42707a0 | ||
|
|
1f16f13169 | ||
|
|
ef23d40972 | ||
|
|
c1bdc3abff | ||
|
|
5cbb569b38 | ||
|
|
d4a3f0ea79 | ||
|
|
b07b43496c | ||
|
|
2ba04f1a6a | ||
|
|
b31fe2cf49 | ||
|
|
65d748fc9f | ||
|
|
ab2da15bc9 | ||
|
|
bf8bef3cd0 | ||
|
|
adbe2f3c96 | ||
|
|
dadb8ee71b | ||
|
|
7d30f12532 | ||
|
|
9c41cbd2f3 | ||
|
|
5ce9a0c17d | ||
|
|
7b2d2df299 | ||
|
|
285ff00c12 | ||
|
|
04ca95cc83 | ||
|
|
3b25a07522 | ||
|
|
14aa449c35 | ||
|
|
d88c035c23 | ||
|
|
6d2d90b1e5 | ||
|
|
e2ca39fb36 | ||
|
|
6a37780b8e | ||
|
|
146f33f38e | ||
|
|
c6c26c5de4 | ||
|
|
262cc8dbbd | ||
|
|
5bec8e99a5 | ||
|
|
2e0e6749ca | ||
|
|
c0ef18e8b3 | ||
|
|
52173804f1 | ||
|
|
2d8cf69140 | ||
|
|
e2603d74ca | ||
|
|
9df9238d56 | ||
|
|
b697165392 | ||
|
|
16bfcc27d8 | ||
|
|
be3f47539d | ||
|
|
f3fd63cd70 | ||
|
|
aafdf7620e | ||
|
|
4f3b0541eb | ||
|
|
04fb73fd4a | ||
|
|
b1a7924c75 | ||
|
|
4e618206a8 | ||
|
|
8a510331df | ||
|
|
81035964ca | ||
|
|
304cf5eda0 | ||
|
|
b987749291 | ||
|
|
cc3ad230f8 | ||
|
|
e7266db3b3 | ||
|
|
a85f39a6e4 | ||
|
|
14fdb93c07 | ||
|
|
349957b8d4 | ||
|
|
16134c6421 | ||
|
|
608d05fabc | ||
|
|
c410e1209d | ||
|
|
74aefd868a | ||
|
|
55476b6594 | ||
|
|
ad650aa6eb | ||
|
|
154d2d73ef | ||
|
|
b171f7764f | ||
|
|
30a20b549e | ||
|
|
a3cc5e244d | ||
|
|
37441f598f | ||
|
|
8bced7cdc9 | ||
|
|
35d0589f46 | ||
|
|
5c45db3d45 | ||
|
|
700d08c69d | ||
|
|
1b71c60256 | ||
|
|
8cf7d812ab | ||
|
|
627264affd | ||
|
|
674502323b | ||
|
|
34a9d751b8 | ||
|
|
5b252efcf0 | ||
|
|
6756f2ba2e | ||
|
|
3c0e89802e | ||
|
|
e55a95db39 | ||
|
|
80cd64b4ba | ||
|
|
962642b0d0 | ||
|
|
641f353c84 | ||
|
|
d598bc0a79 | ||
|
|
153041c431 | ||
|
|
582a40599a | ||
|
|
6e21f14ae9 | ||
|
|
a4540b8deb | ||
|
|
fe10c7daad | ||
|
|
cd4ee1eee9 | ||
|
|
54ec05d63e | ||
|
|
da7a74ee58 | ||
|
|
72d08f60b2 | ||
|
|
4e6878972e | ||
|
|
f5efa5e93d | ||
|
|
179f765ca0 | ||
|
|
6a8f78ec23 | ||
|
|
f46e669eeb | ||
|
|
1c3188a3bb | ||
|
|
a7fe030557 | ||
|
|
dacadfc59e | ||
|
|
aa01855ac3 | ||
|
|
2d9b91eff5 | ||
|
|
d2c6c6e564 | ||
|
|
a11a4d1aee | ||
|
|
ad43a18f59 | ||
|
|
b1a9ff708c | ||
|
|
97a01b302f | ||
|
|
c22a73a98d | ||
|
|
bc9a7a0eb7 | ||
|
|
b35a737d97 | ||
|
|
760364d4c7 | ||
|
|
e4ff047c6e | ||
|
|
833219d5e5 | ||
|
|
eed1ab3ce3 | ||
|
|
c9a427bf8b | ||
|
|
6b4d7bde71 | ||
|
|
96442a3578 | ||
|
|
60e1dfb380 | ||
|
|
deaa150ab4 | ||
|
|
ca649a31a4 | ||
|
|
a2e514c10d | ||
|
|
0577a64ae3 | ||
|
|
1a69842871 | ||
|
|
992c6c71b0 | ||
|
|
bad0914e3c | ||
|
|
8495a234e8 | ||
|
|
3faa6577df | ||
|
|
f398d2a0d8 | ||
|
|
335ae82a3d | ||
|
|
4ac15880db | ||
|
|
fd5c2795b1 | ||
|
|
47c71422bc | ||
|
|
bfb7fd92b0 |
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
@@ -1,6 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
8
.github/renovate.json
vendored
8
.github/renovate.json
vendored
@@ -7,20 +7,18 @@
|
||||
"schedule": [
|
||||
"before 8am on Monday"
|
||||
],
|
||||
"ignorePaths": [
|
||||
".github/workflows/**"
|
||||
],
|
||||
"pip_requirements": {
|
||||
"fileMatch": [
|
||||
"requirements.txt",
|
||||
"tests/requirements.txt",
|
||||
"builder/requirements.txt",
|
||||
"builder/release-requirements.txt",
|
||||
"builder/osx/requirements.txt"
|
||||
"builder/release-requirements.txt"
|
||||
]
|
||||
},
|
||||
"ignoreDeps": [
|
||||
"jaraco.text",
|
||||
"jaraco.context",
|
||||
"jaraco.collections",
|
||||
"sabctools",
|
||||
"werkzeug",
|
||||
"pyinstaller"
|
||||
|
||||
79
.github/workflows/build_release.yml
vendored
79
.github/workflows/build_release.yml
vendored
@@ -12,21 +12,15 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.12 (64bit)
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
architecture: "x64"
|
||||
- name: Cache Python virtualenv (64bit)
|
||||
uses: syphar/restore-virtualenv@v1.3
|
||||
id: cache-virtualenv-64bit
|
||||
with:
|
||||
custom_virtualenv_dir: "venv64"
|
||||
custom_cache_key_element: "release"
|
||||
requirement_files: "**/requirements.txt"
|
||||
cache: pip
|
||||
cache-dependency-path: "**/requirements.txt"
|
||||
- name: Install Python dependencies (64bit)
|
||||
if: steps.cache-virtualenv-64bit.outputs.cache-hit != 'true'
|
||||
# Without dependencies to make sure everything is covered in the requirements.txt
|
||||
run: |
|
||||
python --version
|
||||
@@ -36,29 +30,23 @@ jobs:
|
||||
- name: Build Windows standalone binary and installer (64bit)
|
||||
run: python builder/package.py installer
|
||||
- name: Upload Windows standalone binary (64bit)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: "*-win64-bin.zip"
|
||||
name: Windows standalone binary (64bit)
|
||||
- name: Upload Windows installer (64bit)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: "*-win-setup.exe"
|
||||
name: Windows installer
|
||||
- name: Set up Python 3.8 (32bit and legacy)
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.8"
|
||||
architecture: "x86"
|
||||
- name: Cache Python virtualenv (32bit and legacy)
|
||||
uses: syphar/restore-virtualenv@v1.3
|
||||
id: cache-virtualenv-32bit
|
||||
with:
|
||||
custom_virtualenv_dir: "venv32"
|
||||
custom_cache_key_element: "release"
|
||||
requirement_files: "**/requirements.txt"
|
||||
cache: pip
|
||||
cache-dependency-path: "**/requirements.txt"
|
||||
- name: Install Python dependencies (32bit and legacy)
|
||||
if: steps.cache-virtualenv-32bit.outputs.cache-hit != 'true'
|
||||
# We do not care about the extra dependencies for the legacy build
|
||||
run: |
|
||||
python --version
|
||||
@@ -68,61 +56,52 @@ jobs:
|
||||
- name: Build Windows standalone binary (32bit and legacy)
|
||||
run: python builder/package.py binary
|
||||
- name: Upload Windows standalone binary (32bit and legacy)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: "*-win32-bin.zip"
|
||||
name: Windows standalone binary (32bit and legacy)
|
||||
|
||||
build_macos:
|
||||
name: Build macOS binary
|
||||
runs-on: macos-11
|
||||
runs-on: macos-14
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
# We need the official Python, because the GA ones only support newer macOS versions
|
||||
# The deployment target is picked up by the Python build tools automatically
|
||||
# If updated, make sure to also set LSMinimumSystemVersion in SABnzbd.spec
|
||||
PYTHON_VERSION: "3.12.2"
|
||||
PYTHON_VERSION: "3.12.3"
|
||||
MACOSX_DEPLOYMENT_TARGET: "10.9"
|
||||
# We need to force compile for universal2 support
|
||||
CFLAGS: -arch x86_64 -arch arm64
|
||||
ARCHFLAGS: -arch x86_64 -arch arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.12
|
||||
# Only use this for the caching of pip packages!
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
cache: pip
|
||||
cache-dependency-path: "**/requirements.txt"
|
||||
- name: Cache Python download
|
||||
id: cache-python-download
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/python.pkg
|
||||
key: cache-macOS-Python-${{ env.PYTHON_VERSION }}
|
||||
- name: Get Python
|
||||
- name: Get Python from python.org
|
||||
if: steps.cache-python-download.outputs.cache-hit != 'true'
|
||||
run: curl https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}-macos11.pkg -o ~/python.pkg
|
||||
- name: Install Python
|
||||
run: sudo installer -pkg ~/python.pkg -target /
|
||||
- name: Cache Python virtualenv
|
||||
uses: syphar/restore-virtualenv@v1.3
|
||||
id: cache-virtualenv
|
||||
with:
|
||||
custom_cache_key_element: "release"
|
||||
requirement_files: "**/requirements.txt"
|
||||
- name: Install Python dependencies
|
||||
# We have to manually take a few steps:
|
||||
# 1. Because building cryptography is hard, and we cannot force pip to fetch universal2 version we
|
||||
# first install the x86 version (and it's dependencies) and then manually fetch the universal2 build
|
||||
# https://github.com/pypa/pip/issues/5453
|
||||
# 2. We need to build the PyInstaller bootloader:
|
||||
# 1. We need to build the PyInstaller bootloader:
|
||||
# https://github.com/pyinstaller/pyinstaller/issues/6235
|
||||
if: steps.cache-virtualenv.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python3 --version
|
||||
pip3 install --upgrade pip wheel
|
||||
|
||||
pip3 install --upgrade -r requirements.txt --no-binary cffi --no-dependencies
|
||||
|
||||
pip3 uninstall cryptography -y
|
||||
pip3 download -r builder/osx/requirements.txt --platform macosx_10_12_universal2 --only-binary :all: --no-dependencies --dest .
|
||||
pip3 install -r builder/osx/requirements.txt --no-cache-dir --no-index --find-links .
|
||||
|
||||
pip3 install --upgrade -r requirements.txt --no-binary cffi,CT3,PyYAML,charset_normalizer --no-dependencies
|
||||
PYINSTALLER_COMPILE_BOOTLOADER=1 pip3 install --upgrade -r builder/requirements.txt --no-binary pyinstaller --no-dependencies
|
||||
- name: Import macOS codesign certificates
|
||||
# Taken from https://github.com/Apple-Actions/import-codesign-certs/pull/27 (comments)
|
||||
@@ -143,7 +122,7 @@ jobs:
|
||||
# Run this on macOS so the line endings are correct by default
|
||||
run: python builder/package.py source
|
||||
- name: Upload source distribution
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: "*-src.tar.gz"
|
||||
name: Source distribution
|
||||
@@ -156,7 +135,7 @@ jobs:
|
||||
python3 builder/package.py app
|
||||
python3 builder/make_dmg.py
|
||||
- name: Upload macOS binary
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: "*-osx.dmg"
|
||||
name: macOS binary (not notarized)
|
||||
@@ -167,13 +146,13 @@ jobs:
|
||||
needs: [build_windows, build_macos]
|
||||
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- name: Download all artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: dist
|
||||
- name: Move all artifacts to main folder
|
||||
|
||||
17
.github/workflows/integration_testing.yml
vendored
17
.github/workflows/integration_testing.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
name: Black Code Formatter
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Black Code Formatter
|
||||
uses: lgeiger/black-action@master
|
||||
with:
|
||||
@@ -50,27 +50,22 @@ jobs:
|
||||
python-architecture: "x86"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.python-architecture }}
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: ${{ matrix.python-architecture }}
|
||||
cache: pip
|
||||
cache-dependency-path: "**/requirements.txt"
|
||||
- name: Install system dependencies
|
||||
if: runner.os == 'Linux'
|
||||
run: sudo apt-get install unrar p7zip-full par2
|
||||
- name: Cache Python virtualenv
|
||||
uses: syphar/restore-virtualenv@v1.3
|
||||
id: cache-virtualenv
|
||||
with:
|
||||
custom_cache_key_element: ci-${{ matrix.python-architecture }}
|
||||
requirement_files: "**/requirements.txt"
|
||||
- name: Install Python dependencies
|
||||
if: steps.cache-virtualenv.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python --version
|
||||
python -m pip install --upgrade pip wheel
|
||||
pip install --upgrade -r requirements.txt
|
||||
pip install --upgrade -r requirements.txt --no-dependencies
|
||||
pip install --upgrade -r tests/requirements.txt
|
||||
- name: Test SABnzbd
|
||||
run: pytest -s
|
||||
|
||||
4
.github/workflows/stale.yml
vendored
4
.github/workflows/stale.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
||||
if: github.repository_owner == 'sabnzbd'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
days-before-stale: 21
|
||||
days-before-close: 7
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
if: github.repository_owner == 'sabnzbd'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v4
|
||||
- uses: dessant/lock-threads@v5
|
||||
with:
|
||||
log-output: true
|
||||
issue-inactive-days: 60
|
||||
|
||||
4
.github/workflows/translations.yml
vendored
4
.github/workflows/translations.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
env:
|
||||
TX_TOKEN: ${{ secrets.TX_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.AUTOMATION_GITHUB_TOKEN }}
|
||||
- name: Generate translatable texts
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
run: |
|
||||
python3 tools/make_mo.py
|
||||
- name: Push translatable and translated texts back to repo
|
||||
uses: stefanzweifel/git-auto-commit-action@v4.16.0
|
||||
uses: stefanzweifel/git-auto-commit-action@v5.0.1
|
||||
if: env.TX_TOKEN
|
||||
with:
|
||||
commit_message: |
|
||||
|
||||
94
README.mkd
94
README.mkd
@@ -1,79 +1,39 @@
|
||||
Release Notes - SABnzbd 4.2.3
|
||||
Release Notes - SABnzbd 4.3.1
|
||||
=========================================================
|
||||
|
||||
This is the third bug-fix release of SABnzbd 4.2.0.
|
||||
This is the first bug fix release of SABnzbd 4.3.0.
|
||||
|
||||
## Bug-fixes and changes since 4.2.2:
|
||||
## Key changes since 4.2.0
|
||||
|
||||
* **Bug-fixes:**
|
||||
* Handle new status code for missing articles, which would result in timeouts.
|
||||
This specifically affects Giganews and its resellers.
|
||||
* Retry of failed job would not use the password provided.
|
||||
* Optimize database handling in order to prevent locking errors.
|
||||
* macOS: System standby after finishing the queue would not always work.
|
||||
* **Archive:**
|
||||
* When jobs are removed from the History, they are moved to the Archive.
|
||||
* Keep your History clean and still be able to reliably use Duplicate Detection.
|
||||
|
||||
* **Changes:**
|
||||
* Remove `Send Group` option for Servers.
|
||||
* **Apprise Integrated:**
|
||||
* Send notifications using Apprise to almost any notification service.
|
||||
* Supported notifications: https://github.com/caronc/apprise/wiki
|
||||
* Notification Script `SABnzbd-notify.py` is no longer needed.
|
||||
|
||||
## Bug-fixes and changes since 4.2.1:
|
||||
* **Added IPv6-staging option:**
|
||||
* Enable `ipv6_staging` in Config - Specials to get additional IPv6 features:
|
||||
* Add IPv6 hostnames during address selection.
|
||||
* Internet Bandwidth is measured separately for IPv4 and IPv6.
|
||||
|
||||
* **Bug-fixes:**
|
||||
* RSS readout could result in a crash if Duplicate Detection was enabled.
|
||||
* Passwords were not always correctly parsed.
|
||||
* Warnings could show even if `helpful_warnings` was disabled.
|
||||
* Duplicate Detection would trigger again on URLs if they were resumed.
|
||||
* Windows: Fatal crash could occur if ran as Service or on older Windows versions.
|
||||
* **Other:**
|
||||
* The `text` output format is removed from the API, `json` is the default.
|
||||
* Handling of multiple inputs to several API methods was improved.
|
||||
* File browser dialog is available to select file paths in the Config.
|
||||
* Users will be warned if they configure an Indexer as a Server.
|
||||
* Added `SAB_API_KEY` and `SAB_API_URL` to script environment variables.
|
||||
* Windows/macOS: Updated Python to 3.12.3, Multipar to v1.3.3.2,
|
||||
Unrar to 7.00 and 7zip to 24.03.
|
||||
|
||||
* **Changes:**
|
||||
* Parsing of filenames from the NZB was extended to allow more exotic formatting.
|
||||
* Windows: Installer will automatically shutdown SABnzbd if it is running.
|
||||
## Bug fixes since 4.2.0
|
||||
|
||||
## Bug-fixes and changes since 4.2.0:
|
||||
|
||||
* **Bug-fixes:**
|
||||
* New downloads did not appear in the History after the update to 4.2.0.
|
||||
|
||||
* **Changes:**
|
||||
* The external IPv6-address is shown, instead of the internal address.
|
||||
* Windows: Network drives as `Download Folder` are no longer blocked, only warned against.
|
||||
|
||||
## Key changes since 4.1.0
|
||||
|
||||
* **Duplicate detection workflow overhaul:**
|
||||
* `Series Duplicate Detection` was replaced by `Smart Duplicate Detection`
|
||||
that can also detect `Movie` and `Daily Show` duplicates.
|
||||
* Additionally, duplicates will also be detected if they are still in the queue.
|
||||
* More information: https://sabnzbd.org/wiki/duplicate-detection
|
||||
|
||||
* **Interface changes:**
|
||||
* Added ability to filter the Queue and History by `status`.
|
||||
* RSS-feed that provided the download is shown in History details.
|
||||
* macOS/Windows 10 & 11: Added `Open Folder` button to `Job/Queue finished` notifications.
|
||||
Clicking any type of notification will now open a browser with SABnzbd.
|
||||
|
||||
* **Performance and usability improvements:**
|
||||
* Numerous smaller performance improvements were made.
|
||||
* Server IP-address selection was optimized.
|
||||
* The `Internet Bandwidth` test was made more reliable.
|
||||
* macOS/Windows: Updated to Python 3.12 and par2cmdline-turbo v1.1.1.
|
||||
|
||||
* **Configuration changes:**
|
||||
* The `On queue finish script` is now set in Switches.
|
||||
* Reduced recursive unpacking to 2 levels, instead of 5.
|
||||
* Duplicate detection related Pre-queue script input parameters were removed.
|
||||
You will need to update your Pre-queue script.
|
||||
More information: https://sabnzbd.org/wiki/configuration/4.2/scripts/pre-queue-scripts
|
||||
* Stricter check if `Complete Folder` is inside `Download Folder`.
|
||||
* Windows: Prevent use of network drive as `Download Folder`.
|
||||
|
||||
## Bug fixes since 4.1.0
|
||||
|
||||
* Fixed an issue where the multi-select option in the queue was not working for some users.
|
||||
* Prevented a crash that would occur during the saving of configuration settings.
|
||||
* Jobs with larger articles could stall the queue for several minutes.
|
||||
* Ensured that server warnings are always displayed to users.
|
||||
* If `weblogging` was enabled, output was also written to regular log.
|
||||
* Fixed an issue where removing a failed download from the History could break active downloads.
|
||||
* Incorrect warnings of unknown status codes could be thrown.
|
||||
* Watched Folder would not work if Socks5 proxy was active.
|
||||
* Prevent crash on invalid Server Expiration Date.
|
||||
* Windows: Installer could create duplicate shortcuts.
|
||||
|
||||
## Upgrade notices
|
||||
|
||||
|
||||
31
SABnzbd.py
31
SABnzbd.py
@@ -1414,21 +1414,15 @@ def main():
|
||||
if full_path := getattr(sabnzbd.cfg, setting).get_path():
|
||||
sabnzbd.CONFIG_BACKUP_HTTPS_OK.append(full_path)
|
||||
|
||||
if sabnzbd.WIN32:
|
||||
if enable_https:
|
||||
mode = "s"
|
||||
else:
|
||||
mode = ""
|
||||
api_url = "http%s://%s:%s%s/api?apikey=%s" % (
|
||||
mode,
|
||||
browserhost,
|
||||
cherryport,
|
||||
sabnzbd.cfg.url_base(),
|
||||
sabnzbd.cfg.api_key(),
|
||||
)
|
||||
# Set URL for browser
|
||||
if enable_https:
|
||||
sabnzbd.BROWSER_URL = "https://%s:%s%s" % (browserhost, cherryport, sabnzbd.cfg.url_base())
|
||||
else:
|
||||
sabnzbd.BROWSER_URL = "http://%s:%s%s" % (browserhost, cherryport, sabnzbd.cfg.url_base())
|
||||
|
||||
# Write URL directly to registry
|
||||
set_connection_info(api_url)
|
||||
if sabnzbd.WIN32:
|
||||
# Write URL for uploads and version check directly to registry
|
||||
set_connection_info(f"{sabnzbd.BROWSER_URL}/api?apikey={sabnzbd.cfg.api_key()}")
|
||||
|
||||
if pid_path or pid_file:
|
||||
sabnzbd.pid_file(pid_path, pid_file, cherryport)
|
||||
@@ -1453,15 +1447,8 @@ def main():
|
||||
for upload_nzb in upload_nzbs:
|
||||
sabnzbd.nzbparser.add_nzbfile(upload_nzb)
|
||||
|
||||
# Set URL for browser
|
||||
if enable_https:
|
||||
browser_url = "https://%s:%s%s" % (browserhost, cherryport, sabnzbd.cfg.url_base())
|
||||
else:
|
||||
browser_url = "http://%s:%s%s" % (browserhost, cherryport, sabnzbd.cfg.url_base())
|
||||
sabnzbd.BROWSER_URL = browser_url
|
||||
|
||||
if not autorestarted:
|
||||
launch_a_browser(browser_url)
|
||||
launch_a_browser(sabnzbd.BROWSER_URL)
|
||||
notifier.send_notification("SABnzbd", T("SABnzbd %s started") % sabnzbd.__version__, "startup")
|
||||
autorestarted = False
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ extra_pyinstaller_files = []
|
||||
|
||||
# Add hidden imports
|
||||
extra_hiddenimports = ["Cheetah.DummyTransaction", "cheroot.ssl.builtin", "certifi"]
|
||||
extra_hiddenimports.extend(collect_submodules("apprise"))
|
||||
extra_hiddenimports.extend(collect_submodules("babelfish.converters"))
|
||||
extra_hiddenimports.extend(collect_submodules("guessit.data"))
|
||||
|
||||
@@ -40,7 +41,7 @@ else:
|
||||
)
|
||||
|
||||
# Windows
|
||||
extra_hiddenimports.append("win32timezone")
|
||||
extra_hiddenimports.extend(["win32timezone", "winrt.windows.foundation.collections"])
|
||||
EXTRA_FOLDERS += ["win/multipar/", "win/par2/", "win/unrar/", "win/7zip/"]
|
||||
EXTRA_FILES += ["portable.cmd"]
|
||||
|
||||
@@ -91,12 +92,14 @@ for folder_item in EXTRA_FOLDERS:
|
||||
# Add babelfish data files
|
||||
extra_pyinstaller_files.extend(collect_data_files("babelfish"))
|
||||
extra_pyinstaller_files.extend(collect_data_files("guessit"))
|
||||
extra_pyinstaller_files.extend(collect_data_files("apprise"))
|
||||
|
||||
pyi_analysis = Analysis(
|
||||
["SABnzbd.py"],
|
||||
datas=extra_pyinstaller_files,
|
||||
hiddenimports=extra_hiddenimports,
|
||||
excludes=["ujson", "FixTk", "tcl", "tk", "_tkinter", "tkinter", "Tkinter", "pydoc", "pydoc_data.topics"],
|
||||
module_collection_mode={"apprise.plugins": "py"},
|
||||
)
|
||||
|
||||
pyz = PYZ(pyi_analysis.pure, pyi_analysis.zipped_data)
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Special requirements for macOS universal2 binary release
|
||||
# This way dependabot can auto-update them
|
||||
cryptography==41.0.7
|
||||
@@ -1,2 +1,2 @@
|
||||
PyGithub==2.1.1
|
||||
PyGithub==2.3.0
|
||||
praw==7.7.1
|
||||
@@ -233,7 +233,7 @@ if RELEASE_THIS and gh_token:
|
||||
readme_lines = readme_file.readlines()
|
||||
|
||||
# Put the download link after the title
|
||||
readme_lines[2] = "## https://sabnzbd.org/downloads\n"
|
||||
readme_lines[2] = "## https://sabnzbd.org/downloads\n\n"
|
||||
|
||||
# Use the header in the readme as title
|
||||
title = readme_lines[0]
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
# Basic build requirements
|
||||
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
|
||||
pyinstaller==5.13.2
|
||||
packaging==23.2
|
||||
pyinstaller-hooks-contrib==2024.0
|
||||
packaging==24.0
|
||||
pyinstaller-hooks-contrib==2024.5
|
||||
altgraph==0.17.4
|
||||
wrapt==1.16.0
|
||||
setuptools==69.0.3
|
||||
certifi
|
||||
setuptools==69.5.1
|
||||
|
||||
# Required on 32bit Windows, exclude it based on Python-version
|
||||
importlib_metadata==7.0.1; python_version < '3.10'
|
||||
importlib_resources==6.1.1; python_version < '3.10'
|
||||
zipp==3.17.0; python_version < '3.10'
|
||||
importlib_metadata==7.1.0; python_version < '3.10'
|
||||
importlib_resources==6.4.0; python_version < '3.10'
|
||||
zipp==3.18.1; python_version < '3.10'
|
||||
|
||||
# orjson does not support 32bit Windows, also exclude based on Python-version
|
||||
orjson==3.9.12; python_version > '3.8'
|
||||
orjson==3.10.1; python_version > '3.8'
|
||||
|
||||
# For the Windows build
|
||||
pefile==2023.2.7; sys_platform == 'win32'
|
||||
|
||||
@@ -40,6 +40,27 @@ Unicode true
|
||||
; Remove the whole dir
|
||||
; Users should not be putting stuff here!
|
||||
RMDir /r "${idir}"
|
||||
|
||||
; Remove any shortuts, starting with current user ones (from old installs)
|
||||
SetShellVarContext current
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - SafeMode.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - Documentation.url"
|
||||
RMDir "$SMPROGRAMS\$MUI_TEMP"
|
||||
Delete "$SMPROGRAMS\Startup\SABnzbd.lnk"
|
||||
Delete "$DESKTOP\SABnzbd.lnk"
|
||||
|
||||
SetShellVarContext all
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - SafeMode.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - Documentation.url"
|
||||
RMDir "$SMPROGRAMS\$MUI_TEMP"
|
||||
Delete "$SMPROGRAMS\Startup\SABnzbd.lnk"
|
||||
Delete "$DESKTOP\SABnzbd.lnk"
|
||||
!macroend
|
||||
|
||||
;------------------------------------------------------------------
|
||||
@@ -48,7 +69,6 @@ Unicode true
|
||||
OutFile "${SAB_FILE}"
|
||||
InstallDir "$PROGRAMFILES\SABnzbd"
|
||||
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Some default compiler settings (uncomment and change at will):
|
||||
SetCompress auto ; (can be off or force)
|
||||
@@ -141,6 +161,7 @@ Unicode true
|
||||
!insertmacro MUI_LANGUAGE "Polish"
|
||||
!insertmacro MUI_LANGUAGE "Swedish"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Norwegian"
|
||||
!insertmacro MUI_LANGUAGE "Romanian"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
@@ -284,16 +305,18 @@ Function .onInit
|
||||
;------------------------------------------------------------------
|
||||
; Check what the user has currently set for install options
|
||||
SetShellVarContext current
|
||||
IfFileExists "$SMPROGRAMS\Startup\SABnzbd.lnk" 0 endCheckStartup
|
||||
IfFileExists "$SMPROGRAMS\Startup\SABnzbd.lnk" 0 endCheckStartupCurrent
|
||||
SectionSetFlags ${startup} 1
|
||||
endCheckStartupCurrent:
|
||||
SetShellVarContext all
|
||||
IfFileExists "$SMPROGRAMS\Startup\SABnzbd.lnk" 0 endCheckStartup
|
||||
SectionSetFlags ${startup} 1
|
||||
endCheckStartup:
|
||||
|
||||
SetShellVarContext current
|
||||
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktop 0
|
||||
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktopCurrent 0
|
||||
SectionSetFlags ${desktop} 0 ; SAB is installed but desktop-icon not, so uncheck it
|
||||
endCheckDesktopCurrent:
|
||||
SetShellVarContext all
|
||||
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktop 0
|
||||
SectionSetFlags ${desktop} 0 ; SAB is installed but desktop-icon not, so uncheck it
|
||||
@@ -356,34 +379,6 @@ Section "un.$(MsgDelProgram)" Uninstall
|
||||
liteFirewallW::RemoveRule "$INSTDIR\SABnzbd.exe" "SABnzbd"
|
||||
liteFirewallW::RemoveRule "$INSTDIR\SABnzbd-console.exe" "SABnzbd-console"
|
||||
|
||||
SetShellVarContext all
|
||||
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - SafeMode.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - Documentation.url"
|
||||
RMDir "$SMPROGRAMS\$MUI_TEMP"
|
||||
|
||||
Delete "$SMPROGRAMS\Startup\SABnzbd.lnk"
|
||||
|
||||
Delete "$DESKTOP\SABnzbd.lnk"
|
||||
|
||||
SetShellVarContext current
|
||||
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - SafeMode.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd - Documentation.url"
|
||||
RMDir "$SMPROGRAMS\$MUI_TEMP"
|
||||
|
||||
Delete "$SMPROGRAMS\Startup\SABnzbd.lnk"
|
||||
|
||||
Delete "$DESKTOP\SABnzbd.lnk"
|
||||
|
||||
${unregisterExtension} ".nzb" "NZB File"
|
||||
${RefreshShellIcons}
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<!--#if not $windows#-->
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" id="show_hidden_folders"> <span>$T('hiddenFolders')</span>
|
||||
</label>
|
||||
</div>
|
||||
<!--#end if#-->
|
||||
|
||||
<button type="button" class="btn btn-danger" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> $T('cancel')</button>
|
||||
<button type="button" class="btn btn-default" id="filebrowser_modal_accept"><span class="glyphicon glyphicon-ok"></span> $T('rss-accept')</button>
|
||||
</div>
|
||||
|
||||
@@ -70,27 +70,7 @@
|
||||
<script type="text/javascript" src="${root}staticcfg/js/script.js?v=$version"></script>
|
||||
<script type="text/javascript">
|
||||
// Set default functions for the autocomplete everywhere
|
||||
jQuery.extend(jQuery.fn.typeahead.defaults, {
|
||||
source: function (query, process) {
|
||||
// If there's no separator, it must be a relative path
|
||||
if(query.split(folderSeperator).length < 2 && this.\$element.data('initialdir')) {
|
||||
query = this.\$element.data('initialdir') + folderSeperator + query;
|
||||
}
|
||||
// Get info from the API
|
||||
return jQuery.get(folderBrowseUrl + '&compact=1&term=' + query, function (data) {
|
||||
return process(data);
|
||||
});
|
||||
},
|
||||
updater: function(item) {
|
||||
// Is it a relative path?
|
||||
if(item.indexOf(this.\$element.data('initialdir')) === 0) {
|
||||
// Remove start
|
||||
return item.replace(this.\$element.data('initialdir')+folderSeperator, '');
|
||||
}
|
||||
// Full path
|
||||
return item
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// to top right away
|
||||
if(window.location.hash) {
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="password_file">$T('opt-password_file')</label>
|
||||
<input type="text" name="password_file" id="password_file" value="$password_file" />
|
||||
<input type="text" name="password_file" id="password_file" value="$password_file" class="fileBrowserField" data-initialdir="$my_home" data-files="1" />
|
||||
<span class="desc">$T('explain-password_file')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
@@ -133,7 +133,7 @@
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
// Add autocomplete and file-browser
|
||||
jQuery('.col1 input[name$="_dir"]').typeahead().fileBrowser();
|
||||
jQuery('.col1 input[name$="_dir"], #password_file').typeahead().fileBrowser();
|
||||
|
||||
jQuery('#purge_log_files').click(function () {
|
||||
if ( confirm("$T('confirm')") ) {
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="https_cert">$T('opt-https_cert')</label>
|
||||
<input type="text" name="https_cert" id="https_cert" value="$https_cert" />
|
||||
<input type="text" name="https_cert" id="https_cert" value="$https_cert" class="fileBrowserField" data-initialdir="$my_lcldata" data-files="1" />
|
||||
<button class="btn btn-default generate_cert" title="$T('explain-new-cert')">
|
||||
<span class="glyphicon glyphicon-repeat"></span>
|
||||
</button>
|
||||
@@ -82,7 +82,7 @@
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="https_key">$T('opt-https_key')</label>
|
||||
<input type="text" name="https_key" id="https_key" value="$https_key" />
|
||||
<input type="text" name="https_key" id="https_key" value="$https_key" class="fileBrowserField" data-initialdir="$my_lcldata" data-files="1" />
|
||||
<button class="btn btn-default generate_cert" title="$T('explain-new-cert')">
|
||||
<span class="glyphicon glyphicon-repeat"></span>
|
||||
</button>
|
||||
@@ -90,7 +90,7 @@
|
||||
</div>
|
||||
<div class="field-pair advanced-settings">
|
||||
<label class="config" for="https_chain">$T('opt-https_chain')</label>
|
||||
<input type="text" name="https_chain" id="https_chain" value="$https_chain" />
|
||||
<input type="text" name="https_chain" id="https_chain" value="$https_chain" class="fileBrowserField" data-initialdir="$my_lcldata" data-files="1" />
|
||||
<span class="desc">$T('explain-https_chain')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
@@ -136,14 +136,14 @@
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="apikey_display">$T('opt-apikey')</label>
|
||||
<input type="text" id="apikey_display" class="fileBrowserField" value="$apikey" readonly />
|
||||
<input type="text" id="apikey_display" value="$apikey" readonly />
|
||||
<button class="btn btn-default show_qrcode" title="$T('explain-qr-code')" rel="$apikey" ><span class="glyphicon glyphicon-qrcode"></span></button>
|
||||
<button class="btn btn-default generate_key" id="generate_new_apikey" title="$T('button-apikey')"><span class="glyphicon glyphicon-repeat"></span></button>
|
||||
<span class="desc">$T('explain-apikey')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="nzbkey">$T('opt-nzbkey')</label>
|
||||
<input type="text" id="nzbkey" class="fileBrowserField" value="$nzb_key" readonly />
|
||||
<input type="text" id="nzbkey" value="$nzb_key" readonly />
|
||||
<button class="btn btn-default show_qrcode" title="$T('explain-qr-code')" rel="$nzb_key" ><span class="glyphicon glyphicon-qrcode"></span></button>
|
||||
<button class="btn btn-default generate_key" id="generate_new_nzbkey" title="$T('button-apikey')"><span class="glyphicon glyphicon-repeat"></span></button>
|
||||
<span class="desc">$T('explain-nzbkey')</span>
|
||||
@@ -341,6 +341,9 @@ jQuery(document).ready(function(){
|
||||
}
|
||||
});
|
||||
|
||||
// Add autocomplete and file-browser
|
||||
jQuery('.fileBrowserField').typeahead().fileBrowser();
|
||||
|
||||
jQuery('.show_qrcode').click(function (e) {
|
||||
// Show in modal
|
||||
jQuery('#modal_qr .modal-dialog').width(330)
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
<!--#set global $help_uri = $confighelpuri + "notifications"#-->
|
||||
<!--#include $webdir + "/_inc_header_uc.tmpl"#-->
|
||||
|
||||
<!--#import apprise#-->
|
||||
|
||||
<!--#def show_notify_checkboxes($section_label)#-->
|
||||
<!--#for $type in $notify_types#-->
|
||||
<div class="field-pair">
|
||||
@@ -176,6 +178,51 @@
|
||||
</div>
|
||||
</div>
|
||||
<!--#end if#-->
|
||||
<div class="section" id="apprise">
|
||||
<div class="col2">
|
||||
<h3>Apprise <a href="$help_uri#apprise" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a></h3>
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="apprise_enable" id="apprise_enable" value="1" <!--#if int($apprise_enable) > 0 then 'checked="checked"' else ""#--> /></td>
|
||||
<td><label for="apprise_enable"> $T('opt-apprise_enable')</label></td>
|
||||
</tr>
|
||||
</table>
|
||||
<em>$T('explain-apprise_enable')</em><br>
|
||||
<p>$T('version'): ${apprise.__version__}</p>
|
||||
|
||||
$show_cat_box('apprise')
|
||||
</div>
|
||||
<div class="col1" <!--#if int($apprise_enable) > 0 then '' else 'style="display:none"'#-->>
|
||||
<fieldset>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="apprise_urls">$T('opt-apprise_urls')</label>
|
||||
<input type="text" name="apprise_urls" id="apprise_urls" value="$apprise_urls" />
|
||||
<span class="desc">$T('explain-apprise_urls'). <br>$T('readwiki')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<span class="desc">$T('explain-apprise_extra_urls')</span>
|
||||
</div>
|
||||
<!--#set $section_label = 'apprise'#-->
|
||||
<!--#for $type in $notify_types#-->
|
||||
<div class="field-pair">
|
||||
<label class="config" for="${section_label}_target_${type}">
|
||||
$T($notify_types[$type]).replace('/', ' / ')
|
||||
</label>
|
||||
<input type="checkbox" name="${section_label}_target_${type}_enable" id="${section_label}_target_${type}_enable" value="1" <!--#if int($getVar($section_label + '_target_' + $type + '_enable')) > 0 then 'checked="checked"' else ""#--> />
|
||||
<input type="text" name="${section_label}_target_${type}" id="${section_label}_target_${type}" value="$getVar($section_label + '_target_' + $type)" placeholder="$T('opt-apprise_urls')" />
|
||||
</div>
|
||||
<!--#end for#-->
|
||||
|
||||
<div class="field-pair no-field-pair-bg">
|
||||
<button class="btn btn-default saveButton"><span class="glyphicon glyphicon-ok"></span> $T('button-saveChanges')</button>
|
||||
<button class="btn btn-default" type="button" id="test_apprise"><span class="glyphicon glyphicon-comment"></span> $T('testNotify')</button>
|
||||
</div>
|
||||
<div class="field-pair result-box">
|
||||
<div class="alert"></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="nscript">
|
||||
<div class="col2">
|
||||
<h3>$T('section-NScript') <a href="$help_uri#nscript" target="_blank"><span class="glyphicon glyphicon-question-sign"></span></a></h3>
|
||||
@@ -426,7 +473,7 @@ jQuery(document).ready(function(){
|
||||
}
|
||||
})
|
||||
}
|
||||
jQuery('#test_email, #test_notif, #test_windows, #test_pushbullet, #test_pushover, #test_prowl, #test_osd, #test_nscript').click(function () {
|
||||
jQuery('#test_email, #test_notif, #test_windows, #test_apprise, #test_pushbullet, #test_pushover, #test_prowl, #test_osd, #test_nscript').click(function () {
|
||||
testNotification(this)
|
||||
})
|
||||
});
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
<textarea name="notes" id="notes" rows="3" cols="50"></textarea>
|
||||
</div>
|
||||
<div class="field-pair no-field-pair-bg">
|
||||
<button class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> $T('button-addServer')</button>
|
||||
<button class="btn btn-default addNewServer" disabled><span class="glyphicon glyphicon-plus"></span> $T('button-addServer')</button>
|
||||
<button class="btn btn-default testServer" type="button"><span class="glyphicon glyphicon-sort"></span> $T('button-testServer')</button>
|
||||
</div>
|
||||
<div class="field-pair result-box">
|
||||
@@ -554,9 +554,19 @@
|
||||
if(data.value.result) {
|
||||
resultBox.addClass('alert-success')
|
||||
resultBox.prepend('<span class="glyphicon glyphicon-ok-sign"></span> ')
|
||||
|
||||
// Allow adding the new server if we are in the new-server section
|
||||
if(theButton.parents("form[action='addServer']").length) {
|
||||
jQuery(".addNewServer").removeAttr("disabled")
|
||||
}
|
||||
} else {
|
||||
resultBox.addClass('alert-danger')
|
||||
resultBox.prepend('<span class="glyphicon glyphicon-exclamation-sign"></span> ')
|
||||
|
||||
// Disable the adding of new server, just to be sure
|
||||
if(theButton.parents("form[action='addServer']").length) {
|
||||
jQuery(".addNewServer").attr("disabled", "disabled")
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<option value="0" <!--#if int($no_dupes) == 0 then 'selected="selected"' else ""#--> >$T('nodupes-off')</option>
|
||||
<option value="4" <!--#if int($no_dupes) == 4 then 'selected="selected"' else ""#--> >$T('nodupes-tag')</option>
|
||||
<option value="2" <!--#if int($no_dupes) == 2 then 'selected="selected"' else ""#--> >$T('nodupes-pause')</option>
|
||||
<option value="3" <!--#if int($no_dupes) == 3 then 'selected="selected"' else ""#--> >$T('nodupes-fail')</option>
|
||||
<option value="3" <!--#if int($no_dupes) == 3 then 'selected="selected"' else ""#--> >$T('fail-to-history')</option>
|
||||
<option value="1" <!--#if int($no_dupes) == 1 then 'selected="selected"' else ""#--> >$T('nodupes-ignore')</option>
|
||||
</select>
|
||||
<span class="desc">
|
||||
@@ -107,7 +107,7 @@
|
||||
<option value="0" <!--#if int($no_smart_dupes) == 0 then 'selected="selected"' else ""#--> >$T('nodupes-off')</option>
|
||||
<option value="4" <!--#if int($no_smart_dupes) == 4 then 'selected="selected"' else ""#--> >$T('nodupes-tag')</option>
|
||||
<option value="2" <!--#if int($no_smart_dupes) == 2 then 'selected="selected"' else ""#--> >$T('nodupes-pause')</option>
|
||||
<option value="3" <!--#if int($no_smart_dupes) == 3 then 'selected="selected"' else ""#--> >$T('nodupes-fail')</option>
|
||||
<option value="3" <!--#if int($no_smart_dupes) == 3 then 'selected="selected"' else ""#--> >$T('fail-to-history')</option>
|
||||
<option value="1" <!--#if int($no_smart_dupes) == 1 then 'selected="selected"' else ""#--> >$T('nodupes-ignore')</option>
|
||||
</select>
|
||||
<span class="desc">
|
||||
@@ -125,7 +125,7 @@
|
||||
<select name="pause_on_pwrar" id="pause_on_pwrar">
|
||||
<option value="0" <!--#if int($pause_on_pwrar) == 0 then 'selected="selected"' else ""#--> >$T('nodupes-off')</option>
|
||||
<option value="1" <!--#if int($pause_on_pwrar) == 1 then 'selected="selected"' else ""#--> >$T('nodupes-pause')</option>
|
||||
<option value="2" <!--#if int($pause_on_pwrar) == 2 then 'selected="selected"' else ""#--> >$T('abort')</option>
|
||||
<option value="2" <!--#if int($pause_on_pwrar) == 2 then 'selected="selected"' else ""#--> >$T('fail-to-history')</option>
|
||||
</select>
|
||||
<span class="desc">$T('explain-pause_on_pwrar')</span>
|
||||
</div>
|
||||
@@ -143,7 +143,7 @@
|
||||
<select name="action_on_unwanted_extensions" id="action_on_unwanted_extensions">
|
||||
<option value="0" <!--#if int($action_on_unwanted_extensions) == 0 then 'selected="selected"' else ""#--> >$T('nodupes-off')</option>
|
||||
<option value="1" <!--#if int($action_on_unwanted_extensions) == 1 then 'selected="selected"' else ""#--> >$T('nodupes-pause')</option>
|
||||
<option value="2" <!--#if int($action_on_unwanted_extensions) == 2 then 'selected="selected"' else ""#--> >$T('abort')</option>
|
||||
<option value="2" <!--#if int($action_on_unwanted_extensions) == 2 then 'selected="selected"' else ""#--> >$T('fail-to-history')</option>
|
||||
</select>
|
||||
<span class="desc">$T('explain-action_on_unwanted_extensions')</span>
|
||||
</div>
|
||||
@@ -259,16 +259,17 @@
|
||||
<span class="desc">$T('explain-cleanup_list')</span>
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<label class="config" for="history_retention_select">$T('opt-history_retention')</label>
|
||||
<input type="hidden" name="history_retention" id="history_retention" value="$history_retention">
|
||||
<select name="history_retention_select" id="history_retention_select">
|
||||
<option value="0">$T('history_retention-all')</option>
|
||||
<option value="n">$T('history_retention-number')</option>
|
||||
<option value="d">$T('history_retention-days')</option>
|
||||
<option value="-1">$T('history_retention-none')</option>
|
||||
<label class="config" for="history_retention_option">$T('opt-history_retention')</label>
|
||||
<select name="history_retention_option" id="history_retention_option">
|
||||
<option value="all" <!--#if $auto_sort == "all" then 'selected="selected"' else ""#-->>$T('history_retention-all')</option>
|
||||
<option value="number-archive" <!--#if $history_retention_option == "number-archive" then 'selected="selected"' else ""#-->>$T('history_retention-number-archive')</option>
|
||||
<option value="number-delete" <!--#if $history_retention_option == "number-delete" then 'selected="selected"' else ""#-->>$T('history_retention-number-delete')</option>
|
||||
<option value="days-archive" <!--#if $history_retention_option == "days-archive" then 'selected="selected"' else ""#-->>$T('history_retention-days-archive')</option>
|
||||
<option value="days-delete" <!--#if $history_retention_option == "days-delete" then 'selected="selected"' else ""#-->>$T('history_retention-days-delete')</option>
|
||||
<option value="all-archive" <!--#if $history_retention_option == "all-archive" then 'selected="selected"' else ""#-->>$T('history_retention-archive')</option>
|
||||
<option value="all-delete" <!--#if $history_retention_option == "all-delete" then 'selected="selected"' else ""#-->>$T('history_retention-none')</option>
|
||||
</select>
|
||||
<input type="number" id="history_retention_number" name="history_retention_number" min="1">
|
||||
<span class="desc">$T('explain-history_retention').replace('. ', '.<br/>')</span>
|
||||
<input type="number" id="history_retention_number" name="history_retention_number" min="1" value="$history_retention_number">
|
||||
</div>
|
||||
<div class="field-pair">
|
||||
<button class="btn btn-default saveButton"><span class="glyphicon glyphicon-ok"></span> $T('button-saveChanges')</button>
|
||||
@@ -359,52 +360,24 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
jQuery('#history_retention_select, #history_retention_number').on('change', updateHistoryRetention)
|
||||
jQuery('#history_retention_option').on('change', updateHistoryRetention)
|
||||
function updateHistoryRetention() {
|
||||
var retention_setting = jQuery('#history_retention')
|
||||
var retention_select = jQuery('#history_retention_select').val()
|
||||
var retention_option = jQuery('#history_retention_option').val()
|
||||
var retention_number = jQuery('#history_retention_number')
|
||||
// Keep all or keep none
|
||||
if(retention_select === "0" || retention_select === "-1") {
|
||||
|
||||
if(retention_option === "number-archive" || retention_option === "number-delete") {
|
||||
retention_number.show()
|
||||
retention_number.attr('placeholder', '$T('history_retention-limit')')
|
||||
} else if(retention_option === "days-archive" || retention_option === "days-delete") {
|
||||
retention_number.show()
|
||||
retention_number.attr('placeholder', '$T('days').capitalize()')
|
||||
} else {
|
||||
retention_number.hide()
|
||||
retention_number.val('')
|
||||
retention_number.attr('placeholder', '')
|
||||
retention_setting.val(retention_select)
|
||||
} else {
|
||||
retention_number.show()
|
||||
// Days or number?
|
||||
if(retention_select.indexOf("d") !== -1) {
|
||||
retention_number.attr('placeholder', '$T('days').capitalize()')
|
||||
if(retention_number.val()) {
|
||||
retention_setting.val(retention_number.val() + 'd')
|
||||
} else if(parseInt(retention_setting.val()) > 0) {
|
||||
retention_number.val(parseInt(retention_setting.val()))
|
||||
}
|
||||
} else {
|
||||
retention_number.attr('placeholder', '$T('history_retention-limit')')
|
||||
if(retention_number.val()) {
|
||||
retention_setting.val(retention_number.val())
|
||||
} else if(parseInt(retention_setting.val()) > 0) {
|
||||
retention_number.val(parseInt(retention_setting.val()))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Set the history-retention settig
|
||||
var retention_setting_value = jQuery('#history_retention').val()
|
||||
if(parseInt(retention_setting_value) > 0) {
|
||||
// Days or number?
|
||||
if(retention_setting_value.indexOf("d") !== -1) {
|
||||
jQuery('#history_retention_select').val("d")
|
||||
} else {
|
||||
jQuery('#history_retention_select').val("n")
|
||||
}
|
||||
jQuery('#history_retention_number').val(parseInt(retention_setting_value))
|
||||
} else {
|
||||
// Keep all or keep none
|
||||
jQuery('#history_retention_select').val(retention_setting_value)
|
||||
jQuery('#history_retention_number').hide()
|
||||
}
|
||||
updateHistoryRetention()
|
||||
|
||||
jQuery('.restoreDefaults').click(function(e) {
|
||||
// Get section name
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
// Initialize
|
||||
this.element = $(element);
|
||||
this.initialDir = null;
|
||||
this.showFiles = false;
|
||||
this.currentBrowserPath = null;
|
||||
this.currentRequest = null;
|
||||
this.fileBrowserDialog = $('#filebrowser_modal .modal-body');
|
||||
@@ -99,6 +100,11 @@
|
||||
this.initialDir = this.element.data('initialdir') + folderSeperator + this.element.val();
|
||||
}
|
||||
|
||||
// Are we selecting files or folders
|
||||
if(this.element.data('files')) {
|
||||
this.showFiles = true
|
||||
}
|
||||
|
||||
// Browse
|
||||
this.browse(this.initialDir , folderBrowseUrl);
|
||||
|
||||
@@ -144,12 +150,20 @@
|
||||
// Still loading
|
||||
if (this.currentRequest) this.currentRequest.abort();
|
||||
|
||||
// Show hidden folders on Linux?
|
||||
var extraHidden = $('#show_hidden_folders').is(':checked') ? '&show_hidden_folders=1' : '';
|
||||
// Show hidden folders
|
||||
var params = { name: path}
|
||||
if($('#show_hidden_folders').is(':checked')) {
|
||||
params['show_hidden_folders'] = "1"
|
||||
}
|
||||
|
||||
// Show files?
|
||||
if(this.showFiles) {
|
||||
params['show_files'] = "1"
|
||||
}
|
||||
|
||||
// Get current folders
|
||||
this.currentBrowserPath = path;
|
||||
this.currentRequest = $.getJSON(endpoint + extraHidden, { name: path }, function (data) {
|
||||
this.currentRequest = $.getJSON(endpoint, params, function (data) {
|
||||
// Clean
|
||||
self.fileBrowserDialog.empty();
|
||||
|
||||
@@ -163,11 +177,21 @@
|
||||
}
|
||||
// Regular link
|
||||
link = $('<a class="list-group-item" href="javascript:void(0)" />').click(function () {
|
||||
self.browse(entry.path, endpoint); }
|
||||
).text(entry.name);
|
||||
// Are we looking for files and did we select a file?
|
||||
if(self.showFiles && !entry.dir) {
|
||||
// Trigger selection
|
||||
self.currentBrowserPath = entry.path
|
||||
$('#filebrowser_modal_accept').click()
|
||||
} else {
|
||||
self.browse(entry.path, endpoint);
|
||||
}
|
||||
}).text(entry.name);
|
||||
|
||||
// Back image
|
||||
if(entry.name === '..') {
|
||||
$('<span class="glyphicon glyphicon-arrow-left"></span> ').prependTo(link);
|
||||
} else if(!entry.dir) {
|
||||
$('<span class="glyphicon glyphicon-file"></span> ').prependTo(link);
|
||||
} else {
|
||||
$('<span class="glyphicon glyphicon-folder-open"></span> ').prependTo(link);
|
||||
}
|
||||
@@ -307,7 +331,7 @@ function do_restart() {
|
||||
});
|
||||
}
|
||||
|
||||
// Remove obfusication
|
||||
// Remove obfuscation
|
||||
function removeObfuscation() {
|
||||
$('input[data-hide]').each(function(index, objInput) {
|
||||
$(objInput).attr('name', $(objInput).data('hide'))
|
||||
@@ -323,6 +347,36 @@ function addRowColor() {
|
||||
})
|
||||
}
|
||||
|
||||
// Set default functions for the autocomplete everywhere
|
||||
jQuery.extend(jQuery.fn.typeahead.defaults, {
|
||||
source: function (query, process) {
|
||||
// If there's no separator, it must be a relative path
|
||||
if(query.split(folderSeperator).length < 2 && this.$element.data('initialdir')) {
|
||||
query = this.$element.data('initialdir') + folderSeperator + query;
|
||||
}
|
||||
var params = { compact: "1", name: query }
|
||||
if($('#show_hidden_folders').is(':checked')) {
|
||||
params['show_hidden_folders'] = "1"
|
||||
}
|
||||
if(this.$element.data('files')) {
|
||||
params['show_files'] = "1"
|
||||
}
|
||||
// Get info from the API
|
||||
return jQuery.get(folderBrowseUrl, params, function (data) {
|
||||
return process(data["paths"]);
|
||||
});
|
||||
},
|
||||
updater: function(item) {
|
||||
// Is it a relative path?
|
||||
if(item.indexOf(this.$element.data('initialdir')) === 0) {
|
||||
// Remove start
|
||||
return item.replace(this.$element.data('initialdir') + folderSeperator, '');
|
||||
}
|
||||
// Full path
|
||||
return item
|
||||
}
|
||||
})
|
||||
|
||||
$(document).ready(function () {
|
||||
/**
|
||||
Restart function
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="history" id="history-tab" data-bind="visible: hasHistory() || displayTabbed()" style="display: none">
|
||||
<div class="history" id="history-tab">
|
||||
<div class="history-header">
|
||||
<h2>$T('menu-history')</h2>
|
||||
<a href="#" data-bind="click: history.showMultiEdit">
|
||||
<h2>$T('menu-history') <small data-bind="visible: history.showArchive()">($T('archive'))</small></h2>
|
||||
<a href="#" data-bind="click: history.showMultiEdit, visible: hasHistory()">
|
||||
<span class="glyphicon glyphicon-tasks" data-tooltip="true" data-placement="left" title="$T('Glitter-multiOperations')"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -18,7 +18,16 @@
|
||||
<th style="width: 60px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-bind="foreach: history.historyItems">
|
||||
<!-- ko if: !hasHistory() -->
|
||||
<tbody class="no-downloads">
|
||||
<tr>
|
||||
<td colspan="6" data-bind="attr: { 'colspan': 5 + extraHistoryColumns().length }">
|
||||
<span>$T('empty')</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<!-- /ko -->
|
||||
<tbody data-bind="foreach: history.historyItems, visible: hasHistory()" style="display: none;">
|
||||
<tr class="history-item" data-bind="css: {'history-failed-download':failed()}">
|
||||
<td>
|
||||
<div data-bind="visible: processingWaiting()">
|
||||
@@ -108,7 +117,7 @@
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<a href="#" data-bind="click: deleteSlot">
|
||||
<a href="#" data-bind="click: parent.triggerRemoveDownload">
|
||||
<span class="hover-button glyphicon glyphicon-trash" data-bind="css: { 'glyphicon-stop' : processingDownload() == 2, disabled : processingDownload() == 1 }, attr: { title: processingDownload() == 2 ? '$T('abort')' : '$T('nzo-delete')' }"></span>
|
||||
</a>
|
||||
</td>
|
||||
@@ -130,20 +139,21 @@
|
||||
</ul>
|
||||
|
||||
<div class="multioperations-selector" id="history-options">
|
||||
<a href="#" class="hover-button" title="$T('link-retryAll')" data-tooltip="true" data-placement="left" data-bind="click: history.retryAllFailed"><span class="glyphicon glyphicon-repeat"></span></a>
|
||||
<a href="#" class="hover-button" title="$T('showAllHis') / $T('showFailedHis')" data-tooltip="true" data-placement="left" data-bind="click: history.toggleShowFailed, css: { 'history-options-show-failed': history.showFailed }"><span class="glyphicon glyphicon-exclamation-sign"></span></a>
|
||||
<a href="#" class="hover-button history-archive" title="$T('showArchive') / $T('showAllHis')" data-tooltip="true" data-placement="top" data-bind="click: history.toggleShowArchive, css: { 'history-options-show-failed': history.showArchive }"><svg viewBox="6 6 36 36" height="14" width="14" class="archive-icon"><path d="M41.09 10.45l-2.77-3.36c-.56-.66-1.39-1.09-2.32-1.09h-24c-.93 0-1.76.43-2.31 1.09l-2.77 3.36c-.58.7-.92 1.58-.92 2.55v25c0 2.21 1.79 4 4 4h28c2.21 0 4-1.79 4-4v-25c0-.97-.34-1.85-.91-2.55zm-17.09 24.55l-11-11h7v-4h8v4h7l-11 11zm-13.75-25l1.63-2h24l1.87 2h-27.5z"/></svg></a>
|
||||
<a href="#" class="hover-button" title="$T('showFailedHis') / $T('showAllHis')" data-tooltip="true" data-placement="top" data-bind="click: history.toggleShowFailed, css: { 'history-options-show-failed': history.showFailed }"><span class="glyphicon glyphicon-exclamation-sign"></span></a>
|
||||
<a href="#" class="hover-button" title="$T('link-retryAll')" data-tooltip="true" data-placement="top" data-bind="click: history.retryAllFailed"><span class="glyphicon glyphicon-repeat"></span></a>
|
||||
|
||||
<div data-bind="visible: history.isMultiEditing()">
|
||||
<div data-bind="visible: (history.isMultiEditing() && hasHistory())">
|
||||
<span class="label label-default" data-bind="text: history.multiEditItems().length">0</span>
|
||||
<label for="multiedit-checkall-history">
|
||||
<input type="checkbox" name="multieditCheckAll" id="multiedit-checkall-history" title="$T('Glitter-checkAll')" data-bind="click: history.checkAllJobs" data-tooltip="true" data-placement="top" />
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<a href="#" class="hover-button" title="$T('nzo-delete')" data-bind="visible: history.isMultiEditing(), click: history.doMultiDelete">
|
||||
<a href="#" class="hover-button" title="$T('nzo-delete')" data-bind="visible: (history.isMultiEditing() && hasHistory()), click: history.doMultiDelete" data-tooltip="true" data-placement="top">
|
||||
<span class="glyphicon glyphicon-trash"></span>
|
||||
</a>
|
||||
<a href="#modal-purge-history" class="hover-button" title="$T('purgeHist')" data-bind="visible: !history.isMultiEditing()" data-toggle="modal" data-tooltip="true" data-placement="left">
|
||||
<a href="#modal-purge-history" class="hover-button" title="$T('purgeHist')" data-bind="visible: !(history.isMultiEditing() && hasHistory())" data-toggle="modal" data-tooltip="true" data-placement="top">
|
||||
<span class="glyphicon glyphicon-trash"></span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -155,9 +165,3 @@
|
||||
<span data-bind="text: history.downloadedTotal"></span>B $T('Glitter-total')
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-container history-info" data-bind="visible: !hasHistory() && !displayTabbed()" style="display: none">
|
||||
<span class="glyphicon glyphicon-save"></span>
|
||||
<span data-bind="text: history.downloadedToday"></span>B $T('Glitter-today')
|
||||
<span data-bind="text: history.downloadedMonth"></span>B $T('Glitter-thisMonth')
|
||||
<span data-bind="text: history.downloadedTotal"></span>B $T('Glitter-total')
|
||||
</div>
|
||||
@@ -635,6 +635,59 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="modal-delete-queue-job" class="modal modal-delete-job fade" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title row-wrap-text">$T('removeNZB-Files')</h4>
|
||||
</div>
|
||||
<form data-bind="submit: queue.removeDownloads">
|
||||
<div class="modal-body">
|
||||
$T('confirm-delete')
|
||||
|
||||
<ul data-bind="foreach: queue.deleteItems">
|
||||
<li data-bind="text: name"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">$T('cancel')</button>
|
||||
<button type="submit" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> $T('nzo-delete')</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="modal-delete-history-job" class="modal modal-delete-job fade" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title row-wrap-text">$T('nzo-delete')</h4>
|
||||
</div>
|
||||
<form data-bind="submit: history.removeDownloads">
|
||||
<div class="modal-body">
|
||||
$T('confirm-delete')
|
||||
|
||||
<ul data-bind="foreach: history.deleteItems">
|
||||
<li data-bind="text: historyStatus.name"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" data-bind="checked: history.showArchive()"> <span>$T('permanently-delete')</span>
|
||||
</label>
|
||||
</div>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">$T('cancel')</button>
|
||||
<button type="submit" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> $T('nzo-delete')</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="modal-retry-job" class="modal modal-small fade" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
@@ -740,11 +793,18 @@
|
||||
<button type="button" class="btn btn-danger" data-bind="click: history.emptyHistory" data-action="history-purge-completed"><span class="glyphicon glyphicon-floppy-saved"></span> $T('purgeCompl')</button><hr />
|
||||
<button type="button" class="btn btn-danger" data-bind="click: history.emptyHistory" data-action="history-purge-page"><span class="glyphicon glyphicon-check"></span> $T('purgePage') <span class="label label-default" data-bind="text: history.historyItems().length"></span></button>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" data-bind="checked: history.showArchive()"> <span>$T('permanently-delete')</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="modal_custom_pause" class="modal modal-small fade" tabindex="-1">
|
||||
<div id="modal-custom-pause" class="modal modal-small fade" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
<a href="#" class="hover-button" title="$T('removeNZB-Files')" data-bind="click: removeDownload"><span class="glyphicon glyphicon-trash"></span></a>
|
||||
<a href="#" class="hover-button" title="$T('removeNZB-Files')" data-bind="click: parent.triggerRemoveDownload"><span class="glyphicon glyphicon-trash"></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -174,7 +174,7 @@
|
||||
<label for="multiedit-checkall-queue">
|
||||
<input type="checkbox" name="multieditCheckAll" id="multiedit-checkall-queue" title="$T('Glitter-checkAll')" data-bind="click: queue.checkAllJobs" data-tooltip="true" data-placement="top" />
|
||||
</label>
|
||||
<a href="#" class="hover-button" title="$T('removeNZB-Files')" data-bind="click: queue.doMultiDelete">
|
||||
<a href="#" class="hover-button" title="$T('removeNZB-Files')" data-bind="click: queue.doMultiDelete" data-tooltip="true" data-placement="top">
|
||||
<span class="glyphicon glyphicon-trash"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -9,10 +9,12 @@ function HistoryListModel(parent) {
|
||||
self.lastUpdate = 0;
|
||||
self.historyItems = ko.observableArray([])
|
||||
self.showFailed = ko.observable(false).extend({ persist: 'historyShowFailed' });
|
||||
self.showArchive = ko.observable(false).extend({ persist: 'historyShowArchive' });
|
||||
self.isLoading = ko.observable(false).extend({ rateLimit: 100 });
|
||||
self.searchTerm = ko.observable('').extend({ rateLimit: { timeout: 400, method: "notifyWhenChangesStop" } });
|
||||
self.paginationLimit = ko.observable(10).extend({ persist: 'historyPaginationLimit' });
|
||||
self.totalItems = ko.observable(0);
|
||||
self.deleteItems = ko.observableArray([]);
|
||||
self.ppItems = ko.observable(0);
|
||||
self.pagination = new paginationModel(self);
|
||||
self.isMultiEditing = ko.observable(false).extend({ persist: 'historyIsMultiEditing' });
|
||||
@@ -118,6 +120,27 @@ function HistoryListModel(parent) {
|
||||
self.parent.refresh(true)
|
||||
});
|
||||
|
||||
self.triggerRemoveDownload = function(items) {
|
||||
// Show and fill modal
|
||||
self.deleteItems.removeAll()
|
||||
|
||||
// Single or multiple items?
|
||||
if(items.length) {
|
||||
ko.utils.arrayPushAll(self.deleteItems, items)
|
||||
} else {
|
||||
self.deleteItems.push(items)
|
||||
}
|
||||
|
||||
// Show modal or delete right away
|
||||
if(self.parent.confirmDeleteHistory()) {
|
||||
// Open modal if desired
|
||||
$('#modal-delete-history-job').modal("show")
|
||||
} else {
|
||||
// Otherwise just submit right away
|
||||
$('#modal-delete-history-job form').submit()
|
||||
}
|
||||
}
|
||||
|
||||
// Retry a job
|
||||
self.retryJob = function(form) {
|
||||
// Adding a extra retry file happens through this special function
|
||||
@@ -176,10 +199,17 @@ function HistoryListModel(parent) {
|
||||
|
||||
// Toggle showing failed
|
||||
self.toggleShowFailed = function(data, event) {
|
||||
// Set the loader so it doesn't flicker and then switch
|
||||
self.isLoading(true)
|
||||
self.showFailed(!self.showFailed())
|
||||
// Forde hide tooltip so it doesn't linger
|
||||
// Force hide tooltip so it doesn't linger
|
||||
$('#history-options a').tooltip('hide')
|
||||
// Force refresh
|
||||
self.parent.refresh(true)
|
||||
}
|
||||
|
||||
// Toggle showing archive
|
||||
self.toggleShowArchive = function(data, event) {
|
||||
self.showArchive(!self.showArchive())
|
||||
// Force hide tooltip so it doesn't linger
|
||||
$('#history-options a').tooltip('hide')
|
||||
// Force refresh
|
||||
self.parent.refresh(true)
|
||||
@@ -201,11 +231,9 @@ function HistoryListModel(parent) {
|
||||
|
||||
// Empty history options
|
||||
self.emptyHistory = function(data, event) {
|
||||
// Make sure no flickering
|
||||
self.isLoading(true)
|
||||
|
||||
// What event?
|
||||
var whatToRemove = $(event.target).data('action');
|
||||
var skipArchive = $('#modal-purge-history input[type="checkbox"]').prop("checked")
|
||||
var del_files, value;
|
||||
|
||||
// Purge failed
|
||||
@@ -238,6 +266,7 @@ function HistoryListModel(parent) {
|
||||
mode: 'history',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
archive: (!skipArchive) * 1,
|
||||
value: strIDs
|
||||
}).then(function() {
|
||||
// Clear search, refresh and hide
|
||||
@@ -252,8 +281,9 @@ function HistoryListModel(parent) {
|
||||
callAPI({
|
||||
mode: 'history',
|
||||
name: 'delete',
|
||||
value: value,
|
||||
del_files: del_files
|
||||
del_files: del_files,
|
||||
archive: (!skipArchive) * 1,
|
||||
value: value
|
||||
}).then(function() {
|
||||
self.parent.refresh();
|
||||
$("#modal-purge-history").modal('hide');
|
||||
@@ -328,43 +358,68 @@ function HistoryListModel(parent) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Remove downloads from history
|
||||
self.removeDownloads = function(form) {
|
||||
// Hide modal and show notification
|
||||
$('#modal-delete-history-job').modal("hide")
|
||||
showNotification('.main-notification-box-removing')
|
||||
|
||||
var strIDsPP = '';
|
||||
var strIDsHistory = '';
|
||||
$.each(self.deleteItems(), function(index) {
|
||||
// Split in jobs that need post-processing aborted, and jobs that need to be deleted
|
||||
if(this.processingDownload() === 2) {
|
||||
strIDsPP = strIDsPP + this.id + ',';
|
||||
// These items should not be listed in the deletedItems later on
|
||||
// as active post-processing aren't removed from the history output
|
||||
self.deleteItems.remove(this)
|
||||
} else {
|
||||
strIDsHistory = strIDsHistory + this.id + ',';
|
||||
}
|
||||
})
|
||||
|
||||
// Trigger post-processing aborting
|
||||
if(strIDsPP !== "") {
|
||||
callAPI({
|
||||
mode: 'cancel_pp',
|
||||
value: strIDsPP
|
||||
}).then(function(response) {
|
||||
// Only hide and refresh
|
||||
self.parent.refresh();
|
||||
hideNotification()
|
||||
});
|
||||
}
|
||||
if(strIDsHistory !== "") {
|
||||
var skipArchive = $('#modal-delete-history-job input[type="checkbox"]').prop("checked")
|
||||
callAPI({
|
||||
mode: 'history',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
archive: (!skipArchive) * 1,
|
||||
value: strIDsHistory
|
||||
}).then(function(response) {
|
||||
self.historyItems.removeAll(self.deleteItems());
|
||||
self.multiEditItems.removeAll(self.deleteItems())
|
||||
self.parent.refresh();
|
||||
hideNotification()
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Delete all selected
|
||||
self.doMultiDelete = function() {
|
||||
// Anything selected?
|
||||
if(self.multiEditItems().length < 1) return;
|
||||
|
||||
// Need confirm
|
||||
if(!self.parent.confirmDeleteHistory() || confirm(glitterTranslate.removeDown)) {
|
||||
// List all the ID's
|
||||
var strIDs = '';
|
||||
$.each(self.multiEditItems(), function(index) {
|
||||
strIDs = strIDs + this.id + ',';
|
||||
})
|
||||
|
||||
// Show notification
|
||||
showNotification('.main-notification-box-removing-multiple', 0, self.multiEditItems().length)
|
||||
|
||||
// Remove
|
||||
callAPI({
|
||||
mode: 'history',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
value: strIDs
|
||||
}).then(function(response) {
|
||||
if(response.status) {
|
||||
// Make sure the queue doesnt flicker and then fade-out
|
||||
// Make sure no flickering (if there are more items left) and then remove
|
||||
self.isLoading(self.totalItems() > 1)
|
||||
self.parent.refresh();
|
||||
// Empty it
|
||||
self.multiEditItems.removeAll();
|
||||
// Hide notification
|
||||
hideNotification()
|
||||
}
|
||||
})
|
||||
}
|
||||
// Trigger modal
|
||||
self.triggerRemoveDownload(self.multiEditItems())
|
||||
}
|
||||
|
||||
// Focus on the confirm button
|
||||
$('#modal-delete-history-job').on("shown.bs.modal", function() {
|
||||
$('#modal-delete-history-job .btn[type="submit"]').focus()
|
||||
})
|
||||
|
||||
// On change of page we need to check all those that were in the list!
|
||||
self.historyItems.subscribe(function() {
|
||||
// We need to wait until the unit is actually finished rendering
|
||||
@@ -542,36 +597,4 @@ function HistoryModel(parent, data) {
|
||||
return false;
|
||||
})
|
||||
}
|
||||
|
||||
// Delete button
|
||||
self.deleteSlot = function(item, event) {
|
||||
// Confirm?
|
||||
if(!self.parent.parent.confirmDeleteHistory() || confirm(glitterTranslate.deleteMsg + ":\n" + item.historyStatus.name() + "\n\n" + glitterTranslate.removeDow1)) {
|
||||
// Are we still processing and it can be stopped?
|
||||
if(item.processingDownload() === 2) {
|
||||
callAPI({
|
||||
mode: 'cancel_pp',
|
||||
value: self.id
|
||||
})
|
||||
// All we can do is wait
|
||||
} else {
|
||||
// Delete the item
|
||||
callAPI({
|
||||
mode: 'history',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
value: self.id
|
||||
}).then(function(response) {
|
||||
if(response.status) {
|
||||
// Make sure no flickering (if there are more items left) and then remove
|
||||
self.parent.isLoading(self.parent.totalItems() > 1)
|
||||
self.parent.historyItems.remove(self);
|
||||
self.parent.multiEditItems.remove(function(inList) { return inList.id === self.id; })
|
||||
self.parent.parent.refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -120,8 +120,7 @@ function ViewModel() {
|
||||
|
||||
// Dynamic history length check
|
||||
self.hasHistory = ko.pureComputed(function() {
|
||||
// We also 'have history' if we can't find any results of the search or there are no failed ones
|
||||
return (self.history.historyItems().length > 0 || self.history.searchTerm() || self.history.showFailed() || self.history.isLoading())
|
||||
return (self.history.historyItems().length > 0 || self.history.searchTerm() || self.history.isLoading())
|
||||
})
|
||||
|
||||
self.hasWarnings = ko.pureComputed(function() {
|
||||
@@ -364,6 +363,7 @@ function ViewModel() {
|
||||
failed_only: self.history.showFailed() * 1,
|
||||
start: self.history.pagination.currentStart(),
|
||||
limit: parseInt(self.history.paginationLimit()),
|
||||
archive: self.history.showArchive() * 1,
|
||||
last_history_update: self.history.lastUpdate
|
||||
}
|
||||
if (self.history.searchTerm()) {
|
||||
@@ -431,19 +431,17 @@ function ViewModel() {
|
||||
return;
|
||||
}
|
||||
// Show modal
|
||||
$('#modal_custom_pause').modal('show')
|
||||
|
||||
// Focus on the input field
|
||||
$('#modal_custom_pause').on('shown.bs.modal', function() {
|
||||
$('#customPauseInput').focus()
|
||||
})
|
||||
|
||||
// Reset on modal close
|
||||
$('#modal_custom_pause').on('hide.bs.modal', function() {
|
||||
self.pauseCustom('');
|
||||
})
|
||||
$('#modal-custom-pause').modal('show')
|
||||
}
|
||||
|
||||
$('#modal-custom-pause').on('shown.bs.modal', function() {
|
||||
// Focus on the input field when opening the modal
|
||||
$('#customPauseInput').focus()
|
||||
}).on('hide.bs.modal', function() {
|
||||
// Reset on modal close
|
||||
self.pauseCustom('');
|
||||
})
|
||||
|
||||
// Update on changes
|
||||
self.pauseCustom.subscribe(function(newValue) {
|
||||
// Is it plain numbers?
|
||||
@@ -455,7 +453,7 @@ function ViewModel() {
|
||||
// At least 3 charaters
|
||||
if (newValue.length < 3) {
|
||||
$('#customPauseOutput').text('').data('time', 0)
|
||||
$('#modal_custom_pause .btn-default').addClass('disabled')
|
||||
$('#modal-custom-pause .btn-default').addClass('disabled')
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -480,11 +478,11 @@ function ViewModel() {
|
||||
var pauseDuration = Math.round((pauseParsed - Date.parse('now')) / 1000 / 60);
|
||||
$('#customPauseOutput').html('<span class="glyphicon glyphicon-pause"></span> ' + glitterTranslate.pauseFor + ' ' + pauseDuration + ' ' + glitterTranslate.minutes)
|
||||
$('#customPauseOutput').data('time', pauseDuration)
|
||||
$('#modal_custom_pause .btn-default').removeClass('disabled')
|
||||
$('#modal-custom-pause .btn-default').removeClass('disabled')
|
||||
} else if (newValue) {
|
||||
// No..
|
||||
$('#customPauseOutput').text(glitterTranslate.pausePromptFail)
|
||||
$('#modal_custom_pause .btn-default').addClass('disabled')
|
||||
$('#modal-custom-pause .btn-default').addClass('disabled')
|
||||
}
|
||||
})
|
||||
|
||||
@@ -503,7 +501,7 @@ function ViewModel() {
|
||||
// Refresh and close the modal
|
||||
self.refresh()
|
||||
self.downloadsPaused(true);
|
||||
$('#modal_custom_pause').modal('hide')
|
||||
$('#modal-custom-pause').modal('hide')
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ function QueueListModel(parent) {
|
||||
// External var's
|
||||
self.queueItems = ko.observableArray([]);
|
||||
self.totalItems = ko.observable(0);
|
||||
self.deleteItems = ko.observableArray([]);
|
||||
self.isMultiEditing = ko.observable(false).extend({ persist: 'queueIsMultiEditing' });
|
||||
self.isLoading = ko.observable(false).extend({ rateLimit: 100 });
|
||||
self.multiEditItems = ko.observableArray([]);
|
||||
@@ -147,6 +148,27 @@ function QueueListModel(parent) {
|
||||
|
||||
}
|
||||
|
||||
self.triggerRemoveDownload = function(items) {
|
||||
// Show and fill modal
|
||||
self.deleteItems.removeAll()
|
||||
|
||||
// Single or multiple items?
|
||||
if(items.length) {
|
||||
ko.utils.arrayPushAll(self.deleteItems, items)
|
||||
} else {
|
||||
self.deleteItems.push(items)
|
||||
}
|
||||
|
||||
// Show modal or delete right away
|
||||
if(self.parent.confirmDeleteQueue()) {
|
||||
// Open modal if desired
|
||||
$('#modal-delete-queue-job').modal("show")
|
||||
} else {
|
||||
// Otherwise just submit right away
|
||||
$('#modal-delete-queue-job form').submit()
|
||||
}
|
||||
}
|
||||
|
||||
// Save pagination state
|
||||
self.paginationLimit.subscribe(function(newValue) {
|
||||
// Save in config if global
|
||||
@@ -401,42 +423,44 @@ function QueueListModel(parent) {
|
||||
|
||||
}
|
||||
|
||||
// Remove downloads from queue
|
||||
self.removeDownloads = function(form) {
|
||||
// Hide modal and show notification
|
||||
$('#modal-delete-queue-job').modal("hide")
|
||||
showNotification('.main-notification-box-removing')
|
||||
|
||||
var strIDs = '';
|
||||
$.each(self.deleteItems(), function(index) {
|
||||
strIDs = strIDs + this.id + ',';
|
||||
})
|
||||
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
value: strIDs
|
||||
}).then(function(response) {
|
||||
self.queueItems.removeAll(self.deleteItems());
|
||||
self.multiEditItems.removeAll(self.deleteItems())
|
||||
self.parent.refresh();
|
||||
hideNotification()
|
||||
});
|
||||
};
|
||||
|
||||
// Delete all selected
|
||||
self.doMultiDelete = function() {
|
||||
// Anything selected?
|
||||
if(self.multiEditItems().length < 1) return;
|
||||
|
||||
// Need confirm
|
||||
if(!self.parent.confirmDeleteQueue() || confirm(glitterTranslate.removeDown)) {
|
||||
// List all the ID's
|
||||
var strIDs = '';
|
||||
$.each(self.multiEditItems(), function(index) {
|
||||
strIDs = strIDs + this.id + ',';
|
||||
})
|
||||
|
||||
// Show notification
|
||||
showNotification('.main-notification-box-removing-multiple', 0, self.multiEditItems().length)
|
||||
|
||||
// Remove
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
value: strIDs
|
||||
}).then(function(response) {
|
||||
if(response.status) {
|
||||
// Make sure the queue doesnt flicker and then fade-out
|
||||
self.isLoading(true)
|
||||
self.parent.refresh()
|
||||
// Empty it
|
||||
self.multiEditItems.removeAll();
|
||||
// Hide notification
|
||||
hideNotification()
|
||||
}
|
||||
})
|
||||
}
|
||||
// Trigger modal
|
||||
self.triggerRemoveDownload(self.multiEditItems())
|
||||
}
|
||||
|
||||
// Focus on the confirm button
|
||||
$('#modal-delete-queue-job').on("shown.bs.modal", function() {
|
||||
$('#modal-delete-queue-job .btn[type="submit"]').focus()
|
||||
})
|
||||
|
||||
// On change of page we need to check all those that were in the list!
|
||||
self.queueItems.subscribe(function() {
|
||||
// We need to wait until the unit is actually finished rendering
|
||||
@@ -711,29 +735,5 @@ function QueueModel(parent, data) {
|
||||
})
|
||||
}
|
||||
|
||||
// Remove 1 download from queue
|
||||
self.removeDownload = function(item, event) {
|
||||
// Confirm and remove
|
||||
if(!self.parent.parent.confirmDeleteQueue() || confirm(glitterTranslate.deleteMsg + ":\n" + item.name() + "\n\n" + glitterTranslate.removeDow1)) {
|
||||
var itemToDelete = this;
|
||||
|
||||
// Show notification
|
||||
showNotification('.main-notification-box-removing')
|
||||
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'delete',
|
||||
del_files: 1,
|
||||
value: item.id
|
||||
}).then(function(response) {
|
||||
// Make sure no flickering (if there are more items left) and then remove
|
||||
self.parent.isLoading(self.parent.totalItems() > 1)
|
||||
parent.queueItems.remove(itemToDelete);
|
||||
parent.multiEditItems.remove(function(inList) { return inList.id === itemToDelete.id; })
|
||||
self.parent.parent.refresh();
|
||||
// Hide notifcation
|
||||
hideNotification()
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -206,7 +206,8 @@ tbody .caret {
|
||||
.info-container,
|
||||
#modal-options .options-status-box small,
|
||||
#modal-options #options-status small,
|
||||
#modal-options .tab-content h4 {
|
||||
#modal-options .tab-content h4,
|
||||
h2 small {
|
||||
color: #D6D6D6;
|
||||
}
|
||||
|
||||
@@ -272,6 +273,10 @@ button:focus {
|
||||
outline: initial;
|
||||
}
|
||||
|
||||
.archive-icon {
|
||||
fill: #EBEBEB;
|
||||
}
|
||||
|
||||
::placeholder {
|
||||
color: #EBEBEB !important;
|
||||
opacity: 0.5 !important;
|
||||
|
||||
@@ -690,6 +690,10 @@ tbody.no-downloads tr td {
|
||||
border-bottom: 1px solid #F0F0F0 !important;
|
||||
}
|
||||
|
||||
tbody.no-downloads tr td>span {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
tbody.no-downloads tr td a {
|
||||
line-height: 2em;
|
||||
font-size: 1.5em;
|
||||
@@ -1103,20 +1107,26 @@ tr.queue-item>td:first-child>a {
|
||||
}
|
||||
|
||||
#history-options .hover-button {
|
||||
padding: 7px 8px 7px 8px;
|
||||
padding: 7px;
|
||||
line-height: 1.428571429;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#history-options .hover-button.history-archive {
|
||||
line-height: 1em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#history-options div {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#history-options input[name="multieditCheckAll"] {
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
top: -2px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
@@ -1186,6 +1196,10 @@ tr.queue-item>td:first-child>a {
|
||||
color: red !important;
|
||||
}
|
||||
|
||||
.history-options-show-failed .archive-icon {
|
||||
fill: #2bbd43;
|
||||
}
|
||||
|
||||
.processing-download {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
@@ -1521,6 +1535,34 @@ input[name="nzbURL"] {
|
||||
transition : border 500ms ease-out;
|
||||
}
|
||||
|
||||
/* DELETE MODAL */
|
||||
.modal-delete-job ul {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.modal-delete-job li {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.modal-delete-job .checkbox {
|
||||
float: left;
|
||||
margin: 8px 5px 0px;
|
||||
}
|
||||
|
||||
#modal-purge-history .checkbox {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.modal-delete-job .checkbox input,
|
||||
#modal-purge-history .checkbox input {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.modal-delete-job .checkbox input+span,
|
||||
#modal-purge-history .checkbox input+span {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* HELP MODAL */
|
||||
|
||||
#modal-help .modal-body {
|
||||
|
||||
@@ -30,8 +30,9 @@
|
||||
<url type="faq">https://sabnzbd.org/wiki/faq</url>
|
||||
<url type="contact">https://sabnzbd.org/live-chat.html</url>
|
||||
<releases>
|
||||
<release version="4.2.3" date="2024-03-10" type="stable"/>
|
||||
<release version="4.2.2" date="2024-01-31" type="stable"/>
|
||||
<release version="4.3.1" date="2024-05-03" type="stable"/>
|
||||
<release version="4.3.0" date="2024-05-01" type="stable"/>
|
||||
<release version="4.2.2" date="2024-02-01" type="stable"/>
|
||||
<release version="4.2.1" date="2024-01-05" type="stable"/>
|
||||
<release version="4.2.0" date="2024-01-03" type="stable"/>
|
||||
<release version="4.1.0" date="2023-09-26" type="stable"/>
|
||||
@@ -52,11 +53,13 @@
|
||||
<control>touch</control>
|
||||
</supports>
|
||||
<recommends>
|
||||
<display_length compare="ge">small</display_length>
|
||||
<display_length compare="ge">640</display_length>
|
||||
<internet>always</internet>
|
||||
</recommends>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<developer_name>The SABnzbd-Team</developer_name>
|
||||
<developer id="org.sabnzbd">
|
||||
<name>The SABnzbd-Team</name>
|
||||
</developer>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://sabnzbd.org/images/landing/screenshots/interface.png</image>
|
||||
|
||||
BIN
osx/7zip/7zz
BIN
osx/7zip/7zz
Binary file not shown.
@@ -1,88 +1,144 @@
|
||||
7-Zip
|
||||
~~~~~
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2021 Igor Pavlov.
|
||||
|
||||
The licenses for 7zz file are:
|
||||
|
||||
- The "GNU LGPL" as main license for most of the code
|
||||
- The "GNU LGPL" with "unRAR license restriction" for some code
|
||||
- The "BSD 3-clause License" for some code
|
||||
|
||||
Redistributions in binary form must reproduce related license information from this file.
|
||||
|
||||
Note:
|
||||
You can use 7-Zip on any computer, including a computer in a commercial
|
||||
organization. You don't need to register or pay for 7-Zip.
|
||||
|
||||
|
||||
GNU LGPL information
|
||||
--------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You can receive a copy of the GNU Lesser General Public License from
|
||||
http://www.gnu.org/
|
||||
|
||||
|
||||
|
||||
|
||||
BSD 3-clause License
|
||||
--------------------
|
||||
|
||||
The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression.
|
||||
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
|
||||
that also uses the "BSD 3-clause License":
|
||||
|
||||
----
|
||||
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
----
|
||||
|
||||
|
||||
|
||||
|
||||
unRAR license restriction
|
||||
-------------------------
|
||||
|
||||
The decompression engine for RAR archives was developed using source
|
||||
code of unRAR program.
|
||||
All copyrights to original unRAR code are owned by Alexander Roshal.
|
||||
|
||||
The license for original unRAR code has the following restriction:
|
||||
|
||||
The unRAR sources cannot be used to re-create the RAR compression algorithm,
|
||||
which is proprietary. Distribution of modified unRAR sources in separate form
|
||||
or as a part of other software is permitted, provided that it is clearly
|
||||
stated in the documentation and source comments that the code may
|
||||
not be used to develop a RAR (WinRAR) compatible archiver.
|
||||
|
||||
|
||||
--
|
||||
Igor Pavlov
|
||||
7-Zip for Linux and macOS
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
License for use and distribution
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
7-Zip Copyright (C) 1999-2024 Igor Pavlov.
|
||||
|
||||
The licenses for 7zz and 7zzs files are:
|
||||
|
||||
- The "GNU LGPL" as main license for most of the code
|
||||
- The "GNU LGPL" with "unRAR license restriction" for some code
|
||||
- The "BSD 3-clause License" for some code
|
||||
- The "BSD 2-clause License" for some code
|
||||
|
||||
Redistributions in binary form must reproduce related license information from this file.
|
||||
|
||||
Note:
|
||||
You can use 7-Zip on any computer, including a computer in a commercial
|
||||
organization. You don't need to register or pay for 7-Zip.
|
||||
|
||||
|
||||
GNU LGPL information
|
||||
--------------------
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You can receive a copy of the GNU Lesser General Public License from
|
||||
http://www.gnu.org/
|
||||
|
||||
|
||||
|
||||
|
||||
BSD 3-clause License in 7-Zip code
|
||||
----------------------------------
|
||||
|
||||
The "BSD 3-clause License" is used for the following code in 7z.dll
|
||||
1) LZFSE data decompression.
|
||||
That code was derived from the code in the "LZFSE compression library" developed by Apple Inc,
|
||||
that also uses the "BSD 3-clause License".
|
||||
2) ZSTD data decompression.
|
||||
that code was developed using original zstd decoder code as reference code.
|
||||
The original zstd decoder code was developed by Facebook Inc,
|
||||
that also uses the "BSD 3-clause License".
|
||||
|
||||
Copyright (c) 2015-2016, Apple Inc. All rights reserved.
|
||||
Copyright (c) Facebook, Inc. All rights reserved.
|
||||
Copyright (c) 2023-2024 Igor Pavlov.
|
||||
|
||||
Text of the "BSD 3-clause License"
|
||||
----------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
BSD 2-clause License in 7-Zip code
|
||||
----------------------------------
|
||||
|
||||
The "BSD 2-clause License" is used for the XXH64 code in 7-Zip.
|
||||
|
||||
XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.
|
||||
|
||||
Copyright (c) 2012-2021 Yann Collet.
|
||||
Copyright (c) 2023-2024 Igor Pavlov.
|
||||
|
||||
Text of the "BSD 2-clause License"
|
||||
----------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
unRAR license restriction
|
||||
-------------------------
|
||||
|
||||
The decompression engine for RAR archives was developed using source
|
||||
code of unRAR program.
|
||||
All copyrights to original unRAR code are owned by Alexander Roshal.
|
||||
|
||||
The license for original unRAR code has the following restriction:
|
||||
|
||||
The unRAR sources cannot be used to re-create the RAR compression algorithm,
|
||||
which is proprietary. Distribution of modified unRAR sources in separate form
|
||||
or as a part of other software is permitted, provided that it is clearly
|
||||
stated in the documentation and source comments that the code may
|
||||
not be used to develop a RAR (WinRAR) compatible archiver.
|
||||
|
||||
--
|
||||
|
||||
Binary file not shown.
BIN
osx/unrar/unrar
BIN
osx/unrar/unrar
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2RC1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: ION, 2020\n"
|
||||
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||
|
||||
#: email/email.tmpl:1
|
||||
msgid ""
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2RC1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
@@ -148,6 +148,62 @@ msgstr ""
|
||||
msgid "Test Notification"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not connect to %s on port %s. It appears that %s operates as a web server (port 80), possibly an indexer, not a usenet server. You have to fill a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr ""
|
||||
@@ -412,6 +468,11 @@ msgstr ""
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
@@ -604,10 +665,6 @@ msgstr ""
|
||||
msgid "API Key incorrect, Use the api key from Config->General in your 3rd party program:"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -617,10 +674,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -958,6 +1011,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1025,6 +1082,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1265,7 +1336,7 @@ msgstr ""
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr ""
|
||||
|
||||
@@ -2153,6 +2224,11 @@ msgstr ""
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr ""
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2173,6 +2249,11 @@ msgstr ""
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr ""
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2192,6 +2273,10 @@ msgstr ""
|
||||
msgid "Reset Quota now"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2212,6 +2297,11 @@ msgstr ""
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2598,24 +2688,32 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Automatically delete completed jobs from History. Beware that Duplicate Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid "Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -2939,17 +3037,16 @@ msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3359,14 +3456,6 @@ msgstr ""
|
||||
msgid "Bandwidth"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr ""
|
||||
@@ -3741,6 +3830,29 @@ msgstr ""
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4446,47 +4558,3 @@ msgstr ""
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
|
||||
229
po/main/cs.po
229
po/main/cs.po
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
@@ -165,6 +165,66 @@ msgstr "Email funční"
|
||||
msgid "Test Notification"
|
||||
msgstr "Otestovat notifikace"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa serveru \"%s:%s\" není správná."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Přihlášené selhalo, zkontrolujte jméno a heslo."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Překládám adresu"
|
||||
@@ -450,6 +510,11 @@ msgstr ""
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Příliš mnoho spojení k serveru %s [%s]"
|
||||
@@ -654,10 +719,6 @@ msgstr ""
|
||||
"Nesprávný API klíč, použijte api klíč z Nastavení->Obecné ve vašem programu "
|
||||
"třetí strany:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Přihlášené selhalo, zkontrolujte jméno a heslo."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -667,10 +728,6 @@ msgstr "Nezdařený pokus o přihlášení od %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa serveru \"%s:%s\" není správná."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1023,6 +1080,10 @@ msgstr "Server %s používá nedůvěryhodný certifikát [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1093,6 +1154,20 @@ msgstr "Nepodařilo se odeslat macOS oznámení"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Nepodařilo se odeslat Prowl zprávu"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1335,7 +1410,7 @@ msgstr "Vypnout"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Fronta prvních 10 položek"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Prázdný"
|
||||
|
||||
@@ -2229,6 +2304,11 @@ msgstr "Skripty"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Smazat všechny položky z fronty?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2249,6 +2329,11 @@ msgstr "Odstranit NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Odstranit NZB a smazat soubory"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2268,6 +2353,10 @@ msgstr "ručně"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Vynulovat kvótu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2288,6 +2377,11 @@ msgstr "Zobrazit neúspěšné"
|
||||
msgid "Show All"
|
||||
msgstr "Zobrazit vše"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2705,27 +2799,34 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "Retence historie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Zachovat všechny úkoly"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Maximální počet dokončených úkolů"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Počet dnů pro zachování dokončených ukolů "
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "Nauchovávat dokončené úkoly"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3081,17 +3182,16 @@ msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3527,14 +3627,6 @@ msgstr ""
|
||||
msgid "Bandwidth"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr ""
|
||||
@@ -3915,6 +4007,30 @@ msgstr ""
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4648,48 +4764,3 @@ msgstr ""
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Zkouším stáhnout NZB z %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
243
po/main/da.po
243
po/main/da.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
@@ -165,6 +165,69 @@ msgstr "E-mail afsendelse mislykkedes"
|
||||
msgid "Test Notification"
|
||||
msgstr "Afprøv notifikation"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Værtsnavnet er ikke indstillet."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Der er ingen forbindelser angivet. Angiv mindst én forbindelse."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Adgangskode maskeret med ******, forsøg igen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ugyldige serverdetaljer"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" er ikke gyldigt."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Timeout: Forsøg at aktivere SSL eller tilslut via en anden port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Timeout"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Ukendt SSL protokol: Prøv at deaktivere SSL eller forbinder på en anden "
|
||||
"port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serveren kræver brugernavn og adgangskode."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Tilslutning lykkedes!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkendelse mislykkedes, kontrollere brugernavn/adgangskode."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Alt for mange forbindelser, pause en download eller forsøg igen senere"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Det lykkedes ikke at tilslutte (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Server løsning"
|
||||
@@ -448,6 +511,11 @@ msgstr "Det lykkedes ikke at initialisere %s@%s med begrundelse %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Alt for mange forbindelser til serveren %s [%s]"
|
||||
@@ -662,10 +730,6 @@ msgstr ""
|
||||
"Forkert API-nøgle, anvend api-nøglen fra Konfiguration->Generelt i dit "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkendelse mislykkedes, kontrollere brugernavn/adgangskode."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -675,10 +739,6 @@ msgstr "Mislykkede login forsøg fra %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" er ikke gyldigt."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1027,6 +1087,10 @@ msgstr "Server %s bruger et upålidelig certifikat [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1097,6 +1161,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Kunne ikke sende Prowl besked"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1339,7 +1417,7 @@ msgstr "Afslut"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Kø (de første 10 poster)"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Tom"
|
||||
|
||||
@@ -2261,6 +2339,11 @@ msgstr "Scripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Fjern alt fra køen?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2281,6 +2364,11 @@ msgstr "Fjern NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Fjern NZB & slet filer"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2300,6 +2388,10 @@ msgstr "manuelt"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Nulstil kvota nu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2320,6 +2412,11 @@ msgstr "Vis mislykket"
|
||||
msgid "Show All"
|
||||
msgstr "Vis Alt"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2752,27 +2849,34 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Behold alle jobs"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Behold maximal antal af gennemførte jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Behold gennemførte jobs maximal antal af dage"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "Behold ikke gennemførte jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3147,20 +3251,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "Kassér"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Mislykkes job (flyt til historik)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "Marker job"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Afbryd"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Mislykkes job (flyt til historik)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3611,14 +3714,6 @@ msgstr "Tester serverdetaljer..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Båndbredde"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Send gruppe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Send gruppe kommandoen, før du anmoder om artikler."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Personlige notater"
|
||||
@@ -4003,6 +4098,30 @@ msgstr "Enhed"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Enhed som meddelse skal sendes til"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4754,51 +4873,3 @@ msgstr "URL hentning mislykkedes; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Forsøger at hente NZB fra %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Værtsnavnet er ikke indstillet."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Der er ingen forbindelser angivet. Angiv mindst én forbindelse."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Adgangskode maskeret med ******, forsøg igen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ugyldige serverdetaljer"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Timeout: Forsøg at aktivere SSL eller tilslut via en anden port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Timeout"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Ukendt SSL protokol: Prøv at deaktivere SSL eller forbinder på en anden "
|
||||
"port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serveren kræver brugernavn og adgangskode."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Tilslutning lykkedes!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Alt for mange forbindelser, pause en download eller forsøg igen senere"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Det lykkedes ikke at tilslutte (%s)"
|
||||
|
||||
263
po/main/de.po
263
po/main/de.po
@@ -11,14 +11,14 @@
|
||||
# Nils Briggen, 2022
|
||||
# reloxx13 <reloxx@interia.pl>, 2022
|
||||
# kameb, 2023
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
# HandyDandy04, 2024
|
||||
# Safihre <safihre@sabnzbd.org>, 2024
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: HandyDandy04, 2024\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -182,6 +182,75 @@ msgstr "E-Mail erfolgreich versendet"
|
||||
msgid "Test Notification"
|
||||
msgstr "Benachrichtigungen testen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Der Hostname wurde nicht angegeben"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Keine Verbindungen angegeben. Bitte geben Sie mindestens eine Verbindung "
|
||||
"ein."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Passwort ist als ****** maskiert. Bitte erneut eingeben."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ungültige Server-Angaben"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Server-Adresse \"%s:%s\" ist ungültig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Zeitüberschreitung: Versuche es mit eingeschalteten SSL oder einen anderen "
|
||||
"Port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Zeitüberschreitung"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Unbekanntes SSL-Protokoll: SSL deaktivieren oder alternativen Port "
|
||||
"versuchen."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server benötigt ein Benutzername und ein Passwort."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Verbindung erfolgreich hergestellt!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
"Authentifizierung fehlgeschlagen. Überprüfen Sie Benutzername und Passwort."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Zu viele Verbindungen. Bitte halten Sie die Downloads an oder versuchen Sie "
|
||||
"es später erneut."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Die Verbindung konnte nicht überprüft werden. (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Adresse wird aufgelöst …"
|
||||
@@ -481,6 +550,11 @@ msgstr "Fehler %s@%s zu initialisieren, aus folgendem Grund: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr "Schwerer Fehler im Downloader"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zu viele Verbindungen zu Server %s [%s]"
|
||||
@@ -705,11 +779,6 @@ msgstr ""
|
||||
"API-Schlüssel ungültig. Bitte API-Schlüssel aus Einstellungen->Allgemein in "
|
||||
"die externe Anwendung eingeben:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
"Authentifizierung fehlgeschlagen. Überprüfen Sie Benutzername und Passwort."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -719,10 +788,6 @@ msgstr "Fehlerhafter Login Versuch von %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr "Invalides Backup Archiv"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Server-Adresse \"%s:%s\" ist ungültig."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1085,6 +1150,10 @@ msgstr "Der Server %s verwendet ein nicht vertrauenswürdiges Zertifikat [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1155,6 +1224,20 @@ msgstr "Senden von macOS Benachrichtigung fehlgeschlagen"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Prowl-Nachricht konnte nicht versendet werden"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1400,7 +1483,7 @@ msgstr "Beenden"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Warteschlange mit den 10 obersten Einträgen"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Leer"
|
||||
|
||||
@@ -2335,6 +2418,11 @@ msgstr "Skripte"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Alle Elemente in der Warteschlange löschen?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2355,6 +2443,11 @@ msgstr "NZB löschen"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "NZBs und Dateien löschen"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2374,6 +2467,10 @@ msgstr "Manuell"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Kontingent jetzt zurücksetzen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2394,6 +2491,11 @@ msgstr "Nur Fehlgeschlagene"
|
||||
msgid "Show All"
|
||||
msgstr "Alle anzeigen"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2852,29 +2954,34 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "Verlaufsgröße"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
"Fertige Aufträge automatisch aus dem Verlauf entfernen. Duplikatserkennung "
|
||||
"und manche externe Skripte benötigen Informationen aus dem Verlauf."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Alle Aufträge behalten"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Behalte maximale Anzahl an abgeschlossenen Aufträgen"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Behalte abgeschlossene Aufträge maximal X Tage"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "Fertige Aufträge nicht behalten"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -2956,7 +3063,7 @@ msgstr "NZB Dateien hinzufügen "
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "API (no Config)"
|
||||
msgstr "API (kein Einstellungen)"
|
||||
msgstr "API (ohne Einstellungen)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Full API"
|
||||
@@ -3276,20 +3383,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "Verwerfen"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Aufgabe abgebrochen (verschoben in die Historie)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "Markiere Auftrag"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Abbrechen"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Aufgabe abgebrochen (verschoben in die Historie)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3770,14 +3876,6 @@ msgstr "Server-Angaben werden überprüft …"
|
||||
msgid "Bandwidth"
|
||||
msgstr "Bandbreite"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Gruppe senden"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Gruppen-Befehl senden, bevor Artikeln angefordert werden."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Persönliche Notizen"
|
||||
@@ -4168,6 +4266,30 @@ msgstr "Gerät"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Geräte, welche die Benachrichtigungen empfangen sollen"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4934,56 +5056,3 @@ msgstr "Abrufen der URL fehlgeschlagen; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "NZB-Datei wird versucht von %s abzurufen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Der Hostname wurde nicht angegeben"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Keine Verbindungen angegeben. Bitte geben Sie mindestens eine Verbindung "
|
||||
"ein."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Passwort ist als ****** maskiert. Bitte erneut eingeben."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ungültige Server-Angaben"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Zeitüberschreitung: Versuche es mit eingeschalteten SSL oder einen anderen "
|
||||
"Port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Zeitüberschreitung"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Unbekanntes SSL-Protokoll: SSL deaktivieren oder alternativen Port "
|
||||
"versuchen."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server benötigt ein Benutzername und ein Passwort."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Verbindung erfolgreich hergestellt!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Zu viele Verbindungen. Bitte halten Sie die Downloads an oder versuchen Sie "
|
||||
"es später erneut."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Die Verbindung konnte nicht überprüft werden. (%s)"
|
||||
|
||||
246
po/main/es.po
246
po/main/es.po
@@ -8,7 +8,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
@@ -174,6 +174,69 @@ msgstr "Email exitoso"
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificación de prueba"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "El hostname no está definido."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "No se han configurado conexiones. Configure al menos una conexión."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Contraseña protejido por ******, favor reingresar"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalles de servidor invalidos"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "La dirección del servidor «%s:%s» no es válida."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Tiempo agotado: Trate conectar en puerto diferente o encender SSL."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tiempo agotado"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Protocolo SSL desconocido: intente desabilitar el SSL o conectarse a un "
|
||||
"puerto diferente."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "El servidor necesita usuario y contraseña."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "¡Conexión exitosa!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autenticación fallida, compruebe el usuario o la contraseña."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Demasiadas conexiones; pause las descargas o inténtelo de nuevo más tarde"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "No se pudo determinar el resultado de la conexión (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Resolviendo sitio"
|
||||
@@ -469,6 +532,11 @@ msgstr "Error al inicializar %s@%s con la razón: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Demasiadas conexiones con el servidor %s [%s]"
|
||||
@@ -684,10 +752,6 @@ msgstr ""
|
||||
"Clave de API erróneo, favor ingresar la clave correcta desde Config->General"
|
||||
" en tu aplicacion externa:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autenticación fallida, compruebe el usuario o la contraseña."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -697,10 +761,6 @@ msgstr "Intento fallido de inicio de sesión desde %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "La dirección del servidor «%s:%s» no es válida."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1067,6 +1127,10 @@ msgstr "El servidor %s utiliza un certificado que no es de confianza [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1137,6 +1201,20 @@ msgstr "Fallo al enviar la notificación macOS"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "No se pudo enviar el mensaje de Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1384,7 +1462,7 @@ msgstr "Salir"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Encolar los primeros 10 elementos"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Vacía"
|
||||
|
||||
@@ -2317,6 +2395,11 @@ msgstr "Scripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "¿Eliminar todos los elementos de la cola?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2337,6 +2420,11 @@ msgstr "Eliminar NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Eliminar NZB y Eliminar Ficheros"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2356,6 +2444,10 @@ msgstr "manual"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Reinicializar Quota ahora"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2376,6 +2468,11 @@ msgstr "Mostrar los Fallidos"
|
||||
msgid "Show All"
|
||||
msgstr "Mostrar Todo"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2819,30 +2916,34 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "Historial de retención"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
"Elimina tareas completas de forma automática del historial. Tenga en cuenta "
|
||||
"que la detección de duplicados y algunas herramientas externas dependen de "
|
||||
"la información del historial."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Mantener todas las tareas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Mantener un máximo de tareas completas"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Mantener las tareas completas un máximo de días"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "No mantener ninguna tarea completa"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3223,20 +3324,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "Descartar"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Tarea fallida (mover a historial)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "Etiquetar tarea"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Abortar"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Tarea fallida (mover a historial)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3702,14 +3802,6 @@ msgstr "Testeando información del servidor"
|
||||
msgid "Bandwidth"
|
||||
msgstr "Ancho de Banda"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Enviar Group"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Enviar comando group antes de solicitar los artículos."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Notas personales"
|
||||
@@ -4097,6 +4189,30 @@ msgstr "Dispositivo"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Dispositivo al que enviar el mensaje"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4854,51 +4970,3 @@ msgstr "Error al recuperar la URL; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Tratando de buscar NZB de %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "El hostname no está definido."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "No se han configurado conexiones. Configure al menos una conexión."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Contraseña protejido por ******, favor reingresar"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalles de servidor invalidos"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Tiempo agotado: Trate conectar en puerto diferente o encender SSL."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tiempo agotado"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Protocolo SSL desconocido: intente desabilitar el SSL o conectarse a un "
|
||||
"puerto diferente."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "El servidor necesita usuario y contraseña."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "¡Conexión exitosa!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Demasiadas conexiones; pause las descargas o inténtelo de nuevo más tarde"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "No se pudo determinar el resultado de la conexión (%s)"
|
||||
|
||||
227
po/main/fi.po
227
po/main/fi.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
@@ -167,6 +167,67 @@ msgstr "Sähköpostitus onnistui"
|
||||
msgid "Test Notification"
|
||||
msgstr "Testaa ilmoitusta"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Isäntänimeä ei ole asetettu."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Yhteyksiä ei ole asetettu. Aktivoi ainakin yksi yhteys."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Salasana on piilotettu ******, syötä uudelleen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Virheelliset palvelimen tiedot"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Palvelimen osoite \"%s:%s\" ei ole kelvollinen."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Aikakatkaistu: Yritä laittaa SSL päälle tai yhdistä toiseen porttiin."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Aikakatkaistiin"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tuntematon SSL protokolla: Kokeile ottaa SSL käytöstä tai vaihda porttia."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Palvelin vaatii käyttäjänimen ja salasanan."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Yhdistäminen onnistui!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Varmennus epäonnistui, tarkista käyttäjänimi/salasana."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "Liikaa yhteyksiä, keskeytä lataaminen tai yritä myöhemmin uudelleen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Yhteystestin lopputulosta ei voitu määrittää (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Selvitetään osoitetta"
|
||||
@@ -445,6 +506,11 @@ msgstr "Alustaminen epäonnistui kohteessa %s@%s syy: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Liikaa yhteyksiä palvelimelle %s [%s]"
|
||||
@@ -659,10 +725,6 @@ msgstr ""
|
||||
"API avain virheellinen, käytä Asetukset->Yleiset löytyvää api avainta "
|
||||
"käyttämääsi kolmannen osapuolen ohjelmaan:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Varmennus epäonnistui, tarkista käyttäjänimi/salasana."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -672,10 +734,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Palvelimen osoite \"%s:%s\" ei ole kelvollinen."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1021,6 +1079,10 @@ msgstr "Palvelin %s käyttää epäluotettavaa sertifikaattia [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1091,6 +1153,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Prowl viestin lähetys epäonnistui"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1333,7 +1409,7 @@ msgstr "Lopeta"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Vie ensimmäiset 10 kohdetta jonoon"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Tyhjä"
|
||||
|
||||
@@ -2255,6 +2331,11 @@ msgstr "Skriptit"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Poistetaanko kaikki kohteet jonosta?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2275,6 +2356,11 @@ msgstr "Poista NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Poista NZB ja tiedostot"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2294,6 +2380,10 @@ msgstr "käsikäyttöinen"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Resetoi latausrajoitus nyt"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2314,6 +2404,11 @@ msgstr "Näytä epäonnistuneet"
|
||||
msgid "Show All"
|
||||
msgstr "Näytä kaikki"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2752,26 +2847,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3156,18 +3258,17 @@ msgstr "Hylkää"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Peruuta"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3617,14 +3718,6 @@ msgstr "Testataan pavelimen tietoja..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Kaista"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Lähetä ryhmä"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Lähettää ryhmäkomennon ennen artikkeleiden pyytämistä."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Henkilökohtaiset huomautukset"
|
||||
@@ -4009,6 +4102,30 @@ msgstr "Laite"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Laite johon viesti lähetetään"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4764,49 +4881,3 @@ msgstr "Osoitteen nouto epäonnistui; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Yritetään noutaa NZB osoitteesta %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Isäntänimeä ei ole asetettu."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Yhteyksiä ei ole asetettu. Aktivoi ainakin yksi yhteys."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Salasana on piilotettu ******, syötä uudelleen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Virheelliset palvelimen tiedot"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Aikakatkaistu: Yritä laittaa SSL päälle tai yhdistä toiseen porttiin."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Aikakatkaistiin"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tuntematon SSL protokolla: Kokeile ottaa SSL käytöstä tai vaihda porttia."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Palvelin vaatii käyttäjänimen ja salasanan."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Yhdistäminen onnistui!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "Liikaa yhteyksiä, keskeytä lataaminen tai yritä myöhemmin uudelleen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Yhteystestin lopputulosta ei voitu määrittää (%s)"
|
||||
|
||||
265
po/main/fr.po
265
po/main/fr.po
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
@@ -176,6 +176,76 @@ msgstr "L'envoi de l'e-mail a réussi"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test de Notification"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Le nom d'hôte n'est pas défini."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Aucune connexion n'est configurée. Veuillez définir au moins une connexion."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Mot de passe masqué en ******, veuillez le ressaisir."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Paramètres serveur incorrects"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
"Impossible de se connecter à %s sur le port %s. Il semble que %s fonctionne "
|
||||
"comme un serveur web (port 80), peut-être un indexeur, et non comme un "
|
||||
"serveur Usenet. Vous devez spécifier un serveur Usenet."
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "L' adresse du serveur \"%s:%s\" n'est pas valide."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Délai dépassé : essayez d'activer SSL ou de vous connecter sur un port "
|
||||
"différent."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Délai dépassé"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Protocole SSL inconnu: essayez de désactiver SSL ou de vous connecter sur un"
|
||||
" autre port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Le serveur requiert un identifiant et un mot de passe."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Connexion réussie!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Echec d'authentification, vérifiez les identifiant/mot de passe."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Trop de connexions, veuillez mettre en pause le téléchargement ou essayer "
|
||||
"plus tard"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Impossible de déterminer le résultat de la connexion (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Résolution de l'adresse"
|
||||
@@ -476,6 +546,11 @@ msgstr "Échec d'initialisation de %s@%s pour la raison suivante : %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr "Erreur fatale dans le Téléchargeur"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr "%s@%s a reçu le code d'état inconnu %s pour l'article %s"
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Trop de connexions au serveur %s [%s]"
|
||||
@@ -700,10 +775,6 @@ msgstr ""
|
||||
"Clé API incorrecte, utilisez la clé API de la configuration générale dans "
|
||||
"votre application tierce :"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Echec d'authentification, vérifiez les identifiant/mot de passe."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -713,10 +784,6 @@ msgstr "Echec de la tentative de connexion de %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr "Archives de sauvegarde non valides"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "L' adresse du serveur \"%s:%s\" n'est pas valide."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1079,6 +1146,10 @@ msgstr "Le serveur %s utilise un certificat peu fiable [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr "Échec de la connexion : %s %s@%s:%s (%s)"
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1149,6 +1220,20 @@ msgstr "Échec de l'envoi de la notification macOS"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Échec d'envoi du message Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr "Une ou plusieurs URL Apprise n'ont pas pu être chargées."
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr "Échec de l'envoi d'une ou plusieurs notifications Apprise."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr "Échec d'envoi du message Apprise"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1391,7 +1476,7 @@ msgstr "Quitter"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Mettre en file d'attente les 10 premiers articles"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Vide"
|
||||
|
||||
@@ -2326,6 +2411,11 @@ msgstr "Scripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Supprimer tous les éléments de la file d'attente ?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer ces tâches ?"
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2346,6 +2436,11 @@ msgstr "Supprimer NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Supprimer le NZB & supprimer les fichiers"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr "Supprimer définitivement (ignorer l'archivage)"
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2365,6 +2460,10 @@ msgstr "manuel"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Réinitialiser le quota maintenant"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr "Archives"
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2385,6 +2484,11 @@ msgstr "Afficher les échoués"
|
||||
msgid "Show All"
|
||||
msgstr "Afficher Tout"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr "Afficher les archives"
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2842,30 +2946,38 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "Conservation de l'historique"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
"Supprimer automatiquement les tâches terminées de l'historique. Attention, "
|
||||
"la Détection des Doublons et certains outils externes s'appuient sur les "
|
||||
"informations de l'historique."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Conserver toutes les tâches"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Nombre maximum de tâches complétées historisées"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
"Déplacez les tâches vers les archives si l'historique dépasse le nombre de "
|
||||
"tâches spécifié"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Durée maximale d'historisation des tâches complétées"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
"Supprimer les tâches si l'historique dépasse le nombre de tâches spécifié"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "Ne conserver aucune tâche terminée"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
"Déplacer les tâches vers les archives après le nombre de jours spécifié"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr "Supprimer les tâches après le nombre de jours spécifié"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr "Déplacer tous les tâches terminées vers les archives"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr "Supprimer toutes les tâches terminées"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3268,20 +3380,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "Rejeter"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Faire échouer la tâche (déplacer vers l'historique)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "Taguer la tâche"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Annuler"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Faire échouer la tâche (déplacer vers l'historique)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr "Abandonner le post-traitement"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3760,14 +3871,6 @@ msgstr "Test des détails du serveur en cours..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Bande passante"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Envoyer 'Group'"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Envoyer la commande 'group' avant la demande des articles."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Notes personnelles"
|
||||
@@ -4158,6 +4261,34 @@ msgstr "Appareil"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Appareil sur lequel le message doit être envoyé"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr "Activer les notifications Apprise"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
"Envoyer des notifications en utilisant Apprise vers presque n'importe quel "
|
||||
"service de notification"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr "URLs par défaut d'Apprise"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr "Utilisez une virgule et/ou un espace pour identifier plusieurs URL."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
"Remplacez les URL par défaut pour les types de notifications spécifiques ci-"
|
||||
"dessous, si vous le souhaitez."
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4933,55 +5064,3 @@ msgstr "Échec de récupération de l'URL ; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Essai de récupération du NZB depuis %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Le nom d'hôte n'est pas défini."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Aucune connexion n'est configurée. Veuillez définir au moins une connexion."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Mot de passe masqué en ******, veuillez le ressaisir."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Paramètres serveur incorrects"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Délai dépassé : essayez d'activer SSL ou de vous connecter sur un port "
|
||||
"différent."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Délai dépassé"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Protocole SSL inconnu: essayez de désactiver SSL ou de vous connecter sur un"
|
||||
" autre port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Le serveur requiert un identifiant et un mot de passe."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Connexion réussie!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Trop de connexions, veuillez mettre en pause le téléchargement ou essayer "
|
||||
"plus tard"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Impossible de déterminer le résultat de la connexion (%s)"
|
||||
|
||||
260
po/main/he.po
260
po/main/he.po
@@ -3,19 +3,19 @@
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
# ION, 2023
|
||||
# ION, 2024
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: ION, 2023\n"
|
||||
"Last-Translator: ION, 2024\n"
|
||||
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||
|
||||
#. Notification - Status page, table column header, actual message
|
||||
#: SABnzbd.py, sabnzbd/notifier.py, sabnzbd/skintext.py
|
||||
@@ -164,6 +164,66 @@ msgstr "דוא״ל הצליח"
|
||||
msgid "Test Notification"
|
||||
msgstr "בחן התראה"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "שם המארח לא נקבע."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "אין חיבורים שנקבעו. אנא קבע לפחות חיבור אחד."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "סיסמאות מוסוות באמצעות ******, אנא הכנס מחדש"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "פרטי שרת בלתי תקפים"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "כתובת השרת \"%s:%s\" אינה תקפה."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "פסק זמן חלף: נסה לאפשר SSL או להתחבר על פתחה שונה."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "אזל הזמן"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr "פרוטוקול SSL בלתי ידוע: נסה להשבית SSL או להתחבר על פתחה שונה."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ".השרת דורש שם משתמש וסיסמה"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "חיבור מוצלח!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "אימות נכשל, בדוק שם משתמש/סיסמה."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "יותר מדי חיבורים, אנא השהה הורדה או נסה שוב מאוחר יותר"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "(%s) לא היה ניתן לקבוע תוצאת חיבור"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "פותר כתובת"
|
||||
@@ -280,7 +340,7 @@ msgstr ""
|
||||
#. Warning message
|
||||
#: sabnzbd/cfg.py
|
||||
msgid "Network path \"%s\" should not be used here"
|
||||
msgstr ""
|
||||
msgstr "נתיב הרשת \"%s\" לא אמור להיות בשימוש כאן"
|
||||
|
||||
#: sabnzbd/cfg.py
|
||||
msgid "Queue not empty, cannot change folder."
|
||||
@@ -449,6 +509,11 @@ msgstr "כישלון באתחול %s@%s עם סיבה: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr "שגיאה גורלית במורידן"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "יותר מדי חיבורים לשרת %s [%s]"
|
||||
@@ -663,10 +728,6 @@ msgid ""
|
||||
"program:"
|
||||
msgstr "מפתח API שגוי, השתמש במפתח ה־API מתצורה->כללי בתוכנית הצד השלישי שלך:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "אימות נכשל, בדוק שם משתמש/סיסמה."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -676,10 +737,6 @@ msgstr "ניסיון כניסה בלתי מוצלח מן %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr "ארכיון בלתי תקף של גיבוי"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "כתובת השרת \"%s:%s\" אינה תקפה."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -742,6 +799,7 @@ msgstr "הקודם"
|
||||
msgid ""
|
||||
"To prevent all helpful warnings, disable Special setting 'helpful_warnings'."
|
||||
msgstr ""
|
||||
"כדי למנוע את כל האזהרות המועילות, השבת את ההגדרה המיוחדת 'helpful_warnings'."
|
||||
|
||||
#: sabnzbd/misc.py
|
||||
msgid "d"
|
||||
@@ -1028,6 +1086,10 @@ msgstr "השרת %s משתמש בתעודה בלתי מהימנה [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "וויקי"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1078,7 +1140,7 @@ msgstr "הודעות אחרות"
|
||||
#. Notification action
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Open folder"
|
||||
msgstr ""
|
||||
msgstr "פתח תיקייה"
|
||||
|
||||
#. Notification action
|
||||
#: sabnzbd/notifier.py, sabnzbd/sabtray.py, sabnzbd/sabtraylinux.py
|
||||
@@ -1098,6 +1160,20 @@ msgstr "כישלון בשליחת התראת macOS"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "כישלון בשליחת הודעת Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr "כתובת Apprise אחת או יותר לא יכלו להיטען."
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr "כישלון בשליחת התראת Apprise אחת או יותר"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr "כישלון בשליחת הודעת Apprise"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1340,7 +1416,7 @@ msgstr "צא"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "הוסף לתור 10 פריטים ראשונים"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "ריק"
|
||||
|
||||
@@ -2110,7 +2186,7 @@ msgstr "פורום"
|
||||
#. Main menu item
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Live Chat"
|
||||
msgstr ""
|
||||
msgstr "צ'אט חי"
|
||||
|
||||
#. Main menu item
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -2266,6 +2342,11 @@ msgstr "תסריטים"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "למחוק את כל הפריטים מהתור?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2286,6 +2367,11 @@ msgstr "הסר NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "הסר NZB ומחק קבצים"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2305,6 +2391,10 @@ msgstr "ידני"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "אפס מכסה כעת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2325,6 +2415,11 @@ msgstr "הראה נכשלים"
|
||||
msgid "Show All"
|
||||
msgstr "הראה הכל"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2607,11 +2702,11 @@ msgstr "פתחה אשר SABnzbd צריך להאזין אליה."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Web Interface Theme"
|
||||
msgstr ""
|
||||
msgstr "ערכת נושא של ממשק רשת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Choose a theme."
|
||||
msgstr ""
|
||||
msgstr "בחר ערכת נושא."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "SABnzbd Username"
|
||||
@@ -2764,29 +2859,34 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "שימור היסטוריה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
"מחק באופן אוטומטי עבודות שלמות מההיסטוריה. שים לב ששימור כפול ומספר כלים "
|
||||
"חיצוניים מסתמכים על מידע היסטוריה."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "שמור את כל העבודות"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "שמור מספר מרבי של עבודות שלמות"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "שמור מספר ימים מרבי של עבודות שלמות"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "אל תשמור עבודות שלמות כלשהן"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3160,20 +3260,19 @@ msgstr "עקוף גילוי שכפולים חכם אם PROPER, REAL או REPACK
|
||||
msgid "Discard"
|
||||
msgstr "השלך"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "הכשל עבודה (העבר להיסטוריה)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "הצמד תג לעבודה"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "בטל"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "הכשל עבודה (העבר להיסטוריה)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr "בטל בתר־עיבוד"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3626,14 +3725,6 @@ msgstr "בוחן פרטי שרת…"
|
||||
msgid "Bandwidth"
|
||||
msgstr "רוחב פס"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "שלח קבוצה"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "פקודת שלח קבוצה לפני בקשת מאמרים."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "הערות אישיות"
|
||||
@@ -4019,6 +4110,32 @@ msgstr "התקן"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "מכשיר אליו הודעה תישלח"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr "אפשר התראות Apprise"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr "שלח התראות ע״י שימוש בשירות Apprise אל כמעט כל שירות התראות"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr "כתובות Apprise ברירות מחדל"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr "השתמש בפסיק, ברווח או בשניהם כדי לזהות יותר מכתובת אחת."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
"דרוס את כתובות ברירות המחדל עבור סוגי התראה מסויימים שמצויינים למטה, אם תרצה"
|
||||
" בכך."
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4505,6 +4622,8 @@ msgid ""
|
||||
"When you Retry a job, 'Duplicate Detection' and 'Abort jobs that cannot be "
|
||||
"completed' are disabled."
|
||||
msgstr ""
|
||||
"כשאתה מנסה שוב עבודה, העבודות 'גילוי שכפולים' ו'בטל עבודות שאינן יכולות "
|
||||
"להיות שלמות' מושבתות."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "View Script Log"
|
||||
@@ -4774,48 +4893,3 @@ msgstr "משיכת כתובת נכשלה; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "מנסה למשוך קובץ NZB מן %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "שם המארח לא נקבע."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "אין חיבורים שנקבעו. אנא קבע לפחות חיבור אחד."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "סיסמאות מוסוות באמצעות ******, אנא הכנס מחדש"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "פרטי שרת בלתי תקפים"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "פסק זמן חלף: נסה לאפשר SSL או להתחבר על פתחה שונה."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "אזל הזמן"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr "פרוטוקול SSL בלתי ידוע: נסה להשבית SSL או להתחבר על פתחה שונה."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ".השרת דורש שם משתמש וסיסמה"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "חיבור מוצלח!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "יותר מדי חיבורים, אנא השהה הורדה או נסה שוב מאוחר יותר"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "(%s) לא היה ניתן לקבוע תוצאת חיבור"
|
||||
|
||||
223
po/main/it.po
223
po/main/it.po
@@ -3,7 +3,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -155,6 +155,66 @@ msgstr ""
|
||||
msgid "Test Notification"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr ""
|
||||
@@ -432,6 +492,11 @@ msgstr ""
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
@@ -632,10 +697,6 @@ msgid ""
|
||||
"program:"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -645,10 +706,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -993,6 +1050,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1063,6 +1124,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1305,7 +1380,7 @@ msgstr ""
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr ""
|
||||
|
||||
@@ -2199,6 +2274,11 @@ msgstr ""
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr ""
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2219,6 +2299,11 @@ msgstr ""
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr ""
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2238,6 +2323,10 @@ msgstr ""
|
||||
msgid "Reset Quota now"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2258,6 +2347,11 @@ msgstr ""
|
||||
msgid "Show All"
|
||||
msgstr ""
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2675,26 +2769,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3049,17 +3150,16 @@ msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3495,14 +3595,6 @@ msgstr ""
|
||||
msgid "Bandwidth"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr ""
|
||||
@@ -3883,6 +3975,30 @@ msgstr ""
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4616,48 +4732,3 @@ msgstr ""
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr ""
|
||||
|
||||
231
po/main/nb.po
231
po/main/nb.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
@@ -163,6 +163,69 @@ msgstr "E-post sendning lykkes"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test varslingen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Du har ikke stilt inn vertsnavn."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Ingen tilkoblinger er aktivert. Du må aktivere minst en tilkobling."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Passordet er skjult med ******, prøv igjen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ugyldige server-innstillinger"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" er ikke gyldig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Tidsavbrudd: Prøv å aktivere SSL eller bruk en annen port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tidsavbrudd"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Ukjent SSL-protokoll: Prøv å deaktivere SSL eller koble til på en annen "
|
||||
"port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server krever brukernavn og passord."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Tilkobling lyktes!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkjenning mislyktes, kontroller brukernavn og passord."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"For mange tilkoblinger, sett nedlasting på pause eller prøv igjen senere"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kunne ikke koble til (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Løs adresse"
|
||||
@@ -440,6 +503,11 @@ msgstr "Feilet å starte %s@%s grunnet: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "For mange tilkoblinger til server %s [%s]"
|
||||
@@ -654,10 +722,6 @@ msgstr ""
|
||||
"API-nøkkel er feil, bruk API-nøkkel fra Konfigurasjon->Generelt i ditt "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Godkjenning mislyktes, kontroller brukernavn og passord."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -667,10 +731,6 @@ msgstr "Mislykket påloggingsforsøk fra %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" er ikke gyldig."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1017,6 +1077,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1087,6 +1151,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Klarte ikke å sende Prowl melding"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1329,7 +1407,7 @@ msgstr "Avslutte"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Kø (10 første)"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Tom"
|
||||
|
||||
@@ -2251,6 +2329,11 @@ msgstr "Skripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Slett alt fra køen?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2271,6 +2354,11 @@ msgstr "Fjern NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Fjern NZB & slett filer"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2290,6 +2378,10 @@ msgstr "manuelt"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Nullstill kvote nå"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2310,6 +2402,11 @@ msgstr "Vis Mislykkede"
|
||||
msgid "Show All"
|
||||
msgstr "Vis alle"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2742,26 +2839,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3137,18 +3241,17 @@ msgstr "Forkast"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Avbryt"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3594,14 +3697,6 @@ msgstr "Tester serverinstillinger..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Båndbredde"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Send gruppe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Send gruppekommando før du ber om artikler."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Persolige notater"
|
||||
@@ -3986,6 +4081,30 @@ msgstr "Enhet"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Enheten meldingen skal sendes til"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4734,51 +4853,3 @@ msgstr "URL henting mislyktes; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Forsøker å hente NZB fra %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Du har ikke stilt inn vertsnavn."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Ingen tilkoblinger er aktivert. Du må aktivere minst en tilkobling."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Passordet er skjult med ******, prøv igjen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ugyldige server-innstillinger"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Tidsavbrudd: Prøv å aktivere SSL eller bruk en annen port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tidsavbrudd"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Ukjent SSL-protokoll: Prøv å deaktivere SSL eller koble til på en annen "
|
||||
"port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server krever brukernavn og passord."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Tilkobling lyktes!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"For mange tilkoblinger, sett nedlasting på pause eller prøv igjen senere"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kunne ikke koble til (%s)"
|
||||
|
||||
261
po/main/nl.po
261
po/main/nl.po
@@ -8,7 +8,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
@@ -171,6 +171,73 @@ msgstr "E-mail verzonden"
|
||||
msgid "Test Notification"
|
||||
msgstr "Test melding"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Geen hostnaam opgegeven."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Er zijn geen verbindingen opgegeven. Er is minimaal één verbinding nodig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Wachtwoord gemaskeerd met ******, voer opnieuw in"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ongeldige servergegevens"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
"Kon geen verbinding maken met %s op poort %s. Het lijkt erop dat %s "
|
||||
"functioneert als een webserver (poort 80), mogelijk een indexer, geen "
|
||||
"usenetserver. Vul een usenetserver in."
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradres \"%s:%s\" is niet geldig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tijdslimiet overschreden. Probeer met SSL aan of gebruik een andere poort."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tijdslimiet overschreden"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Onbekend SSL protocol: probeer het zonder SSL of probeer een andere poort."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server heeft een gebruikersnaam en een wachtwoord nodig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Succesvol verbonden!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Inloggen mislukt, controleer gebruikersnaam en wachtwoord."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Te veel verbindingen, onderbreek het downloaden of probeer later nog eens."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kan verbindingsresultaat niet bepalen (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Adres opzoeken"
|
||||
@@ -473,6 +540,11 @@ msgstr "Initialisatie van %s@%s mislukt, vanwege: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr "Onherstelbare fout in de Downloader"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr "%s@%s: Onbekende statuscode %s ontvangen voor artikel %s"
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Te veel verbindingen met server %s [%s]"
|
||||
@@ -697,10 +769,6 @@ msgstr ""
|
||||
"API-sleutel incorrect; vul de API-sleutel van 'Configuratie' => 'Algemeen' "
|
||||
"in bij het externe programma:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Inloggen mislukt, controleer gebruikersnaam en wachtwoord."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -710,10 +778,6 @@ msgstr "Mislukte login poging van %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr "Ongeldig backup bestand"
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradres \"%s:%s\" is niet geldig."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1072,6 +1136,10 @@ msgstr "Server %s gebruikt een niet betrouwbaar certificaat [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr "Kon geen verbinding maken: %s %s@%s:%s (%s)"
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1142,6 +1210,20 @@ msgstr "Kon macOS notificatie niet verzenden"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Verzenden van Prowl-bericht mislukt"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr "Eén of meerdere Apprise-URL's konden niet worden geladen."
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr "Kon één of meerdere Apprise-meldingen niet verzenden"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr "Verzenden van Apprise-bericht mislukt"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1384,7 +1466,7 @@ msgstr "Afsluiten"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Wachtrij Eerste 10 Items"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Leeg"
|
||||
|
||||
@@ -2311,6 +2393,11 @@ msgstr "Scripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Verwijder alle downloads uit de wachtrij?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr "Weet je zeker dat je deze downloads wilt verwijderen?"
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2331,6 +2418,11 @@ msgstr "Verwijder download"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Verwijder download incl. bestanden"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr "Permanent verwijderen (archief overslaan)"
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2350,6 +2442,10 @@ msgstr "handmatig"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Quotum nu resetten"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr "Archief"
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2370,6 +2466,11 @@ msgstr "Toon mislukte"
|
||||
msgid "Show All"
|
||||
msgstr "Toon Alles"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr "Toon archief"
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2824,30 +2925,39 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr "Geschiedenis bewaren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
"Automatisch verwijderen van voltooide downloads. Let er op dat Dubbele "
|
||||
"Download Detectie en andere externe tools Geschiedenis informatie nodig "
|
||||
"hebben."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr "Behoud alle downloads"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgstr "Maximum aantal voltooide downloads"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
"Verplaats voltooide downloads naar het archief als de geschiedenis het "
|
||||
"opgegeven aantal voltooide downloads overschrijdt."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgstr "Behoud voltooide downloads maximaal aantal dagen"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
"Verwijder voltooide downloads als de geschiedenis het opgegeven aantal "
|
||||
"voltooide downloads overschrijdt."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgstr "Behoud geen enkele download"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
"Verplaats voltooide downloads naar het archief na het opgegeven aantal dagen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr "Verwijder voltooide downloads na het opgegeven aantal dagen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr "Verplaats alle voltooide downloadsnaar het archief"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr "Verwijder alle voltooide downloads"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Jobs"
|
||||
@@ -3237,20 +3347,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "Verwerpen"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Keur download af"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr "Label download"
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Afbreken"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "Keur download af"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr "Nabewerking afbreken"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3726,14 +3835,6 @@ msgstr "Server instellingen aan het testen..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Bandbreedte"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Verzend groep"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Verzend de groepsnaam naar de server."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Persoonlijke aantekeningen"
|
||||
@@ -4008,7 +4109,7 @@ msgstr "Prowl"
|
||||
#. Prowl settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Prowl notifications"
|
||||
msgstr "Prowl berichten activeren"
|
||||
msgstr "Prowl meldingen activeren"
|
||||
|
||||
#. Prowl settings
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4123,6 +4224,33 @@ msgstr "Apparaat"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Apparaat dat de berichten moet ontvangen"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr "Apprise-meldingen activeren"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
"Stuur meldingen met behulp van Apprise naar bijna elke bestaande service."
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr "Standaard Apprise-URL's"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr "Gebruik een komma en/of spatie om meer dan één URL op te geven."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
"Overschrijf hieronder, indien gewenst, de standaard-URL's voor specifieke "
|
||||
"meldingstypen."
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4889,52 +5017,3 @@ msgstr "URL ophalen mislukt; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Probeer NZB op te halen van %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Geen hostnaam opgegeven."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Er zijn geen verbindingen opgegeven. Er is minimaal één verbinding nodig."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Wachtwoord gemaskeerd met ******, voer opnieuw in"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ongeldige servergegevens"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tijdslimiet overschreden. Probeer met SSL aan of gebruik een andere poort."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tijdslimiet overschreden"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Onbekend SSL protocol: probeer het zonder SSL of probeer een andere poort."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Server heeft een gebruikersnaam en een wachtwoord nodig."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Succesvol verbonden!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Te veel verbindingen, onderbreek het downloaden of probeer later nog eens."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Kan verbindingsresultaat niet bepalen (%s)"
|
||||
|
||||
237
po/main/pl.po
237
po/main/pl.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
@@ -159,6 +159,72 @@ msgstr "Wiadomość wysłana"
|
||||
msgid "Test Notification"
|
||||
msgstr "Powiadomienie testowe"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Nie ustawiono nazwy hosta."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Nie ustawiono maksymalnej liczby połączeń. Proszę umożliwić przynajmniej "
|
||||
"jedno połączenie."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Hasło ukryte za ******, proszę wprowadzić je ponownie"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Niewłaściwe dane serwera"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Nieprawidłowy adres serwera \"%s:%s\"."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Upłynął limit czasu odpowiedzi: spróbuj włączyć SSL lub połącz się z innym "
|
||||
"portem."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Upłynął limit czasu odpowiedzi."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serwer wymaga podania nazwy użytkownika i hasła."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Połączenie udane!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Błąd połączenia, sprawdź nazwę użytkownika i hasło."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Zbyt wiele połączeń, proszę wstrzymać pobieranie lub spróbować ponownie "
|
||||
"później"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nie można określić wyniku połączenia (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Rozwiązywanie adresu"
|
||||
@@ -438,6 +504,11 @@ msgstr "Błąd podczas inicjalizacji %s@%s: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zbyt wiele połączeń do serwera %s [%s]"
|
||||
@@ -654,10 +725,6 @@ msgstr ""
|
||||
"Klucz API jest nieprawidłowy, użyj klucza API z sekcji Konfiguracja->Ogólne "
|
||||
"w zewnętrznym programie:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Błąd połączenia, sprawdź nazwę użytkownika i hasło."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -667,10 +734,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Nieprawidłowy adres serwera \"%s:%s\"."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1019,6 +1082,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1089,6 +1156,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Błąd wysyłania wiadomości Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1331,7 +1412,7 @@ msgstr "Zakończ"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Zakolejkuj 10 pierwszych"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Brak"
|
||||
|
||||
@@ -2257,6 +2338,11 @@ msgstr "Skrypty"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Usunąć wszystkie obiekty z kolejki?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2277,6 +2363,11 @@ msgstr "Usuń NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Usuń NZB i pliki"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2296,6 +2387,10 @@ msgstr "ręcznie"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Resetuj limit"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2316,6 +2411,11 @@ msgstr "Pokaż nieudane"
|
||||
msgid "Show All"
|
||||
msgstr "Pokaż wszystko"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2750,26 +2850,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3145,18 +3252,17 @@ msgstr "Odrzuć"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Przerwij"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3603,14 +3709,6 @@ msgstr "Testuję serwer..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Przepustowość"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Wyślij GROUP"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Wyślij polecenie GROUP przed żądaniem artykułu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Notatki osobiste"
|
||||
@@ -3995,6 +4093,30 @@ msgstr "Urządzenie"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Urządzenie, do którego mają być wysyłane powiadomienia"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4741,54 +4863,3 @@ msgstr "Pobieranie URL nie powiodło się; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Próba pobrania NZB z %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Nie ustawiono nazwy hosta."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Nie ustawiono maksymalnej liczby połączeń. Proszę umożliwić przynajmniej "
|
||||
"jedno połączenie."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Hasło ukryte za ******, proszę wprowadzić je ponownie"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Niewłaściwe dane serwera"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Upłynął limit czasu odpowiedzi: spróbuj włączyć SSL lub połącz się z innym "
|
||||
"portem."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Upłynął limit czasu odpowiedzi."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serwer wymaga podania nazwy użytkownika i hasła."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Połączenie udane!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Zbyt wiele połączeń, proszę wstrzymać pobieranie lub spróbować ponownie "
|
||||
"później"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nie można określić wyniku połączenia (%s)"
|
||||
|
||||
231
po/main/pt_BR.po
231
po/main/pt_BR.po
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
@@ -168,6 +168,69 @@ msgstr "E-mail enviado com sucesso"
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificação de teste"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "O nome do host não foi definido."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Não há conexões definidas. Por favor, defina pelo menos uma conexão."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Senha mascarada em ******, digite novamente"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalhes inválidos do servidor"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Endereço de servidor \"%s:%s\" não é válido."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tempo esgotado: Tente habilitar o SSL ou conectar em uma porta diferente."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tempo esgotado"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Servidor requer usuário e senha."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Conexão com Sucesso!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Falha de autenticação, verifique usuário / senha."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Excesso de conexões, por favor pause o download ou tente novamente mais "
|
||||
"tarde"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Não foi possível determinar o resultado da conexão (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Resolvendo endereço"
|
||||
@@ -455,6 +518,11 @@ msgstr "Falha ao iniciar %s@%s devido as seguintes razões: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Excesso de conexões ao servidor %s [%s]"
|
||||
@@ -669,10 +737,6 @@ msgstr ""
|
||||
"Chave de API incorreta. Use a chave de API de Configuração->Geral em seu "
|
||||
"programa de terceiros:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Falha de autenticação, verifique usuário / senha."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -682,10 +746,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Endereço de servidor \"%s:%s\" não é válido."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1031,6 +1091,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1101,6 +1165,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Falha ao enviar mensagem Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1343,7 +1421,7 @@ msgstr "Sair"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Fila dos primeiros 10 items"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Esvaziar"
|
||||
|
||||
@@ -2271,6 +2349,11 @@ msgstr "Scripts"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Eliminar todos os itens da fila?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2291,6 +2374,11 @@ msgstr "Remover NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Remover NZB & Excluir Arquivos"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2310,6 +2398,10 @@ msgstr "manual"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Redefinir Quota agora"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2330,6 +2422,11 @@ msgstr "Mostrar Falhados"
|
||||
msgid "Show All"
|
||||
msgstr "Mostrar Todos"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2763,26 +2860,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3158,18 +3262,17 @@ msgstr "Descartar"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Cancelar"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3617,14 +3720,6 @@ msgstr "Testando detalhes do servidor..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Largura de banda"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Enviar Grupo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Enviar comando do grupo antes de solicitar artigos."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Notas pessoais"
|
||||
@@ -4009,6 +4104,30 @@ msgstr "Dispositivo"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Dispositivo para qual a mensagem deve ser enviada"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4755,51 +4874,3 @@ msgstr "A busca da URL falhou; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Tentando obter NZB de %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "O nome do host não foi definido."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Não há conexões definidas. Por favor, defina pelo menos uma conexão."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Senha mascarada em ******, digite novamente"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalhes inválidos do servidor"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Tempo esgotado: Tente habilitar o SSL ou conectar em uma porta diferente."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Tempo esgotado"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Servidor requer usuário e senha."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Conexão com Sucesso!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Excesso de conexões, por favor pause o download ou tente novamente mais "
|
||||
"tarde"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Não foi possível determinar o resultado da conexão (%s)"
|
||||
|
||||
235
po/main/ro.po
235
po/main/ro.po
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
@@ -168,6 +168,71 @@ msgstr "Email reuşit"
|
||||
msgid "Test Notification"
|
||||
msgstr "Notificări Test"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Numele gazdei nu este setat."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Nu sunt conexiuni stabilite. Vă rugăm să stabiliţi cel puţin o conexiune."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Parolă ascunsă în ******, Vă rugăm să re-introduceţi"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalii server invalide"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa server \"%s:%s\" nu este validă"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"A depăşit timpul alocat : Încercaţi să activaţi SSL sau conectarea pe un "
|
||||
"port diferit."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "A depăşit timpul alocat"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serverul necesită nume utilizator şi parolă"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Conexiune Reuşită!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentificare nereuşită, verifică nume utilizator/parolă."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Prea multe conexiuni, vă rugăm să întrerupeţi descărcarea sau să încercaţi "
|
||||
"din nou mai târziu"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nu pot determina reultatul conexiunii (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Reolvare adresă"
|
||||
@@ -459,6 +524,11 @@ msgstr "Nu am putu inițializa %s@%s din cauza următorului motiv: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Prea multe conexiuni la serverul %s [%s]"
|
||||
@@ -673,10 +743,6 @@ msgstr ""
|
||||
"Cheie API incorectă, Folosiţi cheia api din Configurare->General în "
|
||||
"programul dumneavoastră terţ:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentificare nereuşită, verifică nume utilizator/parolă."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -686,10 +752,6 @@ msgstr "Încercare de conectare nereușită de la %s"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa server \"%s:%s\" nu este validă"
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1045,6 +1107,10 @@ msgstr "Serverul %s utilizează un certificat nesigur [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1115,6 +1181,20 @@ msgstr "Eșuare la trimiterea notificării macOS"
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Nu am putu trimite mesajul Prowl"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1357,7 +1437,7 @@ msgstr "Ieșire"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Pune la Coadă Primele 10 Obiecte"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Gol"
|
||||
|
||||
@@ -2287,6 +2367,11 @@ msgstr "Script-uri"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Ştergeţi toate obiectele din coadă?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2307,6 +2392,11 @@ msgstr "Şterge NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Şterge NZB & Fişiere Şterse"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2326,6 +2416,10 @@ msgstr "manual"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Resetează Cota acum"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2346,6 +2440,11 @@ msgstr "Arată Nereuşite"
|
||||
msgid "Show All"
|
||||
msgstr "Arată toate"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2780,26 +2879,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3174,18 +3280,17 @@ msgstr "Ignoră"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Renunță"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3636,14 +3741,6 @@ msgstr "Testez detalii server..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Descărcat"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Trimite Grup"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Trimite comanda group înainte de a cere articole."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Note personale"
|
||||
@@ -4028,6 +4125,30 @@ msgstr "Dispozitiv"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Dispozitiv la care să se trimită mesajul"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4775,53 +4896,3 @@ msgstr "Descărcare URL nereuşită; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Încerc să descarc NZB de la %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Numele gazdei nu este setat."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Nu sunt conexiuni stabilite. Vă rugăm să stabiliţi cel puţin o conexiune."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Parolă ascunsă în ******, Vă rugăm să re-introduceţi"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Detalii server invalide"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"A depăşit timpul alocat : Încercaţi să activaţi SSL sau conectarea pe un "
|
||||
"port diferit."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "A depăşit timpul alocat"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Serverul necesită nume utilizator şi parolă"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Conexiune Reuşită!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Prea multe conexiuni, vă rugăm să întrerupeţi descărcarea sau să încercaţi "
|
||||
"din nou mai târziu"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nu pot determina reultatul conexiunii (%s)"
|
||||
|
||||
227
po/main/ru.po
227
po/main/ru.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
@@ -163,6 +163,68 @@ msgstr "Электронное письмо успешно отправлено"
|
||||
msgid "Test Notification"
|
||||
msgstr "Тестовое уведомление"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Не задано имя компьютера."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Подключения не настроены. Добавьте хотя бы одно подключение."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Пароль скрыт под ******. Повторите пароль."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Недопустимые данные сервера"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Адрес сервера «%s:%s» является недопустимым."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Тайм-аут. Попробуйте включить SSL или использовать другой порт."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Время ожидания истекло"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Для сервера требуется имя пользователя и пароль."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Подключение установлено!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Ошибка проверки подлинности. Проверьте имя и пароль."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Слишком много подключений. Приостановите загрузку или повторите попытку "
|
||||
"позже"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Не удалось определить результат подключения (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Разрешение адреса"
|
||||
@@ -440,6 +502,11 @@ msgstr ""
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
@@ -654,10 +721,6 @@ msgstr ""
|
||||
"Неправильный ключ API. Используйте в сторонней программе ключ API из раздела"
|
||||
" «Настройка -> Общие»:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Ошибка проверки подлинности. Проверьте имя и пароль."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -667,10 +730,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Адрес сервера «%s:%s» является недопустимым."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1018,6 +1077,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Вики-сайт"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1088,6 +1151,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1330,7 +1407,7 @@ msgstr "Выйти"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Первые 10 элементов очереди"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Пусто"
|
||||
|
||||
@@ -2254,6 +2331,11 @@ msgstr "Сценарии"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Удалить из очереди все элементы?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2274,6 +2356,11 @@ msgstr "Удалить NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Удалить NZB и стереть файлы"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2293,6 +2380,10 @@ msgstr "вручную"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Сбросить квоту"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2313,6 +2404,11 @@ msgstr "Показать неудачные"
|
||||
msgid "Show All"
|
||||
msgstr "Показать все"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2743,26 +2839,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3141,17 +3244,16 @@ msgstr "Отменить"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3596,14 +3698,6 @@ msgstr "Данные проверки сервера..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Трафик"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Отправлять группу"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Отправлять команду группы перед запросом статей."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr ""
|
||||
@@ -3995,6 +4089,30 @@ msgstr ""
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4741,50 +4859,3 @@ msgstr "Не удалось загрузить URL: %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Попытка загрузить NZB с %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Не задано имя компьютера."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Подключения не настроены. Добавьте хотя бы одно подключение."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Пароль скрыт под ******. Повторите пароль."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Недопустимые данные сервера"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Тайм-аут. Попробуйте включить SSL или использовать другой порт."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Время ожидания истекло"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Для сервера требуется имя пользователя и пароль."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Подключение установлено!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr ""
|
||||
"Слишком много подключений. Приостановите загрузку или повторите попытку "
|
||||
"позже"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Не удалось определить результат подключения (%s)"
|
||||
|
||||
227
po/main/sr.po
227
po/main/sr.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
@@ -161,6 +161,67 @@ msgstr "Упешно слање е-поште"
|
||||
msgid "Test Notification"
|
||||
msgstr "Probno obaveštenje"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Име хоста није унето."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Везе нису подешене. Подесити макар једну везу."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Лозинка сакривена испод ******, поновите унос"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Погрешни детаљи сервера"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa servera \"%s:%s\" je neispravna"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Истекло време: Покушајте да упалите SSL или да се привежете на други порт."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Време је истекло"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Серверу су потребни име и лозинка."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Успешно привезивање!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Аутентификација погрешна, проверити име/лозинку."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "Превише конекција, паузирајте преузимање или поновите касније"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nemoguće odrediti rezultate konekcije (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Решавање адресе"
|
||||
@@ -439,6 +500,11 @@ msgstr "Neuspešna inicijalizacija %s@%s iz razloga: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Previše konekcija ka serveru %s [%s]"
|
||||
@@ -651,10 +717,6 @@ msgid ""
|
||||
msgstr ""
|
||||
"API кључ је погрешан, унети у спољни програм API кључ из Подешавања->Опште:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Аутентификација погрешна, проверити име/лозинку."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -664,10 +726,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Adresa servera \"%s:%s\" je neispravna"
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1014,6 +1072,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Вики"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1084,6 +1146,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Неуспешно слање Prowl поруке"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1326,7 +1402,7 @@ msgstr "Излаз"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "У ред прве 10 ставке"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Празно"
|
||||
|
||||
@@ -2248,6 +2324,11 @@ msgstr "Скрипте"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Обрисати све ставке са реда?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2268,6 +2349,11 @@ msgstr "Уклони NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Уклони NZB и обриши датотеке"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2287,6 +2373,10 @@ msgstr "ручно"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Ресетуј квоту"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2307,6 +2397,11 @@ msgstr "Прикажи погрешне"
|
||||
msgid "Show All"
|
||||
msgstr "Прикажи све"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2735,26 +2830,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3128,18 +3230,17 @@ msgstr "Одбаци"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Прекини"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3583,14 +3684,6 @@ msgstr "Пробам детаље сервера..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Проток"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Пошаљи 'Group'"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Послати команду 'group' пре тражења артикла."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Lične zabeleške"
|
||||
@@ -3974,6 +4067,30 @@ msgstr "Уређај"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Uređaj na koji bi poruka trebala biti poslata"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4719,49 +4836,3 @@ msgstr "Погрешно учитавање УРЛ-а; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Pokušaj da se učita NZB sa %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Име хоста није унето."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "Везе нису подешене. Подесити макар једну везу."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Лозинка сакривена испод ******, поновите унос"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Погрешни детаљи сервера"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
"Истекло време: Покушајте да упалите SSL или да се привежете на други порт."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Време је истекло"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Серверу су потребни име и лозинка."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Успешно привезивање!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "Превише конекција, паузирајте преузимање или поновите касније"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Nemoguće odrediti rezultate konekcije (%s)"
|
||||
|
||||
227
po/main/sv.po
227
po/main/sv.po
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
@@ -161,6 +161,67 @@ msgstr "E-mail sändning lyckades"
|
||||
msgid "Test Notification"
|
||||
msgstr "Testa notifikation"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Adressen är inte angiven."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Inga anslutningar är aktiverade. Var vänlig aktivera minst en anslutning."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Lösenordet är dolt med ******, försök igen"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ogiltiga serverdetaljer"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" är ej giltig."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Timeout: Försök aktivera SSL eller anslut via en annan port."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "Timeout"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Servern kräver användarnamn och lösenord."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Anslutning lyckades!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentisering misslyckades, kontrollera användarnamn och lösenord."
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "För många anslutningar, pausa en nedladdning eller försök igen senare"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Det gick inte att ansluta (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "Lösa adress"
|
||||
@@ -439,6 +500,11 @@ msgstr "Misslyckades att initiera %s@%s med orsak %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "För många anslutningar till servern %s [%s]"
|
||||
@@ -653,10 +719,6 @@ msgstr ""
|
||||
"API-nyckel felaktig, använd api-nyckeln från Konfiguration-> Allmänt i ditt "
|
||||
"tredjepartsprogram:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "Autentisering misslyckades, kontrollera användarnamn och lösenord."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -666,10 +728,6 @@ msgstr ""
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "Serveradressen \"%s:%s\" är ej giltig."
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1018,6 +1076,10 @@ msgstr ""
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1088,6 +1150,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "Misslyckades att skicka Prowlmeddelande"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1330,7 +1406,7 @@ msgstr "Avsluta"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "Kö (10 första sakerna)"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "Tom"
|
||||
|
||||
@@ -2254,6 +2330,11 @@ msgstr "Skript"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "Ta bort alla saker från kön?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2274,6 +2355,11 @@ msgstr "Ta bort NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "Ta bort NZB och filer"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2293,6 +2379,10 @@ msgstr "manuell"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "Återställ Kvot nu"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2313,6 +2403,11 @@ msgstr "Visa Misslyckade"
|
||||
msgid "Show All"
|
||||
msgstr "Visa alla"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2744,26 +2839,33 @@ msgstr ""
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3138,18 +3240,17 @@ msgstr "Kasta"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "Avbryt"
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3595,14 +3696,6 @@ msgstr "Testar serverdetaljer..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "Bandbredd"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "Skicka grupp"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "Skicka gruppkommando innan du begär artiklar."
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "Personliga noteringar"
|
||||
@@ -3987,6 +4080,30 @@ msgstr "Enhet"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "Enheter där meddelande skall skickas"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4733,49 +4850,3 @@ msgstr "URL hämtning misslyckades; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "Försöker att hämta NZB från %s"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "Adressen är inte angiven."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr ""
|
||||
"Inga anslutningar är aktiverade. Var vänlig aktivera minst en anslutning."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "Lösenordet är dolt med ******, försök igen"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "Ogiltiga serverdetaljer"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "Timeout: Försök aktivera SSL eller anslut via en annan port."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "Timeout"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "Servern kräver användarnamn och lösenord."
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "Anslutning lyckades!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "För många anslutningar, pausa en nedladdning eller försök igen senare"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "Det gick inte att ansluta (%s)"
|
||||
|
||||
231
po/main/zh_CN.po
231
po/main/zh_CN.po
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Kangwei Li <lkw20010211@gmail.com>, 2023\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
@@ -160,6 +160,66 @@ msgstr "成功发送电子邮件"
|
||||
msgid "Test Notification"
|
||||
msgstr "测试通知"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "主机名未设置。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "未设置连接。请设置至少一个连接。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "密码会以 ****** 显示,请重新输入"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "服务器信息无效"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Could not connect to %s on port %s. It appears that %s operates as a web "
|
||||
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
|
||||
" a usenet server."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "服务器地址 \"%s:%s\" 无效。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "超时: 请尝试启用 SSL 或连接其他端口。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Timed out"
|
||||
msgstr "超时"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr "未知的 SSL 协议:尝试禁用 SSL 或者连接不同的端口。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "服务器需要用户名与密码。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "连接成功!"
|
||||
|
||||
#: sabnzbd/api.py, sabnzbd/interface.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "身份认证失败,请检查用户名/密码。"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "连接数过多,请先暂停下载或稍后再试"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "无法判断连接结果 (%s)"
|
||||
|
||||
#: sabnzbd/api.py
|
||||
msgid "Resolving address"
|
||||
msgstr "正在解析地址"
|
||||
@@ -437,6 +497,11 @@ msgstr "无法初始化 %s@%s,原因为: %s"
|
||||
msgid "Fatal error in Downloader"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "%s@%s: Received unknown status code %s for article %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "服务器 %s 连接数过多 [%s]"
|
||||
@@ -647,10 +712,6 @@ msgid ""
|
||||
"program:"
|
||||
msgstr "API Key 不正确,请在第三方程序中使用“配置”->“常规”中的 api key:"
|
||||
|
||||
#: sabnzbd/interface.py, sabnzbd/utils/servertests.py
|
||||
msgid "Authentication failed, check username/password."
|
||||
msgstr "身份认证失败,请检查用户名/密码。"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Unsuccessful login attempt from %s"
|
||||
@@ -660,10 +721,6 @@ msgstr "%s 中有失败的登陆请求"
|
||||
msgid "Invalid backup archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/interface.py
|
||||
msgid "Server address \"%s:%s\" is not valid."
|
||||
msgstr "服务器地址 \"%s:%s\" 无效。"
|
||||
|
||||
#. Config->RSS, tab header
|
||||
#: sabnzbd/interface.py, sabnzbd/skintext.py
|
||||
msgid "Feed"
|
||||
@@ -1008,6 +1065,10 @@ msgstr "%s 服务器使用了不受信任的证书 [%s]"
|
||||
msgid "Wiki"
|
||||
msgstr "Wiki"
|
||||
|
||||
#: sabnzbd/newswrapper.py
|
||||
msgid "Failed to connect: %s %s@%s:%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. Notification
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Startup/Shutdown"
|
||||
@@ -1078,6 +1139,20 @@ msgstr ""
|
||||
msgid "Failed to send Prowl message"
|
||||
msgstr "无法发送 Prowl 消息"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "One or more Apprise URLs could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send one or more Apprise Notifications"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Failed to send Apprise message"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/notifier.py
|
||||
msgid "Bad response from Pushover (%s): %s"
|
||||
@@ -1320,7 +1395,7 @@ msgstr "退出"
|
||||
msgid "Queue First 10 Items"
|
||||
msgstr "将前十项加入队列"
|
||||
|
||||
#: sabnzbd/osxmenu.py
|
||||
#: sabnzbd/osxmenu.py, sabnzbd/skintext.py
|
||||
msgid "Empty"
|
||||
msgstr "清空"
|
||||
|
||||
@@ -2242,6 +2317,11 @@ msgstr "脚本"
|
||||
msgid "Delete all items from the queue?"
|
||||
msgstr "删除队列中全部项?"
|
||||
|
||||
#. Delete confirmation popup
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Are you sure you want to remove these jobs?"
|
||||
msgstr ""
|
||||
|
||||
#. Queue page button
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Purge NZBs"
|
||||
@@ -2262,6 +2342,11 @@ msgstr "移除 NZB"
|
||||
msgid "Remove NZB & Delete Files"
|
||||
msgstr "移除 NZB 并删除文件"
|
||||
|
||||
#. Checkbox if job should be added to Archive
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Permanently delete (skip archive)"
|
||||
msgstr ""
|
||||
|
||||
#. Caption for missing articles in Queue
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Missing articles"
|
||||
@@ -2281,6 +2366,10 @@ msgstr "手动"
|
||||
msgid "Reset Quota now"
|
||||
msgstr "立即重置配额"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. Button/link hiding History job details
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hide details"
|
||||
@@ -2301,6 +2390,11 @@ msgstr "只显示失败项"
|
||||
msgid "Show All"
|
||||
msgstr "显示全部项"
|
||||
|
||||
#. Button showing all archived jobs
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Show Archive"
|
||||
msgstr ""
|
||||
|
||||
#. History table header - Size of the download quota
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Size"
|
||||
@@ -2718,26 +2812,33 @@ msgstr "下载后应删除的文件扩展名列表。<br />例如: <b>nfo</b>
|
||||
msgid "History Retention"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Automatically delete completed jobs from History. Beware that Duplicate "
|
||||
"Detection and some external tools rely on History information."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep all jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep maximum number of completed jobs"
|
||||
msgid ""
|
||||
"Move jobs to the archive if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Keep completed jobs maximum number of days"
|
||||
msgid "Delete jobs if the history exceeds specified number of jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Do not keep any completed jobs"
|
||||
msgid "Move jobs to the archive after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete jobs after specified number of days"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Move all completed jobs to archive"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Delete all completed jobs"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -3090,20 +3191,19 @@ msgstr ""
|
||||
msgid "Discard"
|
||||
msgstr "舍弃"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "失败的任务 (移动到历史)"
|
||||
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Tag job"
|
||||
msgstr ""
|
||||
|
||||
#. Three way switch for encrypted posts
|
||||
#. Four way switch for duplicates
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort"
|
||||
msgstr "中止"
|
||||
msgid "Fail job (move to History)"
|
||||
msgstr "失败的任务 (移动到历史)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Abort post-processing"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Action when unwanted extension detected"
|
||||
@@ -3538,14 +3638,6 @@ msgstr "正在测试服务器详细情况..."
|
||||
msgid "Bandwidth"
|
||||
msgstr "带宽"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send Group"
|
||||
msgstr "发送 Group 命令"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send group command before requesting articles."
|
||||
msgstr "请求文章之前发送 group 命令。"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Personal notes"
|
||||
msgstr "注释"
|
||||
@@ -3928,6 +4020,30 @@ msgstr "设备"
|
||||
msgid "Device to which message should be sent"
|
||||
msgstr "信息发送的目标设备"
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Enable Apprise notifications"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Send notifications using Apprise to almost any notification service"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Default Apprise URLs"
|
||||
msgstr ""
|
||||
|
||||
#. Apprise settings
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Use a comma and/or space to identify more than one URL."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid ""
|
||||
"Override the default URLs for specific notification types below, if desired."
|
||||
msgstr ""
|
||||
|
||||
#. Header for Notification Script notification section
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Notification Script"
|
||||
@@ -4669,48 +4785,3 @@ msgstr "URL 装取失败; %s"
|
||||
#: sabnzbd/urlgrabber.py
|
||||
msgid "Trying to fetch NZB from %s"
|
||||
msgstr "正在尝试从 %s 装取 NZB"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "The hostname is not set."
|
||||
msgstr "主机名未设置。"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "There are no connections set. Please set at least one connection."
|
||||
msgstr "未设置连接。请设置至少一个连接。"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Password masked in ******, please re-enter"
|
||||
msgstr "密码会以 ****** 显示,请重新输入"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Invalid server details"
|
||||
msgstr "服务器信息无效"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out: Try enabling SSL or connecting on a different port."
|
||||
msgstr "超时: 请尝试启用 SSL 或连接其他端口。"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Timed out"
|
||||
msgstr "超时"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid ""
|
||||
"Unknown SSL protocol: Try disabling SSL or connecting on a different port."
|
||||
msgstr "未知的 SSL 协议:尝试禁用 SSL 或者连接不同的端口。"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Server requires username and password."
|
||||
msgstr "服务器需要用户名与密码。"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Connection Successful!"
|
||||
msgstr "连接成功!"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Too many connections, please pause downloading or try again later"
|
||||
msgstr "连接数过多,请先暂停下载或稍后再试"
|
||||
|
||||
#: sabnzbd/utils/servertests.py
|
||||
msgid "Could not determine connection result (%s)"
|
||||
msgstr "无法判断连接结果 (%s)"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2RC1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.1\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: team@sabnzbd.org\n"
|
||||
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Pavel C <quoing_transifex@mess.cz>, 2022\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
# Safihre <safihre@sabnzbd.org>, 2020
|
||||
# reloxx13 <reloxx@interia.pl>, 2022
|
||||
# HandyDandy04, 2024
|
||||
# Lorenz B, 2024
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: HandyDandy04, 2024\n"
|
||||
"Last-Translator: Lorenz B, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -40,8 +41,8 @@ msgid ""
|
||||
"The installer only supports 64-bit Windows, use the standalone version to "
|
||||
"run on 32-bit Windows."
|
||||
msgstr ""
|
||||
"Der Installer unterstützt nur Windows 64-Bit. Benutze die Portable Version "
|
||||
"für Windows 32-Bit."
|
||||
"Der Installer unterstützt nur Windows 64-bit. Benutze die Standalone Version"
|
||||
" für Windows 32-bit."
|
||||
|
||||
#: builder/win/NSIS_Installer.nsi
|
||||
msgid ""
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Ester Molla Aragones <moarages@gmail.com>, 2020\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
|
||||
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
|
||||
|
||||
@@ -3,19 +3,19 @@
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2020
|
||||
# ION, 2021
|
||||
# ION, 2024
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: ION, 2021\n"
|
||||
"Last-Translator: ION, 2024\n"
|
||||
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||
|
||||
#: builder/win/NSIS_Installer.nsi
|
||||
msgid "Show Release Notes"
|
||||
@@ -53,7 +53,7 @@ msgstr ""
|
||||
|
||||
#: builder/win/NSIS_Installer.nsi
|
||||
msgid "Shutting down SABnzbd"
|
||||
msgstr ""
|
||||
msgstr "מכבה את SABnzbd"
|
||||
|
||||
#: builder/win/NSIS_Installer.nsi
|
||||
msgid "This will uninstall SABnzbd from your system"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.2Beta1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Petter Ramme, 2024\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-4.2.1\n"
|
||||
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
|
||||
|
||||
@@ -1,36 +1,37 @@
|
||||
# Main requirements
|
||||
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
|
||||
apprise==1.7.6
|
||||
sabctools==8.1.0
|
||||
cheetah3==3.2.6.post1
|
||||
CT3==3.3.3.post1
|
||||
cffi==1.16.0
|
||||
pycparser==2.21
|
||||
pycparser==2.22
|
||||
feedparser==6.0.11
|
||||
configobj==5.0.8
|
||||
cheroot==10.0.0
|
||||
cheroot==10.0.1
|
||||
six==1.16.0
|
||||
cherrypy==18.9.0
|
||||
jaraco.functools==4.0.0
|
||||
jaraco.functools==4.0.1
|
||||
jaraco.collections==5.0.0
|
||||
jaraco.text==3.8.1 # Newer version introduces irrelevant extra dependencies
|
||||
jaraco.classes==3.3.0
|
||||
jaraco.classes==3.4.0
|
||||
jaraco.context==4.3.0
|
||||
more-itertools==10.2.0
|
||||
zc.lockfile==3.0.post1
|
||||
python-dateutil==2.8.2
|
||||
tempora==5.5.0
|
||||
pytz==2023.3.post1
|
||||
python-dateutil==2.9.0.post0
|
||||
tempora==5.5.1
|
||||
pytz==2024.1
|
||||
sgmllib3k==1.0.0
|
||||
portend==3.2.0
|
||||
chardet==5.2.0
|
||||
PySocks==1.7.1
|
||||
puremagic==1.15
|
||||
puremagic==1.22
|
||||
guessit==3.8.0
|
||||
babelfish==0.6.0
|
||||
rebulk==3.2.0
|
||||
|
||||
# Recent cryptography versions require Rust. If you run into issues compiling this
|
||||
# SABnzbd will also work with older pre-Rust versions such as cryptography==3.3.2
|
||||
cryptography==41.0.7
|
||||
cryptography==42.0.5
|
||||
|
||||
# We recommend using "orjson" as it is 2x as fast as "ujson". However, it requires
|
||||
# Rust so SABnzbd works just as well with "ujson" or the Python built in "json" module
|
||||
@@ -38,16 +39,36 @@ ujson==5.9.0
|
||||
|
||||
# Windows system integration
|
||||
pywin32==306; sys_platform == 'win32'
|
||||
toasts-winrt==1.0.0; sys_platform == 'win32'
|
||||
windows-toasts==1.0.2; sys_platform == 'win32'
|
||||
windows-toasts==1.1.0; sys_platform == 'win32' and python_version > '3.8'
|
||||
winrt-runtime==2.0.1; sys_platform == 'win32' and python_version > '3.8'
|
||||
winrt-Windows.Data.Xml.Dom==2.0.1; sys_platform == 'win32' and python_version > '3.8'
|
||||
winrt-Windows.Foundation==2.0.1; sys_platform == 'win32' and python_version > '3.8'
|
||||
winrt-Windows.Foundation.Collections==2.0.1; sys_platform == 'win32' and python_version > '3.8'
|
||||
winrt-Windows.UI.Notifications==2.0.1; sys_platform == 'win32' and python_version > '3.8'
|
||||
|
||||
# macOS system calls
|
||||
pyobjc-core==10.1; sys_platform == 'darwin'
|
||||
pyobjc-framework-Cocoa==10.1; sys_platform == 'darwin'
|
||||
pyobjc-core==10.2; sys_platform == 'darwin'
|
||||
pyobjc-framework-Cocoa==10.2; sys_platform == 'darwin'
|
||||
|
||||
# Linux notifications
|
||||
notify2==0.3.1; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
|
||||
# Apprise Requirements
|
||||
requests==2.31.0
|
||||
requests-oauthlib==2.0.0
|
||||
PyYAML==6.0.1
|
||||
markdown==3.6
|
||||
paho-mqtt==2.0.0
|
||||
|
||||
# Requests Requirements
|
||||
charset_normalizer==3.3.2
|
||||
idna==3.7
|
||||
urllib3==2.2.1
|
||||
certifi==2024.2.2
|
||||
oauthlib==3.2.2
|
||||
PyJWT==2.8.0
|
||||
blinker==1.8.1
|
||||
|
||||
# Optional support for *nix tray icon.
|
||||
# Note that pygobject depends on pycairo, which requires pkg-config and cairo headers.
|
||||
# See https://pycairo.readthedocs.io/en/latest/getting_started.html
|
||||
@@ -57,4 +78,4 @@ notify2==0.3.1; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
# Optional support for system power management on *nix.
|
||||
# Requires libdbus-1-dev to be installed.
|
||||
# Uncomment line below or manually install after installing requirements.
|
||||
# dbus-python; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
# dbus-python; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
|
||||
@@ -290,6 +290,11 @@ def initialize(pause_downloader=False, clean_up=False, repair=0):
|
||||
cfg.no_smart_dupes.set(cfg.no_series_dupes())
|
||||
cfg.no_series_dupes.set(0)
|
||||
|
||||
# Convert history retention setting
|
||||
if cfg.history_retention():
|
||||
misc.convert_history_retention()
|
||||
cfg.history_retention.set("")
|
||||
|
||||
# Add hostname to the whitelist
|
||||
if not cfg.host_whitelist():
|
||||
cfg.host_whitelist.set(socket.gethostname())
|
||||
|
||||
632
sabnzbd/api.py
632
sabnzbd/api.py
File diff suppressed because it is too large
Load Diff
@@ -403,7 +403,9 @@ unwanted_extensions = OptionList("misc", "unwanted_extensions", validation=lower
|
||||
action_on_unwanted_extensions = OptionNumber("misc", "action_on_unwanted_extensions", 0)
|
||||
unwanted_extensions_mode = OptionNumber("misc", "unwanted_extensions_mode", 0)
|
||||
new_nzb_on_failure = OptionBool("misc", "new_nzb_on_failure", False)
|
||||
history_retention = OptionStr("misc", "history_retention", "0")
|
||||
history_retention = OptionStr("misc", "history_retention", "0") # Kept for converting to split option
|
||||
history_retention_option = OptionStr("misc", "history_retention_option", "all")
|
||||
history_retention_number = OptionNumber("misc", "history_retention_number", minval=1)
|
||||
|
||||
quota_size = OptionStr("misc", "quota_size")
|
||||
quota_day = OptionStr("misc", "quota_day")
|
||||
@@ -448,7 +450,7 @@ enable_filejoin = OptionBool("misc", "enable_filejoin", True)
|
||||
enable_tsjoin = OptionBool("misc", "enable_tsjoin", True)
|
||||
overwrite_files = OptionBool("misc", "overwrite_files", False)
|
||||
ignore_unrar_dates = OptionBool("misc", "ignore_unrar_dates", False)
|
||||
backup_for_duplicates = OptionBool("misc", "backup_for_duplicates", True)
|
||||
backup_for_duplicates = OptionBool("misc", "backup_for_duplicates", False)
|
||||
empty_postproc = OptionBool("misc", "empty_postproc", False)
|
||||
wait_for_dfolder = OptionBool("misc", "wait_for_dfolder", False)
|
||||
rss_filenames = OptionBool("misc", "rss_filenames", False)
|
||||
@@ -461,6 +463,7 @@ tray_icon = OptionBool("misc", "tray_icon", True)
|
||||
allow_incomplete_nzb = OptionBool("misc", "allow_incomplete_nzb", False)
|
||||
enable_broadcast = OptionBool("misc", "enable_broadcast", True)
|
||||
ipv6_hosting = OptionBool("misc", "ipv6_hosting", False)
|
||||
ipv6_staging = OptionBool("misc", "ipv6_staging", False)
|
||||
api_warnings = OptionBool("misc", "api_warnings", True, protect=True)
|
||||
no_penalties = OptionBool("misc", "no_penalties", False)
|
||||
x_frame_options = OptionBool("misc", "x_frame_options", True)
|
||||
@@ -612,6 +615,35 @@ pushbullet_prio_error = OptionBool("pushbullet", "pushbullet_prio_error", False)
|
||||
pushbullet_prio_queue_done = OptionBool("pushbullet", "pushbullet_prio_queue_done", False)
|
||||
pushbullet_prio_other = OptionBool("pushbullet", "pushbullet_prio_other", True)
|
||||
|
||||
# [apprise]
|
||||
apprise_enable = OptionBool("apprise", "apprise_enable")
|
||||
apprise_cats = OptionList("apprise", "apprise_cats", ["*"])
|
||||
apprise_urls = OptionStr("apprise", "apprise_urls")
|
||||
apprise_target_startup = OptionStr("apprise", "apprise_target_startup")
|
||||
apprise_target_startup_enable = OptionBool("apprise", "apprise_target_startup_enable", False)
|
||||
apprise_target_download = OptionStr("apprise", "apprise_target_download")
|
||||
apprise_target_download_enable = OptionBool("apprise", "apprise_target_download_enable", False)
|
||||
apprise_target_pause_resume = OptionStr("apprise", "apprise_target_pause_resume")
|
||||
apprise_target_pause_resume_enable = OptionBool("apprise", "apprise_target_pause_resume_enable", False)
|
||||
apprise_target_pp = OptionStr("apprise", "apprise_target_pp")
|
||||
apprise_target_pp_enable = OptionBool("apprise", "apprise_target_pp_enable", False)
|
||||
apprise_target_complete = OptionStr("apprise", "apprise_target_complete")
|
||||
apprise_target_complete_enable = OptionBool("apprise", "apprise_target_complete_enable", True)
|
||||
apprise_target_failed = OptionStr("apprise", "apprise_target_failed")
|
||||
apprise_target_failed_enable = OptionBool("apprise", "apprise_target_failed_enable", True)
|
||||
apprise_target_disk_full = OptionStr("apprise", "apprise_target_disk_full")
|
||||
apprise_target_disk_full_enable = OptionBool("apprise", "apprise_target_disk_full_enable", False)
|
||||
apprise_target_new_login = OptionStr("apprise", "apprise_target_new_login")
|
||||
apprise_target_new_login_enable = OptionBool("apprise", "apprise_target_new_login_enable", True)
|
||||
apprise_target_warning = OptionStr("apprise", "apprise_target_warning")
|
||||
apprise_target_warning_enable = OptionBool("apprise", "apprise_target_warning_enable", False)
|
||||
apprise_target_error = OptionStr("apprise", "apprise_target_error")
|
||||
apprise_target_error_enable = OptionBool("apprise", "apprise_target_error_enable", False)
|
||||
apprise_target_queue_done = OptionStr("apprise", "apprise_target_queue_done")
|
||||
apprise_target_query_done_enable = OptionBool("apprise", "apprise_target_queue_done_enable", False)
|
||||
apprise_target_other = OptionStr("apprise", "apprise_target_other")
|
||||
apprise_target_other_enable = OptionBool("apprise", "apprise_target_other_enable", True)
|
||||
|
||||
# [nscript]
|
||||
nscript_enable = OptionBool("nscript", "nscript_enable")
|
||||
nscript_cats = OptionList("nscript", "nscript_cats", ["*"])
|
||||
|
||||
@@ -75,7 +75,7 @@ DEF_LOG_CHERRY = "cherrypy.log"
|
||||
DEF_ARTICLE_CACHE_DEFAULT = "500M"
|
||||
DEF_ARTICLE_CACHE_MAX = "1G"
|
||||
DEF_TIMEOUT = 60
|
||||
DEF_TEST_TIMEOUT = 10
|
||||
DEF_TEST_TIMEOUT = 5
|
||||
DEF_SCANRATE = 5
|
||||
DEF_HTTPS_CERT_FILE = "server.cert"
|
||||
DEF_HTTPS_KEY_FILE = "server.key"
|
||||
|
||||
@@ -27,7 +27,7 @@ import sys
|
||||
import threading
|
||||
import sqlite3
|
||||
from sqlite3 import Connection, Cursor
|
||||
from typing import Optional, List, Sequence, Dict, Any, Tuple
|
||||
from typing import Optional, List, Sequence, Dict, Any, Tuple, Union
|
||||
|
||||
import sabnzbd
|
||||
import sabnzbd.cfg
|
||||
@@ -106,6 +106,11 @@ class HistoryDB:
|
||||
and self.execute("ALTER TABLE history ADD COLUMN duplicate_key TEXT;")
|
||||
and self.execute("UPDATE history SET duplicate_key = series WHERE 1 = 1;")
|
||||
)
|
||||
if version < 4:
|
||||
_ = self.execute("PRAGMA user_version = 4;") and self.execute(
|
||||
"ALTER TABLE history ADD COLUMN archive INTEGER;"
|
||||
)
|
||||
|
||||
HistoryDB.startup_done = True
|
||||
|
||||
def execute(self, command: str, args: Sequence = ()) -> bool:
|
||||
@@ -181,11 +186,12 @@ class HistoryDB:
|
||||
"series" TEXT,
|
||||
"md5sum" TEXT,
|
||||
"password" TEXT,
|
||||
"duplicate_key" TEXT
|
||||
"duplicate_key" TEXT,
|
||||
"archive" INTEGER
|
||||
)
|
||||
"""
|
||||
)
|
||||
self.execute("PRAGMA user_version = 3;")
|
||||
self.execute("PRAGMA user_version = 4;")
|
||||
|
||||
def close(self):
|
||||
"""Close database connection"""
|
||||
@@ -196,13 +202,32 @@ class HistoryDB:
|
||||
logging.error(T("Failed to close database, see log"))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
|
||||
def remove_completed(self, search=None):
|
||||
"""Remove all completed jobs from the database, optional with `search` pattern"""
|
||||
search = convert_search(search)
|
||||
logging.info("Removing all completed jobs from history")
|
||||
return self.execute("""DELETE FROM history WHERE name LIKE ? AND status = ?""", (search, Status.COMPLETED))
|
||||
def archive(self, job: str):
|
||||
"""Move job to the archive"""
|
||||
self.execute("""UPDATE history SET archive = 1 WHERE nzo_id = ?""", (job,))
|
||||
logging.info("[%s] Moved job %s to archive", caller_name(), job)
|
||||
|
||||
def get_failed_paths(self, search=None):
|
||||
def remove(self, job: str):
|
||||
"""Permanently remove job from the history"""
|
||||
self.execute("""DELETE FROM history WHERE nzo_id = ?""", (job,))
|
||||
logging.info("[%s] Removing job %s from history", caller_name(), job)
|
||||
|
||||
def archive_with_status(self, status: str, search: Optional[str] = None):
|
||||
"""Archive all jobs with a specific status, optional with `search` pattern"""
|
||||
search = convert_search(search)
|
||||
logging.info("Archiving all jobs with status=%s", status)
|
||||
self.execute(
|
||||
"""UPDATE history SET archive = 1 WHERE archive IS NULL AND name LIKE ? AND status = ?""",
|
||||
(search, status),
|
||||
)
|
||||
|
||||
def remove_with_status(self, status: str, search: Optional[str] = None):
|
||||
"""Remove all jobs from the database with a specific status, optional with `search` pattern"""
|
||||
search = convert_search(search)
|
||||
logging.info("Removing all jobs with status=%s", status)
|
||||
self.execute("""DELETE FROM history WHERE name LIKE ? AND status = ?""", (search, status))
|
||||
|
||||
def get_failed_paths(self, search: Optional[str] = None) -> List[str]:
|
||||
"""Return list of all storage paths of failed jobs (may contain non-existing or empty paths)"""
|
||||
search = convert_search(search)
|
||||
fetch_ok = self.execute(
|
||||
@@ -213,53 +238,53 @@ class HistoryDB:
|
||||
else:
|
||||
return []
|
||||
|
||||
def remove_failed(self, search=None):
|
||||
"""Remove all failed jobs from the database, optional with `search` pattern"""
|
||||
search = convert_search(search)
|
||||
logging.info("Removing all failed jobs from history")
|
||||
return self.execute("""DELETE FROM history WHERE name LIKE ? AND status = ?""", (search, Status.FAILED))
|
||||
|
||||
def remove_history(self, jobs=None):
|
||||
"""Remove all jobs in the list `jobs`, empty list will remove all completed jobs"""
|
||||
if jobs is None:
|
||||
self.remove_completed()
|
||||
else:
|
||||
if not isinstance(jobs, list):
|
||||
jobs = [jobs]
|
||||
|
||||
for job in jobs:
|
||||
self.execute("""DELETE FROM history WHERE nzo_id = ?""", (job,))
|
||||
logging.info("[%s] Removing job %s from history", caller_name(), job)
|
||||
|
||||
def auto_history_purge(self):
|
||||
"""Remove history items based on the configured history-retention"""
|
||||
if sabnzbd.cfg.history_retention() == "0":
|
||||
"""Archive or remove history items based on the configured history-retention"""
|
||||
history_retention_option = sabnzbd.cfg.history_retention_option()
|
||||
to_keep = sabnzbd.cfg.history_retention_number()
|
||||
|
||||
if history_retention_option == "all":
|
||||
return
|
||||
|
||||
if sabnzbd.cfg.history_retention() == "-1":
|
||||
elif history_retention_option == "number-archive":
|
||||
# Archive if more than X jobs
|
||||
logging.info("Archiving all but last %s completed jobs", to_keep)
|
||||
self.execute(
|
||||
"""UPDATE history SET archive = 1 WHERE status = ? AND archive IS NULL AND id NOT IN (
|
||||
SELECT id FROM history WHERE status = ? AND archive IS NULL ORDER BY completed DESC LIMIT ?
|
||||
)""",
|
||||
(Status.COMPLETED, Status.COMPLETED, to_keep),
|
||||
)
|
||||
elif history_retention_option == "number-delete":
|
||||
# Delete if more than X jobs
|
||||
logging.info("Removing all but last %s completed jobs from history", to_keep)
|
||||
self.execute(
|
||||
"""DELETE FROM history WHERE status = ? AND id NOT IN (
|
||||
SELECT id FROM history WHERE status = ? ORDER BY completed DESC LIMIT ?
|
||||
)""",
|
||||
(Status.COMPLETED, Status.COMPLETED, to_keep),
|
||||
)
|
||||
elif history_retention_option == "days-archive":
|
||||
# Archive jobs older dan X days
|
||||
seconds_to_keep = int(time.time()) - to_keep * 86400
|
||||
logging.info("Archiving completed jobs older than %s days from history", to_keep)
|
||||
self.execute(
|
||||
"""UPDATE history SET archive = 1 WHERE status = ? AND archive IS NULL AND completed < ?""",
|
||||
(Status.COMPLETED, seconds_to_keep),
|
||||
)
|
||||
elif history_retention_option == "days-delete":
|
||||
# Delete jobs older dan X days
|
||||
seconds_to_keep = int(time.time()) - to_keep * 86400
|
||||
logging.info("Removing completed jobs older than %s days from history", to_keep)
|
||||
self.execute(
|
||||
"""DELETE FROM history WHERE status = ? AND completed < ?""",
|
||||
(Status.COMPLETED, seconds_to_keep),
|
||||
)
|
||||
elif history_retention_option == "all-archive":
|
||||
# Archive all non-failed ones
|
||||
self.archive_with_status(Status.COMPLETED)
|
||||
elif history_retention_option == "all-delete":
|
||||
# Delete all non-failed ones
|
||||
self.remove_completed()
|
||||
|
||||
if "d" in sabnzbd.cfg.history_retention():
|
||||
# How many days to keep?
|
||||
days_to_keep = int_conv(sabnzbd.cfg.history_retention().strip()[:-1])
|
||||
seconds_to_keep = int(time.time()) - days_to_keep * 86400
|
||||
if days_to_keep > 0:
|
||||
logging.info("Removing completed jobs older than %s days from history", days_to_keep)
|
||||
return self.execute(
|
||||
"""DELETE FROM history WHERE status = ? AND completed < ?""", (Status.COMPLETED, seconds_to_keep)
|
||||
)
|
||||
else:
|
||||
# How many to keep?
|
||||
to_keep = int_conv(sabnzbd.cfg.history_retention())
|
||||
if to_keep > 0:
|
||||
logging.info("Removing all but last %s completed jobs from history", to_keep)
|
||||
return self.execute(
|
||||
"""DELETE FROM history WHERE status = ? AND id NOT IN (
|
||||
SELECT id FROM history WHERE status = ? ORDER BY completed DESC LIMIT ?
|
||||
)""",
|
||||
(Status.COMPLETED, Status.COMPLETED, to_keep),
|
||||
)
|
||||
self.remove_with_status(Status.COMPLETED)
|
||||
|
||||
def add_history_db(self, nzo, storage: str, postproc_time: int, script_output: str, script_line: str):
|
||||
"""Add a new job entry to the database"""
|
||||
@@ -278,6 +303,7 @@ class HistoryDB:
|
||||
self,
|
||||
start: Optional[int] = None,
|
||||
limit: Optional[int] = None,
|
||||
archive: Optional[bool] = None,
|
||||
search: Optional[str] = None,
|
||||
categories: Optional[List[str]] = None,
|
||||
statuses: Optional[List[str]] = None,
|
||||
@@ -287,9 +313,13 @@ class HistoryDB:
|
||||
command_args = [convert_search(search)]
|
||||
|
||||
post = ""
|
||||
if archive:
|
||||
post += " AND archive = 1"
|
||||
else:
|
||||
post += " AND archive IS NULL"
|
||||
if categories:
|
||||
categories = ["*" if c == "Default" else c for c in categories]
|
||||
post = " AND (category = ?"
|
||||
post += " AND (category = ?"
|
||||
post += " OR category = ? " * (len(categories) - 1)
|
||||
post += ")"
|
||||
command_args.extend(categories)
|
||||
@@ -563,6 +593,7 @@ def unpack_history_info(item: sqlite3.Row) -> Dict[str, Any]:
|
||||
# The action line and loaded is only available for items in the postproc queue
|
||||
item["action_line"] = ""
|
||||
item["loaded"] = False
|
||||
item["archive"] = bool(item["archive"])
|
||||
|
||||
# Retry and retry for failed URL-fetch
|
||||
item["retry"] = int_conv(item["status"] == Status.FAILED and item["path"] and os.path.exists(item["path"]))
|
||||
|
||||
@@ -64,7 +64,8 @@ class DirScanner(threading.Thread):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.loop: Optional[asyncio.AbstractEventLoop] = None
|
||||
# Create loop right away, so socks5 proxy doesn't break it
|
||||
self.loop = asyncio.new_event_loop()
|
||||
self.scanner_task: Optional[asyncio.Task] = None
|
||||
self.lock: Optional[asyncio.Lock] = None # Prevents concurrent scans
|
||||
self.error_reported = False # Prevents multiple reporting of missing watched folder
|
||||
@@ -109,8 +110,6 @@ class DirScanner(threading.Thread):
|
||||
def run(self):
|
||||
"""Start the scanner"""
|
||||
logging.info("Dirscanner starting up")
|
||||
self.loop = asyncio.new_event_loop()
|
||||
|
||||
try:
|
||||
self.start_scanner()
|
||||
self.loop.run_forever()
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
sabnzbd.downloader - download engine
|
||||
"""
|
||||
|
||||
import time
|
||||
import select
|
||||
import logging
|
||||
from math import ceil
|
||||
from threading import Thread, RLock, current_thread
|
||||
import socket
|
||||
import sys
|
||||
import ssl
|
||||
import time
|
||||
from datetime import date
|
||||
from typing import List, Dict, Optional, Union, Set
|
||||
|
||||
import sabnzbd
|
||||
@@ -700,7 +700,7 @@ class Downloader(Thread):
|
||||
def process_nw(self, nw: NewsWrapper):
|
||||
"""Receive data from a NewsWrapper and handle the response"""
|
||||
try:
|
||||
bytes_received, done = nw.recv_chunk()
|
||||
bytes_received, end_of_line, article_done = nw.recv_chunk()
|
||||
except ssl.SSLWantReadError:
|
||||
return
|
||||
except (ConnectionError, ConnectionAbortedError):
|
||||
@@ -717,7 +717,7 @@ class Downloader(Thread):
|
||||
self.last_max_chunk_size = bytes_received
|
||||
# Update statistics only when we fetched a whole article
|
||||
# The side effect is that we don't count things like article-not-available messages
|
||||
if done:
|
||||
if article_done:
|
||||
article.nzf.nzo.update_download_stats(sabnzbd.BPSMeter.bps, server.id, nw.data_position)
|
||||
# Check speedlimit
|
||||
if (
|
||||
@@ -729,9 +729,13 @@ class Downloader(Thread):
|
||||
time.sleep(0.01)
|
||||
sabnzbd.BPSMeter.update()
|
||||
|
||||
# If we are not at the end of a line, more data will follow
|
||||
if not end_of_line:
|
||||
return
|
||||
|
||||
# Response code depends on request command:
|
||||
# # 220 = ARTICLE, 222 = BODY
|
||||
if nw.status_code not in (220, 222) and not done:
|
||||
# 220 = ARTICLE, 222 = BODY
|
||||
if nw.status_code not in (220, 222) and not article_done:
|
||||
if not nw.connected or nw.status_code == 480:
|
||||
if not self.__finish_connect_nw(nw):
|
||||
return
|
||||
@@ -740,11 +744,11 @@ class Downloader(Thread):
|
||||
self.__request_article(nw)
|
||||
|
||||
elif nw.status_code == 223:
|
||||
done = True
|
||||
article_done = True
|
||||
logging.debug("Article <%s> is present", article.article)
|
||||
|
||||
elif nw.status_code in (411, 423, 430, 451):
|
||||
done = True
|
||||
article_done = True
|
||||
logging.debug(
|
||||
"Thread %s@%s: Article %s missing (error=%s)",
|
||||
nw.thrdnum,
|
||||
@@ -767,17 +771,21 @@ class Downloader(Thread):
|
||||
self.__request_article(nw)
|
||||
|
||||
else:
|
||||
logging.warning(
|
||||
T("%s@%s: Received unknown status code %s for article %s"),
|
||||
nw.thrdnum,
|
||||
nw.server.host,
|
||||
nw.status_code,
|
||||
article.article,
|
||||
)
|
||||
done = True
|
||||
nw.reset_data_buffer()
|
||||
# Don't warn for (internal) server errors during downloading
|
||||
if nw.status_code not in (400, 502, 503):
|
||||
logging.warning(
|
||||
T("%s@%s: Received unknown status code %s for article %s"),
|
||||
nw.thrdnum,
|
||||
nw.server.host,
|
||||
nw.status_code,
|
||||
article.article,
|
||||
)
|
||||
|
||||
if done:
|
||||
# Ditch this thread, we don't know what data we got now so the buffer can be bad
|
||||
self.__reset_nw(nw, f"Server error or unknown status code: {nw.status_code}", wait=False)
|
||||
return
|
||||
|
||||
if article_done:
|
||||
# Successful data, clear "bad" counter
|
||||
server.bad_cons = 0
|
||||
server.errormsg = server.warning = ""
|
||||
@@ -1112,9 +1120,12 @@ def check_server_expiration():
|
||||
"""Check if user should get warning about server date expiration"""
|
||||
for server in config.get_servers().values():
|
||||
if server.expire_date():
|
||||
days_to_expire = ceil(
|
||||
(time.mktime(time.strptime(server.expire_date(), "%Y-%m-%d")) - time.time()) / (60 * 60 * 24)
|
||||
)
|
||||
try:
|
||||
days_to_expire = (date.fromisoformat(server.expire_date()) - date.today()).days
|
||||
except ValueError:
|
||||
# In case of invalid date, just warn
|
||||
days_to_expire = 0
|
||||
|
||||
# Notify from 5 days in advance
|
||||
if days_to_expire < 6:
|
||||
logging.warning(T("Server %s is expiring in %s day(s)"), server.displayname(), days_to_expire)
|
||||
|
||||
@@ -39,6 +39,7 @@ from typing import Union, List, Tuple, Any, Dict, Optional, BinaryIO
|
||||
try:
|
||||
import win32api
|
||||
import win32file
|
||||
import win32con
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
@@ -1317,3 +1318,119 @@ def check_filesystem_capabilities(test_dir: str) -> bool:
|
||||
allgood = False
|
||||
|
||||
return allgood
|
||||
|
||||
|
||||
def get_win_drives() -> List[str]:
|
||||
"""Return list of detected drives, adapted from:
|
||||
http://stackoverflow.com/questions/827371/is-there-a-way-to-list-all-the-available-drive-letters-in-python/827490
|
||||
"""
|
||||
return filter(len, win32api.GetLogicalDriveStrings().split("\000"))
|
||||
|
||||
|
||||
PATHBROWSER_JUNKFOLDERS = (
|
||||
"boot",
|
||||
"bootmgr",
|
||||
"cache",
|
||||
"msocache",
|
||||
"recovery",
|
||||
"$recycle.bin",
|
||||
"recycler",
|
||||
"system volume information",
|
||||
"temporary internet files",
|
||||
"perflogs", # windows specific
|
||||
".fseventd",
|
||||
".spotlight",
|
||||
".trashes",
|
||||
".vol",
|
||||
"cachedmessages",
|
||||
"caches",
|
||||
"trash", # osx specific
|
||||
)
|
||||
|
||||
|
||||
def pathbrowser(path: str, show_hidden: bool = False, show_files: bool = False) -> List[Dict[str, str]]:
|
||||
"""Returns a list of dictionaries with the folders and folders contained at the given path
|
||||
Give the empty string as the path to list the contents of the root path
|
||||
under Unix this means "/", on Windows this will be a list of drive letters
|
||||
"""
|
||||
if path == "":
|
||||
if sabnzbd.WIN32:
|
||||
entries = [{"current_path": "Root"}]
|
||||
for letter in get_win_drives():
|
||||
entries.append(
|
||||
{
|
||||
"name": letter,
|
||||
"path": letter,
|
||||
"dir": True,
|
||||
}
|
||||
)
|
||||
return entries
|
||||
else:
|
||||
path = "/"
|
||||
|
||||
# Walk up the tree until we find a valid path
|
||||
path = real_path(sabnzbd.DIR_HOME, path)
|
||||
while path and not os.path.isdir(path):
|
||||
if path == os.path.dirname(path):
|
||||
return pathbrowser(path="")
|
||||
else:
|
||||
path = os.path.dirname(path)
|
||||
|
||||
# Fix up the path and find the parent
|
||||
path = os.path.abspath(os.path.normpath(path))
|
||||
parent_path = os.path.dirname(path)
|
||||
|
||||
# If we're at the root then the next step is the meta-node showing our drive letters
|
||||
if path == parent_path and sabnzbd.WIN32:
|
||||
parent_path = ""
|
||||
|
||||
# List all files and folders
|
||||
file_list = []
|
||||
for filename in os.listdir(path):
|
||||
fpath = os.path.join(path, filename)
|
||||
isdir = os.path.isdir(fpath)
|
||||
|
||||
# Skip unwanted folders
|
||||
if isdir and filename.lower() in PATHBROWSER_JUNKFOLDERS:
|
||||
continue
|
||||
|
||||
# Skip files
|
||||
if not isdir and not show_files:
|
||||
continue
|
||||
|
||||
# Skip hidden files
|
||||
if not show_hidden:
|
||||
if sabnzbd.WIN32:
|
||||
try:
|
||||
if win32api.GetFileAttributes(fpath) & win32con.FILE_ATTRIBUTE_HIDDEN:
|
||||
continue
|
||||
except win32api.error:
|
||||
# Can be thrown if file is in use
|
||||
continue
|
||||
elif filename.startswith("."):
|
||||
continue
|
||||
|
||||
file_list.append(
|
||||
{
|
||||
"name": clip_path(filename),
|
||||
"path": clip_path(fpath),
|
||||
"dir": isdir,
|
||||
}
|
||||
)
|
||||
|
||||
# Sort results, folders first (using string value of the bool)
|
||||
file_list = sorted(file_list, key=lambda x: str(not x["dir"]) + os.path.basename(x["name"]).lower())
|
||||
|
||||
# Add current path
|
||||
file_list.insert(0, {"current_path": clip_path(path)})
|
||||
if parent_path != path:
|
||||
file_list.insert(
|
||||
1,
|
||||
{
|
||||
"name": "..",
|
||||
"path": clip_path(parent_path),
|
||||
"dir": True,
|
||||
},
|
||||
)
|
||||
|
||||
return file_list
|
||||
|
||||
@@ -132,7 +132,7 @@ def public_ip(family=socket.AF_UNSPEC):
|
||||
# Make sure it's a valid IPv4 or IPv6 address
|
||||
if not sabnzbd.misc.is_ipv4_addr(client_ip) and not sabnzbd.misc.is_ipv6_addr(client_ip):
|
||||
raise ValueError
|
||||
except urllib.error.URLError:
|
||||
except:
|
||||
logging.debug(
|
||||
"Failed to get public address from %s (%s)",
|
||||
sabnzbd.cfg.selftest_host(),
|
||||
|
||||
@@ -33,6 +33,7 @@ from dataclasses import dataclass
|
||||
from typing import Tuple, Union, Optional
|
||||
from more_itertools import roundrobin
|
||||
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.constants import DEF_TIMEOUT
|
||||
from sabnzbd.decorators import cache_maintainer
|
||||
|
||||
@@ -41,6 +42,24 @@ from sabnzbd.decorators import cache_maintainer
|
||||
# The absolute minium specified in RFC 8305 is 10ms, so we use that.
|
||||
CONNECTION_ATTEMPT_DELAY = 0.01
|
||||
|
||||
# While providers are afraid to add IPv6 to their standard hostnames
|
||||
# we map a number of well known hostnames to their IPv6 alternatives.
|
||||
# WARNING: Only add if the SSL-certificate allows both hostnames!
|
||||
IPV6_MAPPING = {
|
||||
"news.eweka.nl": "news6.eweka.nl",
|
||||
"news.xlned.com": "news6.xlned.com",
|
||||
"news.easynews.com": "news6.easynews.com",
|
||||
"news.tweaknews.nl": "news6.tweaknews.nl",
|
||||
"news.tweaknews.eu": "news6.tweaknews.eu",
|
||||
"news.astraweb.com": "news6.astraweb.com",
|
||||
"news.pureusenet.nl": "news6.pureusenet.nl",
|
||||
"news.sunnyusenet.com": "news6.sunnyusenet.com",
|
||||
"news.newshosting.com": "news6.newshosting.com",
|
||||
"news.usenetserver.com": "news6.usenetserver.com",
|
||||
"news.frugalusenet.com": "news-v6.frugalusenet.com",
|
||||
"eunews.frugalusenet.com": "eunews-v6.frugalusenet.com",
|
||||
}
|
||||
|
||||
|
||||
# For typing and convenience!
|
||||
@dataclass
|
||||
@@ -65,7 +84,7 @@ def family_type(family) -> str:
|
||||
return "IPv4-only"
|
||||
elif family == socket.AF_INET6:
|
||||
return "IPv6-only"
|
||||
return "IPv4 and IPv6"
|
||||
return "IPv4 or IPv6"
|
||||
|
||||
|
||||
# Called by each thread
|
||||
@@ -105,33 +124,41 @@ def happyeyeballs(host: str, port: int, timeout: int = DEF_TIMEOUT, family=socke
|
||||
by getaddrinfo or if no connection could be made to any of the addresses.
|
||||
If family is specified, only that family is tried"""
|
||||
try:
|
||||
# See if we can add a IPv6 alternative
|
||||
check_hosts = [host]
|
||||
if cfg.ipv6_staging() and host in IPV6_MAPPING:
|
||||
check_hosts.append(IPV6_MAPPING[host])
|
||||
logging.info("Added alternative IPv6 address: %s", IPV6_MAPPING[host])
|
||||
|
||||
ipv4_addrinfo = []
|
||||
ipv6_addrinfo = []
|
||||
last_canonname = ""
|
||||
for check_host in check_hosts:
|
||||
try:
|
||||
for addrinfo in socket.getaddrinfo(
|
||||
check_host, port, family, socket.SOCK_STREAM, flags=socket.AI_CANONNAME
|
||||
):
|
||||
# Convert to AddrInfo
|
||||
addrinfo = AddrInfo(*addrinfo)
|
||||
|
||||
try:
|
||||
for addrinfo in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM, flags=socket.AI_CANONNAME):
|
||||
# Convert to AddrInfo
|
||||
addrinfo = AddrInfo(*addrinfo)
|
||||
# The canonname is only reported once per alias
|
||||
if addrinfo.canonname:
|
||||
last_canonname = addrinfo.canonname
|
||||
elif last_canonname:
|
||||
addrinfo.canonname = last_canonname
|
||||
|
||||
# The canonname is only reported once per alias
|
||||
if addrinfo.canonname:
|
||||
last_canonname = addrinfo.canonname
|
||||
elif last_canonname:
|
||||
addrinfo.canonname = last_canonname
|
||||
|
||||
# Put it in the right list for further processing
|
||||
# But prevent adding duplicate items to the lists
|
||||
if addrinfo not in ipv6_addrinfo and addrinfo not in ipv4_addrinfo:
|
||||
if addrinfo.family == socket.AddressFamily.AF_INET6:
|
||||
ipv6_addrinfo.append(addrinfo)
|
||||
else:
|
||||
ipv4_addrinfo.append(addrinfo)
|
||||
except:
|
||||
# Did we fail on the first getaddrinfo already?
|
||||
# Otherwise, we failed on the IPv6 alternative address, and those failures can be ignored
|
||||
if not ipv4_addrinfo and not ipv6_addrinfo:
|
||||
raise
|
||||
# Put it in the right list for further processing
|
||||
# But prevent adding duplicate items to the lists
|
||||
if addrinfo not in ipv6_addrinfo and addrinfo not in ipv4_addrinfo:
|
||||
if addrinfo.family == socket.AddressFamily.AF_INET6:
|
||||
ipv6_addrinfo.append(addrinfo)
|
||||
else:
|
||||
ipv4_addrinfo.append(addrinfo)
|
||||
except:
|
||||
# Did we fail on the first getaddrinfo already?
|
||||
# Otherwise, we failed on the IPv6 alternative address, and those failures can be ignored
|
||||
if not ipv4_addrinfo and not ipv6_addrinfo:
|
||||
raise
|
||||
|
||||
logging.debug(
|
||||
"Available addresses for %s (port=%d, %s): %d IPv4 and %d IPv6",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user